TetraScience Commands API

The Commands API from TetraScience — 4 operation(s) for commands.

Documentation

Specifications

Other Resources

OpenAPI Specification

tetrascience-commands-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: TetraScience Data and AI Cloud Access Groups Commands 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: Commands
paths:
  /v1/commands:
    post:
      summary: Create command
      description: 'Use this endpoint to create a new command for an on-premises connector/agent. It also automatically sends command to SQS queue for execution. Once it is in the queue, the connector/agent listening on the target queue picks up the command,  tries to execute it, and sends the response back to the command service.

        The maximum create command request size is 10 MB.'
      tags:
      - Commands
      operationId: ag-create-command
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - targetId
              - action
              - expiresAt
              - payload
              properties:
                targetId:
                  type: string
                  description: Agent or Connector ID for which command should be created
                action:
                  type: string
                  description: Action label, such as `TetraScience.Connector.sdc.CreateMeasurementOrder`
                expiresAt:
                  type: string
                  description: Command expiration time (ISO timestamp). Must be at least 60 seconds from the current time.
                  default: '2021-01-31T23:58:43.749Z'
                metadata:
                  type: object
                  description: Metadata key-value pairs
                  additionalProperties: true
                payload:
                  type: object
                  description: Request body for the command
                  additionalProperties: true
                payloadDelivery:
                  type: string
                  description: The delivery method for the command payload. When "embedded" is specified the command body is  included in the SQS message payload. When "referenced" is specified the command body is stored in S3 and only  a reference to the S3 object is included in the SQS message payload. In case no value is passed and payload  is small enough to be transferred over SQS "embedded" is used, otherwise "referenced" is used.
                  enum:
                  - embedded
                  - referenced
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"id\": \"7992e5d6-15bf-4f5b-af06-47f3380ca75a\",\n    \"orgSlug\": \"tetrascience\",\n    \"targetId\": \"b143e7c5-90ae-4b69-895a-decf0b1dfb38\",\n    \"action\": \"TetraScience.Connector.gdc.HttpRequest\",\n    \"expiresAt\": \"2021-01-31T23:58:43.749Z\",\n    \"metadata\": {},\n    \"status\": \"PENDING\",\n    \"requestBody\": {\n        \"body\": {\n            \"url\": \"https://sdc.test.com:9005/SDC/Smartreports/ExportedMeasurements\",\n            \"body\": {\n                \"raw\": \"{\\\"InterfaceId\\\":\\\"1\\\",\\\"LastInterfaceResultId\\\":\\\"0\\\"}\",\n                \"mode\": \"raw\"\n            },\n            \"method\": \"POST\",\n            \"headers\": [\n                {\n                    \"Authorization\": \"Basic ...\"\n                },\n                {\n                    \"Content-Type\": \"application/json\"\n                }\n            ],\n            \"ignore_tls_certificate\": true\n        },\n        \"action\": \"TetraScience.Connector.gdc.HttpRequest\",\n        \"targetId\": \"b143e7c5-90ae-4b69-895a-decf0b1dfb38\",\n        \"commandId\": \"7992e5d6-15bf-4f5b-af06-47f3380ca75a\",\n        \"createdAt\": \"2021-01-20T10:25:02.807Z\",\n        \"expiresAt\": \"2021-01-31T23:58:43.749Z\"\n    },\n    \"responseBody\": null,\n    \"requestPayloadDelivery\": \"embedded\",\n    \"createdByEntity\": \"user\",\n    \"createdBy\": \"59eb8bd4-8b10-43b3-ac57-fe3ab86c05fd\",\n    \"createdAt\": \"2021-01-20T10:25:02.807Z\",\n    \"updatedAt\": \"2021-01-20T10:25:02.872Z\"\n}"
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 7992e5d6-15bf-4f5b-af06-47f3380ca75a
                  orgSlug:
                    type: string
                    example: tetrascience
                  targetId:
                    type: string
                    example: b143e7c5-90ae-4b69-895a-decf0b1dfb38
                  action:
                    type: string
                    example: TetraScience.Connector.gdc.HttpRequest
                  expiresAt:
                    type: string
                    example: '2021-01-31T23:58:43.749Z'
                  metadata:
                    type: object
                    properties: {}
                  status:
                    type: string
                    example: PENDING
                  requestBody:
                    type: object
                    properties:
                      body:
                        type: object
                        properties:
                          url:
                            type: string
                            example: https://sdc.test.com:9005/SDC/Smartreports/ExportedMeasurements
                          body:
                            type: object
                            properties:
                              raw:
                                type: string
                                example: '{"InterfaceId":"1","LastInterfaceResultId":"0"}'
                              mode:
                                type: string
                                example: raw
                          method:
                            type: string
                            example: POST
                          headers:
                            type: array
                            items:
                              type: object
                              properties:
                                Authorization:
                                  type: string
                                  example: Basic ...
                          ignore_tls_certificate:
                            type: boolean
                            example: true
                            default: true
                      action:
                        type: string
                        example: TetraScience.Connector.gdc.HttpRequest
                      targetId:
                        type: string
                        example: b143e7c5-90ae-4b69-895a-decf0b1dfb38
                      commandId:
                        type: string
                        example: 7992e5d6-15bf-4f5b-af06-47f3380ca75a
                      createdAt:
                        type: string
                        example: '2021-01-20T10:25:02.807Z'
                      expiresAt:
                        type: string
                        example: '2021-01-31T23:58:43.749Z'
                  responseBody: {}
                  requestPayloadDelivery:
                    type: string
                    enum:
                    - embedded
                    - referenced
                    example: embedded
                  createdByEntity:
                    type: string
                    example: user
                  createdBy:
                    type: string
                    example: 59eb8bd4-8b10-43b3-ac57-fe3ab86c05fd
                  createdAt:
                    type: string
                    example: '2021-01-20T10:25:02.807Z'
                  updatedAt:
                    type: string
                    example: '2021-01-20T10:25:02.872Z'
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n\t\t\"statusCode\": 400,\n    \"error\": \"Bad request\",\n    \"message\": \"Queue is purging and cannot accept new requests. Please try again later\"\n}"
              schema:
                oneOf:
                - type: object
                  properties:
                    statusCode:
                      type: integer
                      example: 400
                      default: 0
                    error:
                      type: string
                      example: Bad request
                    message:
                      type: string
                      example: Command request payload is larger than maximum size of 10 MB.
                - type: object
                  properties:
                    statusCode:
                      type: integer
                      example: 400
                      default: 0
                    error:
                      type: string
                      example: Bad Request
                    message:
                      type: string
                      example: Error validating metadata. Metadata must contain only string with ASCII characters.
                - type: object
                  properties:
                    statusCode:
                      type: integer
                      example: 400
                      default: 0
                    error:
                      type: string
                      example: Bad request
                    message:
                      type: string
                      example: Param expiresAt must be at least 60 seconds from current date timestamp
                - type: object
                  properties:
                    statusCode:
                      type: integer
                      example: 400
                      default: 0
                    error:
                      type: string
                      example: Bad request
                    message:
                      type: string
                      example: Queue is purging and cannot accept new requests. Please try again later
        '500':
          description: '500'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"statusCode\": 500,\n    \"error\": \"Internal Server Error\",\n    \"message\": \"An internal server error occurred\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 500
                    default: 0
                  error:
                    type: string
                    example: Internal Server Error
                  message:
                    type: string
                    example: An internal server error occurred
      deprecated: false
    delete:
      summary: Purge queue
      description: Use this method to purge all existing commands from the target queue. This command can be useful when testing new pipelines and command creation and the queue is blocked by a large number of unexecuted commands. When you fire this endpoint, all commands are deleted from the queue, and the command status is changed to PURGED.  Also, during the purge, the queue for the given target is blocked and does not receive new commands.
      tags:
      - Commands
      operationId: ag-purge-queue
      parameters:
      - name: targetId
        in: query
        description: Agent or connector ID for which queue should be purged
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"purged\": [{\n      \"commandId\": \"cd0ce1e2-c0f1-47c1-9da9-feaa10cfe7eb\"\n    },{\n      \"commandId\": \"39ead9af-2926-4800-9d11-a3895de495e8\"\n    }]\n}"
              schema:
                type: object
                properties:
                  purged:
                    type: array
                    items:
                      type: object
                      properties:
                        commandId:
                          type: string
                          example: cd0ce1e2-c0f1-47c1-9da9-feaa10cfe7eb
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \t\"statusCode\": 400,\n    \"error\": \"Bad request\",\n    \"message\": \"Queue is already purging. Please try later.\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 400
                    default: 0
                  error:
                    type: string
                    example: Bad request
                  message:
                    type: string
                    example: Queue is already purging. Please try later.
        '500':
          description: '500'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"statusCode\": 500,\n    \"error\": \"Internal Server Error\",\n    \"message\": \"An internal server error occurred\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 500
                    default: 0
                  error:
                    type: string
                    example: Internal Server Error
                  message:
                    type: string
                    example: An internal server error occurred
      deprecated: false
    get:
      summary: Search commands
      description: Use this endpoint to search all on-premises commands based on various filters. This endpoint is useful when you want to filter out commands, get all successful, or unsuccessful commands, get all commands that are sent to some agent/connector, commands that are created within a certain time range and more.
      tags:
      - Commands
      operationId: ag-search-commands
      parameters:
      - name: targetId
        in: query
        description: ID of the target that received and processed command(s). Supports one or more values, such as `targetId=71003689-9619-43aa-809a-a693ede72e8b&targetId=740b1e83-eaf0-4e03-b134-97fb575a8c4c`
        schema:
          type: string
      - name: action
        in: query
        description: Action label, such as TetraScience.Connector.sdc.CreateMeasurementOrder.  Supports one or more values, such as  `action=TetraScience.Connector.sdc.CreateMeasurementOrder&action=TetraScience.Connector.ValidateConfig`
        schema:
          type: string
      - name: status
        in: query
        description: 'Command status: CREATED, UNSENT, PENDING, EXPIRED, PURGED, ERROR, PROCESSING, REJECTED, SUCCESS, FAILURE. Supports one or more values, such as  `status=FAILURE&status=SUCCESS`'
        schema:
          type: string
      - name: fromDate
        in: query
        description: Deprecated name for `createdAtAfter`
        schema:
          type: string
      - name: toDate
        in: query
        description: Deprecated name for `createdAtBefore`
        schema:
          type: string
      - name: createdAtBefore
        in: query
        description: Commands created on or before a given date (ISO timestamp)
        schema:
          type: string
      - name: createdAtAfter
        in: query
        description: Commands created on or after a given date (ISO timestamp)
        schema:
          type: string
      - name: expiresAtBefore
        in: query
        description: Commands expiring on or before a given date (ISO timestamp)
        schema:
          type: string
      - name: expiresAtAfter
        in: query
        description: Commands expiring on or after a given date (ISO timestamp)
        schema:
          type: string
      - name: updatedAtBefore
        in: query
        description: Commands updated on or before a given date (ISO timestamp)
        schema:
          type: string
      - name: updatedAtAfter
        in: query
        description: Commands updated on or after a given date (ISO timestamp)
        schema:
          type: string
      - name: from
        in: query
        description: Display commands started from specified number in the results array.  By default, commands are displayed from the start of the array (the number 0).  This parameter is included if the result set is large, pagination might be required.   This parameter is typically used in conjunction with size.
        schema:
          type: integer
          format: int32
      - name: size
        in: query
        description: Indicates the number of results to return in the request.  This parameter is included if the result set is large, pagination might be required.   This parameter is typically used in conjunction with from.
        schema:
          type: integer
          format: int32
      - name: sortBy
        in: query
        description: 'Sort field: createdAt | updatedAt | expiresAt.'
        schema:
          type: string
      - name: sort
        in: query
        description: 'Sort order: asc | desc'
        schema:
          type: string
      - name: metadata
        in: query
        description: Metadata key-value pairs, such as metadata.vendor=tetra. Pairs must be exact matches of existing metadata values.
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"hits\": [\n    {\n      \"id\": \"013cf44b-e3ef-4757-84c2-ff19a133c955\",\n      \"orgSlug\": \"mgtest\",\n      \"targetId\": \"d7f4c013-26c3-4214-ae6c-f14467ad6848\",\n      \"action\": \"TetraScience.Connector.gdc.HttpRequest\",\n      \"expiresAt\": \"2021-01-10T23:58:43.749Z\",\n      \"metadata\": {\n        \"key1\": \"value1\",\n        \"key2\": \"value2\"\n      },\n      \"status\": \"SUCCESS\",\n      \"requestBody\": {\n        \"body\": {\n          \"url\": \"https://jsonplaceholder.typicode.com/posts\",\n          \"body\": {\n            \"raw\": \"{ \\\"title\\\": \\\"foo\\\", \\\"body\\\": \\\"bar\\\", \\\"userId\\\": 1 }\",\n            \"mode\": \"raw\"\n          },\n          \"method\": \"POST\",\n          \"headers\": [],\n          \"ignore_tls_certificate\": true\n        },\n        \"action\": \"TetraScience.Connector.gdc.HttpRequest\",\n        \"targetId\": \"d7f4c013-26c3-4214-ae6c-f14467ad6848\",\n        \"commandId\": \"013cf44b-e3ef-4757-84c2-ff19a133c955\",\n        \"createdAt\": \"2021-01-08T23:32:31.456Z\",\n        \"expiresAt\": \"2021-01-10T23:58:43.749Z\"\n      },\n      \"responseBody\": {\n        \"body\": \"{\\\"title\\\":\\\"foo\\\",\\\"body\\\":\\\"bar\\\",\\\"userId\\\":1,\\\"id\\\":101}\",\n        \"headers\": [\n          {\n            \"date\": \"Fri, 08 Jan 2021 23:32:33 GMT\"\n          },\n          {\n            \"content-type\": \"application/json; charset=utf-8\"\n          },\n          {\n            \"content-length\": \"65\"\n          },\n          {\n            \"connection\": \"close\"\n          },\n          {\n            \"set-cookie\": [\n              \"__cfduid=d97d344facc0f82adc186946039b275d91610148753; expires=Sun, 07-Feb-21 23:32:33 GMT; path=/; domain=.typicode.com; HttpOnly; SameSite=Lax\"\n            ]\n          },\n          {\n            \"x-powered-by\": \"Express\"\n          },\n          {\n            \"x-ratelimit-limit\": \"1000\"\n          },\n          {\n            \"x-ratelimit-remaining\": \"999\"\n          },\n          {\n            \"x-ratelimit-reset\": \"1610148757\"\n          },\n          {\n            \"vary\": \"Origin, X-HTTP-Method-Override, Accept-Encoding\"\n          },\n          {\n            \"access-control-allow-credentials\": \"true\"\n          },\n          {\n            \"cache-control\": \"no-cache\"\n          },\n          {\n            \"pragma\": \"no-cache\"\n          },\n          {\n            \"expires\": \"-1\"\n          },\n          {\n            \"access-control-expose-headers\": \"Location\"\n          },\n          {\n            \"location\": \"http://jsonplaceholder.typicode.com/posts/101\"\n          },\n          {\n            \"x-content-type-options\": \"nosniff\"\n          },\n          {\n            \"etag\": \"W/\\\"41-GDNaWfnVU6RZhpLbye0veBaqcHA\\\"\"\n          },\n          {\n            \"via\": \"1.1 vegur\"\n          },\n          {\n            \"cf-cache-status\": \"DYNAMIC\"\n          },\n          {\n            \"cf-request-id\": \"0785f147a40000c2c743215000000001\"\n          },\n          {\n            \"expect-ct\": \"max-age=604800, report-uri=\\\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\\\"\"\n          },\n          {\n            \"report-to\": \"{\\\"endpoints\\\":[{\\\"url\\\":\\\"https:\\/\\/a.nel.cloudflare.com\\/report?s=YgiQkNmS0T9r5VNVT7lxY1UOFzqBlOObjIXH5rv5JQuqlQMNpSffc6TdpWXDfXXzBc6PYQcNe7mDBE58luZcL5QssEmJ9BT8GBlVowE9UPNrYlbhbuOF5tSY3QIO\\\"}],\\\"group\\\":\\\"cf-nel\\\",\\\"max_age\\\":604800}\"\n          },\n          {\n            \"nel\": \"{\\\"report_to\\\":\\\"cf-nel\\\",\\\"max_age\\\":604800}\"\n          },\n          {\n            \"server\": \"cloudflare\"\n          },\n          {\n            \"cf-ray\": \"60e9b7ec3c79c2c7-FRA\"\n          }\n        ],\n        \"statusCode\": 201\n      },\n      \"requestPayloadDelivery\": \"embedded\",\n      \"createdByEntity\": \"user\",\n      \"createdBy\": \"59eb8bd4-8b10-43b3-ac57-fe3ab86c05fd\",\n      \"createdAt\": \"2021-01-08T23:32:31.456Z\",\n      \"updatedAt\": \"2021-01-08T23:32:34.219Z\"\n    }\n  ],\n  \"hasNext\": false,\n  \"from\": 0,\n  \"size\": 100,\n  \"sort\": \"desc\"\n}"
              schema:
                type: object
                properties:
                  hits:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 013cf44b-e3ef-4757-84c2-ff19a133c955
                        orgSlug:
                          type: string
                          example: mgtest
                        targetId:
                          type: string
                          example: d7f4c013-26c3-4214-ae6c-f14467ad6848
                        action:
                          type: string
                          example: TetraScience.Connector.gdc.HttpRequest
                        expiresAt:
                          type: string
                          example: '2021-01-10T23:58:43.749Z'
                        metadata:
                          type: object
                          properties:
                            key1:
                              type: string
                              example: value1
                            key2:
                              type: string
                              example: value2
                        status:
                          type: string
                          example: SUCCESS
                        requestBody:
                          type: object
                          properties:
                            body:
                              type: object
                              properties:
                                url:
                                  type: string
                                  example: https://jsonplaceholder.typicode.com/posts
                                body:
                                  type: object
                                  properties:
                                    raw:
                                      type: string
                                      example: '{ "title": "foo", "body": "bar", "userId": 1 }'
                                    mode:
                                      type: string
                                      example: raw
                                method:
                                  type: string
                                  example: POST
                                headers:
                                  type: array
                                ignore_tls_certificate:
                                  type: boolean
                                  example: true
                                  default: true
                            action:
                              type: string
                              example: TetraScience.Connector.gdc.HttpRequest
                            targetId:
                              type: string
                              example: d7f4c013-26c3-4214-ae6c-f14467ad6848
                            commandId:
                              type: string
                              example: 013cf44b-e3ef-4757-84c2-ff19a133c955
                            createdAt:
                              type: string
                              example: '2021-01-08T23:32:31.456Z'
                            expiresAt:
                              type: string
                              example: '2021-01-10T23:58:43.749Z'
                        responseBody:
                          type: object
                          properties:
                            body:
                              type: string
                              example: '{"title":"foo","body":"bar","userId":1,"id":101}'
                            headers:
                              type: array
                              items:
                                type: object
                                properties:
                                  date:
                                    type: string
                                    example: Fri, 08 Jan 2021 23:32:33 GMT
                            statusCode:
                              type: integer
                              example: 201
                              default: 0
                        requestPayloadDelivery:
                          type: string
                          enum:
                          - embedded
                          - referenced
                          example: embedded
                        createdByEntity:
                          type: string
                          example: user
                        createdBy:
                          type: string
                          example: 59eb8bd4-8b10-43b3-ac57-fe3ab86c05fd
                        createdAt:
                          type: string
                          example: '2021-01-08T23:32:31.456Z'
                        updatedAt:
                          type: string
                          example: '2021-01-08T23:32:34.219Z'
                  hasNext:
                    type: boolean
                    example: false
                    default: true
                  from:
                    type: integer
                    example: 0
                    default: 0
                  size:
                    type: integer
                    example: 100
                    default: 0
                  sort:
                    type: string
                    example: desc
        '500':
          description: '500'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"statusCode\": 500,\n    \"error\": \"Internal Server Error\",\n    \"message\": \"An internal server error occurred\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 500
                    default: 0
                  error:
                    type: string
                    example: Internal Server Error
                  message:
                    type: string
                    example: An internal server error occurred
      deprecated: false
  /v1/commands/{id}/history:
    get:
      summary: Get command history
      description: Use this endpoint to obtain all the changes of a given command. It should return all status changes including who made the change and when the change was made.
      tags:
      - Commands
      operationId: get-command-history
      parameters:
      - name: id
        in: path
        description: Command id
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"id\": \"57ebb02f-81d6-4627-8248-6c24c2d61323\",\n    \"history\": [\n        {\n            \"id\": \"14da67ba-57fc-45ea-8621-09a8466a3f15\",\n            \"commandId\": \"57ebb02f-81d6-4627-8248-6c24c2d61323\",\n            \"reason\": \"Command created\",\n            \"updatedBy\": \"platform\",\n            \"updatedAt\": \"2021-01-12T10:14:14.512Z\"\n        },\n        {\n            \"id\": \"50f1e195-8c19-4df6-94bb-75540deee23b\",\n            \"commandId\": \"57ebb02f-81d6-4627-8248-6c24c2d61323\",\n            \"reason\": \"Status update to PENDING\",\n            \"updatedBy\": \"platform\",\n            \"updatedAt\": \"2021-01-12T10:14:14.543Z\"\n        },\n        {\n            \"id\": \"ccb8e962-78fe-43a6-814d-6c27cf62d456\",\n            \"commandId\": \"57ebb02f-81d6-4627-8248-6c24c2d61323\",\n            \"reason\": \"Command status changed to PROCESSING\",\n            \"updatedBy\": \"target\",\n            \"updatedAt\": \"2021-01-12T10:14:16.184Z\"\n        },\n        {\n            \"id\": \"5c5abc92-3c37-4312-943e-a78f9016280d\",\n            \"commandId\": \"57ebb02f-81d6-4627-8248-6c24c2d61323\",\n            \"reason\": \"Command status changed to SUCCESS\",\n            \"updatedBy\": \"target\",\n            \"updatedAt\": \"2021-01-12T10:14:18.054Z\"\n        }\n    ]\n}"
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 57ebb02f-81d6-4627-8248-6c24c2d61323
                  history:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 14da67ba-57fc-45ea-8621-09a8466a3f15
                        commandId:
                          type: string
                          example: 57ebb02f-81d6-4627-8248-6c24c2d61323
                        reason:
                          type: string
                          example: Command created
                        updatedBy:
                          type: string
                          example: platform
                        updatedAt:
                          type: string
                          example: '2021-01-12T10:14:14.512Z'
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"statusCode\": 404,\n    \"error\": \"Not Found\",\n    \"message\": \"Command with given ID 57ebb02f-81d6-4627-8248-6c24c2d61324 does not exist\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 404
                    default: 0
                  error:
                    type: string
                    example: Not Found
                  message:
                    type: string
                    example: Command with given ID 57ebb02f

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