Skip to content

Commit 860d73a

Browse files
committed
review feedback
1 parent 6575166 commit 860d73a

File tree

3 files changed

+56
-36
lines changed

3 files changed

+56
-36
lines changed

aws/src/main/resources/s3-signer-open-api.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ paths:
6262

6363
post:
6464
tags:
65-
- S3 Signer API
65+
- remote-signing
6666
summary: Remotely signs S3 requests
6767
operationId: signS3Request
6868
requestBody:

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,20 @@ class CatalogConfig(BaseModel):
5454
...,
5555
description='Properties that should be used as default configuration; applied before client configuration.',
5656
)
57+
capabilities: Optional[List[str]] = Field(
58+
None,
59+
description='Describes capabilities supported by the server. A server is required to implement all endpoints grouped under a particular capability. For example, if a server reports the support of `views`, then all endpoints grouped under the `views` capability must be implemented by the server.',
60+
example=[
61+
'tables',
62+
'views',
63+
'remote-signing',
64+
'vended-credentials',
65+
'multi-table-commit',
66+
'register-table',
67+
'table-metrics',
68+
],
69+
unique_items=True,
70+
)
5771

5872

5973
class UpdateNamespacePropertiesRequest(BaseModel):

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

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -68,19 +68,23 @@ security:
6868
# Capability tags describe optional functionality and are used to group endpoints together.
6969
# In order to support a particular capability, a server is required to implement all endpoints grouped under a particular tag.
7070
tags:
71+
- name: tables
72+
description: Required as part of table support
7173
- name: views
7274
description: Required as part of view support
7375
- name: remote-signing
7476
description: Required as part of remote signing support
7577
- name: multi-table-commit
7678
description: Required as part of multi-table commit support
79+
- name: register-table
80+
description: Required as part of register-table support
81+
- name: table-metrics
82+
description: Required as part of table metrics support
7783

7884
paths:
7985
/v1/config:
8086

8187
get:
82-
tags:
83-
- Configuration API
8488
summary: List all catalog configuration settings
8589
operationId: getConfig
8690
parameters:
@@ -115,6 +119,15 @@ paths:
115119
116120
Common catalog configuration settings are documented at
117121
https://iceberg.apache.org/docs/latest/configuration/#catalog-properties
122+
123+
124+
Capabilities are used by the server to signal supported functionality and can be:
125+
- tables (default capability in case the `capabilities` property doesn't exist or is empty in the response)
126+
- views
127+
- remote-signing
128+
- multi-table-commit
129+
- register-table
130+
- table-metrics
118131
"
119132
responses:
120133
200:
@@ -130,7 +143,7 @@ paths:
130143
"defaults": {
131144
"clients": "4"
132145
},
133-
"capabilities": ["views", "remote_signing"]
146+
"capabilities": ["tables", "views", "remote-signing"]
134147
}
135148
400:
136149
$ref: '#/components/responses/BadRequestErrorResponse'
@@ -148,8 +161,6 @@ paths:
148161
/v1/oauth/tokens:
149162

150163
post:
151-
tags:
152-
- OAuth2 API
153164
summary: Get a token using an OAuth2 flow
154165
operationId: getToken
155166
description:
@@ -207,7 +218,8 @@ paths:
207218

208219
get:
209220
tags:
210-
- Catalog API
221+
- tables
222+
- views
211223
summary: List namespaces, optionally providing a parent namespace to list underneath
212224
description:
213225
List all namespaces at a certain level, optionally starting from a given parent namespace.
@@ -258,7 +270,8 @@ paths:
258270

259271
post:
260272
tags:
261-
- Catalog API
273+
- tables
274+
- views
262275
summary: Create a namespace
263276
description:
264277
Create a namespace, with an optional set of properties.
@@ -304,7 +317,8 @@ paths:
304317

305318
get:
306319
tags:
307-
- Catalog API
320+
- tables
321+
- views
308322
summary: Load the metadata properties for a namespace
309323
operationId: loadNamespaceMetadata
310324
description: Return all stored metadata properties for a given namespace
@@ -335,7 +349,8 @@ paths:
335349

336350
head:
337351
tags:
338-
- Catalog API
352+
- tables
353+
- views
339354
summary: Check if a namespace exists
340355
operationId: namespaceExists
341356
description:
@@ -367,7 +382,8 @@ paths:
367382

368383
delete:
369384
tags:
370-
- Catalog API
385+
- tables
386+
- views
371387
summary: Drop a namespace from the catalog. Namespace must be empty.
372388
operationId: dropNamespace
373389
responses:
@@ -402,7 +418,8 @@ paths:
402418

403419
post:
404420
tags:
405-
- Catalog API
421+
- tables
422+
- views
406423
summary: Set or remove properties on a namespace
407424
operationId: updateProperties
408425
description:
@@ -465,7 +482,7 @@ paths:
465482

466483
get:
467484
tags:
468-
- Catalog API
485+
- tables
469486
summary: List all table identifiers underneath a given namespace
470487
description: Return all table identifiers under this namespace
471488
operationId: listTables
@@ -499,7 +516,7 @@ paths:
499516

500517
post:
501518
tags:
502-
- Catalog API
519+
- tables
503520
summary: Create a table in the given namespace
504521
description:
505522
Create a table or start a create transaction, like atomic CTAS.
@@ -564,7 +581,7 @@ paths:
564581

565582
post:
566583
tags:
567-
- Catalog API
584+
- register-table
568585
summary: Register a table in the given namespace using given metadata file location
569586
description:
570587
Register a table using given metadata file location.
@@ -618,7 +635,7 @@ paths:
618635

619636
get:
620637
tags:
621-
- Catalog API
638+
- tables
622639
summary: Load a table from the catalog
623640
operationId: loadTable
624641
description:
@@ -679,7 +696,7 @@ paths:
679696

680697
post:
681698
tags:
682-
- Catalog API
699+
- tables
683700
summary: Commit updates to a table
684701
operationId: updateTable
685702
description:
@@ -795,7 +812,7 @@ paths:
795812

796813
delete:
797814
tags:
798-
- Catalog API
815+
- tables
799816
summary: Drop a table from the catalog
800817
operationId: dropTable
801818
description: Remove a table from the catalog
@@ -835,7 +852,7 @@ paths:
835852

836853
head:
837854
tags:
838-
- Catalog API
855+
- tables
839856
summary: Check if a table exists
840857
operationId: tableExists
841858
description:
@@ -872,7 +889,7 @@ paths:
872889

873890
post:
874891
tags:
875-
- Catalog API
892+
- tables
876893
summary: Rename a table from its current name to a new name
877894
description:
878895
Rename a table from one identifier to another. It's valid to move a table
@@ -936,7 +953,7 @@ paths:
936953

937954
post:
938955
tags:
939-
- Catalog API
956+
- table-metrics
940957
summary: Send a metrics report to this endpoint to be processed by the backend
941958
operationId: reportMetrics
942959
requestBody:
@@ -978,7 +995,6 @@ paths:
978995

979996
post:
980997
tags:
981-
- Catalog API
982998
- multi-table-commit
983999
summary: Commit updates to multiple tables in an atomic operation
9841000
operationId: commitTransaction
@@ -1094,7 +1110,6 @@ paths:
10941110

10951111
get:
10961112
tags:
1097-
- Catalog API
10981113
- views
10991114
summary: List all view identifiers underneath a given namespace
11001115
description: Return all view identifiers under this namespace
@@ -1129,7 +1144,6 @@ paths:
11291144

11301145
post:
11311146
tags:
1132-
- Catalog API
11331147
- views
11341148
summary: Create a view in the given namespace
11351149
description:
@@ -1183,7 +1197,6 @@ paths:
11831197

11841198
get:
11851199
tags:
1186-
- Catalog API
11871200
- views
11881201
summary: Load a view from the catalog
11891202
operationId: loadView
@@ -1230,7 +1243,6 @@ paths:
12301243

12311244
post:
12321245
tags:
1233-
- Catalog API
12341246
- views
12351247
summary: Replace a view
12361248
operationId: replaceView
@@ -1331,7 +1343,6 @@ paths:
13311343

13321344
delete:
13331345
tags:
1334-
- Catalog API
13351346
- views
13361347
summary: Drop a view from the catalog
13371348
operationId: dropView
@@ -1364,7 +1375,6 @@ paths:
13641375

13651376
head:
13661377
tags:
1367-
- Catalog API
13681378
- views
13691379
summary: Check if a view exists
13701380
operationId: viewExists
@@ -1392,7 +1402,6 @@ paths:
13921402

13931403
post:
13941404
tags:
1395-
- Catalog API
13961405
- views
13971406
summary: Rename a view from its current name to a new name
13981407
description:
@@ -1596,13 +1605,10 @@ components:
15961605
uniqueItems: true
15971606
items:
15981607
type: string
1599-
enum:
1600-
- views
1601-
- vended-credentials
1602-
- remote-signing
1603-
- multi-table-commit
1604-
description: Capabilities supported by the server
1605-
example: [ "views", "remote-signing" ]
1608+
description:
1609+
Describes capabilities supported by the server. A server is required to implement all endpoints grouped under a particular capability.
1610+
For example, if a server reports the support of `views`, then all endpoints grouped under the `views` capability must be implemented by the server.
1611+
example: [ "tables", "views", "remote-signing", "vended-credentials", "multi-table-commit", "register-table", "table-metrics" ]
16061612

16071613
CreateNamespaceRequest:
16081614
type: object

0 commit comments

Comments
 (0)