google-cloud-storage_transfer-v1 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -59,13 +59,6 @@ module Google
59
59
  # @return [::String]
60
60
  # Required. Azure shared access signature (SAS).
61
61
  #
62
- # <aside class="note">
63
- # <strong>Note:</strong>Copying data from Azure Data Lake
64
- # Storage (ADLS) Gen 2 is in [Preview](/products/#product-launch-stages).
65
- # During Preview, if you are copying data from ADLS Gen 2, you must use an
66
- # account SAS.
67
- # </aside>
68
- #
69
62
  # For more information about SAS, see
70
63
  # [Grant limited access to Azure Storage resources using shared access
71
64
  # signatures
@@ -75,42 +68,42 @@ module Google
75
68
  extend ::Google::Protobuf::MessageExts::ClassMethods
76
69
  end
77
70
 
78
- # Conditions that determine which objects will be transferred. Applies only
71
+ # Conditions that determine which objects are transferred. Applies only
79
72
  # to Cloud Data Sources such as S3, Azure, and Cloud Storage.
80
73
  #
81
74
  # The "last modification time" refers to the time of the
82
75
  # last change to the object's content or metadata — specifically, this is
83
76
  # the `updated` property of Cloud Storage objects, the `LastModified` field
84
77
  # of S3 objects, and the `Last-Modified` header of Azure blobs.
78
+ #
79
+ # Transfers with a {::Google::Cloud::StorageTransfer::V1::PosixFilesystem PosixFilesystem} source or destination don't support
80
+ # `ObjectConditions`.
85
81
  # @!attribute [rw] min_time_elapsed_since_last_modification
86
82
  # @return [::Google::Protobuf::Duration]
87
- # If specified, only objects with a "last modification time" before
88
- # `NOW` - `min_time_elapsed_since_last_modification` and objects that don't
89
- # have a "last modification time" are transferred.
90
- #
91
- # For each {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation}
92
- # started by this {::Google::Cloud::StorageTransfer::V1::TransferJob TransferJob}, `NOW`
93
- # refers to the [start_time]
94
- # [google.storagetransfer.v1.TransferOperation.start_time] of the
95
- # `TransferOperation`.
83
+ # Ensures that objects are not transferred until a specific minimum time
84
+ # has elapsed after the "last modification time". When a
85
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} begins, objects with a "last modification time" are
86
+ # transferred only if the elapsed time between the
87
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation#start_time start_time} of the `TransferOperation`
88
+ # and the "last modification time" of the object is equal to or
89
+ # greater than the value of min_time_elapsed_since_last_modification`.
90
+ # Objects that do not have a "last modification time" are also transferred.
96
91
  # @!attribute [rw] max_time_elapsed_since_last_modification
97
92
  # @return [::Google::Protobuf::Duration]
98
- # If specified, only objects with a "last modification time" on or after
99
- # `NOW` - `max_time_elapsed_since_last_modification` and objects that don't
100
- # have a "last modification time" are transferred.
101
- #
102
- # For each {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation}
103
- # started by this {::Google::Cloud::StorageTransfer::V1::TransferJob TransferJob},
104
- # `NOW` refers to the [start_time]
105
- # [google.storagetransfer.v1.TransferOperation.start_time] of the
106
- # `TransferOperation`.
93
+ # Ensures that objects are not transferred if a specific maximum time
94
+ # has elapsed since the "last modification time".
95
+ # When a {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} begins, objects with a
96
+ # "last modification time" are transferred only if the elapsed time
97
+ # between the {::Google::Cloud::StorageTransfer::V1::TransferOperation#start_time start_time} of the
98
+ # `TransferOperation`and the "last modification time" of the object
99
+ # is less than the value of max_time_elapsed_since_last_modification`.
100
+ # Objects that do not have a "last modification time" are also transferred.
107
101
  # @!attribute [rw] include_prefixes
108
102
  # @return [::Array<::String>]
109
103
  # If you specify `include_prefixes`, Storage Transfer Service uses the items
110
104
  # in the `include_prefixes` array to determine which objects to include in a
111
105
  # transfer. Objects must start with one of the matching `include_prefixes`
112
- # for inclusion in the transfer. If [exclude_prefixes]
113
- # [google.storagetransfer.v1.ObjectConditions.exclude_prefixes] is specified,
106
+ # for inclusion in the transfer. If {::Google::Cloud::StorageTransfer::V1::ObjectConditions#exclude_prefixes exclude_prefixes} is specified,
114
107
  # objects must not start with any of the `exclude_prefixes` specified for
115
108
  # inclusion in the transfer.
116
109
  #
@@ -159,10 +152,8 @@ module Google
159
152
  # namespace. No exclude-prefix may be a prefix of another
160
153
  # exclude-prefix.
161
154
  #
162
- # * If [include_prefixes]
163
- # [google.storagetransfer.v1.ObjectConditions.include_prefixes] is
164
- # specified, then each exclude-prefix must start with the value of a path
165
- # explicitly included by `include_prefixes`.
155
+ # * If {::Google::Cloud::StorageTransfer::V1::ObjectConditions#include_prefixes include_prefixes} is specified, then each exclude-prefix must
156
+ # start with the value of a path explicitly included by `include_prefixes`.
166
157
  #
167
158
  # The max size of `exclude_prefixes` is 1000.
168
159
  #
@@ -185,7 +176,7 @@ module Google
185
176
  # @!attribute [rw] last_modified_before
186
177
  # @return [::Google::Protobuf::Timestamp]
187
178
  # If specified, only objects with a "last modification time" before this
188
- # timestamp and objects that don't have a "last modification time" will be
179
+ # timestamp and objects that don't have a "last modification time" are
189
180
  # transferred.
190
181
  class ObjectConditions
191
182
  include ::Google::Protobuf::MessageExts
@@ -224,9 +215,9 @@ module Google
224
215
  # bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
225
216
  # @!attribute [rw] aws_access_key
226
217
  # @return [::Google::Cloud::StorageTransfer::V1::AwsAccessKey]
227
- # Input only. AWS access key used to sign the API requests to the AWS S3
228
- # bucket. Permissions on the bucket must be granted to the access ID of the
229
- # AWS access key. This field is required.
218
+ # Input only. AWS access key used to sign the API requests to the AWS S3 bucket.
219
+ # Permissions on the bucket must be granted to the access ID of the AWS
220
+ # access key.
230
221
  #
231
222
  # For information on our data retention policy for user credentials, see
232
223
  # [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -239,12 +230,14 @@ module Google
239
230
  # a '/'.
240
231
  # @!attribute [rw] role_arn
241
232
  # @return [::String]
242
- # Input only. Role arn to support temporary credentials via
243
- # AssumeRoleWithWebIdentity.
233
+ # The Amazon Resource Name (ARN) of the role to support temporary
234
+ # credentials via `AssumeRoleWithWebIdentity`. For more information about
235
+ # ARNs, see [IAM
236
+ # ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).
244
237
  #
245
- # When role arn is provided, transfer service will fetch temporary
246
- # credentials for the session using AssumeRoleWithWebIdentity call for the
247
- # provided role using the [GoogleServiceAccount] for this project.
238
+ # When a role ARN is provided, Transfer Service fetches temporary
239
+ # credentials for the session using a `AssumeRoleWithWebIdentity` call for
240
+ # the provided role using the {::Google::Cloud::StorageTransfer::V1::GoogleServiceAccount GoogleServiceAccount} for this project.
248
241
  class AwsS3Data
249
242
  include ::Google::Protobuf::MessageExts
250
243
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -262,8 +255,7 @@ module Google
262
255
  # Required. The name of the Azure Storage account.
263
256
  # @!attribute [rw] azure_credentials
264
257
  # @return [::Google::Cloud::StorageTransfer::V1::AzureCredentials]
265
- # Required. Input only. Credentials used to authenticate API requests to
266
- # Azure.
258
+ # Required. Input only. Credentials used to authenticate API requests to Azure.
267
259
  #
268
260
  # For information on our data retention policy for user credentials, see
269
261
  # [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -306,10 +298,10 @@ module Google
306
298
  # `<hostname>/<URL-path>`.
307
299
  #
308
300
  # * If the specified size of an object does not match the actual size of the
309
- # object fetched, the object will not be transferred.
301
+ # object fetched, the object is not transferred.
310
302
  #
311
303
  # * If the specified MD5 does not match the MD5 computed from the transferred
312
- # bytes, the object transfer will fail.
304
+ # bytes, the object transfer fails.
313
305
  #
314
306
  # * Ensure that each URL you specify is publicly accessible. For
315
307
  # example, in Cloud Storage you can
@@ -320,8 +312,7 @@ module Google
320
312
  # HTTP server to support `Range` requests and to return a `Content-Length`
321
313
  # header in each response.
322
314
  #
323
- # * {::Google::Cloud::StorageTransfer::V1::ObjectConditions ObjectConditions} have no
324
- # effect when filtering objects to transfer.
315
+ # * {::Google::Cloud::StorageTransfer::V1::ObjectConditions ObjectConditions} have no effect when filtering objects to transfer.
325
316
  # @!attribute [rw] list_url
326
317
  # @return [::String]
327
318
  # Required. The URL that points to the file that stores the object list
@@ -332,37 +323,122 @@ module Google
332
323
  extend ::Google::Protobuf::MessageExts::ClassMethods
333
324
  end
334
325
 
326
+ # A POSIX filesystem resource.
327
+ # @!attribute [rw] root_directory
328
+ # @return [::String]
329
+ # Root directory path to the filesystem.
330
+ class PosixFilesystem
331
+ include ::Google::Protobuf::MessageExts
332
+ extend ::Google::Protobuf::MessageExts::ClassMethods
333
+ end
334
+
335
+ # Represents an On-Premises Agent pool.
336
+ # @!attribute [rw] name
337
+ # @return [::String]
338
+ # Required. Specifies a unique string that identifies the agent pool.
339
+ #
340
+ # Format: `projects/{project_id}/agentPools/{agent_pool_id}`
341
+ # @!attribute [rw] display_name
342
+ # @return [::String]
343
+ # Specifies the client-specified AgentPool description.
344
+ # @!attribute [r] state
345
+ # @return [::Google::Cloud::StorageTransfer::V1::AgentPool::State]
346
+ # Output only. Specifies the state of the AgentPool.
347
+ # @!attribute [rw] bandwidth_limit
348
+ # @return [::Google::Cloud::StorageTransfer::V1::AgentPool::BandwidthLimit]
349
+ # Specifies the bandwidth limit details. If this field is unspecified, the
350
+ # default value is set as 'No Limit'.
351
+ class AgentPool
352
+ include ::Google::Protobuf::MessageExts
353
+ extend ::Google::Protobuf::MessageExts::ClassMethods
354
+
355
+ # Specifies a bandwidth limit for an agent pool.
356
+ # @!attribute [rw] limit_mbps
357
+ # @return [::Integer]
358
+ # Bandwidth rate in megabytes per second, distributed across all the agents
359
+ # in the pool.
360
+ class BandwidthLimit
361
+ include ::Google::Protobuf::MessageExts
362
+ extend ::Google::Protobuf::MessageExts::ClassMethods
363
+ end
364
+
365
+ # The state of an AgentPool.
366
+ module State
367
+ # Default value. This value is unused.
368
+ STATE_UNSPECIFIED = 0
369
+
370
+ # This is an initialization state. During this stage, the resources such as
371
+ # Pub/Sub topics are allocated for the AgentPool.
372
+ CREATING = 1
373
+
374
+ # Determines that the AgentPool is created for use. At this state, Agents
375
+ # can join the AgentPool and participate in the transfer jobs in that pool.
376
+ CREATED = 2
377
+
378
+ # Determines that the AgentPool deletion has been initiated, and all the
379
+ # resources are scheduled to be cleaned up and freed.
380
+ DELETING = 3
381
+ end
382
+ end
383
+
335
384
  # TransferOptions define the actions to be performed on objects in a transfer.
336
385
  # @!attribute [rw] overwrite_objects_already_existing_in_sink
337
386
  # @return [::Boolean]
338
387
  # When to overwrite objects that already exist in the sink. The default is
339
388
  # that only objects that are different from the source are ovewritten. If
340
389
  # true, all objects in the sink whose name matches an object in the source
341
- # will be overwritten with the source object.
390
+ # are overwritten with the source object.
342
391
  # @!attribute [rw] delete_objects_unique_in_sink
343
392
  # @return [::Boolean]
344
393
  # Whether objects that exist only in the sink should be deleted.
345
394
  #
346
- # **Note:** This option and [delete_objects_from_source_after_transfer]
347
- # [google.storagetransfer.v1.TransferOptions.delete_objects_from_source_after_transfer]
348
- # are mutually exclusive.
395
+ # **Note:** This option and {::Google::Cloud::StorageTransfer::V1::TransferOptions#delete_objects_from_source_after_transfer delete_objects_from_source_after_transfer} are
396
+ # mutually exclusive.
349
397
  # @!attribute [rw] delete_objects_from_source_after_transfer
350
398
  # @return [::Boolean]
351
399
  # Whether objects should be deleted from the source after they are
352
400
  # transferred to the sink.
353
401
  #
354
- # **Note:** This option and [delete_objects_unique_in_sink]
355
- # [google.storagetransfer.v1.TransferOptions.delete_objects_unique_in_sink]
356
- # are mutually exclusive.
402
+ # **Note:** This option and {::Google::Cloud::StorageTransfer::V1::TransferOptions#delete_objects_unique_in_sink delete_objects_unique_in_sink} are mutually
403
+ # exclusive.
404
+ # @!attribute [rw] overwrite_when
405
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferOptions::OverwriteWhen]
406
+ # When to overwrite objects that already exist in the sink. If not set
407
+ # overwrite behavior is determined by
408
+ # {::Google::Cloud::StorageTransfer::V1::TransferOptions#overwrite_objects_already_existing_in_sink overwrite_objects_already_existing_in_sink}.
409
+ # @!attribute [rw] metadata_options
410
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions]
411
+ # Represents the selected metadata options for a transfer job. This feature
412
+ # is in Preview.
357
413
  class TransferOptions
358
414
  include ::Google::Protobuf::MessageExts
359
415
  extend ::Google::Protobuf::MessageExts::ClassMethods
416
+
417
+ # Specifies when to overwrite an object in the sink when an object with
418
+ # matching name is found in the source.
419
+ module OverwriteWhen
420
+ # Indicate the option is not set.
421
+ OVERWRITE_WHEN_UNSPECIFIED = 0
422
+
423
+ # Overwrite destination object with source if the two objects are
424
+ # different.
425
+ DIFFERENT = 1
426
+
427
+ # Never overwrite destination object.
428
+ NEVER = 2
429
+
430
+ # Always overwrite destination object.
431
+ ALWAYS = 3
432
+ end
360
433
  end
361
434
 
362
435
  # Configuration for running a transfer.
363
436
  # @!attribute [rw] gcs_data_sink
364
437
  # @return [::Google::Cloud::StorageTransfer::V1::GcsData]
365
438
  # A Cloud Storage data sink.
439
+ # @!attribute [rw] posix_data_sink
440
+ # @return [::Google::Cloud::StorageTransfer::V1::PosixFilesystem]
441
+ # A POSIX Filesystem data sink.
366
442
  # @!attribute [rw] gcs_data_source
367
443
  # @return [::Google::Cloud::StorageTransfer::V1::GcsData]
368
444
  # A Cloud Storage data source.
@@ -372,9 +448,15 @@ module Google
372
448
  # @!attribute [rw] http_data_source
373
449
  # @return [::Google::Cloud::StorageTransfer::V1::HttpData]
374
450
  # An HTTP URL data source.
451
+ # @!attribute [rw] posix_data_source
452
+ # @return [::Google::Cloud::StorageTransfer::V1::PosixFilesystem]
453
+ # A POSIX Filesystem data source.
375
454
  # @!attribute [rw] azure_blob_storage_data_source
376
455
  # @return [::Google::Cloud::StorageTransfer::V1::AzureBlobStorageData]
377
456
  # An Azure Blob Storage data source.
457
+ # @!attribute [rw] gcs_intermediate_data_location
458
+ # @return [::Google::Cloud::StorageTransfer::V1::GcsData]
459
+ # Cloud Storage intermediate data location.
378
460
  # @!attribute [rw] object_conditions
379
461
  # @return [::Google::Cloud::StorageTransfer::V1::ObjectConditions]
380
462
  # Only objects that satisfy these object conditions are included in the set
@@ -387,42 +469,246 @@ module Google
387
469
  # is `true` and time-based object conditions such as 'last modification time'
388
470
  # are specified, the request fails with an
389
471
  # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT} error.
472
+ # @!attribute [rw] transfer_manifest
473
+ # @return [::Google::Cloud::StorageTransfer::V1::TransferManifest]
474
+ # A manifest file provides a list of objects to be transferred from the data
475
+ # source. This field points to the location of the manifest file.
476
+ # Otherwise, the entire source bucket is used. ObjectConditions still apply.
477
+ # @!attribute [rw] source_agent_pool_name
478
+ # @return [::String]
479
+ # Specifies the agent pool name associated with the posix data source. When
480
+ # unspecified, the default name is used.
481
+ # @!attribute [rw] sink_agent_pool_name
482
+ # @return [::String]
483
+ # Specifies the agent pool name associated with the posix data sink. When
484
+ # unspecified, the default name is used.
390
485
  class TransferSpec
391
486
  include ::Google::Protobuf::MessageExts
392
487
  extend ::Google::Protobuf::MessageExts::ClassMethods
393
488
  end
394
489
 
490
+ # Specifies the metadata options for running a transfer.
491
+ # @!attribute [rw] symlink
492
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::Symlink]
493
+ # Specifies how symlinks should be handled by the transfer. By default,
494
+ # symlinks are not preserved. Only applicable to transfers involving
495
+ # POSIX file systems, and ignored for other transfers.
496
+ # @!attribute [rw] mode
497
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::Mode]
498
+ # Specifies how each file's mode attribute should be handled by the transfer.
499
+ # By default, mode is not preserved. Only applicable to transfers involving
500
+ # POSIX file systems, and ignored for other transfers.
501
+ # @!attribute [rw] gid
502
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::GID]
503
+ # Specifies how each file's POSIX group ID (GID) attribute should be handled
504
+ # by the transfer. By default, GID is not preserved. Only applicable to
505
+ # transfers involving POSIX file systems, and ignored for other transfers.
506
+ # @!attribute [rw] uid
507
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::UID]
508
+ # Specifies how each file's POSIX user ID (UID) attribute should be handled
509
+ # by the transfer. By default, UID is not preserved. Only applicable to
510
+ # transfers involving POSIX file systems, and ignored for other transfers.
511
+ # @!attribute [rw] acl
512
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::Acl]
513
+ # Specifies how each object's ACLs should be preserved for transfers between
514
+ # Google Cloud Storage buckets. If unspecified, the default behavior is the
515
+ # same as ACL_DESTINATION_BUCKET_DEFAULT.
516
+ # @!attribute [rw] storage_class
517
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::StorageClass]
518
+ # Specifies the storage class to set on objects being transferred to Google
519
+ # Cloud Storage buckets. If unspecified, the default behavior is the same as
520
+ # {::Google::Cloud::StorageTransfer::V1::MetadataOptions::StorageClass::STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT}.
521
+ # @!attribute [rw] temporary_hold
522
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::TemporaryHold]
523
+ # Specifies how each object's temporary hold status should be preserved for
524
+ # transfers between Google Cloud Storage buckets. If unspecified, the
525
+ # default behavior is the same as
526
+ # {::Google::Cloud::StorageTransfer::V1::MetadataOptions::TemporaryHold::TEMPORARY_HOLD_PRESERVE TEMPORARY_HOLD_PRESERVE}.
527
+ # @!attribute [rw] kms_key
528
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::KmsKey]
529
+ # Specifies how each object's Cloud KMS customer-managed encryption key
530
+ # (CMEK) is preserved for transfers between Google Cloud Storage buckets. If
531
+ # unspecified, the default behavior is the same as
532
+ # {::Google::Cloud::StorageTransfer::V1::MetadataOptions::KmsKey::KMS_KEY_DESTINATION_BUCKET_DEFAULT KMS_KEY_DESTINATION_BUCKET_DEFAULT}.
533
+ # @!attribute [rw] time_created
534
+ # @return [::Google::Cloud::StorageTransfer::V1::MetadataOptions::TimeCreated]
535
+ # Specifies how each object's `timeCreated` metadata is preserved for
536
+ # transfers between Google Cloud Storage buckets. If unspecified, the
537
+ # default behavior is the same as
538
+ # {::Google::Cloud::StorageTransfer::V1::MetadataOptions::TimeCreated::TIME_CREATED_SKIP TIME_CREATED_SKIP}.
539
+ class MetadataOptions
540
+ include ::Google::Protobuf::MessageExts
541
+ extend ::Google::Protobuf::MessageExts::ClassMethods
542
+
543
+ # Whether symlinks should be skipped or preserved during a transfer job.
544
+ module Symlink
545
+ # Symlink behavior is unspecified.
546
+ SYMLINK_UNSPECIFIED = 0
547
+
548
+ # Do not preserve symlinks during a transfer job.
549
+ SYMLINK_SKIP = 1
550
+
551
+ # Preserve symlinks during a transfer job.
552
+ SYMLINK_PRESERVE = 2
553
+ end
554
+
555
+ # Options for handling file mode attribute.
556
+ module Mode
557
+ # Mode behavior is unspecified.
558
+ MODE_UNSPECIFIED = 0
559
+
560
+ # Do not preserve mode during a transfer job.
561
+ MODE_SKIP = 1
562
+
563
+ # Preserve mode during a transfer job.
564
+ MODE_PRESERVE = 2
565
+ end
566
+
567
+ # Options for handling file GID attribute.
568
+ module GID
569
+ # GID behavior is unspecified.
570
+ GID_UNSPECIFIED = 0
571
+
572
+ # Do not preserve GID during a transfer job.
573
+ GID_SKIP = 1
574
+
575
+ # Preserve GID during a transfer job.
576
+ GID_NUMBER = 2
577
+ end
578
+
579
+ # Options for handling file UID attribute.
580
+ module UID
581
+ # UID behavior is unspecified.
582
+ UID_UNSPECIFIED = 0
583
+
584
+ # Do not preserve UID during a transfer job.
585
+ UID_SKIP = 1
586
+
587
+ # Preserve UID during a transfer job.
588
+ UID_NUMBER = 2
589
+ end
590
+
591
+ # Options for handling Cloud Storage object ACLs.
592
+ module Acl
593
+ # ACL behavior is unspecified.
594
+ ACL_UNSPECIFIED = 0
595
+
596
+ # Use the destination bucket's default object ACLS, if applicable.
597
+ ACL_DESTINATION_BUCKET_DEFAULT = 1
598
+
599
+ # Preserve the object's original ACLs. This requires the service account
600
+ # to have `storage.objects.getIamPolicy` permission for the source object.
601
+ # [Uniform bucket-level
602
+ # access](https://cloud.google.com/storage/docs/uniform-bucket-level-access)
603
+ # must not be enabled on either the source or destination buckets.
604
+ ACL_PRESERVE = 2
605
+ end
606
+
607
+ # Options for handling Google Cloud Storage object storage class.
608
+ module StorageClass
609
+ # Storage class behavior is unspecified.
610
+ STORAGE_CLASS_UNSPECIFIED = 0
611
+
612
+ # Use the destination bucket's default storage class.
613
+ STORAGE_CLASS_DESTINATION_BUCKET_DEFAULT = 1
614
+
615
+ # Preserve the object's original storage class. This is only supported for
616
+ # transfers from Google Cloud Storage buckets.
617
+ STORAGE_CLASS_PRESERVE = 2
618
+
619
+ # Set the storage class to STANDARD.
620
+ STORAGE_CLASS_STANDARD = 3
621
+
622
+ # Set the storage class to NEARLINE.
623
+ STORAGE_CLASS_NEARLINE = 4
624
+
625
+ # Set the storage class to COLDLINE.
626
+ STORAGE_CLASS_COLDLINE = 5
627
+
628
+ # Set the storage class to ARCHIVE.
629
+ STORAGE_CLASS_ARCHIVE = 6
630
+ end
631
+
632
+ # Options for handling temporary holds for Google Cloud Storage objects.
633
+ module TemporaryHold
634
+ # Temporary hold behavior is unspecified.
635
+ TEMPORARY_HOLD_UNSPECIFIED = 0
636
+
637
+ # Do not set a temporary hold on the destination object.
638
+ TEMPORARY_HOLD_SKIP = 1
639
+
640
+ # Preserve the object's original temporary hold status.
641
+ TEMPORARY_HOLD_PRESERVE = 2
642
+ end
643
+
644
+ # Options for handling the KmsKey setting for Google Cloud Storage objects.
645
+ module KmsKey
646
+ # KmsKey behavior is unspecified.
647
+ KMS_KEY_UNSPECIFIED = 0
648
+
649
+ # Use the destination bucket's default encryption settings.
650
+ KMS_KEY_DESTINATION_BUCKET_DEFAULT = 1
651
+
652
+ # Preserve the object's original Cloud KMS customer-managed encryption key
653
+ # (CMEK) if present. Objects that do not use a Cloud KMS encryption key
654
+ # will be encrypted using the destination bucket's encryption settings.
655
+ KMS_KEY_PRESERVE = 2
656
+ end
657
+
658
+ # Options for handling `timeCreated` metadata for Google Cloud Storage
659
+ # objects.
660
+ module TimeCreated
661
+ # TimeCreated behavior is unspecified.
662
+ TIME_CREATED_UNSPECIFIED = 0
663
+
664
+ # Do not preserve the `timeCreated` metadata from the source object.
665
+ TIME_CREATED_SKIP = 1
666
+
667
+ # Preserves the source object's `timeCreated` metadata in the `customTime`
668
+ # field in the destination object. Note that any value stored in the
669
+ # source object's `customTime` field will not be propagated to the
670
+ # destination object.
671
+ TIME_CREATED_PRESERVE_AS_CUSTOM_TIME = 2
672
+ end
673
+ end
674
+
675
+ # Specifies where the manifest is located.
676
+ # @!attribute [rw] location
677
+ # @return [::String]
678
+ # Specifies the path to the manifest in Cloud Storage. The Google-managed
679
+ # service account for the transfer must have `storage.objects.get`
680
+ # permission for this object. An example path is
681
+ # `gs://bucket_name/path/manifest.csv`.
682
+ class TransferManifest
683
+ include ::Google::Protobuf::MessageExts
684
+ extend ::Google::Protobuf::MessageExts::ClassMethods
685
+ end
686
+
395
687
  # Transfers can be scheduled to recur or to run just once.
396
688
  # @!attribute [rw] schedule_start_date
397
689
  # @return [::Google::Type::Date]
398
690
  # Required. The start date of a transfer. Date boundaries are determined
399
- # relative to UTC time. If `schedule_start_date` and
400
- # {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day}
691
+ # relative to UTC time. If `schedule_start_date` and {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day}
401
692
  # are in the past relative to the job's creation time, the transfer starts
402
693
  # the day after you schedule the transfer request.
403
694
  #
404
695
  # **Note:** When starting jobs at or near midnight UTC it is possible that
405
- # a job will start later than expected. For example, if you send an outbound
696
+ # a job starts later than expected. For example, if you send an outbound
406
697
  # request on June 1 one millisecond prior to midnight UTC and the Storage
407
- # Transfer Service server receives the request on June 2, then it will create
698
+ # Transfer Service server receives the request on June 2, then it creates
408
699
  # a TransferJob with `schedule_start_date` set to June 2 and a
409
700
  # `start_time_of_day` set to midnight UTC. The first scheduled
410
- # {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} will take
411
- # place on June 3 at midnight UTC.
701
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} takes place on June 3 at midnight UTC.
412
702
  # @!attribute [rw] schedule_end_date
413
703
  # @return [::Google::Type::Date]
414
704
  # The last day a transfer runs. Date boundaries are determined relative to
415
- # UTC time. A job will run once per 24 hours within the following guidelines:
705
+ # UTC time. A job runs once per 24 hours within the following guidelines:
416
706
  #
417
- # * If `schedule_end_date` and
418
- # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_start_date schedule_start_date}
419
- # are the same and in
707
+ # * If `schedule_end_date` and {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_start_date schedule_start_date} are the same and in
420
708
  # the future relative to UTC, the transfer is executed only one time.
421
709
  # * If `schedule_end_date` is later than `schedule_start_date` and
422
- # `schedule_end_date` is in the future relative to UTC, the job will
423
- # run each day at
424
- # {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day}
425
- # through `schedule_end_date`.
710
+ # `schedule_end_date` is in the future relative to UTC, the job runs each
711
+ # day at {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day} through `schedule_end_date`.
426
712
  # @!attribute [rw] start_time_of_day
427
713
  # @return [::Google::Type::TimeOfDay]
428
714
  # The time in UTC that a transfer job is scheduled to run. Transfers may
@@ -432,8 +718,7 @@ module Google
432
718
  #
433
719
  # * One-time transfers run immediately.
434
720
  # * Recurring transfers run immediately, and each day at midnight UTC,
435
- # through
436
- # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_end_date schedule_end_date}.
721
+ # through {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_end_date schedule_end_date}.
437
722
  #
438
723
  # If `start_time_of_day` is specified:
439
724
  #
@@ -443,15 +728,11 @@ module Google
443
728
  # @!attribute [rw] end_time_of_day
444
729
  # @return [::Google::Type::TimeOfDay]
445
730
  # The time in UTC that no further transfer operations are scheduled. Combined
446
- # with
447
- # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_end_date schedule_end_date},
448
- # `end_time_of_day` specifies the end date and time for starting new transfer
449
- # operations. This field must be greater than or equal to the timestamp
450
- # corresponding to the combintation of
451
- # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_start_date schedule_start_date}
452
- # and
453
- # {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day},
454
- # and is subject to the following:
731
+ # with {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_end_date schedule_end_date}, `end_time_of_day` specifies the end date and
732
+ # time for starting new transfer operations. This field must be greater than
733
+ # or equal to the timestamp corresponding to the combintation of
734
+ # {::Google::Cloud::StorageTransfer::V1::Schedule#schedule_start_date schedule_start_date} and {::Google::Cloud::StorageTransfer::V1::Schedule#start_time_of_day start_time_of_day}, and is subject to the
735
+ # following:
455
736
  #
456
737
  # * If `end_time_of_day` is not set and `schedule_end_date` is set, then
457
738
  # a default value of `23:59:59` is used for `end_time_of_day`.
@@ -474,19 +755,28 @@ module Google
474
755
  # @return [::String]
475
756
  # A unique name (within the transfer project) assigned when the job is
476
757
  # created. If this field is empty in a CreateTransferJobRequest, Storage
477
- # Transfer Service will assign a unique name. Otherwise, the specified name
758
+ # Transfer Service assigns a unique name. Otherwise, the specified name
478
759
  # is used as the unique name for this job.
479
760
  #
480
761
  # If the specified name is in use by a job, the creation request fails with
481
762
  # an {::Google::Rpc::Code::ALREADY_EXISTS ALREADY_EXISTS} error.
482
763
  #
483
764
  # This name must start with `"transferJobs/"` prefix and end with a letter or
484
- # a number, and should be no more than 128 characters. This name must not
485
- # start with 'transferJobs/OPI'. 'transferJobs/OPI' is a reserved prefix.
486
- # Example:
765
+ # a number, and should be no more than 128 characters. For transfers
766
+ # involving PosixFilesystem, this name must start with `transferJobs/OPI`
767
+ # specifically. For all other transfer types, this name must not start with
768
+ # `transferJobs/OPI`.
769
+ #
770
+ # Non-PosixFilesystem example:
487
771
  # `"transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$"`
488
772
  #
489
- # Invalid job names will fail with an
773
+ # PosixFilesystem example:
774
+ # `"transferJobs/OPI^[A-Za-z0-9-._~]*[A-Za-z0-9]$"`
775
+ #
776
+ # Applications must not rely on the enforcement of naming requirements
777
+ # involving OPI.
778
+ #
779
+ # Invalid job names fail with an
490
780
  # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT} error.
491
781
  # @!attribute [rw] description
492
782
  # @return [::String]
@@ -494,18 +784,22 @@ module Google
494
784
  # bytes when Unicode-encoded.
495
785
  # @!attribute [rw] project_id
496
786
  # @return [::String]
497
- # The ID of the Google Cloud Platform Project that owns the job.
787
+ # The ID of the Google Cloud project that owns the job.
498
788
  # @!attribute [rw] transfer_spec
499
789
  # @return [::Google::Cloud::StorageTransfer::V1::TransferSpec]
500
790
  # Transfer specification.
501
791
  # @!attribute [rw] notification_config
502
792
  # @return [::Google::Cloud::StorageTransfer::V1::NotificationConfig]
503
- # Notification configuration.
793
+ # Notification configuration. This is not supported for transfers involving
794
+ # PosixFilesystem.
795
+ # @!attribute [rw] logging_config
796
+ # @return [::Google::Cloud::StorageTransfer::V1::LoggingConfig]
797
+ # Logging configuration.
504
798
  # @!attribute [rw] schedule
505
799
  # @return [::Google::Cloud::StorageTransfer::V1::Schedule]
506
800
  # Specifies schedule for the transfer job.
507
- # This is an optional field. When the field is not set, the job will never
508
- # execute a transfer, unless you invoke RunTransferJob or update the job to
801
+ # This is an optional field. When the field is not set, the job never
802
+ # executes a transfer, unless you invoke RunTransferJob or update the job to
509
803
  # have a non-empty schedule.
510
804
  # @!attribute [rw] status
511
805
  # @return [::Google::Cloud::StorageTransfer::V1::TransferJob::Status]
@@ -514,10 +808,9 @@ module Google
514
808
  #
515
809
  # **Note:** The effect of the new job status takes place during a subsequent
516
810
  # job run. For example, if you change the job status from
517
- # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::ENABLED ENABLED} to
518
- # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::DISABLED DISABLED}, and an
519
- # operation spawned by the transfer is running, the status change would not
520
- # affect the current operation.
811
+ # {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::ENABLED ENABLED} to {::Google::Cloud::StorageTransfer::V1::TransferJob::Status::DISABLED DISABLED}, and an operation
812
+ # spawned by the transfer is running, the status change would not affect the
813
+ # current operation.
521
814
  # @!attribute [r] creation_time
522
815
  # @return [::Google::Protobuf::Timestamp]
523
816
  # Output only. The time that the transfer job was created.
@@ -540,10 +833,10 @@ module Google
540
833
  # Zero is an illegal value.
541
834
  STATUS_UNSPECIFIED = 0
542
835
 
543
- # New transfers will be performed based on the schedule.
836
+ # New transfers are performed based on the schedule.
544
837
  ENABLED = 1
545
838
 
546
- # New transfers will not be scheduled.
839
+ # New transfers are not scheduled.
547
840
  DISABLED = 2
548
841
 
549
842
  # This is a soft delete state. After a transfer job is set to this
@@ -579,7 +872,7 @@ module Google
579
872
  # @return [::Array<::Google::Cloud::StorageTransfer::V1::ErrorLogEntry>]
580
873
  # Error samples.
581
874
  #
582
- # At most 5 error log entries will be recorded for a given
875
+ # At most 5 error log entries are recorded for a given
583
876
  # error code for a single transfer operation.
584
877
  class ErrorSummary
585
878
  include ::Google::Protobuf::MessageExts
@@ -643,38 +936,59 @@ module Google
643
936
  # @!attribute [rw] bytes_failed_to_delete_from_sink
644
937
  # @return [::Integer]
645
938
  # Bytes that failed to be deleted from the data sink.
939
+ # @!attribute [rw] directories_found_from_source
940
+ # @return [::Integer]
941
+ # For transfers involving PosixFilesystem only.
942
+ #
943
+ # Number of directories found while listing. For example, if the root
944
+ # directory of the transfer is `base/` and there are two other directories,
945
+ # `a/` and `b/` under this directory, the count after listing `base/`,
946
+ # `base/a/` and `base/b/` is 3.
947
+ # @!attribute [rw] directories_failed_to_list_from_source
948
+ # @return [::Integer]
949
+ # For transfers involving PosixFilesystem only.
950
+ #
951
+ # Number of listing failures for each directory found at the source.
952
+ # Potential failures when listing a directory include permission failure or
953
+ # block failure. If listing a directory fails, no files in the directory are
954
+ # transferred.
955
+ # @!attribute [rw] directories_successfully_listed_from_source
956
+ # @return [::Integer]
957
+ # For transfers involving PosixFilesystem only.
958
+ #
959
+ # Number of successful listings for each directory found at the source.
960
+ # @!attribute [rw] intermediate_objects_cleaned_up
961
+ # @return [::Integer]
962
+ # Number of successfully cleaned up intermediate objects.
963
+ # @!attribute [rw] intermediate_objects_failed_cleaned_up
964
+ # @return [::Integer]
965
+ # Number of intermediate objects failed cleaned up.
646
966
  class TransferCounters
647
967
  include ::Google::Protobuf::MessageExts
648
968
  extend ::Google::Protobuf::MessageExts::ClassMethods
649
969
  end
650
970
 
651
- # Specification to configure notifications published to Cloud Pub/Sub.
652
- # Notifications will be published to the customer-provided topic using the
971
+ # Specification to configure notifications published to Pub/Sub.
972
+ # Notifications are published to the customer-provided topic using the
653
973
  # following `PubsubMessage.attributes`:
654
974
  #
655
- # * `"eventType"`: one of the
656
- # {::Google::Cloud::StorageTransfer::V1::NotificationConfig::EventType EventType} values
657
- # * `"payloadFormat"`: one of the
658
- # {::Google::Cloud::StorageTransfer::V1::NotificationConfig::PayloadFormat PayloadFormat}
659
- # values
660
- # * `"projectId"`: the
661
- # {::Google::Cloud::StorageTransfer::V1::TransferOperation#project_id project_id} of the
975
+ # * `"eventType"`: one of the {::Google::Cloud::StorageTransfer::V1::NotificationConfig::EventType EventType} values
976
+ # * `"payloadFormat"`: one of the {::Google::Cloud::StorageTransfer::V1::NotificationConfig::PayloadFormat PayloadFormat} values
977
+ # * `"projectId"`: the {::Google::Cloud::StorageTransfer::V1::TransferOperation#project_id project_id} of the
662
978
  # `TransferOperation`
663
979
  # * `"transferJobName"`: the
664
- # {::Google::Cloud::StorageTransfer::V1::TransferOperation#transfer_job_name transfer_job_name}
665
- # of the `TransferOperation`
666
- # * `"transferOperationName"`: the
667
- # {::Google::Cloud::StorageTransfer::V1::TransferOperation#name name} of the
980
+ # {::Google::Cloud::StorageTransfer::V1::TransferOperation#transfer_job_name transfer_job_name} of the
981
+ # `TransferOperation`
982
+ # * `"transferOperationName"`: the {::Google::Cloud::StorageTransfer::V1::TransferOperation#name name} of the
668
983
  # `TransferOperation`
669
984
  #
670
- # The `PubsubMessage.data` will contain a
671
- # {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} resource
985
+ # The `PubsubMessage.data` contains a {::Google::Cloud::StorageTransfer::V1::TransferOperation TransferOperation} resource
672
986
  # formatted according to the specified `PayloadFormat`.
673
987
  # @!attribute [rw] pubsub_topic
674
988
  # @return [::String]
675
- # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish
989
+ # Required. The `Topic.name` of the Pub/Sub topic to which to publish
676
990
  # notifications. Must be of the format: `projects/{project}/topics/{topic}`.
677
- # Not matching this format will result in an
991
+ # Not matching this format results in an
678
992
  # {::Google::Rpc::Code::INVALID_ARGUMENT INVALID_ARGUMENT} error.
679
993
  # @!attribute [rw] event_types
680
994
  # @return [::Array<::Google::Cloud::StorageTransfer::V1::NotificationConfig::EventType>]
@@ -725,13 +1039,73 @@ module Google
725
1039
  end
726
1040
  end
727
1041
 
1042
+ # Specifies the logging behavior for transfer operations.
1043
+ #
1044
+ # For cloud-to-cloud transfers, logs are sent to Cloud Logging. See
1045
+ # [Read transfer
1046
+ # logs](https://cloud.google.com/storage-transfer/docs/read-transfer-logs) for
1047
+ # details.
1048
+ #
1049
+ # For transfers to or from a POSIX file system, logs are stored in the
1050
+ # Cloud Storage bucket that is the source or sink of the transfer.
1051
+ # See [Managing Transfer for on-premises jobs]
1052
+ # (https://cloud.google.com/storage-transfer/docs/managing-on-prem-jobs#viewing-logs)
1053
+ # for details.
1054
+ # @!attribute [rw] log_actions
1055
+ # @return [::Array<::Google::Cloud::StorageTransfer::V1::LoggingConfig::LoggableAction>]
1056
+ # Specifies the actions to be logged. If empty, no logs are generated.
1057
+ # Not supported for transfers with PosixFilesystem data sources; use
1058
+ # {::Google::Cloud::StorageTransfer::V1::LoggingConfig#enable_onprem_gcs_transfer_logs enable_onprem_gcs_transfer_logs} instead.
1059
+ # @!attribute [rw] log_action_states
1060
+ # @return [::Array<::Google::Cloud::StorageTransfer::V1::LoggingConfig::LoggableActionState>]
1061
+ # States in which `log_actions` are logged. If empty, no logs are generated.
1062
+ # Not supported for transfers with PosixFilesystem data sources; use
1063
+ # {::Google::Cloud::StorageTransfer::V1::LoggingConfig#enable_onprem_gcs_transfer_logs enable_onprem_gcs_transfer_logs} instead.
1064
+ # @!attribute [rw] enable_onprem_gcs_transfer_logs
1065
+ # @return [::Boolean]
1066
+ # For transfers with a PosixFilesystem source, this option enables the Cloud
1067
+ # Storage transfer logs for this transfer.
1068
+ class LoggingConfig
1069
+ include ::Google::Protobuf::MessageExts
1070
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1071
+
1072
+ # Loggable actions.
1073
+ module LoggableAction
1074
+ # Default value. This value is unused.
1075
+ LOGGABLE_ACTION_UNSPECIFIED = 0
1076
+
1077
+ # Listing objects in a bucket.
1078
+ FIND = 1
1079
+
1080
+ # Deleting objects at the source or the destination.
1081
+ DELETE = 2
1082
+
1083
+ # Copying objects to Google Cloud Storage.
1084
+ COPY = 3
1085
+ end
1086
+
1087
+ # Loggable action states.
1088
+ module LoggableActionState
1089
+ # Default value. This value is unused.
1090
+ LOGGABLE_ACTION_STATE_UNSPECIFIED = 0
1091
+
1092
+ # `LoggableAction` completed successfully. `SUCCEEDED` actions are
1093
+ # logged as [INFO][google.logging.type.LogSeverity.INFO].
1094
+ SUCCEEDED = 1
1095
+
1096
+ # `LoggableAction` terminated in an error state. `FAILED` actions are
1097
+ # logged as [ERROR][google.logging.type.LogSeverity.ERROR].
1098
+ FAILED = 2
1099
+ end
1100
+ end
1101
+
728
1102
  # A description of the execution of a transfer.
729
1103
  # @!attribute [rw] name
730
1104
  # @return [::String]
731
1105
  # A globally unique ID assigned by the system.
732
1106
  # @!attribute [rw] project_id
733
1107
  # @return [::String]
734
- # The ID of the Google Cloud Platform Project that owns the operation.
1108
+ # The ID of the Google Cloud project that owns the operation.
735
1109
  # @!attribute [rw] transfer_spec
736
1110
  # @return [::Google::Cloud::StorageTransfer::V1::TransferSpec]
737
1111
  # Transfer specification.