@@ -1168,6 +1168,12 @@ class ViewUpdate(BaseModel):
11681168 ]
11691169
11701170
1171+ class Credentials (BaseModel ):
1172+ __root__ : Union [ADLSCredentials , GCSCredentials , S3Credentials ] = Field (
1173+ ..., discriminator = 'type'
1174+ )
1175+
1176+
11711177class LoadTableResult (BaseModel ):
11721178 """
11731179 Result used when a table is successfully loaded.
@@ -1195,6 +1201,11 @@ class LoadTableResult(BaseModel):
11951201 - `s3.session-token`: if present, this value should be used for as the session token
11961202 - `s3.remote-signing-enabled`: if `true` remote signing should be performed as described in the `s3-signer-open-api.yaml` specification
11971203
1204+ ## Credentials
1205+
1206+ Credentials for ADLS / GCS / S3 are provided through the `credentials` field. Clients should first check whether the
1207+ respective credentials exist in the `credentials` field before checking the `config` for credentials.
1208+
11981209 """
11991210
12001211 metadata_location : Optional [str ] = Field (
@@ -1203,6 +1214,7 @@ class LoadTableResult(BaseModel):
12031214 description = 'May be null if the table is staged as part of a transaction' ,
12041215 )
12051216 metadata : TableMetadata
1217+ credentials : Optional [Credentials ] = None
12061218 config : Optional [Dict [str , str ]] = None
12071219
12081220
@@ -1311,10 +1323,16 @@ class LoadViewResult(BaseModel):
13111323
13121324 - `token`: Authorization bearer token to use for view requests if OAuth2 security is enabled
13131325
1326+ ## Credentials
1327+
1328+ Credentials for ADLS / GCS / S3 are provided through the `credentials` field. Clients should first check whether the
1329+ respective credentials exist in the `credentials` field before checking the `config` for credentials.
1330+
13141331 """
13151332
13161333 metadata_location : str = Field (..., alias = 'metadata-location' )
13171334 metadata : ViewMetadata
1335+ credentials : Optional [Credentials ] = None
13181336 config : Optional [Dict [str , str ]] = None
13191337
13201338
@@ -1398,6 +1416,38 @@ class Schema(StructType):
13981416 )
13991417
14001418
1419+ class ADLSCredentials (BaseModel ):
1420+ type : Literal ['adls' ]
1421+ sas_token : str = Field (..., alias = 'sas-token' )
1422+ expires_at_ms : int = Field (
1423+ ...,
1424+ alias = 'expires-at-ms' ,
1425+ description = 'The epoch millis at which the given token expires' ,
1426+ )
1427+
1428+
1429+ class GCSCredentials (BaseModel ):
1430+ type : Literal ['gcs' ]
1431+ token : str
1432+ expires_at_ms : int = Field (
1433+ ...,
1434+ alias = 'expires-at-ms' ,
1435+ description = 'The epoch millis at which the given token expires' ,
1436+ )
1437+
1438+
1439+ class S3Credentials (BaseModel ):
1440+ type : Literal ['s3' ]
1441+ access_key_id : str = Field (..., alias = 'access-key-id' )
1442+ secret_access_key : str = Field (..., alias = 'secret-access-key' )
1443+ session_token : str = Field (..., alias = 'session-token' )
1444+ expires_at_ms : int = Field (
1445+ ...,
1446+ alias = 'expires-at-ms' ,
1447+ description = 'The epoch millis at which the given token expires' ,
1448+ )
1449+
1450+
14011451class CompletedPlanningResult (ScanTasks ):
14021452 """
14031453 Completed server-side planning result
@@ -1430,12 +1480,16 @@ class CompletedPlanningWithIDResult(CompletedPlanningResult):
14301480TableMetadata .update_forward_refs ()
14311481ViewMetadata .update_forward_refs ()
14321482AddSchemaUpdate .update_forward_refs ()
1483+ Credentials .update_forward_refs ()
14331484ScanTasks .update_forward_refs ()
14341485FetchPlanningResult .update_forward_refs ()
14351486PlanTableScanResult .update_forward_refs ()
14361487CreateTableRequest .update_forward_refs ()
14371488CreateViewRequest .update_forward_refs ()
14381489ReportMetricsRequest .update_forward_refs ()
1490+ ADLSCredentials .update_forward_refs ()
1491+ GCSCredentials .update_forward_refs ()
1492+ S3Credentials .update_forward_refs ()
14391493CompletedPlanningResult .update_forward_refs ()
14401494FetchScanTasksResult .update_forward_refs ()
14411495CompletedPlanningWithIDResult .update_forward_refs ()
0 commit comments