@@ -319,6 +319,108 @@ message PosixFilesystem {
319
319
string root_directory = 1 ;
320
320
}
321
321
322
+ // An AwsS3CompatibleData resource.
323
+ message AwsS3CompatibleData {
324
+ // Required. Specifies the name of the bucket.
325
+ string bucket_name = 1 [(google.api.field_behavior ) = REQUIRED ];
326
+
327
+ // Specifies the root path to transfer objects.
328
+ //
329
+ // Must be an empty string or full path name that ends with a '/'. This
330
+ // field is treated as an object prefix. As such, it should generally not
331
+ // begin with a '/'.
332
+ string path = 2 ;
333
+
334
+ // Required. Specifies the endpoint of the storage service.
335
+ string endpoint = 3 [(google.api.field_behavior ) = REQUIRED ];
336
+
337
+ // Specifies the region to sign requests with. This can be left blank if
338
+ // requests should be signed with an empty region.
339
+ string region = 5 ;
340
+
341
+ // Specifies the metadata of the S3 compatible data provider. Each provider
342
+ // may contain some attributes that do not apply to all S3-compatible data
343
+ // providers. When not specified, S3CompatibleMetadata is used by default.
344
+ oneof data_provider {
345
+ // A S3 compatible metadata.
346
+ S3CompatibleMetadata s3_metadata = 4 ;
347
+ }
348
+ }
349
+
350
+ // S3CompatibleMetadata contains the metadata fields that apply to the basic
351
+ // types of S3-compatible data providers.
352
+ message S3CompatibleMetadata {
353
+ // The authentication and authorization method used by the storage service.
354
+ enum AuthMethod {
355
+ // AuthMethod is not specified.
356
+ AUTH_METHOD_UNSPECIFIED = 0 ;
357
+
358
+ // Auth requests with AWS SigV4.
359
+ AUTH_METHOD_AWS_SIGNATURE_V4 = 1 ;
360
+
361
+ // Auth requests with AWS SigV2.
362
+ AUTH_METHOD_AWS_SIGNATURE_V2 = 2 ;
363
+ }
364
+
365
+ // The request model of the API.
366
+ enum RequestModel {
367
+ // RequestModel is not specified.
368
+ REQUEST_MODEL_UNSPECIFIED = 0 ;
369
+
370
+ // Perform requests using Virtual Hosted Style.
371
+ // Example: https://bucket-name.s3.region.amazonaws.com/key-name
372
+ REQUEST_MODEL_VIRTUAL_HOSTED_STYLE = 1 ;
373
+
374
+ // Perform requests using Path Style.
375
+ // Example: https://s3.region.amazonaws.com/bucket-name/key-name
376
+ REQUEST_MODEL_PATH_STYLE = 2 ;
377
+ }
378
+
379
+ // The agent network protocol to access the storage service.
380
+ enum NetworkProtocol {
381
+ // NetworkProtocol is not specified.
382
+ NETWORK_PROTOCOL_UNSPECIFIED = 0 ;
383
+
384
+ // Perform requests using HTTPS.
385
+ NETWORK_PROTOCOL_HTTPS = 1 ;
386
+
387
+ // Not recommended: This sends data in clear-text. This is only
388
+ // appropriate within a closed network or for publicly available data.
389
+ // Perform requests using HTTP.
390
+ NETWORK_PROTOCOL_HTTP = 2 ;
391
+ }
392
+
393
+ // The Listing API to use for discovering objects.
394
+ enum ListApi {
395
+ // ListApi is not specified.
396
+ LIST_API_UNSPECIFIED = 0 ;
397
+
398
+ // Perform listing using ListObjectsV2 API.
399
+ LIST_OBJECTS_V2 = 1 ;
400
+
401
+ // Legacy ListObjects API.
402
+ LIST_OBJECTS = 2 ;
403
+ }
404
+
405
+ // Specifies the authentication and authorization method used by the storage
406
+ // service. When not specified, Transfer Service will attempt to determine
407
+ // right auth method to use.
408
+ AuthMethod auth_method = 1 ;
409
+
410
+ // Specifies the API request model used to call the storage service. When not
411
+ // specified, the default value of RequestModel
412
+ // REQUEST_MODEL_VIRTUAL_HOSTED_STYLE is used.
413
+ RequestModel request_model = 2 ;
414
+
415
+ // Specifies the network protocol of the agent. When not specified, the
416
+ // default value of NetworkProtocol NETWORK_PROTOCOL_HTTPS is used.
417
+ NetworkProtocol protocol = 3 ;
418
+
419
+ // The Listing API to use for discovering objects. When not specified,
420
+ // Transfer Service will attempt to determine the right API to use.
421
+ ListApi list_api = 4 ;
422
+ }
423
+
322
424
// Represents an On-Premises Agent pool.
323
425
message AgentPool {
324
426
option (google.api.resource ) = {
@@ -372,17 +474,19 @@ message TransferOptions {
372
474
// Specifies when to overwrite an object in the sink when an object with
373
475
// matching name is found in the source.
374
476
enum OverwriteWhen {
375
- // Indicate the option is not set .
477
+ // Overwrite behavior is unspecified .
376
478
OVERWRITE_WHEN_UNSPECIFIED = 0 ;
377
479
378
- // Overwrite destination object with source if the two objects are
379
- // different.
480
+ // Overwrites destination objects with the source objects, only if the
481
+ // objects have the same name but different HTTP ETags or checksum values .
380
482
DIFFERENT = 1 ;
381
483
382
- // Never overwrite destination object.
484
+ // Never overwrites a destination object if a source object has the
485
+ // same name. In this case, the source object is not transferred.
383
486
NEVER = 2 ;
384
487
385
- // Always overwrite destination object.
488
+ // Always overwrite the destination object with the source object, even if
489
+ // the HTTP Etags or checksum values are the same.
386
490
ALWAYS = 3 ;
387
491
}
388
492
@@ -405,13 +509,12 @@ message TransferOptions {
405
509
// exclusive.
406
510
bool delete_objects_from_source_after_transfer = 3 ;
407
511
408
- // When to overwrite objects that already exist in the sink. If not set
512
+ // When to overwrite objects that already exist in the sink. If not set,
409
513
// overwrite behavior is determined by
410
514
// [overwrite_objects_already_existing_in_sink][google.storagetransfer.v1.TransferOptions.overwrite_objects_already_existing_in_sink].
411
515
OverwriteWhen overwrite_when = 4 ;
412
516
413
- // Represents the selected metadata options for a transfer job. This feature
414
- // is in Preview.
517
+ // Represents the selected metadata options for a transfer job.
415
518
MetadataOptions metadata_options = 5 ;
416
519
}
417
520
@@ -442,6 +545,9 @@ message TransferSpec {
442
545
443
546
// An Azure Blob Storage data source.
444
547
AzureBlobStorageData azure_blob_storage_data_source = 8 ;
548
+
549
+ // An AWS S3 compatible data source.
550
+ AwsS3CompatibleData aws_s3_compatible_data_source = 19 ;
445
551
}
446
552
447
553
// Represents a supported data container type which is required for transfer
0 commit comments