Wherobots foreign-catalog API

The foreign-catalog API from Wherobots — 4 operation(s) for foreign-catalog.

Operations 7

GET /foreign-catalog List foreign catalogs #
POST /foreign-catalog Create a foreign catalog connection #
GET /foreign-catalog/{catalog_id} Get a foreign catalog #
PUT /foreign-catalog/{catalog_id} Update a foreign catalog #
DELETE /foreign-catalog/{catalog_id} Delete a foreign catalog #
POST /foreign-catalog/test-connection Test a new foreign catalog connection #
POST /foreign-catalog/{catalog_id}/test-connection Test an existing foreign catalog connection #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wherobots-foreign-catalog-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wherobots-foreign-catalog-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wherobots Cloud apikey Foreign Catalog API
  description: "Wherobots Cloud API OpenAPI specification.\n\n    These are the API docs for the Wherobots API. You can use this to test out the API and see what it does.\n    The underlying OPENAPI spec can be found at /openapi.json. This can be used to generate clients for the API.\n\n    The Authorize button below will allow you to input an access token to authenticate to our API.\n    Then all of the requests on the page should work.\n    "
  version: 0.0.1
servers:
- url: https://api.cloud.wherobots.com
  description: Wherobots Cloud API
tags:
- name: foreign-catalog
paths:
  /foreign-catalog:
    get:
      tags:
      - foreign-catalog
      summary: List foreign catalogs
      description: Lists all foreign catalogs visible to the current user.
      operationId: listForeignCatalogs
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  oneOf:
                  - $ref: '#/components/schemas/DeltaForeignCatalogRead'
                  - $ref: '#/components/schemas/IcebergForeignCatalogRead'
                  - $ref: '#/components/schemas/AwsGlueForeignCatalogRead'
                  - $ref: '#/components/schemas/S3TablesForeignCatalogRead'
                  discriminator:
                    propertyName: type
                    mapping:
                      UNITY_DELTA: '#/components/schemas/DeltaForeignCatalogRead'
                      UNITY_ICEBERG: '#/components/schemas/IcebergForeignCatalogRead'
                      AWS_GLUE: '#/components/schemas/AwsGlueForeignCatalogRead'
                      S3_TABLES: '#/components/schemas/S3TablesForeignCatalogRead'
                type: array
                title: Response Listforeigncatalogs
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      security:
      - bearerToken: []
      - wherobotsApiKey: []
      x-excluded: true
    post:
      tags:
      - foreign-catalog
      summary: Create a foreign catalog connection
      description: 'Creates a new foreign catalog.


        This endpoint allows for the creation of a new foreign catalog connection.

        The number of foreign catalogs is limited by the organization''s plan.'
      operationId: createForeignCatalog
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/UnityIcebergForeignCatalogCreate'
              - $ref: '#/components/schemas/UnityDeltaForeignCatalogCreate'
              - $ref: '#/components/schemas/AwsGlueForeignCatalogCreate'
              - $ref: '#/components/schemas/S3TablesForeignCatalogCreate'
              title: Payload
              discriminator:
                propertyName: type
                mapping:
                  UNITY_ICEBERG: '#/components/schemas/UnityIcebergForeignCatalogCreate'
                  UNITY_DELTA: '#/components/schemas/UnityDeltaForeignCatalogCreate'
                  AWS_GLUE: '#/components/schemas/AwsGlueForeignCatalogCreate'
                  S3_TABLES: '#/components/schemas/S3TablesForeignCatalogCreate'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/DeltaForeignCatalogRead'
                - $ref: '#/components/schemas/IcebergForeignCatalogRead'
                - $ref: '#/components/schemas/AwsGlueForeignCatalogRead'
                - $ref: '#/components/schemas/S3TablesForeignCatalogRead'
                title: Response Createforeigncatalog
                discriminator:
                  propertyName: type
                  mapping:
                    UNITY_DELTA: '#/components/schemas/DeltaForeignCatalogRead'
                    UNITY_ICEBERG: '#/components/schemas/IcebergForeignCatalogRead'
                    AWS_GLUE: '#/components/schemas/AwsGlueForeignCatalogRead'
                    S3_TABLES: '#/components/schemas/S3TablesForeignCatalogRead'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      security:
      - bearerToken: []
      - wherobotsApiKey: []
      x-excluded: true
  /foreign-catalog/{catalog_id}:
    get:
      tags:
      - foreign-catalog
      summary: Get a foreign catalog
      description: Gets a specific foreign catalog by its ID.
      operationId: getForeignCatalog
      security:
      - bearerToken: []
      - wherobotsApiKey: []
      parameters:
      - name: catalog_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the foreign catalog to retrieve.
          title: Catalog Id
        description: The ID of the foreign catalog to retrieve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/DeltaForeignCatalogRead'
                - $ref: '#/components/schemas/IcebergForeignCatalogRead'
                - $ref: '#/components/schemas/AwsGlueForeignCatalogRead'
                - $ref: '#/components/schemas/S3TablesForeignCatalogRead'
                discriminator:
                  propertyName: type
                  mapping:
                    UNITY_DELTA: '#/components/schemas/DeltaForeignCatalogRead'
                    UNITY_ICEBERG: '#/components/schemas/IcebergForeignCatalogRead'
                    AWS_GLUE: '#/components/schemas/AwsGlueForeignCatalogRead'
                    S3_TABLES: '#/components/schemas/S3TablesForeignCatalogRead'
                title: Response Getforeigncatalog
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      x-excluded: true
    put:
      tags:
      - foreign-catalog
      summary: Update a foreign catalog
      description: Updates an existing foreign catalog.
      operationId: updateForeignCatalog
      security:
      - bearerToken: []
      - wherobotsApiKey: []
      parameters:
      - name: catalog_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the foreign catalog to update.
          title: Catalog Id
        description: The ID of the foreign catalog to update.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/UnityIcebergForeignCatalogUpdate'
              - $ref: '#/components/schemas/UnityDeltaForeignCatalogUpdate'
              - $ref: '#/components/schemas/AwsGlueForeignCatalogUpdate'
              - $ref: '#/components/schemas/S3TablesForeignCatalogUpdate'
              discriminator:
                propertyName: type
                mapping:
                  UNITY_ICEBERG: '#/components/schemas/UnityIcebergForeignCatalogUpdate'
                  UNITY_DELTA: '#/components/schemas/UnityDeltaForeignCatalogUpdate'
                  AWS_GLUE: '#/components/schemas/AwsGlueForeignCatalogUpdate'
                  S3_TABLES: '#/components/schemas/S3TablesForeignCatalogUpdate'
              title: Catalog
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/DeltaForeignCatalogRead'
                - $ref: '#/components/schemas/IcebergForeignCatalogRead'
                - $ref: '#/components/schemas/AwsGlueForeignCatalogRead'
                - $ref: '#/components/schemas/S3TablesForeignCatalogRead'
                discriminator:
                  propertyName: type
                  mapping:
                    UNITY_DELTA: '#/components/schemas/DeltaForeignCatalogRead'
                    UNITY_ICEBERG: '#/components/schemas/IcebergForeignCatalogRead'
                    AWS_GLUE: '#/components/schemas/AwsGlueForeignCatalogRead'
                    S3_TABLES: '#/components/schemas/S3TablesForeignCatalogRead'
                title: Response Updateforeigncatalog
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      x-excluded: true
    delete:
      tags:
      - foreign-catalog
      summary: Delete a foreign catalog
      description: Deletes a foreign catalog by its ID.
      operationId: deleteForeignCatalog
      security:
      - bearerToken: []
      - wherobotsApiKey: []
      parameters:
      - name: catalog_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the foreign catalog to delete.
          title: Catalog Id
        description: The ID of the foreign catalog to delete.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      x-excluded: true
  /foreign-catalog/test-connection:
    post:
      tags:
      - foreign-catalog
      summary: Test a new foreign catalog connection
      description: 'Tests the connection to a foreign catalog.


        This endpoint allows users to test the connection details of a foreign catalog

        before creating it.'
      operationId: testUnsavedForeignCatalogConnection
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/UnityIcebergForeignCatalogCreate'
              - $ref: '#/components/schemas/UnityDeltaForeignCatalogCreate'
              - $ref: '#/components/schemas/AwsGlueForeignCatalogCreate'
              - $ref: '#/components/schemas/S3TablesForeignCatalogCreate'
              title: Catalog
              discriminator:
                propertyName: type
                mapping:
                  UNITY_ICEBERG: '#/components/schemas/UnityIcebergForeignCatalogCreate'
                  UNITY_DELTA: '#/components/schemas/UnityDeltaForeignCatalogCreate'
                  AWS_GLUE: '#/components/schemas/AwsGlueForeignCatalogCreate'
                  S3_TABLES: '#/components/schemas/S3TablesForeignCatalogCreate'
        required: true
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      security:
      - bearerToken: []
      - wherobotsApiKey: []
      x-excluded: true
  /foreign-catalog/{catalog_id}/test-connection:
    post:
      tags:
      - foreign-catalog
      summary: Test an existing foreign catalog connection
      description: 'Tests the connection to a foreign catalog.


        This endpoint allows users to test the connection details of an existing

        foreign catalog.'
      operationId: testExistingForeignCatalogConnection
      security:
      - bearerToken: []
      - wherobotsApiKey: []
      parameters:
      - name: catalog_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the foreign catalog to test.
          title: Catalog Id
        description: The ID of the foreign catalog to test.
      responses:
        '204':
          description: Successful Response
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      x-excluded: true
components:
  schemas:
    ErrorInfo:
      properties:
        code:
          $ref: '#/components/schemas/ErrorClass'
          description: The error code
        message:
          type: string
          title: Message
          description: A human-readable message describing the error
        details:
          type: string
          title: Details
          description: Details about the error
        path:
          type: string
          title: Path
          description: The path to the field that caused the error
        suggestion:
          type: string
          title: Suggestion
          description: Suggested action to resolve the error
          default: Contact us at support@wherobots.com to get help with resolving your error.
        documentation_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Documentation Url
          description: URL to related documentation
        field:
          anyOf:
          - type: string
          - type: 'null'
          title: Field
          description: The field that caused the error if applicable
      type: object
      required:
      - code
      - message
      - details
      - path
      title: ErrorInfo
    S3TablesForeignCatalogUpdate:
      properties:
        type:
          type: string
          const: S3_TABLES
          title: Type
          description: Type of the foreign catalog. Must be 'S3_TABLES'.
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: Updated name of the foreign catalog.
      type: object
      required:
      - type
      title: S3TablesForeignCatalogUpdate
      description: Request model for updating an Amazon S3 Tables foreign catalog.
    AwsGlueForeignCatalogCreate:
      properties:
        type:
          type: string
          const: AWS_GLUE
          title: Type
          description: Type of the foreign catalog.
        name:
          type: string
          title: Name
          description: Name of the foreign catalog.
        region:
          type: string
          title: Region
          description: AWS region where the Glue catalog lives.
        cloudConnectionId:
          type: string
          title: Cloudconnectionid
          description: ID of the AWS cloud connection that grants access to the Glue catalog.
        s3Path:
          anyOf:
          - type: string
          - type: 'null'
          title: S3Path
          description: Optional S3 path constraining which Glue tables this catalog exposes.
        accessType:
          $ref: '#/components/schemas/ForeignCatalogAccessType'
          description: Whether the catalog is read-only or read-write.
      type: object
      required:
      - type
      - name
      - region
      - cloudConnectionId
      - accessType
      title: AwsGlueForeignCatalogCreate
      description: Request model for creating an AWS Glue foreign catalog.
    CloudProvider:
      type: string
      enum:
      - AWS
      title: CloudProvider
    UnityDeltaForeignCatalogUpdate:
      properties:
        type:
          type: string
          const: UNITY_DELTA
          title: Type
          description: Type of the foreign catalog. Must be 'UNITY_DELTA'.
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: Updated name of the foreign catalog.
        serverUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Serverurl
          description: Updated URL of the Unity Delta server.
        token:
          anyOf:
          - type: string
          - type: 'null'
          title: Token
          description: Updated personal access token.
      type: object
      required:
      - type
      title: UnityDeltaForeignCatalogUpdate
      description: 'Request model for updating a Unity Delta foreign catalog.

        Used for OpenAPI schema generation.'
    ForeignCatalogAccessType:
      type: string
      enum:
      - READ
      - READ_WRITE
      title: ForeignCatalogAccessType
      description: Enum for foreign catalog access modes (e.g. read-only vs. read-write).
    UnityIcebergForeignCatalogCreate:
      properties:
        type:
          type: string
          const: UNITY_ICEBERG
          title: Type
          description: Type of the foreign catalog.
        name:
          type: string
          title: Name
          description: Name of the foreign catalog.
        serverUrl:
          type: string
          title: Serverurl
          description: URL of the Unity Iceberg server.
        oauthClientId:
          type: string
          title: Oauthclientid
          description: OAuth client ID for authentication.
        oauthClientSecret:
          type: string
          title: Oauthclientsecret
          description: OAuth client secret for authentication.
        alias:
          anyOf:
          - type: string
          - type: 'null'
          title: Alias
          description: Optional alias for the catalog. If specified, it will be used instead of the `name` to reference the catalog inside a workload.
      type: object
      required:
      - type
      - name
      - serverUrl
      - oauthClientId
      - oauthClientSecret
      title: UnityIcebergForeignCatalogCreate
      description: Request model for creating a Unity Iceberg foreign catalog.
    AwsGlueForeignCatalogRead:
      properties:
        id:
          type: string
          title: Id
          description: Unique external ID of the foreign catalog.
        name:
          type: string
          title: Name
          description: Name of the foreign catalog.
        type:
          type: string
          const: AWS_GLUE
          title: Type
          description: Type of the foreign catalog. Must be 'AWS_GLUE'.
        region:
          type: string
          title: Region
          description: AWS region where the Glue catalog lives.
        s3Path:
          anyOf:
          - type: string
          - type: 'null'
          title: S3Path
        accessType:
          $ref: '#/components/schemas/ForeignCatalogAccessType'
        stackName:
          type: string
          title: Stackname
          description: CloudFormation stack name backing this Glue catalog.
        cloudConnection:
          $ref: '#/components/schemas/CloudConnectionRead'
          description: Resolved cloud connection details.
      type: object
      required:
      - id
      - name
      - type
      - region
      - accessType
      - stackName
      - cloudConnection
      title: AwsGlueForeignCatalogRead
    ErrorBody:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/ErrorInfo'
          type: array
          title: Errors
          description: A list of errors that occurred
        requestId:
          type: string
          title: Requestid
          description: A unique identifier for the request that caused the error
      type: object
      required:
      - errors
      - requestId
      title: ErrorBody
    DeltaForeignCatalogRead:
      properties:
        id:
          type: string
          title: Id
          description: Unique external ID of the foreign catalog.
        name:
          type: string
          title: Name
          description: Name of the foreign catalog.
        serverUrl:
          type: string
          title: Serverurl
          description: URL of the foreign catalog server.
        type:
          type: string
          const: UNITY_DELTA
          title: Type
          description: Type of the foreign catalog. Must be 'UNITY_DELTA'.
      type: object
      required:
      - id
      - name
      - serverUrl
      - type
      title: DeltaForeignCatalogRead
    CloudConnectionManagedBy:
      type: string
      enum:
      - CLOUDFORMATION
      title: CloudConnectionManagedBy
    S3TablesForeignCatalogCreate:
      properties:
        type:
          type: string
          const: S3_TABLES
          title: Type
          description: Type of the foreign catalog.
        name:
          type: string
          title: Name
          description: Name of the foreign catalog.
        cloudConnectionId:
          type: string
          title: Cloudconnectionid
          description: ID of the AWS cloud connection that grants access to the table bucket.
        tableBucketArn:
          type: string
          pattern: ^arn:aws:s3tables:[a-z0-9\-]+:\d{12}:bucket/[a-z0-9][a-z0-9\-]{1,61}[a-z0-9]$
          title: Tablebucketarn
          description: ARN of the S3 Tables table bucket this catalog exposes.
        accessType:
          $ref: '#/components/schemas/ForeignCatalogAccessType'
          description: Whether the catalog is read-only or read-write.
      type: object
      required:
      - type
      - name
      - cloudConnectionId
      - tableBucketArn
      - accessType
      title: S3TablesForeignCatalogCreate
      description: Request model for creating an Amazon S3 Tables foreign catalog.
    CloudConnectionRead:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        cloudProvider:
          $ref: '#/components/schemas/CloudProvider'
        managedBy:
          anyOf:
          - $ref: '#/components/schemas/CloudConnectionManagedBy'
          - type: 'null'
        roleArn:
          anyOf:
          - type: string
          - type: 'null'
          title: Rolearn
        awsAccountId:
          anyOf:
          - type: string
          - type: 'null'
          title: Awsaccountid
        trustedAccountIds:
          items:
            type: string
          type: array
          title: Trustedaccountids
        allowSaas:
          type: boolean
          title: Allowsaas
          default: true
        stackName:
          anyOf:
          - type: string
          - type: 'null'
          title: Stackname
        createdAt:
          type: string
          format: date-time
          title: Createdat
        bindings:
          anyOf:
          - items:
              $ref: '#/components/schemas/CloudConnectionBinding'
            type: array
          - type: 'null'
          title: Bindings
      type: object
      required:
      - id
      - name
      - cloudProvider
      - managedBy
      - createdAt
      title: CloudConnectionRead
    ErrorClass:
      type: string
      enum:
      - BAD_REQUEST_ERROR
      - CONFLICT_ERROR
      - INVALID_INPUT_ERROR
      - INTERNAL_SERVER_ERROR
      - UNAUTHORIZED_ERROR
      - INSUFFICIENT_PERMISSIONS_ERROR
      - THIRD_PARTY_PERMISSIONS_ERROR
      - NOT_FOUND_ERROR
      - INSUFFICIENT_QUOTA_ERROR
      - REQUEST_ENTITY_TOO_LARGE
      - FOREIGN_CATALOG_CONNECTION_FAILED
      - RATE_LIMIT_ERROR
      - TIMEOUT_ERROR
      - ACCOUNT_NOT_PROVISIONED
      - BAD_GATEWAY_ERROR
      - GATEWAY_TIMEOUT_ERROR
      title: ErrorClass
    UnityIcebergForeignCatalogUpdate:
      properties:
        type:
          type: string
          const: UNITY_ICEBERG
          title: Type
          description: Type of the foreign catalog. Must be 'UNITY_ICEBERG'.
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: Updated name of the foreign catalog.
        serverUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Serverurl
          description: Updated URL of the Unity Iceberg server.
        oauthClientId:
          anyOf:
          - type: string
          - type: 'null'
          title: Oauthclientid
          description: Updated OAuth client ID.
        oauthClientSecret:
          anyOf:
          - type: string
          - type: 'null'
          title: Oauthclientsecret
          description: Updated OAuth client secret.
        alias:
          anyOf:
          - type: string
          - type: 'null'
          title: Alias
          description: Updated optional alias.
      type: object
      required:
      - type
      title: UnityIcebergForeignCatalogUpdate
      description: 'Request model for updating a Unity Iceberg foreign catalog.

        Used for OpenAPI schema generation.'
    S3TablesForeignCatalogRead:
      properties:
        id:
          type: string
          title: Id
          description: Unique external ID of the foreign catalog.
        name:
          type: string
          title: Name
          description: Name of the foreign catalog.
        type:
          type: string
          const: S3_TABLES
          title: Type
          description: Type of the foreign catalog. Must be 'S3_TABLES'.
        region:
          type: string
          title: Region
          description: AWS region where the table bucket lives.
        tableBucketArn:
          type: string
          title: Tablebucketarn
          description: ARN of the S3 Tables table bucket this catalog exposes.
        accessType:
          $ref: '#/components/schemas/ForeignCatalogAccessType'
        stackNam

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wherobots/refs/heads/main/openapi/wherobots-foreign-catalog-api-openapi.yml