TetraScience Tenants API

The Tenants API from TetraScience — 4 operation(s) for tenants.

Documentation

Specifications

Other Resources

OpenAPI Specification

tetrascience-tenants-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: TetraScience Data and AI Cloud Access Groups Tenants API
  version: '4.0'
  description: Programmatic access to the TetraScience Scientific Data and AI Platform — manage tenants, organizations, users, roles, agents, integrations, pipelines, files, datasets, schemas, and search across the Tetra Data Platform.
  contact:
    name: TetraScience
    url: https://www.tetrascience.com/
  license:
    name: Proprietary
servers:
- url: https://api.tetrascience.com
  description: Production Server
- url: https://api.tetrascience-uat.com
  description: User Acceptance Server
- url: https://api.tetrascience-dev.com
  description: Development Server
- url: https://api.tetrascience-uat.com
  description: User Acceptabce Server
- url: api.tetrascience.com
security:
- token: []
  orgSlug: []
- orgSlug: []
  tsAuthToken: []
tags:
- name: Tenants
paths:
  /v1/tenants/{tenantId}/organizations:
    get:
      description: Get all organizations in a tenant, needs to be system admin.
      tags:
      - Tenants
      summary: Get all organizations in a tenant
      parameters:
      - $ref: '#/paths/~1v1~1tenants~1%7BtenantId%7D/get/parameters/0'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    orgSlug:
                      $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema'
                    name:
                      type: string
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
  /v1/tenants/{tenantId}/users:
    get:
      description: Get all users in a tenant, needs to be org or system admin.
      tags:
      - Tenants
      summary: Get all users in a tenant
      parameters:
      - $ref: '#/paths/~1v1~1tenants~1%7BtenantId%7D/get/parameters/0'
      - name: email
        required: false
        description: Optional email parameter for filtering users
        in: query
        schema:
          type: string
          minLength: 3
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    firstName:
                      type: string
                      example: John
                    lastName:
                      type: string
                      example: Doe
                    email:
                      $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email'
                    status:
                      type: string
                      enum:
                      - active
                      - inactive
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
  /v1/tenants/{tenantId}:
    get:
      description: Get tenant by ID, needs to be org or system admin.
      tags:
      - Tenants
      summary: Get tenant information
      parameters:
      - name: tenantId
        required: true
        in: path
        schema:
          $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1tenants/post/responses/201/content/application~1json/schema'
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
    put:
      description: Update tenant by ID, needs to be system admin.
      tags:
      - Tenants
      summary: Update tenant information
      parameters:
      - $ref: '#/paths/~1v1~1tenants~1%7BtenantId%7D/get/parameters/0'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                disclaimer:
                  type: string
                refreshTokenExpiration:
                  type: number
                authTokenExpiration:
                  type: number
                idleTimeout:
                  type: number
                continuousVerificationEnabled:
                  type: boolean
                ssoEnabled:
                  type: boolean
                defaultIdp:
                  type: string
                idpConfigs:
                  type: array
                  items:
                    type: object
                    properties:
                      ssoMetadataUrl:
                        type: string
                      ssoMetadataXml:
                        type: string
                      ssoProvider:
                        type: string
                      ssoEmailFieldMapping:
                        type: string
                      ssoFirstNameFieldMapping:
                        type: string
                      ssoLastNameFieldMapping:
                        type: string
                      ssoGroupsFieldMapping:
                        type: string
                    required:
                    - ssoProvider
                    - ssoEmailFieldMapping
                    - ssoFirstNameFieldMapping
                    - ssoLastNameFieldMapping
                    - ssoGroupsFieldMapping
                    anyOf:
                    - required:
                      - ssoMetadataUrl
                    - required:
                      - ssoMetadataXml
                passwordExpiryDays:
                  type: number
                passwordComplexity:
                  type: boolean
                noPasswordReuse:
                  type: boolean
                passwordExpiry:
                  type: boolean
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/paths/~1v1~1tenants/post/responses/201/content/application~1json/schema'
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
  /v1/tenants:
    get:
      description: Get all tenants, needs to be system admin.
      tags:
      - Tenants
      summary: Get list of tenants
      parameters:
      - name: subdomain
        required: false
        description: Optional parameter to return a tenant by subdomain
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    name:
                      type: string
                    subdomain:
                      type: string
                    createdBy:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    modifiedBy:
                      $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                    organizations:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                          orgSlug:
                            $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema'
                          name:
                            type: string
                          emailDomain:
                            type: string
                          tenantId:
                            $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
    post:
      description: Create a new tenant, must be system admin.
      tags:
      - Tenants
      summary: Create a new tenant.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
              - type: object
                properties:
                  name:
                    type: string
                  disclaimer:
                    type: string
                  refreshTokenExpiration:
                    type: number
                  authTokenExpiration:
                    type: number
                  idleTimeout:
                    type: number
                  continuousVerificationEnabled:
                    type: boolean
                  ssoEnabled:
                    type: boolean
                  defaultIdp:
                    type: string
                  idpConfigs:
                    type: array
                    items:
                      type: object
                      properties:
                        ssoMetadataUrl:
                          type: string
                        ssoMetadataXml:
                          type: string
                        ssoProvider:
                          type: string
                        ssoEmailFieldMapping:
                          type: string
                        ssoFirstNameFieldMapping:
                          type: string
                        ssoLastNameFieldMapping:
                          type: string
                        ssoGroupsFieldMapping:
                          type: string
                      required:
                      - ssoProvider
                      - ssoEmailFieldMapping
                      - ssoFirstNameFieldMapping
                      - ssoLastNameFieldMapping
                      - ssoGroupsFieldMapping
                      anyOf:
                      - required:
                        - ssoMetadataUrl
                      - required:
                        - ssoMetadataXml
                  passwordExpiryDays:
                    type: number
                  passwordComplexity:
                    type: boolean
                  noPasswordReuse:
                    type: boolean
                  passwordExpiry:
                    type: boolean
              - type: object
                properties:
                  subdomain:
                    type: string
                    minLength: 3
                    maxLength: 22
                required:
                - subdomain
      responses:
        '201':
          description: Successfully created tenant.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id'
                  name:
                    type: string
                  subdomain:
                    type: string
                  disclaimer:
                    type: string
                  features:
                    type: object
                  settings:
                    type: object
                    properties:
                      ssoEnabled:
                        type: boolean
                      defaultIdp:
                        type: string
                      namedUserClientId:
                        type: string
                      namedUserClientSecret:
                        type: string
                      ssoDomain:
                        type: string
                      ssoRedirectUri:
                        type: string
                      authTokenExpiration:
                        description: Value in a minute. Default=240. min=1, max=720
                        type: string
                      refreshTokenExpiration:
                        description: Value in a minute. Default=720. min=1, max=720
                        type: string
                      idleTimeout:
                        type: string
                        description: Value in a minute. Default=60. min=1, max=720
                      resetPassword:
                        type: string
                      passwordComplexity:
                        type: string
                      passwordExpiryDays:
                        type: integer
                      passwordExpiry:
                        type: boolean
                      accountLock:
                        type: boolean
                      maxFailedLogins:
                        type: integer
                      noPasswordReuse:
                        type: boolean
                      idpConfigs:
                        type: array
                        items:
                          type: object
                          properties:
                            ssoMetadataUrl:
                              type: string
                            ssoMetadataXml:
                              type: string
                            ssoProvider:
                              type: string
                            ssoEmailFieldMapping:
                              type: string
                            ssoFirstNameFieldMapping:
                              type: string
                            ssoLastNameFieldMapping:
                              type: string
                            ssoGroupsFieldMapping:
                              type: string
                          required:
                          - ssoProvider
                          - ssoEmailFieldMapping
                          - ssoFirstNameFieldMapping
                          - ssoLastNameFieldMapping
                          - ssoGroupsFieldMapping
                          anyOf:
                          - required:
                            - ssoMetadataUrl
                          - required:
                            - ssoMetadataXml
        '401':
          description: Invalid token
        '403':
          description: Caller is not authorized to perform this action
        '409':
          description: Bad request, Tenant already exists.
components:
  securitySchemes:
    token:
      type: apiKey
      description: JWT Token for authentication
      in: header
      name: ts-auth-token
    orgSlug:
      type: apiKey
      description: Your organization slug
      in: header
      name: x-org-slug
    tsAuthToken:
      type: apiKey
      in: header
      name: ts-auth-token