All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.openapi.yaml Maven / Gradle / Ivy

The newest version!
#
# Copyright (C) 2022 Dremio
#
# Licensed 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 # must be compatible with quarkus

# Note: the final OpenAPI definition file is produced at build time by merging this data with OpenAPI java annotations.

info:
  title: Nessie API
  version: ${project.version}
  contact:
    name: Project Nessie
    url: https://projectnessie.org
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html

tags:
  - name: v1
    description: End points from the legacy v1 API, deprecated
  - name: v2
    description: End points from the Nessie v2 API

servers:
  # Not documenting Dremio Arctic API URLs here, because the REST version path element is at a different place.
  # - url: "https://nessie.dremio.cloud/v2/repositories/{repositoryId}/"
  #   description: Dremio Arctic Nessie URL
  #   variables:
  #     repositoryId:
  #       description: The repository ID (mandatory) of your Arctic catalog. See "Catalog Endpoint" in "General Information"/"Catalog Settings" on the Dremio Cloud Arctic Catalogs page
  #       default: ""
  - url: "{scheme}://{host}:{port}/{basePath}"
    description: Nessie REST API endpoint.
    variables:
      scheme:
        description: The scheme of the URI, either http or https.
        default: http
      host:
        description: The host address for the specified server
        default: localhost
      port:
        description: The port used when addressing the host
        default: "19120"
      basePath:
        description: |
          Nessie Core API base path.
          When using the Swagger UI from Quarkus from the `/q/swagger-ui` URL, leave the `basePath` value empty.
          Otherwise use `/api/` for `basePath`.
        default: ""

paths: {} # inferred from java annotations

components:
  examples:
    nessieConfigV1:
      value:
        defaultBranch: main
        maxSupportedApiVersion: 2

    nessieConfig:
      value:
        defaultBranch: main
        minSupportedApiVersion: 1
        maxSupportedApiVersion: 2
        specVersion: "2.0.0"

    namespace:
      value: "a.b.c"

    ref:
      value: "main"

    refWithHash:
      value: "main@1122334455667788112233445566778811223344556677881122334455667788"

    refWithTimestampMillisSinceEpoch:
      value: "main*1685185847230"

    refWithTimestampInstant:
      value: "main*2021-04-07T14:42:25.534748Z"

    refWithNthPredecessor:
      value: "main~10"

    refWithMergeParent:
      value: "main@1122334455667788112233445566778811223344556677881122334455667788^2"

    refDefault:
      value: "-"

    refDetached:
      value: "@1122334455667788112233445566778811223344556677881122334455667788"

    refForDiffWithHash:
      value: "main@1122334455667788112233445566778811223344556677881122334455667788"

    referenceType:
      value: "branch"

    hash:
      value: "1122334455667788112233445566778811223344556677881122334455667788"

    nullHash:
      value:

    refObj:
      value:
        type: BRANCH
        hash: "1122334455667788112233445566778811223344556677881122334455667788"
        name: "main"

    refObjNew:
      value:
        type: BRANCH
        hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
        name: "exampleBranch"

    tagObj:
      value:
        type: TAG
        hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
        name: "exampleTag"

    ContentKeyGet:
      value: "example.key"

    ContentKey:
      value:
        elements:
          - example
          - key

    namespaceName:
      value: "a.b.c"

    emptyNamespaceName:
      value:

    namespacesResponse:
      value:
        namespaces:
          - type: NAMESPACE
            elements:
              - a
              - b.c
              - d
          - type: NAMESPACE
            elements:
              - a
              - b
              - d

    namespaceUpdate:
      value:
        propertyUpdates:
          key1: value1
          key2: value2
        propertyRemovals:
          - key3
          - key4

    iceberg:
      value:
        type: ICEBERG_TABLE
        id: b874b5d5-f926-4eed-9be7-b2380d9810c0
        metadataLocation: "/path/to/metadata/"
        snapshotId: 1
        schemaId: 2
        specId: 3
        sortOrderId: 4

    expr_by_namespace:
      value: "entry.namespace.startsWith('a.b.c')"
    expr_by_contentType:
      value: "entry.contentType in ['ICEBERG_TABLE','DELTA_LAKE_TABLE']"
    expr_by_namespace_and_contentType:
      value: "entry.namespace.startsWith('some.name.space') && entry.contentType in ['ICEBERG_TABLE','DELTA_LAKE_TABLE']"
    expr_by_commit_author:
      value: "commit.author=='nessie_author'"
    expr_by_commit_committer:
      value: "commit.committer=='nessie_committer'"
    expr_by_commitTime:
      value: "timestamp(commit.commitTime) > timestamp('2021-05-31T08:23:15Z')"
    expr_by_commit_operations_in_namespace:
      value: "operations.exists(op, op.key.startsWith('some.name.space.'))"
    expr_by_commit_operations_table_name:
      value: "operations.exists(op, op.name == 'BaseTable')"
    expr_by_commit_operations_type:
      value: "operations.exists(op, op.type == 'PUT')"
    expr_by_refType:
      value: "refType == 'BRANCH'"
    expr_by_ref_name:
      value: "ref.name == 'my-tag-or-branch'"
    expr_by_ref_commit:
      value: "commit.message == 'invent awesome things'"

    commitMessage:
      value: "Example Commit Message"

    multiGetResponse:
      value:
        contents:
          - content:
              type: ICEBERG_TABLE
              id: b874b5d5-f926-4eed-9be7-b2380d9810c0
              metadataLocation: "/path/to/metadata/"
              snapshotId: 1
              schemaId: 2
              specId: 3
              sortOrderId: 4
            key:
              elements:
                - example
                - key

    multiGetRequest:
      value:
        requestedKeys:
          - elements:
              - example
              - key

    entriesResponse:
      value:
        token: null
        hasMore: false
        entries:
          - name:
              elements:
                - example
                - key
            type: ICEBERG_TABLE

    entriesResponseV2:
      value:
        token: "xxx"
        hasMore: false
        effectiveReference:
          type: BRANCH
          hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          name: "exampleBranch"
        entries:
          - name:
              elements:
                - example
                - key
            type: ICEBERG_TABLE
            contentId: "f350b391-f492-41eb-9959-730a8c49f01e"
            content:
              type: ICEBERG_TABLE
              id: "f350b391-f492-41eb-9959-730a8c49f01e"
              metadataLocation: "/path/to/metadata/"
              snapshotId: 23
              schemaId: 15
              specId: 15
              sortOrderId: 15

    types:
      value:
        - ICEBERG_TABLE

    merge:
      value:
        fromHash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
        fromRefName: "source-ref-name"
        defaultKeyMergeMode: "NORMAL"
        keyMergeModes:
          - key:
              elements:
                - example
                - key
            mergeBehavior: "FORCE"
        dryRun: false
        fetchAdditionalInfo: false
        returnConflictAsResult: true

    transplant:
      value:
        hashesToTransplant:
          - "abcdef4242424242424242424242beef00dead42112233445566778899001122"
        fromRefName: "source-ref-name"
        defaultKeyMergeMode: "NORMAL"
        keyMergeModes:
          - key:
              elements:
                - example
                - key
            mergeBehavior: "FORCE"
        dryRun: false
        fetchAdditionalInfo: false
        returnConflictAsResult: true

    mergeResponseSuccess:
      value:
        wasApplied: true
        wasSuccessful: true
        resultantTargetHash: "8a2f19888eb620c25b0d2cbcddfdf56fb2d3e9dd443c6d29e37c567493fc5d3b"
        commonAncestor: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
        targetBranch: "main"
        effectiveTargetHash: "e9058b675c519b3542cd8155aed42ecf1ddb4e55874e3eb241b30b96f861566a"
        expectedHash: "1122334455667788112233445566778811223344556677881122334455667788"
        details:
          - key:
              elements:
                - example
                - key
            mergeBehavior: "NORMAL"

    mergeResponseFail:
      value:
        wasApplied: false
        wasSuccessful: false
        resultantTargetHash: "8a2f19888eb620c25b0d2cbcddfdf56fb2d3e9dd443c6d29e37c567493fc5d3b"
        commonAncestor: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
        targetBranch: "main"
        effectiveTargetHash: "8a2f19888eb620c25b0d2cbcddfdf56fb2d3e9dd443c6d29e37c567493fc5d3b"
        expectedHash: "1122334455667788112233445566778811223344556677881122334455667788"
        details:
          - key:
              elements:
                - example
                - key
            mergeBehavior: "NORMAL"
            conflict:
              type: "KEY_EXISTS"
              message: "key 'example.key' already exists"
              key:
                elements:
                  - example
                  - key

    operations:
      value:
        commitMeta:
          author: "authorName "
          authorTime: "2021-04-07T14:42:25.534748Z"
          message: "Example Commit Message"
          properties:
            additionalProp1: "xxx"
            additionalProp2: "yyy"
            additionalProp3: "zzz"
          signedOffBy: "signedOffByName "
        operations:
          - type: PUT
            key:
              elements:
                - table1
            content:
              type: ICEBERG_TABLE
              metadataLocation: "/path/to/metadata/"
              snapshotId: 1
              schemaId: 2
              specId: 3
              sortOrderId: 4

    logResponseAdditionalInfo:
      value:
        token: "xxx"
        hasMore: false
        logEntries:
          - commitMeta:
              author: "authorName "
              authorTime: "2021-04-07T14:42:25.534748Z"
              commitTime: "2021-04-07T14:42:25.534748Z"
              committer: "committerName "
              hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
              message: "Example Commit Message"
              properties:
                additionalProp1: "xxx"
                additionalProp2: "yyy"
                additionalProp3: "zzz"
              signedOffBy: "signedOffByName "
            parentCommitHash: "1122334455667788112233445566778811223344556677881122334455667788"
            operations:
              - type: DELETE
                key:
                  elements:
                    - deleted
                    - table
              - type: PUT
                key:
                  elements:
                    - example
                    - key
                content:
                  type: ICEBERG_TABLE
                  id: b874b5d5-f926-4eed-9be7-b2380d9810c0
                  metadataLocation: "/path/to/metadata/"
                  snapshotId: 1
                  schemaId: 2
                  specId: 3
                  sortOrderId: 4
    logResponseSimple:
      value:
        token: "xxx"
        hasMore: false
        logEntries:
          - commitMeta:
              author: "authorName "
              authorTime: "2021-04-07T14:42:25.534748Z"
              commitTime: "2021-04-07T14:42:25.534748Z"
              committer: "committerName "
              hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
              message: "Example Commit Message"
              properties:
                additionalProp1: "xxx"
                additionalProp2: "yyy"
                additionalProp3: "zzz"
              signedOffBy: "signedOffByName "

    multipleContentsResponse:
      value:
        contents:
          - content:
              type: ICEBERG_TABLE
              id: "b874b5d5-f926-4eed-9be7-b2380d9810c0"
              metadataLocation: "/path/to/metadata/"
              snapshotId: 1
              schemaId: 2
              specId: 3
              sortOrderId: 4
            key:
              elements:
                - example
                - key
        effectiveReference:
          type: BRANCH
          hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          name: "exampleBranch"

    commitResponse:
      value:
        targetBranch:
          type: BRANCH
          hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          name: "exampleBranch"
        addedContents:
          - contentId: "7fe924d9-45af-574e-9bbc-51b48077017e"
            key:
              elements:
                - example
                - key

    contentResponseIceberg:
      value:
        content:
          type: ICEBERG_TABLE
          id: b874b5d5-f926-4eed-9be7-b2380d9810c0
          metadataLocation: "/path/to/metadata/"
          snapshotId: 1
          schemaId: 2
          specId: 3
          sortOrderId: 4
        effectiveReference:
          type: BRANCH
          hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          name: "exampleBranch"

    singleReferenceResponse:
      value:
        reference:
          type: BRANCH
          hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          name: "exampleBranch"

    singleReferenceResponseWithMetadata:
      value:
        reference:
          type: BRANCH
          hash: "84c57a20c5e956af4af40f3cc34ecc8a9028b9586da135c79011b1867aa3191d"
          name: "main"
          metadata:
            commitMetaOfHEAD:
              hash: "84c57a20c5e956af4af40f3cc34ecc8a9028b9586da135c79011b1867aa3191d"
              committer: ""
              author: "nessie-author"
              signedOffBy: null
              message: "update table"
              commitTime: "2021-11-26T08:01:13.855974Z"
              authorTime: "2021-11-26T08:01:13.852826Z"
              properties: {}

    referencesResponse:
      value:
        token: null
        hasMore: false
        references:
          - type: BRANCH
            hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
            name: "exampleBranch"
          - type: TAG
            hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
            name: "exampleTag"
          - type: BRANCH
            hash: "1122334455667788112233445566778811223344556677881122334455667788"
            name: "main"

    referenceHistoryResponse:
      value:
        reference:
          type: BRANCH
          hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          name: "exampleBranch"
        current:
          pointer: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          commitConsistency: "COMMIT_CONSISTENT"
          meta:
            hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
            committer: ""
            author: "nessie-author"
            signedOffBy: null
            message: "update table"
            commitTime: "2021-11-26T08:01:13.855974Z"
            authorTime: "2021-11-26T08:01:13.852826Z"
            properties: {}
        previous:
          - pointer: "84c57a20c5e956af4af40f3cc34ecc8a9028b9586da135c79011b1867aa3191d"
            commitConsistency: "COMMIT_CONSISTENT"
            meta:
              hash: "84c57a20c5e956af4af40f3cc34ecc8a9028b9586da135c79011b1867aa3191d"
              committer: ""
              author: "nessie-author"
              signedOffBy: null
              message: "add table"
              commitTime: "2021-11-26T07:01:13.855974Z"
              authorTime: "2021-11-26T07:01:13.852826Z"
              properties: { }
          - pointer: "1122334455667788112233445566778811223344556677881122334455667788"
            commitConsistency: "COMMIT_CONSISTENT"
            meta:
              hash: "1122334455667788112233445566778811223344556677881122334455667788"
              committer: ""
              author: "nessie-author"
              signedOffBy: null
              message: "add table"
              commitTime: "2021-11-26T06:01:13.855974Z"
              authorTime: "2021-11-26T06:01:13.852826Z"
              properties: { }
        commitLogConsistency: "NOT_CHECKED"

    referencesResponseWithMetadata:
      value:
        token: null
        hasMore: false
        references:
          - type: BRANCH
            hash: "84c57a20c5e956af4af40f3cc34ecc8a9028b9586da135c79011b1867aa3191d"
            name: "main"
            metadata:
              commitMetaOfHEAD:
                hash: "84c57a20c5e956af4af40f3cc34ecc8a9028b9586da135c79011b1867aa3191d"
                committer: ""
                author: "nessie-author"
                signedOffBy: null
                message: "update table"
                commitTime: "2021-11-26T08:01:13.855974Z"
                authorTime: "2021-11-26T08:01:13.852826Z"
                properties: {}
          - type: BRANCH
            hash: "da086850076827d2989c8ee1d7fd22f152f525d46a0441f2b22ad8119c0bbbe5"
            name: "dev"
            metadata:
              numCommitsAhead: 1
              numCommitsBehind: 2
              commonAncestorHash: "1122334455667788112233445566778811223344556677881122334455667788"
              numTotalCommits: 42
              commitMetaOfHEAD:
                hash: "da086850076827d2989c8ee1d7fd22f152f525d46a0441f2b22ad8119c0bbbe5"
                committer: ""
                author: "nessie-author"
                signedOffBy: null
                message: "update table X"
                commitTime: "2021-11-26T08:01:13.834397Z"
                authorTime: "2021-11-26T08:01:13.831371Z"
                properties: {}
          - type: BRANCH
            hash: "1122334455667788112233445566778811223344556677881122334455667788"
            name: "dev2"
            metadata:
              numCommitsAhead: 0
              numCommitsBehind: 2
              commonAncestorHash: "1122334455667788112233445566778811223344556677881122334455667788"
          - type: TAG
            hash: "a682bfdcd5d357b5c964ef07e2eef61fabba42cb8effa8d62357df45a6cc0371"
            name: "testTag1"
            metadata:
              numCommitsAhead: null
              numCommitsBehind: null
              commonAncestorHash: null
              numTotalCommits: 42
              commitMetaOfHEAD:
                hash: "a682bfdcd5d357b5c964ef07e2eef61fabba42cb8effa8d62357df45a6cc0371"
                committer: ""
                author: "nessie-author"
                signedOffBy: null
                message: "update table Y"
                commitTime: "2021-11-23T08:01:14.834397Z"
                authorTime: "2021-11-23T08:01:14.831371Z"
                properties: {}
          - type: TAG
            hash: "da086850076827d2989c8ee1d7fd22f152f525d46a0441f2b22ad8119c0bbbe5"
            name: "testTag2"
            metadata:
              numCommitsAhead: null
              numCommitsBehind: null
              commonAncestorHash: null
              numTotalCommits: 42
              commitMetaOfHEAD:
                hash: "da086850076827d2989c8ee1d7fd22f152f525d46a0441f2b22ad8119c0bbbe5"
                committer: ""
                author: "nessie-author"
                signedOffBy: null
                message: "update table X"
                commitTime: "2021-11-26T08:01:13.834397Z"
                authorTime: "2021-11-26T08:01:13.831371Z"
                properties: {}

    diffResponse:
      value:
        diffs:
          - key:
              elements:
                - example
                - key
            from:
              type: ICEBERG_TABLE
              id: "f350b391-f492-41eb-9959-730a8c49f01e"
              metadataLocation: "/path/to/metadata/"
              snapshotId: 23
              schemaId: 15
              specId: 15
              sortOrderId: 15
            to:
              type: ICEBERG_TABLE
              id: "dec31d0a-7d4b-4534-8c24-24f08eda33b2"
              metadataLocation: "/path/to/metadata/"
              snapshotId: 24
              schemaId: 16
              specId: 16
              sortOrderId: 16

    diffResponseWithRef:
      value:
        hasMore: false
        token: null
        diffs:
          - key:
              elements:
                - example
                - key
            from:
              type: ICEBERG_TABLE
              id: "f350b391-f492-41eb-9959-730a8c49f01e"
              metadataLocation: "/path/to/metadata/"
              snapshotId: 23
              schemaId: 15
              specId: 15
              sortOrderId: 15
            to:
              type: ICEBERG_TABLE
              id: "dec31d0a-7d4b-4534-8c24-24f08eda33b2"
              metadataLocation: "/path/to/metadata/"
              snapshotId: 24
              schemaId: 16
              specId: 16
              sortOrderId: 16
        effectiveFromReference:
          type: BRANCH
          hash: "da086850076827d2989c8ee1d7fd22f152f525d46a0441f2b22ad8119c0bbbe5"
          name: "dev"
        effectiveToReference:
          type: BRANCH
          hash: "abcdef4242424242424242424242beef00dead42112233445566778899001122"
          name: "exampleBranch"




© 2015 - 2024 Weber Informatics LLC | Privacy Policy