Skip to content

Commit 67fb951

Browse files
committed
OpenAPI: Add endpoint for refreshing vended credentials
1 parent 8dc9eac commit 67fb951

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

open-api/rest-catalog-open-api.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,12 @@ class StorageCredential(BaseModel):
475475
config: Dict[str, str]
476476

477477

478+
class LoadCredentialsResponse(BaseModel):
479+
storage_credentials: List[StorageCredential] = Field(
480+
..., alias='storage-credentials'
481+
)
482+
483+
478484
class PlanStatus(BaseModel):
479485
__root__: Literal['completed', 'submitted', 'cancelled', 'failed'] = Field(
480486
..., description='Status of a server-side planning operation'

open-api/rest-catalog-open-api.yaml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,6 +1159,44 @@ paths:
11591159
5XX:
11601160
$ref: '#/components/responses/ServerErrorResponse'
11611161

1162+
/v1/{prefix}/namespaces/{namespace}/tables/{table}/credentials:
1163+
parameters:
1164+
- $ref: '#/components/parameters/prefix'
1165+
- $ref: '#/components/parameters/namespace'
1166+
- $ref: '#/components/parameters/table'
1167+
1168+
get:
1169+
tags:
1170+
- Catalog API
1171+
summary: Load vended credentials for a table from the catalog
1172+
operationId: loadCredentials
1173+
description: Load vended credentials for a table from the catalog.
1174+
responses:
1175+
200:
1176+
$ref: '#/components/responses/LoadCredentialsResponse'
1177+
400:
1178+
$ref: '#/components/responses/BadRequestErrorResponse'
1179+
401:
1180+
$ref: '#/components/responses/UnauthorizedResponse'
1181+
403:
1182+
$ref: '#/components/responses/ForbiddenResponse'
1183+
404:
1184+
description:
1185+
Not Found - NoSuchTableException, table to load credentials for does not exist
1186+
content:
1187+
application/json:
1188+
schema:
1189+
$ref: '#/components/schemas/IcebergErrorResponse'
1190+
examples:
1191+
TableToLoadDoesNotExist:
1192+
$ref: '#/components/examples/NoSuchTableError'
1193+
419:
1194+
$ref: '#/components/responses/AuthenticationTimeoutResponse'
1195+
503:
1196+
$ref: '#/components/responses/ServiceUnavailableResponse'
1197+
5XX:
1198+
$ref: '#/components/responses/ServerErrorResponse'
1199+
11621200
/v1/{prefix}/tables/rename:
11631201
parameters:
11641202
- $ref: '#/components/parameters/prefix'
@@ -3118,6 +3156,16 @@ components:
31183156
additionalProperties:
31193157
type: string
31203158

3159+
LoadCredentialsResponse:
3160+
type: object
3161+
required:
3162+
- storage-credentials
3163+
properties:
3164+
storage-credentials:
3165+
type: array
3166+
items:
3167+
$ref: '#/components/schemas/StorageCredential'
3168+
31213169
LoadTableResult:
31223170
description: |
31233171
Result used when a table is successfully loaded.
@@ -4579,6 +4627,13 @@ components:
45794627
schema:
45804628
$ref: '#/components/schemas/CommitTableResponse'
45814629

4630+
LoadCredentialsResponse:
4631+
description: Table credentials result when loading credentials for a table
4632+
content:
4633+
application/json:
4634+
schema:
4635+
$ref: '#/components/schemas/LoadCredentialsResponse'
4636+
45824637
#######################################
45834638
# Common examples of different values #
45844639
#######################################

0 commit comments

Comments
 (0)