TetraScience Connectors API

The Connectors API from TetraScience — 23 operation(s) for connectors.

Documentation

Specifications

Other Resources

OpenAPI Specification

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


        Use this endpoint to get a list of Connectors.'
      responses:
        '200':
          description: Successful response with a list of all Connectors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorsResponse'
  /v1/data-acquisition/connectors/{id}:
    get:
      tags:
      - Connectors
      operationId: ConnectorController_getById
      summary: Get a Connector by id
      description: '**:warning: This is a new API which is still subject to change.**


        Use this endpoint to get a Connector''s details by id.'
      parameters:
      - name: id
        description: The Connector's id.
        required: true
        in: path
        schema:
          type: string
      - name: resolveSecrets
        description: If true, resolves secrets in the Connector's config. Requires organization admin permissions.
        required: false
        in: query
        schema:
          type: boolean
      - name: include
        description: Include additional Connector fields. 'config' includes the Connector's config. 'artifact' includes the Connector artifact's details.
        required: false
        in: query
        example:
        - config
        schema:
          type: array
          items:
            type: string
            enum:
            - config
            - artifact
      responses:
        '200':
          description: Successful response with a Connector's details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorDetailsDto'
  /v1/data-acquisition/connectors/{id}/metrics:
    get:
      tags:
      - Connectors
      operationId: ConnectorController_getFileMetrics
      summary: Get a Connector's metrics
      description: '**:warning: This is a new API which is still subject to change.**


        Use this endpoint to get the metrics reported by a Connector, including resource usage and file upload and error rates.'
      parameters:
      - name: id
        description: The Connector's id.
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Successful response with the metrics reported by a Connector
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetConnectorMetricsDto'
  /v1/data-acquisition/connectors/{id}/files:
    get:
      tags:
      - Connectors
      operationId: ConnectorController_getFiles
      summary: Get a Connector's reported files
      description: '**:warning: This is a new API which is still subject to change.**


        Use this endpoint to get metadata about the files reported by a Connector, including those that have not yet been uploaded or that have failed.'
      parameters:
      - name: id
        description: The Connector's id.
        required: true
        in: path
        schema:
          type: string
      - name: fileIds
        description: A list of file ids to filter by.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
      - name: excludeFileIds
        description: A list of file ids to exclude from the response.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
      - name: uniqueExternalIds
        description: A list of unique external ids to filter by. Used by Connectors to deduplicate external files.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
      - name: excludeUniqueExternalIds
        description: A list of unique external ids to exclude from the response. Used by Connectors to deduplicate external files.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
      - name: statuses
        description: A list of file statuses to filter by.
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - PENDING
            - PROCESSING
            - SKIPPED
            - SUCCESS
            - ERROR
      - name: maxErrors
        description: The maximum number of errors to filter by. Used by Connectors to limit file upload retries.
        required: false
        in: query
        schema:
          type: number
      - name: createdBefore
        description: The maximum creation date to filter by.
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: createdAfter
        description: The minimum creation date to filter by.
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: updatedBefore
        description: The maximum update date to filter by.
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: updatedAfter
        description: The minimum update date to filter by.
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: orderBy
        description: The field to order by.
        required: false
        in: query
        schema:
          type: string
          enum:
          - filepath
          - status
          - errorCount
          - updatedAt
          - createdAt
      - name: orderDirection
        description: The order direction.
        required: false
        in: query
        schema:
          enum:
          - ASC
          - DESC
          type: string
      - name: take
        description: The number of files to take. Default is 50.
        required: false
        in: query
        schema:
          type: number
          default: 50
      - name: skip
        description: The number of files to skip.
        required: false
        in: query
        schema:
          type: number
          default: 0
      responses:
        '200':
          description: Successful response with a list of files reported by a Connector
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorFilesResponse'
  /v1/data-acquisition/connectors/{id}/files/stats:
    get:
      tags:
      - Connectors
      operationId: ConnectorController_getFileStats
      summary: Get statistics about a Connector's files
      description: '**:warning: This is a new API which is still subject to change.**


        Use this endpoint to get the file statistics reported by a Connector, including the total number of files and the number of files in each status.'
      parameters:
      - name: id
        description: The Connector's id.
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Successful response with the file stats reported by a Connector
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetConnectorFileStatsDto'
  /v1/artifacts/connectors/{namespace}:
    get:
      description: Returns a list of all Connector artifacts given a namespace
      summary: List all Connectors for namespace
      tags:
      - Connectors
      operationId: getConnectorArtifactByNamespace
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/LatestOnlyQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObjectList'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors/{namespace}/{slug}:
    get:
      description: Returns a list of all Connector artifacts given a namespace and slug
      summary: Returns a list of Connector artifacts given a namespace and slug
      tags:
      - Connectors
      operationId: getConnectorArtifactByNamespaceAndSlug
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/LatestOnlyQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObjectList'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors/{namespace}/{slug}/{version}/files/{fileSlug}:
    get:
      description: Returns the file contents for an Connector file given a namespace, slug, version, and file slug
      summary: Get contents for an Connector file
      tags:
      - Connectors
      operationId: getConnectorArtifactByNamespaceSlugAndFileSlug
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/ConnectorFileSlugParam'
      - $ref: '#/components/parameters/DownloadQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200File'
        '400':
          $ref: '#/components/responses/400Any'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors/{namespace}/{slug}/{version}:
    get:
      description: Returns a single Connector artifact matching the namespace, slug, and version
      summary: Get single Connector
      tags:
      - Connectors
      operationId: getConnectorArtifactByNamespaceSlugAndVersion
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObject'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors/{namespace}/{slug}/{version}/files:
    get:
      description: Returns which file slugs are available to retrieve for this Connector
      summary: Get available file slugs for Connector
      tags:
      - Connectors
      operationId: getConnectorArtifactFileSlugs
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorFileSlugList'
        '400':
          $ref: '#/components/responses/400Any'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors/{namespace}/{slug}/{version}/labels:
    get:
      description: Returns a list of the labels associated with a Connector artifact
      summary: Get labels for an Connector
      tags:
      - Connectors
      operationId: getConnectorArtifactLabels
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200Labels'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors/{namespace}/{slug}/{version}/relationships:
    get:
      description: Returns a list of the relationships a Connector artifact has with other artifacts
      summary: Get artifacts related to Connector
      tags:
      - Connectors
      operationId: getConnectorArtifactRelationships
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200Relationships'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors:
    get:
      description: Returns a list of all Connector artifacts, optionally filtered by namespace type
      summary: List all connectors artifacts
      tags:
      - Connectors
      operationId: getConnectorArtifacts
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery'
      - $ref: '#/components/parameters/LatestOnlyQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObjectList'
  /v1/artifacts/data-apps/{namespace}:
    get:
      description: Returns a list of all Data App artifacts given a namespace
      summary: List all Data Apps for namespace
      tags:
      - Connectors
      operationId: getDataAppArtifactByNamespace
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/LatestOnlyQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObjectList'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/data-apps/{namespace}/{slug}:
    get:
      description: Returns a list of all Data App artifacts given a namespace and slug
      summary: Returns a list of Data App artifacts given a namespace and slug
      tags:
      - Connectors
      operationId: getDataAppArtifactByNamespaceAndSlug
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/LatestOnlyQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObjectList'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/data-apps/{namespace}/{slug}/{version}/files/{fileSlug}:
    get:
      description: Returns the file contents for an Data App file given a namespace, slug, version, and file slug
      summary: Get contents for a Data App file
      tags:
      - Connectors
      operationId: getDataAppArtifactByNamespaceSlugAndFileSlug
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/ConnectorFileSlugParam'
      - $ref: '#/components/parameters/DownloadQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200File'
        '400':
          $ref: '#/components/responses/400Any'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/data-apps/{namespace}/{slug}/{version}:
    get:
      description: Returns a single Data App artifact matching the namespace, slug, and version
      summary: Get single Data App
      tags:
      - Connectors
      operationId: getDataAppArtifactByNamespaceSlugAndVersion
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObject'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/data-apps/{namespace}/{slug}/{version}/files:
    get:
      description: Returns which file slugs are available to retrieve for this Data App
      summary: Get available file slugs for Data App
      tags:
      - Connectors
      operationId: getDataAppArtifactFileSlugs
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorFileSlugList'
        '400':
          $ref: '#/components/responses/400Any'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/data-apps/{namespace}/{slug}/{version}/labels:
    get:
      description: Returns a list of the labels associated with a Data App artifact
      summary: Get labels for a Data App
      tags:
      - Connectors
      operationId: getDataAppArtifactLabels
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200Labels'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/data-apps/{namespace}/{slug}/{version}/relationships:
    get:
      description: Returns a list of the relationships a Data App artifact has with other artifacts
      summary: Get artifacts related to Data App
      tags:
      - Connectors
      operationId: getDataAppArtifactRelationships
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespace'
      - $ref: '#/components/parameters/ArtifactSlug'
      - $ref: '#/components/parameters/ArtifactVersion'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200Relationships'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/data-apps:
    get:
      description: Returns a list of all Connector artifacts that can be deployed as a data app, optionally filtered by namespace type
      summary: List all connectors artifacts of sub-type data-app
      tags:
      - Connectors
      operationId: getDataAppArtifacts
      parameters:
      - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery'
      - $ref: '#/components/parameters/LatestOnlyQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          $ref: '#/components/responses/200ConnectorObjectList'
        '404':
          $ref: '#/components/responses/404Any'
  /v1/artifacts/connectors/search:
    post:
      summary: Search for items
      description: Search for items using specified criteria
      tags:
      - Connectors
      operationId: searchConnectors
      parameters:
      - $ref: '#/components/parameters/ValueQuery'
      - $ref: '#/components/parameters/LimitQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          description: A list of items that match the search query
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorObjectList'
  /v1/artifacts/data-apps/search:
    post:
      summary: Search for items
      description: Search for items using specified criteria
      tags:
      - Connectors
      operationId: searchDataApps
      parameters:
      - $ref: '#/components/parameters/ValueQuery'
      - $ref: '#/components/parameters/LimitQuery'
      - $ref: '#/components/parameters/IncludePrereleasesQuery'
      responses:
        '200':
          description: A list of items that match the search query
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorObjectList'
        '404':
          $ref: '#/components/responses/404Any'
components:
  schemas:
    ArtifactDto:
      type: object
      properties:
        namespace:
          type: string
        slug:
          type: string
        version:
          type: string
      required:
      - namespace
      - slug
      - version
      - manifest
    ConnectorFilesResponse:
      type: object
      description: A list of files reported by a Connector.
      properties:
        files:
          type: array
          items:
            $ref: '#/components/schemas/ConnectorFileDto'
        total:
          type: number
      required:
      - files
      - total
    Relationships:
      type: object
      properties:
        ids:
          type: array
          items:
            $ref: '#/components/schemas/Key'
        taskScripts:
          type: array
          items:
            $ref: '#/components/schemas/Key'
        protocols:
          type: array
          items:
            $ref: '#/components/schemas/Key'
        connectors:
          type: array
          items:
            $ref: '#/components/schemas/Key'
      additionalProperties: false
    GetConnectorFileStatsDto:
      type: object
      description: The file stats reported by a Connector.
      properties:
        total:
          type: number
          description: The total number files in all statuses.
        success:
          type: number
          description: The number of files in the success status.
        pending:
          type: number
          description: The number of files in the pending status.
        processing:
          type: number
          description: The number of files in the processing status.
        error:
          type: number
          description: The number of files in the error status.
        skipped:
          type: number
          description: The number of files in the skipped status.
      required:
      - total
      - success
      - pending
      - processing
      - error
      - skipped
    MetricTimeValueDto:
      type: object
      description: A metric time-value pair reported by a Connector.
      properties:
        time:
          format: date-time
          type: string
        value:
          type: number
      required:
      - time
      - value
    ConnectorCustomRouteUiComponentDto:
      type: object
      properties:
        type:
          type: string
          enum:
          - custom
        trigger:
          type: string
          enum:
          - route
        route:
          type: string
        component:
          type: string
      required:
      - type
      - trigger
      - route
      - component
    ConnectorCustomConfigUiComponentDto:
      type: object
      properties:
        type:
          type: string
          enum:
          - custom
        trigger:
          type: string
          enum:
          - configuration
        component:
          type: string
      required:
      - type
      - trigger
      - component
    LabelList:
      type: array
      items:
        type: object
        properties:
          name:
            type: string
          value:
            type: string
        required:
        - name
        - value
        additionalProperties: false
      example:
      - name: label1
        value: value1
      - name: another-label
        value: another-value
    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
    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:
          t

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tetrascience/refs/heads/main/openapi/tetrascience-connectors-api-openapi.yml