This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new b38d025760 [rest] Fix content-security-policy violation on RestCatalog
API yaml (#5355)
b38d025760 is described below
commit b38d025760b46f8f3b8ec60022a363412b9957ca
Author: Yubin Li <[email protected]>
AuthorDate: Thu Mar 27 17:01:32 2025 +0800
[rest] Fix content-security-policy violation on RestCatalog API yaml (#5355)
---
docs/content/concepts/rest/rest-api.md | 7 +-
docs/layouts/partials/docs/inject/head.html | 1 -
.../shortcodes/redoc_rest_catalog_api.html} | 29 +-
docs/static/rest-catalog-open-api.yaml | 2269 ++++++++++++++++++++
paimon-docs/pom.xml | 7 +
5 files changed, 2288 insertions(+), 25 deletions(-)
diff --git a/docs/content/concepts/rest/rest-api.md
b/docs/content/concepts/rest/rest-api.md
index 5e20f495a7..6aa8175c7a 100644
--- a/docs/content/concepts/rest/rest-api.md
+++ b/docs/content/concepts/rest/rest-api.md
@@ -24,10 +24,5 @@ under the License.
-->
<body>
- <div id="redoc-container"></div>
- <script>
-
Redoc.init('https://raw.githubusercontent.com/apache/paimon/master/paimon-open-api/rest-catalog-open-api.yaml',
{
- disableSearch: true
- }, document.getElementById('redoc-container'));
- </script>
+ {{< redoc_rest_catalog_api >}}
</body>
diff --git a/docs/layouts/partials/docs/inject/head.html
b/docs/layouts/partials/docs/inject/head.html
index 992547540d..b5719754de 100644
--- a/docs/layouts/partials/docs/inject/head.html
+++ b/docs/layouts/partials/docs/inject/head.html
@@ -24,6 +24,5 @@ under the License.
<script src="{{.Site.BaseURL}}/js/flink.js"></script>
<!-- Only takes effect when the `redocPage` variable is true. -->
{{ if .Params.redocPage }}
- <meta http-equiv="Content-Security-Policy" content="script-src 'self'
'unsafe-inline' 'unsafe-eval'; default-src 'self' data: blob: 'unsafe-inline'
https://raw.githubusercontent.com/apache/paimon/master/paimon-open-api/;">
<script src="{{.Site.BaseURL}}/js/redoc.standalone.js"></script>
{{ end }}
diff --git a/docs/content/concepts/rest/rest-api.md
b/docs/layouts/shortcodes/redoc_rest_catalog_api.html
similarity index 62%
copy from docs/content/concepts/rest/rest-api.md
copy to docs/layouts/shortcodes/redoc_rest_catalog_api.html
index 5e20f495a7..39101b2c52 100644
--- a/docs/content/concepts/rest/rest-api.md
+++ b/docs/layouts/shortcodes/redoc_rest_catalog_api.html
@@ -1,10 +1,4 @@
----
-title: "REST API"
-layout: "custom-page"
-bookToc: false
-redocPage: true
----
-<!--
+{{/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
@@ -13,7 +7,7 @@ to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
+http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
@@ -21,13 +15,12 @@ software distributed under the License is distributed on an
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
--->
-
-<body>
- <div id="redoc-container"></div>
- <script>
-
Redoc.init('https://raw.githubusercontent.com/apache/paimon/master/paimon-open-api/rest-catalog-open-api.yaml',
{
- disableSearch: true
- }, document.getElementById('redoc-container'));
- </script>
-</body>
+*/}}{{/*
+Shortcode for RestCatalog open-api rendered by Redoc
+*/}}
+<div id="redoc-container"></div>
+<script>
+ Redoc.init('{{.Site.BaseURL}}/rest-catalog-open-api.yaml', {
+ disableSearch: true
+ }, document.getElementById('redoc-container'));
+</script>
diff --git a/docs/static/rest-catalog-open-api.yaml
b/docs/static/rest-catalog-open-api.yaml
new file mode 100644
index 0000000000..26b9f1234a
--- /dev/null
+++ b/docs/static/rest-catalog-open-api.yaml
@@ -0,0 +1,2269 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+openapi: 3.0.1
+info:
+ title: RESTCatalog API
+ description: This API exposes endpoints to RESTCatalog.
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
+ version: "1.0"
+servers:
+ - url: http://localhost:8080
+ description: Server URL in Development environment
+paths:
+ /v1/catalogs:
+ post:
+ tags:
+ - Catalogs
+ operationId: createCatalog
+ summary: Create a catalog
+ description: |
+ Creates a new catalog instance.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCatalogRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "409":
+ description: Resource has exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ get:
+ tags:
+ - Catalogs
+ parameters:
+ - name: maxResults
+ in: query
+ description: |
+ Maximum number of catalogs to return.
+ - when set to a value greater than 0, the page length is the
minimum of this value and a server configured value;
+ - when set to 0 or less than 0, the page length is set to a server
configured value;
+ schema:
+ type: integer
+ format: int32
+ maximum: 100
+ required: false
+ - name: pageToken
+ in: query
+ description: |
+ Opaque pagination token to go to next page based on previous query.
+ schema:
+ type: string
+ required: false
+ operationId: listCatalogs
+ summary: List catalogs
+ description: |
+ Lists the available catalogs.
+ responses:
+ "200":
+ description: The catalog list was successfully retrieved.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListCatalogsResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/catalogs/{catalog}:
+ parameters:
+ - name: catalog
+ in: path
+ description: The name of the catalog.
+ required: true
+ schema:
+ type: string
+ get:
+ tags:
+ - Catalogs
+ operationId: getCatalog
+ summary: Get a catalog
+ description: |
+ Gets the specified catalog.
+ responses:
+ "200":
+ description: The catalog was successfully retrieved.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetCatalogResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ patch:
+ tags:
+ - Catalogs
+ operationId: alterCatalog
+ summary: Alter a catalog
+ description: |
+ Alter the catalog that matches the supplied name.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AlterCatalogRequest'
+ responses:
+ "200":
+ description: The catalog was successfully altered.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AlterCatalogResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ delete:
+ tags:
+ - Catalogs
+ operationId: dropCatalog
+ summary: Drop a catalog
+ description: |
+ Drop the catalog that matches the supplied name.
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/config:
+ get:
+ tags:
+ - config
+ summary: Get Config
+ operationId: getConfig
+ parameters:
+ - name: warehouse
+ in: query
+ required: false
+ schema:
+ type: string
+ description: Warehouse location or identifier to request from the
service
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfigResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases:
+ get:
+ tags:
+ - database
+ summary: List Databases
+ operationId: listDatabases
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: maxResults
+ in: query
+ schema:
+ type: integer
+ format: int32
+ - name: pageToken
+ in: query
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListDatabasesResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ post:
+ tags:
+ - database
+ summary: Create Databases
+ operationId: createDatabases
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateDatabaseRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "409":
+ description: Resource has exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}:
+ get:
+ tags:
+ - database
+ summary: Get Database
+ operationId: getDatabases
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetDatabaseResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ delete:
+ tags:
+ - database
+ summary: Drop Database
+ operationId: dropDatabase
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/properties:
+ post:
+ tags:
+ - database
+ summary: Alter Database
+ operationId: alterDatabase
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AlterDatabaseRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AlterDatabaseResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables:
+ get:
+ tags:
+ - table
+ summary: List tables
+ operationId: listTables
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: maxResults
+ in: query
+ schema:
+ type: integer
+ format: int32
+ - name: pageToken
+ in: query
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListTablesResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ post:
+ tags:
+ - table
+ summary: Create table
+ operationId: createTable
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateTableRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/table-details:
+ get:
+ tags:
+ - table
+ summary: List table details
+ operationId: listTableDetails
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: maxResults
+ in: query
+ schema:
+ type: integer
+ format: int32
+ - name: pageToken
+ in: query
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListTableDetailsResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}:
+ get:
+ tags:
+ - table
+ summary: Get table
+ operationId: getTable
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetTableResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ post:
+ tags:
+ - table
+ summary: Alter table
+ operationId: alterTable
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AlterTableRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "409":
+ description: Resource has exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ delete:
+ tags:
+ - table
+ summary: Drop table
+ operationId: dropTable
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Success, no content
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/tables/rename:
+ post:
+ tags:
+ - table
+ summary: Rename table
+ operationId: renameTable
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RenameTableRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "409":
+ description: Resource has exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/commit:
+ post:
+ tags:
+ - table
+ summary: Commit table
+ operationId: commitTable
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CommitTableRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CommitTableResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "409":
+ description: Resource has exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/rollback:
+ post:
+ tags:
+ - table
+ summary: Rollback table
+ operationId: rollbackTable
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RollbackTableRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/token:
+ get:
+ tags:
+ - table
+ summary: Get table token
+ operationId: getTableToken
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetTableDataTokenResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/snapshot:
+ get:
+ tags:
+ - table
+ summary: Get table snapshot
+ operationId: getTableSnapshot
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetTableSnapshotResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/partitions:
+ get:
+ tags:
+ - partition
+ summary: List partitions
+ operationId: listPartitions
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: maxResults
+ in: query
+ schema:
+ type: integer
+ format: int32
+ - name: pageToken
+ in: query
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListPartitionsResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/partitions/mark:
+ post:
+ tags:
+ - partition
+ summary: MarkDone partitions
+ operationId: markDonePartitions
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MarkDonePartitionsRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/branches:
+ get:
+ tags:
+ - branch
+ summary: List branches
+ operationId: listBranches
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListBranchesResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ post:
+ tags:
+ - branch
+ summary: Create branch
+ operationId: createBranch
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateBranchRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/branches/{branch}:
+ delete:
+ tags:
+ - branch
+ summary: Drop branch
+ operationId: dropBranch
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: branch
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/tables/{table}/branches/{branch}/forward:
+ post:
+ tags:
+ - branch
+ summary: forward branch
+ operationId: forwardBranch
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: table
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: branch
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ForwardBranchRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "409":
+ description: Resource has exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/views:
+ get:
+ tags:
+ - view
+ summary: List views
+ operationId: listViews
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: maxResults
+ in: query
+ schema:
+ type: integer
+ format: int32
+ - name: pageToken
+ in: query
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListViewsResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ post:
+ tags:
+ - view
+ summary: Create view
+ operationId: createView
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateViewRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/view-details:
+ get:
+ tags:
+ - view
+ summary: List view details
+ operationId: listViewDetails
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: maxResults
+ in: query
+ schema:
+ type: integer
+ format: int32
+ - name: pageToken
+ in: query
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListViewDetailsResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/databases/{database}/views/{view}:
+ get:
+ tags:
+ - view
+ summary: Get view
+ operationId: getView
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: view
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/GetViewResponse'
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ post:
+ tags:
+ - view
+ summary: Alter view
+ operationId: alterView
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: view
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AlterViewRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ delete:
+ tags:
+ - view
+ summary: Drop view
+ operationId: dropView
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: database
+ in: path
+ required: true
+ schema:
+ type: string
+ - name: view
+ in: path
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+ /v1/{prefix}/views/rename:
+ post:
+ tags:
+ - view
+ summary: Rename view
+ operationId: renameView
+ parameters:
+ - name: prefix
+ in: path
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RenameTableRequest'
+ responses:
+ "200":
+ description: Success, no content
+ "401":
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "404":
+ description: Resource not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "409":
+ description: Resource has exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ "500":
+ description: Internal Server Error
+components:
+ schemas:
+ CreateCatalogRequest:
+ type: object
+ properties:
+ name:
+ description: Name of catalog.
+ type: string
+ options:
+ type: object
+ additionalProperties:
+ type: string
+ ListCatalogsResponse:
+ type: object
+ properties:
+ catalogs:
+ description: An array of catalog information objects.
+ type: array
+ items:
+ $ref: '#/components/schemas/GetCatalogResponse'
+ nextPageToken:
+ type: string
+ description: |
+ Opaque token to retrieve the next page of results. Absent if there
are no more pages.
+ pageToken should be set to this value for the next request (for
the next page of results).
+ GetCatalogResponse:
+ type: object
+ properties:
+ id:
+ description: Unique identifier for the catalog.
+ type: string
+ name:
+ description: Name of catalog.
+ type: string
+ options:
+ type: object
+ additionalProperties:
+ type: string
+ owner:
+ description: Username of current owner of catalog.
+ type: string
+ created_at:
+ description: Time at which this catalog was created, in epoch
milliseconds.
+ type: integer
+ format: int64
+ created_by:
+ description: Username of catalog creator.
+ type: string
+ updated_at:
+ description: Time at which this catalog was last modified, in epoch
milliseconds.
+ type: integer
+ format: int64
+ updated_by:
+ description: Username of user who last modified catalog.
+ type: string
+ AlterCatalogRequest:
+ type: object
+ properties:
+ removals:
+ type: array
+ items:
+ type: string
+ updates:
+ type: object
+ additionalProperties:
+ type: string
+ AlterCatalogResponse:
+ type: object
+ properties:
+ removed:
+ type: array
+ items:
+ type: string
+ updated:
+ type: array
+ items:
+ type: string
+ missing:
+ type: array
+ items:
+ type: string
+ CreateDatabaseRequest:
+ type: object
+ properties:
+ name:
+ type: string
+ options:
+ type: object
+ additionalProperties:
+ type: string
+ CreatePartitionsRequest:
+ type: object
+ properties:
+ specs:
+ type: array
+ items:
+ type: object
+ DropPartitionsRequest:
+ type: object
+ properties:
+ specs:
+ type: array
+ items:
+ type: object
+ AlterTableRequest:
+ type: object
+ properties:
+ changes:
+ type: array
+ items:
+ $ref: '#/components/schemas/SchemaChange'
+ MarkDonePartitionsRequest:
+ type: object
+ properties:
+ specs:
+ type: array
+ items:
+ type: object
+ CreateDatabaseResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ options:
+ type: object
+ additionalProperties:
+ type: string
+ ErrorResponse:
+ type: object
+ properties:
+ message:
+ type: string
+ resourceType:
+ type: string
+ enum: ["DATABASE", "TABLE", "COLUMN", "SNAPSHOT", "BRANCH", "TAG",
"VIEW", "DIALECT", "UNKNOWN"]
+ resourceName:
+ type: string
+ code:
+ type: integer
+ format: int32
+ CreateTableRequest:
+ type: object
+ properties:
+ identifier:
+ $ref: '#/components/schemas/Identifier'
+ schema:
+ $ref: '#/components/schemas/Schema'
+ CreateViewRequest:
+ type: object
+ properties:
+ identifier:
+ $ref: '#/components/schemas/Identifier'
+ schema:
+ $ref: '#/components/schemas/ViewSchema'
+ AlterViewRequest:
+ type: object
+ properties:
+ changes:
+ type: array
+ items:
+ $ref: '#/components/schemas/ViewChange'
+ ViewChange:
+ anyOf:
+ - $ref: '#/components/schemas/SetViewOption'
+ - $ref: '#/components/schemas/RemoveViewOption'
+ - $ref: '#/components/schemas/UpdateViewComment'
+ - $ref: '#/components/schemas/AddDialect'
+ - $ref: '#/components/schemas/UpdateDialect'
+ - $ref: '#/components/schemas/DropDialect'
+ required:
+ - action
+ properties:
+ action:
+ type: string
+ SetViewOption:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "setOption"
+ key:
+ type: string
+ value:
+ type: string
+ RemoveViewOption:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "removeOption"
+ key:
+ type: string
+ UpdateViewComment:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "comment"
+ key:
+ type: string
+ AddDialect:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "addDialect"
+ dialect:
+ type: string
+ query:
+ type: string
+ UpdateDialect:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "updateDialect"
+ dialect:
+ type: string
+ query:
+ type: string
+ DropDialect:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "dropDialect"
+ dialect:
+ type: string
+ DataField:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int32
+ name:
+ type: string
+ type:
+ $ref: '#/components/schemas/DataType'
+ description:
+ type: string
+ DataType:
+ oneOf:
+ - $ref: '#/components/schemas/PrimitiveType'
+ - $ref: '#/components/schemas/ArrayType'
+ - $ref: '#/components/schemas/MultisetType'
+ - $ref: '#/components/schemas/MapType'
+ - $ref: '#/components/schemas/RowType'
+ PrimitiveType:
+ type: string
+ ArrayType:
+ type: object
+ properties:
+ type:
+ type: string
+ pattern: ^ARRAY.*
+ example: ARRAY
+ element:
+ $ref: '#/components/schemas/DataType'
+ MultisetType:
+ type: object
+ properties:
+ type:
+ type: string
+ pattern: ^MULTISET.*
+ example: MULTISET
+ element:
+ $ref: '#/components/schemas/DataType'
+ MapType:
+ type: object
+ properties:
+ type:
+ type: string
+ pattern: ^MAP.*
+ example: MAP
+ key:
+ $ref: '#/components/schemas/DataType'
+ value:
+ $ref: '#/components/schemas/DataType'
+ RowType:
+ type: object
+ properties:
+ type:
+ type: string
+ pattern: ^ROW.*
+ example: ROW
+ fields:
+ type: array
+ items:
+ $ref: '#/components/schemas/DataField'
+ Identifier:
+ type: object
+ properties:
+ database:
+ type: string
+ object:
+ type: string
+ Schema:
+ type: object
+ properties:
+ fields:
+ type: array
+ items:
+ $ref: '#/components/schemas/DataField'
+ partitionKeys:
+ type: array
+ items:
+ type: string
+ primaryKeys:
+ type: array
+ items:
+ type: string
+ options:
+ type: object
+ additionalProperties:
+ type: string
+ comment:
+ type: string
+ GetTableResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ path:
+ type: string
+ isExternal:
+ type: boolean
+ schemaId:
+ type: integer
+ format: int64
+ schema:
+ $ref: '#/components/schemas/Schema'
+ owner:
+ type: string
+ createdAt:
+ format: int64
+ createdBy:
+ type: string
+ updatedAt:
+ format: int64
+ updatedBy:
+ type: string
+ SchemaChange:
+ anyOf:
+ - $ref: '#/components/schemas/SetOption'
+ - $ref: '#/components/schemas/RemoveOption'
+ - $ref: '#/components/schemas/UpdateComment'
+ - $ref: '#/components/schemas/AddColumn'
+ - $ref: '#/components/schemas/RenameColumn'
+ - $ref: '#/components/schemas/DropColumn'
+ - $ref: '#/components/schemas/UpdateColumnComment'
+ - $ref: '#/components/schemas/UpdateColumnType'
+ - $ref: '#/components/schemas/UpdateColumnPosition'
+ - $ref: '#/components/schemas/UpdateColumnNullability'
+ required:
+ - action
+ properties:
+ action:
+ type: string
+ SetOption:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "setOption"
+ key:
+ type: string
+ value:
+ type: string
+ RemoveOption:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "removeOption"
+ key:
+ type: string
+ UpdateComment:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "updateComment"
+ comment:
+ type: string
+ AddColumn:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "addColumn"
+ fieldNames:
+ type: array
+ items:
+ type: string
+ dataType:
+ $ref: '#/components/schemas/DataType'
+ comment:
+ type: string
+ move:
+ $ref: '#/components/schemas/Move'
+ RenameColumn:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "renameColumn"
+ fieldNames:
+ type: array
+ items:
+ type: string
+ newName:
+ type: string
+ DropColumn:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "dropColumn"
+ fieldNames:
+ type: array
+ items:
+ type: string
+ UpdateColumnComment:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "updateColumnComment"
+ fieldNames:
+ type: array
+ items:
+ type: string
+ newComment:
+ type: string
+ UpdateColumnType:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "updateColumnType"
+ fieldNames:
+ type: array
+ items:
+ type: string
+ newDataType:
+ $ref: '#/components/schemas/DataType'
+ keepNullability:
+ type: boolean
+ UpdateColumnPosition:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "updateColumnPosition"
+ move:
+ $ref: '#/components/schemas/Move'
+ UpdateColumnNullability:
+ type: object
+ properties:
+ action:
+ type: string
+ const: "update_column_nullability"
+ fieldNames:
+ type: array
+ items:
+ type: string
+ newNullability:
+ type: boolean
+ Move:
+ type: object
+ properties:
+ fieldName:
+ type: string
+ referenceFieldName:
+ type: string
+ type:
+ type: string
+ RenameTableRequest:
+ type: object
+ properties:
+ source:
+ $ref: '#/components/schemas/Identifier'
+ destination:
+ $ref: '#/components/schemas/Identifier'
+ CommitTableRequest:
+ type: object
+ properties:
+ snapshot:
+ $ref: '#/components/schemas/Snapshot'
+ statistics:
+ type: array
+ items:
+ $ref: '#/components/schemas/PartitionStatistics'
+ RollbackTableRequest:
+ type: object
+ properties:
+ instant:
+ $ref: '#/components/schemas/Instant'
+ Instant:
+ anyOf:
+ - $ref: '#/components/schemas/SnapshotInstant'
+ - $ref: '#/components/schemas/TagInstant'
+ required:
+ - type
+ properties:
+ type:
+ type: string
+ SnapshotInstant:
+ type: object
+ properties:
+ 'type':
+ type: string
+ const: "snapshot"
+ snapshotId:
+ type: integer
+ format: int64
+ TagInstant:
+ type: object
+ properties:
+ 'type':
+ type: string
+ const: "tag"
+ tagName:
+ type: string
+ Snapshot:
+ type: object
+ properties:
+ version:
+ type: integer
+ format: int32
+ nullable: true
+ id:
+ type: integer
+ format: int64
+ schemaId:
+ type: integer
+ format: int64
+ baseManifestList:
+ type: string
+ deltaManifestList:
+ type: string
+ changelogManifestList:
+ type: string
+ nullable: true
+ indexManifest:
+ type: string
+ commitUser:
+ type: string
+ commitIdentifier:
+ type: string
+ commitKind:
+ type: string
+ enum: ["APPEND", "COMPACT", "OVERWRITE", "ANALYZE"]
+ timeMillis:
+ type: integer
+ format: int64
+ logOffsets:
+ type: object
+ additionalProperties:
+ type: integer
+ format: int64
+ totalRecordCount:
+ type: integer
+ format: int64
+ deltaRecordCount:
+ type: integer
+ format: int64
+ changelogRecordCount:
+ type: integer
+ format: int64
+ watermark:
+ type: integer
+ format: int64
+ statistics:
+ type: string
+ TableSnapshot:
+ type: object
+ properties:
+ snapshot:
+ $ref: '#/components/schemas/Snapshot'
+ recordCount:
+ type: integer
+ format: int64
+ fileSizeInBytes:
+ type: integer
+ format: int64
+ fileCount:
+ type: integer
+ format: int64
+ lastFileCreationTime:
+ type: integer
+ format: int64
+ CommitTableResponse:
+ type: object
+ properties:
+ success:
+ type: boolean
+ GetTableDataTokenResponse:
+ type: object
+ properties:
+ token:
+ type: object
+ additionalProperties:
+ type: string
+ expiresAt:
+ type: integer
+ format: int64
+ GetTableSnapshotResponse:
+ type: object
+ properties:
+ snapshot:
+ $ref: '#/components/schemas/TableSnapshot'
+ AlterDatabaseRequest:
+ type: object
+ properties:
+ removals:
+ type: array
+ items:
+ type: string
+ updates:
+ type: object
+ additionalProperties:
+ type: string
+ AlterPartitionsRequest:
+ type: object
+ properties:
+ partitions:
+ type: array
+ items:
+ $ref: '#/components/schemas/Partition'
+ AlterDatabaseResponse:
+ type: object
+ properties:
+ removed:
+ type: array
+ items:
+ type: string
+ updated:
+ type: array
+ items:
+ type: string
+ missing:
+ type: array
+ items:
+ type: string
+ ListDatabasesResponse:
+ type: object
+ properties:
+ databases:
+ type: array
+ items:
+ type: string
+ nextPageToken:
+ type: string
+ GetDatabaseResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ location:
+ type: string
+ options:
+ type: object
+ additionalProperties:
+ type: string
+ owner:
+ type: string
+ createdAt:
+ format: int64
+ createdBy:
+ type: string
+ updatedAt:
+ format: int64
+ updatedBy:
+ type: string
+ ListTablesResponse:
+ type: object
+ properties:
+ tables:
+ type: array
+ items:
+ type: string
+ nextPageToken:
+ type: string
+ ListTableDetailsResponse:
+ type: object
+ properties:
+ tableDetails:
+ type: array
+ items:
+ $ref: '#/components/schemas/GetTableResponse'
+ nextPageToken:
+ type: string
+ ConfigResponse:
+ type: object
+ properties:
+ defaults:
+ type: object
+ additionalProperties:
+ type: string
+ overrides:
+ type: object
+ additionalProperties:
+ type: string
+ ListPartitionsResponse:
+ type: object
+ properties:
+ partitions:
+ type: array
+ items:
+ $ref: '#/components/schemas/Partition'
+ nextPageToken:
+ type: string
+ CreateBranchRequest:
+ type: object
+ properties:
+ branch:
+ type: string
+ fromTag:
+ nullable: true
+ type: string
+ ForwardBranchRequest:
+ type: object
+ properties:
+ branch:
+ type: string
+ ListBranchesResponse:
+ type: object
+ properties:
+ branches:
+ type: array
+ items:
+ type: string
+ GetViewResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ name:
+ type: string
+ schema:
+ $ref: '#/components/schemas/ViewSchema'
+ owner:
+ type: string
+ createdAt:
+ format: int64
+ createdBy:
+ type: string
+ updatedAt:
+ format: int64
+ updatedBy:
+ type: string
+ ListViewsResponse:
+ type: object
+ properties:
+ views:
+ type: array
+ items:
+ type: string
+ nextPageToken:
+ type: string
+ ListViewDetailsResponse:
+ type: object
+ properties:
+ viewDetails:
+ type: array
+ items:
+ $ref: '#/components/schemas/GetViewResponse'
+ nextPageToken:
+ type: string
+ ViewSchema:
+ type: object
+ properties:
+ fields:
+ type: array
+ items:
+ $ref: '#/components/schemas/DataField'
+ query:
+ type: string
+ dialects:
+ type: object
+ additionalProperties:
+ type: string
+ comment:
+ type: string
+ options:
+ type: object
+ additionalProperties:
+ type: string
+ Partition:
+ type: object
+ properties:
+ spec:
+ type: object
+ recordCount:
+ type: integer
+ format: int64
+ fileSizeInBytes:
+ type: integer
+ format: int64
+ fileCount:
+ type: integer
+ format: int64
+ lastFileCreationTime:
+ type: integer
+ format: int64
+ done:
+ type: boolean
+ PartitionStatistics:
+ type: object
+ properties:
+ spec:
+ type: object
+ recordCount:
+ type: integer
+ format: int64
+ fileSizeInBytes:
+ type: integer
+ format: int64
+ fileCount:
+ type: integer
+ format: int64
+ lastFileCreationTime:
+ type: integer
+ format: int64
+ securitySchemes:
+ BearerAuth:
+ type: http
+ scheme: bearer
diff --git a/paimon-docs/pom.xml b/paimon-docs/pom.xml
index 9341b89c67..e5dd03a53f 100644
--- a/paimon-docs/pom.xml
+++ b/paimon-docs/pom.xml
@@ -33,6 +33,7 @@ under the License.
<properties>
<generated.docs.dir>./docs/layouts/shortcodes/generated</generated.docs.dir>
+ <static.docs.dir>./docs/static</static.docs.dir>
</properties>
<dependencies>
@@ -158,6 +159,12 @@ under the License.
<arg
value="${rootDir}/${generated.docs.dir}/"/>
<arg value="${rootDir}"/>
</java>
+ <mkdir
dir="${project.basedir}/../${static.docs.dir}"/>
+ <copy
todir="${project.basedir}/../${static.docs.dir}">
+ <fileset
dir="${project.basedir}/../paimon-open-api">
+ <include
name="rest-catalog-open-api.yaml"/>
+ </fileset>
+ </copy>
</target>
</configuration>
</execution>