You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polaris.apache.org by sn...@apache.org on 2024/10/02 08:15:06 UTC
(polaris) branch main updated: Website with Hugo (#279)
This is an automated email from the ASF dual-hosted git repository.
snazy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new 012bdcc1 Website with Hugo (#279)
012bdcc1 is described below
commit 012bdcc132582e10aa307cd67332974324dd7679
Author: Robert Stupp <sn...@snazy.de>
AuthorDate: Wed Oct 2 10:15:02 2024 +0200
Website with Hugo (#279)
An approach for the website using Hugo, built to support versioned docs for Polaris releases.
"Released versions" are categorized into "active" and "EOL" versions - only the "actively maintained" versions appear in the menu in the navbar.
** Quickstart **
Just run the following command to let Hugo serve files from the Polaris `site/`.
```bash
site/bin/run-hugo-in-docker.sh
```
Then point your browser to http://localhost:1313/
To stop the Hugo run
```bash
site/bin/stop-hugo-in-docker.sh
```
(or just ctrl-C)
See `README.md` in the `site/` directory for more options
** Versioned docs **
The idea here is that docs of releases live in either a separate branch or a separate Git repo.
The `/releases` folder would _not_ be in the main Polaris repository (at least not in any code branch). It would be
mounted either via `git worktree` or `git clone`. Building and testing the site locally works without the `/releases`
folder. For developers, it is probably much easier to have a separate branch in the main Polaris GitHub repository
and leverage Git worktrees.
Docs for the current code branch (e.g. `main` branch) are maintained in the `/in-dev/unreleased` folder. While we
could maintain the docs right in the `/in-dev` folder, having the in-dev docs in `/in-dev/unreleased` provides the
ability to use relative links that still work when the docs are in an `/releases/x.y.z` folder (think: links like
`../../guides/foo-bar.md`).
Within a release's versioned docs folder, the release version number can be included in the markdown using the
custom Hugo shortcode `{{< releaseVersion >}}`.
---
.github/workflows/check-md-link.yml | 3 +-
.github/workflows/site.yml | 58 +
.gitignore | 5 +
README.md | 11 +-
build.gradle.kts | 9 +
docs/CNAME | 1 -
docs/build | 6 -
docs/index.html | 3665 ----------
.../workflows/check-md-link.yml => site/.gitignore | 29 +-
site/README.md | 210 +
site/assets/icons/logo.svg | 48 +
site/assets/scss/_styles_project.scss | 26 +
site/bin/_hugo-docker-include.sh | 76 +
.../bin/checkout-releases.sh | 32 +-
.../bin/create-static-site.sh | 53 +-
.../bin/remove-releases.sh | 38 +-
.../bin/run-hugo-in-docker.sh | 35 +-
.../bin/stop-hugo-in-docker.sh | 28 +-
site/content/_index.adoc | 53 +
.../content/blog/2024/10/01/dummy-post.md | 30 +-
.../content/blog/_index.adoc | 37 +-
site/content/chat-bylaws.md | 1 +
site/content/code-of-conduct.md | 1 +
site/content/community/_index.adoc | 97 +
.../content/community/chat-bylaws.md | 31 +-
.../content/community/code-of-conduct.md | 31 +-
.../content/community/contributing-guidelines.md | 31 +-
.../content/community/meetings/2024/_index.adoc | 44 +-
.../content/community/meetings/_index.adoc | 34 +-
.../content/community/proposals.adoc | 62 +-
site/content/contributing-to-polaris.md | 1 +
.../content/guides/_index.adoc | 37 +-
.../content/in-dev/_index.md | 32 +-
.../content/in-dev/release_index.md | 39 +-
.../content/in-dev/unreleased/_index.md | 44 +-
.../content/in-dev/unreleased}/access-control.md | 45 +-
.../in-dev/unreleased}/command-line-interface.md | 46 +-
.../configuring-polaris-for-production.md | 47 +-
.../content/in-dev/unreleased}/entities.md | 41 +-
.../content/in-dev/unreleased}/metastores.md | 42 +-
.../openapi/polaris-management-service.yml | 1345 ++++
.../unreleased/openapi/rest-catalog-open-api.yaml | 4085 +++++++++++
.../content/in-dev/unreleased}/overview.md | 54 +-
.../unreleased/polaris-management-service.md | 33 +-
.../content/in-dev/unreleased}/quickstart.md | 63 +-
.../in-dev/unreleased/rest-catalog-open-api.md | 33 +-
site/docker/Dockerfile | 41 +
site/docker/_run_in_docker.sh | 84 +
site/docker/docker-compose-hugo.yml | 60 +
site/docker/docker-compose-publish.yml | 74 +
site/go.mod | 26 +
site/go.sum | 4 +
site/hugo.yaml | 238 +
site/layouts/blog/baseof.html | 50 +
site/layouts/community/list.html | 41 +
site/layouts/docs/baseof.html | 54 +
site/layouts/home/baseof.html | 39 +
site/layouts/home/list.html | 23 +
site/layouts/partials/community_links.html | 52 +
site/layouts/partials/navbar.html | 122 +
site/layouts/partials/openapiUrl.html | 27 +
site/layouts/partials/padZeroPrefix.html | 22 +
site/layouts/partials/releasePages.html | 45 +
site/layouts/partials/releaseVersion.html | 29 +
site/layouts/partials/sidebar-releases-tree.html | 120 +
site/layouts/partials/sidebar-releases.html | 41 +
site/layouts/partials/trimZeroPrefix.html | 19 +
site/layouts/partials/versions-sorted.html | 38 +
site/layouts/releases/baseof.html | 48 +
site/layouts/releases/list.html | 23 +
site/layouts/robots.txt | 11 +
site/layouts/shortcodes/redoc-polaris.html | 118 +
site/layouts/shortcodes/releaseVersion.html | 19 +
site/postcss.config.js | 23 +
.../resources/keep-me.txt | 27 +-
site/static/favicons/favicon.png | Bin 0 -> 1869 bytes
.../Polaris-Catalog-BLOG-symmetrical-subhead.png | Bin
site/static/images/apache-incubator.svg | 1 +
.../static/images}/polaris-brandmark.png | Bin
{docs => site/static}/img/example-workflow.svg | 0
.../Polaris-Catalog-BLOG-symmetrical-subhead.png | Bin
.../static}/img/logos/polaris-brandmark.png | Bin
.../img/logos/polaris-catalog-stacked-logo.svg | 0
.../static}/img/logos/polaris-favicon.png | Bin
{docs => site/static}/img/overview.svg | 0
.../img/quickstart/privilege-illustration-1.png | Bin
.../img/quickstart/privilege-illustration-2.png | Bin
{docs => site/static}/img/rbac-example.svg | 0
{docs => site/static}/img/rbac-model.svg | 0
.../static}/img/sample-catalog-structure.svg | 0
site/static/openapi/polaris-management-service.yml | 1346 ++++
spec/docs.yaml | 30 -
spec/index.yaml | 7087 --------------------
spec/redocly.yaml | 28 -
94 files changed, 9302 insertions(+), 11480 deletions(-)
diff --git a/.github/workflows/check-md-link.yml b/.github/workflows/check-md-link.yml
index cb0c0d34..6cdb4195 100644
--- a/.github/workflows/check-md-link.yml
+++ b/.github/workflows/check-md-link.yml
@@ -41,4 +41,5 @@ jobs:
with:
use-quiet-mode: 'yes'
config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+ folder-path: 'regtests, regtests/client/python/docs, regtests/client/python, .github, build-logic, polaris-core, polaris-service, extension, spec, k8, notebooks'
+ file-path: 'CHAT_BYLAWS.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, README.md SECURITY.md'
diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml
new file mode 100644
index 00000000..d3bb9ab3
--- /dev/null
+++ b/.github/workflows/site.yml
@@ -0,0 +1,58 @@
+#
+# 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.
+#
+
+name: "Hugo Site"
+on:
+ push:
+ branches: [ "main", "versioned-docs" ]
+ pull_request:
+
+jobs:
+ site:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/checkout@v4
+ with:
+ ref: "versioned-docs"
+ path: site/content/releases
+
+ - name: Install docker-compose
+ run: |
+ sudo curl -SL \
+ https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64 \
+ -o /usr/local/bin/docker-compose
+ sudo chmod 755 /usr/local/bin/docker-compose
+ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
+
+ - name: Build Apache Site
+ run: site/bin/create-static-site.sh
+
+ # TODO Do we want to deploy from 'asf-site' in the 'polaris-site' repo or in the 'polaris' repo?
+ # The former requires a secret
+ - name: Deploy Static Site to GitHub
+ if: github.event_name == 'push' && github.repository == 'apache/polaris'
+ uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_branch: asf-site
+ publish_dir: ./site/build/apache-site
+ cname: polaris.apache.org
diff --git a/.gitignore b/.gitignore
index f9b35731..3855dceb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,6 +64,11 @@ gradle/wrapper/gradle-wrapper-*.sha256
**/build/
!src/**/build/
+# Possibly generated by npm from our Hugo container and leaking to the workspace - no need to track those in our case.
+node_modules/
+/package.json
+/package-lock.json
+
# jenv
.java-version
diff --git a/README.md b/README.md
index f0f7ffb3..f98625d7 100644
--- a/README.md
+++ b/README.md
@@ -90,11 +90,12 @@ Running regression tests
- `docker compose up --build --exit-code-from regtest` - To run regression tests in a Docker environment.
Building docs
-- Docs are generated using [Redocly](https://redocly.com/docs/cli/installation). To regenerate them, run the following
-commands from the project root directory.
-```bash
-docs/build
-```
+- Docs are generated using [Hugo](https://gohugo.io/) using the [Docsy](https://www.docsy.dev/docs/) theme.
+- To view the site locally, run
+ ```bash
+ site/bin/run-hugo-in-docker.sh
+ ```
+- See [README in `site/`](site/README.md) for more information.
## License
diff --git a/build.gradle.kts b/build.gradle.kts
index 21e40398..7b685987 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -87,6 +87,13 @@ tasks.named<RatTask>("rat").configure {
excludes.add("polaris-service/src/**/banner.txt")
excludes.add("polaris-service/logs")
+ excludes.add("site/node_modules/**")
+ excludes.add("site/layouts/robots.txt")
+ // Ignore generated stuff, when the Hugo is run w/o Docker
+ excludes.add("site/public/**")
+ excludes.add("site/resources/_gen/**")
+ excludes.add("node_modules/**")
+
excludes.add("**/polaris-venv/**")
excludes.add("**/.pytest_cache/**")
@@ -110,6 +117,8 @@ tasks.named<RatTask>("rat").configure {
excludes.add("**/*.lock")
excludes.add("**/*.env*")
+
+ excludes.add("**/go.sum")
}
// Pass environment variables:
diff --git a/docs/CNAME b/docs/CNAME
deleted file mode 100644
index 0aacaad2..00000000
--- a/docs/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-polaris.io
\ No newline at end of file
diff --git a/docs/build b/docs/build
deleted file mode 100755
index c396639b..00000000
--- a/docs/build
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-
-set -eux
-
-docker run -p 8080:80 -v ${PWD}:/spec --rm docker.io/redocly/cli join spec/docs.yaml spec/polaris-management-service.yml spec/rest-catalog-open-api.yaml -o spec/index.yaml --prefix-components-with-info-prop title
-docker run -p 8080:80 -v ${PWD}:/spec --rm docker.io/redocly/cli build-docs spec/index.yaml --output=docs/index.html --config=spec/redocly.yaml
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index b9c31b28..00000000
--- a/docs/index.html
+++ /dev/null
@@ -1,3665 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
- <meta charset="utf8" />
- <title>Apache Polaris (Incubating) Documentation</title>
- <!-- needed for adaptive design -->
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style>
- body {
- padding: 0;
- margin: 0;
- }
- </style>
- <script src="https://cdn.redoc.ly/redoc/v2.1.5/bundles/redoc.standalone.js"></script><style data-styled="true" data-styled-version="6.1.13">.dFrZq{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
-@media print,screen and (max-width: 75rem){.dFrZq{width:100%;padding:40px 40px;}}/*!sc*/
-.dYLNKi{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
-@media print,screen and (max-width: 75rem){.dYLNKi{width:100%;padding:0px 40px;}}/*!sc*/
-data-styled.g4[id="sc-fAUdSK"]{content:"dFrZq,dYLNKi,"}/*!sc*/
-.bvhSud{padding:40px 0;}/*!sc*/
-.bvhSud:last-child{min-height:calc(100vh + 1px);}/*!sc*/
-.bvhSud>.bvhSud:last-child{min-height:initial;}/*!sc*/
-@media print,screen and (max-width: 75rem){.bvhSud{padding:0;}}/*!sc*/
-.aYCdu{padding:40px 0;position:relative;}/*!sc*/
-.aYCdu:last-child{min-height:calc(100vh + 1px);}/*!sc*/
-.aYCdu>.aYCdu:last-child{min-height:initial;}/*!sc*/
-@media print,screen and (max-width: 75rem){.aYCdu{padding:0;}}/*!sc*/
-.aYCdu:not(:last-of-type):after{position:absolute;bottom:0;width:100%;display:block;content:'';border-bottom:1px solid rgba(0, 0, 0, 0.2);}/*!sc*/
-data-styled.g5[id="sc-dntaoT"]{content:"bvhSud,aYCdu,"}/*!sc*/
-.gOjFGl{width:40%;color:#ffffff;background-color:#263238;padding:0 40px;}/*!sc*/
-@media print,screen and (max-width: 75rem){.gOjFGl{width:100%;padding:40px 40px;}}/*!sc*/
-data-styled.g6[id="sc-ivxoEo"]{content:"gOjFGl,"}/*!sc*/
-.oECKJ{background-color:#263238;}/*!sc*/
-data-styled.g7[id="sc-ghWlax"]{content:"oECKJ,"}/*!sc*/
-.dECWTf{display:flex;width:100%;padding:0;}/*!sc*/
-@media print,screen and (max-width: 75rem){.dECWTf{flex-direction:column;}}/*!sc*/
-data-styled.g8[id="sc-kLhKbu"]{content:"dECWTf,"}/*!sc*/
-.kHkxTT{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#333333;}/*!sc*/
-data-styled.g9[id="sc-ixGGxD"]{content:"kHkxTT,"}/*!sc*/
-.wHiQv{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;margin:0 0 20px;}/*!sc*/
-data-styled.g10[id="sc-khLCKb"]{content:"wHiQv,"}/*!sc*/
-.ksfpAz{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.27em;line-height:1.6em;color:#333333;}/*!sc*/
-data-styled.g11[id="sc-dstKZu"]{content:"ksfpAz,"}/*!sc*/
-.zvQzH{color:#ffffff;}/*!sc*/
-data-styled.g12[id="sc-keTIit"]{content:"zvQzH,"}/*!sc*/
-.eJAAZj{border-bottom:1px solid rgba(38, 50, 56, 0.3);margin:1em 0 1em 0;color:rgba(38, 50, 56, 0.5);font-weight:normal;text-transform:uppercase;font-size:0.929em;line-height:20px;}/*!sc*/
-data-styled.g13[id="sc-dpBQxM"]{content:"eJAAZj,"}/*!sc*/
-.hbTOAm{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
-.hbTOAm:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTI [...]
-h1:hover>.hbTOAm::before,h2:hover>.hbTOAm::before,.hbTOAm:hover::before{visibility:visible;}/*!sc*/
-data-styled.g14[id="sc-jwIPbr"]{content:"hbTOAm,"}/*!sc*/
-.gkUOTk{height:18px;width:18px;min-width:18px;vertical-align:middle;float:right;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
-.bEpxpV{height:1.3em;width:1.3em;min-width:1.3em;vertical-align:middle;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
-.hmCwJW{height:1.5em;width:1.5em;min-width:1.5em;vertical-align:middle;float:left;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
-.hmCwJW polygon{fill:#1d8127;}/*!sc*/
-.fmmJjS{height:20px;width:20px;min-width:20px;vertical-align:middle;float:right;transition:transform 0.2s ease-out;transform:rotateZ(0);}/*!sc*/
-.fmmJjS polygon{fill:white;}/*!sc*/
-.ccTkAM{height:18px;width:18px;min-width:18px;vertical-align:middle;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
-.kVOWjS{height:1.5em;width:1.5em;min-width:1.5em;vertical-align:middle;float:left;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
-.kVOWjS polygon{fill:#d41f1c;}/*!sc*/
-data-styled.g15[id="sc-cHqXqK"]{content:"gkUOTk,bEpxpV,hmCwJW,fmmJjS,ccTkAM,kVOWjS,"}/*!sc*/
-.iyKqKI{border-left:1px solid #7c7cbb;box-sizing:border-box;position:relative;padding:10px 10px 10px 0;}/*!sc*/
-@media screen and (max-width: 50rem){.iyKqKI{display:block;overflow:hidden;}}/*!sc*/
-tr:first-of-type>.iyKqKI,tr.last>.iyKqKI{border-left-width:0;background-position:top left;background-repeat:no-repeat;background-size:1px 100%;}/*!sc*/
-tr:first-of-type>.iyKqKI{background-image:linear-gradient(
- to bottom,
- transparent 0%,
- transparent 22px,
- #7c7cbb 22px,
- #7c7cbb 100%
- );}/*!sc*/
-tr.last>.iyKqKI{background-image:linear-gradient(
- to bottom,
- #7c7cbb 0%,
- #7c7cbb 22px,
- transparent 22px,
- transparent 100%
- );}/*!sc*/
-tr.last+tr>.iyKqKI{border-left-color:transparent;}/*!sc*/
-tr.last:first-child>.iyKqKI{background:none;border-left-color:transparent;}/*!sc*/
-data-styled.g18[id="sc-ovuCP"]{content:"iyKqKI,"}/*!sc*/
-.iQpMVv{vertical-align:top;line-height:20px;white-space:nowrap;font-size:13px;font-family:Courier,monospace;}/*!sc*/
-.iQpMVv.deprecated{text-decoration:line-through;color:#707070;}/*!sc*/
-data-styled.g20[id="sc-eauhAA"]{content:"iQpMVv,"}/*!sc*/
-.cHXoZJ{border-bottom:1px solid #9fb4be;padding:10px 0;width:75%;box-sizing:border-box;}/*!sc*/
-tr.expanded .cHXoZJ{border-bottom:none;}/*!sc*/
-@media screen and (max-width: 50rem){.cHXoZJ{padding:0 20px;border-bottom:none;border-left:1px solid #7c7cbb;}tr.last>.cHXoZJ{border-left:none;}}/*!sc*/
-data-styled.g21[id="sc-fFoeYl"]{content:"cHXoZJ,"}/*!sc*/
-.kPDxnK{color:#7c7cbb;font-family:Courier,monospace;margin-right:10px;}/*!sc*/
-.kPDxnK::before{content:'';display:inline-block;vertical-align:middle;width:10px;height:1px;background:#7c7cbb;}/*!sc*/
-.kPDxnK::after{content:'';display:inline-block;vertical-align:middle;width:1px;background:#7c7cbb;height:7px;}/*!sc*/
-data-styled.g22[id="sc-gQaihK"]{content:"kPDxnK,"}/*!sc*/
-.eNFxPe{border-collapse:separate;border-radius:3px;font-size:14px;border-spacing:0;width:100%;}/*!sc*/
-.eNFxPe >tr{vertical-align:middle;}/*!sc*/
-@media screen and (max-width: 50rem){.eNFxPe{display:block;}.eNFxPe >tr,.eNFxPe >tbody>tr{display:block;}}/*!sc*/
-@media screen and (max-width: 50rem) and (-ms-high-contrast:none){.eNFxPe td{float:left;width:100%;}}/*!sc*/
-.eNFxPe .sc-iuUfFv,.eNFxPe .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv,.eNFxPe .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv{margin:1em;margin-right:0;background:#fafafa;}/*!sc*/
-.eNFxPe .sc-iuUfFv .sc-iuUfFv,.eNFxPe .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv,.eNFxPe .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv .sc-iuUfFv{background:#ffffff;}/*!sc*/
-data-styled.g24[id="sc-dprtRQ"]{content:"eNFxPe,"}/*!sc*/
-.NyAuz{margin:0 0 3px 0;display:inline-block;}/*!sc*/
-data-styled.g25[id="sc-eUlrpB"]{content:"NyAuz,"}/*!sc*/
-.ilfgNd{font-size:0.9em;margin-right:10px;color:#32329f;font-family:Montserrat,sans-serif;}/*!sc*/
-data-styled.g26[id="sc-geXuza"]{content:"ilfgNd,"}/*!sc*/
-.ksvMOm{display:inline-block;margin-right:10px;margin-bottom:5px;font-size:0.8em;cursor:pointer;border:1px solid #32329f;padding:2px 10px;line-height:1.5em;outline:none;color:white;background-color:#32329f;}/*!sc*/
-.ksvMOm:focus{box-shadow:0 0 0 1px #32329f;}/*!sc*/
-.ksvMOm:focus{box-shadow:none;background-color:#202065;}/*!sc*/
-.dHGzEi{display:inline-block;margin-right:10px;margin-bottom:5px;font-size:0.8em;cursor:pointer;border:1px solid #32329f;padding:2px 10px;line-height:1.5em;outline:none;color:#32329f;background-color:white;}/*!sc*/
-.dHGzEi:focus{box-shadow:0 0 0 1px #32329f;}/*!sc*/
-data-styled.g27[id="sc-hJRrWL"]{content:"ksvMOm,dHGzEi,"}/*!sc*/
-.fbQvpV >ul{list-style:none;padding:0;margin:0;margin:0 -5px;}/*!sc*/
-.fbQvpV >ul >li{padding:5px 10px;display:inline-block;background-color:#11171a;border-bottom:1px solid rgba(0, 0, 0, 0.5);cursor:pointer;text-align:center;outline:none;color:#ccc;margin:0 5px 5px 5px;border:1px solid #07090b;border-radius:5px;min-width:60px;font-size:0.9em;font-weight:bold;}/*!sc*/
-.fbQvpV >ul >li.react-tabs__tab--selected{color:#333333;background:#ffffff;}/*!sc*/
-.fbQvpV >ul >li.react-tabs__tab--selected:focus{outline:auto;}/*!sc*/
-.fbQvpV >ul >li:only-child{flex:none;min-width:100px;}/*!sc*/
-.fbQvpV >ul >li.tab-success{color:#1d8127;}/*!sc*/
-.fbQvpV >ul >li.tab-redirect{color:#ffa500;}/*!sc*/
-.fbQvpV >ul >li.tab-info{color:#87ceeb;}/*!sc*/
-.fbQvpV >ul >li.tab-error{color:#d41f1c;}/*!sc*/
-.fbQvpV >.react-tabs__tab-panel{background:#11171a;}/*!sc*/
-.fbQvpV >.react-tabs__tab-panel>div,.fbQvpV >.react-tabs__tab-panel>pre{padding:20px;margin:0;}/*!sc*/
-.fbQvpV >.react-tabs__tab-panel>div>pre{padding:0;}/*!sc*/
-data-styled.g30[id="sc-bMTdWJ"]{content:"fbQvpV,"}/*!sc*/
-.drsioI code[class*='language-'],.drsioI pre[class*='language-']{text-shadow:0 -0.1em 0.2em black;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/
-@media print{.drsioI code[class*='language-'],.drsioI pre[class*='language-']{text-shadow:none;}}/*!sc*/
-.drsioI pre[class*='language-']{padding:1em;margin:0.5em 0;overflow:auto;}/*!sc*/
-.drsioI .token.comment,.drsioI .token.prolog,.drsioI .token.doctype,.drsioI .token.cdata{color:hsl(30, 20%, 50%);}/*!sc*/
-.drsioI .token.punctuation{opacity:0.7;}/*!sc*/
-.drsioI .namespace{opacity:0.7;}/*!sc*/
-.drsioI .token.property,.drsioI .token.tag,.drsioI .token.number,.drsioI .token.constant,.drsioI .token.symbol{color:#4a8bb3;}/*!sc*/
-.drsioI .token.boolean{color:#e64441;}/*!sc*/
-.drsioI .token.selector,.drsioI .token.attr-name,.drsioI .token.string,.drsioI .token.char,.drsioI .token.builtin,.drsioI .token.inserted{color:#a0fbaa;}/*!sc*/
-.drsioI .token.selector+a,.drsioI .token.attr-name+a,.drsioI .token.string+a,.drsioI .token.char+a,.drsioI .token.builtin+a,.drsioI .token.inserted+a,.drsioI .token.selector+a:visited,.drsioI .token.attr-name+a:visited,.drsioI .token.string+a:visited,.drsioI .token.char+a:visited,.drsioI .token.builtin+a:visited,.drsioI .token.inserted+a:visited{color:#4ed2ba;text-decoration:underline;}/*!sc*/
-.drsioI .token.property.string{color:white;}/*!sc*/
-.drsioI .token.operator,.drsioI .token.entity,.drsioI .token.url,.drsioI .token.variable{color:hsl(40, 90%, 60%);}/*!sc*/
-.drsioI .token.atrule,.drsioI .token.attr-value,.drsioI .token.keyword{color:hsl(350, 40%, 70%);}/*!sc*/
-.drsioI .token.regex,.drsioI .token.important{color:#e90;}/*!sc*/
-.drsioI .token.important,.drsioI .token.bold{font-weight:bold;}/*!sc*/
-.drsioI .token.italic{font-style:italic;}/*!sc*/
-.drsioI .token.entity{cursor:help;}/*!sc*/
-.drsioI .token.deleted{color:red;}/*!sc*/
-data-styled.g32[id="sc-epnzzT"]{content:"drsioI,"}/*!sc*/
-.hhzNne{opacity:0.7;transition:opacity 0.3s ease;text-align:right;}/*!sc*/
-.hhzNne:focus-within{opacity:1;}/*!sc*/
-.hhzNne >button{background-color:transparent;border:0;color:inherit;padding:2px 10px;font-family:Roboto,sans-serif;font-size:14px;line-height:1.5em;cursor:pointer;outline:0;}/*!sc*/
-.hhzNne >button :hover,.hhzNne >button :focus{background:rgba(255, 255, 255, 0.1);}/*!sc*/
-data-styled.g33[id="sc-uYFMi"]{content:"hhzNne,"}/*!sc*/
-.cpBPUN{position:relative;}/*!sc*/
-data-styled.g37[id="sc-dEkLRj"]{content:"cpBPUN,"}/*!sc*/
-.JXohG{position:absolute;pointer-events:none;z-index:1;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:8px;margin:auto;text-align:center;}/*!sc*/
-.JXohG polyline{color:white;}/*!sc*/
-data-styled.g38[id="sc-kZrBCu"]{content:"JXohG,"}/*!sc*/
-.iHjPVQ{box-sizing:border-box;min-width:100px;outline:none;display:inline-block;border-radius:2px;border:1px solid rgba(38, 50, 56, 0.5);vertical-align:bottom;padding:2px 0px 2px 6px;position:relative;width:auto;background:white;color:#263238;font-family:Montserrat,sans-serif;font-size:0.929em;line-height:1.5em;cursor:pointer;transition:border 0.25s ease,color 0.25s ease,box-shadow 0.25s ease;}/*!sc*/
-.iHjPVQ label{box-sizing:border-box;min-width:100px;outline:none;display:inline-block;font-family:Montserrat,sans-serif;color:#333333;vertical-align:bottom;width:auto;text-transform:none;padding:0 22px 0 4px;font-size:0.929em;line-height:1.5em;font-family:inherit;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}/*!sc*/
-.iHjPVQ .dropdown-select{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;border:none;appearance:none;cursor:pointer;color:#333333;line-height:inherit;font-family:inherit;}/*!sc*/
-.iHjPVQ:hover,.iHjPVQ:focus-within{border:1px solid #32329f;color:#32329f;box-shadow:0px 0px 0px 1px #32329f;}/*!sc*/
-data-styled.g39[id="sc-diYFot"]{content:"iHjPVQ,"}/*!sc*/
-.khtVmz{margin-left:10px;text-transform:none;font-size:0.929em;color:black;}/*!sc*/
-data-styled.g41[id="sc-dhCplO"]{content:"khtVmz,"}/*!sc*/
-.dWZUhK{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
-.dWZUhK p:last-child{margin-bottom:0;}/*!sc*/
-.dWZUhK h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
-.dWZUhK h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
-.dWZUhK code{color:#e53935;background-color:rgba(38, 50, 56, 0.05);font-family:Courier,monospace;border-radius:2px;border:1px solid rgba(38, 50, 56, 0.1);padding:0 5px;font-size:13px;font-weight:400;word-break:break-word;}/*!sc*/
-.dWZUhK pre{font-family:Courier,monospace;white-space:pre;background-color:#11171a;color:white;padding:20px;overflow-x:auto;line-height:normal;border-radius:0;border:1px solid rgba(38, 50, 56, 0.1);}/*!sc*/
-.dWZUhK pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
-.dWZUhK pre code:before,.dWZUhK pre code:after{content:none;}/*!sc*/
-.dWZUhK blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
-.dWZUhK img{max-width:100%;box-sizing:content-box;}/*!sc*/
-.dWZUhK ul,.dWZUhK ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
-.dWZUhK ul ul,.dWZUhK ol ul,.dWZUhK ul ol,.dWZUhK ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
-.dWZUhK table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all;border-collapse:collapse;border-spacing:0;margin-top:1.5em;margin-bottom:1.5em;}/*!sc*/
-.dWZUhK table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
-.dWZUhK table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
-.dWZUhK table th,.dWZUhK table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
-.dWZUhK table th{text-align:left;font-weight:bold;}/*!sc*/
-.dWZUhK .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
-.dWZUhK .share-link:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjE [...]
-.dWZUhK h1:hover>.share-link::before,.dWZUhK h2:hover>.share-link::before,.dWZUhK .share-link:hover::before{visibility:visible;}/*!sc*/
-.dWZUhK a{text-decoration:auto;color:#32329f;}/*!sc*/
-.dWZUhK a:visited{color:#32329f;}/*!sc*/
-.dWZUhK a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
-.ewnBNs{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
-.ewnBNs p:last-child{margin-bottom:0;}/*!sc*/
-.ewnBNs p:first-child{margin-top:0;}/*!sc*/
-.ewnBNs p:last-child{margin-bottom:0;}/*!sc*/
-.ewnBNs h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
-.ewnBNs h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
-.ewnBNs code{color:#e53935;background-color:rgba(38, 50, 56, 0.05);font-family:Courier,monospace;border-radius:2px;border:1px solid rgba(38, 50, 56, 0.1);padding:0 5px;font-size:13px;font-weight:400;word-break:break-word;}/*!sc*/
-.ewnBNs pre{font-family:Courier,monospace;white-space:pre;background-color:#11171a;color:white;padding:20px;overflow-x:auto;line-height:normal;border-radius:0;border:1px solid rgba(38, 50, 56, 0.1);}/*!sc*/
-.ewnBNs pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
-.ewnBNs pre code:before,.ewnBNs pre code:after{content:none;}/*!sc*/
-.ewnBNs blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
-.ewnBNs img{max-width:100%;box-sizing:content-box;}/*!sc*/
-.ewnBNs ul,.ewnBNs ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
-.ewnBNs ul ul,.ewnBNs ol ul,.ewnBNs ul ol,.ewnBNs ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
-.ewnBNs table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all;border-collapse:collapse;border-spacing:0;margin-top:1.5em;margin-bottom:1.5em;}/*!sc*/
-.ewnBNs table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
-.ewnBNs table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
-.ewnBNs table th,.ewnBNs table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
-.ewnBNs table th{text-align:left;font-weight:bold;}/*!sc*/
-.ewnBNs .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
-.ewnBNs .share-link:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjE [...]
-.ewnBNs h1:hover>.share-link::before,.ewnBNs h2:hover>.share-link::before,.ewnBNs .share-link:hover::before{visibility:visible;}/*!sc*/
-.ewnBNs a{text-decoration:auto;color:#32329f;}/*!sc*/
-.ewnBNs a:visited{color:#32329f;}/*!sc*/
-.ewnBNs a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
-data-styled.g42[id="sc-eMwmJz"]{content:"dWZUhK,ewnBNs,"}/*!sc*/
-.jtjIAv{display:inline;}/*!sc*/
-data-styled.g43[id="sc-drVZOg"]{content:"jtjIAv,"}/*!sc*/
-.ezdXRP{position:relative;}/*!sc*/
-data-styled.g44[id="sc-eWPXlR"]{content:"ezdXRP,"}/*!sc*/
-.mMhCU:hover>.sc-uYFMi{opacity:1;}/*!sc*/
-data-styled.g49[id="sc-eDHQDy"]{content:"mMhCU,"}/*!sc*/
-.iyEpFV{font-family:Courier,monospace;font-size:13px;white-space:pre;contain:content;overflow-x:auto;}/*!sc*/
-.iyEpFV .redoc-json code>.collapser{display:none;pointer-events:none;}/*!sc*/
-.iyEpFV .callback-function{color:gray;}/*!sc*/
-.iyEpFV .collapser:after{content:'-';cursor:pointer;}/*!sc*/
-.iyEpFV .collapsed>.collapser:after{content:'+';cursor:pointer;}/*!sc*/
-.iyEpFV .ellipsis:after{content:' … ';}/*!sc*/
-.iyEpFV .collapsible{margin-left:2em;}/*!sc*/
-.iyEpFV .hoverable{padding-top:1px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-radius:2px;}/*!sc*/
-.iyEpFV .hovered{background-color:rgba(235, 238, 249, 1);}/*!sc*/
-.iyEpFV .collapser{background-color:transparent;border:0;color:#fff;font-family:Courier,monospace;font-size:13px;padding-right:6px;padding-left:6px;padding-top:0;padding-bottom:0;display:flex;align-items:center;justify-content:center;width:15px;height:15px;position:absolute;top:4px;left:-1.5em;cursor:default;user-select:none;-webkit-user-select:none;padding:2px;}/*!sc*/
-.iyEpFV .collapser:focus{outline-color:#fff;outline-style:dotted;outline-width:1px;}/*!sc*/
-.iyEpFV ul{list-style-type:none;padding:0px;margin:0px 0px 0px 26px;}/*!sc*/
-.iyEpFV li{position:relative;display:block;}/*!sc*/
-.iyEpFV .hoverable{display:inline-block;}/*!sc*/
-.iyEpFV .selected{outline-style:solid;outline-width:1px;outline-style:dotted;}/*!sc*/
-.iyEpFV .collapsed>.collapsible{display:none;}/*!sc*/
-.iyEpFV .ellipsis{display:none;}/*!sc*/
-.iyEpFV .collapsed>.ellipsis{display:inherit;}/*!sc*/
-data-styled.g50[id="sc-giBObj"]{content:"iyEpFV,"}/*!sc*/
-.kKXAng{padding:0.9em;background-color:rgba(38,50,56,0.4);margin:0 0 10px 0;display:block;font-family:Montserrat,sans-serif;font-size:0.929em;line-height:1.5em;}/*!sc*/
-data-styled.g51[id="sc-UblHX"]{content:"kKXAng,"}/*!sc*/
-.eqWzJe{font-family:Montserrat,sans-serif;font-size:12px;position:absolute;z-index:1;top:-11px;left:12px;font-weight:600;color:rgba(255,255,255,0.7);}/*!sc*/
-data-styled.g52[id="sc-fufdwm"]{content:"eqWzJe,"}/*!sc*/
-.dIDLbO{position:relative;}/*!sc*/
-data-styled.g53[id="sc-Rjrgp"]{content:"dIDLbO,"}/*!sc*/
-.esCYIP{margin:0 0 10px 0;display:block;background-color:rgba(38,50,56,0.4);border:none;padding:0.9em 1.6em 0.9em 0.9em;box-shadow:none;}/*!sc*/
-.esCYIP label{color:#ffffff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:1em;text-transform:none;border:none;}/*!sc*/
-.esCYIP:hover,.esCYIP:focus-within{border:none;box-shadow:none;background-color:rgba(38,50,56,0.7);}/*!sc*/
-data-styled.g54[id="sc-frniUE"]{content:"esCYIP,"}/*!sc*/
-.kqHNPM{margin-top:15px;}/*!sc*/
-data-styled.g56[id="sc-FFETS"]{content:"kqHNPM,"}/*!sc*/
-.buGHPE.deprecated span.property-name{text-decoration:line-through;color:#707070;}/*!sc*/
-.buGHPE button{background-color:transparent;border:0;outline:0;font-size:13px;font-family:Courier,monospace;cursor:pointer;padding:0;color:#333333;}/*!sc*/
-.buGHPE button:focus{font-weight:600;}/*!sc*/
-.buGHPE .sc-cHqXqK{height:1.1em;width:1.1em;}/*!sc*/
-.buGHPE .sc-cHqXqK polygon{fill:#666;}/*!sc*/
-data-styled.g57[id="sc-hsfCcR"]{content:"buGHPE,"}/*!sc*/
-.hPAOR{vertical-align:middle;font-size:13px;line-height:20px;}/*!sc*/
-data-styled.g58[id="sc-CNKsk"]{content:"hPAOR,"}/*!sc*/
-.dWKYKL{color:rgba(102,102,102,0.9);}/*!sc*/
-data-styled.g59[id="sc-cqgMZH"]{content:"dWKYKL,"}/*!sc*/
-.bIEFFi{color:#666;}/*!sc*/
-data-styled.g60[id="sc-gQkENW"]{content:"bIEFFi,"}/*!sc*/
-.dnQByT{color:#666;word-break:break-word;}/*!sc*/
-data-styled.g61[id="sc-gcfzXs"]{content:"dnQByT,"}/*!sc*/
-.feFoaC{color:#d41f1c;font-size:0.9em;font-weight:normal;margin-left:20px;line-height:1;}/*!sc*/
-data-styled.g62[id="sc-hGZxvd"]{content:"feFoaC,"}/*!sc*/
-.hCJxj{color:#0e7c86;}/*!sc*/
-.hCJxj::before,.hCJxj::after{font-weight:bold;}/*!sc*/
-data-styled.g65[id="sc-bnGbuY"]{content:"hCJxj,"}/*!sc*/
-.YZnqP{border-radius:2px;word-break:break-word;background-color:rgba(51,51,51,0.05);color:rgba(51,51,51,0.9);padding:0 5px;border:1px solid rgba(51,51,51,0.1);font-family:Courier,monospace;}/*!sc*/
-+{margin-left:0;}/*!sc*/
-data-styled.g66[id="sc-cSzYSJ"]{content:"YZnqP,"}/*!sc*/
-.diHVZf{border-radius:2px;background-color:rgba(104,104,207,0.05);color:rgba(50,50,159,0.9);margin:0 5px;padding:0 5px;border:1px solid rgba(50,50,159,0.1);}/*!sc*/
-+{margin-left:0;}/*!sc*/
-data-styled.g68[id="sc-fIfZzT"]{content:"diHVZf,"}/*!sc*/
-.bJXdVn{margin-top:1em;list-style-position:outside;}/*!sc*/
-data-styled.g73[id="sc-gqYRWL"]{content:"bJXdVn,"}/*!sc*/
-.dIXVzO:after{content:' and ';font-weight:normal;}/*!sc*/
-.dIXVzO:last-child:after{content:none;}/*!sc*/
-.dIXVzO a{text-decoration:auto;color:#32329f;}/*!sc*/
-.dIXVzO a:visited{color:#32329f;}/*!sc*/
-.dIXVzO a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
-data-styled.g80[id="sc-bqvdXA"]{content:"dIXVzO,"}/*!sc*/
-.eqXCjK{white-space:nowrap;}/*!sc*/
-.eqXCjK:after{content:' or ';white-space:pre;}/*!sc*/
-.eqXCjK:last-child:after,.eqXCjK:only-child:after{content:none;}/*!sc*/
-.eqXCjK a{text-decoration:auto;color:#32329f;}/*!sc*/
-.eqXCjK a:visited{color:#32329f;}/*!sc*/
-.eqXCjK a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
-data-styled.g81[id="sc-irPVuy"]{content:"eqXCjK,"}/*!sc*/
-.jXOga-d{flex:1 1 auto;cursor:pointer;}/*!sc*/
-data-styled.g82[id="sc-jWJSSj"]{content:"jXOga-d,"}/*!sc*/
-.gQOXJB{width:75%;text-overflow:ellipsis;border-radius:4px;overflow:hidden;}/*!sc*/
-@media screen and (max-width: 50rem){.gQOXJB{margin-top:10px;}}/*!sc*/
-data-styled.g83[id="sc-iCjFWQ"]{content:"gQOXJB,"}/*!sc*/
-.ffSXYc{display:inline-block;margin:0;}/*!sc*/
-data-styled.g84[id="sc-khdDuB"]{content:"ffSXYc,"}/*!sc*/
-.dyzdIR{width:100%;display:flex;margin:1em 0;flex-direction:row;}/*!sc*/
-@media screen and (max-width: 50rem){.dyzdIR{flex-direction:column;}}/*!sc*/
-data-styled.g85[id="sc-hGNhLO"]{content:"dyzdIR,"}/*!sc*/
-.dZsYqS{margin-top:0;margin-bottom:0.5em;}/*!sc*/
-data-styled.g91[id="sc-geoRQH"]{content:"dZsYqS,"}/*!sc*/
-.enkzRg{border:1px solid #32329f;color:#32329f;font-weight:normal;margin-left:0.5em;padding:4px 8px 4px;display:inline-block;text-decoration:none;cursor:pointer;}/*!sc*/
-data-styled.g92[id="sc-kEsJEW"]{content:"enkzRg,"}/*!sc*/
-.bcPxPq::before{content:'|';display:inline-block;opacity:0.5;width:15px;text-align:center;}/*!sc*/
-.bcPxPq:last-child::after{display:none;}/*!sc*/
-data-styled.g93[id="sc-gbwXoZ"]{content:"bcPxPq,"}/*!sc*/
-.gmEXff{overflow:hidden;}/*!sc*/
-data-styled.g94[id="sc-kBAPdo"]{content:"gmEXff,"}/*!sc*/
-.eeVPfW{display:flex;flex-wrap:wrap;margin-left:-15px;}/*!sc*/
-data-styled.g95[id="sc-ftmehX"]{content:"eeVPfW,"}/*!sc*/
-.fXQrMK{max-height:260px;max-width:260px;padding:15px;width:100%;display:block;}/*!sc*/
-data-styled.g96[id="sc-jTpVWm"]{content:"fXQrMK,"}/*!sc*/
-.dzdmjb{text-align:center;}/*!sc*/
-data-styled.g97[id="sc-fqujGp"]{content:"dzdmjb,"}/*!sc*/
-.iYFQel{display:inline-block;}/*!sc*/
-data-styled.g98[id="sc-jQybuE"]{content:"iYFQel,"}/*!sc*/
-.gYaAxf{width:9ex;display:inline-block;height:13px;line-height:13px;background-color:#333;border-radius:3px;background-repeat:no-repeat;background-position:6px 4px;font-size:7px;font-family:Verdana,sans-serif;color:white;text-transform:uppercase;text-align:center;font-weight:bold;vertical-align:middle;margin-right:6px;margin-top:2px;}/*!sc*/
-.gYaAxf.get{background-color:#2F8132;}/*!sc*/
-.gYaAxf.post{background-color:#186FAF;}/*!sc*/
-.gYaAxf.put{background-color:#95507c;}/*!sc*/
-.gYaAxf.options{background-color:#947014;}/*!sc*/
-.gYaAxf.patch{background-color:#bf581d;}/*!sc*/
-.gYaAxf.delete{background-color:#cc3333;}/*!sc*/
-.gYaAxf.basic{background-color:#707070;}/*!sc*/
-.gYaAxf.link{background-color:#07818F;}/*!sc*/
-.gYaAxf.head{background-color:#A23DAD;}/*!sc*/
-.gYaAxf.hook{background-color:#32329f;}/*!sc*/
-.gYaAxf.schema{background-color:#707070;}/*!sc*/
-data-styled.g99[id="sc-erSfwj"]{content:"gYaAxf,"}/*!sc*/
-.dXwhdL{margin:0;padding:0;}/*!sc*/
-.dXwhdL:first-child{padding-bottom:32px;}/*!sc*/
-.sc-iRVXky .sc-iRVXky{font-size:0.929em;}/*!sc*/
-.kUyAbS{margin:0;padding:0;display:none;}/*!sc*/
-.kUyAbS:first-child{padding-bottom:32px;}/*!sc*/
-.sc-iRVXky .sc-iRVXky{font-size:0.929em;}/*!sc*/
-data-styled.g100[id="sc-iRVXky"]{content:"dXwhdL,kUyAbS,"}/*!sc*/
-.gSwPLF{list-style:none inside none;overflow:hidden;text-overflow:ellipsis;padding:0;}/*!sc*/
-.ghRwPP{list-style:none inside none;overflow:hidden;text-overflow:ellipsis;padding:0;margin-top:15px;}/*!sc*/
-data-styled.g101[id="sc-ljhlHD"]{content:"gSwPLF,ghRwPP,"}/*!sc*/
-.bgAbkd{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;display:flex;justify-content:space-between;font-family:Montserrat,sans-serif;font-size:0.929em;text-transform:none;background-color:#fafafa;}/*!sc*/
-.bgAbkd:hover{color:#32329f;background-color:#e1e1e1;}/*!sc*/
-.bgAbkd .sc-cHqXqK{height:1.5em;width:1.5em;}/*!sc*/
-.bgAbkd .sc-cHqXqK polygon{fill:#333333;}/*!sc*/
-.eAxXPJ{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;padding-left:40px;display:flex;justify-content:space-between;font-family:Montserrat,sans-serif;background-color:#fafafa;}/*!sc*/
-.eAxXPJ:hover{color:#32329f;background-color:#ededed;}/*!sc*/
-.eAxXPJ .sc-cHqXqK{height:1.5em;width:1.5em;}/*!sc*/
-.eAxXPJ .sc-cHqXqK polygon{fill:#333333;}/*!sc*/
-.ljbLFJ{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;display:flex;justify-content:space-between;font-family:Montserrat,sans-serif;opacity:0.7;text-transform:uppercase;font-size:0.8em;padding-bottom:0;cursor:default;background-color:#fafafa;}/*!sc*/
-.ljbLFJ .sc-cHqXqK{height:1.5em;width:1.5em;}/*!sc*/
-.ljbLFJ .sc-cHqXqK polygon{fill:#333333;}/*!sc*/
-.dnJKVb{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;display:flex;justify-content:space-between;font-family:Montserrat,sans-serif;background-color:#fafafa;}/*!sc*/
-.dnJKVb:hover{color:#32329f;background-color:#ededed;}/*!sc*/
-.dnJKVb .sc-cHqXqK{height:1.5em;width:1.5em;}/*!sc*/
-.dnJKVb .sc-cHqXqK polygon{fill:#333333;}/*!sc*/
-data-styled.g102[id="sc-bAEjGW"]{content:"bgAbkd,eAxXPJ,ljbLFJ,dnJKVb,"}/*!sc*/
-.bBONey{display:inline-block;vertical-align:middle;width:calc(100% - 38px);overflow:hidden;text-overflow:ellipsis;}/*!sc*/
-data-styled.g103[id="sc-enMaOJ"]{content:"bBONey,"}/*!sc*/
-.fxirIR{font-size:0.8em;margin-top:10px;text-align:center;position:fixed;width:260px;bottom:0;background:#fafafa;}/*!sc*/
-.fxirIR a,.fxirIR a:visited,.fxirIR a:hover{color:#333333!important;padding:5px 0;border-top:1px solid #e1e1e1;text-decoration:none;display:flex;align-items:center;justify-content:center;}/*!sc*/
-.fxirIR img{width:15px;margin-right:5px;}/*!sc*/
-@media screen and (max-width: 50rem){.fxirIR{width:100%;}}/*!sc*/
-data-styled.g104[id="sc-fUEImY"]{content:"fxirIR,"}/*!sc*/
-.dWZoid{cursor:pointer;position:relative;margin-bottom:5px;}/*!sc*/
-data-styled.g110[id="sc-duWCru"]{content:"dWZoid,"}/*!sc*/
-.iqHzp{font-family:Courier,monospace;margin-left:10px;flex:1;overflow-x:hidden;text-overflow:ellipsis;}/*!sc*/
-data-styled.g111[id="sc-etPtWW"]{content:"iqHzp,"}/*!sc*/
-.ebcgbH{outline:0;color:inherit;width:100%;text-align:left;cursor:pointer;padding:10px 30px 10px 20px;border-radius:4px 4px 0 0;background-color:#11171a;display:flex;white-space:nowrap;align-items:center;border:1px solid transparent;border-bottom:0;transition:border-color 0.25s ease;}/*!sc*/
-.ebcgbH ..sc-etPtWW{color:#ffffff;}/*!sc*/
-.ebcgbH:focus{box-shadow:inset 0 2px 2px rgba(0, 0, 0, 0.45),0 2px 0 rgba(128, 128, 128, 0.25);}/*!sc*/
-data-styled.g112[id="sc-iPHsxv"]{content:"ebcgbH,"}/*!sc*/
-.IVbnb{font-size:0.929em;line-height:20px;background-color:#2F8132;color:#ffffff;padding:3px 10px;text-transform:uppercase;font-family:Montserrat,sans-serif;margin:0;}/*!sc*/
-.cpnVKx{font-size:0.929em;line-height:20px;background-color:#186FAF;color:#ffffff;padding:3px 10px;text-transform:uppercase;font-family:Montserrat,sans-serif;margin:0;}/*!sc*/
-.fzqXJO{font-size:0.929em;line-height:20px;background-color:#95507c;color:#ffffff;padding:3px 10px;text-transform:uppercase;font-family:Montserrat,sans-serif;margin:0;}/*!sc*/
-.gtVIQH{font-size:0.929em;line-height:20px;background-color:#cc3333;color:#ffffff;padding:3px 10px;text-transform:uppercase;font-family:Montserrat,sans-serif;margin:0;}/*!sc*/
-.gkqdIW{font-size:0.929em;line-height:20px;background-color:#A23DAD;color:#ffffff;padding:3px 10px;text-transform:uppercase;font-family:Montserrat,sans-serif;margin:0;}/*!sc*/
-data-styled.g113[id="sc-txhaY"]{content:"IVbnb,cpnVKx,fzqXJO,gtVIQH,gkqdIW,"}/*!sc*/
-.ddApzj{position:absolute;width:100%;z-index:100;background:#fafafa;color:#263238;box-sizing:border-box;box-shadow:0 0 6px rgba(0, 0, 0, 0.33);overflow:hidden;border-bottom-left-radius:4px;border-bottom-right-radius:4px;transition:all 0.25s ease;visibility:hidden;transform:translateY(-50%) scaleY(0);}/*!sc*/
-data-styled.g114[id="sc-ePpfBx"]{content:"ddApzj,"}/*!sc*/
-.evaCJX{padding:10px;}/*!sc*/
-data-styled.g115[id="sc-dwGkES"]{content:"evaCJX,"}/*!sc*/
-.gufODt{padding:5px;border:1px solid #ccc;background:#fff;word-break:break-all;color:#32329f;}/*!sc*/
-.gufODt >span{color:#333333;}/*!sc*/
-data-styled.g116[id="sc-hSyjfr"]{content:"gufODt,"}/*!sc*/
-.fRACBr{text-transform:lowercase;margin-left:0;line-height:1.5em;}/*!sc*/
-data-styled.g117[id="sc-kLJHhQ"]{content:"fRACBr,"}/*!sc*/
-.cnBopK{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#1d8127;background-color:rgba(29,129,39,0.07);}/*!sc*/
-.cnBopK:focus{outline:auto #1d8127;}/*!sc*/
-.ktPKSm{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#d41f1c;background-color:rgba(212,31,28,0.07);cursor:default;}/*!sc*/
-.ktPKSm:focus{outline:auto #d41f1c;}/*!sc*/
-.ktPKSm::before{content:"—";font-weight:bold;width:1.5em;text-align:center;display:inline-block;vertical-align:top;}/*!sc*/
-.ktPKSm:focus{outline:0;}/*!sc*/
-.kQgYHQ{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#1d8127;background-color:rgba(29,129,39,0.07);cursor:default;}/*!sc*/
-.kQgYHQ:focus{outline:auto #1d8127;}/*!sc*/
-.kQgYHQ::before{content:"—";font-weight:bold;width:1.5em;text-align:center;display:inline-block;vertical-align:top;}/*!sc*/
-.kQgYHQ:focus{outline:0;}/*!sc*/
-.fhwTMk{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#d41f1c;background-color:rgba(212,31,28,0.07);}/*!sc*/
-.fhwTMk:focus{outline:auto #d41f1c;}/*!sc*/
-data-styled.g119[id="sc-gohMHu"]{content:"cnBopK,ktPKSm,kQgYHQ,fhwTMk,"}/*!sc*/
-.beMorW{vertical-align:top;}/*!sc*/
-data-styled.g122[id="sc-bKXUjo"]{content:"beMorW,"}/*!sc*/
-.dheqgt{font-size:1.3em;padding:0.2em 0;margin:3em 0 1.1em;color:#333333;font-weight:normal;}/*!sc*/
-data-styled.g123[id="sc-edsqmr"]{content:"dheqgt,"}/*!sc*/
-.exRUVh{margin-bottom:30px;}/*!sc*/
-data-styled.g128[id="sc-fantwC"]{content:"exRUVh,"}/*!sc*/
-.isQMci{user-select:none;width:20px;height:20px;align-self:center;display:flex;flex-direction:column;color:#32329f;}/*!sc*/
-data-styled.g129[id="sc-bLmarx"]{content:"isQMci,"}/*!sc*/
-.jmYWik{width:260px;background-color:#fafafa;overflow:hidden;display:flex;flex-direction:column;backface-visibility:hidden;height:100vh;position:sticky;position:-webkit-sticky;top:0;}/*!sc*/
-@media screen and (max-width: 50rem){.jmYWik{position:fixed;z-index:20;width:100%;background:#fafafa;display:none;}}/*!sc*/
-@media print{.jmYWik{display:none;}}/*!sc*/
-data-styled.g130[id="sc-dFqmTM"]{content:"jmYWik,"}/*!sc*/
-.cZPhLc{outline:none;user-select:none;background-color:#f2f2f2;color:#32329f;display:none;cursor:pointer;position:fixed;right:20px;z-index:100;border-radius:50%;box-shadow:0 0 20px rgba(0, 0, 0, 0.3);bottom:44px;width:60px;height:60px;padding:0 20px;}/*!sc*/
-@media screen and (max-width: 50rem){.cZPhLc{display:flex;}}/*!sc*/
-.cZPhLc svg{color:#0065FB;}/*!sc*/
-@media print{.cZPhLc{display:none;}}/*!sc*/
-data-styled.g131[id="sc-eqXzvo"]{content:"cZPhLc,"}/*!sc*/
-.beDZfq{font-family:Roboto,sans-serif;font-size:14px;font-weight:400;line-height:1.5em;color:#333333;display:flex;position:relative;text-align:left;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;text-rendering:optimizeSpeed!important;tap-highlight-color:rgba(0, 0, 0, 0);text-size-adjust:100%;}/*!sc*/
-.beDZfq *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(255, 255, 255, 0);}/*!sc*/
-data-styled.g132[id="sc-iMPxVN"]{content:"beDZfq,"}/*!sc*/
-.knmTbM{z-index:1;position:relative;overflow:hidden;width:calc(100% - 260px);contain:layout;}/*!sc*/
-@media print,screen and (max-width: 50rem){.knmTbM{width:100%;}}/*!sc*/
-data-styled.g133[id="sc-jdwyG"]{content:"knmTbM,"}/*!sc*/
-.ifLiBE{background:#263238;position:absolute;top:0;bottom:0;right:0;width:calc((100% - 260px) * 0.4);}/*!sc*/
-@media print,screen and (max-width: 75rem){.ifLiBE{display:none;}}/*!sc*/
-data-styled.g134[id="sc-eEVuZf"]{content:"ifLiBE,"}/*!sc*/
-.cqdCbT{padding:5px 0;}/*!sc*/
-data-styled.g135[id="sc-dtOqdk"]{content:"cqdCbT,"}/*!sc*/
-.kAGYgE{width:calc(100% - 40px);box-sizing:border-box;margin:0 20px;padding:5px 10px 5px 20px;border:0;border-bottom:1px solid #e1e1e1;font-family:Roboto,sans-serif;font-weight:bold;font-size:13px;color:#333333;background-color:transparent;outline:none;}/*!sc*/
-data-styled.g136[id="sc-hPGoDJ"]{content:"kAGYgE,"}/*!sc*/
-.eDlXyu{position:absolute;left:20px;height:1.8em;width:0.9em;}/*!sc*/
-.eDlXyu path{fill:#333333;}/*!sc*/
-data-styled.g137[id="sc-kBpWFy"]{content:"eDlXyu,"}/*!sc*/
-</style>
- <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
-</head>
-
-<body>
-
- <div id="redoc"><div class="sc-iMPxVN beDZfq redoc-wrap"><div class="sc-dFqmTM jmYWik menu-content" style="top:0px;height:calc(100vh - 0px)"><div class="sc-fqujGp dzdmjb"><a href="https://github.com/apache/polaris" class="sc-jQybuE iYFQel"><img src="./img/logos/polaris-catalog-stacked-logo.svg" alt="Apache Polaris Logo" class="sc-jTpVWm fXQrMK"/></a></div><div role="search" class="sc-dtOqdk cqdCbT"><svg class="sc-kBpWFy eDlXyu search-icon" version="1.1" viewBox="0 0 1000 1000" x="0 [...]
- m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
- -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
- 0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
- -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
- -174.68583 0.6895,0 26.281,25.03215 56.8701,
- 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
- -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
- -104.0616 -231.873,-231.248 z
- " fill="currentColor"></path></g></svg><svg class="" style="transform:translate(2px, 4px);transition:transform 0.2s ease" viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="15" height="15"><g transform="translate(904.92214,-879.1482)"><path d="
- m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
- -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
- 0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
- -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
- -174.68583 0.6895,0 26.281,25.03215 56.8701,
- 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
- -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
- -104.0616 -231.873,-231.248 z
- " fill="currentColor"></path></g></svg></div></div><div class="sc-jdwyG knmTbM api-content"><div class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq api-info"><h1 class="sc-ixGGxD sc-geoRQH kHkxTT dZsYqS">Apache Polaris (Incubating) Documentation<!-- --> </h1><p>Download OpenAPI specification<!-- -->:<a download="openapi.json" target="_blank" class="sc-kEsJEW enkzRg">Download</a></p><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><div class="sc-kBAPd [...]
- 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.
--->
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><!--
- 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.
--->
-</div></div></div></div><div id="section/Quick-Start" data-section-id="section/Quick-Start" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-khLCKb wHiQv"><a class="sc-jwIPbr hbTOAm" href="#section/Quick-Start" aria-label="section/Quick-Start"></a>Quick Start</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>This guide serves as a introduction to several key entities [...]
-"><p>This guide serves as a introduction to several key entities that can be managed with Apache Polaris (Incubating), describes how to build and deploy Polaris locally, and finally includes examples of how to use Polaris with Apache Spark™.</p>
-</div></div></div><div id="section/Quick-Start/Prerequisites" data-section-id="section/Quick-Start/Prerequisites" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#section/Quick-Start/Prerequisites" aria-label="section/Quick-Start/Prerequisites"></a>Prerequisites</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>This g [...]
-<h3 id="building-and-deploying-polaris">Building and Deploying Polaris</h3>
-<p>To get the latest Polaris code, you&#39;ll need to clone the repository using <a href="https://git-scm.com/">git</a>. You can install git using <a href="https://brew.sh/">homebrew</a>:</p>
-<pre><code class="language-shell">brew <span class="token function">install</span> <span class="token function">git</span>
-</code></pre>
-<p>Then, use git to clone the Polaris repo:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~
-<span class="token function">git</span> clone https://github.com/apache/polaris.git
-</code></pre>
-<h4 id="with-docker">With Docker</h4>
-<p>If you plan to deploy Polaris inside <a href="https://www.docker.com/">Docker</a>, you&#39;ll need to install docker itself. For example, this can be done using <a href="https://brew.sh/">homebrew</a>:</p>
-<pre><code class="language-shell">brew <span class="token function">install</span> <span class="token parameter variable">--cask</span> <span class="token function">docker</span>
-</code></pre>
-<p>Once installed, make sure Docker is running.</p>
-<h4 id="from-source">From Source</h4>
-<p>If you plan to build Polaris from source yourself, you will need to satisfy a few prerequisites first.</p>
-<p>Polaris is built using <a href="https://gradle.org/">gradle</a> and is compatible with Java 21. We recommend the use of <a href="https://www.jenv.be/">jenv</a> to manage multiple Java versions. For example, to install Java 21 via <a href="https://brew.sh/">homebrew</a> and configure it with jenv: </p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-brew <span class="token function">install</span> openjdk@21 jenv
-jenv <span class="token function">add</span> <span class="token variable"><span class="token variable">$(</span>brew <span class="token parameter variable">--prefix</span> openjdk@21<span class="token variable">)</span></span>
-jenv <span class="token builtin class-name">local</span> <span class="token number">21</span>
-</code></pre>
-<h3 id="connecting-to-polaris">Connecting to Polaris</h3>
-<p>Polaris is compatible with any <a href="https://iceberg.apache.org/">Apache Iceberg</a> client that supports the REST API. Depending on the client you plan to use, refer to the prerequisites below.</p>
-<h4 id="with-spark">With Spark</h4>
-<p>If you want to connect to Polaris with <a href="https://spark.apache.org/">Apache Spark</a>, you&#39;ll need to start by cloning Spark. As <a href="#building-and-deploying-polaris">above</a>, make sure <a href="https://git-scm.com/">git</a> is installed first. You can install it with <a href="https://brew.sh/">homebrew</a>:</p>
-<pre><code class="language-shell">brew <span class="token function">install</span> <span class="token function">git</span>
-</code></pre>
-<p>Then, clone Spark and check out a versioned branch. This guide uses <a href="https://spark.apache.org/releases/spark-release-3-5-0.html">Spark 3.5</a>.</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~
-<span class="token function">git</span> clone https://github.com/apache/spark.git
-<span class="token builtin class-name">cd</span> ~/spark
-<span class="token function">git</span> checkout branch-3.5
-</code></pre>
-"><p>This guide covers building Polaris, deploying it locally or via <a href="https://www.docker.com/">Docker</a>, and interacting with it using the command-line interface and <a href="https://spark.apache.org/">Apache Spark</a>. Before proceeding with Polaris, be sure to satisfy the relevant prerequisites listed here.</p>
-<h3 id="building-and-deploying-polaris">Building and Deploying Polaris</h3>
-<p>To get the latest Polaris code, you'll need to clone the repository using <a href="https://git-scm.com/">git</a>. You can install git using <a href="https://brew.sh/">homebrew</a>:</p>
-<pre><code class="language-shell">brew <span class="token function">install</span> <span class="token function">git</span>
-</code></pre>
-<p>Then, use git to clone the Polaris repo:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~
-<span class="token function">git</span> clone https://github.com/apache/polaris.git
-</code></pre>
-<h4 id="with-docker">With Docker</h4>
-<p>If you plan to deploy Polaris inside <a href="https://www.docker.com/">Docker</a>, you'll need to install docker itself. For example, this can be done using <a href="https://brew.sh/">homebrew</a>:</p>
-<pre><code class="language-shell">brew <span class="token function">install</span> <span class="token parameter variable">--cask</span> <span class="token function">docker</span>
-</code></pre>
-<p>Once installed, make sure Docker is running.</p>
-<h4 id="from-source">From Source</h4>
-<p>If you plan to build Polaris from source yourself, you will need to satisfy a few prerequisites first.</p>
-<p>Polaris is built using <a href="https://gradle.org/">gradle</a> and is compatible with Java 21. We recommend the use of <a href="https://www.jenv.be/">jenv</a> to manage multiple Java versions. For example, to install Java 21 via <a href="https://brew.sh/">homebrew</a> and configure it with jenv: </p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-brew <span class="token function">install</span> openjdk@21 jenv
-jenv <span class="token function">add</span> <span class="token variable"><span class="token variable">$(</span>brew <span class="token parameter variable">--prefix</span> openjdk@21<span class="token variable">)</span></span>
-jenv <span class="token builtin class-name">local</span> <span class="token number">21</span>
-</code></pre>
-<h3 id="connecting-to-polaris">Connecting to Polaris</h3>
-<p>Polaris is compatible with any <a href="https://iceberg.apache.org/">Apache Iceberg</a> client that supports the REST API. Depending on the client you plan to use, refer to the prerequisites below.</p>
-<h4 id="with-spark">With Spark</h4>
-<p>If you want to connect to Polaris with <a href="https://spark.apache.org/">Apache Spark</a>, you'll need to start by cloning Spark. As <a href="#building-and-deploying-polaris">above</a>, make sure <a href="https://git-scm.com/">git</a> is installed first. You can install it with <a href="https://brew.sh/">homebrew</a>:</p>
-<pre><code class="language-shell">brew <span class="token function">install</span> <span class="token function">git</span>
-</code></pre>
-<p>Then, clone Spark and check out a versioned branch. This guide uses <a href="https://spark.apache.org/releases/spark-release-3-5-0.html">Spark 3.5</a>.</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~
-<span class="token function">git</span> clone https://github.com/apache/spark.git
-<span class="token builtin class-name">cd</span> ~/spark
-<span class="token function">git</span> checkout branch-3.5
-</code></pre>
-</div></div></div><div id="section/Quick-Start/Deploying-Polaris" data-section-id="section/Quick-Start/Deploying-Polaris" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#section/Quick-Start/Deploying-Polaris" aria-label="section/Quick-Start/Deploying-Polaris"></a>Deploying Polaris</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " h [...]
-<h3 id="docker-image">Docker Image</h3>
-<p>To start using Polaris in Docker, launch Polaris while Docker is running:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-<span class="token function">docker</span> compose <span class="token parameter variable">-f</span> docker-compose.yml up <span class="token parameter variable">--build</span>
-</code></pre>
-<p>Once the <code>polaris-polaris</code> container is up, you can continue to <a href="#defining-a-catalog">Defining a Catalog</a>.</p>
-<h3 id="building-polaris">Building Polaris</h3>
-<p>Run Polaris locally with:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-./gradlew runApp
-</code></pre>
-<p>You should see output for some time as Polaris builds and starts up. Eventually, you won’t see any more logs and should see messages that resemble the following:</p>
-<pre><code>INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="to [...]
-INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="token punctuation"&g [...]
-INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="token punctuation"&g [...]
-INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="token punctuation"&g [...]
-</code></pre>
-<p>At this point, Polaris is running.</p>
-"><p>Polaris can be deployed via a lightweight docker image or as a standalone process. Before starting, be sure that you've satisfied the relevant <a href="#building-and-deploying-polaris">prerequisites</a> detailed above.</p>
-<h3 id="docker-image">Docker Image</h3>
-<p>To start using Polaris in Docker, launch Polaris while Docker is running:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-<span class="token function">docker</span> compose <span class="token parameter variable">-f</span> docker-compose.yml up <span class="token parameter variable">--build</span>
-</code></pre>
-<p>Once the <code>polaris-polaris</code> container is up, you can continue to <a href="#defining-a-catalog">Defining a Catalog</a>.</p>
-<h3 id="building-polaris">Building Polaris</h3>
-<p>Run Polaris locally with:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-./gradlew runApp
-</code></pre>
-<p>You should see output for some time as Polaris builds and starts up. Eventually, you won’t see any more logs and should see messages that resemble the following:</p>
-<pre><code>INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> o<span class="token punctuation">.</span>e<span class="token punctuation">.</span>j<span class="token punctu [...]
-INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> o<span class="token punctuation">.</span>e<span class="token punctuation">.</span>j<span class="token punctuation">.</s [...]
-INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> o<span class="token punctuation">.</span>e<span class="token punctuation">.</span>j<span class="token punctuation">.</s [...]
-INFO <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token punctuation">[</span>main<span class="token punctuation">]</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> o<span class="token punctuation">.</span>eclipse<span class="token punctuation">.</span>jetty<span class="token punctua [...]
-</code></pre>
-<p>At this point, Polaris is running.</p>
-</div></div></div><div id="section/Quick-Start/Bootstrapping-Polaris" data-section-id="section/Quick-Start/Bootstrapping-Polaris" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#section/Quick-Start/Bootstrapping-Polaris" aria-label="section/Quick-Start/Bootstrapping-Polaris"></a>Bootstrapping Polaris</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUh [...]
-<p>When Polaris is launched using in-memory mode the root principal credentials can be found in stdout on initial startup. For example:</p>
-<pre><code>realm<span class="token punctuation">:</span> default<span class="token operator">-</span>realm root principal credentials<span class="token punctuation">:</span> <span class="token operator">&lt;</span>client<span class="token operator">-</span>id<span class="token operator">></span><span class="token punctuation"& [...]
-</code></pre>
-<p>Be sure to note of these credentials as we&#39;ll be using them below. You can also set these credentials as environment variables for use with the Polaris CLI:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">export</span> <span class="token assign-left variable">CLIENT_ID</span><span class="token operator">=</span><span class="token operator">&lt;</span>client-id<span class="token operator">></span>
-<span class="token builtin class-name">export</span> <span class="token assign-left variable">CLIENT_SECRET</span><span class="token operator">=</span><span class="token operator">&lt;</span>client-secret<span class="token operator">></span>
-</code></pre>
-"><p>For this tutorial, we'll launch an instance of Polaris that stores entities only in-memory. This means that any entities that you define will be destroyed when Polaris is shut down. It also means that Polaris will automatically bootstrap itself with root credentials. For more information on how to configure Polaris for production usage, see the <a href="./configuring-polaris-for-production.md">docs</a>.</p>
-<p>When Polaris is launched using in-memory mode the root principal credentials can be found in stdout on initial startup. For example:</p>
-<pre><code>realm<span class="token punctuation">:</span> default<span class="token operator">-</span>realm root principal credentials<span class="token punctuation">:</span> <span class="token operator"><</span>client<span class="token operator">-</span>id<span class="token operator">></span><span class="token punctuation">:</span><span class="token operator"><</span>client<span class="token operator">-</span>secret<span class="token operator">></span>
-</code></pre>
-<p>Be sure to note of these credentials as we'll be using them below. You can also set these credentials as environment variables for use with the Polaris CLI:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">export</span> <span class="token assign-left variable">CLIENT_ID</span><span class="token operator">=</span><span class="token operator"><</span>client-id<span class="token operator">></span>
-<span class="token builtin class-name">export</span> <span class="token assign-left variable">CLIENT_SECRET</span><span class="token operator">=</span><span class="token operator"><</span>client-secret<span class="token operator">></span>
-</code></pre>
-</div></div></div><div id="section/Quick-Start/Defining-a-Catalog" data-section-id="section/Quick-Start/Defining-a-Catalog" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#section/Quick-Start/Defining-a-Catalog" aria-label="section/Quick-Start/Defining-a-Catalog"></a>Defining a Catalog</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdow [...]
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- catalogs <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- --storage-type s3 <span class="token punctuation">\</span>
- --default-base-location <span class="token variable">${DEFAULT_BASE_LOCATION}</span> <span class="token punctuation">\</span>
- --role-arn <span class="token variable">${ROLE_ARN}</span> <span class="token punctuation">\</span>
- quickstart_catalog
-</code></pre>
-<p>This will create a new catalog called <strong>quickstart_catalog</strong>.</p>
-<p>The <code>DEFAULT_BASE_LOCATION</code> you provide will be the default location that objects in this catalog should be stored in, and the <code>ROLE_ARN</code> you provide should be a <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Role ARN</a> with access to read and write data in that location. These credentials will be provided to engines reading data from the catalog once they have authenticated wit [...]
-<p>If you’re using a storage type other than S3, such as Azure, you’ll provide a different type of credential than a Role ARN. For more details on supported storage types, see the <a href="./entities.md#storage-type">docs</a>.</p>
-<p>Additionally, if Polaris is running somewhere other than <code>localhost:8181</code>, you can specify the correct hostname and port by providing <code>--host</code> and <code>--port</code> flags. For the full set of options supported by the CLI, please refer to the <a href="./command-line-interface.md">docs</a>.</p>
-<h3 id="creating-a-principal-and-assigning-it-privileges">Creating a Principal and Assigning it Privileges</h3>
-<p>With a catalog created, we can create a <a href="./entities.md#principal">principal</a> that has access to manage that catalog. For details on how to configure the Polaris CLI, see <a href="#defining-a-catalog">the section above</a> or refer to the <a href="./command-line-interface.md">docs</a>.</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- principals <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- quickstart_user
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- principal-roles <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- quickstart_user_role
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- catalog-roles <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- quickstart_catalog_role
-</code></pre>
-<p>Be sure to provide the necessary credentials, hostname, and port as before.</p>
-<p>When the <code>principals create</code> command completes successfully, it will return the credentials for this new principal. Be sure to note these down for later. For example:</p>
-<pre><code><span class="token punctuation">.</span><span class="token operator">/</span>polaris <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> principals create example
-<span class="token punctuation">{</span><span class="token string">"clientId"</span><span class="token punctuation">:</span> <span class="token string">"XXXX"</span><span class="token punctuation">,</span> <span class="token string">"clientSecret"</span><span class="token punctuation">:</span> <span clas [...]
-</code></pre>
-<p>Now, we grant the principal the <a href="./entities.md#principal-role">principal role</a> we created, and grant the <a href="./entities.md#catalog-role">catalog role</a> the principal role we created. For more information on these entities, please refer to the linked documentation.</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- principal-roles <span class="token punctuation">\</span>
- grant <span class="token punctuation">\</span>
- <span class="token parameter variable">--principal</span> quickstart_user <span class="token punctuation">\</span>
- quickstart_user_role
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- catalog-roles <span class="token punctuation">\</span>
- grant <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- --principal-role quickstart_user_role <span class="token punctuation">\</span>
- quickstart_catalog_role
-</code></pre>
-<p>Now, we’ve linked our principal to the catalog via roles like so:</p>
-<p><img src="./img/quickstart/privilege-illustration-1.png" alt="Principal to Catalog" title="Principal to Catalog"></p>
-<p>In order to give this principal the ability to interact with the catalog, we must assign some <a href="./entities.md#privilege">privileges</a>. For the time being, we will give this principal the ability to fully manage content in our new catalog. We can do this with the CLI like so:</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- privileges <span class="token punctuation">\</span>
- catalog <span class="token punctuation">\</span>
- grant <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- --catalog-role quickstart_catalog_role <span class="token punctuation">\</span>
- CATALOG_MANAGE_CONTENT
-</code></pre>
-<p>This grants the <a href="./entities.md#privilege">catalog privileges</a> <code>CATALOG_MANAGE_CONTENT</code> to our catalog role, linking everything together like so:</p>
-<p><img src="./img/quickstart/privilege-illustration-2.png" alt="Principal to Catalog with Catalog Role" title="Principal to Catalog with Catalog Role"></p>
-<p><code>CATALOG_MANAGE_CONTENT</code> has create/list/read/write privileges on all entities within the catalog. The same privilege could be granted to a namespace, in which case the principal could create/list/read/write any entity under that namespace.</p>
-"><p>In Polaris, the <a href="./entities.md#catalog">catalog</a> is the top-level entity that objects like <a href="./entities.md#table">tables</a> and <a href="./entities.md#view">views</a> are organized under. With a Polaris service running, you can create a catalog like so:</p>
-<pre><code class="language-shell"><span class="token builtin class-name">cd</span> ~/polaris
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- catalogs <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- --storage-type s3 <span class="token punctuation">\</span>
- --default-base-location <span class="token variable">${DEFAULT_BASE_LOCATION}</span> <span class="token punctuation">\</span>
- --role-arn <span class="token variable">${ROLE_ARN}</span> <span class="token punctuation">\</span>
- quickstart_catalog
-</code></pre>
-<p>This will create a new catalog called <strong>quickstart_catalog</strong>.</p>
-<p>The <code>DEFAULT_BASE_LOCATION</code> you provide will be the default location that objects in this catalog should be stored in, and the <code>ROLE_ARN</code> you provide should be a <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Role ARN</a> with access to read and write data in that location. These credentials will be provided to engines reading data from the catalog once they have authenticated with Polaris using credentials that have access to thos [...]
-<p>If you’re using a storage type other than S3, such as Azure, you’ll provide a different type of credential than a Role ARN. For more details on supported storage types, see the <a href="./entities.md#storage-type">docs</a>.</p>
-<p>Additionally, if Polaris is running somewhere other than <code>localhost:8181</code>, you can specify the correct hostname and port by providing <code>--host</code> and <code>--port</code> flags. For the full set of options supported by the CLI, please refer to the <a href="./command-line-interface.md">docs</a>.</p>
-<h3 id="creating-a-principal-and-assigning-it-privileges">Creating a Principal and Assigning it Privileges</h3>
-<p>With a catalog created, we can create a <a href="./entities.md#principal">principal</a> that has access to manage that catalog. For details on how to configure the Polaris CLI, see <a href="#defining-a-catalog">the section above</a> or refer to the <a href="./command-line-interface.md">docs</a>.</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- principals <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- quickstart_user
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- principal-roles <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- quickstart_user_role
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- catalog-roles <span class="token punctuation">\</span>
- create <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- quickstart_catalog_role
-</code></pre>
-<p>Be sure to provide the necessary credentials, hostname, and port as before.</p>
-<p>When the <code>principals create</code> command completes successfully, it will return the credentials for this new principal. Be sure to note these down for later. For example:</p>
-<pre><code><span class="token punctuation">.</span><span class="token operator">/</span>polaris <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> principals create example
-<span class="token punctuation">{</span><span class="token string">"clientId"</span><span class="token punctuation">:</span> <span class="token string">"XXXX"</span><span class="token punctuation">,</span> <span class="token string">"clientSecret"</span><span class="token punctuation">:</span> <span class="token string">"YYYY"</span><span class="token punctuation">}</span>
-</code></pre>
-<p>Now, we grant the principal the <a href="./entities.md#principal-role">principal role</a> we created, and grant the <a href="./entities.md#catalog-role">catalog role</a> the principal role we created. For more information on these entities, please refer to the linked documentation.</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- principal-roles <span class="token punctuation">\</span>
- grant <span class="token punctuation">\</span>
- <span class="token parameter variable">--principal</span> quickstart_user <span class="token punctuation">\</span>
- quickstart_user_role
-
-./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- catalog-roles <span class="token punctuation">\</span>
- grant <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- --principal-role quickstart_user_role <span class="token punctuation">\</span>
- quickstart_catalog_role
-</code></pre>
-<p>Now, we’ve linked our principal to the catalog via roles like so:</p>
-<p><img src="./img/quickstart/privilege-illustration-1.png" alt="Principal to Catalog" title="Principal to Catalog"></p>
-<p>In order to give this principal the ability to interact with the catalog, we must assign some <a href="./entities.md#privilege">privileges</a>. For the time being, we will give this principal the ability to fully manage content in our new catalog. We can do this with the CLI like so:</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- privileges <span class="token punctuation">\</span>
- catalog <span class="token punctuation">\</span>
- grant <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- --catalog-role quickstart_catalog_role <span class="token punctuation">\</span>
- CATALOG_MANAGE_CONTENT
-</code></pre>
-<p>This grants the <a href="./entities.md#privilege">catalog privileges</a> <code>CATALOG_MANAGE_CONTENT</code> to our catalog role, linking everything together like so:</p>
-<p><img src="./img/quickstart/privilege-illustration-2.png" alt="Principal to Catalog with Catalog Role" title="Principal to Catalog with Catalog Role"></p>
-<p><code>CATALOG_MANAGE_CONTENT</code> has create/list/read/write privileges on all entities within the catalog. The same privilege could be granted to a namespace, in which case the principal could create/list/read/write any entity under that namespace.</p>
-</div></div></div><div id="section/Quick-Start/Using-Iceberg-and-Polaris" data-section-id="section/Quick-Start/Using-Iceberg-and-Polaris" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#section/Quick-Start/Using-Iceberg-and-Polaris" aria-label="section/Quick-Start/Using-Iceberg-and-Polaris"></a>Using Iceberg & Polaris</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT [...]
-<h3 id="connecting-with-spark">Connecting with Spark</h3>
-<p>To use a Polaris-managed catalog in <a href="https://spark.apache.org/">Apache Spark</a>, we can configure Spark to use the Iceberg catalog REST API.</p>
-<p>This guide uses <a href="https://spark.apache.org/releases/spark-release-3-5-0.html">Apache Spark 3.5</a>, but be sure to find <a href="https://mvnrepository.com/artifact/org.apache.iceberg/iceberg-spark">the appropriate iceberg-spark package for your Spark version</a>. From a local Spark clone on the <code>branch-3.5</code> branch we can run the following:</p>
-<p><em>Note: the credentials provided here are those for our principal, not the root credentials.</em></p>
-<pre><code class="language-shell">bin/spark-shell <span class="token punctuation">\</span>
-<span class="token parameter variable">--packages</span> org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2,org.apache.hadoop:hadoop-aws:3.4.0 <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.extensions</span><span class="token operator">=</span>org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.warehouse</span><span class="token operator">=</span>quickstart_catalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> spark.sql.catalog.quickstart_catalog.header.X-Iceberg-Access-Delegation<span class="token operator">=</span>vended-credentials <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog</span><span class="token operator">=</span>org.apache.iceberg.spark.SparkCatalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> spark.sql.catalog.quickstart_catalog.catalog-impl<span class="token operator">=</span>org.apache.iceberg.rest.RESTCatalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.uri</span><span class="token operator">=</span>http://localhost:8181/api/catalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.credential</span><span class="token operator">=</span><span class="token string">'XXXX:YYYY'</span> <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.scope</span><span class="token operator">=</span><span class="token string">'PRINCIPAL_ROLE:ALL'</span> <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> spark.sql.catalog.quickstart_catalog.token-refresh-enabled<span class="token operator">=</span>true
-</code></pre>
-<p>Replace <code>XXXX</code> and <code>YYYY</code> with the client ID and client secret generated when you created the <code>quickstart_user</code> principal.</p>
-<p>Similar to the CLI commands above, this configures Spark to use the Polaris running at <code>localhost:8181</code>. If your Polaris server is running elsewhere, but sure to update the configuration appropriately.</p>
-<p>Finally, note that we include the <code>hadoop-aws</code> package here. If your table is using a different filesystem, be sure to include the appropriate dependency.</p>
-<p>Once the Spark session starts, we can create a namespace and table within the catalog:</p>
-<pre><code>spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"USE quickstart_catalog"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"CREATE NAMESPACE IF NOT EXISTS quickstart_namespace"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"CREATE NAMESPACE IF NOT EXISTS quickstart_namespace.schema"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"USE NAMESPACE quickstart_namespace.schema"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">""</span>"
- CREATE TABLE IF NOT EXISTS quickstart_table <span class="token punctuation">(</span>
- id BIGINT<span class="token punctuation">,</span> data STRING
- <span class="token punctuation">)</span>
-USING ICEBERG
-<span class="token string">""</span>"<span class="token punctuation">)</span>
-</code></pre>
-<p>We can now use this table like any other:</p>
-<pre><code>spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"INSERT INTO quickstart_table VALUES (1, 'some data')"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM quickstart_table"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">show</span><span class=&qu [...]
-<span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span>
-<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class= [...]
-<span class="token operator">|</span>id <span class="token operator">|</span>data <span class="token operator">|</span>
-<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class= [...]
-<span class="token operator">|</span><span class="token number">1</span> <span class="token operator">|</span>some data<span class="token operator">|</span>
-<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class= [...]
-</code></pre>
-<p>If at any time access is revoked...</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- privileges <span class="token punctuation">\</span>
- catalog <span class="token punctuation">\</span>
- revoke <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- --catalog-role quickstart_catalog_role <span class="token punctuation">\</span>
- CATALOG_MANAGE_CONTENT
-</code></pre>
-<p>Spark will lose access to the table:</p>
-<pre><code>spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM quickstart_table"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">show</spa [...]
-
-org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>iceberg<span class="token punctuation">.</span>exceptions<span class="token punctuation">.</span>ForbiddenException<span class="token punctuation">:</span> Forbidden<span class="token punctuation">:</span> Principal <span class="token string">'quicks [...]
-</code></pre>
-"><p>At this point, we’ve created a principal and granted it the ability to manage a catalog. We can now use an external engine to assume that principal, access our catalog, and store data in that catalog using <a href="https://iceberg.apache.org/">Apache Iceberg</a>.</p>
-<h3 id="connecting-with-spark">Connecting with Spark</h3>
-<p>To use a Polaris-managed catalog in <a href="https://spark.apache.org/">Apache Spark</a>, we can configure Spark to use the Iceberg catalog REST API.</p>
-<p>This guide uses <a href="https://spark.apache.org/releases/spark-release-3-5-0.html">Apache Spark 3.5</a>, but be sure to find <a href="https://mvnrepository.com/artifact/org.apache.iceberg/iceberg-spark">the appropriate iceberg-spark package for your Spark version</a>. From a local Spark clone on the <code>branch-3.5</code> branch we can run the following:</p>
-<p><em>Note: the credentials provided here are those for our principal, not the root credentials.</em></p>
-<pre><code class="language-shell">bin/spark-shell <span class="token punctuation">\</span>
-<span class="token parameter variable">--packages</span> org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.5.2,org.apache.hadoop:hadoop-aws:3.4.0 <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.extensions</span><span class="token operator">=</span>org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.warehouse</span><span class="token operator">=</span>quickstart_catalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> spark.sql.catalog.quickstart_catalog.header.X-Iceberg-Access-Delegation<span class="token operator">=</span>vended-credentials <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog</span><span class="token operator">=</span>org.apache.iceberg.spark.SparkCatalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> spark.sql.catalog.quickstart_catalog.catalog-impl<span class="token operator">=</span>org.apache.iceberg.rest.RESTCatalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.uri</span><span class="token operator">=</span>http://localhost:8181/api/catalog <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.credential</span><span class="token operator">=</span><span class="token string">'XXXX:YYYY'</span> <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> <span class="token assign-left variable">spark.sql.catalog.quickstart_catalog.scope</span><span class="token operator">=</span><span class="token string">'PRINCIPAL_ROLE:ALL'</span> <span class="token punctuation">\</span>
-<span class="token parameter variable">--conf</span> spark.sql.catalog.quickstart_catalog.token-refresh-enabled<span class="token operator">=</span>true
-</code></pre>
-<p>Replace <code>XXXX</code> and <code>YYYY</code> with the client ID and client secret generated when you created the <code>quickstart_user</code> principal.</p>
-<p>Similar to the CLI commands above, this configures Spark to use the Polaris running at <code>localhost:8181</code>. If your Polaris server is running elsewhere, but sure to update the configuration appropriately.</p>
-<p>Finally, note that we include the <code>hadoop-aws</code> package here. If your table is using a different filesystem, be sure to include the appropriate dependency.</p>
-<p>Once the Spark session starts, we can create a namespace and table within the catalog:</p>
-<pre><code>spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"USE quickstart_catalog"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"CREATE NAMESPACE IF NOT EXISTS quickstart_namespace"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"CREATE NAMESPACE IF NOT EXISTS quickstart_namespace.schema"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"USE NAMESPACE quickstart_namespace.schema"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">""</span>"
- CREATE TABLE IF NOT EXISTS quickstart_table <span class="token punctuation">(</span>
- id BIGINT<span class="token punctuation">,</span> data STRING
- <span class="token punctuation">)</span>
-USING ICEBERG
-<span class="token string">""</span>"<span class="token punctuation">)</span>
-</code></pre>
-<p>We can now use this table like any other:</p>
-<pre><code>spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"INSERT INTO quickstart_table VALUES (1, 'some data')"</span><span class="token punctuation">)</span>
-spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM quickstart_table"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">show</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span>
-<span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span>
-<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span>
-<span class="token operator">|</span>id <span class="token operator">|</span>data <span class="token operator">|</span>
-<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span>
-<span class="token operator">|</span><span class="token number">1</span> <span class="token operator">|</span>some data<span class="token operator">|</span>
-<span class="token operator">+</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">--</span><span class="token operator">-</span><span class="token operator">+</span>
-</code></pre>
-<p>If at any time access is revoked...</p>
-<pre><code class="language-shell">./polaris <span class="token punctuation">\</span>
- --client-id <span class="token variable">${CLIENT_ID}</span> <span class="token punctuation">\</span>
- --client-secret <span class="token variable">${CLIENT_SECRET}</span> <span class="token punctuation">\</span>
- privileges <span class="token punctuation">\</span>
- catalog <span class="token punctuation">\</span>
- revoke <span class="token punctuation">\</span>
- <span class="token parameter variable">--catalog</span> quickstart_catalog <span class="token punctuation">\</span>
- --catalog-role quickstart_catalog_role <span class="token punctuation">\</span>
- CATALOG_MANAGE_CONTENT
-</code></pre>
-<p>Spark will lose access to the table:</p>
-<pre><code>spark<span class="token punctuation">.</span><span class="token function">sql</span><span class="token punctuation">(</span><span class="token string">"SELECT * FROM quickstart_table"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">show</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span>
-
-org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>iceberg<span class="token punctuation">.</span>exceptions<span class="token punctuation">.</span>ForbiddenException<span class="token punctuation">:</span> Forbidden<span class="token punctuation">:</span> Principal <span class="token string">'quickstart_user'</span> with activated PrincipalRoles <span class="token string">'[]'</span> and activated ids <span class="token string">'[6, 7]'</span> is no [...]
-</code></pre>
-</div></div></div><div id="tag/Overview" data-section-id="tag/Overview" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-khLCKb wHiQv"><a class="sc-jwIPbr hbTOAm" href="#tag/Overview" aria-label="tag/Overview"></a>Overview</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<!--
- 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.
--->
-
-<p>Apache Polaris (Incubating) is a catalog implementation for Apache Iceberg&trade; tables and is built on the open source Apache Iceberg&trade; REST protocol.</p>
-<p>With Polaris, you can provide centralized, secure read and write access to your Iceberg tables across different REST-compatible query engines.</p>
-<p><img src="img/overview.svg" alt="Conceptual diagram of Apache Polaris (Incubating)." title="Apache Polaris (Incubating) overview"></p>
-"><!--
- 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.
--->
-
-<p>Apache Polaris (Incubating) is a catalog implementation for Apache Iceberg™ tables and is built on the open source Apache Iceberg™ REST protocol.</p>
-<p>With Polaris, you can provide centralized, secure read and write access to your Iceberg tables across different REST-compatible query engines.</p>
-<p><img src="img/overview.svg" alt="Conceptual diagram of Apache Polaris (Incubating)." title="Apache Polaris (Incubating) overview"></p>
-</div></div></div><div id="tag/Overview/Key-concepts" data-section-id="tag/Overview/Key-concepts" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Overview/Key-concepts" aria-label="tag/Overview/Key-concepts"></a>Key concepts</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>This section introduces key concepts as [...]
-<p>In the following diagram, a sample <a href="overview.md#catalog">Apache Polaris (Incubating) structure</a> with nested <a href="overview.md#namespace">namespaces</a> is shown for Catalog1. No tables
-or namespaces have been created yet for Catalog2 or Catalog3.</p>
-<p><img src="img/sample-catalog-structure.svg" alt="Diagram that shows an example Apache Polaris (Incubating) structure." title="Sample Apache Polaris (Incubating) structure"></p>
-<h3 id="catalog">Catalog</h3>
-<p>In Polaris, you can create one or more catalog resources to organize Iceberg tables.</p>
-<p>Configure your catalog by setting values in the storage configuration for S3, Azure, or Google Cloud Storage. An Iceberg catalog enables a
-query engine to manage and organize tables. The catalog forms the first architectural layer in the <a href="https://iceberg.apache.org/spec/#overview">Apache Iceberg&trade; table specification</a> and must support the following tasks:</p>
-<ul>
-<li><p>Storing the current metadata pointer for one or more Iceberg tables. A metadata pointer maps a table name to the location of that table&#39;s
- current metadata file.</p>
-</li>
-<li><p>Performing atomic operations so that you can update the current metadata pointer for a table to the metadata pointer of a new version of
-the table.</p>
-</li>
-</ul>
-<p>To learn more about Iceberg catalogs, see the <a href="https://iceberg.apache.org/concepts/catalog/">Apache Iceberg&trade; documentation</a>.</p>
-<h4 id="catalog-types">Catalog types</h4>
-<p>A catalog can be one of the following two types:</p>
-<ul>
-<li><p>Internal: The catalog is managed by Polaris. Tables from this catalog can be read and written in Polaris.</p>
-</li>
-<li><p>External: The catalog is externally managed by another Iceberg catalog provider (for example, Snowflake, Glue, Dremio Arctic). Tables from
-this catalog are synced to Polaris. These tables are read-only in Polaris. In the current release, only a Snowflake external catalog is provided.</p>
-</li>
-</ul>
-<p>A catalog is configured with a storage configuration that can point to S3, Azure storage, or GCS.</p>
-<h3 id="namespace">Namespace</h3>
-<p>You create <em>namespaces</em> to logically group Iceberg tables within a catalog. A catalog can have multiple namespaces. You can also create
-nested namespaces. Iceberg tables belong to namespaces.</p>
-<h3 id="apache-iceberg-tables-and-catalogs">Apache Iceberg&trade; tables and catalogs</h3>
-<p>In an internal catalog, an Iceberg table is registered in Polaris, but read and written via query engines. The table data and
-metadata is stored in your external cloud storage. The table uses Polaris as the Iceberg catalog.</p>
-<p>If you have tables housed in another Iceberg catalog, you can sync these tables to an external catalog in Polaris.
-If you sync this catalog to Polaris, it appears as an external catalog in Polaris. Clients connecting to the external
-catalog can read from or write to these tables. However, clients connecting to Polaris will only be able to
-read from these tables.</p>
-<blockquote>
-<p><strong>Important</strong></p>
-<p>For the access privileges defined for a catalog to be enforced correctly, the following conditions must be met:</p>
-<ul>
-<li>The directory only contains the data files that belong to a single table.</li>
-<li>The directory hierarchy matches the namespace hierarchy for the catalog.</li>
-</ul>
-<p>For example, if a catalog includes the following items:</p>
-<ul>
-<li>Top-level namespace namespace1</li>
-<li>Nested namespace namespace1a</li>
-<li>A customers table, which is grouped under nested namespace namespace1a</li>
-<li>An orders table, which is grouped under nested namespace namespace1a</li>
-</ul>
-<p>The directory hierarchy for the catalog must follow this structure:</p>
-<ul>
-<li>/namespace1/namespace1a/customers/&lt;files for the customers table *only*&gt;</li>
-<li>/namespace1/namespace1a/orders/&lt;files for the orders table *only*&gt;</li>
-</ul>
-</blockquote>
-<h3 id="service-principal">Service principal</h3>
-<p>A service principal is an entity that you create in Polaris. Each service principal encapsulates credentials that you use to connect
-to Polaris.</p>
-<p>Query engines use service principals to connect to catalogs.</p>
-<p>Polaris generates a Client ID and Client Secret pair for each service principal.</p>
-<p>The following table displays example service principals that you might create in Polaris:</p>
-<table>
-<thead>
-<tr>
-<th>Service connection name</th>
-<th>Purpose</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Flink ingestion</td>
-<td>For Apache Flink&reg; to ingest streaming data into Apache Iceberg&trade; tables.</td>
-</tr>
-<tr>
-<td>Spark ETL pipeline</td>
-<td>For Apache Spark&trade; to run ETL pipeline jobs on Iceberg tables.</td>
-</tr>
-<tr>
-<td>Snowflake data pipelines</td>
-<td>For Snowflake to run data pipelines for transforming data in Apache Iceberg&trade; tables.</td>
-</tr>
-<tr>
-<td>Trino BI dashboard</td>
-<td>For Trino to run BI queries for powering a dashboard.</td>
-</tr>
-<tr>
-<td>Snowflake AI team</td>
-<td>For Snowflake to run AI jobs on data in Apache Iceberg&trade; tables.</td>
-</tr>
-</tbody></table>
-<h3 id="service-connection">Service connection</h3>
-<p>A service connection represents a REST-compatible engine (such as Apache Spark&trade;, Apache Flink&reg;, or Trino) that can read from and write to Polaris
-Catalog. When creating a new service connection, the Polaris administrator grants the service principal that is created with the new service
-connection either a new or existing principal role. A principal role is a resource in Polaris that you can use to logically group Polaris
-service principals together and grant privileges on securable objects. For more information, see <a href="access-control.md#principal-role" title="Principal role">Principal role</a>. Polaris uses a role-based access control (RBAC) model to grant service principals access to resources. For more information,
-see <a href="access-control.md" title="Access control">Access control</a>. For a diagram of this model, see <a href="access-control.md#rbac-model" title="RBAC model">RBAC model</a>.</p>
-<p>If the Polaris administrator grants the service principal for the new service connection a new principal role, the service principal
-doesn&#39;t have any privileges granted to it yet. When securing the catalog that the new service connection will connect to, the Polaris
-administrator grants privileges to catalog roles and then grants these catalog roles to the new principal role. As a result, the service
-principal for the new service connection has these privileges. For more information about catalog roles, see <a href="access-control.md#catalog-role" title="Catalog role">Catalog role</a>.</p>
-<p>If the Polaris administrator grants an existing principal role to the service principal for the new service connection, the service principal
-has the same privileges granted to the catalog roles that are granted to the existing principal role. If needed, the Polaris
-administrator can grant additional catalog roles to the existing principal role or remove catalog roles from it to adjust the privileges
-bestowed to the service principal. For an example of how RBAC works in Polaris, see <a href="access-control.md#rbac-example" title="RBAC example">RBAC example</a>.</p>
-<h3 id="storage-configuration">Storage configuration</h3>
-<p>A storage configuration stores a generated identity and access management (IAM) entity for your external cloud storage and is created
-when you create a catalog. The storage configuration is used to set the values to connect Polaris to your cloud storage. During the
-catalog creation process, an IAM entity is generated and used to create a trust relationship between the cloud storage provider and Polaris
-Catalog.</p>
-<p>When you create a catalog, you supply the following information about your external cloud storage:</p>
-<table>
-<thead>
-<tr>
-<th>Cloud storage provider</th>
-<th>Information</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Amazon S3</td>
-<td><ul><li>Default base location for your Amazon S3 bucket</li><li>Locations for your Amazon S3 bucket</li><li>S3 role ARN</li><li>External ID (optional)</li></ul></td>
-</tr>
-<tr>
-<td>Google Cloud Storage (GCS)</td>
-<td><ul><li>Default base location for your GCS bucket</li><li>Locations for your GCS bucket</li></ul></td>
-</tr>
-<tr>
-<td>Azure</td>
-<td><ul><li>Default base location for your Microsoft Azure container</li><li>Locations for your Microsoft Azure container</li><li>Azure tenant ID</li></ul></td>
-</tr>
-</tbody></table>
-"><p>This section introduces key concepts associated with using Apache Polaris (Incubating).</p>
-<p>In the following diagram, a sample <a href="overview.md#catalog">Apache Polaris (Incubating) structure</a> with nested <a href="overview.md#namespace">namespaces</a> is shown for Catalog1. No tables
-or namespaces have been created yet for Catalog2 or Catalog3.</p>
-<p><img src="img/sample-catalog-structure.svg" alt="Diagram that shows an example Apache Polaris (Incubating) structure." title="Sample Apache Polaris (Incubating) structure"></p>
-<h3 id="catalog">Catalog</h3>
-<p>In Polaris, you can create one or more catalog resources to organize Iceberg tables.</p>
-<p>Configure your catalog by setting values in the storage configuration for S3, Azure, or Google Cloud Storage. An Iceberg catalog enables a
-query engine to manage and organize tables. The catalog forms the first architectural layer in the <a href="https://iceberg.apache.org/spec/#overview">Apache Iceberg™ table specification</a> and must support the following tasks:</p>
-<ul>
-<li><p>Storing the current metadata pointer for one or more Iceberg tables. A metadata pointer maps a table name to the location of that table's
- current metadata file.</p>
-</li>
-<li><p>Performing atomic operations so that you can update the current metadata pointer for a table to the metadata pointer of a new version of
-the table.</p>
-</li>
-</ul>
-<p>To learn more about Iceberg catalogs, see the <a href="https://iceberg.apache.org/concepts/catalog/">Apache Iceberg™ documentation</a>.</p>
-<h4 id="catalog-types">Catalog types</h4>
-<p>A catalog can be one of the following two types:</p>
-<ul>
-<li><p>Internal: The catalog is managed by Polaris. Tables from this catalog can be read and written in Polaris.</p>
-</li>
-<li><p>External: The catalog is externally managed by another Iceberg catalog provider (for example, Snowflake, Glue, Dremio Arctic). Tables from
-this catalog are synced to Polaris. These tables are read-only in Polaris. In the current release, only a Snowflake external catalog is provided.</p>
-</li>
-</ul>
-<p>A catalog is configured with a storage configuration that can point to S3, Azure storage, or GCS.</p>
-<h3 id="namespace">Namespace</h3>
-<p>You create <em>namespaces</em> to logically group Iceberg tables within a catalog. A catalog can have multiple namespaces. You can also create
-nested namespaces. Iceberg tables belong to namespaces.</p>
-<h3 id="apache-iceberg-tables-and-catalogs">Apache Iceberg™ tables and catalogs</h3>
-<p>In an internal catalog, an Iceberg table is registered in Polaris, but read and written via query engines. The table data and
-metadata is stored in your external cloud storage. The table uses Polaris as the Iceberg catalog.</p>
-<p>If you have tables housed in another Iceberg catalog, you can sync these tables to an external catalog in Polaris.
-If you sync this catalog to Polaris, it appears as an external catalog in Polaris. Clients connecting to the external
-catalog can read from or write to these tables. However, clients connecting to Polaris will only be able to
-read from these tables.</p>
-<blockquote>
-<p><strong>Important</strong></p>
-<p>For the access privileges defined for a catalog to be enforced correctly, the following conditions must be met:</p>
-<ul>
-<li>The directory only contains the data files that belong to a single table.</li>
-<li>The directory hierarchy matches the namespace hierarchy for the catalog.</li>
-</ul>
-<p>For example, if a catalog includes the following items:</p>
-<ul>
-<li>Top-level namespace namespace1</li>
-<li>Nested namespace namespace1a</li>
-<li>A customers table, which is grouped under nested namespace namespace1a</li>
-<li>An orders table, which is grouped under nested namespace namespace1a</li>
-</ul>
-<p>The directory hierarchy for the catalog must follow this structure:</p>
-<ul>
-<li>/namespace1/namespace1a/customers/<files for the customers table *only*></li>
-<li>/namespace1/namespace1a/orders/<files for the orders table *only*></li>
-</ul>
-</blockquote>
-<h3 id="service-principal">Service principal</h3>
-<p>A service principal is an entity that you create in Polaris. Each service principal encapsulates credentials that you use to connect
-to Polaris.</p>
-<p>Query engines use service principals to connect to catalogs.</p>
-<p>Polaris generates a Client ID and Client Secret pair for each service principal.</p>
-<p>The following table displays example service principals that you might create in Polaris:</p>
-<table>
-<thead>
-<tr>
-<th>Service connection name</th>
-<th>Purpose</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Flink ingestion</td>
-<td>For Apache Flink® to ingest streaming data into Apache Iceberg™ tables.</td>
-</tr>
-<tr>
-<td>Spark ETL pipeline</td>
-<td>For Apache Spark™ to run ETL pipeline jobs on Iceberg tables.</td>
-</tr>
-<tr>
-<td>Snowflake data pipelines</td>
-<td>For Snowflake to run data pipelines for transforming data in Apache Iceberg™ tables.</td>
-</tr>
-<tr>
-<td>Trino BI dashboard</td>
-<td>For Trino to run BI queries for powering a dashboard.</td>
-</tr>
-<tr>
-<td>Snowflake AI team</td>
-<td>For Snowflake to run AI jobs on data in Apache Iceberg™ tables.</td>
-</tr>
-</tbody></table>
-<h3 id="service-connection">Service connection</h3>
-<p>A service connection represents a REST-compatible engine (such as Apache Spark™, Apache Flink®, or Trino) that can read from and write to Polaris
-Catalog. When creating a new service connection, the Polaris administrator grants the service principal that is created with the new service
-connection either a new or existing principal role. A principal role is a resource in Polaris that you can use to logically group Polaris
-service principals together and grant privileges on securable objects. For more information, see <a href="access-control.md#principal-role" title="Principal role">Principal role</a>. Polaris uses a role-based access control (RBAC) model to grant service principals access to resources. For more information,
-see <a href="access-control.md" title="Access control">Access control</a>. For a diagram of this model, see <a href="access-control.md#rbac-model" title="RBAC model">RBAC model</a>.</p>
-<p>If the Polaris administrator grants the service principal for the new service connection a new principal role, the service principal
-doesn't have any privileges granted to it yet. When securing the catalog that the new service connection will connect to, the Polaris
-administrator grants privileges to catalog roles and then grants these catalog roles to the new principal role. As a result, the service
-principal for the new service connection has these privileges. For more information about catalog roles, see <a href="access-control.md#catalog-role" title="Catalog role">Catalog role</a>.</p>
-<p>If the Polaris administrator grants an existing principal role to the service principal for the new service connection, the service principal
-has the same privileges granted to the catalog roles that are granted to the existing principal role. If needed, the Polaris
-administrator can grant additional catalog roles to the existing principal role or remove catalog roles from it to adjust the privileges
-bestowed to the service principal. For an example of how RBAC works in Polaris, see <a href="access-control.md#rbac-example" title="RBAC example">RBAC example</a>.</p>
-<h3 id="storage-configuration">Storage configuration</h3>
-<p>A storage configuration stores a generated identity and access management (IAM) entity for your external cloud storage and is created
-when you create a catalog. The storage configuration is used to set the values to connect Polaris to your cloud storage. During the
-catalog creation process, an IAM entity is generated and used to create a trust relationship between the cloud storage provider and Polaris
-Catalog.</p>
-<p>When you create a catalog, you supply the following information about your external cloud storage:</p>
-<table>
-<thead>
-<tr>
-<th>Cloud storage provider</th>
-<th>Information</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Amazon S3</td>
-<td><ul><li>Default base location for your Amazon S3 bucket</li><li>Locations for your Amazon S3 bucket</li><li>S3 role ARN</li><li>External ID (optional)</li></ul></td>
-</tr>
-<tr>
-<td>Google Cloud Storage (GCS)</td>
-<td><ul><li>Default base location for your GCS bucket</li><li>Locations for your GCS bucket</li></ul></td>
-</tr>
-<tr>
-<td>Azure</td>
-<td><ul><li>Default base location for your Microsoft Azure container</li><li>Locations for your Microsoft Azure container</li><li>Azure tenant ID</li></ul></td>
-</tr>
-</tbody></table>
-</div></div></div><div id="tag/Overview/Example-workflow" data-section-id="tag/Overview/Example-workflow" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Overview/Example-workflow" aria-label="tag/Overview/Example-workflow"></a>Example workflow</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>In the following ex [...]
-<ol>
-<li><p>Bob uses Apache Spark&trade; to create the Table1 table under the
-Namespace1 namespace in the Catalog1 catalog and insert values into
-Table1.</p>
-<p>Bob can create Table1 and insert data into it because he is using a
-service connection with a service principal that has
-the privileges to perform these actions.</p>
-</li>
-<li><p>Alice uses Trino to read data from Table1.</p>
-<p>Alice can read data from Table1 because she is using a service
-connection with a service principal that has the privileges to
-perform this action.</p>
-</li>
-</ol>
-<p><img src="img/example-workflow.svg" alt="Diagram that shows an example workflow for Apache Polaris (Incubating)" title="Example workflow for Apache Polaris (Incubating)"></p>
-"><p>In the following example workflow, Bob creates an Apache Iceberg™ table named Table1 and Alice reads data from Table1.</p>
-<ol>
-<li><p>Bob uses Apache Spark™ to create the Table1 table under the
-Namespace1 namespace in the Catalog1 catalog and insert values into
-Table1.</p>
-<p>Bob can create Table1 and insert data into it because he is using a
-service connection with a service principal that has
-the privileges to perform these actions.</p>
-</li>
-<li><p>Alice uses Trino to read data from Table1.</p>
-<p>Alice can read data from Table1 because she is using a service
-connection with a service principal that has the privileges to
-perform this action.</p>
-</li>
-</ol>
-<p><img src="img/example-workflow.svg" alt="Diagram that shows an example workflow for Apache Polaris (Incubating)" title="Example workflow for Apache Polaris (Incubating)"></p>
-</div></div></div><div id="tag/Overview/Security-and-access-control" data-section-id="tag/Overview/Security-and-access-control" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Overview/Security-and-access-control" aria-label="tag/Overview/Security-and-access-control"></a>Security and access control</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZ [...]
-<h3 id="credential-vending">Credential vending</h3>
-<p>To secure interactions with service connections, Polaris vends temporary storage credentials to the query engine during query
-execution. These credentials allow the query engine to run the query without requiring access to your external cloud storage for
-Iceberg tables. This process is called credential vending.</p>
-<h3 id="identity-and-access-management-iam">Identity and access management (IAM)</h3>
-<p>Polaris uses the identity and access management (IAM) entity to securely connect to your storage for accessing table data, Iceberg
-metadata, and manifest files that store the table schema, partitions, and other metadata. Polaris retains the IAM entity for your
-storage location.</p>
-<h3 id="access-control">Access control</h3>
-<p>Polaris enforces the access control that you configure across all tables registered with the service and governs security for all
-queries from query engines in a consistent manner.</p>
-<p>Polaris uses a role-based access control (RBAC) model that lets you centrally configure access for Polaris service principals to catalogs,
-namespaces, and tables.</p>
-<p>Polaris RBAC uses two different role types to delegate privileges:</p>
-<ul>
-<li><p><strong>Principal roles:</strong> Granted to Polaris service principals and
-analogous to roles in other access control systems that you grant to
-service principals.</p>
-</li>
-<li><p><strong>Catalog roles:</strong> Configured with certain privileges on Polaris
-catalog resources and granted to principal roles.</p>
-</li>
-</ul>
-<p>For more information, see <a href="access-control.md" title="Access control">Access control</a>.</p>
-"><p>This section describes security and access control.</p>
-<h3 id="credential-vending">Credential vending</h3>
-<p>To secure interactions with service connections, Polaris vends temporary storage credentials to the query engine during query
-execution. These credentials allow the query engine to run the query without requiring access to your external cloud storage for
-Iceberg tables. This process is called credential vending.</p>
-<h3 id="identity-and-access-management-iam">Identity and access management (IAM)</h3>
-<p>Polaris uses the identity and access management (IAM) entity to securely connect to your storage for accessing table data, Iceberg
-metadata, and manifest files that store the table schema, partitions, and other metadata. Polaris retains the IAM entity for your
-storage location.</p>
-<h3 id="access-control">Access control</h3>
-<p>Polaris enforces the access control that you configure across all tables registered with the service and governs security for all
-queries from query engines in a consistent manner.</p>
-<p>Polaris uses a role-based access control (RBAC) model that lets you centrally configure access for Polaris service principals to catalogs,
-namespaces, and tables.</p>
-<p>Polaris RBAC uses two different role types to delegate privileges:</p>
-<ul>
-<li><p><strong>Principal roles:</strong> Granted to Polaris service principals and
-analogous to roles in other access control systems that you grant to
-service principals.</p>
-</li>
-<li><p><strong>Catalog roles:</strong> Configured with certain privileges on Polaris
-catalog resources and granted to principal roles.</p>
-</li>
-</ul>
-<p>For more information, see <a href="access-control.md" title="Access control">Access control</a>.</p>
-</div></div></div><div id="tag/Overview/Legal-Notices" data-section-id="tag/Overview/Legal-Notices" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Overview/Legal-Notices" aria-label="tag/Overview/Legal-Notices"></a>Legal Notices</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>Apache&reg;, Apache Iceberg&am [...]
-"><p>Apache®, Apache Iceberg™, Apache Spark™, Apache Flink®, and Flink® are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.</p>
-</div></div></div><div id="tag/Polaris-Entities" data-section-id="tag/Polaris-Entities" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-khLCKb wHiQv"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities" aria-label="tag/Polaris-Entities"></a>Polaris Entities</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<!--
- 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.
--->
-
-<p>This page documents various entities that can be managed in Apache Polaris (Incubating).</p>
-"><!--
- 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.
--->
-
-<p>This page documents various entities that can be managed in Apache Polaris (Incubating).</p>
-</div></div></div><div id="tag/Polaris-Entities/Catalog" data-section-id="tag/Polaris-Entities/Catalog" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/Catalog" aria-label="tag/Polaris-Entities/Catalog"></a>Catalog</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>A catalog is a top-level entity [...]
-<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href="../regtests/client/python/docs/CreateCatalogRequest.md">the API docs</a>.</p>
-<h3 id="storage-type">Storage Type</h3>
-<p>All catalogs in Polaris are associated with a <em>storage type</em>. Valid Storage Types are <code>S3</code>, <code>Azure</code>, and <code>GCS</code>. The <code>FILE</code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including cre [...]
-<p>For details on how to use Storage Types in the REST API, see <a href="../regtests/client/python/docs/StorageConfigInfo.md">the API docs</a>.</p>
-"><p>A catalog is a top-level entity in Polaris that may contain other entities like <a href="#namespace">namespaces</a> and <a href="#table">tables</a>. These map directly to <a href="https://iceberg.apache.org/concepts/catalog/">Apache Iceberg catalogs</a>.</p>
-<p>For information on managing catalogs with the REST API or for more information on what data can be associated with a catalog, see <a href="../regtests/client/python/docs/CreateCatalogRequest.md">the API docs</a>.</p>
-<h3 id="storage-type">Storage Type</h3>
-<p>All catalogs in Polaris are associated with a <em>storage type</em>. Valid Storage Types are <code>S3</code>, <code>Azure</code>, and <code>GCS</code>. The <code>FILE</code> type is also additionally available for testing. Each of these types relates to a different storage provider where data within the catalog may reside. Depending on the storage type, various other configurations may be set for a catalog including credentials to be used when accessing data inside the catalog.</p>
-<p>For details on how to use Storage Types in the REST API, see <a href="../regtests/client/python/docs/StorageConfigInfo.md">the API docs</a>.</p>
-</div></div></div><div id="tag/Polaris-Entities/Namespace" data-section-id="tag/Polaris-Entities/Namespace" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/Namespace" aria-label="tag/Polaris-Entities/Namespace"></a>Namespace</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>A namespace is a logic [...]
-<p>In Polaris, namespaces can be nested. For example, <code>a.b.c.d.e.f.g</code> is a valid namespace. <code>b</code> is said to reside within <code>a</code>, and so on.</p>
-<p>For information on managing namespaces with the REST API or for more information on what data can be associated with a namespace, see <a href="../regtests/client/python/docs/CreateNamespaceRequest.md">the API docs</a>.</p>
-"><p>A namespace is a logical entity that resides within a <a href="#catalog">catalog</a> and can contain other entities such as <a href="#table">tables</a> or <a href="#view">views</a>. Some other systems may refer to namespaces as <em>schemas</em> or <em>databases</em>.</p>
-<p>In Polaris, namespaces can be nested. For example, <code>a.b.c.d.e.f.g</code> is a valid namespace. <code>b</code> is said to reside within <code>a</code>, and so on.</p>
-<p>For information on managing namespaces with the REST API or for more information on what data can be associated with a namespace, see <a href="../regtests/client/python/docs/CreateNamespaceRequest.md">the API docs</a>.</p>
-</div></div></div><div id="tag/Polaris-Entities/Table" data-section-id="tag/Polaris-Entities/Table" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/Table" aria-label="tag/Polaris-Entities/Table"></a>Table</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>Polaris tables are entities that map to &l [...]
-<p>For information on managing tables with the REST API or for more information on what data can be associated with a table, see <a href="../regtests/client/python/docs/CreateTableRequest.md">the API docs</a>.</p>
-"><p>Polaris tables are entities that map to <a href="https://iceberg.apache.org/docs/nightly/configuration/">Apache Iceberg tables</a>.</p>
-<p>For information on managing tables with the REST API or for more information on what data can be associated with a table, see <a href="../regtests/client/python/docs/CreateTableRequest.md">the API docs</a>.</p>
-</div></div></div><div id="tag/Polaris-Entities/View" data-section-id="tag/Polaris-Entities/View" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/View" aria-label="tag/Polaris-Entities/View"></a>View</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>Polaris views are entities that map to <a hr [...]
-<p>For information on managing views with the REST API or for more information on what data can be associated with a view, see <a href="../regtests/client/python/docs/CreateViewRequest.md">the API docs</a>.</p>
-"><p>Polaris views are entities that map to <a href="https://iceberg.apache.org/view-spec/">Apache Iceberg views</a>.</p>
-<p>For information on managing views with the REST API or for more information on what data can be associated with a view, see <a href="../regtests/client/python/docs/CreateViewRequest.md">the API docs</a>.</p>
-</div></div></div><div id="tag/Polaris-Entities/Principal" data-section-id="tag/Polaris-Entities/Principal" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/Principal" aria-label="tag/Polaris-Entities/Principal"></a>Principal</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>Polaris principals are [...]
-<p>For information on managing principals with the REST API or for more information on what data can be associated with a principal, see <a href="../regtests/client/python/docs/CreatePrincipalRequest.md">the API docs</a>.</p>
-"><p>Polaris principals are unique identities that can be used to represent users or services. Each principal may have one or more <a href="#principal-role">principal roles</a> assigned to it for the purpose of accessing catalogs and the entities within them.</p>
-<p>For information on managing principals with the REST API or for more information on what data can be associated with a principal, see <a href="../regtests/client/python/docs/CreatePrincipalRequest.md">the API docs</a>.</p>
-</div></div></div><div id="tag/Polaris-Entities/Principal-Role" data-section-id="tag/Polaris-Entities/Principal-Role" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/Principal-Role" aria-label="tag/Polaris-Entities/Principal-Role"></a>Principal Role</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p& [...]
-<p>For information on managing principal roles with the REST API or for more information on what data can be associated with a principal role, see <a href="../regtests/client/python/docs/CreatePrincipalRoleRequest.md">the API docs</a>.</p>
-"><p>Polaris principal roles are labels that may be granted to <a href="#principal">principals</a>. Each principal may have one or more principal roles, and the same principal role may be granted to multiple principals. Principal roles may be assigned based on the persona or responsibilities of a given principal, or on how that principal will need to access different entities within Polaris.</p>
-<p>For information on managing principal roles with the REST API or for more information on what data can be associated with a principal role, see <a href="../regtests/client/python/docs/CreatePrincipalRoleRequest.md">the API docs</a>.</p>
-</div></div></div><div id="tag/Polaris-Entities/Catalog-Role" data-section-id="tag/Polaris-Entities/Catalog-Role" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/Catalog-Role" aria-label="tag/Polaris-Entities/Catalog-Role"></a>Catalog Role</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>Polaris [...]
-<p>Each catalog role may have multiple <a href="#privilege">privileges</a> granted to it, and each catalog role can be granted to one or more <a href="#principal-role">principal roles</a>. This is the mechanism by which principals are granted access to entities inside a catalog such as namespaces and tables.</p>
-"><p>Polaris catalog roles are labels that may be granted to <a href="#catalog">catalogs</a>. Each catalog may have one or more catalog roles, and the same catalog role may be granted to multiple catalogs. Catalog roles may be assigned based on the nature of data that will reside in a catalog, or by the groups of users and services that might need to access that data. </p>
-<p>Each catalog role may have multiple <a href="#privilege">privileges</a> granted to it, and each catalog role can be granted to one or more <a href="#principal-role">principal roles</a>. This is the mechanism by which principals are granted access to entities inside a catalog such as namespaces and tables.</p>
-</div></div></div><div id="tag/Polaris-Entities/Privilege" data-section-id="tag/Polaris-Entities/Privilege" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Polaris-Entities/Privilege" aria-label="tag/Polaris-Entities/Privilege"></a>Privilege</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>Polaris privileges are [...]
-<p>A privilege can be scoped to any entity inside a catalog, including the catalog itself.</p>
-<p>For a list of supported privileges for each privilege class, see the API docs:</p>
-<ul>
-<li><a href="../regtests/client/python/docs/TablePrivilege.md">Table Privileges</a></li>
-<li><a href="../regtests/client/python/docs/ViewPrivilege.md">View Privileges</a></li>
-<li><a href="../regtests/client/python/docs/NamespacePrivilege.md">Namespace Privileges</a></li>
-<li><a href="../regtests/client/python/docs/CatalogPrivilege.md">Catalog Privileges</a></li>
-</ul>
-"><p>Polaris privileges are granted to <a href="#catalog-role">catalog roles</a> in order to grant principals with a given principal role some degree of access to catalogs with a given catalog role. When a privilege is granted to a catalog role, any principal roles granted that catalog role receive the privilege. In turn, any principals who are granted that principal role receive it. </p>
-<p>A privilege can be scoped to any entity inside a catalog, including the catalog itself.</p>
-<p>For a list of supported privileges for each privilege class, see the API docs:</p>
-<ul>
-<li><a href="../regtests/client/python/docs/TablePrivilege.md">Table Privileges</a></li>
-<li><a href="../regtests/client/python/docs/ViewPrivilege.md">View Privileges</a></li>
-<li><a href="../regtests/client/python/docs/NamespacePrivilege.md">Namespace Privileges</a></li>
-<li><a href="../regtests/client/python/docs/CatalogPrivilege.md">Catalog Privileges</a></li>
-</ul>
-</div></div></div><div id="tag/Access-Control" data-section-id="tag/Access-Control" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-khLCKb wHiQv"><a class="sc-jwIPbr hbTOAm" href="#tag/Access-Control" aria-label="tag/Access-Control"></a>Access Control</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<!--
- 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.
--->
-
-<p>This section provides information about how access control works for Apache Polaris (Incubating).</p>
-<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles
-and then grants access to resources to service principals by assigning catalog roles to principal roles.</p>
-<p>These are the key concepts to understanding access control in Polaris:</p>
-<ul>
-<li><strong>Securable object</strong></li>
-<li><strong>Principal role</strong></li>
-<li><strong>Catalog role</strong></li>
-<li><strong>Privilege</strong></li>
-</ul>
-"><!--
- 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.
--->
-
-<p>This section provides information about how access control works for Apache Polaris (Incubating).</p>
-<p>Polaris uses a role-based access control (RBAC) model in which the Polaris administrator assigns access privileges to catalog roles
-and then grants access to resources to service principals by assigning catalog roles to principal roles.</p>
-<p>These are the key concepts to understanding access control in Polaris:</p>
-<ul>
-<li><strong>Securable object</strong></li>
-<li><strong>Principal role</strong></li>
-<li><strong>Catalog role</strong></li>
-<li><strong>Privilege</strong></li>
-</ul>
-</div></div></div><div id="tag/Access-Control/Securable-object" data-section-id="tag/Access-Control/Securable-object" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Access-Control/Securable-object" aria-label="tag/Access-Control/Securable-object"></a>Securable object</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="< [...]
-has the following securable objects:</p>
-<ul>
-<li>Catalog</li>
-<li>Namespace</li>
-<li>Iceberg table</li>
-<li>View</li>
-</ul>
-"><p>A securable object is an object to which access can be granted. Polaris
-has the following securable objects:</p>
-<ul>
-<li>Catalog</li>
-<li>Namespace</li>
-<li>Iceberg table</li>
-<li>View</li>
-</ul>
-</div></div></div><div id="tag/Access-Control/Principal-role" data-section-id="tag/Access-Control/Principal-role" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Access-Control/Principal-role" aria-label="tag/Access-Control/Principal-role"></a>Principal role</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>A pri [...]
-securable objects.</p>
-<p>Polaris supports a many-to-one relationship between service principals and principal roles. For example, to grant the same privileges to
-multiple service principals, you can grant a single principal role to those service principals. A service principal can be granted one
-principal role. When registering a service connection, the Polaris administrator specifies the principal role that is granted to the
-service principal.</p>
-<p>You don&#39;t grant privileges directly to a principal role. Instead, you configure object permissions at the catalog role level, and then grant
-catalog roles to a principal role.</p>
-<p>The following table shows examples of principal roles that you might configure in Polaris:</p>
-<table>
-<thead>
-<tr>
-<th>Principal role name</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Data_engineer</td>
-<td>A role that is granted to multiple service principals for running data engineering jobs.</td>
-</tr>
-<tr>
-<td>Data_scientist</td>
-<td>A role that is granted to multiple service principals for running data science or AI jobs.</td>
-</tr>
-</tbody></table>
-"><p>A principal role is a resource in Polaris that you can use to logically group Polaris service principals together and grant privileges on
-securable objects.</p>
-<p>Polaris supports a many-to-one relationship between service principals and principal roles. For example, to grant the same privileges to
-multiple service principals, you can grant a single principal role to those service principals. A service principal can be granted one
-principal role. When registering a service connection, the Polaris administrator specifies the principal role that is granted to the
-service principal.</p>
-<p>You don't grant privileges directly to a principal role. Instead, you configure object permissions at the catalog role level, and then grant
-catalog roles to a principal role.</p>
-<p>The following table shows examples of principal roles that you might configure in Polaris:</p>
-<table>
-<thead>
-<tr>
-<th>Principal role name</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Data_engineer</td>
-<td>A role that is granted to multiple service principals for running data engineering jobs.</td>
-</tr>
-<tr>
-<td>Data_scientist</td>
-<td>A role that is granted to multiple service principals for running data science or AI jobs.</td>
-</tr>
-</tbody></table>
-</div></div></div><div id="tag/Access-Control/Catalog-role" data-section-id="tag/Access-Control/Catalog-role" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Access-Control/Catalog-role" aria-label="tag/Access-Control/Catalog-role"></a>Catalog role</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>A catalog role [...]
-in the catalog, such as catalog namespaces or tables. You can create one or more catalog roles for a catalog.</p>
-<p>You grant privileges to a catalog role and then grant the catalog role to a principal role to bestow the privileges to one or more service
-principals.</p>
-<blockquote>
-<p><strong>Note</strong></p>
-<p>If you update the privileges bestowed to a service principal, the updates won&#39;t take effect for up to one hour. This means that if you
-revoke or grant some privileges for a catalog, the updated privileges won&#39;t take effect on any service principal with access to that catalog
-for up to one hour.</p>
-</blockquote>
-<p>Polaris also supports a many-to-many relationship between catalog roles and principal roles. You can grant the same catalog role to one or more
-principal roles. Likewise, a principal role can be granted to one or more catalog roles.</p>
-<p>The following table displays examples of catalog roles that you might
-configure in Polaris:</p>
-<table>
-<thead>
-<tr>
-<th>Example Catalog role</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Catalog administrators</td>
-<td>A role that has been granted multiple privileges to emulate full access to the catalog.<br /><br />Principal roles that have been granted this role are permitted to create, alter, read, write, and drop tables in the catalog.</td>
-</tr>
-<tr>
-<td>Catalog readers</td>
-<td>A role that has been granted read-only privileges to tables in the catalog.<br /><br />Principal roles that have been granted this role are allowed to read from tables in the catalog.</td>
-</tr>
-<tr>
-<td>Catalog contributor</td>
-<td>A role that has been granted read and write access privileges to all tables that belong to the catalog.<br /><br />Principal roles that have been granted this role are allowed to perform read and write operations on tables in the catalog.</td>
-</tr>
-</tbody></table>
-"><p>A catalog role belongs to a particular catalog resource in Polaris and specifies a set of permissions for actions on the catalog or objects
-in the catalog, such as catalog namespaces or tables. You can create one or more catalog roles for a catalog.</p>
-<p>You grant privileges to a catalog role and then grant the catalog role to a principal role to bestow the privileges to one or more service
-principals.</p>
-<blockquote>
-<p><strong>Note</strong></p>
-<p>If you update the privileges bestowed to a service principal, the updates won't take effect for up to one hour. This means that if you
-revoke or grant some privileges for a catalog, the updated privileges won't take effect on any service principal with access to that catalog
-for up to one hour.</p>
-</blockquote>
-<p>Polaris also supports a many-to-many relationship between catalog roles and principal roles. You can grant the same catalog role to one or more
-principal roles. Likewise, a principal role can be granted to one or more catalog roles.</p>
-<p>The following table displays examples of catalog roles that you might
-configure in Polaris:</p>
-<table>
-<thead>
-<tr>
-<th>Example Catalog role</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>Catalog administrators</td>
-<td>A role that has been granted multiple privileges to emulate full access to the catalog.<br /><br />Principal roles that have been granted this role are permitted to create, alter, read, write, and drop tables in the catalog.</td>
-</tr>
-<tr>
-<td>Catalog readers</td>
-<td>A role that has been granted read-only privileges to tables in the catalog.<br /><br />Principal roles that have been granted this role are allowed to read from tables in the catalog.</td>
-</tr>
-<tr>
-<td>Catalog contributor</td>
-<td>A role that has been granted read and write access privileges to all tables that belong to the catalog.<br /><br />Principal roles that have been granted this role are allowed to perform read and write operations on tables in the catalog.</td>
-</tr>
-</tbody></table>
-</div></div></div><div id="tag/Access-Control/RBAC-model" data-section-id="tag/Access-Control/RBAC-model" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Access-Control/RBAC-model" aria-label="tag/Access-Control/RBAC-model"></a>RBAC model</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>The following diagram ill [...]
-privileges to catalog roles and then grants service principals access to resources by assigning catalog roles to principal roles. Polaris
-supports a many-to-one relationship between service principals and principal roles.</p>
-<p><img src="img/rbac-model.svg" alt="Diagram that shows the RBAC model for Apache Polaris." title="Apache Polaris RBAC model"></p>
-"><p>The following diagram illustrates the RBAC model used by Polaris. For each catalog, the Polaris administrator assigns access
-privileges to catalog roles and then grants service principals access to resources by assigning catalog roles to principal roles. Polaris
-supports a many-to-one relationship between service principals and principal roles.</p>
-<p><img src="img/rbac-model.svg" alt="Diagram that shows the RBAC model for Apache Polaris." title="Apache Polaris RBAC model"></p>
-</div></div></div><div id="tag/Access-Control/Access-control-privileges" data-section-id="tag/Access-Control/Access-control-privileges" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Access-Control/Access-control-privileges" aria-label="tag/Access-Control/Access-control-privileges"></a>Access control privileges</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMw [...]
-roles are granted to principal roles, and principal roles are granted to service principals to specify the operations that service principals can
-perform on objects in Polaris.</p>
-<blockquote>
-<p><strong>Important</strong></p>
-<p>You can only grant privileges at the catalog level. Fine-grained access controls are not available. For example, you can grant read
-privileges to all tables in a catalog but not to an individual table in the catalog.</p>
-</blockquote>
-<p>To grant the full set of privileges (drop, list, read, write, etc.) on an object, you can use the <em>full privilege</em> option.</p>
-<h3 id="table-privileges">Table privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>TABLE_CREATE</td>
-<td>Enables registering a table with the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_DROP</td>
-<td>Enables dropping a table from the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_LIST</td>
-<td>Enables listing any tables in the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_READ_PROPERTIES</td>
-<td>Enables reading <a href="https://iceberg.apache.org/docs/nightly/configuration/#table-properties">properties</a> of the table.</td>
-</tr>
-<tr>
-<td>TABLE_WRITE_PROPERTIES</td>
-<td>Enables configuring <a href="https://iceberg.apache.org/docs/nightly/configuration/#table-properties">properties</a> for the table.</td>
-</tr>
-<tr>
-<td>TABLE_READ_DATA</td>
-<td>Enables reading data from the table by receiving short-lived read-only storage credentials from the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_WRITE_DATA</td>
-<td>Enables writing data to the table by receiving short-lived read+write storage credentials from the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_FULL_METADATA</td>
-<td>Grants all table privileges, except TABLE_READ_DATA and TABLE_WRITE_DATA, which need to be granted individually.</td>
-</tr>
-</tbody></table>
-<h3 id="view-privileges">View privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>VIEW_CREATE</td>
-<td>Enables registering a view with the catalog.</td>
-</tr>
-<tr>
-<td>VIEW_DROP</td>
-<td>Enables dropping a view from the catalog.</td>
-</tr>
-<tr>
-<td>VIEW_LIST</td>
-<td>Enables listing any views in the catalog.</td>
-</tr>
-<tr>
-<td>VIEW_READ_PROPERTIES</td>
-<td>Enables reading all the view properties.</td>
-</tr>
-<tr>
-<td>VIEW_WRITE_PROPERTIES</td>
-<td>Enables configuring view properties.</td>
-</tr>
-<tr>
-<td>VIEW_FULL_METADATA</td>
-<td>Grants all view privileges.</td>
-</tr>
-</tbody></table>
-<h3 id="namespace-privileges">Namespace privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>NAMESPACE_CREATE</td>
-<td>Enables creating a namespace in a catalog.</td>
-</tr>
-<tr>
-<td>NAMESPACE_DROP</td>
-<td>Enables dropping the namespace from the catalog.</td>
-</tr>
-<tr>
-<td>NAMESPACE_LIST</td>
-<td>Enables listing any object in the namespace, including nested namespaces and tables.</td>
-</tr>
-<tr>
-<td>NAMESPACE_READ_PROPERTIES</td>
-<td>Enables reading all the namespace properties.</td>
-</tr>
-<tr>
-<td>NAMESPACE_WRITE_PROPERTIES</td>
-<td>Enables configuring namespace properties.</td>
-</tr>
-<tr>
-<td>NAMESPACE_FULL_METADATA</td>
-<td>Grants all namespace privileges.</td>
-</tr>
-</tbody></table>
-<h3 id="catalog-privileges">Catalog privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>CATALOG_MANAGE_ACCESS</td>
-<td>Includes the ability to grant or revoke privileges on objects in a catalog to catalog roles, and the ability to grant or revoke catalog roles to or from principal roles.</td>
-</tr>
-<tr>
-<td>CATALOG_MANAGE_CONTENT</td>
-<td>Enables full management of content for the catalog. This privilege encompasses the following privileges:<ul><li>CATALOG_MANAGE_METADATA</li><li>TABLE_FULL_METADATA</li><li>NAMESPACE_FULL_METADATA</li><li>VIEW_FULL_METADATA</li><li>TABLE_WRITE_DATA</li><li>TABLE_READ_DATA</li><li>CATALOG_READ_PROPERTIES</li><li>CATALOG_WRITE_PROPERTIES</li></ul></td>
-</tr>
-<tr>
-<td>CATALOG_MANAGE_METADATA</td>
-<td>Enables full management of the catalog, catalog roles, namespaces, and tables.</td>
-</tr>
-<tr>
-<td>CATALOG_READ_PROPERTIES</td>
-<td>Enables listing catalogs and reading properties of the catalog.</td>
-</tr>
-<tr>
-<td>CATALOG_WRITE_PROPERTIES</td>
-<td>Enables configuring catalog properties.</td>
-</tr>
-</tbody></table>
-"><p>This section describes the privileges that are available in the Polaris access control model. Privileges are granted to catalog roles, catalog
-roles are granted to principal roles, and principal roles are granted to service principals to specify the operations that service principals can
-perform on objects in Polaris.</p>
-<blockquote>
-<p><strong>Important</strong></p>
-<p>You can only grant privileges at the catalog level. Fine-grained access controls are not available. For example, you can grant read
-privileges to all tables in a catalog but not to an individual table in the catalog.</p>
-</blockquote>
-<p>To grant the full set of privileges (drop, list, read, write, etc.) on an object, you can use the <em>full privilege</em> option.</p>
-<h3 id="table-privileges">Table privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>TABLE_CREATE</td>
-<td>Enables registering a table with the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_DROP</td>
-<td>Enables dropping a table from the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_LIST</td>
-<td>Enables listing any tables in the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_READ_PROPERTIES</td>
-<td>Enables reading <a href="https://iceberg.apache.org/docs/nightly/configuration/#table-properties">properties</a> of the table.</td>
-</tr>
-<tr>
-<td>TABLE_WRITE_PROPERTIES</td>
-<td>Enables configuring <a href="https://iceberg.apache.org/docs/nightly/configuration/#table-properties">properties</a> for the table.</td>
-</tr>
-<tr>
-<td>TABLE_READ_DATA</td>
-<td>Enables reading data from the table by receiving short-lived read-only storage credentials from the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_WRITE_DATA</td>
-<td>Enables writing data to the table by receiving short-lived read+write storage credentials from the catalog.</td>
-</tr>
-<tr>
-<td>TABLE_FULL_METADATA</td>
-<td>Grants all table privileges, except TABLE_READ_DATA and TABLE_WRITE_DATA, which need to be granted individually.</td>
-</tr>
-</tbody></table>
-<h3 id="view-privileges">View privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>VIEW_CREATE</td>
-<td>Enables registering a view with the catalog.</td>
-</tr>
-<tr>
-<td>VIEW_DROP</td>
-<td>Enables dropping a view from the catalog.</td>
-</tr>
-<tr>
-<td>VIEW_LIST</td>
-<td>Enables listing any views in the catalog.</td>
-</tr>
-<tr>
-<td>VIEW_READ_PROPERTIES</td>
-<td>Enables reading all the view properties.</td>
-</tr>
-<tr>
-<td>VIEW_WRITE_PROPERTIES</td>
-<td>Enables configuring view properties.</td>
-</tr>
-<tr>
-<td>VIEW_FULL_METADATA</td>
-<td>Grants all view privileges.</td>
-</tr>
-</tbody></table>
-<h3 id="namespace-privileges">Namespace privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>NAMESPACE_CREATE</td>
-<td>Enables creating a namespace in a catalog.</td>
-</tr>
-<tr>
-<td>NAMESPACE_DROP</td>
-<td>Enables dropping the namespace from the catalog.</td>
-</tr>
-<tr>
-<td>NAMESPACE_LIST</td>
-<td>Enables listing any object in the namespace, including nested namespaces and tables.</td>
-</tr>
-<tr>
-<td>NAMESPACE_READ_PROPERTIES</td>
-<td>Enables reading all the namespace properties.</td>
-</tr>
-<tr>
-<td>NAMESPACE_WRITE_PROPERTIES</td>
-<td>Enables configuring namespace properties.</td>
-</tr>
-<tr>
-<td>NAMESPACE_FULL_METADATA</td>
-<td>Grants all namespace privileges.</td>
-</tr>
-</tbody></table>
-<h3 id="catalog-privileges">Catalog privileges</h3>
-<table>
-<thead>
-<tr>
-<th>Privilege</th>
-<th>Description</th>
-</tr>
-</thead>
-<tbody><tr>
-<td>CATALOG_MANAGE_ACCESS</td>
-<td>Includes the ability to grant or revoke privileges on objects in a catalog to catalog roles, and the ability to grant or revoke catalog roles to or from principal roles.</td>
-</tr>
-<tr>
-<td>CATALOG_MANAGE_CONTENT</td>
-<td>Enables full management of content for the catalog. This privilege encompasses the following privileges:<ul><li>CATALOG_MANAGE_METADATA</li><li>TABLE_FULL_METADATA</li><li>NAMESPACE_FULL_METADATA</li><li>VIEW_FULL_METADATA</li><li>TABLE_WRITE_DATA</li><li>TABLE_READ_DATA</li><li>CATALOG_READ_PROPERTIES</li><li>CATALOG_WRITE_PROPERTIES</li></ul></td>
-</tr>
-<tr>
-<td>CATALOG_MANAGE_METADATA</td>
-<td>Enables full management of the catalog, catalog roles, namespaces, and tables.</td>
-</tr>
-<tr>
-<td>CATALOG_READ_PROPERTIES</td>
-<td>Enables listing catalogs and reading properties of the catalog.</td>
-</tr>
-<tr>
-<td>CATALOG_WRITE_PROPERTIES</td>
-<td>Enables configuring catalog properties.</td>
-</tr>
-</tbody></table>
-</div></div></div><div id="tag/Access-Control/RBAC-example" data-section-id="tag/Access-Control/RBAC-example" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Access-Control/RBAC-example" aria-label="tag/Access-Control/RBAC-example"></a>RBAC example</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUhK redoc-markdown " html="<p>The following d [...]
-includes the following users:</p>
-<ul>
-<li><p><strong>Alice:</strong> A service admin who signs up for Polaris. Alice can
- create service principals. She can also create catalogs and
- namespaces and configure access control for Polaris resources.</p>
-</li>
-<li><p><strong>Bob:</strong> A data engineer who uses Apache Spark&trade; to
- interact with Polaris.</p>
-<ul>
-<li><p>Alice has created a service principal for Bob. It has been
- granted the Data_engineer principal role, which in turn has been
- granted the following catalog roles: Catalog contributor and
- Data administrator (for both the Silver and Gold zone catalogs
- in the following diagram).</p>
-</li>
-<li><p>The Catalog contributor role grants permission to create
- namespaces and tables in the Bronze zone catalog.</p>
-</li>
-<li><p>The Data administrator roles grant full administrative rights to
- the Silver zone catalog and Gold zone catalog.</p>
-</li>
-</ul>
-</li>
-<li><p><strong>Mark:</strong> A data scientist who uses trains models with data managed
- by Polaris.</p>
-<ul>
-<li><p>Alice has created a service principal for Mark. It has been
- granted the Data_scientist principal role, which in turn has
- been granted the catalog role named Catalog reader.</p>
-</li>
-<li><p>The Catalog reader role grants read-only access for a catalog
- named Gold zone catalog.</p>
-</li>
-</ul>
-</li>
-</ul>
-<p><img src="img/rbac-example.svg" alt="Diagram that shows an example of how RBAC works in Apache Polaris." title="Apache Polaris RBAC example"></p>
-"><p>The following diagram illustrates how RBAC works in Polaris and
-includes the following users:</p>
-<ul>
-<li><p><strong>Alice:</strong> A service admin who signs up for Polaris. Alice can
- create service principals. She can also create catalogs and
- namespaces and configure access control for Polaris resources.</p>
-</li>
-<li><p><strong>Bob:</strong> A data engineer who uses Apache Spark™ to
- interact with Polaris.</p>
-<ul>
-<li><p>Alice has created a service principal for Bob. It has been
- granted the Data_engineer principal role, which in turn has been
- granted the following catalog roles: Catalog contributor and
- Data administrator (for both the Silver and Gold zone catalogs
- in the following diagram).</p>
-</li>
-<li><p>The Catalog contributor role grants permission to create
- namespaces and tables in the Bronze zone catalog.</p>
-</li>
-<li><p>The Data administrator roles grant full administrative rights to
- the Silver zone catalog and Gold zone catalog.</p>
-</li>
-</ul>
-</li>
-<li><p><strong>Mark:</strong> A data scientist who uses trains models with data managed
- by Polaris.</p>
-<ul>
-<li><p>Alice has created a service principal for Mark. It has been
- granted the Data_scientist principal role, which in turn has
- been granted the catalog role named Catalog reader.</p>
-</li>
-<li><p>The Catalog reader role grants read-only access for a catalog
- named Gold zone catalog.</p>
-</li>
-</ul>
-</li>
-</ul>
-<p><img src="img/rbac-example.svg" alt="Diagram that shows an example of how RBAC works in Apache Polaris." title="Apache Polaris RBAC example"></p>
-</div></div></div><div id="tag/Configuring-Polaris-for-Production" data-section-id="tag/Configuring-Polaris-for-Production" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-khLCKb wHiQv"><a class="sc-jwIPbr hbTOAm" href="#tag/Configuring-Polaris-for-Production" aria-label="tag/Configuring-Polaris-for-Production"></a>Configuring Polaris for Production</h2></div></div><div class="sc-fAUdSK dYLNKi"><div class="sc-epnzzT sc-eMwmJz drsioI dWZUh [...]
- 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.
--->
-
-
-<h1 id="configuring-apache-polaris-incubating-for-production">Configuring Apache Polaris (Incubating) for Production</h1>
-<p>The default <code>polaris-server.yml</code> configuration is intended for development and testing. When deploying Polaris in production, there are several best practices to keep in mind.</p>
-<h2 id="security">Security</h2>
-<h3 id="configurations">Configurations</h3>
-<p>Notable configuration used to secure a Polaris deployment are outlined below.</p>
-<h4 id="oauth2">oauth2</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>authenticator</code> below.</p>
-</blockquote>
-<ul>
-<li>Configure <a href="https://oauth.net/2/">OAuth</a> with this setting. Remove the <code>TestInlineBearerTokenPolarisAuthenticator</code> option and uncomment the <code>DefaultPolarisAuthenticator</code> authenticator option beneath it.</li>
-<li>Then, configure the token broker. You can configure the token broker to use either <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTRSAKeyPair.java#L24">asymmetric</a> or <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTSymmetricKeyBroker.java#L23">s [...]
-</ul>
-<h4 id="authenticatortokenbroker">authenticator.tokenBroker</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>oauth2</code> above.</p>
-</blockquote>
-<h4 id="callcontextresolver--realmcontextresolver">callContextResolver &amp; realmContextResolver</h4>
-<ul>
-<li>Use these configurations to specify a service that can resolve a realm from bearer tokens.</li>
-<li>The service(s) used here must implement the relevant interfaces (i.e. <a href="https://github.com/apache/polaris/blob/8290019c10290a600e40b35ddb1e2f54bf99e120/polaris-service/src/main/java/io/polaris/service/context/CallContextResolver.java#L27">CallContextResolver</a> and <a href="https://github.com/apache/polaris/blob/7ce86f10a68a3b56aed766235c88d6027c0de038/polaris-service/src/main/java/io/polaris/service/context/RealmContextResolver.java"& [...]
-</ul>
-<h2 id="metastore-management">Metastore Management</h2>
-<blockquote>
-<p>[!IMPORTANT]<br>The default <code>in-memory</code> implementation for <code>metastoreManager</code> is meant for testing and not suitable for production usage. Instead, consider an implementation such as <code>eclipse-link</code> which allows you to store metadata in a remote database.</p>
-</blockquote>
-<p>A Metastore Manger should be configured with an implementation that durably persists Polaris entities. Use the configuration <code>metaStoreManager</code> to configure a <a href="https://github.com/apache/polaris/blob/627dc602eb15a3258dcc32babf8def34cf6de0e9/polaris-core/src/main/java/io/polaris/core/persistence/PolarisMetaStoreManager.java#L47">MetastoreManager</a> implementation where Polaris entities will be persisted. </p>
-<p>Be sure to secure your metastore backend since it will be storing credentials and catalog metadata.</p>
-<h3 id="configuring-eclipselink">Configuring EclipseLink</h3>
-<p>To use EclipseLink for metastore management, specify the configuration <code>metaStoreManager.conf-file</code> to point to an EclipseLink <code>persistence.xml</code> file. This file, local to the Polaris service, contains details of the database used for metastore management and the connection settings. For more information, refer to <a href="./metastores.md">metastore documentation</a> for details.</p>
-<h3 id="bootstrapping">Bootstrapping</h3>
-<p>Before using Polaris when using a metastore manager other than <code>in-memory</code>, you must <strong>bootstrap</strong> the metastore manager. This is a manual operation that must be performed <strong>only once</strong> in order to prepare the metastore manager to integrate with Polaris. When the metastore manager is bootstrapped, any existing Polaris entities in the metastore manager may be <strong>purged</strong>.</p>
-<p>To bootstrap Polaris, run:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar bootstrap polaris-server.yml
-</code></pre>
-<p>Afterwards, Polaris can be launched normally:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar server polaris-server.yml
-</code></pre>
-<h2 id="other-configurations">Other Configurations</h2>
-<p>When deploying Polaris in production, consider adjusting the following configurations:</p>
-<h4 id="featureconfigurationsupported_catalog_storage_types">featureConfiguration.SUPPORTED_CATALOG_STORAGE_TYPES</h4>
-<ul>
-<li>By default Polaris catalogs are allowed to be located in local filesystem with the <code>FILE</code> storage type. This should be disabled for production systems.</li>
-<li>Use this configuration to additionally disable any other storage types that will not be in use.</li>
-</ul>
-"><!--
- 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.
--->
-
-
-<h1 id="configuring-apache-polaris-incubating-for-production">Configuring Apache Polaris (Incubating) for Production</h1>
-<p>The default <code>polaris-server.yml</code> configuration is intended for development and testing. When deploying Polaris in production, there are several best practices to keep in mind.</p>
-<h2 id="security">Security</h2>
-<h3 id="configurations">Configurations</h3>
-<p>Notable configuration used to secure a Polaris deployment are outlined below.</p>
-<h4 id="oauth2">oauth2</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>authenticator</code> below.</p>
-</blockquote>
-<ul>
-<li>Configure <a href="https://oauth.net/2/">OAuth</a> with this setting. Remove the <code>TestInlineBearerTokenPolarisAuthenticator</code> option and uncomment the <code>DefaultPolarisAuthenticator</code> authenticator option beneath it.</li>
-<li>Then, configure the token broker. You can configure the token broker to use either <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTRSAKeyPair.java#L24">asymmetric</a> or <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTSymmetricKeyBroker.java#L23">symmetric</a> keys.</li>
-</ul>
-<h4 id="authenticatortokenbroker">authenticator.tokenBroker</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>oauth2</code> above.</p>
-</blockquote>
-<h4 id="callcontextresolver--realmcontextresolver">callContextResolver & realmContextResolver</h4>
-<ul>
-<li>Use these configurations to specify a service that can resolve a realm from bearer tokens.</li>
-<li>The service(s) used here must implement the relevant interfaces (i.e. <a href="https://github.com/apache/polaris/blob/8290019c10290a600e40b35ddb1e2f54bf99e120/polaris-service/src/main/java/io/polaris/service/context/CallContextResolver.java#L27">CallContextResolver</a> and <a href="https://github.com/apache/polaris/blob/7ce86f10a68a3b56aed766235c88d6027c0de038/polaris-service/src/main/java/io/polaris/service/context/RealmContextResolver.java">RealmContextResolver</a>).</li>
-</ul>
-<h2 id="metastore-management">Metastore Management</h2>
-<blockquote>
-<p>[!IMPORTANT]<br>The default <code>in-memory</code> implementation for <code>metastoreManager</code> is meant for testing and not suitable for production usage. Instead, consider an implementation such as <code>eclipse-link</code> which allows you to store metadata in a remote database.</p>
-</blockquote>
-<p>A Metastore Manger should be configured with an implementation that durably persists Polaris entities. Use the configuration <code>metaStoreManager</code> to configure a <a href="https://github.com/apache/polaris/blob/627dc602eb15a3258dcc32babf8def34cf6de0e9/polaris-core/src/main/java/io/polaris/core/persistence/PolarisMetaStoreManager.java#L47">MetastoreManager</a> implementation where Polaris entities will be persisted. </p>
-<p>Be sure to secure your metastore backend since it will be storing credentials and catalog metadata.</p>
-<h3 id="configuring-eclipselink">Configuring EclipseLink</h3>
-<p>To use EclipseLink for metastore management, specify the configuration <code>metaStoreManager.conf-file</code> to point to an EclipseLink <code>persistence.xml</code> file. This file, local to the Polaris service, contains details of the database used for metastore management and the connection settings. For more information, refer to <a href="./metastores.md">metastore documentation</a> for details.</p>
-<h3 id="bootstrapping">Bootstrapping</h3>
-<p>Before using Polaris when using a metastore manager other than <code>in-memory</code>, you must <strong>bootstrap</strong> the metastore manager. This is a manual operation that must be performed <strong>only once</strong> in order to prepare the metastore manager to integrate with Polaris. When the metastore manager is bootstrapped, any existing Polaris entities in the metastore manager may be <strong>purged</strong>.</p>
-<p>To bootstrap Polaris, run:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar bootstrap polaris-server.yml
-</code></pre>
-<p>Afterwards, Polaris can be launched normally:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar server polaris-server.yml
-</code></pre>
-<h2 id="other-configurations">Other Configurations</h2>
-<p>When deploying Polaris in production, consider adjusting the following configurations:</p>
-<h4 id="featureconfigurationsupported_catalog_storage_types">featureConfiguration.SUPPORTED_CATALOG_STORAGE_TYPES</h4>
-<ul>
-<li>By default Polaris catalogs are allowed to be located in local filesystem with the <code>FILE</code> storage type. This should be disabled for production systems.</li>
-<li>Use this configuration to additionally disable any other storage types that will not be in use.</li>
-</ul>
-</div></div></div><div id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production" data-section-id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-khLCKb wHiQv"><a class="sc-jwIPbr hbTOAm" href="#tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production" aria-label="tag/ [...]
-"><p>The default <code>polaris-server.yml</code> configuration is intended for development and testing. When deploying Polaris in production, there are several best practices to keep in mind.</p>
-</div></div></div><div id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production/Security" data-section-id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production/Security" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Productio [...]
-<p>Notable configuration used to secure a Polaris deployment are outlined below.</p>
-<h4 id="oauth2">oauth2</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>authenticator</code> below.</p>
-</blockquote>
-<ul>
-<li>Configure <a href="https://oauth.net/2/">OAuth</a> with this setting. Remove the <code>TestInlineBearerTokenPolarisAuthenticator</code> option and uncomment the <code>DefaultPolarisAuthenticator</code> authenticator option beneath it.</li>
-<li>Then, configure the token broker. You can configure the token broker to use either <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTRSAKeyPair.java#L24">asymmetric</a> or <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTSymmetricKeyBroker.java#L23">s [...]
-</ul>
-<h4 id="authenticatortokenbroker">authenticator.tokenBroker</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>oauth2</code> above.</p>
-</blockquote>
-<h4 id="callcontextresolver--realmcontextresolver">callContextResolver &amp; realmContextResolver</h4>
-<ul>
-<li>Use these configurations to specify a service that can resolve a realm from bearer tokens.</li>
-<li>The service(s) used here must implement the relevant interfaces (i.e. <a href="https://github.com/apache/polaris/blob/8290019c10290a600e40b35ddb1e2f54bf99e120/polaris-service/src/main/java/io/polaris/service/context/CallContextResolver.java#L27">CallContextResolver</a> and <a href="https://github.com/apache/polaris/blob/7ce86f10a68a3b56aed766235c88d6027c0de038/polaris-service/src/main/java/io/polaris/service/context/RealmContextResolver.java"& [...]
-</ul>
-"><h3 id="configurations">Configurations</h3>
-<p>Notable configuration used to secure a Polaris deployment are outlined below.</p>
-<h4 id="oauth2">oauth2</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>authenticator</code> below.</p>
-</blockquote>
-<ul>
-<li>Configure <a href="https://oauth.net/2/">OAuth</a> with this setting. Remove the <code>TestInlineBearerTokenPolarisAuthenticator</code> option and uncomment the <code>DefaultPolarisAuthenticator</code> authenticator option beneath it.</li>
-<li>Then, configure the token broker. You can configure the token broker to use either <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTRSAKeyPair.java#L24">asymmetric</a> or <a href="https://github.com/apache/polaris/blob/b482617bf8cc508b37dbedf3ebc81a9408160a5e/polaris-service/src/main/java/io/polaris/service/auth/JWTSymmetricKeyBroker.java#L23">symmetric</a> keys.</li>
-</ul>
-<h4 id="authenticatortokenbroker">authenticator.tokenBroker</h4>
-<blockquote>
-<p>[!WARNING]<br>Ensure that the <code>tokenBroker</code> setting reflects the token broker specified in <code>oauth2</code> above.</p>
-</blockquote>
-<h4 id="callcontextresolver--realmcontextresolver">callContextResolver & realmContextResolver</h4>
-<ul>
-<li>Use these configurations to specify a service that can resolve a realm from bearer tokens.</li>
-<li>The service(s) used here must implement the relevant interfaces (i.e. <a href="https://github.com/apache/polaris/blob/8290019c10290a600e40b35ddb1e2f54bf99e120/polaris-service/src/main/java/io/polaris/service/context/CallContextResolver.java#L27">CallContextResolver</a> and <a href="https://github.com/apache/polaris/blob/7ce86f10a68a3b56aed766235c88d6027c0de038/polaris-service/src/main/java/io/polaris/service/context/RealmContextResolver.java">RealmContextResolver</a>).</li>
-</ul>
-</div></div></div><div id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production/Metastore-Management" data-section-id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production/Metastore-Management" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(I [...]
-<p>[!IMPORTANT]<br>The default <code>in-memory</code> implementation for <code>metastoreManager</code> is meant for testing and not suitable for production usage. Instead, consider an implementation such as <code>eclipse-link</code> which allows you to store metadata in a remote database.</p>
-</blockquote>
-<p>A Metastore Manger should be configured with an implementation that durably persists Polaris entities. Use the configuration <code>metaStoreManager</code> to configure a <a href="https://github.com/apache/polaris/blob/627dc602eb15a3258dcc32babf8def34cf6de0e9/polaris-core/src/main/java/io/polaris/core/persistence/PolarisMetaStoreManager.java#L47">MetastoreManager</a> implementation where Polaris entities will be persisted. </p>
-<p>Be sure to secure your metastore backend since it will be storing credentials and catalog metadata.</p>
-<h3 id="configuring-eclipselink">Configuring EclipseLink</h3>
-<p>To use EclipseLink for metastore management, specify the configuration <code>metaStoreManager.conf-file</code> to point to an EclipseLink <code>persistence.xml</code> file. This file, local to the Polaris service, contains details of the database used for metastore management and the connection settings. For more information, refer to <a href="./metastores.md">metastore documentation</a> for details.</p>
-<h3 id="bootstrapping">Bootstrapping</h3>
-<p>Before using Polaris when using a metastore manager other than <code>in-memory</code>, you must <strong>bootstrap</strong> the metastore manager. This is a manual operation that must be performed <strong>only once</strong> in order to prepare the metastore manager to integrate with Polaris. When the metastore manager is bootstrapped, any existing Polaris entities in the metastore manager may be <strong>purged</strong>.</p>
-<p>To bootstrap Polaris, run:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar bootstrap polaris-server.yml
-</code></pre>
-<p>Afterwards, Polaris can be launched normally:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar server polaris-server.yml
-</code></pre>
-"><blockquote>
-<p>[!IMPORTANT]<br>The default <code>in-memory</code> implementation for <code>metastoreManager</code> is meant for testing and not suitable for production usage. Instead, consider an implementation such as <code>eclipse-link</code> which allows you to store metadata in a remote database.</p>
-</blockquote>
-<p>A Metastore Manger should be configured with an implementation that durably persists Polaris entities. Use the configuration <code>metaStoreManager</code> to configure a <a href="https://github.com/apache/polaris/blob/627dc602eb15a3258dcc32babf8def34cf6de0e9/polaris-core/src/main/java/io/polaris/core/persistence/PolarisMetaStoreManager.java#L47">MetastoreManager</a> implementation where Polaris entities will be persisted. </p>
-<p>Be sure to secure your metastore backend since it will be storing credentials and catalog metadata.</p>
-<h3 id="configuring-eclipselink">Configuring EclipseLink</h3>
-<p>To use EclipseLink for metastore management, specify the configuration <code>metaStoreManager.conf-file</code> to point to an EclipseLink <code>persistence.xml</code> file. This file, local to the Polaris service, contains details of the database used for metastore management and the connection settings. For more information, refer to <a href="./metastores.md">metastore documentation</a> for details.</p>
-<h3 id="bootstrapping">Bootstrapping</h3>
-<p>Before using Polaris when using a metastore manager other than <code>in-memory</code>, you must <strong>bootstrap</strong> the metastore manager. This is a manual operation that must be performed <strong>only once</strong> in order to prepare the metastore manager to integrate with Polaris. When the metastore manager is bootstrapped, any existing Polaris entities in the metastore manager may be <strong>purged</strong>.</p>
-<p>To bootstrap Polaris, run:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar bootstrap polaris-server.yml
-</code></pre>
-<p>Afterwards, Polaris can be launched normally:</p>
-<pre><code class="language-bash"><span class="token function">java</span> <span class="token parameter variable">-jar</span> /path/to/jar/polaris-service-all.jar server polaris-server.yml
-</code></pre>
-</div></div></div><div id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production/Other-Configurations" data-section-id="tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(Incubating)-for-Production/Other-Configurations" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-dstKZu ksfpAz"><a class="sc-jwIPbr hbTOAm" href="#tag/Configuring-Polaris-for-Production/Configuring-Apache-Polaris-(I [...]
-<h4 id="featureconfigurationsupported_catalog_storage_types">featureConfiguration.SUPPORTED_CATALOG_STORAGE_TYPES</h4>
-<ul>
-<li>By default Polaris catalogs are allowed to be located in local filesystem with the <code>FILE</code> storage type. This should be disabled for production systems.</li>
-<li>Use this configuration to additionally disable any other storage types that will not be in use.</li>
-</ul>
-"><p>When deploying Polaris in production, consider adjusting the following configurations:</p>
-<h4 id="featureconfigurationsupported_catalog_storage_types">featureConfiguration.SUPPORTED_CATALOG_STORAGE_TYPES</h4>
-<ul>
-<li>By default Polaris catalogs are allowed to be located in local filesystem with the <code>FILE</code> storage type. This should be disabled for production systems.</li>
-<li>Use this configuration to additionally disable any other storage types that will not be in use.</li>
-</ul>
-</div></div></div><div id="tag/polaris-management-service_other" data-section-id="tag/polaris-management-service_other" class="sc-dntaoT bvhSud"><div class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZq"><h2 class="sc-khLCKb wHiQv"><a class="sc-jwIPbr hbTOAm" href="#tag/polaris-management-service_other" aria-label="tag/polaris-management-service_other"></a>other</h2></div></div></div><div id="tag/polaris-management-service_other/operation/listCatalogs" data-section-id="tag/polaris-manage [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List all catalogs in this polaris service</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>List of catalogs in the polaris service</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to list catalog details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to list catalog details</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/catalogs</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></sv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e86pq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2e86pq:0" tabindex="0" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Add a new Catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The Catalog to create</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="catalog" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand catalog"><span class="property-name">catalog</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></butto [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A catalog object. A catalog may be internal or external. External catalogs are managed entirely by an external catalog interface. Third party catalogs may be other Iceberg REST implementations or other services with their own proprietary APIs</p>
-</div></div></div></td></tr></tbody></table><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">201<!-- --> </strong><div html="<p>Successful response</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to create a catalog</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to create a catalog</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog does not exist</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>A catalog with the specified name already exists</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A catalog with the specified name already exists</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/catalogs</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2a8apq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2a8apq:0" tabindex=" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Get the details of a catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The catalog details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to read catalog details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to read catalog details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e8epq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2e8epq:0" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Update an existing catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>The catalog details to use in the update</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The catalog details to use in the update</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="currentEntityVersion" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">currentEntityVersion</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">integer</span></div> <div><div html="<p>The version of the object onto which this update is applied; if t [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="properties" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand properties"><span class="property-name">properties</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td cl [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A storage configuration used by catalogs</p>
-</div></div></div></td></tr></tbody></table><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The catalog details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to update catalog details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to update catalog details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog does not exist</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>The entity version doesn&#39;t match the currentEntityVersion; retry after fetching latest version</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The entity version doesn't match the currentEntityVersion; retry after fetching latest version</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="put" class="sc-txhaY fzqXJO http-verb put">put</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 " [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2a8ipq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2a8ipq [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Delete an existing catalog. The catalog must be empty.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to delete a catalog</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to delete a catalog</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}</div></div></div></div></div></div></div></div><div id="tag/polaris-management-service_other/operation/listPrincipals" data-section-id="tag/polaris-management-service_other/operation/listPrincipals" class="sc-dntaoT aYCdu"><div data-section-id="operation/listPrincipals" id="operation/listPrincipals" class="sc-kLhKbu dECWTf"><div class="sc-fAUdSK dFrZ [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List the principals for the current catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>List of principals for this catalog</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to list catalog admins</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to list catalog admins</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/principals</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></ [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e8qpq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2e8qpq:0" tabindex="0 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Create a principal</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The principal to create</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="principal" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand principal"><span class="property-name">principal</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></butt [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A Polaris principal.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="credentialRotationRequired" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">credentialRotationRequired</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">boolean</span></div> <div><div html="<p>If true, the initial credentials can only be used to call rotateC [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>If true, the initial credentials can only be used to call rotateCredentials</p>
-</div></div></div></td></tr></tbody></table><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">201<!-- --> </strong><div html="<p>Successful response</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to add a principal</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to add a principal</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/principals</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygo [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2a8upq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2a8upq:0" tabindex [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Get the principal details</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The requested principal</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The requested principal</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to get principal details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to get principal details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or principal does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or principal does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/principals/{principalName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals/{principalName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals/{principalName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals/{principalName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e92pq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2e92p [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Update an existing principal</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal name</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>The principal details to use in the update</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The principal details to use in the update</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="currentEntityVersion" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">currentEntityVersion</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">integer</span></div> <div><div html="<p>The ve [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="properties" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand properties"><span class="property-name">properties</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The updated principal</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to update principal details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to update principal details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal does not exist</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>The entity version doesn&#39;t match the currentEntityVersion; retry after fetching latest version</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The entity version doesn't match the currentEntityVersion; retry after fetching latest version</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="put" class="sc-txhaY fzqXJO http-verb put">put</span><span class="sc-etPtWW iqHzp">/principals/{principalName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals/{principalName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals/{principalName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals/{principalName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2a96pq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2a [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Remove a principal from polaris</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to delete a principal</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to delete a principal</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/principals/{principalName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals/{principalName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals/{principalName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals/{principalName}</div></div></div></div></div></div></div></div><div id="tag/polaris-management-service_other/operation/rotateCredentials" data-section-id="tag/polaris-management-service_other/operation/rotateCredentials" class="sc-dntaoT aYCdu"><div data-section-id="operation/rotateCredentials" id="operation/rotateCredentials" class="sc-kLhKbu dECWTf"><div class [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Rotate a principal's credentials. The new credentials will be returned in the response. This is the only API, aside from createPrincipal, that returns the user's credentials. This API is <em>not</em> idempotent.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The user name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The principal details along with the newly rotated credentials</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal details along with the newly rotated credentials</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to rotate credentials</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to rotate credentials</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/principals/{principalName}/rotate</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals/{principalName}/rotate</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals/{principalName}/rotate</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals/{principalName}/rotate</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e9epq:0" aria-selected="true" aria-disabled="false" aria-controls="panel [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List the roles assigned to the principal</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the target principal</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>List of roles assigned to this principal</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>List of roles assigned to this principal</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to list roles</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to list roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal or catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal or catalog does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/principals/{principalName}/principal-roles</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals/{principalName}/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals/{principalName}/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals/{principalName}/principal-roles</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e9ipq:0" aria-selected="true" aria-disabled="false" aria-contro [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Add a role to the principal</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the target principal</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>The principal role to assign</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The principal role to assign</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="principalRole" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand principalRole"><span class="property-name">principalRole</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></pol [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to add assign a role to the principal</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to add assign a role to the principal</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog, the principal, or the role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog, the principal, or the role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="put" class="sc-txhaY fzqXJO http-verb put">put</span><span class="sc-etPtWW iqHzp">/principals/{principalName}/principal-roles</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals/{principalName}/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals/{principalName}/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals/{principalName}/principal-roles</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2a9mpq:0" aria-selected="true" aria-disabled="false" aria-con [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Remove a role from a catalog principal</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the target principal</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="principalRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">principalRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the role</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to remove a role from the principal</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to remove a role from the principal</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or principal does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or principal does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/principals/{principalName}/principal-roles/{principalRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principals/{principalName}/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principals/{principalName}/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principals/{principalName}/principal-roles/{principalRoleName}</div></div></div></div></div></div></div></div><div id="tag/polaris-management-service_other/operation/listPrincipalRoles" data-section-id="tag/polaris-management-service_other/operation/listPrincipalRoles" class="sc-dntaoT aYCdu"><div data-section-id="operation/listPrincipalRoles" id="operation/listPrincipalRo [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List the principal roles</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>List of principal roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to list principal roles</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to list principal roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/principal-roles</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polyg [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e9upq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2e9upq:0" tabind [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Create a principal role</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The principal to create</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="principalRole" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand principalRole"><span class="property-name">principalRole</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></pol [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to add a principal role</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to add a principal role</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/principal-roles</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></p [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2aa2pq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2aa2pq:0" tab [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Get the principal role details</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal role name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The requested principal role</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The requested principal role</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to get principal role details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to get principal role details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/principal-roles/{principalRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles/{principalRoleName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2ea6pq:0" aria-selected="true" aria-disabled="false" aria-controls="pan [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Update an existing principalRole</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal role name</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>The principalRole details to use in the update</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The principalRole details to use in the update</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="currentEntityVersion" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">currentEntityVersion</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">integer</span></div> <div><div html="<p>The ve [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="properties" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand properties"><span class="property-name">properties</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The updated principal role</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to update principal role details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to update principal role details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal role does not exist</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>The entity version doesn&#39;t match the currentEntityVersion; retry after fetching latest version</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The entity version doesn't match the currentEntityVersion; retry after fetching latest version</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="put" class="sc-txhaY fzqXJO http-verb put">put</span><span class="sc-etPtWW iqHzp">/principal-roles/{principalRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles/{principalRoleName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2aaapq:0" aria-selected="true" aria-disabled="false" aria-controls=" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Remove a principal role from polaris</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal role name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to delete a principal role</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to delete a principal role</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/principal-roles/{principalRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles/{principalRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles/{principalRoleName}</div></div></div></div></div></div></div></div><div id="tag/polaris-management-service_other/operation/listAssigneePrincipalsForPrincipalRole" data-section-id="tag/polaris-management-service_other/operation/listAssigneePrincipalsForPrincipalRole" class="sc-dntaoT aYCdu"><div data-section-id="operation/listAssigneePrincipalsForPrincipalRo [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List the Principals to whom the target principal role has been assigned</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal role name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>List the Principals to whom the target principal role has been assi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>List the Principals to whom the target principal role has been assigned</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to list principals</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to list principals</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/principal-roles/{principalRoleName}/principals</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles/{principalRoleName}/principals</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles/{principalRoleName}/principals</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles/{principalRoleName}/principals</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2eaipq:0" aria-selected="true" aria-disabled="false" aria-co [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Get the catalog roles mapped to the principal role</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal role name</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -->[ 1 .. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog where the catalogRoles reside</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The list of catalog roles mapped to the principal role</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The list of catalog roles mapped to the principal role</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to list catalog roles</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to list catalog roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2eampq:0" aria-selected="true" aria-disable [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Assign a catalog role to a principal role</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal role name</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -->[ 1 .. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog where the catalogRoles reside</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>The principal to create</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The principal to create</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="catalogRole" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand catalogRole"><span class="property-name">catalogRole</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon>< [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to assign a catalog role</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to assign a catalog role</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="put" class="sc-txhaY fzqXJO http-verb put">put</span><span class="sc-etPtWW iqHzp">/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2aaqpq:0" aria-selected="true" aria-disa [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Remove a catalog role from a principal role</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The principal role name</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="catalogName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -->[ 1 .. 256 ] [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog that contains the role to revoke</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog role that should be revoked</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to revoke a catalog role</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to revoke a catalog role</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The principal role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/principal-roles/{principalRoleName}/catalog-roles/{catalogName}/{catalogRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/principal-roles/{principalRoleName}/catalog-roles/{catalogName}/{catalogRoleName}</div></div></div></div></div></div></div></div><div id="tag/polaris-management-service_other/operation/listCatalogRoles" data-section-id="tag/polaris-management-service_other/operation/listCatalogRoles" class="sc-dntaoT aYCdu"><div data-section-id="operation/listCatalogRoles" id="operation/li [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List existing roles in the catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The catalog for which we are reading/updating roles</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The list of roles that exist in this catalog</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The list of roles that exist in this catalog</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2eb2pq:0" aria-selected="true" aria-disabled="false" aria-controls="pa [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Create a new role in the catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The catalog for which we are reading/updating roles</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="catalogRole" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand catalogRole"><span class="property-name">catalogRole</s [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The principal is not authorized to create roles</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal is not authorized to create roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2ab6pq:0" aria-selected="true" aria-disabled="false" aria-controls= [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Get the details of an existing role</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The catalog for which we are retrieving roles</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the role</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>The specified role details</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The specified role details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The principal is not authorized to read role data</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal is not authorized to read role data</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or the role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or the role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2ebapq:0" aria-selected="true" aria-disabled="false" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Update an existing role in the catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The catalog for which we are retrieving roles</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the role</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="currentEntityVersion" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">currentEntityVersion</span><div class="sc-CNKsk sc-hGZxvd hPAOR feF [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="properties" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand properties"><span class="property-name">properties</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The specified role details</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The principal is not authorized to update roles</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal is not authorized to update roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or the role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or the role does not exist</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>The entity version doesn&#39;t match the currentEntityVersion; retry after fetching latest version</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The entity version doesn't match the currentEntityVersion; retry after fetching latest version</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="put" class="sc-txhaY fzqXJO http-verb put">put</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2abepq:0" aria-selected="true" aria-disabled="fal [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Delete an existing role from the catalog. All associated grants will also be deleted</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The catalog for which we are retrieving roles</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the role</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The principal is not authorized to delete roles</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal is not authorized to delete roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or the role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or the role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}</div></div></div></div></div></div></div></div><div id="tag/polaris-management-service_other/operation/listAssigneePrincipalRolesForCatalogRole" data-section-id="tag/polaris-management-service_other/operation/listAssigneePrincipalRolesForCatalogRole" class="sc-dntaoT aYCdu"><div data-section-id="operation/listAssigneeP [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List the PrincipalRoles to which the target catalog role has been assigned</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog where the catalog role resides</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog role</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>List the PrincipalRoles to which the target catalog role has been a [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>List the PrincipalRoles to which the target catalog role has been assigned</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The caller does not have permission to list principal roles</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The caller does not have permission to list principal roles</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or catalog role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or catalog role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/principal-roles</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/principal-roles</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/principal-roles</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2ebmpq:0" aria-selected="true" aria- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List the grants the catalog role holds</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog where the role will receive the grant</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the role receiving the grant (must exist)</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>List of all grants given to the role in this catalog</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>List of all grants given to the role in this catalog</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2ebqpq:0" aria-selected="true" aria-disabled= [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Add a new grant to the catalog role</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog where the role will receive the grant</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the role receiving the grant (must exist)</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="grant" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand grant"><span class="property-name">grant</span><svg class="sc [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The principal is not authorized to create grants</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal is not authorized to create grants</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or the role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or the role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="put" class="sc-txhaY fzqXJO http-verb put">put</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2abupq:0" aria-selected="true" aria-disabl [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Delete a specific grant from the role. This may be a subset or a superset of the grants the role has. In case of a subset, the role will retain the grants not specified. If the <code>cascade</code> parameter is true, grant revocation will have a cascading effect - that is, if a principal has specific grants on a subresource, and grants are revoked on a parent resource, the grants present on the subresource will be revoked as well. By default [...]
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Polaris_Management_Service_OAuth2</i> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the catalog where the role will receive the grant</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="catalogRoleName" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">catalogRoleName</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The name of the role receiving the grant (must exist)</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">query<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="cascade" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">cascade</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">boolean</span></div><div> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>If true, the grant revocation cascades to all subresources.</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="grant" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand grant"><span class="property-name">grant</span><svg class="sc [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Successful response</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>The principal is not authorized to create grants</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The principal is not authorized to create grants</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>The catalog or the role does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The catalog or the role does not exist</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2ac2pq:0" aria-selected="true" aria-disabl [...]
-<ul>
-<li>defaults - properties that should be used as default configuration; applied before client configuration</li>
-<li>overrides - properties that should be used to override client configuration; applied after defaults and client configuration</li>
-</ul>
-<p>Catalog configuration is constructed by setting the defaults, then client- provided configuration, and finally overrides. The final property set is then used to configure the catalog.</p>
-<p>For example, a default configuration property might set the size of the client pool, which can be replaced with a client-specific setting. An override might be used to set the warehouse location, which is stored on the server rather than in client configuration.</p>
-<p>Common catalog configuration settings are documented at <a href="https://iceberg.apache.org/docs/latest/configuration/#catalog-properties">https://iceberg.apache.org/docs/latest/configuration/#catalog-properties</a> </p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p> All REST clients should first call this route to get catalog configuration properties from the server to configure the catalog and its HTTP client. Configuration from the server consists of two sets of key/value pairs.</p>
-<ul>
-<li>defaults - properties that should be used as default configuration; applied before client configuration</li>
-<li>overrides - properties that should be used to override client configuration; applied after defaults and client configuration</li>
-</ul>
-<p>Catalog configuration is constructed by setting the defaults, then client- provided configuration, and finally overrides. The final property set is then used to configure the catalog.</p>
-<p>For example, a default configuration property might set the size of the client pool, which can be replaced with a client-specific setting. An override might be used to set the warehouse location, which is stored on the server rather than in client configuration.</p>
-<p>Common catalog configuration settings are documented at <a href="https://iceberg.apache.org/docs/latest/configuration/#catalog-properties">https://iceberg.apache.org/docs/latest/configuration/#catalog-properties</a> </p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Warehouse location or identifier to request from the service</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>Server specified configuration values.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Server specified configuration values.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/v1/config</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></s [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/config</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/config</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/config</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R4ssqa:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R4ssqa:0" tabindex="0" d [...]
-<p>This endpoint is used for three purposes -</p>
-<ol>
-<li>To exchange client credentials (client ID and secret) for an access token This uses the client credentials flow.</li>
-<li>To exchange a client token and an identity token for a more specific access token This uses the token exchange flow.</li>
-<li>To exchange an access token for one with the same claims and a refreshed expiration period This uses the token exchange flow.</li>
-</ol>
-<p>For example, a catalog client may be configured with client credentials from the OAuth2 Authorization flow. This client would exchange its client ID and secret for an access token using the client credentials request with this endpoint (1). Subsequent requests would then use that access token.</p>
-<p>Some clients may also handle sessions that have additional user context. These clients would use the token exchange flow to exchange a user token (the &quot;subject&quot; token) from the session for a more specific access token for that user, using the catalog&#39;s access token as the &quot;actor&quot; token (2). The user ID token is the &quot;subject&quot; token and can be any token type allowed by the OAuth2 token exchange flow, including a unsecur [...]
-<p>Clients may also use the token exchange flow to refresh a token that is about to expire by sending a token exchange request (3). The request&#39;s &quot;subject&quot; token should be the expiring token. This request should use the subject token in the &quot;Authorization&quot; header.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Exchange credentials for a token using the OAuth2 client credentials flow or token exchange.</p>
-<p>This endpoint is used for three purposes -</p>
-<ol>
-<li>To exchange client credentials (client ID and secret) for an access token This uses the client credentials flow.</li>
-<li>To exchange a client token and an identity token for a more specific access token This uses the token exchange flow.</li>
-<li>To exchange an access token for one with the same claims and a refreshed expiration period This uses the token exchange flow.</li>
-</ol>
-<p>For example, a catalog client may be configured with client credentials from the OAuth2 Authorization flow. This client would exchange its client ID and secret for an access token using the client credentials request with this endpoint (1). Subsequent requests would then use that access token.</p>
-<p>Some clients may also handle sessions that have additional user context. These clients would use the token exchange flow to exchange a user token (the "subject" token) from the session for a more specific access token for that user, using the catalog's access token as the "actor" token (2). The user ID token is the "subject" token and can be any token type allowed by the OAuth2 token exchange flow, including a unsecured JWT token with a sub claim. Thi [...]
-<p>Clients may also use the token exchange flow to refresh a token that is about to expire by sending a token exchange request (3). The request's "subject" token should be the expiring token. This request should use the subject token in the "Authorization" header.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_Beare [...]
-<p>This can be sent in the request body, but OAuth2 recommends sending it in a Basic Authorization header.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Client ID</p>
-<p>This can be sent in the request body, but OAuth2 recommends sending it in a Basic Authorization header.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="client_secret" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">client_secret</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><div html="<p>Client secret</p>
-<p>This can be sent in the request body, but OAuth2 recommends sending it in a Basic Authorization header.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Client secret</p>
-<p>This can be sent in the request body, but OAuth2 recommends sending it in a Basic Authorization header.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>OAuth2 token response for client credentials or token exchange</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>OAuth2 token response for client credentials or token exchange</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>OAuth2 error response</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>OAuth2 error response</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>OAuth2 error response</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>OAuth2 error response</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>OAuth2 error response</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>OAuth2 error response</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/oauth/tokens</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></p [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/oauth/tokens</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/oauth/tokens</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/oauth/tokens</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R4staa:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R4staa:0" tabindex [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>List all namespaces at a certain level, optionally starting from a given parent namespace. If table accounting.tax.paid.info exists, using 'SELECT NAMESPACE IN accounting' would translate into <code>GET /namespaces?parent=accounting</code> and must return a namespace, ["accounting", "tax"] only. Using 'SELECT NAMESPACE IN accounting.tax' would translate into <code>GET /namespaces?parent=accounting%1Ftax</c [...]
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">query<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="pageToken" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">pageToken</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string or null</span><span [...]
-Servers that support pagination should identify the <code>pageToken</code> parameter and return a <code>next-page-token</code> in the response if there are more results available. After the initial request, the value of <code>next-page-token</code> from each response must be used as the <code>pageToken</code> parameter value for the next request. The server must return <code>null</code> value for the <code>next-page-token [...]
-Servers that support pagination must return all results in a single response with the value of <code>next-page-token</code> set to <code>null</code> if the query parameter <code>pageToken</code> is not set in the request.
-Servers that do not support pagination should ignore the <code>pageToken</code> parameter and return all results in a single response. The <code>next-page-token</code> must be omitted from the response.
-Clients must interpret either <code>null</code> or missing response value of <code>next-page-token</code> as the end of the listing results.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An opaque token that allows clients to make use of pagination for list APIs (e.g. ListTables). Clients may initiate the first paginated request by sending an empty query parameter <code>pageToken</code> to the server.
-Servers that support pagination should identify the <code>pageToken</code> parameter and return a <code>next-page-token</code> in the response if there are more results available. After the initial request, the value of <code>next-page-token</code> from each response must be used as the <code>pageToken</code> parameter value for the next request. The server must return <code>null</code> value for the <code>next-page-token</code> in the last response.
-Servers that support pagination must return all results in a single response with the value of <code>next-page-token</code> set to <code>null</code> if the query parameter <code>pageToken</code> is not set in the request.
-Servers that do not support pagination should ignore the <code>pageToken</code> parameter and return all results in a single response. The <code>next-page-token</code> must be omitted from the response.
-Clients must interpret either <code>null</code> or missing response value of <code>next-page-token</code> as the end of the listing results.</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="pageSize" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">pageSize</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">integer</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -->>= 1<!-- --> </span></span></div> <div><div html="<p>For servers th [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>For servers that support pagination, this signals an upper bound of the number of results that a client will receive. For servers that do not support pagination, clients may receive results larger than the indicated <code>pageSize</code>.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="parent" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">parent</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span class="sc-CNKsk sc-cSzYSJ hPAOR YZnqP">parent=accounting% [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional namespace, underneath which to list namespaces. If not provided or empty, all top-level namespaces should be listed. If parent is a multipart namespace, the parts must be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>A list of namespaces</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A list of namespaces</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - Namespace provided in the <code>parent</code> query parameter is not found.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - Namespace provided in the <code>parent</code> query parameter is not found.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "> [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e8dqa:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2e8dqa:0" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Create a namespace, with an optional set of properties. The server might also add properties, such as <code>last_modified_time</code> etc.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">na [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Reference to one or more levels of a namespace</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="properties" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand properties"><span class="property-name">properties</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td>< [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Configured string to string map of properties for the namespace</p>
-</div></div></div></td></tr></tbody></table><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>Represents a successful call to create a namespace. Returns the namespace [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Represents a successful call to create a namespace. Returns the namespace created, as well as any properties that were stored for the namespace, including those the server might have added. Implementations are not required to support namespace properties.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">406<!-- --> </strong><div html="<p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - The namespace already exists</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - The namespace already exists</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2a8lqa:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2a8lqa [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Return all stored metadata properties for a given namespace</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>Returns a namespace, as well as any properties stored on the namesp [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Returns a namespace, as well as any properties stored on the namespace if namespace properties are supported by the server.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - Namespace not found</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - Namespace not found</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e8tqa:0" aria-selected="true" aria-disabled="false" aria-controls="pane [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Check if a namespace exists. The response does not contain a body.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - Namespace not found</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - Namespace not found</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="head" class="sc-txhaY gkqdIW http-verb head">head</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab:R2e95qa:0" aria-selected="true" aria-disabled="false" aria-controls="panel: [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - Namespace to delete does not exist.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - Namespace to delete does not exist.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab:R2e9dqa:0" aria-selected="true" aria-disabled="false" aria-controls="panel: [...]
-Properties that are not in the request are not modified or removed by this call.
-Server implementations are not required to support namespace properties.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Set and/or remove properties on a namespace. The request body specifies a list of properties to remove and a map of key value pairs to update.
-Properties that are not in the request are not modified or removed by this call.
-Server implementations are not required to support namespace properties.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="removals" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">rem [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>JSON data response for a synchronous update properties request.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - Namespace not found</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - Namespace not found</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">406<!-- --> </strong><div html="<p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">422<!-- --> </strong><div html="<p>Unprocessable Entity - A property key was included in both <code>removals</code> and <code>updates</code></p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unprocessable Entity - A property key was included in both <code>removals</code> and <code>updates</code></p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/properties</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/properties</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/properties</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/properties</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2a9lqa:0" aria-selected="true" aria-disabled="false" aria- [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Return all table identifiers under this namespace</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">query<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="pageToken" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">pageToken</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string or null</span><span [...]
-Servers that support pagination should identify the <code>pageToken</code> parameter and return a <code>next-page-token</code> in the response if there are more results available. After the initial request, the value of <code>next-page-token</code> from each response must be used as the <code>pageToken</code> parameter value for the next request. The server must return <code>null</code> value for the <code>next-page-token [...]
-Servers that support pagination must return all results in a single response with the value of <code>next-page-token</code> set to <code>null</code> if the query parameter <code>pageToken</code> is not set in the request.
-Servers that do not support pagination should ignore the <code>pageToken</code> parameter and return all results in a single response. The <code>next-page-token</code> must be omitted from the response.
-Clients must interpret either <code>null</code> or missing response value of <code>next-page-token</code> as the end of the listing results.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An opaque token that allows clients to make use of pagination for list APIs (e.g. ListTables). Clients may initiate the first paginated request by sending an empty query parameter <code>pageToken</code> to the server.
-Servers that support pagination should identify the <code>pageToken</code> parameter and return a <code>next-page-token</code> in the response if there are more results available. After the initial request, the value of <code>next-page-token</code> from each response must be used as the <code>pageToken</code> parameter value for the next request. The server must return <code>null</code> value for the <code>next-page-token</code> in the last response.
-Servers that support pagination must return all results in a single response with the value of <code>next-page-token</code> set to <code>null</code> if the query parameter <code>pageToken</code> is not set in the request.
-Servers that do not support pagination should ignore the <code>pageToken</code> parameter and return all results in a single response. The <code>next-page-token</code> must be omitted from the response.
-Clients must interpret either <code>null</code> or missing response value of <code>next-page-token</code> as the end of the listing results.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="pageSize" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">pageSize</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">integer</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -->>= 1<!-- --> </span></span></div> <div><div html="<p>For serve [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>For servers that support pagination, this signals an upper bound of the number of results that a client will receive. For servers that do not support pagination, clients may receive results larger than the indicated <code>pageSize</code>.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>A list of table identifiers</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A list of table identifiers</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - The namespace specified does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - The namespace specified does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2e9tqa:0" aria-selected="true" aria-disabled="false" aria-control [...]
-<p>If <code>stage-create</code> is false, the table is created immediately.</p>
-<p>If <code>stage-create</code> is true, the table is not created, but table metadata is initialized and returned. The service should prepare as needed for a commit to the table commit endpoint to complete the create transaction. The client uses the returned metadata to begin a transaction. To commit the transaction, the client sends all create and subsequent changes to the table commit route. Changes from the table create operation include changes like AddSchemaUpdate [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Create a table or start a create transaction, like atomic CTAS.</p>
-<p>If <code>stage-create</code> is false, the table is created immediately.</p>
-<p>If <code>stage-create</code> is true, the table is not created, but table metadata is initialized and returned. The service should prepare as needed for a commit to the table commit endpoint to complete the create transaction. The client uses the returned metadata to begin a transaction. To commit the transaction, the client sends all create and subsequent changes to the table commit route. Changes from the table create operation include changes like AddSchemaUpdate and SetCurrentSche [...]
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">header<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="X-Iceberg-Access-Delegation" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">X-Iceberg-Access-Delegation</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkEN [...]
-<p>Specific properties and handling for <code>vended-credentials</code> is documented in the <code>LoadTableResult</code> schema section of this spec document.</p>
-<p>The protocol and specification for <code>remote-signing</code> is documented in the <code>s3-signer-open-api.yaml</code> OpenApi spec in the <code>aws</code> module.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Optional signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms.</p>
-<p>Specific properties and handling for <code>vended-credentials</code> is documented in the <code>LoadTableResult</code> schema section of this spec document.</p>
-<p>The protocol and specification for <code>remote-signing</code> is documented in the <code>s3-signer-open-api.yaml</code> OpenApi spec in the <code>aws</code> module.</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="name" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">name</s [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Table metadata result after creating a table</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - The namespace specified does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - The namespace specified does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - The table already exists</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - The table already exists</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2aa5qa:0" aria-selected="true" aria-disabled="false" aria-cont [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Register a table using given metadata file location.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="name" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">name</s [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Table metadata result when loading a table</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - The namespace specified does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - The namespace specified does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - The table already exists</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - The table already exists</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/register</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/register</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/register</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/register</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2aadqa:0" aria-selected="true" aria-disabled="false" aria-co [...]
-<p>The response contains both configuration and table metadata. The configuration, if non-empty is used as additional configuration for the table that overrides catalog configuration. For example, this configuration may change the FileIO implementation to be used for the table.</p>
-<p>The response also contains the table&#39;s full metadata, matching the table metadata JSON file.</p>
-<p>The catalog configuration may contain credentials that should be used for subsequent requests for the table. The configuration key &quot;token&quot; is used to pass an access token to be used as a bearer token for table requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, &quot;urn:ietf:params:oauth:token-type:jwt=<JWT-token>&quot;.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Load a table from the catalog.</p>
-<p>The response contains both configuration and table metadata. The configuration, if non-empty is used as additional configuration for the table that overrides catalog configuration. For example, this configuration may change the FileIO implementation to be used for the table.</p>
-<p>The response also contains the table's full metadata, matching the table metadata JSON file.</p>
-<p>The catalog configuration may contain credentials that should be used for subsequent requests for the table. The configuration key "token" is used to pass an access token to be used as a bearer token for table requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, "urn:ietf:params:oauth:token-type:jwt=<JWT-token>".</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="table" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">table</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A table name</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">query<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="snapshots" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">snapshots</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div><d [...]
-Default if no param is provided is <code>all</code>.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>The snapshots to return in the body of the metadata. Setting the value to <code>all</code> would return the full set of snapshots currently valid for the table. Setting the value to <code>refs</code> would load all snapshots referenced by branches or tags.
-Default if no param is provided is <code>all</code>.</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">header<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="X-Iceberg-Access-Delegation" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">X-Iceberg-Access-Delegation</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkEN [...]
-<p>Specific properties and handling for <code>vended-credentials</code> is documented in the <code>LoadTableResult</code> schema section of this spec document.</p>
-<p>The protocol and specification for <code>remote-signing</code> is documented in the <code>s3-signer-open-api.yaml</code> OpenApi spec in the <code>aws</code> module.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Optional signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms.</p>
-<p>Specific properties and handling for <code>vended-credentials</code> is documented in the <code>LoadTableResult</code> schema section of this spec document.</p>
-<p>The protocol and specification for <code>remote-signing</code> is documented in the <code>s3-signer-open-api.yaml</code> OpenApi spec in the <code>aws</code> module.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>Table metadata result when loading a table</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Table metadata result when loading a table</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, table to load does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, table to load does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables/{table}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2ealqa:0" aria-selected="true" aria-disabled="false" aria [...]
-<p>Commits have two parts, requirements and updates. Requirements are assertions that will be validated before attempting to make and commit changes. For example, <code>assert-ref-snapshot-id</code> will check that a named ref&#39;s snapshot ID has a certain value.</p>
-<p>Updates are changes to make to table metadata. For example, after asserting that the current main ref is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new snapshot id.</p>
-<p>Create table transactions that are started by createTable with <code>stage-create</code> set to true are committed using this route. Transactions should include all changes to the table, including table initialization, like AddSchemaUpdate and SetCurrentSchemaUpdate. The <code>assert-create</code> requirement is used to ensure that the table was not created concurrently.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Commit updates to a table.</p>
-<p>Commits have two parts, requirements and updates. Requirements are assertions that will be validated before attempting to make and commit changes. For example, <code>assert-ref-snapshot-id</code> will check that a named ref's snapshot ID has a certain value.</p>
-<p>Updates are changes to make to table metadata. For example, after asserting that the current main ref is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new snapshot id.</p>
-<p>Create table transactions that are started by createTable with <code>stage-create</code> set to true are committed using this route. Transactions should include all changes to the table, including table initialization, like AddSchemaUpdate and SetCurrentSchemaUpdate. The <code>assert-create</code> requirement is used to ensure that the table was not created concurrently.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="table" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">table</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A table name</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="identifier" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria [...]
-The table metadata JSON is returned in the metadata field. The corresponding file location of table metadata must be returned in the metadata-location field. Clients can check whether metadata has changed by comparing metadata locations.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Response used when a table is successfully updated.
-The table metadata JSON is returned in the metadata field. The corresponding file location of table metadata must be returned in the metadata-location field. Clients can check whether metadata has changed by comparing metadata locations.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, table to load does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, table to load does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - CommitFailedException, one or more requirements failed. The client may retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - CommitFailedException, one or more requirements failed. The client may retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">500<!-- --> </strong><div html="<p>An unknown server-side problem occurred; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>An unknown server-side problem occurred; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">502<!-- --> </strong><div html="<p>A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">504<!-- --> </strong><div html="<p>A server-side gateway timeout occurred; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side gateway timeout occurred; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable on the client.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable on the client.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables/{table}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2aatqa:0" aria-selected="true" aria-disabled="false" a [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Remove a table from the catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="table" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">table</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A table name</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">query<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="purgeRequested" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">purgeRequested</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">boolean</sp [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Whether the user requested to purge the underlying table's data and metadata</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, Table to drop does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, Table to drop does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables/{table}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab:R2eb5qa:0" aria-selected="true" aria-disabled="false" aria-c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Check if a table exists within a given namespace. The response does not contain a body.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="table" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">table</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A table name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, Table not found</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, Table not found</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="head" class="sc-txhaY gkqdIW http-verb head">head</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables/{table}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab:R2ebdqa:0" aria-selected="true" aria-disabled="false" aria-c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Rename a table from one identifier to another. It's valid to move a table across namespaces, but the server implementation is not required to support it.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>Current table identifier to rename and new table identifier to rename to</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Current table identifier to rename and new table identifier to rename to</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="source" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand source"><span class="property-name">source</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, Table to rename does not exist - NoSuchNamespaceException, The target namespace of the new table identifier do [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, Table to rename does not exist - NoSuchNamespaceException, The target namespace of the new table identifier does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">406<!-- --> </strong><div html="<p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - The target identifier to rename to already exists as a table or view</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - The target identifier to rename to already exists as a table or view</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/tables/rename</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/tables/rename</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/tables/rename</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/tables/rename</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2ablqa:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2ab [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="table" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">table</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A table name</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>The request containing the metrics report to be sent</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The request containing the metrics report to be sent</p>
-</div><div><span class="sc-geXuza ilfgNd"> <!-- -->Any of<!-- --> </span><div class="sc-eUlrpB NyAuz"><button class="sc-hJRrWL ksvMOm">Apache_Iceberg_REST_Catalog_API_ScanReport</button><button class="sc-hJRrWL dHGzEi">Apache_Iceberg_REST_Catalog_API_CommitReport</button></div><div></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="table-name" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">table-na [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, table to load does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, table to load does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2abtqa:0" aria-selected="true" aria-disabled=" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="table" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">table</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A table name</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>The request containing the notification to be sent.
-For each table, Polaris will reject any notification where the timestamp in the request body is older than or equal to the most recent time Polaris has already processed for the table. The responsibility of ensuring the correct order of timestamps for a sequence of notifications lies with the caller of the API. This includes managing potential clock skew or inconsistencies when notifications are sent from multiple sources.
-A VALIDATE request behaves like a dry-run of a CREATE or UPDATE request up to but not including loading the contents of a metadata file; this includes validations of permissions, the specified metadata path being within ALLOWED_LOCATIONS, having an EXTERNAL catalog, etc. The intended use case for a VALIDATE notification is to allow a remote catalog to pre-validate the general settings of a receiving catalog against an intended new table location before possibly creating a table intended [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>The request containing the notification to be sent.
-For each table, Polaris will reject any notification where the timestamp in the request body is older than or equal to the most recent time Polaris has already processed for the table. The responsibility of ensuring the correct order of timestamps for a sequence of notifications lies with the caller of the API. This includes managing potential clock skew or inconsistencies when notifications are sent from multiple sources.
-A VALIDATE request behaves like a dry-run of a CREATE or UPDATE request up to but not including loading the contents of a metadata file; this includes validations of permissions, the specified metadata path being within ALLOWED_LOCATIONS, having an EXTERNAL catalog, etc. The intended use case for a VALIDATE notification is to allow a remote catalog to pre-validate the general settings of a receiving catalog against an intended new table location before possibly creating a table intended [...]
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="notification-type" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">notification-type</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span><span class="sc-CNKsk sc-gcfzXs hPAOR dnQByT" [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, table to load does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, table to load does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - The timestamp of the received notification is older than or equal to the most recent timestamp Polaris has already processed for the [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - The timestamp of the received notification is older than or equal to the most recent timestamp Polaris has already processed for the specified table.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/tables/{table}/notifications</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}/notifications</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}/notifications</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/tables/{table}/notifications</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2ac5qa:0" aria-selected="true" aria-disa [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>Commit updates to multiple tables in an atomic operation</p>
-<p>A commit for a single table consists of a table identifier with requirements and updates. Requirements are assertions that will be validated before attempting to make and commit changes. For example, <code>assert-ref-snapshot-id</code> will check that a named ref&#39;s snapshot ID has a certain value.</p>
-<p>Updates are changes to make to table metadata. For example, after asserting that the current main ref is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new snapshot id.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Commit updates to multiple tables in an atomic operation</p>
-<p>A commit for a single table consists of a table identifier with requirements and updates. Requirements are assertions that will be validated before attempting to make and commit changes. For example, <code>assert-ref-snapshot-id</code> will check that a named ref's snapshot ID has a certain value.</p>
-<p>Updates are changes to make to table metadata. For example, after asserting that the current main ref is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new snapshot id.</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class="last "><td kind="field" title="table-changes" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand table-changes"><span class="property-name">table-changes</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></pol [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchTableException, table to load does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchTableException, table to load does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - CommitFailedException, one or more requirements failed. The client may retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - CommitFailedException, one or more requirements failed. The client may retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">500<!-- --> </strong><div html="<p>An unknown server-side problem occurred; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>An unknown server-side problem occurred; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">502<!-- --> </strong><div html="<p>A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">504<!-- --> </strong><div html="<p>A server-side gateway timeout occurred; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side gateway timeout occurred; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable on the client.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable on the client.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/transactions/commit</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/transactions/commit</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/transactions/commit</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/transactions/commit</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2acdqa:0" aria-selected="true" aria-disabled="false" aria-controls="pane [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Return all view identifiers under this namespace</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><div><h5 class="sc-dpBQxM eJAAZj">query<!-- --> Parameters</h5><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="pageToken" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">pageToken</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string or null</span><span [...]
-Servers that support pagination should identify the <code>pageToken</code> parameter and return a <code>next-page-token</code> in the response if there are more results available. After the initial request, the value of <code>next-page-token</code> from each response must be used as the <code>pageToken</code> parameter value for the next request. The server must return <code>null</code> value for the <code>next-page-token [...]
-Servers that support pagination must return all results in a single response with the value of <code>next-page-token</code> set to <code>null</code> if the query parameter <code>pageToken</code> is not set in the request.
-Servers that do not support pagination should ignore the <code>pageToken</code> parameter and return all results in a single response. The <code>next-page-token</code> must be omitted from the response.
-Clients must interpret either <code>null</code> or missing response value of <code>next-page-token</code> as the end of the listing results.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An opaque token that allows clients to make use of pagination for list APIs (e.g. ListTables). Clients may initiate the first paginated request by sending an empty query parameter <code>pageToken</code> to the server.
-Servers that support pagination should identify the <code>pageToken</code> parameter and return a <code>next-page-token</code> in the response if there are more results available. After the initial request, the value of <code>next-page-token</code> from each response must be used as the <code>pageToken</code> parameter value for the next request. The server must return <code>null</code> value for the <code>next-page-token</code> in the last response.
-Servers that support pagination must return all results in a single response with the value of <code>next-page-token</code> set to <code>null</code> if the query parameter <code>pageToken</code> is not set in the request.
-Servers that do not support pagination should ignore the <code>pageToken</code> parameter and return all results in a single response. The <code>next-page-token</code> must be omitted from the response.
-Clients must interpret either <code>null</code> or missing response value of <code>next-page-token</code> as the end of the listing results.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="pageSize" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">pageSize</span></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">integer</span><span> <span class="sc-CNKsk sc-fIfZzT hPAOR diHVZf"> <!-- -->>= 1<!-- --> </span></span></div> <div><div html="<p>For serve [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>For servers that support pagination, this signals an upper bound of the number of results that a client will receive. For servers that do not support pagination, clients may receive results larger than the indicated <code>pageSize</code>.</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>A list of table identifiers</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A list of table identifiers</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - The namespace specified does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - The namespace specified does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/views</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 1 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/views</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2eclqa:0" aria-selected="true" aria-disabled="false" aria-controls [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Create a view in the given namespace.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="name" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">name</s [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>View metadata result when loading a view</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - The namespace specified does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - The namespace specified does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - The view already exists</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - The view already exists</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/views</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/views</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2actqa:0" aria-selected="true" aria-disabled="false" aria-contr [...]
-<p>The response contains both configuration and view metadata. The configuration, if non-empty is used as additional configuration for the view that overrides catalog configuration.</p>
-<p>The response also contains the view&#39;s full metadata, matching the view metadata JSON file.</p>
-<p>The catalog configuration may contain credentials that should be used for subsequent requests for the view. The configuration key &quot;token&quot; is used to pass an access token to be used as a bearer token for view requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, &quot;urn:ietf:params:oauth:token-type:jwt=<JWT-token>&quot;.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Load a view from the catalog.</p>
-<p>The response contains both configuration and view metadata. The configuration, if non-empty is used as additional configuration for the view that overrides catalog configuration.</p>
-<p>The response also contains the view's full metadata, matching the view metadata JSON file.</p>
-<p>The catalog configuration may contain credentials that should be used for subsequent requests for the view. The configuration key "token" is used to pass an access token to be used as a bearer token for view requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, "urn:ietf:params:oauth:token-type:jwt=<JWT-token>".</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="view" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">view</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span cl [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A view name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu cnBopK"><svg class="sc-cHqXqK hmCwJW" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">200<!-- --> </strong><div html="<p>View metadata result when loading a view</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>View metadata result when loading a view</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchViewException, view to load does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchViewException, view to load does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="get" class="sc-txhaY IVbnb http-verb get">get</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/views/{view}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R2ed5qa:0" aria-selected="true" aria-disabled="false" aria-c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Commit updates to a view.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="view" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">view</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span cl [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A view name</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"></div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="identifier" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>View metadata result when loading a view</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchViewException, view to load does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchViewException, view to load does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - CommitFailedException. The client may retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - CommitFailedException. The client may retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">500<!-- --> </strong><div html="<p>An unknown server-side problem occurred; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>An unknown server-side problem occurred; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">502<!-- --> </strong><div html="<p>A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">504<!-- --> </strong><div html="<p>A server-side gateway timeout occurred; the commit state is unknown.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side gateway timeout occurred; the commit state is unknown.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable on the client.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable on the client.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/views/{view}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2addqa:0" aria-selected="true" aria-disabled="false" ari [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Remove a view from the catalog</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="view" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">view</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span cl [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A view name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchViewException, view to drop does not exist</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchViewException, view to drop does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="delete" class="sc-txhaY gtVIQH http-verb delete">delete</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/views/{view}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab:R2edlqa:0" aria-selected="true" aria-disabled="false" aria-con [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Check if a view exists within a given namespace. This request does not return a response body.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr><tr class=""><td kind="field" title="namespace" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">namespace</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <span class="sc-CNKsk hPAOR"> <!-- -->Examples<!-- -->: </span><ul clas [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A namespace identifier as a single string. Multipart namespace parts should be separated by the unit separator (<code>0x1F</code>) byte.</p>
-</div></div></div></td></tr><tr class="last "><td kind="field" title="view" class="sc-ovuCP sc-eauhAA iyKqKI iQpMVv"><span class="sc-gQaihK kPDxnK"></span><span class="property-name">view</span><div class="sc-CNKsk sc-hGZxvd hPAOR feFoaC">required</div></td><td class="sc-fFoeYl cHXoZJ"><div><div><span class="sc-CNKsk sc-cqgMZH hPAOR dWKYKL"></span><span class="sc-CNKsk sc-gQkENW hPAOR bIEFFi">string</span></div> <div><span class="sc-CNKsk hPAOR"> <!-- -->Example:<!-- --> </span> <span cl [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>A view name</p>
-</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-edsqmr dheqgt">Responses</h3><div><button class="sc-gohMHu kQgYHQ" disabled=""><strong class="sc-bKXUjo beMorW">204<!-- --> </strong><div html="<p>Success, no content</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Bad Request</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Bad Request</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized</p>
-</div></button></div><div><button class="sc-gohMHu ktPKSm" disabled=""><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="head" class="sc-txhaY gkqdIW http-verb head">head</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/namespaces/{namespace}/views/{view}</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8. [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/namespaces/{namespace}/views/{view}</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Response samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab:R2edtqa:0" aria-selected="true" aria-disabled="false" aria-con [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Rename a view from one identifier to another. It's valid to move a view across namespaces, but the server implementation is not required to support it.</p>
-</div></div><div class="sc-hGNhLO dyzdIR"><div class="sc-jWJSSj jXOga-d"><h5 class="sc-dpBQxM sc-khdDuB eJAAZj ffSXYc">Authorizations:</h5><svg class="sc-cHqXqK bEpxpV" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-iCjFWQ gQOXJB"><span class="sc-irPVuy eqXCjK"><span class="sc-bqvdXA dIXVzO"><i>Apache_Iceberg_REST_Catalog_API_OAuth [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>An optional prefix in the path</p>
-</div></div></div></td></tr></tbody></table></div><h5 class="sc-dpBQxM eJAAZj">Request Body schema: <span class="sc-dhCplO khtVmz">application/json</span><div class="sc-CNKsk sc-hGZxvd sc-kLJHhQ hPAOR feFoaC fRACBr">required</div></h5><div html="<p>Current view identifier to rename and new view identifier to rename to</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK"><p>Current view identifier to rename and new view identifier to rename to</p>
-</div><table class="sc-dprtRQ eNFxPe"><tbody><tr class=""><td kind="field" title="source" class="sc-ovuCP sc-eauhAA sc-hsfCcR iyKqKI iQpMVv buGHPE"><span class="sc-gQaihK kPDxnK"></span><button aria-label="expand source"><span class="property-name">source</span><svg class="sc-cHqXqK ccTkAM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div c [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Success, no content</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">400<!-- --> </strong><div html="<p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as inv [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">401<!-- --> </strong><div html="<p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Unauthorized. Authentication is required and has failed or has not yet been provided.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">403<!-- --> </strong><div html="<p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Forbidden. Authenticated user does not have the necessary permissions.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">404<!-- --> </strong><div html="<p>Not Found - NoSuchViewException, view to rename does not exist - NoSuchNamespaceException, The target namespace of the new identifier does not e [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Found - NoSuchViewException, view to rename does not exist - NoSuchNamespaceException, The target namespace of the new identifier does not exist</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">406<!-- --> </strong><div html="<p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Not Acceptable / Unsupported Operation. The server does not support this operation.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">409<!-- --> </strong><div html="<p>Conflict - The target identifier to rename to already exists as a table or view</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Conflict - The target identifier to rename to already exists as a table or view</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">419<!-- --> </strong><div html="<p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>Credentials have timed out. If possible, the client should refresh credentials and retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">503<!-- --> </strong><div html="<p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>The service is not ready to handle the request. The client should wait and retry.</p>
-<p>The service may additionally send a Retry-After header to indicate when to retry.</p>
-</div></button></div><div><button class="sc-gohMHu fhwTMk"><svg class="sc-cHqXqK kVOWjS" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bKXUjo beMorW">5XX<!-- --> </strong><div html="<p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in indi [...]
-" class="sc-epnzzT sc-eMwmJz drsioI dWZUhK sc-drVZOg jtjIAv"><p>A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.</p>
-</div></button></div></div></div><div class="sc-ivxoEo sc-ghWlax gOjFGl oECKJ"><div class="sc-duWCru dWZoid"><button class="sc-iPHsxv ebcgbH"><span type="post" class="sc-txhaY cpnVKx http-verb post">post</span><span class="sc-etPtWW iqHzp">/v1/{prefix}/views/rename</span><svg class="sc-cHqXqK fmmJjS" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 [...]
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/api/management/v1</span>/v1/{prefix}/views/rename</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Server URL when the port can be inferred from the scheme</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Server URL when the port can be inferred from the scheme</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}/{basePath}</span>/v1/{prefix}/views/rename</div></div></div><div class="sc-dwGkES evaCJX"><div html="<p>Generic base server URL, with all parts configurable</p>
-" class="sc-epnzzT sc-eMwmJz drsioI ewnBNs"><p>Generic base server URL, with all parts configurable</p>
-</div><div tabindex="0" role="button"><div class="sc-hSyjfr gufODt"><span>{scheme}://{host}:{port}/{basePath}</span>/v1/{prefix}/views/rename</div></div></div></div></div><div><h3 class="sc-keTIit zvQzH"> <!-- -->Request samples<!-- --> </h3><div class="sc-bMTdWJ fbQvpV" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab:R2ae5qa:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R2ae5 [...]
- <script>
- const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.0","info":{"title":"Apache Polaris (Incubating) Documentation","x-logo":{"url":"./img/logos/polaris-catalog-stacked-logo.svg","altText":"Apache Polaris Logo"},"description":"<!--\n Licensed to the Apache Software Foundation (ASF) under one\n or more contributor license agreements. See the NOTICE file\n distributed with this work for additional information\n regarding copyright ownership. The ASF [...]
-
- var container = document.getElementById('redoc');
- Redoc.hydrate(__redoc_state, container);
-
- </script>
-</body>
-
-</html>
diff --git a/.github/workflows/check-md-link.yml b/site/.gitignore
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/.gitignore
index cb0c0d34..daee2458 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/.gitignore
@@ -17,28 +17,9 @@
# under the License.
#
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+content/releases/
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+# Created/generated when running Hugo on the local host
+.hugo_build.lock
+public/
+resources/_gen/
diff --git a/site/README.md b/site/README.md
new file mode 100644
index 00000000..c21f3af6
--- /dev/null
+++ b/site/README.md
@@ -0,0 +1,210 @@
+<!--
+ 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.
+-->
+
+Links:
+* Hugo: https://gohugo.io/
+* Docsy theme: https://www.docsy.dev/docs/ and https://github.com/google/docsy/
+* Asciidoc help: https://docs.asciidoctor.org/asciidoc/latest/
+* Fontawesome logos/icons: https://fontawesome.com/v6/search?o=r&m=free
+
+# Quickstart
+
+Just run the following command to let Hugo serve files from the Polaris `site/`.
+```bash
+site/bin/run-hugo-in-docker.sh
+```
+
+Then point your browser to http://localhost:1313/
+
+Then edit files from your IDE - you will see the changes in your browser. When changing the site structure,
+it is often necessary to restart Hugo - just run `site/bin/run-hugo-in-docker.sh` again.
+
+# Building the static site
+
+## Building a static site - served at http://localhost:8080/
+
+This builds the static Apache Polaris site into `site/build/localhost-site` to be served using a http daemon.
+The base URL will be `https://localhost:8080/`, which is the URL to be used when running the command below.
+(Note: static sites generated by Hugo do **not** work when opening the files from the local file system!)
+
+Run
+```bash
+site/bin/create-static-site.sh --local
+```
+
+## Building the Apache Polaris site
+
+This builds the static Apache Polaris site into `site/build/apache-site`. The base URL will be
+`https://polaris.apache.org/` (as configured in `hugo.yaml`).
+(Note: static sites generated by Hugo do **not** work when opening the files from the local file system!)
+
+Run
+```bash
+site/bin/create-static-site.sh
+```
+
+# Versioned docs
+
+(See [`/releases/` page](content/releases/_index.adoc) as well.)
+
+The idea here is that docs of releases live in either a separate branch or a separate Git repo.
+
+The `/releases` folder would _not_ be in the main Polaris repository (at least not in any code branch). It would be
+mounted either via `git worktree` or `git clone`. Building and testing the site locally works without the `/releases`
+folder. For developers, it is probably much easier to have a separate branch in the main Polaris GitHub repository
+and leverage Git worktrees.
+
+Docs for the current code branch (e.g. `main` branch) are maintained in the `/in-dev/unreleased` folder. While we
+could maintain the docs right in the `/in-dev` folder, having the in-dev docs in `/in-dev/unreleased` provides the
+ability to use relative links that still work when the docs are in an `/releases/x.y.z` folder (think: links like
+`../../guides/foo-bar.md`).
+
+Within a release's versioned docs folder, the release version number can be included in the markdown using the
+custom Hugo shortcode `{{< releaseVersion >}}`.
+
+## Git worktree
+
+The `content/releases/` folder is maintained in the separate `versioned-docs` branch. The whole `content/releases/`
+folder is `.gitignore`d in the main source tree, otherwise Git complains about `content/releases` not being versioned
+and if added to the main source tree (possible, Git allows that), the `git worktree add` below would complain about
+the existing directory.
+
+### Initial setup
+
+```bash
+cd site/
+
+cd content/releases/
+# Create a new empty branch 'versioned-docs'
+git worktree add --orphan -b versioned-docs .
+# (add some content to the content/releases/ directory - at least the "top-level" _index.adoc
+git add .
+git commit -m "Initial set of releases"
+```
+
+### Locally
+
+Use the following script to checkout the versioned release docs
+```bash
+cd site/
+# Checkout the versioned-docs branch locally
+bin/checkout-releases.sh
+```
+
+`bin/remove-releases.sh` removes the `content/releases` folder, if it does not contain uncommitted changes.
+
+## New release
+
+When a release is created, a bunch of things would happen via an automated GitHub workflow calling a shell script
+in the main source tree:
+
+1. The releases versioned docs folder is created - for example: `/releases/0.1.0`
+2. The contents of the `/in-dev/unreleased` folder are copied into the directory for the new release.
+ 1. The file `release_index.md` would be copied as `_index.md` into the new release's
+ versioned docs folder, the `/in-dev/unreleased/_index.md` would not end in the release's versioned docs folder.
+3. The front-matter of the release's `_index.md` would be rewritten.
+4. The new release is added to `params.active_releases` in `hugo.yaml`
+5. When publishing a new release for the most recent major/minor version:
+ 1. The new release's `_index.md` would be generated with `exclude_search: false`
+ 2. The front-matter of the previous release's `_index.md` would be updated,
+ `exclude_search: false` changed to `exclude_search: true`.
+6. When publishing a new release for an older major/minor version:
+ 1. The new release's `_index.md` would be generated with `exclude_search: true`
+7. Changes to the site added and committed to Git
+8. Changes pushed to GitHub - both the `main` and the `versioned-docs` folder
+9. The last step triggers the job to publish the web site
+
+# Web site publishing (production)
+
+To build a site locally (not required for `hugo serve -D`, but required for `hugo`) - with your local user.
+
+This would be a GitHub workflow.
+
+1. Triggered when the `main` branch or the `versioned-docs` branch changes.
+2. Checkout the `main` branch
+3. ```bash
+ cd site/
+ ```
+4. ```bash
+ git worktree add content/releases/ versioned-docs
+ ```
+5. ```bash
+ npm i -D postcss postcss-cli autoprefixer
+ ```
+6. ```bash
+ rm -rf public ; hugo --minify --gc
+ ```
+7. Publish the contents of the `public` folder to the website.
+
+## Test statically built web site locally
+
+The statically built web site in `public` _does not_ work when opened from the file system.
+
+Instead, do something like this:
+
+1. ```bash
+ rm -rf public ; hugo --minify --gc --baseURL http://localhost:8080/
+ (cd public/ ; http-server -p 8080 --cors)
+ ```
+2. Then use your web browser to open http://localhost:8080/
+
+# Noteworthy
+
+* The `redoc` shortcode works fine with `hugo serve` and on the static site configured via the `baseURL` in `hugo.yaml`.
+ To test the static build result locally, it is mandatory to pass the `--baseURL` option to `hugo`.
+* The embedded `redoc` looks awful with a dark theme.
+* The `swaggerui` shortcode doesn't seem to work?
+* Some changes, especially those that change the site structure, requires a restart of `hugo serve -D`. This is also
+ true when the layout for the `robots.txt` is changed.
+
+# Install Hugo + asciidoctor locally
+
+https://gohugo.io/installation/
+
+## Ubuntu
+
+To develop the site locally (aka `hugo serve -D`), install the following dependencies using the `root` user:
+```bash
+apt install hugo asciidoctor
+snap install dart-sass
+```
+
+If you want to build the static site locally as well (aka build with `hugo` + serve using another http server),
+the following dependencies are needed as well (non-root user):
+```bash
+npm i -D postcss postcss-cli autoprefixer
+npm install http-server -g
+```
+
+## macOS
+
+To develop the site locally (aka `hugo serve -D`), install the following dependencies:
+```bash
+brew install go
+brew install hugo
+brew install asciidoctor
+```
+
+If you want to build the static site locally as well (aka build with `hugo` + serve using another http server),
+the following dependencies are needed as well (non-root user):
+```bash
+brew install npm
+npm -i -D postcss postcss-cli autoprefixer
+npm install http-server -g
+```
diff --git a/site/assets/icons/logo.svg b/site/assets/icons/logo.svg
new file mode 100644
index 00000000..8b05ce23
--- /dev/null
+++ b/site/assets/icons/logo.svg
@@ -0,0 +1,48 @@
+<!--
+ 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.
+-->
+<svg viewBox="0 0 720 150" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <style>
+ @media (prefers-color-scheme: dark) {
+ .text {
+ fill: white;
+ }
+ }
+ @media (prefers-color-scheme: light) {
+ .text {
+ fill: #101010;
+ }
+ }
+ </style>
+<path d="M695.848 69.9998C695.729 68.5083 695.17 67.3449 694.17 66.5097C693.186 65.6745 691.687 65.2569 689.674 65.2569C688.391 65.2569 687.339 65.4135 686.519 65.7267C685.714 66.025 685.117 66.4351 684.729 66.9572C684.342 67.4792 684.14 68.0758 684.125 68.7469C684.095 69.2988 684.192 69.7984 684.416 70.2459C684.655 70.6784 685.028 71.0736 685.535 71.4316C686.042 71.7746 686.691 72.0878 687.481 72.3712C688.272 72.6546 689.211 72.9082 690.3 73.1319L694.059 73.9373C696.594 74.4742 698.764 [...]
+<path d="M665.254 55.6816V101.5H652.815V55.6816H665.254Z" fill="white"/>
+<path d="M610.733 101.5V55.6816H630.51C633.911 55.6816 636.886 56.3006 639.437 57.5385C641.987 58.7765 643.971 60.5588 645.388 62.8855C646.805 65.2122 647.513 68.0012 647.513 71.2527C647.513 74.5339 646.782 77.3006 645.321 79.5527C643.874 81.8049 641.838 83.5051 639.213 84.6536C636.603 85.802 633.553 86.3762 630.063 86.3762H618.25V76.7115H627.557C629.019 76.7115 630.264 76.5325 631.293 76.1745C632.337 75.8017 633.135 75.2125 633.687 74.4071C634.254 73.6017 634.537 72.5502 634.537 71.2527 [...]
+<path d="M572.494 101.5H559.07L574.194 55.6816H591.197L606.32 101.5H592.897L582.874 68.2995H582.517L572.494 101.5ZM569.988 83.4231H595.224V92.7299H569.988V83.4231Z" fill="white"/>
+<path d="M524.601 101.5V55.6816H537.04V91.4771H555.564V101.5H524.601Z" fill="white"/>
+<path d="M518.845 78.5907C518.845 83.6915 517.854 87.9945 515.87 91.4994C513.886 94.9895 511.209 97.6369 507.838 99.4415C504.468 101.231 500.709 102.126 496.563 102.126C492.387 102.126 488.613 101.224 485.242 99.4192C481.887 97.5996 479.217 94.9447 477.233 91.4547C475.264 87.9497 474.28 83.6617 474.28 78.5907C474.28 73.4898 475.264 69.1944 477.233 65.7043C479.217 62.1994 481.887 59.552 485.242 57.7622C488.613 55.9575 492.387 55.0552 496.563 55.0552C500.709 55.0552 504.468 55.9575 507.838 [...]
+<path d="M433.115 101.5V55.6816H452.892C456.293 55.6816 459.268 56.3528 461.819 57.6951C464.369 59.0375 466.353 60.9242 467.77 63.3553C469.187 65.7864 469.895 68.6277 469.895 71.8791C469.895 75.1603 469.164 78.0016 467.703 80.4029C466.256 82.8042 464.22 84.6536 461.595 85.9512C458.985 87.2488 455.935 87.8976 452.445 87.8976H440.632V78.2328H449.939C451.401 78.2328 452.646 77.9792 453.675 77.4721C454.719 76.9501 455.517 76.2118 456.069 75.2573C456.636 74.3027 456.919 73.1767 456.919 71.879 [...]
+<path d="M381.374 101.5V55.6816H414.395V65.7044H393.813V73.5794H412.695V83.6021H393.813V91.4771H414.306V101.5H381.374Z" fill="white"/>
+<path d="M334.124 101.5V55.6816H346.563V73.5794H363.029V55.6816H375.468V101.5H363.029V83.6021H346.563V101.5H334.124Z" fill="white"/>
+<path d="M328.481 72.8634H315.863C315.773 71.8194 315.535 70.8723 315.147 70.0222C314.774 69.172 314.252 68.4412 313.581 67.8297C312.925 67.2033 312.127 66.726 311.187 66.3979C310.247 66.0548 309.181 65.8833 307.988 65.8833C305.9 65.8833 304.132 66.3904 302.686 67.4046C301.254 68.4188 300.165 69.873 299.419 71.7672C298.688 73.6614 298.323 75.9359 298.323 78.5907C298.323 81.3947 298.696 83.7437 299.442 85.6379C300.202 87.5172 301.298 88.9341 302.73 89.8886C304.162 90.8283 305.885 91.2981 [...]
+<path d="M249.619 101.5H236.195L251.319 55.6816H268.322L283.446 101.5H270.022L259.999 68.2995H259.642L249.619 101.5ZM247.113 83.4231H272.349V92.7299H247.113V83.4231Z" fill="white"/>
+<path d="M202.095 101.5V55.6816H221.872C225.272 55.6816 228.248 56.3528 230.798 57.6951C233.349 59.0375 235.332 60.9242 236.749 63.3553C238.166 65.7864 238.875 68.6277 238.875 71.8791C238.875 75.1603 238.144 78.0016 236.682 80.4029C235.235 82.8042 233.199 84.6536 230.574 85.9512C227.964 87.2488 224.914 87.8976 221.424 87.8976H209.612V78.2328H218.919C220.38 78.2328 221.626 77.9792 222.655 77.4721C223.699 76.9501 224.497 76.2118 225.049 75.2573C225.615 74.3027 225.899 73.1767 225.899 71.87 [...]
+<path d="M163.855 101.5H150.432L165.555 55.6816H182.558L197.682 101.5H184.259L174.236 68.2995H173.878L163.855 101.5ZM161.349 83.4231H186.585V92.7299H161.349V83.4231Z" fill="white"/>
+<path d="M0.759941 5.24864C-1.67735 2.26969 2.26966 -1.67736 5.24859 0.759936L73.1833 56.3423C74.4097 57.3457 76.1492 57.426 77.4628 56.5396L114.566 31.5048C117.473 29.5435 120.955 33.0263 118.994 35.9331L93.9585 73.0383C93.0727 74.3511 93.1522 76.0892 94.1541 77.3156L149.242 144.753C151.675 147.731 147.732 151.675 144.753 149.241L77.3156 94.154C76.0891 93.1522 74.351 93.0728 73.0383 93.9585L35.933 118.995C33.0264 120.956 29.5435 117.473 31.5048 114.567L56.5396 77.4628C57.4259 76.1493 57 [...]
+<path d="M713.71 55H715.04L716.821 59.3477H716.892L718.673 55H720.003V61H718.96V56.8779H718.904L717.246 60.9824H716.467L714.809 56.8691H714.753V61H713.71V55Z" fill="white"/>
+<path d="M708 55.9111V55H712.787V55.9111H710.933V61H709.854V55.9111H708Z" fill="white"/>
+</svg>
diff --git a/site/assets/scss/_styles_project.scss b/site/assets/scss/_styles_project.scss
new file mode 100644
index 00000000..f5c8ca3f
--- /dev/null
+++ b/site/assets/scss/_styles_project.scss
@@ -0,0 +1,26 @@
+/*!
+ * 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.
+ */
+
+.td-navbar .navbar-brand svg {
+ height: 2.5rem;
+}
+
+.td-sidebar-toc {
+ padding-top: 1.75rem;
+}
diff --git a/site/bin/_hugo-docker-include.sh b/site/bin/_hugo-docker-include.sh
new file mode 100644
index 00000000..8f2bdc36
--- /dev/null
+++ b/site/bin/_hugo-docker-include.sh
@@ -0,0 +1,76 @@
+#
+# 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.
+#
+
+DOCKER="$(which docker > /dev/null && echo docker || echo podman)"
+COMPOSE="$(which docker-compose > /dev/null && echo docker-compose || echo podman-compose)"
+
+# absolute path to the Polaris workspace, for the volume mount
+WORKSPACE="$(pwd)"
+export WORKSPACE
+
+# Mount options for the Polaris workspace / slight difference between Podman + docker / Linux + macOS.
+# The Linux specialties are there to ensure that neither Docker nor Podman "mess up" file/directory ownership
+# to for example root or an ephemeral UID/GID (rootless). Git for example gets quite annoyed when the owner
+# of the worktree changes and then refuses to consider it as a valid Git worktree (aka git commands don't work).
+MOUNT_OPTS_WORKSPACE="bind"
+UID_GID=""
+MOUNT_OPTS_RESOURCES=""
+COMPOSE_ARGS=""
+case "$(uname)" in
+ Linux)
+ # Don't do the Linux specific UID/GID dance in CI, it uses "low" UID/GID, not "real user" ones (>= 1000).
+ # And there's no human who cares about broken ownership on the workspace directories/files in CI.
+ if [[ -z ${CI} ]] ; then
+ # Mount options
+ MOUNT_OPTS_RESOURCES="uid=$(id -u),gid=$(id -g)"
+
+ # Needed for podman on Linux, so it doesn't "chown" the Polaris workspace to an ephemeral UID (Linux only)
+ MOUNT_OPTS_WORKSPACE="bind,$MOUNT_OPTS_RESOURCES"
+
+ # uid/gid option for the container
+ UID_GID="$(id -u):$(id -g)"
+
+ if [[ ${COMPOSE} == "podman-compose" ]]; then
+ # Let podman use the user's UID+GID in the running container
+ COMPOSE_ARGS="--podman-run-args=--userns=keep-id"
+ fi
+ fi
+ ;;
+esac
+export MOUNT_OPTS_WORKSPACE MOUNT_OPTS_RESOURCES UID_GID
+
+mkdir -p site/build/hugo-cache
+
+# Cleanup before start and on exist / just to be on the "safe side"
+function cleanup() {
+ $COMPOSE \
+ --project-name polaris_site \
+ --file site/docker/docker-compose-publish.yml \
+ down > /dev/null 2>&1 || true
+ $COMPOSE \
+ --project-name polaris_site \
+ --file site/docker/docker-compose-hugo.yml \
+ down > /dev/null 2>&1 || true
+ $DOCKER container rm -f polaris_site-hugo-1 polaris_site-hugo_publish_localhost8080-1 polaris_site-hugo_publish_apache-1 > /dev/null 2>&1 || true
+ $DOCKER volume rm -f polaris_site_resources polaris_site_workspace polaris_site_hugo_cache > /dev/null 2>&1 || true
+}
+
+cleanup
+
+trap 'cleanup' EXIT
diff --git a/.github/workflows/check-md-link.yml b/site/bin/checkout-releases.sh
old mode 100644
new mode 100755
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/bin/checkout-releases.sh
index cb0c0d34..13bb1b31
--- a/.github/workflows/check-md-link.yml
+++ b/site/bin/checkout-releases.sh
@@ -1,3 +1,4 @@
+#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -17,28 +18,15 @@
# under the License.
#
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+set -e
-name: Check Markdown links
+cd "$(dirname "$0")/.."
-on:
- push:
- branches:
- - 'main'
- pull_request:
+git worktree prune
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+if [[ -d content/releases ]] ; then
+ echo "Directory content/releases already exists"
+ exit 1
+fi
+
+git worktree add content/releases versioned-docs
diff --git a/.github/workflows/check-md-link.yml b/site/bin/create-static-site.sh
old mode 100644
new mode 100755
similarity index 51%
copy from .github/workflows/check-md-link.yml
copy to site/bin/create-static-site.sh
index cb0c0d34..59c57867
--- a/.github/workflows/check-md-link.yml
+++ b/site/bin/create-static-site.sh
@@ -1,3 +1,4 @@
+#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -17,28 +18,36 @@
# under the License.
#
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+# Script to create the static website. Default is to create the static site for polaris.apache.org.
+# The --local command line option also builds the static site to inspect it locally, it starts an
+# http server for that purpose.
-name: Check Markdown links
+set -e
-on:
- push:
- branches:
- - 'main'
- pull_request:
+cd "$(dirname "$0")/../.."
+. "site/bin/_hugo-docker-include.sh"
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+SERVICE=hugo_publish_apache
+
+while [[ $# -gt 0 ]]; do
+ case $1 in
+ --local)
+ SERVICE=hugo_publish_localhost8080
+ shift
+ ;;
+ *)
+ echo "Unknown option/argument $1"
+ exit 1
+ ;;
+ esac
+done
+
+$COMPOSE \
+ --project-name polaris_site \
+ --file site/docker/docker-compose-publish.yml \
+ $COMPOSE_ARGS \
+ up \
+ --build \
+ --abort-on-container-exit \
+ --exit-code-from $SERVICE \
+ $SERVICE
diff --git a/.github/workflows/check-md-link.yml b/site/bin/remove-releases.sh
old mode 100644
new mode 100755
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/bin/remove-releases.sh
index cb0c0d34..4a067d03
--- a/.github/workflows/check-md-link.yml
+++ b/site/bin/remove-releases.sh
@@ -1,3 +1,4 @@
+#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -17,28 +18,21 @@
# under the License.
#
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+set -e
-name: Check Markdown links
+cd "$(dirname "$0")/.."
-on:
- push:
- branches:
- - 'main'
- pull_request:
+if [[ ! -d content/releases ]] ; then
+ echo "Directory content/releases does not exists"
+ exit 1
+fi
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+cd content/releases
+if git diff-index --quiet HEAD -- ; then
+ cd ../..
+ rm -rf content/releases
+ git worktree prune
+else
+ echo "Directory content/releases contains uncommitted changes"
+ exit 1
+fi
diff --git a/.github/workflows/check-md-link.yml b/site/bin/run-hugo-in-docker.sh
old mode 100644
new mode 100755
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/bin/run-hugo-in-docker.sh
index cb0c0d34..33c58d6b
--- a/.github/workflows/check-md-link.yml
+++ b/site/bin/run-hugo-in-docker.sh
@@ -1,3 +1,4 @@
+#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -17,28 +18,18 @@
# under the License.
#
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+# Script to run `hugo serve` within a container.
-name: Check Markdown links
+set -e
-on:
- push:
- branches:
- - 'main'
- pull_request:
+cd "$(dirname "$0")/../.."
+. "site/bin/_hugo-docker-include.sh"
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+$COMPOSE \
+ --project-name polaris_site \
+ --file site/docker/docker-compose-hugo.yml \
+ $COMPOSE_ARGS \
+ up \
+ --build \
+ --abort-on-container-exit \
+ --exit-code-from hugo
diff --git a/.github/workflows/check-md-link.yml b/site/bin/stop-hugo-in-docker.sh
old mode 100644
new mode 100755
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/bin/stop-hugo-in-docker.sh
index cb0c0d34..3215e095
--- a/.github/workflows/check-md-link.yml
+++ b/site/bin/stop-hugo-in-docker.sh
@@ -1,3 +1,4 @@
+#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -17,28 +18,9 @@
# under the License.
#
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+set -e
-name: Check Markdown links
+cd "$(dirname "$0")/../.."
+. "site/bin/_hugo-docker-include.sh"
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+# The included script calls the cleanup function for us - this is what this script is supposed to do.
diff --git a/site/content/_index.adoc b/site/content/_index.adoc
new file mode 100644
index 00000000..d9dec6d2
--- /dev/null
+++ b/site/content/_index.adoc
@@ -0,0 +1,53 @@
+---
+#
+# 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.
+#
+title: "Apache Polaris"
+type: home
+cascade:
+ no_list: true
+---
+{{< blocks/cover title="Welcome to the Apache Polaris™ (incubating) web site!" image_anchor="center" color="primary" >}}
+Apache Polaris is an open-source, fully-featured catalog for Apache Iceberg™. It implements Iceberg's REST API, enabling seamless multi-engine interoperability across a wide range of platforms, including Apache Doris™, Apache Flink®, Apache Spark™, StarRocks, and Trino.
+{{< /blocks/cover >}}
+
+image::images/Polaris-Catalog-BLOG-symmetrical-subhead.png[Polaris Catalog]
+
+{{< blocks/section color="dark" type="row" >}}
+{{% blocks/feature icon="fa-lightbulb" title="Join the community!" url="https://polaris-catalog.zulipchat.com/" url_text="Chat with us" %}}
+Chat with users and project developers!
+{{% /blocks/feature %}}
+{{% blocks/feature icon="fa-brands fa-github" title="Contributions welcome!" url="https://github.com/apache/polaris/pulls" url_text="Polaris Pull Requests" %}}
+We do a https://github.com/apache/polaris/pulls[Pull Request] contributions workflow on **GitHub**. New users are always welcome!
+{{% /blocks/feature %}}
+{{% blocks/feature icon="fa fa-envelope" title="Join our mailing list" url="https://lists.apache.org/list.html?dev@polaris.apache.org" url_text="Subscribe" %}}
+For announcement and discussions about the project.
+{{% /blocks/feature %}}
+{{< /blocks/section >}}
+
+{{< blocks/section color="dark" >}}
+<p>
+<a href="https://incubator.apache.org/"><img src="images/apache-incubator.svg" width="200em"></a>
+</p>
+<p>
+Apache Polaris™ is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the projec [...]
+</p>
+<p>
+Apache®, Apache Polaris™, Apache Iceberg™, Apache Spark™ are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
+</p>
+{{< /blocks/section >}}
diff --git a/.github/workflows/check-md-link.yml b/site/content/blog/2024/10/01/dummy-post.md
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/blog/2024/10/01/dummy-post.md
index cb0c0d34..2d34263d 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/blog/2024/10/01/dummy-post.md
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,8 @@
# specific language governing permissions and limitations
# under the License.
#
+title: Dummy Post
+date: 2024-10-01
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+Just a dummy
diff --git a/.github/workflows/check-md-link.yml b/site/content/blog/_index.adoc
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/blog/_index.adoc
index cb0c0d34..ec20c781 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/blog/_index.adoc
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,15 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: "Blog"
+title: "Apache Polaris Blog"
+weight: 200
+cascade:
+ - type: "blog"
+# TODO remove when adding the first post
+top_hidden: true
+toc_hide: true
+hide_summary: true
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+= Blog
diff --git a/site/content/chat-bylaws.md b/site/content/chat-bylaws.md
new file mode 120000
index 00000000..b28aebe2
--- /dev/null
+++ b/site/content/chat-bylaws.md
@@ -0,0 +1 @@
+../../CHAT_BYLAWS.md
\ No newline at end of file
diff --git a/site/content/code-of-conduct.md b/site/content/code-of-conduct.md
new file mode 120000
index 00000000..a3613c99
--- /dev/null
+++ b/site/content/code-of-conduct.md
@@ -0,0 +1 @@
+../../CODE_OF_CONDUCT.md
\ No newline at end of file
diff --git a/site/content/community/_index.adoc b/site/content/community/_index.adoc
new file mode 100644
index 00000000..c9ce0515
--- /dev/null
+++ b/site/content/community/_index.adoc
@@ -0,0 +1,97 @@
+---
+#
+# 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.
+#
+linkTitle: 'Community'
+title: 'Apache Polaris Community'
+weight: 300
+params:
+ contributingUrl: "/community/contributing-guidelines"
+cascade:
+ type: docs
+---
+
+{{< blocks/section color="white" type="row" >}}
+{{% blocks/feature icon="fa-solid fa-graduation-cap" title="Learn, Connect and Collaborate" %}}
+[cols="2,3"]
+|===
+| link:https://polaris-catalog.zulipchat.com/[Zulip]
+| Our public chat, open to everybody
+
+| link:./meetings/[Community Meetings]
+| Upcoming, live and recorded Community Meetings
+
+| link:./proposals/[Proposals]
+| Proposals about bigger topics
+
+| link:https://github.com/apache/polaris[GitHub]
+| Development takes place here!
+
+| link:./code-of-conduct/[Code of Conduct]
+| Code of Conduct
+
+| link:./chat-bylaws/[Chat Bylaws]
+| A few rules around our public chat as a collaboration tool for the project.
+
+| link:./contributing-guidelines/[Contribution Guidelines]
+| How to contribute to Apache Polaris
+|===
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa fa-envelope" title="All Mailing Lists" %}}
+[cols="3,3"]
+|===
+| Development oriented content
+| mailto:dev-subscribe@polaris.apache.org[Subscribe to dev@]
+
+ link:https://lists.apache.org/list.html?polaris.apache.org[Mailing List Archives,window=_blank]
+| Notifications about GitHub issues and PRs
+| mailto:issues-subscribe@polaris.apache.org[Subscribe to issues@]
+
+ link:https://lists.apache.org/list.html?polaris.apache.org[Mailing List Archives,window=_blank]
+| Notifications about Git commits
+| mailto:commits-subscribe@polaris.apache.org[Subscribe to commits@]
+
+ link:https://lists.apache.org/list.html?polaris.apache.org[Mailing List Archives,window=_blank]
+|===
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fa-solid fa-people-group" title="Team" %}}
+[cols="4,1,3"]
+|===
+
+| https://github.com/annafil[Anna Filippova] | Committer | link:https://www.snowflake.com/[Snowflake]
+| Anoop Johnson | PPMC | link:https://www.google.com/[Google]
+| https://github.com/ashvina[Ashvin Agrawal] | PPMC | link:https://www.microsoft.com/[Microsoft]
+| Bertrand Delacretaz | Mentor |
+| https://github.com/eric-maynard[Eric Maynard] | Committer | link:https://www.snowflake.com/[Snowflake]
+| Holden Karau | Mentor |
+| https://github.com/jackye1995[Jack Ye] | PPMC | link:https://aws.amazon.com/[Amazon]
+| https://github.com/jbonofre[JB Onofre] | PPMC & Mentor | link:https://www.dremio.com/[Dremio]
+| https://github.com/vvcephei[John Roesler] | PPMC | link:https://www.confluent.io/[Confluent]
+| Kent Yao | Mentor |
+| https://github.com/collado-mike[Michael Collado] | Committer | link:https://www.snowflake.com/[Snowflake]
+| https://github.com/snazy[Robert Stupp] | PPMC | link:https://www.dremio.com/[Dremio]
+| https://github.com/russellspitzer[Russell Spitzer] | PPMC | link:https://www.snowflake.com/[Snowflake]
+| Ryan Blue | Mentor |
+| https://github.com/takidau:[Tyler Akidau] | PPMC | link:https://www.snowflake.com/[Snowflake]
+| https://github.com/flyrain[Yufei Gu] | Committer | link:https://www.snowflake.com/[Snowflake]
+| https://github.com/ebyhr[Yuya Ebihara] | Committer | link:https://www.starburst.io/[Starburst]
+|===
+{{% /blocks/feature %}}
+{{< /blocks/section >}}
diff --git a/.github/workflows/check-md-link.yml b/site/content/community/chat-bylaws.md
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/community/chat-bylaws.md
index cb0c0d34..520732e1 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/community/chat-bylaws.md
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,9 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: Chat Bylaws
+type: docs
+weight: 400
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+{{< readfile "/chat-bylaws.md" >}}
diff --git a/.github/workflows/check-md-link.yml b/site/content/community/code-of-conduct.md
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/community/code-of-conduct.md
index cb0c0d34..060fe605 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/community/code-of-conduct.md
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,9 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: Code Of Conduct
+type: docs
+weight: 300
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+{{< readfile "/code-of-conduct.md" >}}
diff --git a/.github/workflows/check-md-link.yml b/site/content/community/contributing-guidelines.md
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/community/contributing-guidelines.md
index cb0c0d34..8b933905 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/community/contributing-guidelines.md
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,9 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: Contributing Guidelines
+type: docs
+weight: 500
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+{{< readfile "/contributing-to-polaris.md" >}}
diff --git a/.github/workflows/check-md-link.yml b/site/content/community/meetings/2024/_index.adoc
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/community/meetings/2024/_index.adoc
index cb0c0d34..838d0d82 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/community/meetings/2024/_index.adoc
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,28 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: '2024'
+title: 'Apache Polaris Community Meetings in 2024'
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+== Upcoming Meetings
-name: Check Markdown links
+We will have a community meeting shortly, stay tuned...
-on:
- push:
- branches:
- - 'main'
- pull_request:
+////
+https://polaris.apache.org/[Agenda for upcoming Community Meetings]
+////
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+////
+== Past Meetings
+
+[cols="1,3,3"]
+|===
+| Date | Notes | Recording
+
+| 2024-08-30
+| Meeting Notes
+| {{< youtube id=xyz loading=lazy title="Not a Polaris meeting" >}}
+
+|===
+////
diff --git a/.github/workflows/check-md-link.yml b/site/content/community/meetings/_index.adoc
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/community/meetings/_index.adoc
index cb0c0d34..318df290 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/community/meetings/_index.adoc
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,10 @@
# specific language governing permissions and limitations
# under the License.
#
-
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+linkTitle: 'Meetings'
+title: 'Apache Polaris Community Meetings'
+weight: 100
+cascade:
+ type: docs
+ no_list: false
+---
diff --git a/.github/workflows/check-md-link.yml b/site/content/community/proposals.adoc
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/community/proposals.adoc
index cb0c0d34..0a4264ee 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/community/proposals.adoc
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,40 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: 'Proposals'
+title: 'Apache Polaris Proposals'
+weight: 200
+type: docs
+# TODO remove when adding the first proposal
+toc_hide: true
+hide_summary: true
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+== Active Proposals
+
+[cols="4,2,4,4"]
+|===
+| Topic | Date Created | Proposal Document | Dev-list discussion
+
+| Sample topic placeholder
+| 2024/09/06
+| Link to Google Doc
+| Link to dev-mailing list discussion
+
+|===
+
+
+== Previous Proposals
+
+
+[cols="4,2,4,4,2"]
+|===
+| Topic | Date Created | Proposal Document | Dev-list discussion + vote | Resolution
+
+| Sample topic placeholder
+| 2024/09/06
+| Link to Google Doc
+| Link to dev-mailing list discussion
+| Accepted
+
+|===
diff --git a/site/content/contributing-to-polaris.md b/site/content/contributing-to-polaris.md
new file mode 120000
index 00000000..f939e75f
--- /dev/null
+++ b/site/content/contributing-to-polaris.md
@@ -0,0 +1 @@
+../../CONTRIBUTING.md
\ No newline at end of file
diff --git a/.github/workflows/check-md-link.yml b/site/content/guides/_index.adoc
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/guides/_index.adoc
index cb0c0d34..e86c6201 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/guides/_index.adoc
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,15 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: "Guides"
+title: "Apache Polaris Guides"
+weight: 200
+cascade:
+ type: docs
+# TODO remove when adding the first proposal
+top_hidden: true
+toc_hide: true
+hide_summary: true
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+= Guides
diff --git a/.github/workflows/check-md-link.yml b/site/content/in-dev/_index.md
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/in-dev/_index.md
index cb0c0d34..d3682b20 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/in-dev/_index.md
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,8 @@
# specific language governing permissions and limitations
# under the License.
#
-
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
-
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+# Hide `/in-dev/`
+toc_hide: true
+hide_summary: true
+exclude_search: true
+---
diff --git a/.github/workflows/check-md-link.yml b/site/content/in-dev/release_index.md
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/in-dev/release_index.md
index cb0c0d34..e8f38dbf 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/in-dev/release_index.md
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,19 @@
# specific language governing permissions and limitations
# under the License.
#
+title: 'POLARIS VERSION INDEX MD TEMPLATE'
+toc_hide: true
+hide_summary: true
+params:
+ show_page_toc: false
+cascade:
+ # The latest release specifies 'false', all others must be 'true'
+ exclude_search: false
+ params:
+ show_page_toc: true
+# This file will be copied as `_index.md` into a new release's versioned docs folder.
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+== Apache Polaris version {{< releaseVersion >}}
-name: Check Markdown links
-
-on:
- push:
- branches:
- - 'main'
- pull_request:
-
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+Download from ...
diff --git a/.github/workflows/check-md-link.yml b/site/content/in-dev/unreleased/_index.md
similarity index 52%
copy from .github/workflows/check-md-link.yml
copy to site/content/in-dev/unreleased/_index.md
index cb0c0d34..22dbad89 100644
--- a/.github/workflows/check-md-link.yml
+++ b/site/content/in-dev/unreleased/_index.md
@@ -1,3 +1,4 @@
+---
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
@@ -16,29 +17,28 @@
# specific language governing permissions and limitations
# under the License.
#
+linkTitle: 'In Development'
+title: 'Unreleased - current state of the main branch'
+type: docs
+weight: 200
+params:
+ top_hidden: true
+ show_page_toc: false
+cascade:
+ type: docs
+ params:
+ show_page_toc: true
+# This file will NOT be copied into a new release's versioned docs folder.
+---
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-# This workflow will find markdown links in the folder paths
-# specified, and confirm the links are valid
+{{< alert title="Warning" color="warning" >}}
+These pages refer to the current state of the main branch, which is still under active development.
-name: Check Markdown links
+Functionalities can be changed, removed or added without prior notice.
+{{< /alert >}}
-on:
- push:
- branches:
- - 'main'
- pull_request:
+Checkout the [Quick Start](./quickstart.md) page.
-jobs:
- markdown-link-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - uses: gaurav-nelson/github-action-markdown-link-check@v1
- with:
- use-quiet-mode: 'yes'
- config-file: '.github/workflows/check-md-link-config.json'
- folder-path: '.' # checks all md files
+<!--
+Testing the `releaseVersion` shortcode here: version is: {{< releaseVersion >}}
+-->
diff --git a/docs/access-control.md b/site/content/in-dev/unreleased/access-control.md
similarity index 90%
rename from docs/access-control.md
rename to site/content/in-dev/unreleased/access-control.md
index 783b017f..7c4c9cc8 100644
--- a/docs/access-control.md
+++ b/site/content/in-dev/unreleased/access-control.md
@@ -1,21 +1,26 @@
-<!--
- 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.
--->
+---
+#
+# 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.
+#
+Title: Access Control
+type: docs
+weight: 500
+---
This section provides information about how access control works for Apache Polaris (Incubating).
@@ -91,7 +96,7 @@ The following diagram illustrates the RBAC model used by Polaris. For each catal
privileges to catalog roles and then grants service principals access to resources by assigning catalog roles to principal roles. Polaris
supports a many-to-one relationship between service principals and principal roles.
-
+
## Access control privileges
@@ -185,4 +190,4 @@ includes the following users:
- The Catalog reader role grants read-only access for a catalog
named Gold zone catalog.
-
+
diff --git a/docs/command-line-interface.md b/site/content/in-dev/unreleased/command-line-interface.md
similarity index 96%
rename from docs/command-line-interface.md
rename to site/content/in-dev/unreleased/command-line-interface.md
index 026921ec..f0435bd1 100644
--- a/docs/command-line-interface.md
+++ b/site/content/in-dev/unreleased/command-line-interface.md
@@ -1,23 +1,27 @@
-<!--
- 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.
--->
-
-# Apache Polaris (Incubating) CLI
+---
+#
+# 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.
+#
+linkTitle: Command Line Interface
+title: Apache Polaris (Incubating) CLI
+type: docs
+weight: 300
+---
In order to help administrators quickly set up and manage their Polaris server, Polaris provides a simple command-line interface (CLI) for common tasks.
@@ -798,7 +802,7 @@ polaris namespaces list --catalog my_catalog --parent a.b
### Privileges
-The `privileges` command is used to grant various privileges to a catalog role, or to revoke those privileges. Privileges can be on the level of a catalog, a namespace, a table, or a view. For more information on privileges, please refer to the [docs](./entities.md#privilege).
+The `privileges` command is used to grant various privileges to a catalog role, or to revoke those privileges. Privileges can be on the level of a catalog, a namespace, a table, or a view. For more information on privileges, please refer to the [docs](entities.mdrivilege).
Note that when using the `privileges` command, the user specifies the relevant catalog and catalog role before selecting a subcommand.
diff --git a/docs/configuring-polaris-for-production.md b/site/content/in-dev/unreleased/configuring-polaris-for-production.md
similarity index 80%
rename from docs/configuring-polaris-for-production.md
rename to site/content/in-dev/unreleased/configuring-polaris-for-production.md
index 37f68281..1a561c4e 100644
--- a/docs/configuring-polaris-for-production.md
+++ b/site/content/in-dev/unreleased/configuring-polaris-for-production.md
@@ -1,24 +1,27 @@
-<!--
- 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.
--->
-
-
-# Configuring Apache Polaris (Incubating) for Production
+---
+#
+# 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.
+#
+title: Configuring Apache Polaris (Incubating) for Production
+linkTitle: Deploying In Production
+type: docs
+weight: 600
+---
The default `polaris-server.yml` configuration is intended for development and testing. When deploying Polaris in production, there are several best practices to keep in mind.
@@ -56,7 +59,7 @@ Be sure to secure your metastore backend since it will be storing credentials an
### Configuring EclipseLink
-To use EclipseLink for metastore management, specify the configuration `metaStoreManager.conf-file` to point to an EclipseLink `persistence.xml` file. This file, local to the Polaris service, contains details of the database used for metastore management and the connection settings. For more information, refer to [metastore documentation](./metastores.md) for details.
+To use EclipseLink for metastore management, specify the configuration `metaStoreManager.conf-file` to point to an EclipseLink `persistence.xml` file. This file, local to the Polaris service, contains details of the database used for metastore management and the connection settings. For more information, refer to [metastore documentation](metastores.md) for details.
### Bootstrapping
diff --git a/docs/entities.md b/site/content/in-dev/unreleased/entities.md
similarity index 85%
rename from docs/entities.md
rename to site/content/in-dev/unreleased/entities.md
index df9f4897..4439493b 100644
--- a/docs/entities.md
+++ b/site/content/in-dev/unreleased/entities.md
@@ -1,21 +1,26 @@
-<!--
- 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.
--->
+---
+#
+# 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.
+#
+Title: Entities
+type: docs
+weight: 400
+---
This page documents various entities that can be managed in Apache Polaris (Incubating).
diff --git a/docs/metastores.md b/site/content/in-dev/unreleased/metastores.md
similarity index 85%
rename from docs/metastores.md
rename to site/content/in-dev/unreleased/metastores.md
index 26e8c14d..72d97a38 100644
--- a/docs/metastores.md
+++ b/site/content/in-dev/unreleased/metastores.md
@@ -1,21 +1,27 @@
-<!--
- 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.
--->
+---
+#
+# 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.
+#
+title: Metastores
+linkTitle: Metastores
+type: docs
+weight: 700
+---
This page documents the general configurations to connect to production database through [EclipseLink](https://eclipse.dev/eclipselink/).
diff --git a/site/content/in-dev/unreleased/openapi/polaris-management-service.yml b/site/content/in-dev/unreleased/openapi/polaris-management-service.yml
new file mode 100644
index 00000000..03068c60
--- /dev/null
+++ b/site/content/in-dev/unreleased/openapi/polaris-management-service.yml
@@ -0,0 +1,1345 @@
+# 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.3
+info:
+ title: Polaris Management Service
+ version: 0.0.1
+ description:
+ Defines the management APIs for using Polaris to create and manage Iceberg catalogs and their principals
+servers:
+ - url: "{scheme}://{host}/api/management/v1"
+ description: Server URL when the port can be inferred from the scheme
+ variables:
+ scheme:
+ description: The scheme of the URI, either http or https.
+ default: https
+ host:
+ description: The host address for the specified server
+ default: localhost
+# All routes are currently configured using an Authorization header.
+security:
+ - OAuth2: []
+
+paths:
+ /catalogs:
+ get:
+ operationId: listCatalogs
+ description: List all catalogs in this polaris service
+ responses:
+ 200:
+ description: List of catalogs in the polaris service
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Catalogs"
+ 403:
+ description: "The caller does not have permission to list catalog details"
+ post:
+ operationId: createCatalog
+ description: Add a new Catalog
+ requestBody:
+ description: The Catalog to create
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreateCatalogRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ 403:
+ description: "The caller does not have permission to create a catalog"
+ 404:
+ description: "The catalog does not exist"
+ 409:
+ description: "A catalog with the specified name already exists"
+
+ /catalogs/{catalogName}:
+ parameters:
+ - name: catalogName
+ in: path
+ description: The name of the catalog
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: getCatalog
+ description: Get the details of a catalog
+ responses:
+ 200:
+ description: The catalog details
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Catalog"
+ 403:
+ description: "The caller does not have permission to read catalog details"
+ 404:
+ description: "The catalog does not exist"
+
+ put:
+ operationId: updateCatalog
+ description: Update an existing catalog
+ requestBody:
+ description: The catalog details to use in the update
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UpdateCatalogRequest"
+ responses:
+ 200:
+ description: The catalog details
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Catalog"
+ 403:
+ description: "The caller does not have permission to update catalog details"
+ 404:
+ description: "The catalog does not exist"
+ 409:
+ description: "The entity version doesn't match the currentEntityVersion; retry after fetching latest version"
+
+ delete:
+ operationId: deleteCatalog
+ description: Delete an existing catalog. The catalog must be empty.
+ responses:
+ 204:
+ description: "Success, no content"
+ 403:
+ description: "The caller does not have permission to delete a catalog"
+ 404:
+ description: "The catalog does not exist"
+
+ /principals:
+ get:
+ operationId: listPrincipals
+ description: List the principals for the current catalog
+ responses:
+ 200:
+ description: List of principals for this catalog
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Principals"
+ 403:
+ description: "The caller does not have permission to list catalog admins"
+ 404:
+ description: "The catalog does not exist"
+
+ post:
+ operationId: createPrincipal
+ description: Create a principal
+ requestBody:
+ description: The principal to create
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreatePrincipalRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrincipalWithCredentials"
+ 403:
+ description: "The caller does not have permission to add a principal"
+
+ /principals/{principalName}:
+ parameters:
+ - name: principalName
+ in: path
+ description: The principal name
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: getPrincipal
+ description: Get the principal details
+ responses:
+ 200:
+ description: The requested principal
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Principal"
+ 403:
+ description: "The caller does not have permission to get principal details"
+ 404:
+ description: "The catalog or principal does not exist"
+
+ put:
+ operationId: updatePrincipal
+ description: Update an existing principal
+ requestBody:
+ description: The principal details to use in the update
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UpdatePrincipalRequest"
+ responses:
+ 200:
+ description: The updated principal
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Principal"
+ 403:
+ description: "The caller does not have permission to update principal details"
+ 404:
+ description: "The principal does not exist"
+ 409:
+ description: "The entity version doesn't match the currentEntityVersion; retry after fetching latest version"
+
+ delete:
+ operationId: deletePrincipal
+ description: Remove a principal from polaris
+ responses:
+ 204:
+ description: "Success, no content"
+ 403:
+ description: "The caller does not have permission to delete a principal"
+ 404:
+ description: "The principal does not exist"
+
+ /principals/{principalName}/rotate:
+ parameters:
+ - name: principalName
+ in: path
+ description: The user name
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ post:
+ operationId: rotateCredentials
+ description: Rotate a principal's credentials. The new credentials will be returned in the response. This is the only
+ API, aside from createPrincipal, that returns the user's credentials. This API is *not* idempotent.
+ responses:
+ 200:
+ description: The principal details along with the newly rotated credentials
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrincipalWithCredentials"
+ 403:
+ description: "The caller does not have permission to rotate credentials"
+ 404:
+ description: "The principal does not exist"
+
+ /principals/{principalName}/principal-roles:
+ parameters:
+ - name: principalName
+ in: path
+ description: The name of the target principal
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: listPrincipalRolesAssigned
+ description: List the roles assigned to the principal
+ responses:
+ 200:
+ description: List of roles assigned to this principal
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrincipalRoles"
+ 403:
+ description: "The caller does not have permission to list roles"
+ 404:
+ description: "The principal or catalog does not exist"
+
+ put:
+ operationId: assignPrincipalRole
+ description: Add a role to the principal
+ requestBody:
+ description: The principal role to assign
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GrantPrincipalRoleRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ 403:
+ description: "The caller does not have permission to add assign a role to the principal"
+ 404:
+ description: "The catalog, the principal, or the role does not exist"
+
+ /principals/{principalName}/principal-roles/{principalRoleName}:
+ parameters:
+ - name: principalName
+ in: path
+ description: The name of the target principal
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ - name: principalRoleName
+ in: path
+ description: The name of the role
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ delete:
+ operationId: revokePrincipalRole
+ description: Remove a role from a catalog principal
+ responses:
+ 204:
+ description: "Success, no content"
+ 403:
+ description: "The caller does not have permission to remove a role from the principal"
+ 404:
+ description: "The catalog or principal does not exist"
+
+ /principal-roles:
+ get:
+ operationId: listPrincipalRoles
+ description: List the principal roles
+ responses:
+ 200:
+ description: List of principal roles
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrincipalRoles"
+ 403:
+ description: "The caller does not have permission to list principal roles"
+ 404:
+ description: "The catalog does not exist"
+
+ post:
+ operationId: createPrincipalRole
+ description: Create a principal role
+ requestBody:
+ description: The principal to create
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreatePrincipalRoleRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ 403:
+ description: "The caller does not have permission to add a principal role"
+
+ /principal-roles/{principalRoleName}:
+ parameters:
+ - name: principalRoleName
+ in: path
+ description: The principal role name
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: getPrincipalRole
+ description: Get the principal role details
+ responses:
+ 200:
+ description: The requested principal role
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrincipalRole"
+ 403:
+ description: "The caller does not have permission to get principal role details"
+ 404:
+ description: "The principal role does not exist"
+
+ put:
+ operationId: updatePrincipalRole
+ description: Update an existing principalRole
+ requestBody:
+ description: The principalRole details to use in the update
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UpdatePrincipalRoleRequest"
+ responses:
+ 200:
+ description: The updated principal role
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrincipalRole"
+ 403:
+ description: "The caller does not have permission to update principal role details"
+ 404:
+ description: "The principal role does not exist"
+ 409:
+ description: "The entity version doesn't match the currentEntityVersion; retry after fetching latest version"
+
+ delete:
+ operationId: deletePrincipalRole
+ description: Remove a principal role from polaris
+ responses:
+ 204:
+ description: "Success, no content"
+ 403:
+ description: "The caller does not have permission to delete a principal role"
+ 404:
+ description: "The principal role does not exist"
+
+ /principal-roles/{principalRoleName}/principals:
+ parameters:
+ - name: principalRoleName
+ in: path
+ description: The principal role name
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: listAssigneePrincipalsForPrincipalRole
+ description: List the Principals to whom the target principal role has been assigned
+ responses:
+ 200:
+ description: List the Principals to whom the target principal role has been assigned
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Principals"
+ 403:
+ description: "The caller does not have permission to list principals"
+ 404:
+ description: "The principal role does not exist"
+
+ /principal-roles/{principalRoleName}/catalog-roles/{catalogName}:
+ parameters:
+ - name: principalRoleName
+ in: path
+ description: The principal role name
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ - name: catalogName
+ in: path
+ required: true
+ description: The name of the catalog where the catalogRoles reside
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: listCatalogRolesForPrincipalRole
+ description: Get the catalog roles mapped to the principal role
+ responses:
+ 200:
+ description: The list of catalog roles mapped to the principal role
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CatalogRoles"
+ 403:
+ description: "The caller does not have permission to list catalog roles"
+ 404:
+ description: "The principal role does not exist"
+
+ put:
+ operationId: assignCatalogRoleToPrincipalRole
+ description: Assign a catalog role to a principal role
+ requestBody:
+ description: The principal to create
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GrantCatalogRoleRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ 403:
+ description: "The caller does not have permission to assign a catalog role"
+
+ /principal-roles/{principalRoleName}/catalog-roles/{catalogName}/{catalogRoleName}:
+ parameters:
+ - name: principalRoleName
+ in: path
+ description: The principal role name
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ - name: catalogName
+ in: path
+ description: The name of the catalog that contains the role to revoke
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ - name: catalogRoleName
+ in: path
+ description: The name of the catalog role that should be revoked
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ delete:
+ operationId: revokeCatalogRoleFromPrincipalRole
+ description: Remove a catalog role from a principal role
+ responses:
+ 204:
+ description: "Success, no content"
+ 403:
+ description: "The caller does not have permission to revoke a catalog role"
+ 404:
+ description: "The principal role does not exist"
+
+ /catalogs/{catalogName}/catalog-roles:
+ parameters:
+ - name: catalogName
+ in: path
+ description: The catalog for which we are reading/updating roles
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: listCatalogRoles
+ description: List existing roles in the catalog
+ responses:
+ 200:
+ description: The list of roles that exist in this catalog
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CatalogRoles"
+ post:
+ operationId: createCatalogRole
+ description: Create a new role in the catalog
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CreateCatalogRoleRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ 403:
+ description: "The principal is not authorized to create roles"
+ 404:
+ description: "The catalog does not exist"
+
+ /catalogs/{catalogName}/catalog-roles/{catalogRoleName}:
+ parameters:
+ - name: catalogName
+ in: path
+ description: The catalog for which we are retrieving roles
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ - name: catalogRoleName
+ in: path
+ description: The name of the role
+ required: true
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: getCatalogRole
+ description: Get the details of an existing role
+ responses:
+ 200:
+ description: The specified role details
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CatalogRole"
+ 403:
+ description: "The principal is not authorized to read role data"
+ 404:
+ description: "The catalog or the role does not exist"
+
+ put:
+ operationId: updateCatalogRole
+ description: Update an existing role in the catalog
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UpdateCatalogRoleRequest"
+ responses:
+ 200:
+ description: The specified role details
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CatalogRole"
+ 403:
+ description: "The principal is not authorized to update roles"
+ 404:
+ description: "The catalog or the role does not exist"
+ 409:
+ description: "The entity version doesn't match the currentEntityVersion; retry after fetching latest version"
+
+ delete:
+ operationId: deleteCatalogRole
+ description: Delete an existing role from the catalog. All associated grants will also be deleted
+ responses:
+ 204:
+ description: "Success, no content"
+ 403:
+ description: "The principal is not authorized to delete roles"
+ 404:
+ description: "The catalog or the role does not exist"
+
+ /catalogs/{catalogName}/catalog-roles/{catalogRoleName}/principal-roles:
+ parameters:
+ - name: catalogName
+ in: path
+ required: true
+ description: The name of the catalog where the catalog role resides
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ - name: catalogRoleName
+ in: path
+ required: true
+ description: The name of the catalog role
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: listAssigneePrincipalRolesForCatalogRole
+ description: List the PrincipalRoles to which the target catalog role has been assigned
+ responses:
+ 200:
+ description: List the PrincipalRoles to which the target catalog role has been assigned
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/PrincipalRoles"
+ 403:
+ description: "The caller does not have permission to list principal roles"
+ 404:
+ description: "The catalog or catalog role does not exist"
+
+ /catalogs/{catalogName}/catalog-roles/{catalogRoleName}/grants:
+ parameters:
+ - name: catalogName
+ in: path
+ required: true
+ description: The name of the catalog where the role will receive the grant
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ - name: catalogRoleName
+ in: path
+ required: true
+ description: The name of the role receiving the grant (must exist)
+ schema:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ get:
+ operationId: listGrantsForCatalogRole
+ description: List the grants the catalog role holds
+ responses:
+ 200:
+ description: List of all grants given to the role in this catalog
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GrantResources"
+ put:
+ operationId: addGrantToCatalogRole
+ description: Add a new grant to the catalog role
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddGrantRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ 403:
+ description: "The principal is not authorized to create grants"
+ 404:
+ description: "The catalog or the role does not exist"
+ post:
+ operationId: revokeGrantFromCatalogRole
+ description:
+ Delete a specific grant from the role. This may be a subset or a superset of the grants the role has. In case of
+ a subset, the role will retain the grants not specified. If the `cascade` parameter is true, grant revocation
+ will have a cascading effect - that is, if a principal has specific grants on a subresource, and grants are revoked
+ on a parent resource, the grants present on the subresource will be revoked as well. By default, this behavior
+ is disabled and grant revocation only affects the specified resource.
+ parameters:
+ - name: cascade
+ in: query
+ schema:
+ type: boolean
+ default: false
+ description: If true, the grant revocation cascades to all subresources.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RevokeGrantRequest"
+ responses:
+ 201:
+ description: "Successful response"
+ 403:
+ description: "The principal is not authorized to create grants"
+ 404:
+ description: "The catalog or the role does not exist"
+
+components:
+ securitySchemes:
+ OAuth2:
+ type: oauth2
+ description: Uses OAuth 2 with client credentials flow
+ flows:
+ implicit:
+ authorizationUrl: "{scheme}://{host}/api/v1/oauth/tokens"
+ scopes: {}
+
+ schemas:
+ Catalogs:
+ type: object
+ description: A list of Catalog objects
+ properties:
+ catalogs:
+ type: array
+ items:
+ $ref: "#/components/schemas/Catalog"
+ required:
+ - catalogs
+
+ CreateCatalogRequest:
+ type: object
+ description: Request to create a new catalog
+ properties:
+ catalog:
+ $ref: "#/components/schemas/Catalog"
+ required:
+ - catalog
+
+ Catalog:
+ type: object
+ description: A catalog object. A catalog may be internal or external. External catalogs are managed entirely by
+ an external catalog interface. Third party catalogs may be other Iceberg REST implementations or other services
+ with their own proprietary APIs
+ properties:
+ type:
+ type: string
+ enum:
+ - INTERNAL
+ - EXTERNAL
+ description: the type of catalog - internal or external
+ default: INTERNAL
+ name:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ description: The name of the catalog
+ properties:
+ type: object
+ properties:
+ default-base-location:
+ type: string
+ additionalProperties:
+ type: string
+ required:
+ - default-base-location
+ createTimestamp:
+ type: integer
+ format: "int64"
+ description: The creation time represented as unix epoch timestamp in milliseconds
+ lastUpdateTimestamp:
+ type: integer
+ format: "int64"
+ description: The last update time represented as unix epoch timestamp in milliseconds
+ entityVersion:
+ type: integer
+ description: The version of the catalog object used to determine if the catalog metadata has changed
+ storageConfigInfo:
+ $ref: "#/components/schemas/StorageConfigInfo"
+ required:
+ - name
+ - type
+ - storageConfigInfo
+ - properties
+ discriminator:
+ propertyName: type
+ mapping:
+ INTERNAL: "#/components/schemas/PolarisCatalog"
+ EXTERNAL: "#/components/schemas/ExternalCatalog"
+
+
+ PolarisCatalog:
+ type: object
+ allOf:
+ - $ref: "#/components/schemas/Catalog"
+ description: The base catalog type - this contains all the fields necessary to construct an INTERNAL catalog
+
+ ExternalCatalog:
+ description: An externally managed catalog
+ type: object
+ allOf:
+ - $ref: "#/components/schemas/Catalog"
+ - type: object
+ properties:
+ remoteUrl:
+ type: string
+ description: URL to the remote catalog API
+
+ StorageConfigInfo:
+ type: object
+ description: A storage configuration used by catalogs
+ properties:
+ storageType:
+ type: string
+ enum:
+ - S3
+ - GCS
+ - AZURE
+ - FILE
+ description: The cloud provider type this storage is built on. FILE is supported for testing purposes only
+ allowedLocations:
+ type: array
+ items:
+ type: string
+ example: "For AWS [s3://bucketname/prefix/], for AZURE [abfss://container@storageaccount.blob.core.windows.net/prefix/], for GCP [gs://bucketname/prefix/]"
+ required:
+ - storageType
+ discriminator:
+ propertyName: storageType
+ mapping:
+ S3: "#/components/schemas/AwsStorageConfigInfo"
+ AZURE: "#/components/schemas/AzureStorageConfigInfo"
+ GCS: "#/components/schemas/GcpStorageConfigInfo"
+ FILE: "#/components/schemas/FileStorageConfigInfo"
+
+ AwsStorageConfigInfo:
+ type: object
+ description: aws storage configuration info
+ allOf:
+ - $ref: '#/components/schemas/StorageConfigInfo'
+ properties:
+ roleArn:
+ type: string
+ description: the aws role arn that grants privileges on the S3 buckets
+ example: "arn:aws:iam::123456789001:principal/abc1-b-self1234"
+ externalId:
+ type: string
+ description: an optional external id used to establish a trust relationship with AWS in the trust policy
+ userArn:
+ type: string
+ description: the aws user arn used to assume the aws role
+ example: "arn:aws:iam::123456789001:user/abc1-b-self1234"
+ required:
+ - roleArn
+
+ AzureStorageConfigInfo:
+ type: object
+ description: azure storage configuration info
+ allOf:
+ - $ref: '#/components/schemas/StorageConfigInfo'
+ properties:
+ tenantId:
+ type: string
+ description: the tenant id that the storage accounts belong to
+ multiTenantAppName:
+ type: string
+ description: the name of the azure client application
+ consentUrl:
+ type: string
+ description: URL to the Azure permissions request page
+ required:
+ - tenantId
+
+ GcpStorageConfigInfo:
+ type: object
+ description: gcp storage configuration info
+ allOf:
+ - $ref: '#/components/schemas/StorageConfigInfo'
+ properties:
+ gcsServiceAccount:
+ type: string
+ description: a Google cloud storage service account
+
+ FileStorageConfigInfo:
+ type: object
+ description: gcp storage configuration info
+ allOf:
+ - $ref: '#/components/schemas/StorageConfigInfo'
+
+ UpdateCatalogRequest:
+ description: Updates to apply to a Catalog
+ type: object
+ properties:
+ currentEntityVersion:
+ type: integer
+ description: The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ storageConfigInfo:
+ $ref: "#/components/schemas/StorageConfigInfo"
+
+ Principals:
+ description: A list of Principals
+ type: object
+ properties:
+ principals:
+ type: array
+ items:
+ $ref: "#/components/schemas/Principal"
+ required:
+ - principals
+
+ PrincipalWithCredentials:
+ description: A user with its client id and secret. This type is returned when a new principal is created or when its
+ credentials are rotated
+ type: object
+ properties:
+ principal:
+ $ref: "#/components/schemas/Principal"
+ credentials:
+ type: object
+ properties:
+ clientId:
+ type: string
+ clientSecret:
+ type: string
+ format: password
+ required:
+ - principal
+ - credentials
+
+ CreatePrincipalRequest:
+ type: object
+ properties:
+ principal:
+ $ref: '#/components/schemas/Principal'
+ credentialRotationRequired:
+ type: boolean
+ description: If true, the initial credentials can only be used to call rotateCredentials
+
+ Principal:
+ description: A Polaris principal.
+ type: object
+ properties:
+ name:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ clientId:
+ type: string
+ description: The output-only OAuth clientId associated with this principal if applicable
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ createTimestamp:
+ type: integer
+ format: "int64"
+ lastUpdateTimestamp:
+ type: integer
+ format: "int64"
+ entityVersion:
+ type: integer
+ description: The version of the principal object used to determine if the principal metadata has changed
+ required:
+ - name
+
+ UpdatePrincipalRequest:
+ description: Updates to apply to a Principal
+ type: object
+ properties:
+ currentEntityVersion:
+ type: integer
+ description: The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ required:
+ - currentEntityVersion
+ - properties
+
+ PrincipalRoles:
+ type: object
+ properties:
+ roles:
+ type: array
+ items:
+ $ref: "#/components/schemas/PrincipalRole"
+ required:
+ - roles
+
+ GrantPrincipalRoleRequest:
+ type: object
+ properties:
+ principalRole:
+ $ref: '#/components/schemas/PrincipalRole'
+
+ CreatePrincipalRoleRequest:
+ type: object
+ properties:
+ principalRole:
+ $ref: '#/components/schemas/PrincipalRole'
+
+ PrincipalRole:
+ type: object
+ properties:
+ name:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ description: The name of the role
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ createTimestamp:
+ type: integer
+ format: "int64"
+ lastUpdateTimestamp:
+ type: integer
+ format: "int64"
+ entityVersion:
+ type: integer
+ description: The version of the principal role object used to determine if the principal role metadata has changed
+ required:
+ - name
+
+ UpdatePrincipalRoleRequest:
+ description: Updates to apply to a Principal Role
+ type: object
+ properties:
+ currentEntityVersion:
+ type: integer
+ description: The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ required:
+ - currentEntityVersion
+ - properties
+
+ CatalogRoles:
+ type: object
+ properties:
+ roles:
+ type: array
+ items:
+ $ref: "#/components/schemas/CatalogRole"
+ description: The list of catalog roles
+ required:
+ - roles
+
+ GrantCatalogRoleRequest:
+ type: object
+ properties:
+ catalogRole:
+ $ref: '#/components/schemas/CatalogRole'
+
+ CreateCatalogRoleRequest:
+ type: object
+ properties:
+ catalogRole:
+ $ref: '#/components/schemas/CatalogRole'
+
+ CatalogRole:
+ type: object
+ properties:
+ name:
+ type: string
+ minLength: 1
+ maxLength: 256
+ pattern: '^(?!\s*[s|S][y|Y][s|S][t|T][e|E][m|M]\$).*$'
+ description: The name of the role
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ createTimestamp:
+ type: integer
+ format: "int64"
+ lastUpdateTimestamp:
+ type: integer
+ format: "int64"
+ entityVersion:
+ type: integer
+ description: The version of the catalog role object used to determine if the catalog role metadata has changed
+ required:
+ - name
+
+ UpdateCatalogRoleRequest:
+ description: Updates to apply to a Catalog Role
+ type: object
+ properties:
+ currentEntityVersion:
+ type: integer
+ description: The version of the object onto which this update is applied; if the object changed, the update will fail and the caller should retry after fetching the latest version.
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ required:
+ - currentEntityVersion
+ - properties
+
+ ViewPrivilege:
+ type: string
+ enum:
+ - CATALOG_MANAGE_ACCESS
+ - VIEW_CREATE
+ - VIEW_DROP
+ - VIEW_LIST
+ - VIEW_READ_PROPERTIES
+ - VIEW_WRITE_PROPERTIES
+ - VIEW_FULL_METADATA
+
+ TablePrivilege:
+ type: string
+ enum:
+ - CATALOG_MANAGE_ACCESS
+ - TABLE_DROP
+ - TABLE_LIST
+ - TABLE_READ_PROPERTIES
+ - VIEW_READ_PROPERTIES
+ - TABLE_WRITE_PROPERTIES
+ - TABLE_READ_DATA
+ - TABLE_WRITE_DATA
+ - TABLE_FULL_METADATA
+
+ NamespacePrivilege:
+ type: string
+ enum:
+ - CATALOG_MANAGE_ACCESS
+ - CATALOG_MANAGE_CONTENT
+ - CATALOG_MANAGE_METADATA
+ - NAMESPACE_CREATE
+ - TABLE_CREATE
+ - VIEW_CREATE
+ - NAMESPACE_DROP
+ - TABLE_DROP
+ - VIEW_DROP
+ - NAMESPACE_LIST
+ - TABLE_LIST
+ - VIEW_LIST
+ - NAMESPACE_READ_PROPERTIES
+ - TABLE_READ_PROPERTIES
+ - VIEW_READ_PROPERTIES
+ - NAMESPACE_WRITE_PROPERTIES
+ - TABLE_WRITE_PROPERTIES
+ - VIEW_WRITE_PROPERTIES
+ - TABLE_READ_DATA
+ - TABLE_WRITE_DATA
+ - NAMESPACE_FULL_METADATA
+ - TABLE_FULL_METADATA
+ - VIEW_FULL_METADATA
+
+ CatalogPrivilege:
+ type: string
+ enum:
+ - CATALOG_MANAGE_ACCESS
+ - CATALOG_MANAGE_CONTENT
+ - CATALOG_MANAGE_METADATA
+ - CATALOG_READ_PROPERTIES
+ - CATALOG_WRITE_PROPERTIES
+ - NAMESPACE_CREATE
+ - TABLE_CREATE
+ - VIEW_CREATE
+ - NAMESPACE_DROP
+ - TABLE_DROP
+ - VIEW_DROP
+ - NAMESPACE_LIST
+ - TABLE_LIST
+ - VIEW_LIST
+ - NAMESPACE_READ_PROPERTIES
+ - TABLE_READ_PROPERTIES
+ - VIEW_READ_PROPERTIES
+ - NAMESPACE_WRITE_PROPERTIES
+ - TABLE_WRITE_PROPERTIES
+ - VIEW_WRITE_PROPERTIES
+ - TABLE_READ_DATA
+ - TABLE_WRITE_DATA
+ - NAMESPACE_FULL_METADATA
+ - TABLE_FULL_METADATA
+ - VIEW_FULL_METADATA
+
+ AddGrantRequest:
+ type: object
+ properties:
+ grant:
+ $ref: '#/components/schemas/GrantResource'
+
+ RevokeGrantRequest:
+ type: object
+ properties:
+ grant:
+ $ref: '#/components/schemas/GrantResource'
+
+ ViewGrant:
+ allOf:
+ - $ref: '#/components/schemas/GrantResource'
+ - type: object
+ properties:
+ namespace:
+ type: array
+ items:
+ type: string
+ viewName:
+ type: string
+ minLength: 1
+ maxLength: 256
+ privilege:
+ $ref: '#/components/schemas/ViewPrivilege'
+ required:
+ - namespace
+ - viewName
+ - privilege
+
+ TableGrant:
+ allOf:
+ - $ref: '#/components/schemas/GrantResource'
+ - type: object
+ properties:
+ namespace:
+ type: array
+ items:
+ type: string
+ tableName:
+ type: string
+ minLength: 1
+ maxLength: 256
+ privilege:
+ $ref: '#/components/schemas/TablePrivilege'
+ required:
+ - namespace
+ - tableName
+ - privilege
+
+ NamespaceGrant:
+ allOf:
+ - $ref: '#/components/schemas/GrantResource'
+ - type: object
+ properties:
+ namespace:
+ type: array
+ items:
+ type: string
+ privilege:
+ $ref: '#/components/schemas/NamespacePrivilege'
+ required:
+ - namespace
+ - privilege
+
+
+ CatalogGrant:
+ allOf:
+ - $ref: '#/components/schemas/GrantResource'
+ - type: object
+ properties:
+ privilege:
+ $ref: '#/components/schemas/CatalogPrivilege'
+ required:
+ - privilege
+
+ GrantResource:
+ type: object
+ discriminator:
+ propertyName: type
+ mapping:
+ catalog: '#/components/schemas/CatalogGrant'
+ namespace: '#/components/schemas/NamespaceGrant'
+ table: '#/components/schemas/TableGrant'
+ view: '#/components/schemas/ViewGrant'
+ properties:
+ type:
+ type: string
+ enum:
+ - catalog
+ - namespace
+ - table
+ - view
+ required:
+ - type
+
+ GrantResources:
+ type: object
+ properties:
+ grants:
+ type: array
+ items:
+ $ref: "#/components/schemas/GrantResource"
+ required:
+ - grants
diff --git a/site/content/in-dev/unreleased/openapi/rest-catalog-open-api.yaml b/site/content/in-dev/unreleased/openapi/rest-catalog-open-api.yaml
new file mode 100644
index 00000000..7cd966b9
--- /dev/null
+++ b/site/content/in-dev/unreleased/openapi/rest-catalog-open-api.yaml
@@ -0,0 +1,4085 @@
+#
+# 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.3
+info:
+ title: Apache Iceberg REST Catalog API
+ license:
+ name: Apache 2.0
+ url: https://www.apache.org/licenses/LICENSE-2.0.html
+ version: 0.0.1
+ description:
+ Defines the specification for the first version of the REST Catalog API.
+ Implementations should ideally support both Iceberg table specs v1 and v2, with priority given to v2.
+servers:
+ - url: "{scheme}://{host}/{basePath}"
+ description: Server URL when the port can be inferred from the scheme
+ variables:
+ scheme:
+ description: The scheme of the URI, either http or https.
+ default: https
+ host:
+ description: The host address for the specified server
+ default: localhost
+ basePath:
+ description: Optional prefix to be appended to all routes
+ default: ""
+ - url: "{scheme}://{host}:{port}/{basePath}"
+ description: Generic base server URL, with all parts configurable
+ variables:
+ scheme:
+ description: The scheme of the URI, either http or https.
+ default: https
+ host:
+ description: The host address for the specified server
+ default: localhost
+ port:
+ description: The port used when addressing the host
+ default: "443"
+ basePath:
+ description: Optional prefix to be appended to all routes
+ default: ""
+# All routes are currently configured using an Authorization header.
+security:
+ - OAuth2: [catalog]
+ - BearerAuth: []
+
+paths:
+ /v1/config:
+
+ get:
+ tags:
+ - Configuration API
+ summary: List all catalog configuration settings
+ operationId: getConfig
+ parameters:
+ - name: warehouse
+ in: query
+ required: false
+ schema:
+ type: string
+ description: Warehouse location or identifier to request from the service
+ description:
+ "
+ All REST clients should first call this route to get catalog configuration
+ properties from the server to configure the catalog and its HTTP client.
+ Configuration from the server consists of two sets of key/value pairs.
+
+ - defaults - properties that should be used as default configuration; applied before client configuration
+
+ - overrides - properties that should be used to override client configuration; applied after defaults and client configuration
+
+
+ Catalog configuration is constructed by setting the defaults, then client-
+ provided configuration, and finally overrides. The final property set is then
+ used to configure the catalog.
+
+
+ For example, a default configuration property might set the size of the
+ client pool, which can be replaced with a client-specific setting. An
+ override might be used to set the warehouse location, which is stored
+ on the server rather than in client configuration.
+
+
+ Common catalog configuration settings are documented at
+ https://iceberg.apache.org/docs/latest/configuration/#catalog-properties
+ "
+ responses:
+ 200:
+ description: Server specified configuration values.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CatalogConfig'
+ example: {
+ "overrides": {
+ "warehouse": "s3://bucket/warehouse/"
+ },
+ "defaults": {
+ "clients": "4"
+ }
+ }
+ 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/oauth/tokens:
+
+ post:
+ tags:
+ - OAuth2 API
+ summary: Get a token using an OAuth2 flow (DEPRECATED for REMOVAL)
+ deprecated: true
+ operationId: getToken
+ description:
+ The `oauth/tokens` endpoint is **DEPRECATED for REMOVAL**. It is _not_ recommended to
+ implement this endpoint, unless you are fully aware of the potential security implications.
+
+ All clients are encouraged to explicitly set the configuration property `oauth2-server-uri`
+ to the correct OAuth endpoint.
+
+ Deprecated since Iceberg (Java) 1.6.0. The endpoint and related types will be removed from
+ this spec in Iceberg (Java) 2.0.
+
+ See [Security improvements in the Iceberg REST specification](https://github.com/apache/iceberg/issues/10537)
+
+
+ Exchange credentials for a token using the OAuth2 client credentials flow or token exchange.
+
+
+ This endpoint is used for three purposes -
+
+ 1. To exchange client credentials (client ID and secret) for an access token
+ This uses the client credentials flow.
+
+ 2. To exchange a client token and an identity token for a more specific access token
+ This uses the token exchange flow.
+
+ 3. To exchange an access token for one with the same claims and a refreshed expiration period
+ This uses the token exchange flow.
+
+
+ For example, a catalog client may be configured with client credentials from the OAuth2
+ Authorization flow. This client would exchange its client ID and secret for an access token
+ using the client credentials request with this endpoint (1). Subsequent requests would then
+ use that access token.
+
+
+ Some clients may also handle sessions that have additional user context. These clients would
+ use the token exchange flow to exchange a user token (the "subject" token) from the session
+ for a more specific access token for that user, using the catalog's access token as the
+ "actor" token (2). The user ID token is the "subject" token and can be any token type
+ allowed by the OAuth2 token exchange flow, including a unsecured JWT token with a sub claim.
+ This request should use the catalog's bearer token in the "Authorization" header.
+
+
+ Clients may also use the token exchange flow to refresh a token that is about to expire by
+ sending a token exchange request (3). The request's "subject" token should be the expiring
+ token. This request should use the subject token in the "Authorization" header.
+ requestBody:
+ required: true
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ $ref: '#/components/schemas/OAuthTokenRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/OAuthTokenResponse'
+ 400:
+ $ref: '#/components/responses/OAuthErrorResponse'
+ 401:
+ $ref: '#/components/responses/OAuthErrorResponse'
+ 5XX:
+ $ref: '#/components/responses/OAuthErrorResponse'
+
+ /v1/{prefix}/namespaces:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+
+ get:
+ tags:
+ - Catalog API
+ summary: List namespaces, optionally providing a parent namespace to list underneath
+ description:
+ List all namespaces at a certain level, optionally starting from a given parent namespace.
+ If table accounting.tax.paid.info exists, using 'SELECT NAMESPACE IN accounting' would
+ translate into `GET /namespaces?parent=accounting` and must return a namespace, ["accounting", "tax"] only.
+ Using 'SELECT NAMESPACE IN accounting.tax' would
+ translate into `GET /namespaces?parent=accounting%1Ftax` and must return a namespace, ["accounting", "tax", "paid"].
+ If `parent` is not provided, all top-level namespaces should be listed.
+ operationId: listNamespaces
+ parameters:
+ - $ref: '#/components/parameters/page-token'
+ - $ref: '#/components/parameters/page-size'
+ - name: parent
+ in: query
+ description:
+ An optional namespace, underneath which to list namespaces.
+ If not provided or empty, all top-level namespaces should be listed.
+ If parent is a multipart namespace, the parts must be separated by the unit separator (`0x1F`) byte.
+ required: false
+ allowEmptyValue: true
+ schema:
+ type: string
+ example: "accounting%1Ftax"
+ responses:
+ 200:
+ $ref: '#/components/responses/ListNamespacesResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - Namespace provided in the `parent` query parameter is not found.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NoSuchNamespaceExample:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Create a namespace
+ description:
+ Create a namespace, with an optional set of properties.
+ The server might also add properties, such as `last_modified_time` etc.
+ operationId: createNamespace
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateNamespaceRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/CreateNamespaceResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 406:
+ $ref: '#/components/responses/UnsupportedOperationResponse'
+ 409:
+ description: Conflict - The namespace already exists
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NamespaceAlreadyExists:
+ $ref: '#/components/examples/NamespaceAlreadyExistsError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+
+ get:
+ tags:
+ - Catalog API
+ summary: Load the metadata properties for a namespace
+ operationId: loadNamespaceMetadata
+ description: Return all stored metadata properties for a given namespace
+ responses:
+ 200:
+ $ref: '#/components/responses/GetNamespaceResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - Namespace not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NoSuchNamespaceExample:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ head:
+ tags:
+ - Catalog API
+ summary: Check if a namespace exists
+ operationId: namespaceExists
+ description:
+ Check if a namespace exists. The response does not contain a body.
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - Namespace not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NoSuchNamespaceExample:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ delete:
+ tags:
+ - Catalog API
+ summary: Drop a namespace from the catalog. Namespace must be empty.
+ operationId: dropNamespace
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - Namespace to delete does not exist.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NoSuchNamespaceExample:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/properties:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Set or remove properties on a namespace
+ operationId: updateProperties
+ description:
+ Set and/or remove properties on a namespace.
+ The request body specifies a list of properties to remove and a map
+ of key value pairs to update.
+
+ Properties that are not in the request are not modified or removed by this call.
+
+ Server implementations are not required to support namespace properties.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateNamespacePropertiesRequest'
+ examples:
+ UpdateAndRemoveProperties:
+ $ref: '#/components/examples/UpdateAndRemoveNamespacePropertiesRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/UpdateNamespacePropertiesResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - Namespace not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NamespaceNotFound:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 406:
+ $ref: '#/components/responses/UnsupportedOperationResponse'
+ 422:
+ description: Unprocessable Entity - A property key was included in both `removals` and `updates`
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ UnprocessableEntityDuplicateKey:
+ $ref: '#/components/examples/UnprocessableEntityDuplicateKey'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/tables:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+
+ get:
+ tags:
+ - Catalog API
+ summary: List all table identifiers underneath a given namespace
+ description: Return all table identifiers under this namespace
+ operationId: listTables
+ parameters:
+ - $ref: '#/components/parameters/page-token'
+ - $ref: '#/components/parameters/page-size'
+ responses:
+ 200:
+ $ref: '#/components/responses/ListTablesResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - The namespace specified does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NamespaceNotFound:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Create a table in the given namespace
+ description:
+ Create a table or start a create transaction, like atomic CTAS.
+
+
+ If `stage-create` is false, the table is created immediately.
+
+
+ If `stage-create` is true, the table is not created, but table metadata is initialized and returned.
+ The service should prepare as needed for a commit to the table commit endpoint to complete the create
+ transaction. The client uses the returned metadata to begin a transaction. To commit the transaction,
+ the client sends all create and subsequent changes to the table commit route. Changes from the table
+ create operation include changes like AddSchemaUpdate and SetCurrentSchemaUpdate that set the initial
+ table state.
+ operationId: createTable
+ parameters:
+ - $ref: '#/components/parameters/data-access'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateTableRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/CreateTableResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - The namespace specified does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NamespaceNotFound:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 409:
+ description: Conflict - The table already exists
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NamespaceAlreadyExists:
+ $ref: '#/components/examples/TableAlreadyExistsError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/register:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Register a table in the given namespace using given metadata file location
+ description:
+ Register a table using given metadata file location.
+
+ operationId: registerTable
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RegisterTableRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/LoadTableResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - The namespace specified does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NamespaceNotFound:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 409:
+ description: Conflict - The table already exists
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ NamespaceAlreadyExists:
+ $ref: '#/components/examples/TableAlreadyExistsError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/tables/{table}:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+ - $ref: '#/components/parameters/table'
+
+ get:
+ tags:
+ - Catalog API
+ summary: Load a table from the catalog
+ operationId: loadTable
+ description:
+ Load a table from the catalog.
+
+
+ The response contains both configuration and table metadata. The configuration, if non-empty is used
+ as additional configuration for the table that overrides catalog configuration. For example, this
+ configuration may change the FileIO implementation to be used for the table.
+
+
+ The response also contains the table's full metadata, matching the table metadata JSON file.
+
+
+ The catalog configuration may contain credentials that should be used for subsequent requests for the
+ table. The configuration key "token" is used to pass an access token to be used as a bearer token
+ for table requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration
+ key. For example, "urn:ietf:params:oauth:token-type:jwt=<JWT-token>".
+ parameters:
+ - $ref: '#/components/parameters/data-access'
+ - in: query
+ name: snapshots
+ description:
+ The snapshots to return in the body of the metadata. Setting the value to `all` would
+ return the full set of snapshots currently valid for the table. Setting the value to
+ `refs` would load all snapshots referenced by branches or tags.
+
+ Default if no param is provided is `all`.
+ required: false
+ schema:
+ type: string
+ enum: [ all, refs ]
+ responses:
+ 200:
+ $ref: '#/components/responses/LoadTableResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchTableException, table to load does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ TableToLoadDoesNotExist:
+ $ref: '#/components/examples/NoSuchTableError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Commit updates to a table
+ operationId: updateTable
+ description:
+ Commit updates to a table.
+
+
+ Commits have two parts, requirements and updates. Requirements are assertions that will be validated
+ before attempting to make and commit changes. For example, `assert-ref-snapshot-id` will check that a
+ named ref's snapshot ID has a certain value.
+
+
+ Updates are changes to make to table metadata. For example, after asserting that the current main ref
+ is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new
+ snapshot id.
+
+
+ Create table transactions that are started by createTable with `stage-create` set to true are
+ committed using this route. Transactions should include all changes to the table, including table
+ initialization, like AddSchemaUpdate and SetCurrentSchemaUpdate. The `assert-create` requirement is
+ used to ensure that the table was not created concurrently.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CommitTableRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/CommitTableResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchTableException, table to load does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ TableToUpdateDoesNotExist:
+ $ref: '#/components/examples/NoSuchTableError'
+ 409:
+ description:
+ Conflict - CommitFailedException, one or more requirements failed. The client may retry.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 500:
+ description:
+ An unknown server-side problem occurred; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Internal Server Error",
+ "type": "CommitStateUnknownException",
+ "code": 500
+ }
+ }
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 502:
+ description:
+ A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Invalid response from the upstream server",
+ "type": "CommitStateUnknownException",
+ "code": 502
+ }
+ }
+ 504:
+ description:
+ A server-side gateway timeout occurred; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Gateway timed out during commit",
+ "type": "CommitStateUnknownException",
+ "code": 504
+ }
+ }
+ 5XX:
+ description:
+ A server-side problem that might not be addressable on the client.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Bad Gateway",
+ "type": "InternalServerError",
+ "code": 502
+ }
+ }
+
+ delete:
+ tags:
+ - Catalog API
+ summary: Drop a table from the catalog
+ operationId: dropTable
+ description: Remove a table from the catalog
+ parameters:
+ - name: purgeRequested
+ in: query
+ required: false
+ description: Whether the user requested to purge the underlying table's data and metadata
+ schema:
+ type: boolean
+ default: false
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchTableException, Table to drop does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ TableToDeleteDoesNotExist:
+ $ref: '#/components/examples/NoSuchTableError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ head:
+ tags:
+ - Catalog API
+ summary: Check if a table exists
+ operationId: tableExists
+ description:
+ Check if a table exists within a given namespace. The response does not contain a body.
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchTableException, Table not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ TableToLoadDoesNotExist:
+ $ref: '#/components/examples/NoSuchTableError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/tables/rename:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Rename a table from its current name to a new name
+ description:
+ Rename a table from one identifier to another. It's valid to move a table
+ across namespaces, but the server implementation is not required to support it.
+ operationId: renameTable
+ requestBody:
+ description: Current table identifier to rename and new table identifier to rename to
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RenameTableRequest'
+ examples:
+ RenameTableSameNamespace:
+ $ref: '#/components/examples/RenameTableSameNamespace'
+ required: true
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found
+ - NoSuchTableException, Table to rename does not exist
+ - NoSuchNamespaceException, The target namespace of the new table identifier does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ TableToRenameDoesNotExist:
+ $ref: '#/components/examples/NoSuchTableError'
+ NamespaceToRenameToDoesNotExist:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 406:
+ $ref: '#/components/responses/UnsupportedOperationResponse'
+ 409:
+ description: Conflict - The target identifier to rename to already exists as a table or view
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example:
+ $ref: '#/components/examples/TableAlreadyExistsError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/tables/{table}/metrics:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+ - $ref: '#/components/parameters/table'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Send a metrics report to this endpoint to be processed by the backend
+ operationId: reportMetrics
+ requestBody:
+ description: The request containing the metrics report to be sent
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ReportMetricsRequest'
+ required: true
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchTableException, table to load does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ TableToLoadDoesNotExist:
+ $ref: '#/components/examples/NoSuchTableError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/transactions/commit:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Commit updates to multiple tables in an atomic operation
+ operationId: commitTransaction
+ requestBody:
+ description:
+ Commit updates to multiple tables in an atomic operation
+
+
+ A commit for a single table consists of a table identifier with requirements and updates.
+ Requirements are assertions that will be validated before attempting to make and commit changes.
+ For example, `assert-ref-snapshot-id` will check that a named ref's snapshot ID has a certain value.
+
+
+ Updates are changes to make to table metadata. For example, after asserting that the current main ref
+ is at the expected snapshot, a commit may add a new child snapshot and set the ref to the new
+ snapshot id.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CommitTransactionRequest'
+ required: true
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchTableException, table to load does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ examples:
+ TableToUpdateDoesNotExist:
+ $ref: '#/components/examples/NoSuchTableError'
+ 409:
+ description:
+ Conflict - CommitFailedException, one or more requirements failed. The client may retry.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 500:
+ description:
+ An unknown server-side problem occurred; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Internal Server Error",
+ "type": "CommitStateUnknownException",
+ "code": 500
+ }
+ }
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 502:
+ description:
+ A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Invalid response from the upstream server",
+ "type": "CommitStateUnknownException",
+ "code": 502
+ }
+ }
+ 504:
+ description:
+ A server-side gateway timeout occurred; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Gateway timed out during commit",
+ "type": "CommitStateUnknownException",
+ "code": 504
+ }
+ }
+ 5XX:
+ description:
+ A server-side problem that might not be addressable on the client.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/IcebergErrorResponse'
+ example: {
+ "error": {
+ "message": "Bad Gateway",
+ "type": "InternalServerError",
+ "code": 502
+ }
+ }
+
+ /v1/{prefix}/namespaces/{namespace}/views:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+
+ get:
+ tags:
+ - Catalog API
+ summary: List all view identifiers underneath a given namespace
+ description: Return all view identifiers under this namespace
+ operationId: listViews
+ parameters:
+ - $ref: '#/components/parameters/page-token'
+ - $ref: '#/components/parameters/page-size'
+ responses:
+ 200:
+ $ref: '#/components/responses/ListTablesResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - The namespace specified does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ examples:
+ NamespaceNotFound:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Create a view in the given namespace
+ description:
+ Create a view in the given namespace.
+ operationId: createView
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateViewRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/LoadViewResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description: Not Found - The namespace specified does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ examples:
+ NamespaceNotFound:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 409:
+ description: Conflict - The view already exists
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ examples:
+ NamespaceAlreadyExists:
+ $ref: '#/components/examples/ViewAlreadyExistsError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/namespaces/{namespace}/views/{view}:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+ - $ref: '#/components/parameters/namespace'
+ - $ref: '#/components/parameters/view'
+
+ get:
+ tags:
+ - Catalog API
+ summary: Load a view from the catalog
+ operationId: loadView
+ description:
+ Load a view from the catalog.
+
+
+ The response contains both configuration and view metadata. The configuration, if non-empty is used
+ as additional configuration for the view that overrides catalog configuration.
+
+
+ The response also contains the view's full metadata, matching the view metadata JSON file.
+
+
+ The catalog configuration may contain credentials that should be used for subsequent requests for the
+ view. The configuration key "token" is used to pass an access token to be used as a bearer token
+ for view requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration
+ key. For example, "urn:ietf:params:oauth:token-type:jwt=<JWT-token>".
+ responses:
+ 200:
+ $ref: '#/components/responses/LoadViewResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchViewException, view to load does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ examples:
+ ViewToLoadDoesNotExist:
+ $ref: '#/components/examples/NoSuchViewError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Replace a view
+ operationId: replaceView
+ description:
+ Commit updates to a view.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CommitViewRequest'
+ responses:
+ 200:
+ $ref: '#/components/responses/LoadViewResponse'
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchViewException, view to load does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ examples:
+ ViewToUpdateDoesNotExist:
+ $ref: '#/components/examples/NoSuchViewError'
+ 409:
+ description:
+ Conflict - CommitFailedException. The client may retry.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 500:
+ description:
+ An unknown server-side problem occurred; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ example: {
+ "error": {
+ "message": "Internal Server Error",
+ "type": "CommitStateUnknownException",
+ "code": 500
+ }
+ }
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 502:
+ description:
+ A gateway or proxy received an invalid response from the upstream server; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ example: {
+ "error": {
+ "message": "Invalid response from the upstream server",
+ "type": "CommitStateUnknownException",
+ "code": 502
+ }
+ }
+ 504:
+ description:
+ A server-side gateway timeout occurred; the commit state is unknown.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ example: {
+ "error": {
+ "message": "Gateway timed out during commit",
+ "type": "CommitStateUnknownException",
+ "code": 504
+ }
+ }
+ 5XX:
+ description:
+ A server-side problem that might not be addressable on the client.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ example: {
+ "error": {
+ "message": "Bad Gateway",
+ "type": "InternalServerError",
+ "code": 502
+ }
+ }
+
+ delete:
+ tags:
+ - Catalog API
+ summary: Drop a view from the catalog
+ operationId: dropView
+ description: Remove a view from the catalog
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found - NoSuchViewException, view to drop does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ examples:
+ ViewToDeleteDoesNotExist:
+ $ref: '#/components/examples/NoSuchViewError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ head:
+ tags:
+ - Catalog API
+ summary: Check if a view exists
+ operationId: viewExists
+ description:
+ Check if a view exists within a given namespace. This request does not return a response body.
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ description: Bad Request
+ 401:
+ description: Unauthorized
+ 404:
+ description: Not Found
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+ /v1/{prefix}/views/rename:
+ parameters:
+ - $ref: '#/components/parameters/prefix'
+
+ post:
+ tags:
+ - Catalog API
+ summary: Rename a view from its current name to a new name
+ description:
+ Rename a view from one identifier to another. It's valid to move a view
+ across namespaces, but the server implementation is not required to support it.
+ operationId: renameView
+ requestBody:
+ description: Current view identifier to rename and new view identifier to rename to
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RenameTableRequest'
+ examples:
+ RenameViewSameNamespace:
+ $ref: '#/components/examples/RenameViewSameNamespace'
+ required: true
+ responses:
+ 204:
+ description: Success, no content
+ 400:
+ $ref: '#/components/responses/BadRequestErrorResponse'
+ 401:
+ $ref: '#/components/responses/UnauthorizedResponse'
+ 403:
+ $ref: '#/components/responses/ForbiddenResponse'
+ 404:
+ description:
+ Not Found
+ - NoSuchViewException, view to rename does not exist
+ - NoSuchNamespaceException, The target namespace of the new identifier does not exist
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ examples:
+ ViewToRenameDoesNotExist:
+ $ref: '#/components/examples/NoSuchViewError'
+ NamespaceToRenameToDoesNotExist:
+ $ref: '#/components/examples/NoSuchNamespaceError'
+ 406:
+ $ref: '#/components/responses/UnsupportedOperationResponse'
+ 409:
+ description: Conflict - The target identifier to rename to already exists as a table or view
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorModel'
+ example:
+ $ref: '#/components/examples/ViewAlreadyExistsError'
+ 419:
+ $ref: '#/components/responses/AuthenticationTimeoutResponse'
+ 503:
+ $ref: '#/components/responses/ServiceUnavailableResponse'
+ 5XX:
+ $ref: '#/components/responses/ServerErrorResponse'
+
+
+components:
+ #######################################################
+ # Common Parameter Definitions Used In Several Routes #
+ #######################################################
+ parameters:
+ namespace:
+ name: namespace
+ in: path
+ required: true
+ description:
+ A namespace identifier as a single string.
+ Multipart namespace parts should be separated by the unit separator (`0x1F`) byte.
+ schema:
+ type: string
+ examples:
+ singlepart_namespace:
+ value: "accounting"
+ multipart_namespace:
+ value: "accounting%1Ftax"
+
+ prefix:
+ name: prefix
+ in: path
+ schema:
+ type: string
+ required: true
+ description: An optional prefix in the path
+
+ table:
+ name: table
+ in: path
+ description: A table name
+ required: true
+ schema:
+ type: string
+ example: "sales"
+
+ view:
+ name: view
+ in: path
+ description: A view name
+ required: true
+ schema:
+ type: string
+ example: "sales"
+
+ data-access:
+ name: X-Iceberg-Access-Delegation
+ in: header
+ description: >
+ Optional signal to the server that the client supports delegated access
+ via a comma-separated list of access mechanisms. The server may choose
+ to supply access via any or none of the requested mechanisms.
+
+
+ Specific properties and handling for `vended-credentials` is documented
+ in the `LoadTableResult` schema section of this spec document.
+
+
+ The protocol and specification for `remote-signing` is documented in
+ the `s3-signer-open-api.yaml` OpenApi spec in the `aws` module.
+
+ required: false
+ schema:
+ type: string
+ enum:
+ - vended-credentials
+ - remote-signing
+ style: simple
+ explode: false
+ example: "vended-credentials,remote-signing"
+
+ page-token:
+ name: pageToken
+ in: query
+ required: false
+ allowEmptyValue: true
+ schema:
+ $ref: '#/components/schemas/PageToken'
+
+ page-size:
+ name: pageSize
+ in: query
+ description:
+ For servers that support pagination, this signals an upper bound of the number of results that a client will receive.
+ For servers that do not support pagination, clients may receive results larger than the indicated `pageSize`.
+ required: false
+ schema:
+ type: integer
+ minimum: 1
+
+ ##############################
+ # Application Schema Objects #
+ ##############################
+ schemas:
+
+ ErrorModel:
+ type: object
+ description: JSON error payload returned in a response with further details on the error
+ required:
+ - message
+ - type
+ - code
+ properties:
+ message:
+ type: string
+ description: Human-readable error message
+ type:
+ type: string
+ description: Internal type definition of the error
+ example: NoSuchNamespaceException
+ code:
+ type: integer
+ minimum: 400
+ maximum: 600
+ description: HTTP response code
+ example: 404
+ stack:
+ type: array
+ items:
+ type: string
+
+ CatalogConfig:
+ type: object
+ description: Server-provided configuration for the catalog.
+ required:
+ - defaults
+ - overrides
+ properties:
+ overrides:
+ type: object
+ additionalProperties:
+ type: string
+ description:
+ Properties that should be used to override client configuration; applied after defaults and client configuration.
+ defaults:
+ type: object
+ additionalProperties:
+ type: string
+ description:
+ Properties that should be used as default configuration; applied before client configuration.
+
+ CreateNamespaceRequest:
+ type: object
+ required:
+ - namespace
+ properties:
+ namespace:
+ $ref: '#/components/schemas/Namespace'
+ properties:
+ type: object
+ description: Configured string to string map of properties for the namespace
+ example: { "owner": "Hank Bendickson" }
+ default: { }
+ additionalProperties:
+ type: string
+
+ UpdateNamespacePropertiesRequest:
+ type: object
+ properties:
+ removals:
+ type: array
+ uniqueItems: true
+ items:
+ type: string
+ example: [ "department", "access_group" ]
+ updates:
+ type: object
+ example: { "owner": "Hank Bendickson" }
+ additionalProperties:
+ type: string
+
+ RenameTableRequest:
+ type: object
+ required:
+ - source
+ - destination
+ properties:
+ source:
+ $ref: '#/components/schemas/TableIdentifier'
+ destination:
+ $ref: '#/components/schemas/TableIdentifier'
+
+ Namespace:
+ description: Reference to one or more levels of a namespace
+ type: array
+ items:
+ type: string
+ example: [ "accounting", "tax" ]
+
+ PageToken:
+ description:
+ An opaque token that allows clients to make use of pagination for list APIs
+ (e.g. ListTables). Clients may initiate the first paginated request by sending an empty
+ query parameter `pageToken` to the server.
+
+ Servers that support pagination should identify the `pageToken` parameter and return a
+ `next-page-token` in the response if there are more results available. After the initial
+ request, the value of `next-page-token` from each response must be used as the `pageToken`
+ parameter value for the next request. The server must return `null` value for the
+ `next-page-token` in the last response.
+
+ Servers that support pagination must return all results in a single response with the value
+ of `next-page-token` set to `null` if the query parameter `pageToken` is not set in the
+ request.
+
+ Servers that do not support pagination should ignore the `pageToken` parameter and return
+ all results in a single response. The `next-page-token` must be omitted from the response.
+
+ Clients must interpret either `null` or missing response value of `next-page-token` as
+ the end of the listing results.
+
+ type: string
+ nullable: true
+
+ TableIdentifier:
+ type: object
+ required:
+ - namespace
+ - name
+ properties:
+ namespace:
+ $ref: '#/components/schemas/Namespace'
+ name:
+ type: string
+ nullable: false
+
+ PrimitiveType:
+ type: string
+ example:
+ - "long"
+ - "string"
+ - "fixed[16]"
+ - "decimal(10,2)"
+
+ StructField:
+ type: object
+ required:
+ - id
+ - name
+ - type
+ - required
+ properties:
+ id:
+ type: integer
+ name:
+ type: string
+ type:
+ $ref: '#/components/schemas/Type'
+ required:
+ type: boolean
+ doc:
+ type: string
+
+ StructType:
+ type: object
+ required:
+ - type
+ - fields
+ properties:
+ type:
+ type: string
+ enum: ["struct"]
+ fields:
+ type: array
+ items:
+ $ref: '#/components/schemas/StructField'
+
+ ListType:
+ type: object
+ required:
+ - type
+ - element-id
+ - element
+ - element-required
+ properties:
+ type:
+ type: string
+ enum: ["list"]
+ element-id:
+ type: integer
+ element:
+ $ref: '#/components/schemas/Type'
+ element-required:
+ type: boolean
+
+ MapType:
+ type: object
+ required:
+ - type
+ - key-id
+ - key
+ - value-id
+ - value
+ - value-required
+ properties:
+ type:
+ type: string
+ enum: ["map"]
+ key-id:
+ type: integer
+ key:
+ $ref: '#/components/schemas/Type'
+ value-id:
+ type: integer
+ value:
+ $ref: '#/components/schemas/Type'
+ value-required:
+ type: boolean
+
+ Type:
+ oneOf:
+ - $ref: '#/components/schemas/PrimitiveType'
+ - $ref: '#/components/schemas/StructType'
+ - $ref: '#/components/schemas/ListType'
+ - $ref: '#/components/schemas/MapType'
+
+ Schema:
+ allOf:
+ - $ref: '#/components/schemas/StructType'
+ - type: object
+ properties:
+ schema-id:
+ type: integer
+ readOnly: true
+ identifier-field-ids:
+ type: array
+ items:
+ type: integer
+
+ Expression:
+ oneOf:
+ - $ref: '#/components/schemas/AndOrExpression'
+ - $ref: '#/components/schemas/NotExpression'
+ - $ref: '#/components/schemas/SetExpression'
+ - $ref: '#/components/schemas/LiteralExpression'
+ - $ref: '#/components/schemas/UnaryExpression'
+
+ ExpressionType:
+ type: string
+ example:
+ - "eq"
+ - "and"
+ - "or"
+ - "not"
+ - "in"
+ - "not-in"
+ - "lt"
+ - "lt-eq"
+ - "gt"
+ - "gt-eq"
+ - "not-eq"
+ - "starts-with"
+ - "not-starts-with"
+ - "is-null"
+ - "not-null"
+ - "is-nan"
+ - "not-nan"
+
+ AndOrExpression:
+ type: object
+ required:
+ - type
+ - left
+ - right
+ properties:
+ type:
+ $ref: '#/components/schemas/ExpressionType'
+ enum: ["and", "or"]
+ left:
+ $ref: '#/components/schemas/Expression'
+ right:
+ $ref: '#/components/schemas/Expression'
+
+ NotExpression:
+ type: object
+ required:
+ - type
+ - child
+ properties:
+ type:
+ $ref: '#/components/schemas/ExpressionType'
+ enum: ["not"]
+ child:
+ $ref: '#/components/schemas/Expression'
+
+ UnaryExpression:
+ type: object
+ required:
+ - type
+ - term
+ - value
+ properties:
+ type:
+ $ref: '#/components/schemas/ExpressionType'
+ enum: ["is-null", "not-null", "is-nan", "not-nan"]
+ term:
+ $ref: '#/components/schemas/Term'
+ value:
+ type: object
+
+ LiteralExpression:
+ type: object
+ required:
+ - type
+ - term
+ - value
+ properties:
+ type:
+ $ref: '#/components/schemas/ExpressionType'
+ enum: ["lt", "lt-eq", "gt", "gt-eq", "eq", "not-eq", "starts-with", "not-starts-with"]
+ term:
+ $ref: '#/components/schemas/Term'
+ value:
+ type: object
+
+ SetExpression:
+ type: object
+ required:
+ - type
+ - term
+ - values
+ properties:
+ type:
+ $ref: '#/components/schemas/ExpressionType'
+ enum: ["in", "not-in"]
+ term:
+ $ref: '#/components/schemas/Term'
+ values:
+ type: array
+ items:
+ type: object
+
+ Term:
+ oneOf:
+ - $ref: '#/components/schemas/Reference'
+ - $ref: '#/components/schemas/TransformTerm'
+
+ Reference:
+ type: string
+ example:
+ - "column-name"
+
+ TransformTerm:
+ type: object
+ required:
+ - type
+ - transform
+ - term
+ properties:
+ type:
+ type: string
+ enum: ["transform"]
+ transform:
+ $ref: '#/components/schemas/Transform'
+ term:
+ $ref: '#/components/schemas/Reference'
+
+ Transform:
+ type: string
+ example:
+ - "identity"
+ - "year"
+ - "month"
+ - "day"
+ - "hour"
+ - "bucket[256]"
+ - "truncate[16]"
+
+ PartitionField:
+ type: object
+ required:
+ - source-id
+ - transform
+ - name
+ properties:
+ field-id:
+ type: integer
+ source-id:
+ type: integer
+ name:
+ type: string
+ transform:
+ $ref: '#/components/schemas/Transform'
+
+ PartitionSpec:
+ type: object
+ required:
+ - fields
+ properties:
+ spec-id:
+ type: integer
+ readOnly: true
+ fields:
+ type: array
+ items:
+ $ref: '#/components/schemas/PartitionField'
+
+ SortDirection:
+ type: string
+ enum: ["asc", "desc"]
+
+ NullOrder:
+ type: string
+ enum: ["nulls-first", "nulls-last"]
+
+ SortField:
+ type: object
+ required:
+ - source-id
+ - transform
+ - direction
+ - null-order
+ properties:
+ source-id:
+ type: integer
+ transform:
+ $ref: '#/components/schemas/Transform'
+ direction:
+ $ref: '#/components/schemas/SortDirection'
+ null-order:
+ $ref: '#/components/schemas/NullOrder'
+
+ SortOrder:
+ type: object
+ required:
+ - order-id
+ - fields
+ properties:
+ order-id:
+ type: integer
+ readOnly: true
+ fields:
+ type: array
+ items:
+ $ref: '#/components/schemas/SortField'
+
+ Snapshot:
+ type: object
+ required:
+ - snapshot-id
+ - timestamp-ms
+ - manifest-list
+ - summary
+ properties:
+ snapshot-id:
+ type: integer
+ format: int64
+ parent-snapshot-id:
+ type: integer
+ format: int64
+ sequence-number:
+ type: integer
+ format: int64
+ timestamp-ms:
+ type: integer
+ format: int64
+ manifest-list:
+ type: string
+ description: Location of the snapshot's manifest list file
+ summary:
+ type: object
+ required:
+ - operation
+ properties:
+ operation:
+ type: string
+ enum: ["append", "replace", "overwrite", "delete"]
+ additionalProperties:
+ type: string
+ schema-id:
+ type: integer
+
+ SnapshotReference:
+ type: object
+ required:
+ - type
+ - snapshot-id
+ properties:
+ type:
+ type: string
+ enum: ["tag", "branch"]
+ snapshot-id:
+ type: integer
+ format: int64
+ max-ref-age-ms:
+ type: integer
+ format: int64
+ max-snapshot-age-ms:
+ type: integer
+ format: int64
+ min-snapshots-to-keep:
+ type: integer
+
+ SnapshotReferences:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/SnapshotReference'
+
+ SnapshotLog:
+ type: array
+ items:
+ type: object
+ required:
+ - snapshot-id
+ - timestamp-ms
+ properties:
+ snapshot-id:
+ type: integer
+ format: int64
+ timestamp-ms:
+ type: integer
+ format: int64
+
+ MetadataLog:
+ type: array
+ items:
+ type: object
+ required:
+ - metadata-file
+ - timestamp-ms
+ properties:
+ metadata-file:
+ type: string
+ timestamp-ms:
+ type: integer
+ format: int64
+
+ TableMetadata:
+ type: object
+ required:
+ - format-version
+ - table-uuid
+ properties:
+ format-version:
+ type: integer
+ minimum: 1
+ maximum: 2
+ table-uuid:
+ type: string
+ location:
+ type: string
+ last-updated-ms:
+ type: integer
+ format: int64
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+ # schema tracking
+ schemas:
+ type: array
+ items:
+ $ref: '#/components/schemas/Schema'
+ current-schema-id:
+ type: integer
+ last-column-id:
+ type: integer
+ # partition spec tracking
+ partition-specs:
+ type: array
+ items:
+ $ref: '#/components/schemas/PartitionSpec'
+ default-spec-id:
+ type: integer
+ last-partition-id:
+ type: integer
+ # sort order tracking
+ sort-orders:
+ type: array
+ items:
+ $ref: '#/components/schemas/SortOrder'
+ default-sort-order-id:
+ type: integer
+ # snapshot tracking
+ snapshots:
+ type: array
+ items:
+ $ref: '#/components/schemas/Snapshot'
+ refs:
+ $ref: '#/components/schemas/SnapshotReferences'
+ current-snapshot-id:
+ type: integer
+ format: int64
+ last-sequence-number:
+ type: integer
+ format: int64
+ # logs
+ snapshot-log:
+ $ref: '#/components/schemas/SnapshotLog'
+ metadata-log:
+ $ref: '#/components/schemas/MetadataLog'
+ # statistics
+ statistics:
+ type: array
+ items:
+ $ref: '#/components/schemas/StatisticsFile'
+ partition-statistics:
+ type: array
+ items:
+ $ref: '#/components/schemas/PartitionStatisticsFile'
+
+ SQLViewRepresentation:
+ type: object
+ required:
+ - type
+ - sql
+ - dialect
+ properties:
+ type:
+ type: string
+ sql:
+ type: string
+ dialect:
+ type: string
+
+ ViewRepresentation:
+ oneOf:
+ - $ref: '#/components/schemas/SQLViewRepresentation'
+
+ ViewHistoryEntry:
+ type: object
+ required:
+ - version-id
+ - timestamp-ms
+ properties:
+ version-id:
+ type: integer
+ timestamp-ms:
+ type: integer
+ format: int64
+
+ ViewVersion:
+ type: object
+ required:
+ - version-id
+ - timestamp-ms
+ - schema-id
+ - summary
+ - representations
+ - default-namespace
+ properties:
+ version-id:
+ type: integer
+ timestamp-ms:
+ type: integer
+ format: int64
+ schema-id:
+ type: integer
+ description: Schema ID to set as current, or -1 to set last added schema
+ summary:
+ type: object
+ additionalProperties:
+ type: string
+ representations:
+ type: array
+ items:
+ $ref: '#/components/schemas/ViewRepresentation'
+ default-catalog:
+ type: string
+ default-namespace:
+ $ref: '#/components/schemas/Namespace'
+
+ ViewMetadata:
+ type: object
+ required:
+ - view-uuid
+ - format-version
+ - location
+ - current-version-id
+ - versions
+ - version-log
+ - schemas
+ properties:
+ view-uuid:
+ type: string
+ format-version:
+ type: integer
+ minimum: 1
+ maximum: 1
+ location:
+ type: string
+ current-version-id:
+ type: integer
+ versions:
+ type: array
+ items:
+ $ref: '#/components/schemas/ViewVersion'
+ version-log:
+ type: array
+ items:
+ $ref: '#/components/schemas/ViewHistoryEntry'
+ schemas:
+ type: array
+ items:
+ $ref: '#/components/schemas/Schema'
+ properties:
+ type: object
+ additionalProperties:
+ type: string
+
+ BaseUpdate:
+ discriminator:
+ propertyName: action
+ mapping:
+ assign-uuid: '#/components/schemas/AssignUUIDUpdate'
+ upgrade-format-version: '#/components/schemas/UpgradeFormatVersionUpdate'
+ add-schema: '#/components/schemas/AddSchemaUpdate'
+ set-current-schema: '#/components/schemas/SetCurrentSchemaUpdate'
+ add-spec: '#/components/schemas/AddPartitionSpecUpdate'
+ set-default-spec: '#/components/schemas/SetDefaultSpecUpdate'
+ add-sort-order: '#/components/schemas/AddSortOrderUpdate'
+ set-default-sort-order: '#/components/schemas/SetDefaultSortOrderUpdate'
+ add-snapshot: '#/components/schemas/AddSnapshotUpdate'
+ set-snapshot-ref: '#/components/schemas/SetSnapshotRefUpdate'
+ remove-snapshots: '#/components/schemas/RemoveSnapshotsUpdate'
+ remove-snapshot-ref: '#/components/schemas/RemoveSnapshotRefUpdate'
+ set-location: '#/components/schemas/SetLocationUpdate'
+ set-properties: '#/components/schemas/SetPropertiesUpdate'
+ remove-properties: '#/components/schemas/RemovePropertiesUpdate'
+ add-view-version: '#/components/schemas/AddViewVersionUpdate'
+ set-current-view-version: '#/components/schemas/SetCurrentViewVersionUpdate'
+ set-statistics: '#/components/schemas/SetStatisticsUpdate'
+ remove-statistics: '#/components/schemas/RemoveStatisticsUpdate'
+ set-partition-statistics: '#/components/schemas/SetPartitionStatisticsUpdate'
+ remove-partition-statistics: '#/components/schemas/RemovePartitionStatisticsUpdate'
+ type: object
+ required:
+ - action
+ properties:
+ action:
+ type: string
+
+ AssignUUIDUpdate:
+ description: Assigning a UUID to a table/view should only be done when creating the table/view. It is not safe to re-assign the UUID if a table/view already has a UUID assigned
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - uuid
+ properties:
+ action:
+ type: string
+ enum: ["assign-uuid"]
+ uuid:
+ type: string
+
+ UpgradeFormatVersionUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - format-version
+ properties:
+ action:
+ type: string
+ enum: ["upgrade-format-version"]
+ format-version:
+ type: integer
+
+ AddSchemaUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - schema
+ properties:
+ action:
+ type: string
+ enum: ["add-schema"]
+ schema:
+ $ref: '#/components/schemas/Schema'
+ last-column-id:
+ type: integer
+ description: The highest assigned column ID for the table. This is used to ensure columns are always assigned an unused ID when evolving schemas. When omitted, it will be computed on the server side.
+
+ SetCurrentSchemaUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - schema-id
+ properties:
+ action:
+ type: string
+ enum: ["set-current-schema"]
+ schema-id:
+ type: integer
+ description: Schema ID to set as current, or -1 to set last added schema
+
+ AddPartitionSpecUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - spec
+ properties:
+ action:
+ type: string
+ enum: ["add-spec"]
+ spec:
+ $ref: '#/components/schemas/PartitionSpec'
+
+ SetDefaultSpecUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - spec-id
+ properties:
+ action:
+ type: string
+ enum: [ "set-default-spec" ]
+ spec-id:
+ type: integer
+ description: Partition spec ID to set as the default, or -1 to set last added spec
+
+ AddSortOrderUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - sort-order
+ properties:
+ action:
+ type: string
+ enum: [ "add-sort-order" ]
+ sort-order:
+ $ref: '#/components/schemas/SortOrder'
+
+ SetDefaultSortOrderUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - sort-order-id
+ properties:
+ action:
+ type: string
+ enum: [ "set-default-sort-order" ]
+ sort-order-id:
+ type: integer
+ description: Sort order ID to set as the default, or -1 to set last added sort order
+
+ AddSnapshotUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - snapshot
+ properties:
+ action:
+ type: string
+ enum: [ "add-snapshot" ]
+ snapshot:
+ $ref: '#/components/schemas/Snapshot'
+
+ SetSnapshotRefUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ - $ref: '#/components/schemas/SnapshotReference'
+ required:
+ - action
+ - ref-name
+ properties:
+ action:
+ type: string
+ enum: [ "set-snapshot-ref" ]
+ ref-name:
+ type: string
+
+ RemoveSnapshotsUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - snapshot-ids
+ properties:
+ action:
+ type: string
+ enum: [ "remove-snapshots" ]
+ snapshot-ids:
+ type: array
+ items:
+ type: integer
+ format: int64
+
+ RemoveSnapshotRefUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - ref-name
+ properties:
+ action:
+ type: string
+ enum: [ "remove-snapshot-ref" ]
+ ref-name:
+ type: string
+
+ SetLocationUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - location
+ properties:
+ action:
+ type: string
+ enum: [ "set-location" ]
+ location:
+ type: string
+
+ SetPropertiesUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - updates
+ properties:
+ action:
+ type: string
+ enum: [ "set-properties" ]
+ updates:
+ type: object
+ additionalProperties:
+ type: string
+
+ RemovePropertiesUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - removals
+ properties:
+ action:
+ type: string
+ enum: [ "remove-properties" ]
+ removals:
+ type: array
+ items:
+ type: string
+
+ AddViewVersionUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - view-version
+ properties:
+ action:
+ type: string
+ enum: [ "add-view-version" ]
+ view-version:
+ $ref: '#/components/schemas/ViewVersion'
+
+ SetCurrentViewVersionUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - view-version-id
+ properties:
+ action:
+ type: string
+ enum: [ "set-current-view-version" ]
+ view-version-id:
+ type: integer
+ description: The view version id to set as current, or -1 to set last added view version id
+
+ SetStatisticsUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - snapshot-id
+ - statistics
+ properties:
+ action:
+ type: string
+ enum: [ "set-statistics" ]
+ snapshot-id:
+ type: integer
+ format: int64
+ statistics:
+ $ref: '#/components/schemas/StatisticsFile'
+
+ RemoveStatisticsUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - snapshot-id
+ properties:
+ action:
+ type: string
+ enum: [ "remove-statistics" ]
+ snapshot-id:
+ type: integer
+ format: int64
+
+ SetPartitionStatisticsUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - partition-statistics
+ properties:
+ action:
+ type: string
+ enum: [ "set-partition-statistics" ]
+ partition-statistics:
+ $ref: '#/components/schemas/PartitionStatisticsFile'
+
+ RemovePartitionStatisticsUpdate:
+ allOf:
+ - $ref: '#/components/schemas/BaseUpdate'
+ required:
+ - action
+ - snapshot-id
+ properties:
+ action:
+ type: string
+ enum: [ "remove-partition-statistics" ]
+ snapshot-id:
+ type: integer
+ format: int64
+
+ TableUpdate:
+ anyOf:
+ - $ref: '#/components/schemas/AssignUUIDUpdate'
+ - $ref: '#/components/schemas/UpgradeFormatVersionUpdate'
+ - $ref: '#/components/schemas/AddSchemaUpdate'
+ - $ref: '#/components/schemas/SetCurrentSchemaUpdate'
+ - $ref: '#/components/schemas/AddPartitionSpecUpdate'
+ - $ref: '#/components/schemas/SetDefaultSpecUpdate'
+ - $ref: '#/components/schemas/AddSortOrderUpdate'
+ - $ref: '#/components/schemas/SetDefaultSortOrderUpdate'
+ - $ref: '#/components/schemas/AddSnapshotUpdate'
+ - $ref: '#/components/schemas/SetSnapshotRefUpdate'
+ - $ref: '#/components/schemas/RemoveSnapshotsUpdate'
+ - $ref: '#/components/schemas/RemoveSnapshotRefUpdate'
+ - $ref: '#/components/schemas/SetLocationUpdate'
+ - $ref: '#/components/schemas/SetPropertiesUpdate'
+ - $ref: '#/components/schemas/RemovePropertiesUpdate'
+ - $ref: '#/components/schemas/SetStatisticsUpdate'
+ - $ref: '#/components/schemas/RemoveStatisticsUpdate'
+
+ ViewUpdate:
+ anyOf:
+ - $ref: '#/components/schemas/AssignUUIDUpdate'
+ - $ref: '#/components/schemas/UpgradeFormatVersionUpdate'
+ - $ref: '#/components/schemas/AddSchemaUpdate'
+ - $ref: '#/components/schemas/SetLocationUpdate'
+ - $ref: '#/components/schemas/SetPropertiesUpdate'
+ - $ref: '#/components/schemas/RemovePropertiesUpdate'
+ - $ref: '#/components/schemas/AddViewVersionUpdate'
+ - $ref: '#/components/schemas/SetCurrentViewVersionUpdate'
+
+ TableRequirement:
+ type: object
+ discriminator:
+ propertyName: type
+ mapping:
+ assert-create: '#/components/schemas/AssertCreate'
+ assert-table-uuid: '#/components/schemas/AssertTableUUID'
+ assert-ref-snapshot-id: '#/components/schemas/AssertRefSnapshotId'
+ assert-last-assigned-field-id: '#/components/schemas/AssertLastAssignedFieldId'
+ assert-current-schema-id: '#/components/schemas/AssertCurrentSchemaId'
+ assert-last-assigned-partition-id: '#/components/schemas/AssertLastAssignedPartitionId'
+ assert-default-spec-id: '#/components/schemas/AssertDefaultSpecId'
+ assert-default-sort-order-id: '#/components/schemas/AssertDefaultSortOrderId'
+ oneOf:
+ - $ref: '#/components/schemas/AssertCreate'
+ - $ref: '#/components/schemas/AssertTableUUID'
+ - $ref: '#/components/schemas/AssertRefSnapshotId'
+ - $ref: '#/components/schemas/AssertLastAssignedFieldId'
+ - $ref: '#/components/schemas/AssertCurrentSchemaId'
+ - $ref: '#/components/schemas/AssertLastAssignedPartitionId'
+ - $ref: '#/components/schemas/AssertDefaultSpecId'
+ - $ref: '#/components/schemas/AssertDefaultSortOrderId'
+
+ AssertCreate:
+ type: object
+ description: The table must not already exist; used for create transactions
+ required:
+ - type
+ properties:
+ type:
+ type: string
+ enum: ["assert-create"]
+
+ AssertTableUUID:
+ description: The table UUID must match the requirement's `uuid`
+ required:
+ - type
+ - uuid
+ properties:
+ type:
+ type: string
+ enum: ["assert-table-uuid"]
+ uuid:
+ type: string
+
+ AssertRefSnapshotId:
+ description:
+ The table branch or tag identified by the requirement's `ref` must reference the requirement's `snapshot-id`;
+ if `snapshot-id` is `null` or missing, the ref must not already exist
+ required:
+ - type
+ - ref
+ - snapshot-id
+ properties:
+ type:
+ type: string
+ enum: [ "assert-ref-snapshot-id" ]
+ ref:
+ type: string
+ snapshot-id:
+ type: integer
+ format: int64
+
+ AssertLastAssignedFieldId:
+ description:
+ The table's last assigned column id must match the requirement's `last-assigned-field-id`
+ required:
+ - type
+ - last-assigned-field-id
+ properties:
+ type:
+ type: string
+ enum: [ "assert-last-assigned-field-id" ]
+ last-assigned-field-id:
+ type: integer
+
+ AssertCurrentSchemaId:
+ description:
+ The table's current schema id must match the requirement's `current-schema-id`
+ required:
+ - type
+ - current-schema-id
+ properties:
+ type:
+ type: string
+ enum: [ "assert-current-schema-id" ]
+ current-schema-id:
+ type: integer
+
+ AssertLastAssignedPartitionId:
+ description:
+ The table's last assigned partition id must match the requirement's `last-assigned-partition-id`
+ required:
+ - type
+ - last-assigned-partition-id
+ properties:
+ type:
+ type: string
+ enum: [ "assert-last-assigned-partition-id" ]
+ last-assigned-partition-id:
+ type: integer
+
+ AssertDefaultSpecId:
+ description:
+ The table's default spec id must match the requirement's `default-spec-id`
+ required:
+ - type
+ - default-spec-id
+ properties:
+ type:
+ type: string
+ enum: [ "assert-default-spec-id" ]
+ default-spec-id:
+ type: integer
+
+ AssertDefaultSortOrderId:
+ description:
+ The table's default sort order id must match the requirement's `default-sort-order-id`
+ required:
+ - type
+ - default-sort-order-id
+ properties:
+ type:
+ type: string
+ enum: [ "assert-default-sort-order-id" ]
+ default-sort-order-id:
+ type: integer
+
+ ViewRequirement:
+ type: object
+ discriminator:
+ propertyName: type
+ mapping:
+ assert-view-uuid: '#/components/schemas/AssertViewUUID'
+ oneOf:
+ - $ref: '#/components/schemas/AssertViewUUID'
+
+ AssertViewUUID:
+ description: The view UUID must match the requirement's `uuid`
+ required:
+ - type
+ - uuid
+ properties:
+ type:
+ type: string
+ enum: [ "assert-view-uuid" ]
+ uuid:
+ type: string
+
+ LoadTableResult:
+ description: |
+ Result used when a table is successfully loaded.
+
+
+ The table metadata JSON is returned in the `metadata` field. The corresponding file location of table metadata should be returned in the `metadata-location` field, unless the metadata is not yet committed. For example, a create transaction may return metadata that is staged but not committed.
+ Clients can check whether metadata has changed by comparing metadata locations after the table has been created.
+
+
+ The `config` map returns table-specific configuration for the table's resources, including its HTTP client and FileIO. For example, config may contain a specific FileIO implementation class for the table depending on its underlying storage.
+
+
+ The following configurations should be respected by clients:
+
+ ## General Configurations
+
+ - `token`: Authorization bearer token to use for table requests if OAuth2 security is enabled
+
+ ## AWS Configurations
+
+ The following configurations should be respected when working with tables stored in AWS S3
+ - `client.region`: region to configure client for making requests to AWS
+ - `s3.access-key-id`: id for for credentials that provide access to the data in S3
+ - `s3.secret-access-key`: secret for credentials that provide access to data in S3
+ - `s3.session-token`: if present, this value should be used for as the session token
+ - `s3.remote-signing-enabled`: if `true` remote signing should be performed as described in the `s3-signer-open-api.yaml` specification
+ type: object
+ required:
+ - metadata
+ properties:
+ metadata-location:
+ type: string
+ description: May be null if the table is staged as part of a transaction
+ metadata:
+ $ref: '#/components/schemas/TableMetadata'
+ config:
+ type: object
+ additionalProperties:
+ type: string
+
+ CommitTableRequest:
+ type: object
+ required:
+ - requirements
+ - updates
+ properties:
+ identifier:
+ description: Table identifier to update; must be present for CommitTransactionRequest
+ $ref: '#/components/schemas/TableIdentifier'
+ requirements:
+ type: array
+ items:
+ $ref: '#/components/schemas/TableRequirement'
+ updates:
+ type: array
+ items:
+ $ref: '#/components/schemas/TableUpdate'
+
+ CommitViewRequest:
+ type: object
+ required:
+ - updates
+ properties:
+ identifier:
+ description: View identifier to update
+ $ref: '#/components/schemas/TableIdentifier'
+ requirements:
+ type: array
+ items:
+ $ref: '#/components/schemas/ViewRequirement'
+ updates:
+ type: array
+ items:
... 11867 lines suppressed ...