@@ -205,6 +205,21 @@ message GcsData {
205205 // The root path value must meet
206206 // [Object Name Requirements](/storage/docs/naming#objectnames).
207207 string path = 3 ;
208+
209+ // Preview. Enables the transfer of managed folders between Cloud Storage
210+ // buckets. Set this option on the gcs_data_source.
211+ //
212+ // If set to true:
213+ //
214+ // - Managed folders in the source bucket are transferred to the
215+ // destination bucket.
216+ // - Managed folders in the destination bucket are overwritten. Other
217+ // OVERWRITE options are not supported.
218+ //
219+ // See
220+ // [Transfer Cloud Storage managed
221+ // folders](/storage-transfer/docs/managed-folders).
222+ bool managed_folder_transfer_enabled = 4 ;
208223}
209224
210225// An AwsS3Data resource can be a data source, but not a data sink.
@@ -242,26 +257,46 @@ message AwsS3Data {
242257 // this project.
243258 string role_arn = 4 ;
244259
260+ // Optional. The CloudFront distribution domain name pointing to this bucket,
261+ // to use when fetching.
262+ //
263+ // See
264+ // [Transfer from S3 via
265+ // CloudFront](https://cloud.google.com/storage-transfer/docs/s3-cloudfront)
266+ // for more information.
267+ //
268+ // Format: `https://{id}.cloudfront.net` or any valid custom domain. Must
269+ // begin with `https://`.
270+ string cloudfront_domain = 6 [(google.api.field_behavior ) = OPTIONAL ];
271+
245272 // Optional. The Resource name of a secret in Secret Manager.
246273 //
247- // The Azure SAS token must be stored in Secret Manager in JSON format:
248- // <pre>{
249- // "sas_token" : "<var>SAS_TOKEN</var>"
250- // }</pre>
274+ // AWS credentials must be stored in Secret Manager in JSON format:
275+ //
276+ // {
277+ // "access_key_id": "ACCESS_KEY_ID",
278+ // "secret_access_key": "SECRET_ACCESS_KEY"
279+ // }
280+ //
251281 // [GoogleServiceAccount][google.storagetransfer.v1.GoogleServiceAccount] must
252282 // be granted `roles/secretmanager.secretAccessor` for the resource.
253283 //
254- // See [Configure access to a source: Microsoft Azure Blob Storage ]
255- // (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure #secret_manager)
284+ // See [Configure access to a source: Amazon S3 ]
285+ // (https://cloud.google.com/storage-transfer/docs/source-amazon-s3 #secret_manager)
256286 // for more information.
257287 //
258- // If `credentials_secret` is specified, do not specify [azure_credentials][].
259- //
260- // This feature is in
261- // [preview](https://cloud.google.com/terms/service-terms#1).
288+ // If `credentials_secret` is specified, do not specify
289+ // [role_arn][google.storagetransfer.v1.AwsS3Data.role_arn] or
290+ // [aws_access_key][google.storagetransfer.v1.AwsS3Data.aws_access_key].
262291 //
263292 // Format: `projects/{project_number}/secrets/{secret_name}`
264293 string credentials_secret = 7 [(google.api.field_behavior ) = OPTIONAL ];
294+
295+ oneof private_network {
296+ // Egress bytes over a Google-managed private network.
297+ // This network is shared between other users of Storage Transfer Service.
298+ bool managed_private_network = 8 ;
299+ }
265300}
266301
267302// An AzureBlobStorageData resource can be a data source, but not a data sink.
@@ -298,9 +333,11 @@ message AzureBlobStorageData {
298333 // Optional. The Resource name of a secret in Secret Manager.
299334 //
300335 // The Azure SAS token must be stored in Secret Manager in JSON format:
301- // <pre>{
302- // "sas_token" : "<var>SAS_TOKEN</var>"
303- // }</pre>
336+ //
337+ // {
338+ // "sas_token" : "SAS_TOKEN"
339+ // }
340+ //
304341 // [GoogleServiceAccount][google.storagetransfer.v1.GoogleServiceAccount] must
305342 // be granted `roles/secretmanager.secretAccessor` for the resource.
306343 //
@@ -311,9 +348,6 @@ message AzureBlobStorageData {
311348 // If `credentials_secret` is specified, do not specify
312349 // [azure_credentials][google.storagetransfer.v1.AzureBlobStorageData.azure_credentials].
313350 //
314- // This feature is in
315- // [preview](https://cloud.google.com/terms/service-terms#1).
316- //
317351 // Format: `projects/{project_number}/secrets/{secret_name}`
318352 string credentials_secret = 7 [(google.api.field_behavior ) = OPTIONAL ];
319353}
@@ -371,6 +405,15 @@ message PosixFilesystem {
371405 string root_directory = 1 ;
372406}
373407
408+ // An HdfsData resource specifies a path within an HDFS entity (e.g. a cluster).
409+ // All cluster-specific settings, such as namenodes and ports, are configured on
410+ // the transfer agents servicing requests, so HdfsData only contains the root
411+ // path to the data in our transfer.
412+ message HdfsData {
413+ // Root path to transfer files.
414+ string path = 1 ;
415+ }
416+
374417// An AwsS3CompatibleData resource.
375418message AwsS3CompatibleData {
376419 // Required. Specifies the name of the bucket.
@@ -473,7 +516,7 @@ message S3CompatibleMetadata {
473516 ListApi list_api = 4 ;
474517}
475518
476- // Represents an On-Premises Agent pool.
519+ // Represents an agent pool.
477520message AgentPool {
478521 option (google.api.resource ) = {
479522 type : "storagetransfer.googleapis.com/agentPools"
@@ -485,8 +528,8 @@ message AgentPool {
485528 // Default value. This value is unused.
486529 STATE_UNSPECIFIED = 0 ;
487530
488- // This is an initialization state. During this stage, the resources such as
489- // Pub/Sub topics are allocated for the AgentPool.
531+ // This is an initialization state. During this stage, resources are
532+ // allocated for the AgentPool.
490533 CREATING = 1 ;
491534
492535 // Determines that the AgentPool is created for use. At this state, Agents
@@ -602,6 +645,9 @@ message TransferSpec {
602645
603646 // An AWS S3 compatible data source.
604647 AwsS3CompatibleData aws_s3_compatible_data_source = 19 ;
648+
649+ // An HDFS cluster data source.
650+ HdfsData hdfs_data_source = 20 ;
605651 }
606652
607653 oneof intermediate_data_location {
@@ -768,10 +814,10 @@ message MetadataOptions {
768814 // Do not preserve the `timeCreated` metadata from the source object.
769815 TIME_CREATED_SKIP = 1 ;
770816
771- // Preserves the source object's `timeCreated` metadata in the `customTime`
772- // field in the destination object. Note that any value stored in the
773- // source object's `customTime` field will not be propagated to the
774- // destination object.
817+ // Preserves the source object's `timeCreated` or `lastModified` metadata in
818+ // the `customTime` field in the destination object. Note that any value
819+ // stored in the source object's `customTime` field will not be propagated
820+ // to the destination object.
775821 TIME_CREATED_PRESERVE_AS_CUSTOM_TIME = 2 ;
776822 }
777823
@@ -818,9 +864,10 @@ message MetadataOptions {
818864 KmsKey kms_key = 8 ;
819865
820866 // Specifies how each object's `timeCreated` metadata is preserved for
821- // transfers between Google Cloud Storage buckets. If unspecified, the
822- // default behavior is the same as
867+ // transfers. If unspecified, the default behavior is the same as
823868 // [TIME_CREATED_SKIP][google.storagetransfer.v1.MetadataOptions.TimeCreated.TIME_CREATED_SKIP].
869+ // This behavior is supported for transfers to Cloud Storage buckets from
870+ // Cloud Storage, Amazon S3, S3-compatible storage, and Azure sources.
824871 TimeCreated time_created = 9 ;
825872}
826873
@@ -986,8 +1033,7 @@ message TransferJob {
9861033 // Transfer specification.
9871034 TransferSpec transfer_spec = 4 ;
9881035
989- // Notification configuration. This is not supported for transfers involving
990- // PosixFilesystem.
1036+ // Notification configuration.
9911037 NotificationConfig notification_config = 11 ;
9921038
9931039 // Logging configuration.
@@ -1219,16 +1265,10 @@ message NotificationConfig {
12191265
12201266// Specifies the logging behavior for transfer operations.
12211267//
1222- // For cloud-to-cloud transfers, logs are sent to Cloud Logging. See
1268+ // Logs can be sent to Cloud Logging for all transfer types . See
12231269// [Read transfer
12241270// logs](https://cloud.google.com/storage-transfer/docs/read-transfer-logs) for
12251271// details.
1226- //
1227- // For transfers to or from a POSIX file system, logs are stored in the
1228- // Cloud Storage bucket that is the source or sink of the transfer.
1229- // See [Managing Transfer for on-premises jobs]
1230- // (https://cloud.google.com/storage-transfer/docs/managing-on-prem-jobs#viewing-logs)
1231- // for details.
12321272message LoggingConfig {
12331273 // Loggable actions.
12341274 enum LoggableAction {
@@ -1260,19 +1300,18 @@ message LoggingConfig {
12601300 }
12611301
12621302 // Specifies the actions to be logged. If empty, no logs are generated.
1263- // Not supported for transfers with PosixFilesystem data sources; use
1264- // [enable_onprem_gcs_transfer_logs][google.storagetransfer.v1.LoggingConfig.enable_onprem_gcs_transfer_logs]
1265- // instead.
12661303 repeated LoggableAction log_actions = 1 ;
12671304
12681305 // States in which `log_actions` are logged. If empty, no logs are generated.
1269- // Not supported for transfers with PosixFilesystem data sources; use
1270- // [enable_onprem_gcs_transfer_logs][google.storagetransfer.v1.LoggingConfig.enable_onprem_gcs_transfer_logs]
1271- // instead.
12721306 repeated LoggableActionState log_action_states = 2 ;
12731307
1274- // For transfers with a PosixFilesystem source, this option enables the Cloud
1275- // Storage transfer logs for this transfer.
1308+ // For PosixFilesystem transfers, enables
1309+ // [file system transfer
1310+ // logs](https://cloud.google.com/storage-transfer/docs/on-prem-transfer-log-format)
1311+ // instead of, or in addition to, Cloud Logging.
1312+ //
1313+ // This option ignores [LoggableAction] and [LoggableActionState]. If these
1314+ // are set, Cloud Logging will also be enabled for this transfer.
12761315 bool enable_onprem_gcs_transfer_logs = 3 ;
12771316}
12781317
0 commit comments