Tetrate Workspaces API

Manage workspaces within tenants

OpenAPI Specification

tetrate-workspaces-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Tetrate Service Bridge REST APIs Workspaces 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: Workspaces
  description: Manage workspaces within tenants
paths:
  /organizations/{organization}/tenants/{tenant}/workspaces:
    get:
      operationId: listWorkspaces
      summary: List Workspaces
      description: Returns all workspaces within a tenant.
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/organization'
      - $ref: '#/components/parameters/tenant'
      responses:
        '200':
          description: List of workspaces
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceList'
    post:
      operationId: createWorkspace
      summary: Create Workspace
      description: Creates a new workspace within a tenant.
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/organization'
      - $ref: '#/components/parameters/tenant'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Workspace'
      responses:
        '200':
          description: Created workspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace'
  /organizations/{organization}/tenants/{tenant}/workspaces/{workspace}:
    get:
      operationId: getWorkspace
      summary: Get Workspace
      description: Returns the details of a specific workspace.
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/organization'
      - $ref: '#/components/parameters/tenant'
      - $ref: '#/components/parameters/workspace'
      responses:
        '200':
          description: Workspace details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace'
    put:
      operationId: updateWorkspace
      summary: Update Workspace
      description: Updates an existing workspace.
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/organization'
      - $ref: '#/components/parameters/tenant'
      - $ref: '#/components/parameters/workspace'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Workspace'
      responses:
        '200':
          description: Updated workspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace'
    delete:
      operationId: deleteWorkspace
      summary: Delete Workspace
      description: Deletes a workspace and all its groups.
      tags:
      - Workspaces
      parameters:
      - $ref: '#/components/parameters/organization'
      - $ref: '#/components/parameters/tenant'
      - $ref: '#/components/parameters/workspace'
      responses:
        '200':
          description: Workspace deleted
components:
  schemas:
    Workspace:
      allOf:
      - $ref: '#/components/schemas/ResourceMeta'
      type: object
      properties:
        spec:
          type: object
          properties:
            displayName:
              type: string
            description:
              type: string
            namespaceSelector:
              type: object
              description: Selects namespaces assigned to this workspace
              properties:
                names:
                  type: array
                  items:
                    type: string
                  description: Namespaces in cluster/namespace format
    WorkspaceList:
      type: object
      properties:
        workspaces:
          type: array
          items:
            $ref: '#/components/schemas/Workspace'
    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
  parameters:
    workspace:
      name: workspace
      in: path
      required: true
      description: Workspace name
      schema:
        type: string
    tenant:
      name: tenant
      in: path
      required: true
      description: Tenant name
      schema:
        type: string
    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