1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/storagetransfer/v1/transfer_types.proto
4 package storagetransfer
6 import proto "github.com/golang/protobuf/proto"
9 import _ "google.golang.org/genproto/googleapis/api/annotations"
10 import google_protobuf3 "github.com/golang/protobuf/ptypes/duration"
11 import google_protobuf4 "github.com/golang/protobuf/ptypes/timestamp"
12 import google_rpc "google.golang.org/genproto/googleapis/rpc/code"
13 import google_type "google.golang.org/genproto/googleapis/type/date"
14 import google_type1 "google.golang.org/genproto/googleapis/type/timeofday"
16 // Reference imports to suppress errors if they are not otherwise used.
21 // The status of the transfer job.
22 type TransferJob_Status int32
25 // Zero is an illegal value.
26 TransferJob_STATUS_UNSPECIFIED TransferJob_Status = 0
27 // New transfers will be performed based on the schedule.
28 TransferJob_ENABLED TransferJob_Status = 1
29 // New transfers will not be scheduled.
30 TransferJob_DISABLED TransferJob_Status = 2
31 // This is a soft delete state. After a transfer job is set to this
32 // state, the job and all the transfer executions are subject to
33 // garbage collection.
34 TransferJob_DELETED TransferJob_Status = 3
37 var TransferJob_Status_name = map[int32]string{
38 0: "STATUS_UNSPECIFIED",
43 var TransferJob_Status_value = map[string]int32{
44 "STATUS_UNSPECIFIED": 0,
50 func (x TransferJob_Status) String() string {
51 return proto.EnumName(TransferJob_Status_name, int32(x))
53 func (TransferJob_Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{9, 0} }
55 // The status of a TransferOperation.
56 type TransferOperation_Status int32
59 // Zero is an illegal value.
60 TransferOperation_STATUS_UNSPECIFIED TransferOperation_Status = 0
62 TransferOperation_IN_PROGRESS TransferOperation_Status = 1
64 TransferOperation_PAUSED TransferOperation_Status = 2
65 // Completed successfully.
66 TransferOperation_SUCCESS TransferOperation_Status = 3
67 // Terminated due to an unrecoverable failure.
68 TransferOperation_FAILED TransferOperation_Status = 4
69 // Aborted by the user.
70 TransferOperation_ABORTED TransferOperation_Status = 5
73 var TransferOperation_Status_name = map[int32]string{
74 0: "STATUS_UNSPECIFIED",
81 var TransferOperation_Status_value = map[string]int32{
82 "STATUS_UNSPECIFIED": 0,
90 func (x TransferOperation_Status) String() string {
91 return proto.EnumName(TransferOperation_Status_name, int32(x))
93 func (TransferOperation_Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{13, 0} }
95 // Google service account
96 type GoogleServiceAccount struct {
98 AccountEmail string `protobuf:"bytes,1,opt,name=account_email,json=accountEmail" json:"account_email,omitempty"`
101 func (m *GoogleServiceAccount) Reset() { *m = GoogleServiceAccount{} }
102 func (m *GoogleServiceAccount) String() string { return proto.CompactTextString(m) }
103 func (*GoogleServiceAccount) ProtoMessage() {}
104 func (*GoogleServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
106 func (m *GoogleServiceAccount) GetAccountEmail() string {
108 return m.AccountEmail
113 // AWS access key (see
114 // [AWS Security Credentials](http://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html)).
115 type AwsAccessKey struct {
116 // AWS access key ID.
118 AccessKeyId string `protobuf:"bytes,1,opt,name=access_key_id,json=accessKeyId" json:"access_key_id,omitempty"`
119 // AWS secret access key. This field is not returned in RPC responses.
121 SecretAccessKey string `protobuf:"bytes,2,opt,name=secret_access_key,json=secretAccessKey" json:"secret_access_key,omitempty"`
124 func (m *AwsAccessKey) Reset() { *m = AwsAccessKey{} }
125 func (m *AwsAccessKey) String() string { return proto.CompactTextString(m) }
126 func (*AwsAccessKey) ProtoMessage() {}
127 func (*AwsAccessKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
129 func (m *AwsAccessKey) GetAccessKeyId() string {
136 func (m *AwsAccessKey) GetSecretAccessKey() string {
138 return m.SecretAccessKey
143 // Conditions that determine which objects will be transferred.
144 type ObjectConditions struct {
145 // If unspecified, `minTimeElapsedSinceLastModification` takes a zero value
146 // and `maxTimeElapsedSinceLastModification` takes the maximum possible
147 // value of Duration. Objects that satisfy the object conditions
148 // must either have a `lastModificationTime` greater or equal to
149 // `NOW` - `maxTimeElapsedSinceLastModification` and less than
150 // `NOW` - `minTimeElapsedSinceLastModification`, or not have a
151 // `lastModificationTime`.
152 MinTimeElapsedSinceLastModification *google_protobuf3.Duration `protobuf:"bytes,1,opt,name=min_time_elapsed_since_last_modification,json=minTimeElapsedSinceLastModification" json:"min_time_elapsed_since_last_modification,omitempty"`
153 // `maxTimeElapsedSinceLastModification` is the complement to
154 // `minTimeElapsedSinceLastModification`.
155 MaxTimeElapsedSinceLastModification *google_protobuf3.Duration `protobuf:"bytes,2,opt,name=max_time_elapsed_since_last_modification,json=maxTimeElapsedSinceLastModification" json:"max_time_elapsed_since_last_modification,omitempty"`
156 // If `includePrefixes` is specified, objects that satisfy the object
157 // conditions must have names that start with one of the `includePrefixes`
158 // and that do not start with any of the `excludePrefixes`. If `includePrefixes`
159 // is not specified, all objects except those that have names starting with
160 // one of the `excludePrefixes` must satisfy the object conditions.
164 // * Each include-prefix and exclude-prefix can contain any sequence of
165 // Unicode characters, of max length 1024 bytes when UTF8-encoded, and
166 // must not contain Carriage Return or Line Feed characters. Wildcard
167 // matching and regular expression matching are not supported.
169 // * Each include-prefix and exclude-prefix must omit the leading slash.
170 // For example, to include the `requests.gz` object in a transfer from
171 // `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include
172 // prefix as `logs/y=2015/requests.gz`.
174 // * None of the include-prefix or the exclude-prefix values can be empty,
177 // * Each include-prefix must include a distinct portion of the object
178 // namespace, i.e., no include-prefix may be a prefix of another
181 // * Each exclude-prefix must exclude a distinct portion of the object
182 // namespace, i.e., no exclude-prefix may be a prefix of another
185 // * If `includePrefixes` is specified, then each exclude-prefix must start
186 // with the value of a path explicitly included by `includePrefixes`.
188 // The max size of `includePrefixes` is 20.
189 IncludePrefixes []string `protobuf:"bytes,3,rep,name=include_prefixes,json=includePrefixes" json:"include_prefixes,omitempty"`
190 // `excludePrefixes` must follow the requirements described for
191 // `includePrefixes`.
193 // The max size of `excludePrefixes` is 20.
194 ExcludePrefixes []string `protobuf:"bytes,4,rep,name=exclude_prefixes,json=excludePrefixes" json:"exclude_prefixes,omitempty"`
197 func (m *ObjectConditions) Reset() { *m = ObjectConditions{} }
198 func (m *ObjectConditions) String() string { return proto.CompactTextString(m) }
199 func (*ObjectConditions) ProtoMessage() {}
200 func (*ObjectConditions) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
202 func (m *ObjectConditions) GetMinTimeElapsedSinceLastModification() *google_protobuf3.Duration {
204 return m.MinTimeElapsedSinceLastModification
209 func (m *ObjectConditions) GetMaxTimeElapsedSinceLastModification() *google_protobuf3.Duration {
211 return m.MaxTimeElapsedSinceLastModification
216 func (m *ObjectConditions) GetIncludePrefixes() []string {
218 return m.IncludePrefixes
223 func (m *ObjectConditions) GetExcludePrefixes() []string {
225 return m.ExcludePrefixes
230 // In a GcsData, an object's name is the Google Cloud Storage object's name and
231 // its `lastModificationTime` refers to the object's updated time, which changes
232 // when the content or the metadata of the object is updated.
233 type GcsData struct {
234 // Google Cloud Storage bucket name (see
235 // [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).
237 BucketName string `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName" json:"bucket_name,omitempty"`
240 func (m *GcsData) Reset() { *m = GcsData{} }
241 func (m *GcsData) String() string { return proto.CompactTextString(m) }
242 func (*GcsData) ProtoMessage() {}
243 func (*GcsData) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
245 func (m *GcsData) GetBucketName() string {
252 // An AwsS3Data can be a data source, but not a data sink.
253 // In an AwsS3Data, an object's name is the S3 object's key name.
254 type AwsS3Data struct {
255 // S3 Bucket name (see
256 // [Creating a bucket](http://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
258 BucketName string `protobuf:"bytes,1,opt,name=bucket_name,json=bucketName" json:"bucket_name,omitempty"`
259 // AWS access key used to sign the API requests to the AWS S3 bucket.
260 // Permissions on the bucket must be granted to the access ID of the
263 AwsAccessKey *AwsAccessKey `protobuf:"bytes,2,opt,name=aws_access_key,json=awsAccessKey" json:"aws_access_key,omitempty"`
266 func (m *AwsS3Data) Reset() { *m = AwsS3Data{} }
267 func (m *AwsS3Data) String() string { return proto.CompactTextString(m) }
268 func (*AwsS3Data) ProtoMessage() {}
269 func (*AwsS3Data) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
271 func (m *AwsS3Data) GetBucketName() string {
278 func (m *AwsS3Data) GetAwsAccessKey() *AwsAccessKey {
280 return m.AwsAccessKey
285 // An HttpData specifies a list of objects on the web to be transferred over
286 // HTTP. The information of the objects to be transferred is contained in a
287 // file referenced by a URL. The first line in the file must be
288 // "TsvHttpData-1.0", which specifies the format of the file. Subsequent lines
289 // specify the information of the list of objects, one object per list entry.
290 // Each entry has the following tab-delimited fields:
292 // * HTTP URL - The location of the object.
294 // * Length - The size of the object in bytes.
296 // * MD5 - The base64-encoded MD5 hash of the object.
298 // For an example of a valid TSV file, see
299 // [Transferring data from URLs](https://cloud.google.com/storage/transfer/#urls)
301 // When transferring data based on a URL list, keep the following in mind:
303 // * When an object located at `http(s)://hostname:port/<URL-path>` is transferred
304 // to a data sink, the name of the object at the data sink is
305 // `<hostname>/<URL-path>`.
307 // * If the specified size of an object does not match the actual size of the
308 // object fetched, the object will not be transferred.
310 // * If the specified MD5 does not match the MD5 computed from the transferred
311 // bytes, the object transfer will fail. For more information, see
312 // [Generating MD5 hashes](https://cloud.google.com/storage/transfer/#md5)
314 // * Ensure that each URL you specify is publicly accessible. For
315 // example, in Google Cloud Storage you can
316 // [share an object publicly]
317 // (https://cloud.google.com/storage/docs/cloud-console#_sharingdata) and get
320 // * Storage Transfer Service obeys `robots.txt` rules and requires the source
321 // HTTP server to support `Range` requests and to return a `Content-Length`
322 // header in each response.
324 // * [ObjectConditions](#ObjectConditions) have no effect when filtering objects
326 type HttpData struct {
327 // The URL that points to the file that stores the object list entries.
328 // This file must allow public access. Currently, only URLs with HTTP and
329 // HTTPS schemes are supported.
331 ListUrl string `protobuf:"bytes,1,opt,name=list_url,json=listUrl" json:"list_url,omitempty"`
334 func (m *HttpData) Reset() { *m = HttpData{} }
335 func (m *HttpData) String() string { return proto.CompactTextString(m) }
336 func (*HttpData) ProtoMessage() {}
337 func (*HttpData) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
339 func (m *HttpData) GetListUrl() string {
346 // TransferOptions uses three boolean parameters to define the actions
347 // to be performed on objects in a transfer.
348 type TransferOptions struct {
349 // Whether overwriting objects that already exist in the sink is allowed.
350 OverwriteObjectsAlreadyExistingInSink bool `protobuf:"varint,1,opt,name=overwrite_objects_already_existing_in_sink,json=overwriteObjectsAlreadyExistingInSink" json:"overwrite_objects_already_existing_in_sink,omitempty"`
351 // Whether objects that exist only in the sink should be deleted.
352 DeleteObjectsUniqueInSink bool `protobuf:"varint,2,opt,name=delete_objects_unique_in_sink,json=deleteObjectsUniqueInSink" json:"delete_objects_unique_in_sink,omitempty"`
353 // Whether objects should be deleted from the source after they are
354 // transferred to the sink.
355 DeleteObjectsFromSourceAfterTransfer bool `protobuf:"varint,3,opt,name=delete_objects_from_source_after_transfer,json=deleteObjectsFromSourceAfterTransfer" json:"delete_objects_from_source_after_transfer,omitempty"`
358 func (m *TransferOptions) Reset() { *m = TransferOptions{} }
359 func (m *TransferOptions) String() string { return proto.CompactTextString(m) }
360 func (*TransferOptions) ProtoMessage() {}
361 func (*TransferOptions) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
363 func (m *TransferOptions) GetOverwriteObjectsAlreadyExistingInSink() bool {
365 return m.OverwriteObjectsAlreadyExistingInSink
370 func (m *TransferOptions) GetDeleteObjectsUniqueInSink() bool {
372 return m.DeleteObjectsUniqueInSink
377 func (m *TransferOptions) GetDeleteObjectsFromSourceAfterTransfer() bool {
379 return m.DeleteObjectsFromSourceAfterTransfer
384 // Configuration for running a transfer.
385 type TransferSpec struct {
386 // The read source of the data.
388 // Types that are valid to be assigned to DataSource:
389 // *TransferSpec_GcsDataSource
390 // *TransferSpec_AwsS3DataSource
391 // *TransferSpec_HttpDataSource
392 DataSource isTransferSpec_DataSource `protobuf_oneof:"data_source"`
393 // The write sink for the data.
395 // Types that are valid to be assigned to DataSink:
396 // *TransferSpec_GcsDataSink
397 DataSink isTransferSpec_DataSink `protobuf_oneof:"data_sink"`
398 // Only objects that satisfy these object conditions are included in the set
399 // of data source and data sink objects. Object conditions based on
400 // objects' `lastModificationTime` do not exclude objects in a data sink.
401 ObjectConditions *ObjectConditions `protobuf:"bytes,5,opt,name=object_conditions,json=objectConditions" json:"object_conditions,omitempty"`
402 // If the option `deleteObjectsUniqueInSink` is `true`, object conditions
403 // based on objects' `lastModificationTime` are ignored and do not exclude
404 // objects in a data source or a data sink.
405 TransferOptions *TransferOptions `protobuf:"bytes,6,opt,name=transfer_options,json=transferOptions" json:"transfer_options,omitempty"`
408 func (m *TransferSpec) Reset() { *m = TransferSpec{} }
409 func (m *TransferSpec) String() string { return proto.CompactTextString(m) }
410 func (*TransferSpec) ProtoMessage() {}
411 func (*TransferSpec) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
413 type isTransferSpec_DataSource interface {
414 isTransferSpec_DataSource()
416 type isTransferSpec_DataSink interface {
417 isTransferSpec_DataSink()
420 type TransferSpec_GcsDataSource struct {
421 GcsDataSource *GcsData `protobuf:"bytes,1,opt,name=gcs_data_source,json=gcsDataSource,oneof"`
423 type TransferSpec_AwsS3DataSource struct {
424 AwsS3DataSource *AwsS3Data `protobuf:"bytes,2,opt,name=aws_s3_data_source,json=awsS3DataSource,oneof"`
426 type TransferSpec_HttpDataSource struct {
427 HttpDataSource *HttpData `protobuf:"bytes,3,opt,name=http_data_source,json=httpDataSource,oneof"`
429 type TransferSpec_GcsDataSink struct {
430 GcsDataSink *GcsData `protobuf:"bytes,4,opt,name=gcs_data_sink,json=gcsDataSink,oneof"`
433 func (*TransferSpec_GcsDataSource) isTransferSpec_DataSource() {}
434 func (*TransferSpec_AwsS3DataSource) isTransferSpec_DataSource() {}
435 func (*TransferSpec_HttpDataSource) isTransferSpec_DataSource() {}
436 func (*TransferSpec_GcsDataSink) isTransferSpec_DataSink() {}
438 func (m *TransferSpec) GetDataSource() isTransferSpec_DataSource {
444 func (m *TransferSpec) GetDataSink() isTransferSpec_DataSink {
451 func (m *TransferSpec) GetGcsDataSource() *GcsData {
452 if x, ok := m.GetDataSource().(*TransferSpec_GcsDataSource); ok {
453 return x.GcsDataSource
458 func (m *TransferSpec) GetAwsS3DataSource() *AwsS3Data {
459 if x, ok := m.GetDataSource().(*TransferSpec_AwsS3DataSource); ok {
460 return x.AwsS3DataSource
465 func (m *TransferSpec) GetHttpDataSource() *HttpData {
466 if x, ok := m.GetDataSource().(*TransferSpec_HttpDataSource); ok {
467 return x.HttpDataSource
472 func (m *TransferSpec) GetGcsDataSink() *GcsData {
473 if x, ok := m.GetDataSink().(*TransferSpec_GcsDataSink); ok {
479 func (m *TransferSpec) GetObjectConditions() *ObjectConditions {
481 return m.ObjectConditions
486 func (m *TransferSpec) GetTransferOptions() *TransferOptions {
488 return m.TransferOptions
493 // XXX_OneofFuncs is for the internal use of the proto package.
494 func (*TransferSpec) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
495 return _TransferSpec_OneofMarshaler, _TransferSpec_OneofUnmarshaler, _TransferSpec_OneofSizer, []interface{}{
496 (*TransferSpec_GcsDataSource)(nil),
497 (*TransferSpec_AwsS3DataSource)(nil),
498 (*TransferSpec_HttpDataSource)(nil),
499 (*TransferSpec_GcsDataSink)(nil),
503 func _TransferSpec_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
504 m := msg.(*TransferSpec)
506 switch x := m.DataSource.(type) {
507 case *TransferSpec_GcsDataSource:
508 b.EncodeVarint(1<<3 | proto.WireBytes)
509 if err := b.EncodeMessage(x.GcsDataSource); err != nil {
512 case *TransferSpec_AwsS3DataSource:
513 b.EncodeVarint(2<<3 | proto.WireBytes)
514 if err := b.EncodeMessage(x.AwsS3DataSource); err != nil {
517 case *TransferSpec_HttpDataSource:
518 b.EncodeVarint(3<<3 | proto.WireBytes)
519 if err := b.EncodeMessage(x.HttpDataSource); err != nil {
524 return fmt.Errorf("TransferSpec.DataSource has unexpected type %T", x)
527 switch x := m.DataSink.(type) {
528 case *TransferSpec_GcsDataSink:
529 b.EncodeVarint(4<<3 | proto.WireBytes)
530 if err := b.EncodeMessage(x.GcsDataSink); err != nil {
535 return fmt.Errorf("TransferSpec.DataSink has unexpected type %T", x)
540 func _TransferSpec_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
541 m := msg.(*TransferSpec)
543 case 1: // data_source.gcs_data_source
544 if wire != proto.WireBytes {
545 return true, proto.ErrInternalBadWireType
548 err := b.DecodeMessage(msg)
549 m.DataSource = &TransferSpec_GcsDataSource{msg}
551 case 2: // data_source.aws_s3_data_source
552 if wire != proto.WireBytes {
553 return true, proto.ErrInternalBadWireType
555 msg := new(AwsS3Data)
556 err := b.DecodeMessage(msg)
557 m.DataSource = &TransferSpec_AwsS3DataSource{msg}
559 case 3: // data_source.http_data_source
560 if wire != proto.WireBytes {
561 return true, proto.ErrInternalBadWireType
564 err := b.DecodeMessage(msg)
565 m.DataSource = &TransferSpec_HttpDataSource{msg}
567 case 4: // data_sink.gcs_data_sink
568 if wire != proto.WireBytes {
569 return true, proto.ErrInternalBadWireType
572 err := b.DecodeMessage(msg)
573 m.DataSink = &TransferSpec_GcsDataSink{msg}
580 func _TransferSpec_OneofSizer(msg proto.Message) (n int) {
581 m := msg.(*TransferSpec)
583 switch x := m.DataSource.(type) {
584 case *TransferSpec_GcsDataSource:
585 s := proto.Size(x.GcsDataSource)
586 n += proto.SizeVarint(1<<3 | proto.WireBytes)
587 n += proto.SizeVarint(uint64(s))
589 case *TransferSpec_AwsS3DataSource:
590 s := proto.Size(x.AwsS3DataSource)
591 n += proto.SizeVarint(2<<3 | proto.WireBytes)
592 n += proto.SizeVarint(uint64(s))
594 case *TransferSpec_HttpDataSource:
595 s := proto.Size(x.HttpDataSource)
596 n += proto.SizeVarint(3<<3 | proto.WireBytes)
597 n += proto.SizeVarint(uint64(s))
601 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
604 switch x := m.DataSink.(type) {
605 case *TransferSpec_GcsDataSink:
606 s := proto.Size(x.GcsDataSink)
607 n += proto.SizeVarint(4<<3 | proto.WireBytes)
608 n += proto.SizeVarint(uint64(s))
612 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
617 // Transfers can be scheduled to recur or to run just once.
618 type Schedule struct {
619 // The first day the recurring transfer is scheduled to run. If
620 // `scheduleStartDate` is in the past, the transfer will run for the first
621 // time on the following day.
623 ScheduleStartDate *google_type.Date `protobuf:"bytes,1,opt,name=schedule_start_date,json=scheduleStartDate" json:"schedule_start_date,omitempty"`
624 // The last day the recurring transfer will be run. If `scheduleEndDate`
625 // is the same as `scheduleStartDate`, the transfer will be executed only
627 ScheduleEndDate *google_type.Date `protobuf:"bytes,2,opt,name=schedule_end_date,json=scheduleEndDate" json:"schedule_end_date,omitempty"`
628 // The time in UTC at which the transfer will be scheduled to start in a day.
629 // Transfers may start later than this time. If not specified, recurring and
630 // one-time transfers that are scheduled to run today will run immediately;
631 // recurring transfers that are scheduled to run on a future date will start
632 // at approximately midnight UTC on that date. Note that when configuring a
633 // transfer with the Cloud Platform Console, the transfer's start time in a
634 // day is specified in your local timezone.
635 StartTimeOfDay *google_type1.TimeOfDay `protobuf:"bytes,3,opt,name=start_time_of_day,json=startTimeOfDay" json:"start_time_of_day,omitempty"`
638 func (m *Schedule) Reset() { *m = Schedule{} }
639 func (m *Schedule) String() string { return proto.CompactTextString(m) }
640 func (*Schedule) ProtoMessage() {}
641 func (*Schedule) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }
643 func (m *Schedule) GetScheduleStartDate() *google_type.Date {
645 return m.ScheduleStartDate
650 func (m *Schedule) GetScheduleEndDate() *google_type.Date {
652 return m.ScheduleEndDate
657 func (m *Schedule) GetStartTimeOfDay() *google_type1.TimeOfDay {
659 return m.StartTimeOfDay
664 // This resource represents the configuration of a transfer job that runs
666 type TransferJob struct {
667 // A globally unique name assigned by Storage Transfer Service when the
668 // job is created. This field should be left empty in requests to create a new
669 // transfer job; otherwise, the requests result in an `INVALID_ARGUMENT`
671 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
672 // A description provided by the user for the job. Its max length is 1024
673 // bytes when Unicode-encoded.
674 Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
675 // The ID of the Google Cloud Platform Console project that owns the job.
677 ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
678 // Transfer specification.
680 TransferSpec *TransferSpec `protobuf:"bytes,4,opt,name=transfer_spec,json=transferSpec" json:"transfer_spec,omitempty"`
681 // Schedule specification.
683 Schedule *Schedule `protobuf:"bytes,5,opt,name=schedule" json:"schedule,omitempty"`
684 // Status of the job. This value MUST be specified for
685 // `CreateTransferJobRequests`.
687 // NOTE: The effect of the new job status takes place during a subsequent job
688 // run. For example, if you change the job status from `ENABLED` to
689 // `DISABLED`, and an operation spawned by the transfer is running, the status
690 // change would not affect the current operation.
691 Status TransferJob_Status `protobuf:"varint,6,opt,name=status,enum=google.storagetransfer.v1.TransferJob_Status" json:"status,omitempty"`
692 // This field cannot be changed by user requests.
693 CreationTime *google_protobuf4.Timestamp `protobuf:"bytes,7,opt,name=creation_time,json=creationTime" json:"creation_time,omitempty"`
694 // This field cannot be changed by user requests.
695 LastModificationTime *google_protobuf4.Timestamp `protobuf:"bytes,8,opt,name=last_modification_time,json=lastModificationTime" json:"last_modification_time,omitempty"`
696 // This field cannot be changed by user requests.
697 DeletionTime *google_protobuf4.Timestamp `protobuf:"bytes,9,opt,name=deletion_time,json=deletionTime" json:"deletion_time,omitempty"`
700 func (m *TransferJob) Reset() { *m = TransferJob{} }
701 func (m *TransferJob) String() string { return proto.CompactTextString(m) }
702 func (*TransferJob) ProtoMessage() {}
703 func (*TransferJob) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }
705 func (m *TransferJob) GetName() string {
712 func (m *TransferJob) GetDescription() string {
719 func (m *TransferJob) GetProjectId() string {
726 func (m *TransferJob) GetTransferSpec() *TransferSpec {
728 return m.TransferSpec
733 func (m *TransferJob) GetSchedule() *Schedule {
740 func (m *TransferJob) GetStatus() TransferJob_Status {
744 return TransferJob_STATUS_UNSPECIFIED
747 func (m *TransferJob) GetCreationTime() *google_protobuf4.Timestamp {
749 return m.CreationTime
754 func (m *TransferJob) GetLastModificationTime() *google_protobuf4.Timestamp {
756 return m.LastModificationTime
761 func (m *TransferJob) GetDeletionTime() *google_protobuf4.Timestamp {
763 return m.DeletionTime
768 // An entry describing an error that has occurred.
769 type ErrorLogEntry struct {
770 // A URL that refers to the target (a data source, a data sink,
771 // or an object) with which the error is associated.
773 Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
774 // A list of messages that carry the error details.
775 ErrorDetails []string `protobuf:"bytes,3,rep,name=error_details,json=errorDetails" json:"error_details,omitempty"`
778 func (m *ErrorLogEntry) Reset() { *m = ErrorLogEntry{} }
779 func (m *ErrorLogEntry) String() string { return proto.CompactTextString(m) }
780 func (*ErrorLogEntry) ProtoMessage() {}
781 func (*ErrorLogEntry) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} }
783 func (m *ErrorLogEntry) GetUrl() string {
790 func (m *ErrorLogEntry) GetErrorDetails() []string {
792 return m.ErrorDetails
797 // A summary of errors by error code, plus a count and sample error log
799 type ErrorSummary struct {
801 ErrorCode google_rpc.Code `protobuf:"varint,1,opt,name=error_code,json=errorCode,enum=google.rpc.Code" json:"error_code,omitempty"`
802 // Count of this type of error.
804 ErrorCount int64 `protobuf:"varint,2,opt,name=error_count,json=errorCount" json:"error_count,omitempty"`
806 ErrorLogEntries []*ErrorLogEntry `protobuf:"bytes,3,rep,name=error_log_entries,json=errorLogEntries" json:"error_log_entries,omitempty"`
809 func (m *ErrorSummary) Reset() { *m = ErrorSummary{} }
810 func (m *ErrorSummary) String() string { return proto.CompactTextString(m) }
811 func (*ErrorSummary) ProtoMessage() {}
812 func (*ErrorSummary) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} }
814 func (m *ErrorSummary) GetErrorCode() google_rpc.Code {
818 return google_rpc.Code_OK
821 func (m *ErrorSummary) GetErrorCount() int64 {
828 func (m *ErrorSummary) GetErrorLogEntries() []*ErrorLogEntry {
830 return m.ErrorLogEntries
835 // A collection of counters that report the progress of a transfer operation.
836 type TransferCounters struct {
837 // Objects found in the data source that are scheduled to be transferred,
838 // which will be copied, excluded based on conditions, or skipped due to
840 ObjectsFoundFromSource int64 `protobuf:"varint,1,opt,name=objects_found_from_source,json=objectsFoundFromSource" json:"objects_found_from_source,omitempty"`
841 // Bytes found in the data source that are scheduled to be transferred,
842 // which will be copied, excluded based on conditions, or skipped due to
844 BytesFoundFromSource int64 `protobuf:"varint,2,opt,name=bytes_found_from_source,json=bytesFoundFromSource" json:"bytes_found_from_source,omitempty"`
845 // Objects found only in the data sink that are scheduled to be deleted.
846 ObjectsFoundOnlyFromSink int64 `protobuf:"varint,3,opt,name=objects_found_only_from_sink,json=objectsFoundOnlyFromSink" json:"objects_found_only_from_sink,omitempty"`
847 // Bytes found only in the data sink that are scheduled to be deleted.
848 BytesFoundOnlyFromSink int64 `protobuf:"varint,4,opt,name=bytes_found_only_from_sink,json=bytesFoundOnlyFromSink" json:"bytes_found_only_from_sink,omitempty"`
849 // Objects in the data source that are not transferred because they already
850 // exist in the data sink.
851 ObjectsFromSourceSkippedBySync int64 `protobuf:"varint,5,opt,name=objects_from_source_skipped_by_sync,json=objectsFromSourceSkippedBySync" json:"objects_from_source_skipped_by_sync,omitempty"`
852 // Bytes in the data source that are not transferred because they already
853 // exist in the data sink.
854 BytesFromSourceSkippedBySync int64 `protobuf:"varint,6,opt,name=bytes_from_source_skipped_by_sync,json=bytesFromSourceSkippedBySync" json:"bytes_from_source_skipped_by_sync,omitempty"`
855 // Objects that are copied to the data sink.
856 ObjectsCopiedToSink int64 `protobuf:"varint,7,opt,name=objects_copied_to_sink,json=objectsCopiedToSink" json:"objects_copied_to_sink,omitempty"`
857 // Bytes that are copied to the data sink.
858 BytesCopiedToSink int64 `protobuf:"varint,8,opt,name=bytes_copied_to_sink,json=bytesCopiedToSink" json:"bytes_copied_to_sink,omitempty"`
859 // Objects that are deleted from the data source.
860 ObjectsDeletedFromSource int64 `protobuf:"varint,9,opt,name=objects_deleted_from_source,json=objectsDeletedFromSource" json:"objects_deleted_from_source,omitempty"`
861 // Bytes that are deleted from the data source.
862 BytesDeletedFromSource int64 `protobuf:"varint,10,opt,name=bytes_deleted_from_source,json=bytesDeletedFromSource" json:"bytes_deleted_from_source,omitempty"`
863 // Objects that are deleted from the data sink.
864 ObjectsDeletedFromSink int64 `protobuf:"varint,11,opt,name=objects_deleted_from_sink,json=objectsDeletedFromSink" json:"objects_deleted_from_sink,omitempty"`
865 // Bytes that are deleted from the data sink.
866 BytesDeletedFromSink int64 `protobuf:"varint,12,opt,name=bytes_deleted_from_sink,json=bytesDeletedFromSink" json:"bytes_deleted_from_sink,omitempty"`
867 // Objects in the data source that failed during the transfer.
868 ObjectsFromSourceFailed int64 `protobuf:"varint,13,opt,name=objects_from_source_failed,json=objectsFromSourceFailed" json:"objects_from_source_failed,omitempty"`
869 // Bytes in the data source that failed during the transfer.
870 BytesFromSourceFailed int64 `protobuf:"varint,14,opt,name=bytes_from_source_failed,json=bytesFromSourceFailed" json:"bytes_from_source_failed,omitempty"`
871 // Objects that failed to be deleted from the data sink.
872 ObjectsFailedToDeleteFromSink int64 `protobuf:"varint,15,opt,name=objects_failed_to_delete_from_sink,json=objectsFailedToDeleteFromSink" json:"objects_failed_to_delete_from_sink,omitempty"`
873 // Bytes that failed to be deleted from the data sink.
874 BytesFailedToDeleteFromSink int64 `protobuf:"varint,16,opt,name=bytes_failed_to_delete_from_sink,json=bytesFailedToDeleteFromSink" json:"bytes_failed_to_delete_from_sink,omitempty"`
877 func (m *TransferCounters) Reset() { *m = TransferCounters{} }
878 func (m *TransferCounters) String() string { return proto.CompactTextString(m) }
879 func (*TransferCounters) ProtoMessage() {}
880 func (*TransferCounters) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{12} }
882 func (m *TransferCounters) GetObjectsFoundFromSource() int64 {
884 return m.ObjectsFoundFromSource
889 func (m *TransferCounters) GetBytesFoundFromSource() int64 {
891 return m.BytesFoundFromSource
896 func (m *TransferCounters) GetObjectsFoundOnlyFromSink() int64 {
898 return m.ObjectsFoundOnlyFromSink
903 func (m *TransferCounters) GetBytesFoundOnlyFromSink() int64 {
905 return m.BytesFoundOnlyFromSink
910 func (m *TransferCounters) GetObjectsFromSourceSkippedBySync() int64 {
912 return m.ObjectsFromSourceSkippedBySync
917 func (m *TransferCounters) GetBytesFromSourceSkippedBySync() int64 {
919 return m.BytesFromSourceSkippedBySync
924 func (m *TransferCounters) GetObjectsCopiedToSink() int64 {
926 return m.ObjectsCopiedToSink
931 func (m *TransferCounters) GetBytesCopiedToSink() int64 {
933 return m.BytesCopiedToSink
938 func (m *TransferCounters) GetObjectsDeletedFromSource() int64 {
940 return m.ObjectsDeletedFromSource
945 func (m *TransferCounters) GetBytesDeletedFromSource() int64 {
947 return m.BytesDeletedFromSource
952 func (m *TransferCounters) GetObjectsDeletedFromSink() int64 {
954 return m.ObjectsDeletedFromSink
959 func (m *TransferCounters) GetBytesDeletedFromSink() int64 {
961 return m.BytesDeletedFromSink
966 func (m *TransferCounters) GetObjectsFromSourceFailed() int64 {
968 return m.ObjectsFromSourceFailed
973 func (m *TransferCounters) GetBytesFromSourceFailed() int64 {
975 return m.BytesFromSourceFailed
980 func (m *TransferCounters) GetObjectsFailedToDeleteFromSink() int64 {
982 return m.ObjectsFailedToDeleteFromSink
987 func (m *TransferCounters) GetBytesFailedToDeleteFromSink() int64 {
989 return m.BytesFailedToDeleteFromSink
994 // A description of the execution of a transfer.
995 type TransferOperation struct {
996 // A globally unique ID assigned by the system.
997 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
998 // The ID of the Google Cloud Platform Console project that owns the operation.
1000 ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
1001 // Transfer specification.
1003 TransferSpec *TransferSpec `protobuf:"bytes,3,opt,name=transfer_spec,json=transferSpec" json:"transfer_spec,omitempty"`
1004 // Start time of this transfer execution.
1005 StartTime *google_protobuf4.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime" json:"start_time,omitempty"`
1006 // End time of this transfer execution.
1007 EndTime *google_protobuf4.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime" json:"end_time,omitempty"`
1008 // Status of the transfer operation.
1009 Status TransferOperation_Status `protobuf:"varint,6,opt,name=status,enum=google.storagetransfer.v1.TransferOperation_Status" json:"status,omitempty"`
1010 // Information about the progress of the transfer operation.
1011 Counters *TransferCounters `protobuf:"bytes,7,opt,name=counters" json:"counters,omitempty"`
1012 // Summarizes errors encountered with sample error log entries.
1013 ErrorBreakdowns []*ErrorSummary `protobuf:"bytes,8,rep,name=error_breakdowns,json=errorBreakdowns" json:"error_breakdowns,omitempty"`
1014 // The name of the transfer job that triggers this transfer operation.
1015 TransferJobName string `protobuf:"bytes,9,opt,name=transfer_job_name,json=transferJobName" json:"transfer_job_name,omitempty"`
1018 func (m *TransferOperation) Reset() { *m = TransferOperation{} }
1019 func (m *TransferOperation) String() string { return proto.CompactTextString(m) }
1020 func (*TransferOperation) ProtoMessage() {}
1021 func (*TransferOperation) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{13} }
1023 func (m *TransferOperation) GetName() string {
1030 func (m *TransferOperation) GetProjectId() string {
1037 func (m *TransferOperation) GetTransferSpec() *TransferSpec {
1039 return m.TransferSpec
1044 func (m *TransferOperation) GetStartTime() *google_protobuf4.Timestamp {
1051 func (m *TransferOperation) GetEndTime() *google_protobuf4.Timestamp {
1058 func (m *TransferOperation) GetStatus() TransferOperation_Status {
1062 return TransferOperation_STATUS_UNSPECIFIED
1065 func (m *TransferOperation) GetCounters() *TransferCounters {
1072 func (m *TransferOperation) GetErrorBreakdowns() []*ErrorSummary {
1074 return m.ErrorBreakdowns
1079 func (m *TransferOperation) GetTransferJobName() string {
1081 return m.TransferJobName
1087 proto.RegisterType((*GoogleServiceAccount)(nil), "google.storagetransfer.v1.GoogleServiceAccount")
1088 proto.RegisterType((*AwsAccessKey)(nil), "google.storagetransfer.v1.AwsAccessKey")
1089 proto.RegisterType((*ObjectConditions)(nil), "google.storagetransfer.v1.ObjectConditions")
1090 proto.RegisterType((*GcsData)(nil), "google.storagetransfer.v1.GcsData")
1091 proto.RegisterType((*AwsS3Data)(nil), "google.storagetransfer.v1.AwsS3Data")
1092 proto.RegisterType((*HttpData)(nil), "google.storagetransfer.v1.HttpData")
1093 proto.RegisterType((*TransferOptions)(nil), "google.storagetransfer.v1.TransferOptions")
1094 proto.RegisterType((*TransferSpec)(nil), "google.storagetransfer.v1.TransferSpec")
1095 proto.RegisterType((*Schedule)(nil), "google.storagetransfer.v1.Schedule")
1096 proto.RegisterType((*TransferJob)(nil), "google.storagetransfer.v1.TransferJob")
1097 proto.RegisterType((*ErrorLogEntry)(nil), "google.storagetransfer.v1.ErrorLogEntry")
1098 proto.RegisterType((*ErrorSummary)(nil), "google.storagetransfer.v1.ErrorSummary")
1099 proto.RegisterType((*TransferCounters)(nil), "google.storagetransfer.v1.TransferCounters")
1100 proto.RegisterType((*TransferOperation)(nil), "google.storagetransfer.v1.TransferOperation")
1101 proto.RegisterEnum("google.storagetransfer.v1.TransferJob_Status", TransferJob_Status_name, TransferJob_Status_value)
1102 proto.RegisterEnum("google.storagetransfer.v1.TransferOperation_Status", TransferOperation_Status_name, TransferOperation_Status_value)
1105 func init() { proto.RegisterFile("google/storagetransfer/v1/transfer_types.proto", fileDescriptor1) }
1107 var fileDescriptor1 = []byte{
1108 // 1729 bytes of a gzipped FileDescriptorProto
1109 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xdd, 0x72, 0xdb, 0xc6,
1110 0x15, 0x36, 0x45, 0x59, 0x22, 0x0f, 0x49, 0x91, 0xda, 0x38, 0x0a, 0x25, 0xdb, 0x89, 0x0b, 0x25,
1111 0x63, 0xc7, 0x99, 0x92, 0x13, 0x69, 0x32, 0x1d, 0xd7, 0x93, 0xba, 0x94, 0x48, 0x49, 0x8c, 0x15,
1112 0x4b, 0x03, 0x50, 0xd3, 0x9f, 0x8b, 0x62, 0x96, 0xc0, 0x92, 0x46, 0x04, 0x62, 0x51, 0xec, 0xd2,
1113 0x12, 0xa6, 0x57, 0xb9, 0xea, 0x33, 0xf4, 0x45, 0xfa, 0x14, 0x9d, 0xe9, 0x5d, 0x9f, 0xa3, 0x97,
1114 0xbd, 0xec, 0xec, 0x0f, 0x40, 0x10, 0xa2, 0x49, 0xcd, 0xe4, 0x0e, 0x38, 0xe7, 0x7c, 0xdf, 0xd9,
1115 0xf3, 0xc3, 0x73, 0x16, 0x84, 0xd6, 0x98, 0xd2, 0xb1, 0x4f, 0xda, 0x8c, 0xd3, 0x08, 0x8f, 0x09,
1116 0x8f, 0x70, 0xc0, 0x46, 0x24, 0x6a, 0x7f, 0xf8, 0xb6, 0x9d, 0x3c, 0xdb, 0x3c, 0x0e, 0x09, 0x6b,
1117 0x85, 0x11, 0xe5, 0x14, 0xed, 0x2a, 0xfb, 0x56, 0xce, 0xbe, 0xf5, 0xe1, 0xdb, 0xbd, 0x27, 0x9a,
1118 0x0a, 0x87, 0x5e, 0x1b, 0x07, 0x01, 0xe5, 0x98, 0x7b, 0x34, 0xd0, 0xc0, 0xbd, 0xcf, 0xb5, 0x56,
1119 0xbe, 0x0d, 0xa7, 0xa3, 0xb6, 0x3b, 0x8d, 0xa4, 0x81, 0xd6, 0x7f, 0x91, 0xd7, 0x73, 0x6f, 0x42,
1120 0x18, 0xc7, 0x93, 0x50, 0x1b, 0x7c, 0xaa, 0x0d, 0xa2, 0xd0, 0x69, 0x3b, 0xd4, 0x25, 0x5a, 0xbc,
1121 0xa3, 0xc5, 0xe2, 0x90, 0x6d, 0x17, 0xf3, 0x44, 0xfe, 0x38, 0x2b, 0x17, 0x5c, 0x74, 0xe4, 0xe2,
1122 0x58, 0x29, 0x8d, 0xd7, 0xf0, 0xe8, 0x54, 0xaa, 0x2d, 0x12, 0x7d, 0xf0, 0x1c, 0xd2, 0x71, 0x1c,
1123 0x3a, 0x0d, 0x38, 0xda, 0x87, 0x1a, 0x56, 0x8f, 0x36, 0x99, 0x60, 0xcf, 0x6f, 0x16, 0x9e, 0x15,
1124 0x5e, 0x94, 0xcd, 0xaa, 0x16, 0xf6, 0x84, 0xcc, 0xf8, 0x0b, 0x54, 0x3b, 0x37, 0xac, 0xe3, 0x38,
1125 0x84, 0xb1, 0xb7, 0x24, 0x46, 0x86, 0x04, 0x11, 0xc6, 0xec, 0x6b, 0x12, 0xdb, 0x9e, 0xab, 0x41,
1126 0x15, 0x9c, 0x58, 0xf4, 0x5d, 0xf4, 0x12, 0xb6, 0x19, 0x71, 0x22, 0xc2, 0xed, 0x99, 0x69, 0x73,
1127 0x4d, 0xda, 0xd5, 0x95, 0x22, 0xe5, 0x33, 0xfe, 0xb5, 0x06, 0x8d, 0x8b, 0xe1, 0x4f, 0xc4, 0xe1,
1128 0xc7, 0x34, 0x70, 0x3d, 0x99, 0x44, 0x14, 0xc2, 0x8b, 0x89, 0x17, 0xd8, 0x22, 0x10, 0x9b, 0xf8,
1129 0x38, 0x64, 0xc4, 0xb5, 0x99, 0x17, 0x38, 0xc4, 0xf6, 0x31, 0xe3, 0xf6, 0x84, 0xba, 0xde, 0xc8,
1130 0x73, 0x64, 0x42, 0xa5, 0xff, 0xca, 0xc1, 0xae, 0x2e, 0x6d, 0x2b, 0xc9, 0x68, 0xab, 0xab, 0x33,
1131 0x6e, 0xee, 0x4f, 0xbc, 0x60, 0xe0, 0x4d, 0x48, 0x4f, 0x11, 0x59, 0x82, 0xe7, 0x1c, 0x33, 0xfe,
1132 0x63, 0x86, 0x45, 0x7a, 0xc4, 0xb7, 0xf7, 0xf3, 0xb8, 0xb6, 0xda, 0x23, 0xbe, 0x5d, 0xe9, 0xf1,
1133 0x6b, 0x68, 0x78, 0x81, 0xe3, 0x4f, 0x5d, 0x62, 0x87, 0x11, 0x19, 0x79, 0xb7, 0x84, 0x35, 0x8b,
1134 0xcf, 0x8a, 0x22, 0x47, 0x5a, 0x7e, 0xa9, 0xc5, 0xc2, 0x94, 0xdc, 0xe6, 0x4c, 0xd7, 0x95, 0xa9,
1135 0x96, 0x27, 0xa6, 0xc6, 0x4b, 0xd8, 0x3c, 0x75, 0x58, 0x17, 0x73, 0x8c, 0xbe, 0x80, 0xca, 0x70,
1136 0xea, 0x5c, 0x13, 0x6e, 0x07, 0x78, 0x42, 0x74, 0x9d, 0x40, 0x89, 0xde, 0xe1, 0x09, 0x31, 0xfe,
1137 0x06, 0xe5, 0xce, 0x0d, 0xb3, 0x0e, 0xef, 0x65, 0x8d, 0x7e, 0x84, 0x2d, 0x7c, 0xc3, 0xf2, 0x15,
1138 0xad, 0x1c, 0x3c, 0x6f, 0x7d, 0xf4, 0x47, 0xd2, 0xca, 0x76, 0x8e, 0x59, 0xc5, 0x99, 0x37, 0xe3,
1139 0x2b, 0x28, 0x9d, 0x71, 0x1e, 0x4a, 0xdf, 0xbb, 0x50, 0xf2, 0x3d, 0xc6, 0xed, 0x69, 0x94, 0xf4,
1140 0xe0, 0xa6, 0x78, 0xbf, 0x8a, 0x7c, 0xe3, 0xef, 0x6b, 0x50, 0x1f, 0x68, 0xc6, 0x8b, 0x50, 0x75,
1141 0xc7, 0x9f, 0xe0, 0x25, 0xfd, 0x40, 0xa2, 0x9b, 0xc8, 0xe3, 0xc4, 0xa6, 0xb2, 0x77, 0x98, 0x8d,
1142 0xfd, 0x88, 0x60, 0x37, 0xb6, 0xc9, 0xad, 0xc7, 0xb8, 0x17, 0x8c, 0x6d, 0x2f, 0x10, 0x05, 0xbc,
1143 0x96, 0x84, 0x25, 0xf3, 0xab, 0x14, 0xa1, 0x9a, 0x8d, 0x75, 0x94, 0x7d, 0x4f, 0x9b, 0xf7, 0x03,
1144 0xcb, 0x0b, 0xae, 0xd1, 0xef, 0xe1, 0xa9, 0x4b, 0x7c, 0x92, 0xe1, 0x9d, 0x06, 0xde, 0x5f, 0xa7,
1145 0x24, 0x65, 0x5b, 0x93, 0x6c, 0xbb, 0xca, 0x48, 0x53, 0x5d, 0x49, 0x13, 0xcd, 0xf0, 0x07, 0xf8,
1146 0x3a, 0xc7, 0x30, 0x8a, 0xe8, 0xc4, 0x66, 0x74, 0x1a, 0x39, 0xc4, 0xc6, 0x23, 0x2e, 0x46, 0x8c,
1147 0x0e, 0xa8, 0x59, 0x94, 0x6c, 0x5f, 0xce, 0xb1, 0x9d, 0x44, 0x74, 0x62, 0x49, 0xeb, 0x8e, 0x30,
1148 0x4e, 0x82, 0x37, 0xfe, 0xb1, 0x0e, 0xd5, 0xe4, 0xc5, 0x0a, 0x89, 0x83, 0xce, 0xa1, 0x3e, 0x76,
1149 0x98, 0xed, 0x62, 0x8e, 0x35, 0xbd, 0xfe, 0x2d, 0x18, 0x4b, 0x2a, 0xa2, 0x9b, 0xe3, 0xec, 0x81,
1150 0x59, 0x1b, 0xab, 0x47, 0xe5, 0x0b, 0x59, 0x80, 0x44, 0x79, 0xd9, 0xe1, 0x1c, 0xa1, 0x2a, 0xf1,
1151 0x97, 0xcb, 0x4b, 0xac, 0x3a, 0xe8, 0xec, 0x81, 0x59, 0xc7, 0xc9, 0x8b, 0x26, 0xbd, 0x80, 0xc6,
1152 0x7b, 0xce, 0xc3, 0x39, 0xca, 0xa2, 0xa4, 0xdc, 0x5f, 0x42, 0x99, 0xf4, 0xc5, 0xd9, 0x03, 0x73,
1153 0xeb, 0xbd, 0x7e, 0xd6, 0x84, 0x67, 0x50, 0x9b, 0xc5, 0x2c, 0xea, 0xb1, 0x7e, 0xef, 0x88, 0x0b,
1154 0x66, 0x25, 0x89, 0x58, 0xd4, 0xe9, 0x8f, 0xb0, 0xad, 0x0a, 0x64, 0x3b, 0xe9, 0xdc, 0x69, 0x3e,
1155 0x94, 0x6c, 0xdf, 0x2c, 0x61, 0xcb, 0x8f, 0x2a, 0xb3, 0x41, 0xf3, 0xc3, 0xeb, 0x0a, 0x1a, 0xe9,
1156 0x32, 0xa1, 0xaa, 0x65, 0x9b, 0x1b, 0x92, 0xf8, 0xe5, 0x12, 0xe2, 0x5c, 0x93, 0x9b, 0x75, 0x3e,
1157 0x2f, 0x38, 0xaa, 0x41, 0x25, 0x93, 0xc6, 0xa3, 0x0a, 0x94, 0xd3, 0x2c, 0x18, 0xff, 0x2e, 0x40,
1158 0xc9, 0x72, 0xde, 0x13, 0x77, 0xea, 0x13, 0xd4, 0x81, 0x4f, 0x98, 0x7e, 0xb6, 0x19, 0xc7, 0x11,
1159 0x17, 0xe9, 0x4a, 0x7a, 0x63, 0x3b, 0x39, 0x82, 0xd8, 0x14, 0xad, 0x2e, 0xe6, 0xc4, 0xdc, 0x4e,
1160 0xac, 0x2d, 0x61, 0x2c, 0x44, 0xe8, 0x7b, 0x48, 0x85, 0x36, 0x09, 0x5c, 0x45, 0xb0, 0xf6, 0x31,
1161 0x82, 0x7a, 0x62, 0xdb, 0x0b, 0x5c, 0x09, 0xef, 0xc0, 0xb6, 0x72, 0x2c, 0xc7, 0x29, 0x1d, 0xd9,
1162 0x2e, 0x8e, 0x75, 0xdd, 0x77, 0xe6, 0xe0, 0x62, 0x48, 0x5e, 0x8c, 0xba, 0x38, 0x36, 0xb7, 0x24,
1163 0x20, 0x7d, 0x37, 0xfe, 0xb3, 0x0e, 0x95, 0x24, 0x25, 0x3f, 0xd0, 0x21, 0x42, 0xb0, 0x9e, 0x99,
1164 0x4b, 0xf2, 0x19, 0x3d, 0x83, 0x8a, 0x4b, 0x98, 0x13, 0x79, 0x61, 0x3a, 0x96, 0xcb, 0x66, 0x56,
1165 0x84, 0x9e, 0x02, 0x84, 0x11, 0x95, 0x55, 0xf6, 0x5c, 0x79, 0x82, 0xb2, 0x59, 0xd6, 0x92, 0xbe,
1166 0x8b, 0xce, 0xa1, 0x96, 0x56, 0x8a, 0x85, 0xc4, 0xd1, 0xdd, 0xf4, 0xfc, 0x1e, 0x65, 0x12, 0xbf,
1167 0x40, 0xb3, 0xca, 0xb3, 0xbf, 0xc7, 0x37, 0x50, 0x4a, 0x12, 0xa1, 0x1b, 0x69, 0x59, 0x93, 0x27,
1168 0xe5, 0x32, 0x53, 0x10, 0xea, 0xc1, 0x06, 0xe3, 0x98, 0x4f, 0x55, 0xbb, 0x6c, 0x1d, 0xfc, 0xfa,
1169 0x1e, 0xe7, 0xf8, 0x81, 0x0e, 0x5b, 0x96, 0x04, 0x99, 0x1a, 0x8c, 0xde, 0x40, 0xcd, 0x89, 0x88,
1170 0x5c, 0x32, 0xb2, 0x00, 0xcd, 0x4d, 0x79, 0x98, 0xbd, 0x3b, 0xfb, 0x6a, 0x90, 0xdc, 0x39, 0xcc,
1171 0x6a, 0x02, 0x10, 0x22, 0x74, 0x09, 0x3b, 0x77, 0x96, 0x9e, 0x62, 0x2a, 0xad, 0x64, 0x7a, 0xe4,
1172 0xe7, 0xf6, 0x9c, 0x64, 0x7c, 0x03, 0x35, 0x39, 0xe3, 0x52, 0xa2, 0xf2, 0xea, 0x23, 0x25, 0x00,
1173 0x21, 0x32, 0xce, 0x60, 0x43, 0x45, 0x89, 0x76, 0x00, 0x59, 0x83, 0xce, 0xe0, 0xca, 0xb2, 0xaf,
1174 0xde, 0x59, 0x97, 0xbd, 0xe3, 0xfe, 0x49, 0xbf, 0xd7, 0x6d, 0x3c, 0x40, 0x15, 0xd8, 0xec, 0xbd,
1175 0xeb, 0x1c, 0x9d, 0xf7, 0xba, 0x8d, 0x02, 0xaa, 0x42, 0xa9, 0xdb, 0xb7, 0xd4, 0xdb, 0x9a, 0x50,
1176 0x75, 0x7b, 0xe7, 0xbd, 0x41, 0xaf, 0xdb, 0x28, 0x1a, 0x27, 0x50, 0xeb, 0x45, 0x11, 0x8d, 0xce,
1177 0xe9, 0xb8, 0x17, 0xf0, 0x28, 0x46, 0x0d, 0x28, 0xce, 0xf6, 0x8e, 0x78, 0x14, 0xf7, 0x22, 0x22,
1178 0x4c, 0x6c, 0x97, 0x70, 0xec, 0xf9, 0xc9, 0x5a, 0xae, 0x4a, 0x61, 0x57, 0xc9, 0x8c, 0x7f, 0x16,
1179 0xa0, 0x2a, 0x89, 0xac, 0xe9, 0x64, 0x82, 0xa3, 0x18, 0xb5, 0x01, 0x14, 0x4a, 0x5c, 0xd7, 0x24,
1180 0xdd, 0xd6, 0x41, 0x23, 0x09, 0x30, 0x0a, 0x9d, 0xd6, 0x31, 0x75, 0x89, 0x59, 0x96, 0x36, 0xe2,
1181 0x51, 0x6c, 0xdc, 0x04, 0x30, 0x0d, 0xb8, 0x6c, 0xdf, 0xa2, 0x09, 0x5a, 0x2f, 0xee, 0x67, 0x03,
1182 0xd8, 0x56, 0x06, 0x3e, 0x1d, 0xdb, 0x24, 0xe0, 0x91, 0xa7, 0xaf, 0x08, 0x95, 0x83, 0x17, 0x4b,
1183 0x5a, 0x63, 0x2e, 0x3c, 0xb3, 0x4e, 0x32, 0xaf, 0x1e, 0x61, 0xc6, 0x7f, 0x37, 0xa1, 0x91, 0x74,
1184 0x8f, 0xf4, 0x43, 0x22, 0x86, 0x5e, 0xc1, 0x6e, 0xba, 0xae, 0xe8, 0x34, 0x70, 0xb3, 0x4b, 0x4b,
1185 0xc6, 0x52, 0x34, 0x77, 0xb4, 0xc1, 0x89, 0xd0, 0xcf, 0x96, 0x14, 0xfa, 0x0e, 0x3e, 0x1b, 0xc6,
1186 0x9c, 0x2c, 0x02, 0xaa, 0x90, 0x1e, 0x49, 0x75, 0x1e, 0xf6, 0x3b, 0x78, 0x32, 0xef, 0x91, 0x06,
1187 0x7e, 0xac, 0xd1, 0x62, 0xb0, 0x17, 0x25, 0xb6, 0x99, 0x75, 0x7a, 0x11, 0xf8, 0xb1, 0x64, 0x10,
1188 0xf3, 0xfb, 0xb7, 0xb0, 0x97, 0x75, 0x9b, 0x43, 0xaf, 0xab, 0x23, 0xcf, 0x3c, 0xcf, 0x61, 0xdf,
1189 0xc2, 0xfe, 0xa2, 0xe5, 0xcc, 0xae, 0xbd, 0x30, 0x24, 0xae, 0x3d, 0x8c, 0x6d, 0x16, 0x07, 0x8e,
1190 0xfc, 0x11, 0x17, 0xcd, 0xcf, 0x69, 0x7e, 0x2f, 0x5b, 0xca, 0xee, 0x28, 0xb6, 0xe2, 0xc0, 0x41,
1191 0xa7, 0xf0, 0x2b, 0x7d, 0x90, 0x25, 0x54, 0x1b, 0x92, 0xea, 0x89, 0x3a, 0xcf, 0x47, 0x88, 0x0e,
1192 0x21, 0x49, 0xb1, 0xed, 0xd0, 0xd0, 0x23, 0xae, 0xcd, 0xa9, 0x8a, 0x66, 0x53, 0xa2, 0x3f, 0xd1,
1193 0xda, 0x63, 0xa9, 0x1c, 0x50, 0x19, 0x4a, 0x1b, 0x54, 0x7a, 0xf3, 0x90, 0x92, 0x84, 0x6c, 0x4b,
1194 0xdd, 0x1c, 0xe0, 0x7b, 0x78, 0x9c, 0x78, 0x51, 0xd7, 0x8e, 0xf9, 0x92, 0x95, 0xe7, 0xd2, 0xde,
1195 0x55, 0x16, 0x99, 0xb2, 0xbd, 0x82, 0x5d, 0xe5, 0x6f, 0x11, 0x18, 0x32, 0x59, 0x5f, 0x08, 0x5d,
1196 0xec, 0x59, 0x9c, 0xb7, 0x32, 0xd7, 0x63, 0x59, 0xb0, 0x38, 0x74, 0xda, 0x63, 0x77, 0x81, 0xd5,
1197 0x4c, 0x8f, 0xe5, 0x61, 0xaf, 0x61, 0x6f, 0x51, 0x9d, 0x47, 0xd8, 0xf3, 0x89, 0xdb, 0xac, 0x49,
1198 0xe4, 0x67, 0x77, 0xca, 0x7b, 0x22, 0xd5, 0xe8, 0x37, 0xd0, 0xbc, 0x5b, 0x57, 0x0d, 0xdd, 0x92,
1199 0xd0, 0x4f, 0x73, 0xe5, 0xd4, 0xc0, 0x3e, 0x18, 0xa9, 0x57, 0x29, 0x11, 0x45, 0xd1, 0x77, 0xc2,
1200 0xd9, 0xb9, 0xeb, 0x92, 0xe2, 0x69, 0xe2, 0x5d, 0x1a, 0x0e, 0xa8, 0x8a, 0x20, 0x0d, 0xa0, 0x07,
1201 0xcf, 0xf4, 0x19, 0x3e, 0x4e, 0xd4, 0x90, 0x44, 0x8f, 0xd5, 0x59, 0x16, 0xd2, 0x18, 0x3f, 0x3f,
1202 0x84, 0xed, 0xd9, 0xfd, 0x82, 0xa8, 0xaf, 0x94, 0x85, 0x2b, 0x75, 0x7e, 0x61, 0xae, 0xad, 0x5c,
1203 0x98, 0xc5, 0x5f, 0xb2, 0x30, 0x5f, 0x01, 0xcc, 0xae, 0x09, 0x7a, 0xf7, 0x2e, 0x5b, 0x09, 0xe5,
1204 0xf4, 0x8e, 0x80, 0xbe, 0x83, 0x92, 0xb8, 0x97, 0x48, 0xe0, 0xc3, 0x95, 0xc0, 0x4d, 0x12, 0xb8,
1205 0x12, 0xf6, 0x36, 0xb7, 0x61, 0x0f, 0xef, 0x75, 0x21, 0xd3, 0x09, 0xcb, 0xef, 0xd9, 0x53, 0x28,
1206 0x39, 0x7a, 0x7e, 0xea, 0x15, 0xfb, 0xcd, 0x3d, 0xe8, 0x92, 0x91, 0x6b, 0xa6, 0x60, 0x64, 0x42,
1207 0x43, 0xcd, 0xf9, 0x61, 0x44, 0xf0, 0xb5, 0x4b, 0x6f, 0x02, 0xd6, 0x2c, 0xc9, 0x31, 0xff, 0x7c,
1208 0xd5, 0x98, 0xd7, 0xcb, 0x47, 0x4f, 0xf9, 0xa3, 0x14, 0x2f, 0x3e, 0xc1, 0xd3, 0x4a, 0xfd, 0x44,
1209 0x87, 0xea, 0xa3, 0xae, 0xac, 0x3e, 0xc1, 0xf9, 0xec, 0xee, 0x20, 0xbf, 0x03, 0x9d, 0x95, 0xcb,
1210 0xb5, 0x0e, 0x95, 0xfe, 0x3b, 0xfb, 0xd2, 0xbc, 0x38, 0x35, 0x7b, 0x96, 0xd5, 0x28, 0x20, 0x80,
1211 0x8d, 0xcb, 0xce, 0x95, 0x95, 0xac, 0x57, 0xeb, 0xea, 0xf8, 0x58, 0x28, 0x8a, 0x42, 0x71, 0xd2,
1212 0xe9, 0x8b, 0xbd, 0xbb, 0x2e, 0x14, 0x9d, 0xa3, 0x0b, 0x53, 0xec, 0xdd, 0x87, 0x47, 0x3f, 0x17,
1213 0x60, 0xdf, 0xa1, 0x93, 0x25, 0x01, 0xc9, 0xc2, 0x1d, 0xd5, 0x92, 0x44, 0x0d, 0xe2, 0x90, 0xb0,
1214 0x3f, 0x9f, 0x69, 0xfb, 0x31, 0xf5, 0x71, 0x30, 0x6e, 0xd1, 0x68, 0xdc, 0x1e, 0x93, 0x40, 0x9a,
1215 0xb6, 0x95, 0x0a, 0x87, 0x1e, 0x5b, 0xf0, 0x87, 0xce, 0xeb, 0x9c, 0xe8, 0x7f, 0x85, 0xc2, 0x70,
1216 0x43, 0xe2, 0x0e, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xed, 0xb3, 0x1d, 0xf0, 0x07, 0x12, 0x00,