TetraScience Hubs API

The Hubs API from TetraScience — 2 operation(s) for hubs.

Documentation

Specifications

Other Resources

OpenAPI Specification

tetrascience-hubs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: TetraScience Data and AI Cloud Access Groups Hubs 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: Hubs
paths:
  /v1/data-acquisition/hubs:
    get:
      tags:
      - Hubs
      operationId: HubController_getAll
      summary: Get all Hubs
      description: '**:warning: This is a new API which is still subject to change.**


        Use this endpoint to get a list of Hubs.'
      parameters:
      - name: include
        required: false
        in: query
        description: Include additional Hub fields. Passing 'status' includes network and health statuses.
        example: status
        schema:
          type: array
          items:
            type: string
            enum:
            - status
      responses:
        '200':
          description: Successful response with a list of all Hubs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HubsResponse'
  /v1/data-acquisition/hubs/{id}:
    get:
      tags:
      - Hubs
      operationId: HubController_getById
      summary: Get a Hub by id
      description: '**:warning: This is a new API which is still subject to change.**


        Use this endpoint to get a Hub''s details by id.'
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: include
        required: false
        description: Include additional Hub fields. Passing 'connectors' includes the list of the Hub's Connectors.
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - connectors
      responses:
        '200':
          description: Successful response with a Hub's details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HubDetailsDto'
components:
  schemas:
    HubDetailsDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        orgSlug:
          type: string
        description:
          type: string
        httpProxyHost:
          type: string
        httpProxyPort:
          type: number
        httpProxyUsername:
          type: string
        httpsProxyHost:
          type: string
        httpsProxyPort:
          type: number
        httpsProxyUsername:
          type: string
        noProxy:
          type: string
        l7ProxyForwardPort:
          type: number
        l7ProxyReverseHttpPort:
          type: number
        l7ProxyReverseHttpsPort:
          type: number
        l7ProxySocatPort:
          type: number
        l7ProxyReverseMqttPort:
          type: number
        l7ProxySocatMqttPort:
          type: number
        l7ProxyLocalnets:
          type: string
        l7ProxyDnsNameservers:
          type: string
        l7ProxyWhitelist:
          type: string
        l7ProxyMaximumMemoryMb:
          type: number
        enabled:
          type: boolean
        status:
          $ref: '#/components/schemas/HubStatusDto'
        host:
          $ref: '#/components/schemas/HubHostDto'
        updatedAt:
          format: date-time
          type: string
        createdAt:
          format: date-time
          type: string
        activationExpiresAt:
          format: date-time
          type: string
        ssmInstanceId:
          type: string
        ecsContainerInstanceArn:
          type: string
        connectors:
          type: array
          items:
            $ref: '#/components/schemas/HubConnectorDto'
      required:
      - id
      - name
      - orgSlug
      - description
      - httpProxyHost
      - httpProxyPort
      - httpProxyUsername
      - httpsProxyHost
      - httpsProxyPort
      - httpsProxyUsername
      - noProxy
      - l7ProxyForwardPort
      - l7ProxyReverseHttpPort
      - l7ProxyReverseHttpsPort
      - l7ProxySocatPort
      - l7ProxyReverseMqttPort
      - l7ProxySocatMqttPort
      - l7ProxyLocalnets
      - l7ProxyDnsNameservers
      - l7ProxyWhitelist
      - l7ProxyMaximumMemoryMb
      - enabled
      - status
      - host
      - updatedAt
      - createdAt
      - activationExpiresAt
      - ssmInstanceId
      - ecsContainerInstanceArn
      - connectors
    HubHostDto:
      type: object
      properties:
        ipAddress:
          type: string
          description: The Hub's IP address.
        hostName:
          type: string
          description: The Hub's host name.
        platformName:
          type: string
          description: The Hub's operating system name.
        platformVersion:
          type: string
          description: The Hub's operating system version.
      required:
      - ipAddress
      - hostName
      - platformName
      - platformVersion
    ArtifactDto:
      type: object
      properties:
        namespace:
          type: string
        slug:
          type: string
        version:
          type: string
      required:
      - namespace
      - slug
      - version
      - manifest
    HubStatusDto:
      type: object
      properties:
        health:
          description: The health status of the Hub.
          type: object
          properties:
            breakdown:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    enum:
                    - Availability
                    - CPU
                    - Disk
                    - Memory
                    - ProxyMemory
                    - ProxyMemoryMax
                    - ProxyAvailability
                  status:
                    type: string
                    enum:
                    - HEALTHY
                    - WARNING
                    - CRITICAL
            status:
              type: string
              description: The overall health status of the Hub. Rolls up to the most severe status in the breakdown.
              enum:
              - HEALTHY
              - WARNING
              - CRITICAL
        network:
          description: The network status of the Hub.
          type: string
          enum:
          - Online
          - Offline
          - Never Seen
        lastSeen:
          description: The last time the Hub was seen by the platform.
          format: date-time
          type: string
        metrics:
          type: array
          items:
            type: object
            properties:
              cpuUsedSystem:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Percent
              cpuUsedUser:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Percent
              diskFree:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
              diskUsed:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Percent
              memoryUsed:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
              memoryFree:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
              memoryBuffered:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
              memoryCached:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
              memoryAvailable:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
              memoryTotal:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
              memoryUsedPercentOfReservation:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Percent
              memoryMax:
                type: object
                properties:
                  value:
                    type: number
                  unit:
                    type: string
                    enum:
                    - Bytes
        proxies:
          description: The status of the Hub's built-in Agent proxies.
          type: object
          properties:
            l7:
              type: object
              properties:
                startedAt:
                  type: string
                  format: date-time
                status:
                  type: string
                  enum:
                  - RUNNING
                  - STOPPED
            l7ReverseNginx:
              type: object
              properties:
                startedAt:
                  type: string
                  format: date-time
                status:
                  type: string
                  enum:
                  - RUNNING
                  - STOPPED
            l7ReverseSocat:
              type: object
              properties:
                startedAt:
                  type: string
                  format: date-time
                status:
                  type: string
                  enum:
                  - RUNNING
                  - STOPPED
            metrics:
              type: array
              items:
                type: object
                properties:
                  cpuUsed:
                    type: object
                    properties:
                      value:
                        type: number
                      unit:
                        type: string
                        enum:
                        - Percent
                  memoryUsed:
                    type: object
                    properties:
                      value:
                        type: number
                      unit:
                        type: string
                        enum:
                        - Bytes
                  memoryUsedPercentOfMax:
                    type: object
                    properties:
                      value:
                        type: number
                      unit:
                        type: string
                        enum:
                        - Percent
                  memoryUsedPercentOfReservation:
                    type: object
                    properties:
                      value:
                        type: number
                      unit:
                        type: string
                        enum:
                        - Percent
                  memoryMax:
                    type: object
                    properties:
                      value:
                        type: number
                      unit:
                        type: string
                        enum:
                        - Bytes
      required:
      - network
      - lastSeen
      - proxies
      - metrics
      - health
    HubConnectorDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        artifact:
          $ref: '#/components/schemas/ArtifactDto'
        hostType:
          type: string
          description: The type of host the Connector is running on.
          enum:
          - cloud
          - hub
        health:
          type: string
        healthErrorCode:
          type: string
        operatingStatus:
          type: string
        networkStatus:
          type: string
        lastSeenAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        createdAt:
          format: date-time
          type: string
      required:
      - id
      - name
      - artifact
      - hostType
      - health
      - healthErrorCode
      - operatingStatus
      - networkStatus
      - lastSeenAt
      - updatedAt
      - createdAt
    HubDto:
      type: object
      properties:
        id:
          description: The Hub's id.
          type: string
        name:
          description: The Hub's name.
          type: string
        orgSlug:
          description: The organization slug that the Hub belongs to.
          type: string
        description:
          description: The Hub's description.
          type: string
        httpProxyHost:
          description: The Hub's http parent proxy host, if set.
          type: string
        httpProxyPort:
          description: The Hub's http parent proxy port, if set.
          type: number
        httpProxyUsername:
          description: A legacy field from when Hub's parent proxy was configured in the cloud; no longer populated.
          type: string
        httpsProxyHost:
          type: string
          description: The Hub's https parent proxy host, if set.
        httpsProxyPort:
          type: number
          description: The Hub's https parent proxy port, if set.
        httpsProxyUsername:
          type: string
          description: A legacy field from when Hub's parent proxy was configured in the cloud; no longer populated.
        noProxy:
          type: string
          description: The Hub's no proxy list, if set.
        l7ProxyForwardPort:
          type: number
          description: The Hub's L7 proxy forward port, used by Agents automatically when using this Hub.
        l7ProxyReverseHttpPort:
          type: number
          description: The Hub's L7 proxy reverse http port, configured explicitly on Agents.
        l7ProxyReverseHttpsPort:
          type: number
          description: The Hub's L7 proxy reverse https port, configured explicitly on Agents.
        l7ProxySocatPort:
          type: number
          description: The Hub's L7 proxy socat port. Not used externally, but configurable to avoid port conflicts.
        l7ProxyReverseMqttPort:
          type: number
          description: The Hub's L7 proxy reverse mqtt port, if set, configured explicitly on IoT Agents.
        l7ProxySocatMqttPort:
          type: number
          description: The Hub's L7 proxy socat mqtt port. Not used externally, but configurable to avoid port conflicts.
        l7ProxyLocalnets:
          type: string
          description: The Hub's L7 proxy localnets, if set.
        l7ProxyDnsNameservers:
          type: string
          description: The Hub's L7 proxy dns nameservers, if set explicitly. Otherwise, defaults to the host VM's.
        l7ProxyWhitelist:
          type: string
          description: The Hub's L7 proxy whitelist, if set. If not set, all endpoints are allowed.
        l7ProxyMaximumMemoryMb:
          type: number
          description: The Hub's L7 proxy maximum memory in MB, if set.
        enabled:
          type: boolean
          description: Whether the Hub is enabled. When disabled, Hub Connectors are disabled but the SSM and ECS Agents continue to await commands.
        status:
          description: The Hub's status. Only present on the list endpoint if include=status is passed. Not present when Hub info is returned on Connectors endpoints.
          $ref: '#/components/schemas/HubStatusDto'
        host:
          $ref: '#/components/schemas/HubHostDto'
        updatedAt:
          format: date-time
          type: string
        createdAt:
          format: date-time
          type: string
        activationExpiresAt:
          description: The time at which the Hub's activation will expire. 24 hours after creation.
          format: date-time
          type: string
        ssmInstanceId:
          description: The Hub's AWS Systems Manager instance id, if the Hub has been installed.
          type: string
        ecsContainerInstanceArn:
          description: The Hub's AWS ECS container instance ARN, if the Hub has been installed.
          type: string
      required:
      - id
      - name
      - orgSlug
      - l7ProxyForwardPort
      - l7ProxyReverseHttpPort
      - l7ProxyReverseHttpsPort
      - l7ProxySocatPort
      - l7ProxyLocalnets
      - l7ProxyMaximumMemoryMb
      - enabled
      - host
      - updatedAt
      - createdAt
      - activationExpiresAt
    HubsResponse:
      type: object
      properties:
        hubs:
          type: array
          items:
            $ref: '#/components/schemas/HubDto'
      required:
      - hubs
  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