google-cloud-storage_transfer-v1 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.