flyrain commented on code in PR #808:
URL: https://github.com/apache/polaris/pull/808#discussion_r1931307464
##########
spec/rest-catalog-open-api.yaml:
##########
@@ -1595,6 +1595,261 @@ paths:
$ref: '#/components/responses/ServiceUnavailableResponse'
5XX:
$ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/policies:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+
+ post:
+ tags:
+ - Catalog API
+ summary: 'Create a policy in the given namespace'
+ operationId: createPolicy
+ description:
+ Create a policy in the given namespace
Review Comment:
Nit: put them in the same line?
##########
spec/rest-catalog-open-api.yaml:
##########
@@ -3977,6 +4241,151 @@ components:
items:
type: integer
description: "List of equality field IDs"
+
+ Policy:
+ type: object
+ required:
+ - owner_id
Review Comment:
There was a discussion around the name `owner_id` in the design doc. The
concern is that people may confuse `owner` with a user or a principal. How
about something like `owner_entity_id`?
##########
spec/rest-catalog-open-api.yaml:
##########
@@ -3977,6 +4241,151 @@ components:
items:
type: integer
description: "List of equality field IDs"
+
+ Policy:
+ type: object
+ required:
+ - owner_id
+ - policy-id
+ - policy-type
+ - name
+ - content
+ - version
+ properties:
+ owner-id:
+ type: string
+ policy-id:
+ type: string
+ policy-type:
+ type: string
+ name:
+ type: string
+ description:
+ type: string
+ content:
+ $ref: '#/components/schemas/PolicyContent'
+ version:
+ type: integer
+ created-at-ms:
+ type: integer
+ format: int64
+ updated-at-ms:
+ type: integer
+ format: int64
+
+ PolicyContent: {}
Review Comment:
I think `PolicyContent` is a string type.
##########
spec/rest-catalog-open-api.yaml:
##########
@@ -3977,6 +4241,151 @@ components:
items:
type: integer
description: "List of equality field IDs"
+
+ Policy:
+ type: object
+ required:
+ - owner_id
+ - policy-id
+ - policy-type
+ - name
+ - content
+ - version
+ properties:
+ owner-id:
+ type: string
+ policy-id:
+ type: string
+ policy-type:
+ type: string
+ name:
+ type: string
+ description:
+ type: string
+ content:
+ $ref: '#/components/schemas/PolicyContent'
+ version:
+ type: integer
+ created-at-ms:
+ type: integer
+ format: int64
+ updated-at-ms:
+ type: integer
+ format: int64
+
+ PolicyContent: {}
+
+ CreatePolicyRequest:
+ type: object
+ required:
+ - name
+ - type
+ - content
Review Comment:
Are we going to allow users to create a policy without any content? I think
we should allow that, users can update the content later. WDYT?
##########
spec/rest-catalog-open-api.yaml:
##########
@@ -1595,6 +1595,261 @@ paths:
$ref: '#/components/responses/ServiceUnavailableResponse'
5XX:
$ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/policies:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+
+ post:
+ tags:
+ - Catalog API
+ summary: 'Create a policy in the given namespace'
+ operationId: createPolicy
+ description:
+ Create a policy in the given namespace
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreatePolicyRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/CreatePolicyResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/policies/{policy}:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+ - $ref: '#/components/parameters/policy'
+
+ get:
+ tags:
+ - Catalog API
+ summary: 'Get a policy'
+ operationId: getPolicy
+ description:
+ Get a policy from the catalog
+
+
+ The response contains the policy's metadata and content
+ responses:
+ 200:
+ $ref: '#/components/responses/LoadPolicyResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchPolicyException, policy to get does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ PolicyToGetDoesNotExist:
+ $ref: '#/components/examples/NoSuchPolicyError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ put:
+ tags:
+ - Catalog API
+ summary: Update a policy
+ operationId: updatePolicy
+ description:
+ Update a policy
Review Comment:
same line as well?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]