Skip to content

Commit bd54d5e

Browse files
feat(storagetransfer): update the API
#### storagetransfer:v1 The following keys were added: - schemas.AzureBlobStorageData.properties.federatedIdentityConfig.$ref - schemas.AzureBlobStorageData.properties.federatedIdentityConfig.description - schemas.FederatedIdentityConfig.description - schemas.FederatedIdentityConfig.id - schemas.FederatedIdentityConfig.properties.clientId.description - schemas.FederatedIdentityConfig.properties.clientId.type - schemas.FederatedIdentityConfig.properties.tenantId.description - schemas.FederatedIdentityConfig.properties.tenantId.type - schemas.FederatedIdentityConfig.type - schemas.TransferJob.properties.serviceAccount.description - schemas.TransferJob.properties.serviceAccount.type The following keys were changed: - schemas.HttpData.properties.listUrl.description - schemas.ObjectConditions.description
1 parent 106f89f commit bd54d5e

File tree

2 files changed

+49
-5
lines changed

2 files changed

+49
-5
lines changed

discovery/storagetransfer-v1.json

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,7 @@
632632
}
633633
}
634634
},
635-
"revision": "20250426",
635+
"revision": "20250510",
636636
"rootUrl": "https://storagetransfer.googleapis.com/",
637637
"schemas": {
638638
"AgentPool": {
@@ -764,6 +764,10 @@
764764
"description": "Optional. The Resource name of a secret in Secret Manager. The Azure SAS token must be stored in Secret Manager in JSON format: { \"sas_token\" : \"SAS_TOKEN\" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Microsoft Azure Blob Storage] (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) for more information. If `credentials_secret` is specified, do not specify azure_credentials. Format: `projects/{project_number}/secrets/{secret_name}`",
765765
"type": "string"
766766
},
767+
"federatedIdentityConfig": {
768+
"$ref": "FederatedIdentityConfig",
769+
"description": "Optional. Federated identity config of a user registered Azure application. If `federated_identity_config` is specified, do not specify azure_credentials or credentials_secret."
770+
},
767771
"path": {
768772
"description": "Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.",
769773
"type": "string"
@@ -932,6 +936,21 @@
932936
},
933937
"type": "object"
934938
},
939+
"FederatedIdentityConfig": {
940+
"description": "Identities of a user registered Azure application that enables identity federation to trust tokens issued by the user's Google service account. For more information about Azure application and identity federation, see [Register an application with the Microsoft identity platform] (https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) Azure RBAC roles then need be assigned to the Azure application to authorize access to the user's Azure data source. For more information about Azure RBAC roles for blobs, see [Manage Access Rights with RBAC] (https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-azure-active-directory#manage-access-rights-with-rbac)",
941+
"id": "FederatedIdentityConfig",
942+
"properties": {
943+
"clientId": {
944+
"description": "Required. Client (application) ID of the application with federated credentials.",
945+
"type": "string"
946+
},
947+
"tenantId": {
948+
"description": "Required. Tenant (directory) ID of the application with federated credentials.",
949+
"type": "string"
950+
}
951+
},
952+
"type": "object"
953+
},
935954
"GcsData": {
936955
"description": "In a GcsData resource, an object's name is the Cloud Storage object's name and its \"last modification time\" refers to the object's `updated` property of Cloud Storage objects, which changes when the content or the metadata of the object is updated.",
937956
"id": "GcsData",
@@ -982,7 +1001,7 @@
9821001
"id": "HttpData",
9831002
"properties": {
9841003
"listUrl": {
985-
"description": "Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.",
1004+
"description": "Required. The URL that points to the file that stores the object list entries. This file must allow public access. The URL is either an HTTP/HTTPS address (e.g. `https://example.com/urllist.tsv`) or a Cloud Storage path (e.g. `gs://my-bucket/urllist.tsv`).",
9861005
"type": "string"
9871006
}
9881007
},
@@ -1277,7 +1296,7 @@
12771296
"type": "object"
12781297
},
12791298
"ObjectConditions": {
1280-
"description": "Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The \"last modification time\" refers to the time of the last change to the object's content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. Transfers with a PosixFilesystem source or destination don't support `ObjectConditions`.",
1299+
"description": "Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The \"last modification time\" refers to the time of the last change to the object's content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. For S3 objects, the `LastModified` value is the time the object begins uploading. If the object meets your \"last modification time\" criteria, but has not finished uploading, the object is not transferred. See [Transfer from Amazon S3 to Cloud Storage](https://cloud.google.com/storage-transfer/docs/create-transfers/agentless/s3#transfer_options) for more information. Transfers with a PosixFilesystem source or destination don't support `ObjectConditions`.",
12811300
"id": "ObjectConditions",
12821301
"properties": {
12831302
"excludePrefixes": {
@@ -1724,6 +1743,10 @@
17241743
"$ref": "Schedule",
17251744
"description": "Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule."
17261745
},
1746+
"serviceAccount": {
1747+
"description": "Optional. The service account to be used to access resources in the consumer project in the transfer job. We accept `email` or `uniqueId` for the service account. Service account format is projects/-/serviceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID} See https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/generateAccessToken#path-parameters for details. Caller requires the following IAM permission on the specified service account: `iam.serviceAccounts.actAs`. project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com requires the following IAM permission on the specified service account: `iam.serviceAccounts.getAccessToken`",
1748+
"type": "string"
1749+
},
17271750
"status": {
17281751
"description": "Status of the job. This value MUST be specified for `CreateTransferJobRequests`. **Note:** The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.",
17291752
"enum": [

src/apis/storagetransfer/v1.ts

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,10 @@ export namespace storagetransfer_v1 {
240240
* Optional. The Resource name of a secret in Secret Manager. The Azure SAS token must be stored in Secret Manager in JSON format: { "sas_token" : "SAS_TOKEN" \} GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Microsoft Azure Blob Storage] (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) for more information. If `credentials_secret` is specified, do not specify azure_credentials. Format: `projects/{project_number\}/secrets/{secret_name\}`
241241
*/
242242
credentialsSecret?: string | null;
243+
/**
244+
* Optional. Federated identity config of a user registered Azure application. If `federated_identity_config` is specified, do not specify azure_credentials or credentials_secret.
245+
*/
246+
federatedIdentityConfig?: Schema$FederatedIdentityConfig;
243247
/**
244248
* Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.
245249
*/
@@ -339,6 +343,19 @@ export namespace storagetransfer_v1 {
339343
*/
340344
name?: string | null;
341345
}
346+
/**
347+
* Identities of a user registered Azure application that enables identity federation to trust tokens issued by the user's Google service account. For more information about Azure application and identity federation, see [Register an application with the Microsoft identity platform] (https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) Azure RBAC roles then need be assigned to the Azure application to authorize access to the user's Azure data source. For more information about Azure RBAC roles for blobs, see [Manage Access Rights with RBAC] (https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-azure-active-directory#manage-access-rights-with-rbac)
348+
*/
349+
export interface Schema$FederatedIdentityConfig {
350+
/**
351+
* Required. Client (application) ID of the application with federated credentials.
352+
*/
353+
clientId?: string | null;
354+
/**
355+
* Required. Tenant (directory) ID of the application with federated credentials.
356+
*/
357+
tenantId?: string | null;
358+
}
342359
/**
343360
* In a GcsData resource, an object's name is the Cloud Storage object's name and its "last modification time" refers to the object's `updated` property of Cloud Storage objects, which changes when the content or the metadata of the object is updated.
344361
*/
@@ -383,7 +400,7 @@ export namespace storagetransfer_v1 {
383400
*/
384401
export interface Schema$HttpData {
385402
/**
386-
* Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
403+
* Required. The URL that points to the file that stores the object list entries. This file must allow public access. The URL is either an HTTP/HTTPS address (e.g. `https://example.com/urllist.tsv`) or a Cloud Storage path (e.g. `gs://my-bucket/urllist.tsv`).
387404
*/
388405
listUrl?: string | null;
389406
}
@@ -502,7 +519,7 @@ export namespace storagetransfer_v1 {
502519
pubsubTopic?: string | null;
503520
}
504521
/**
505-
* Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The "last modification time" refers to the time of the last change to the object's content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. Transfers with a PosixFilesystem source or destination don't support `ObjectConditions`.
522+
* Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The "last modification time" refers to the time of the last change to the object's content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. For S3 objects, the `LastModified` value is the time the object begins uploading. If the object meets your "last modification time" criteria, but has not finished uploading, the object is not transferred. See [Transfer from Amazon S3 to Cloud Storage](https://cloud.google.com/storage-transfer/docs/create-transfers/agentless/s3#transfer_options) for more information. Transfers with a PosixFilesystem source or destination don't support `ObjectConditions`.
506523
*/
507524
export interface Schema$ObjectConditions {
508525
/**
@@ -827,6 +844,10 @@ export namespace storagetransfer_v1 {
827844
* Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
828845
*/
829846
schedule?: Schema$Schedule;
847+
/**
848+
* Optional. The service account to be used to access resources in the consumer project in the transfer job. We accept `email` or `uniqueId` for the service account. Service account format is projects/-/serviceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID\} See https://cloud.google.com/iam/docs/reference/credentials/rest/v1/projects.serviceAccounts/generateAccessToken#path-parameters for details. Caller requires the following IAM permission on the specified service account: `iam.serviceAccounts.actAs`. project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com requires the following IAM permission on the specified service account: `iam.serviceAccounts.getAccessToken`
849+
*/
850+
serviceAccount?: string | null;
830851
/**
831852
* Status of the job. This value MUST be specified for `CreateTransferJobRequests`. **Note:** The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.
832853
*/

0 commit comments

Comments
 (0)