Tetrate Organizations API

Manage TSB organizations

OpenAPI Specification

tetrate-organizations-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tetrate Service Bridge REST APIs Organizations API
  description: The Tetrate Service Bridge (TSB) REST API provides programmatic management of the TSB control plane. It exposes endpoints for managing organizations, tenants, workspaces, cluster onboarding, gateway configuration, traffic routing, security policies, and application/API lifecycle management across multi-cluster, multi-cloud service mesh environments. The API uses Protobuf-backed REST resources and supports standard CRUD operations via HTTP verbs.
  version: '2.0'
  contact:
    name: Tetrate
    url: https://tetrate.io/
  license:
    name: Proprietary
    url: https://tetrate.io/
servers:
- url: https://{tsb-host}:8443/v2
  description: TSB Management Plane REST API
  variables:
    tsb-host:
      default: tsb.example.com
      description: Hostname of your TSB management plane
security:
- BasicAuth: []
- JWTToken: []
tags:
- name: Organizations
  description: Manage TSB organizations
paths:
  /organizations:
    get:
      operationId: listOrganizations
      summary: List Organizations
      description: Returns a list of all TSB organizations.
      tags:
      - Organizations
      responses:
        '200':
          description: List of organizations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createOrganization
      summary: Create Organization
      description: Creates a new TSB organization.
      tags:
      - Organizations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Organization'
      responses:
        '200':
          description: Created organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /organizations/{organization}:
    get:
      operationId: getOrganization
      summary: Get Organization
      description: Returns the details of a specific organization.
      tags:
      - Organizations
      parameters:
      - $ref: '#/components/parameters/organization'
      responses:
        '200':
          description: Organization details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateOrganization
      summary: Update Organization
      description: Updates an existing organization. The etag from a GET must be included.
      tags:
      - Organizations
      parameters:
      - $ref: '#/components/parameters/organization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Organization'
      responses:
        '200':
          description: Updated organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
    delete:
      operationId: deleteOrganization
      summary: Delete Organization
      description: Deletes an organization and all its child resources.
      tags:
      - Organizations
      parameters:
      - $ref: '#/components/parameters/organization'
      responses:
        '200':
          description: Organization deleted
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ResourceMeta:
      type: object
      properties:
        name:
          type: string
          description: Resource name (1-63 chars, lowercase alphanumeric with hyphens)
        fqn:
          type: string
          description: Fully-qualified name
        displayName:
          type: string
        description:
          type: string
        etag:
          type: string
          description: Version tag for optimistic concurrency
        labels:
          type: object
          additionalProperties:
            type: string
        annotations:
          type: object
          additionalProperties:
            type: string
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        details:
          type: array
          items:
            type: object
    OrganizationList:
      type: object
      properties:
        organizations:
          type: array
          items:
            $ref: '#/components/schemas/Organization'
    Organization:
      allOf:
      - $ref: '#/components/schemas/ResourceMeta'
      type: object
      properties:
        spec:
          type: object
          properties:
            displayName:
              type: string
            description:
              type: string
            deletionProtectionEnabled:
              type: boolean
  parameters:
    organization:
      name: organization
      in: path
      required: true
      description: Organization name
      schema:
        type: string
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication with TSB username and password
    JWTToken:
      type: apiKey
      in: header
      name: x-tetrate-token
      description: JWT token authentication using the x-tetrate-token header
externalDocs:
  description: Tetrate Service Bridge REST API Guide
  url: https://docs.tetrate.io/service-bridge/reference/rest-api/guide