openapi: 3.1.0 info: title: TetraScience Data and AI Cloud 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: Access Groups - name: Agents - name: Audit Trail - name: Commands - name: Connectors - name: Data Acquisition - name: Data App Providers - name: Data Apps - name: Edit Subscriptions - name: Embedded Data Apps - name: Hubs - name: IDS - name: Linked Data Apps - name: Login - name: Organizations - name: Pipelines - name: Protocols - name: Requests - name: Roles - name: Task Scripts - name: Tenants - name: Users - name: View Subscriptions - name: ai-workflows - name: clusters - name: connectors - name: databricks - name: lakehouse - name: schemas - name: tetraflows - name: tetraspheres 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/agents/{agentId}/command-queue: put: description: Use this endpoint to enable or disable the command queue of an agent. summary: Enable or disable command queue. operationId: agent-command-queue-enable tags: - Agents parameters: - in: path name: agentId required: true schema: type: string format: uuid description: The ID of the agent. requestBody: content: application/json: schema: type: object properties: enabled: description: Enable or disable the command queue for the agent type: boolean required: - enabled responses: '200': description: Successful response with updated command queue details content: application/json: schema: type: object properties: enabled: type: boolean example: true description: Indicates whether the command queue is enabled. name: type: string example: https://sqs.us-east-2.amazonaws.com/706717599419/onprem-9b9f275c-a60d-454f-8c6c-1ea094e3fd38.fifo description: The URL of the command queue. It is returned only for an enabled queue. visibilityTimeout: type: integer example: 600 description: The visibility timeout for messages in the command queue. It is returned only for an enabled queue. '400': description: Bad Request content: application/json: schema: type: object properties: statusCode: type: integer example: 400 description: The HTTP status code. error: type: string example: Bad Request description: A short description of the error. message: type: string example: Can not enable command queue within 60s after disabling the command queue. description: Additional details about the error. get: summary: Get command queue description: Use this endpoint to get details about the command queue of an agent tags: - Agents operationId: agent-command-queue-get parameters: - in: path name: agentId required: true description: The ID of the agent schema: type: string format: uuid responses: '200': description: Successful response with command queue details content: application/json: schema: type: object properties: enabled: type: boolean example: true description: Indicates whether the command queue is enabled or not. name: type: string example: https://sqs.us-east-2.amazonaws.com/706717599419/onprem-9b9f275c-a60d-454f-8c6c-1ea094e3fd38.fifo description: The URL of the command queue. It is returned only for an enabled queue. visibilityTimeout: type: integer example: 600 description: The visibility timeout for messages in the command queue. It is returned only for an enabled queue. '400': description: Bad Request content: application/json: schema: type: object properties: statusCode: type: integer example: 400 error: type: string example: Bad Request message: type: string example: Error validating payload validation: type: array items: type: object properties: message: type: string example: agentId must be a valid GUID '404': description: Not Found content: application/json: schema: type: object properties: statusCode: type: integer example: 404 error: type: string example: Not Found message: type: string example: Agent with id 9b9f275c-a60d-454f-8c6c-1ea094e3fd37 not found /v1/agents: post: summary: Create an agent description: Use this endpoint to create a new agent. tags: - Agents operationId: agent-create requestBody: content: application/json: schema: type: object required: - name - type - integrationType - integrationId properties: name: type: string description: 'Name of the new agent. Validation: It may contain any alphanumeric character, spaces, and the following special characters, `-`, `_`, `+`, `.`, `/`.' example: Agent name description: type: string description: Description of the new agent. It may contain any alphanumeric character, spaces, line breaks, and the following special characters, `-`, `_`, `+`, `.`, `/`. example: Agent description type: type: string description: Type of the new agent. The valid types are `file-log`, `empower`, `unicorn`, `labx`, `chromeleon` or `user-defined`. enum: - file-log - empower - unicorn - labx - chromeleon - user-defined example: file-log sourceType: type: string description: Source Type of a user-defined agent. For a user-defined agent, it may contain any lower-case alphanumeric character, spaces, and the following special characters, `-`, `_`, `+`, `.`, `/`. However, a space can't be the first character. For other agent types it must be empty, null or not present example: '' integrationType: type: string description: New agent's integration type. The valid types are `api` or `datahub`. enum: - api - datahub integrationId: type: string description: Id of the connector to be used by the new agent, in GUID format example: 6f166302-df8a-4044-ab4b-7ddd3eefb50b format: uuid datahubId: type: string description: Id of the Data Hub the new agent is using, in GUID format. It is required for integrations of type 'datahub'. It must be set to null, empty, or not present for integrations of type 'api'. format: uuid example: null tags: type: array items: type: string example: - tag1 description: Tags to associate with the agent. metadata: type: object additionalProperties: true example: metadataKey: metadataValue description: Metadata to associate with the agent. labels: type: object properties: labelsToAdd: description: Labels to add the agent type: array items: type: object properties: name: type: string maxLength: 128 example: labelKey value: type: string example: labelValue required: - name - value required: - labelsToAdd description: Labels to associate with the agent responses: '200': description: Successful response with agent details content: application/json: schema: type: object properties: id: type: string example: 9b9f275c-a60d-454f-8c6c-1ea094e3fd38 format: uuid description: The ID of the agent. name: type: string example: File-Log Agent description: The name of the agent. description: type: string example: description description: The description of the agent. sourceType: type: string nullable: true description: The source type of the agent (nullable). type: type: string example: file-log description: The type of agent. integrationType: type: string example: api description: The integration type of the agent. integrationId: type: string example: 6f166302-df8a-4044-ab4b-7ddd3eefb50b format: uuid description: The integration ID of the agent. datahubId: type: string format: uuid nullable: true description: The Data Hub ID of the agent (nullable). sourceId: type: string example: 9201d7a7-2282-4ef2-b295-a1d1d1927b9a format: uuid description: The source ID of the agent. isEnabled: type: boolean example: true description: Indicates if the agent is enabled or not. tags: type: array items: type: string example: - tag1 description: Tags associated with the agent. metadata: type: object additionalProperties: true example: null description: Metadata associated with the agent. config: $ref: '#/components/schemas/FLAConfiguration' '400': description: Bad Request. content: application/json: schema: type: object properties: statusCode: type: integer format: int32 example: 400 error: type: string example: Bad Request message: type: string example: Error validating payload validation: type: array items: type: object properties: message: type: string example: '"datahubId" is required' get: summary: Get agents description: Use this endpoint to get a list of agents. tags: - Agents operationId: agents-get parameters: - name: include in: query description: Each agent returned will include its associated labels when the value is 'labels'. Otherwise this parameter is ignored schema: type: string example: labels responses: '200': description: Successful response with a list of all agents. content: application/json: schema: type: array items: $ref: '#/paths/~1v1~1agents~1{agentId}/get/responses/200/content/application~1json/schema' /v1/agents/{agentId}/enabled: put: summary: Enable or disable an agent description: Use this endpoint to enable or disable an agent tags: - Agents operationId: agent-enable parameters: - in: path name: agentId required: true schema: type: string format: uuid description: The ID of the agent. requestBody: content: application/json: schema: type: object properties: enabled: description: Enable or disable the the agent type: boolean required: - enabled responses: '200': description: Agent isEnabled property updated successfully content: application/json: schema: type: object example: {} /v1/agents/{agentId}/configuration/list: get: summary: Get File-Log agent configuration list description: Use this endpoint to get the past configurations of a File-Log agent tags: - Agents operationId: agent-get-configuration-list parameters: - name: agentId in: path description: Agent ID schema: type: string required: true - name: page in: query description: Page number schema: type: integer minimum: 0 default: 1 allowEmptyValue: false - name: size in: query description: Number of items per page schema: type: integer minimum: 1 default: 10 allowEmptyValue: false - name: by in: query description: Filter by agent config type schema: type: string enum: - local - cloud - all default: all allowEmptyValue: false - name: status in: query description: Filter by agent config by its command status schema: type: string enum: - CREATED - UNSENT - PENDING - PURGED - ERROR - PROCESSING - REJECTED - SUCCESS - FAILURE - all default: all allowEmptyValue: false - name: order in: query description: Sorting order by creation date schema: type: string enum: - asc - desc default: desc allowEmptyValue: false responses: '200': description: Successful response content: application/json: schema: type: object properties: page: type: integer example: 1 size: type: integer example: 10 hasNext: type: boolean example: true hits: type: array items: $ref: '#/components/schemas/AgentConfiguration' /v1/agents/{agentId}/configuration: get: summary: Get File-Log agent configuration description: Use this endpoint to get the latest configuration, of the type requested, of a File Log Agent tags: - Agents operationId: agent-get-configuration parameters: - name: agentId in: path description: Agent ID schema: type: string required: true - name: type in: query description: Type of the configuration to be returned, 'cloud' or 'local'. If the parameter is not provided, The endpoint will default to 'local' type. schema: type: string enum: - local - cloud required: false responses: '200': description: Successful response with the latest agent configuration content: application/json: schema: $ref: '#/components/schemas/AgentConfiguration' post: summary: Remotely configure a running File-Log agent description: '-| This endpoint allows configuration of a running File-Log Agent with paths. The File-Log Agent must be version 4.1.0 or greater, and configured to Receive Commands. Additionally, the Command Queue must be enabled for this Agent on TDP. This will remove any paths not included in the JSON. To preserve existing paths, you must include them each time you POST. If the target''s command queue doesn''t exist or is not accessible, the API will return a 400 error code and doesn''t create the command. For more details, see https://developers.tetrascience.com/docs/configuring-the-file-log-agent-in-the-cloud.' tags: - Agents operationId: agent-post-configuration parameters: - name: agentId in: path description: Agent ID schema: type: string required: true requestBody: content: application/json: schema: type: object properties: destination_id: type: string format: uuid description: '**FLA v4.3.0+**: The Destination Id of the Agent' example: 2e72c40f-432e-46a9-a027-e70686e8cd39 services_enabled: type: array items: type: string enum: - fileWatcher description: The services enabled for the Agent example: - fileWatcher services_configuration: type: object properties: fileWatcher: type: object properties: use_path_configuration: type: boolean description: Whether to use path level configuration for start date and interval. Must be set to true. example: true paths: type: array items: $ref: '#/components/schemas/FLAFileWatcherPathConfigurationItem' required: - use_path_configuration required: - fileWatcher required: - services_enabled - services_configuration responses: '200': description: Successful response with the id to the command that executed the update content: application/json: examples: Result: value: commandId: 729dec7d-26f6-4ac2-b1c0-2ae918e270dc schema: type: object properties: commandId: type: string example: 729dec7d-26f6-4ac2-b1c0-2ae918e270dc '400': description: Bad Request content: application/json: examples: Agent is Offline: value: statusCode: 400 error: Bad Request message: Cloud configuration is supported only by Online agents Queue is not created or inaccessible: value: statusCode: 400 error: Bad Request message: Queue for target id 729dec7d-26f6-4ac2-b1c0-2ae918e270dc not found or was not writeable. If you see this message in error, please try disabling and re-enabling the queue. schema: type: object properties: statusCode: type: integer example: 400 default: 0 error: type: string example: Bad Request message: type: string example: Cloud configuration is supported only by Online agents '404': description: Agent not found content: application/json: examples: Result: value: statusCode: 404 error: Not Found message: Agent with id 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda not found schema: type: object properties: statusCode: type: integer example: 404 default: 0 error: type: string example: Not Found message: type: string example: Agent with id 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda not found /v1/agents/{agentId}: get: summary: Get agent description: Use this endpoint to get the details of a single agent. operationId: agent-get tags: - Agents parameters: - in: path name: agentId required: true schema: type: string format: uuid description: The ID of the agent. responses: '200': description: Successful response with agent details content: application/json: schema: type: object properties: id: type: string example: 9b9f275c-a60d-454f-8c6c-1ea094e3fd38 format: uuid description: The unique identifier of the agent. name: type: string example: FLA Agent description: The name of the agent. description: type: string example: description description: The description of the agent. sourceType: type: string nullable: true description: The source type of the agent (nullable). type: type: string example: file-log description: The type of the agent. integrationType: type: string example: api description: The integration type of the agent. integrationId: type: string example: 6f166302-df8a-4044-ab4b-7ddd3eefb50b format: uuid description: The integration ID of the agent. datahubId: type: string nullable: true format: uuid description: The Data Hub ID of the agent (nullable). sourceId: type: string example: 9201d7a7-2282-4ef2-b295-a1d1d1927b9a description: The source ID of the agent. format: uuid isEnabled: type: boolean example: true description: Indicates whether the agent is enabled. tags: type: array items: type: string example: - tag1 description: Tags associated with the agent. metadata: type: object additionalProperties: true example: metadataKey: metadataValue description: Metadata associated with the agent. labels: type: array description: Labels associated with the agent items: type: object properties: name: type: string description: The label name example: vendor value: type: string description: The label value example: Beckman Coulter required: - name - value config: $ref: '#/components/schemas/FLAConfiguration' configStatus: type: string example: SUCCESS description: Agent configuration status of a File-Log agent, null otherwise. configStatusUpdatedAt: type: string format: date-time example: '2023-08-28T14:43:59.753Z' description: Timestamp when configuration status was updated. configStatusError: type: string nullable: true description: Configuration status error message of a File-Log agent, null otherwise. configChangedBy: type: string example: local description: User who changed the configuration of a File-Log agent, null otherwise. configChangedAt: type: string format: date-time example: '2023-09-05T16:25:01.697Z' description: Timestamp when configuration of a File-Log agent was changed, null otherwise. createdAt: type: string format: date-time example: '2023-04-04T14:01:30.136Z' description: Timestamp when the agent was created. updatedAt: type: string format: date-time example: '2023-10-10T16:29:08.573Z' description: Timestamp when the agent was last updated. orgSlug: type: string example: tetrascience description: Organization slug. status: type: string example: Online description: The status of the agent. version: type: string example: v4.3.1 description: The version of the agent. liveType: type: string example: file-log description: Type reported by the agent to the platform. host: type: object properties: ip: type: string example: 10.60.4.128 description: The IP address of the agent host. name: type: string example: EC2AMAZ-53HU01M description: The name of the agent host. description: Information about the machine that the agent is running on. queue: type: object properties: enabled: type: boolean example: true description: Indicates whether the command queue is enabled. name: type: string example: https://sqs.us-east-2.amazonaws.com/706717599419/onprem-9b9f275c-a60d-454f-8c6c-1ea094e3fd38.fifo description: The URL of the command queue. It is returned only for an enabled queue. visibilityTimeout: type: integer example: 600 description: The visibility timeout for messages in the command queue. It is returned only for an enabled queue. description: Information about the command queue. description: Agent status and configuration information. put: summary: Update an agent description: Use this endpoint to update a single agent operationId: agent-update tags: - Agents parameters: - in: path name: agentId required: true schema: type: string format: uuid description: The ID of the agent. requestBody: content: application/json: schema: type: object required: - name - type - integrationType - integrationId properties: name: type: string description: 'Updated name of the agent. Validation: It may contain any alphanumeric character, spaces, and the characters - _ + . /' description: type: string description: Updated description of the agent. It may contain any alphanumeric character, spaces, line breaks, and the characters - _ + . / type: type: string description: Type of the existing agent. The valid types are file-log, empower, unicorn, labx, chromeleon or user-defined It is not allowed to change the type of the agent, so this parameter must match the type of the agent being updated enum: - file-log - empower - unicorn - labx - chromeleon - user-defined example: file-log sourceType: type: string description: Source Type of a user-defined agent. For a user-defined agent, it may contain any lower-case alphanumeric character, spaces, and the characters - _ + . / However, a space can't be the first character. For other agent types it must be empty, null or not present example: '' integrationType: type: string description: Type of the updated integration for the agent. The valid types are `api` or `datahub. enum: - api - datahub integrationId: type: string description: Id of the connector to be used by the agent, in GUID format example: 6f166302-df8a-4044-ab4b-7ddd3eefb50b format: uuid datahubId: type: string description: Id of the Data Hub to be used by the new agent, in GUID format. It is required for integrations of type 'datahub'. It must be set to null, empty or not present for integrations of type 'api' format: uuid example: null tags: type: array items: type: string example: - tag1 description: Tags to associate with the agent. metadata: type: object additionalProperties: true example: metadataKey: metadataValue description: Metadata to associate with the agent. labels: type: object properties: labelsToAdd: type: array description: Labels to add the agent items: $ref: '#/paths/~1v1~1agents/post/requestBody/content/application~1json/schema/properties/labels/properties/labelsToAdd' labelsToDrop: oneOf: - type: array items: type: integer description: Id of the label to drop from the agent - type: integer description: Id of the label to drop from the agent description: Labels to drop from the agent description: Labels to add or drop from the agent responses: '200': $ref: '#/paths/~1v1~1agents~1{agentId}/get/responses/200' '400': description: Bad Request content: application/json: schema: type: object properties: statusCode: type: integer format: int32 example: 400 error: type: string example: Bad Request message: type: string example: Agent type change is not allowed /v1/data-acquisition/agent/credentials: post: summary: Agent Temp AWS Credentials description: This endpoint returns temporary credentials for a given organization based on Data Hub policy. When using those credentials, client can upload files to their Amazon S3 bucket and write log to Amazon CloudWatch. Returned credentials have expiration time 60 minutes. tags: - Data Acquisition operationId: agent-temp-aws-credentials requestBody: content: application/json: schema: type: object required: - agentId - agentVersion properties: agentId: type: string description: This is the sourceId for a user-defined integration. Need to copy from the TDP web UI, where the user-defined integration is created. For existing TetraScience agent who can connect to the TDP{ directly, provide the agentId to this field. agentVersion: type: string description: The Agent version, such as "v1.0.0". responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"AccessKeyId\": \"EXAMPLEAWSACCESSKEYID\",\n \"SecretAccessKey\": \"EXAMPLEAWSSECRETACCESSKEY/REDACTED\"\ ,\n \"SessionToken\": \"EXAMPLE_AWS_SESSION_TOKEN_REDACTED\"\ ,\n \"Expiration\": \"2020-07-01T19:12:22.000Z\"\n}" schema: type: object properties: AccessKeyId: type: string example: EXAMPLEAWSACCESSKEYID SecretAccessKey: type: string example: EXAMPLEAWSSECRETACCESSKEY/REDACTED SessionToken: type: string example: EXAMPLE_AWS_SESSION_TOKEN_REDACTED Expiration: type: string example: '2020-07-01T19:12:22.000Z' '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Source with source\ \ ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda 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: Source with source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda does not exist deprecated: false /v1/agents/{agentId}/connector: put: summary: Change agent connector description: Use this endpoint to change the connector of an agent tags: - Agents operationId: agent-update-connector parameters: - in: path name: agentId required: true schema: type: string format: uuid description: The ID of the agent. requestBody: required: true content: application/json: schema: type: object properties: integrationType: type: string description: Type of the integration. The valid types are `api` or `datahub`. enum: - api - datahub datahubId: format: uuid type: string description: Id of the Data Hub to be used by the new agent, in GUID format. It is required for integrations of type 'datahub'. It must be set to null, empty or not present for integrations of type 'api' integrationId: type: string format: uuid description: The ID of the connector example: integrationType: datahub datahubId: 46568316-feda-4a04-889e-792064ded110 integrationId: 222b2fcb-03ab-4875-a420-77bb35fd8f63 responses: '200': description: Agent connector updated successfully content: application/json: schema: type: object example: {} /v1/dataapps/rules-check: post: summary: Check how many data apps match the provided access control rules tags: - Data Apps operationId: check-data-app-rules requestBody: content: application/json: schema: type: object properties: filters: description: Access control filter (recursive — supports label, allow-all, and, or) type: object properties: type: type: string label: type: string value: type: string operator: type: string additionalProperties: true responses: '200': description: OK content: application/json: schema: type: object properties: dataAppsCount: type: integer '400': description: Bad Request '401': description: Unauthorized '500': description: Internal Server Error /v1/dataapps/apps/container/cookies: delete: summary: Clear the selected data app and auth cookies tags: - Data Apps operationId: clear-embed-cookies responses: '200': description: OK /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/dataapps/providers: post: summary: Create a new Data App Provider tags: - Data App Providers operationId: create-a-data-app-provider requestBody: content: application/json: schema: type: object properties: type: type: string description: The type of provider. Must be a selection from provider templates. name: type: string description: The unique name of this provider orgId: type: string description: Organization ID iconUrl: type: string description: The URL to the icon image secrets: type: array description: The secrets to associate with this provider items: type: object properties: name: type: string value: type: string isExistingSecret: type: boolean responses: '201': description: OK '400': description: Bad Request '503': description: Service Unavailable get: summary: Fetch all data app providers tags: - Data App Providers operationId: fetch-data-app-providers parameters: - name: limit in: query required: false schema: type: integer default: 10 minimum: 1 maximum: 100 description: Maximum number of items to return - name: page in: query required: false schema: type: integer default: 1 minimum: 1 description: Page number for pagination (starts from 1) - name: providerName in: query required: false schema: type: string description: The name of the provider to filter on - name: orgId in: query required: true schema: type: string - name: includeArn in: query required: false schema: type: boolean default: false description: Indicate if the secret ARNs should be included in the response responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/PaginatedDataAppProvider' '400': description: Bad Request '503': description: Service Unavailable /v1/dataapps/apps/linked: post: summary: Create Linked Data App tags: - Linked Data Apps operationId: create-linked-data-app requestBody: content: application/json: schema: type: object properties: name: type: string description: type: string url: type: string iconUrl: type: string format: byte responses: '201': description: Created '400': description: Bad Request '500': description: Internal Server Errors /v1/dataapps/apps/manage: post: summary: Install, update, or uninstall Data Apps description: Perform one or more install, update, or uninstall operations on embedded Data Apps. Submit an array of operations to manage which Data Apps are enabled in your organization. This endpoint supports automated governance workflows from CI/CD pipelines, GitHub Actions, or ServiceNow. tags: - Embedded Data Apps operationId: create-or-delete-embedded-data-app requestBody: required: true content: application/json: schema: type: array minItems: 1 items: type: object required: - action properties: id: type: string format: uuid description: Data App ID. Required for UPDATE and DELETE actions. name: type: string description: Data App name. Required for CREATE and UPDATE actions. slug: type: string description: Data App slug identifier. Required for CREATE and UPDATE actions. type: type: string description: The type of data app. Always "CONTAINER". enum: - CONTAINER default: CONTAINER deploymentType: type: string enum: - SERVER description: 'Deployment model: SERVER (ECS container, iFrame).' default: SERVER version: type: string description: Semantic version to install (e.g., "v2.1.0"). Required for CREATE and UPDATE actions. namespace: type: string description: Artifact namespace (e.g., "common"). Required for CREATE and UPDATE actions. action: type: string enum: - CREATE - UPDATE - DELETE description: 'The operation to perform: CREATE (install), UPDATE (modify), or DELETE (uninstall).' labels: type: array description: Labels for EARS access control. Determines which users can see and use this Data App. items: type: object required: - name - value properties: name: type: string description: Label name (e.g., "department", "environment"). value: type: string description: Label value (e.g., "research", "production"). providerIds: type: array description: Provider IDs to associate with this Data App on install. items: type: string format: uuid examples: install_app: summary: Install a Data App value: - action: CREATE name: Akta Visualizer slug: akta-visualizer namespace: common version: v1.0.0 type: CONTAINER deploymentType: SERVER install_app_with_labels: summary: Install a Data App with EARS labels value: - action: CREATE name: Empower Results Viewer slug: empower-results-viewer namespace: common version: v2.1.0 type: CONTAINER deploymentType: SERVER labels: - name: department value: chromatography uninstall_app: summary: Uninstall a Data App value: - action: DELETE id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 batch_operations: summary: Install one and uninstall another value: - action: CREATE name: Chromeleon Connector slug: chromeleon-connector namespace: common version: v1.0.0 type: CONTAINER deploymentType: SERVER - action: DELETE id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 responses: '200': description: All operations completed successfully. '400': description: 'Validation error. Common causes: missing required fields (action, version, namespace, slug, or name for CREATE/UPDATE), or invalid field values.' content: application/json: schema: type: object properties: error: type: string '403': description: Data App management is not enabled for this organization. '503': description: Data App management service is temporarily unavailable. Retry with backoff. get: summary: List available Data Apps for installation description: Retrieves the catalog of Data Apps available for installation in your organization, including their current installation status. Use this as the discovery endpoint for automated governance workflows — browse available apps and check requirements before installing. tags: - Embedded Data Apps operationId: fetch-all-available-data-apps parameters: - name: limit in: query required: false schema: type: integer default: 10 minimum: 1 maximum: 100 description: Maximum number of items to return - name: page in: query required: false schema: type: integer default: 1 minimum: 1 description: Page number for pagination (starts from 1) - name: search in: query required: false schema: type: string minLength: 1 maxLength: 100 description: Search term to filter data apps by name or slug responses: '200': description: OK content: application/json: schema: type: object properties: dataApps: type: array items: $ref: '#/components/schemas/DataAppManaged' count: type: integer description: Total number of data apps matching the search criteria required: - dataApps - count examples: example_response: summary: Response with data apps and count value: dataApps: - name: Threads description: A Streamlit-powered dashboard to manage threads. A thread is a way capture work-to-be-done by one or more individuals. slug: threads version: v0.8.0 namespace: common iconUrl: https://example.com/icon.png otherVersions: [] type: CONTAINER artifactType: CONTAINER deploymentType: SERVER platformRequirements: [] serviceRequirements: - type: ais minVersion: v1.0.0 - name: Chromatography Insights description: A Streamlit-powered dashboard to visualize chromatography insights slug: chromatography-insights version: v1.7.0 namespace: common iconUrl: https://example.com/icon.png type: CONTAINER artifactType: CONTAINER deploymentType: SERVER platformRequirements: - type: ids namespace: common slug: lcuv-empower version: '>=15.0.0 <16.1.0' - type: ids namespace: common slug: lcuv-chromeleon version: v6.0.0 - type: tetraflow namespace: common slug: chromatography-insights version: v1.6.1 serviceRequirements: [] count: 25 '400': description: Bad Request - Invalid query parameters content: application/json: schema: type: object properties: error: type: string description: Error message describing the validation failure examples: invalid_search: summary: Invalid search parameter value: error: '"search" is not allowed to be empty' invalid_limit: summary: Invalid limit parameter value: error: '"limit" must be greater than or equal to 1' '503': description: Service Unavailable - Managed Data Apps settings are currently unavailable /v1/externalevents/requests/creation: post: operationId: createSubscription tags: - Edit Subscriptions - Requests summary: Request to create a new subscription requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EventbridgeExternalSubscriptionCreate' responses: '200': description: Request created successfully content: application/json: schema: $ref: '#/components/schemas/EventbridgeWriteRequest' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '500': $ref: '#/components/responses/500Any' '501': $ref: '#/components/responses/501Any' /v1/dataapps/providers/{id}: delete: summary: Delete a Data App Provider tags: - Data App Providers operationId: delete-a-data-app-provider parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '503': description: Service Unavailable get: summary: Fetch a Data App Provider tags: - Data App Providers operationId: fetch-a-data-app-provider parameters: - name: id in: path required: true schema: type: string - name: orgId in: query required: true schema: type: string - name: includeArn in: query required: false schema: type: boolean default: false responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DataAppProvider' '404': description: Not Found '503': description: Service Unavailable put: summary: Update a Data App Provider tags: - Data App Providers operationId: update-a-data-app-provider parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: type: object properties: type: type: string description: The type of provider. Must be a selection from provider templates. name: type: string description: The unique name of this provider orgId: type: string description: Organization ID iconUrl: type: string description: The URL to the icon image secrets: type: array description: The secrets to associate with this provider items: type: object properties: name: type: string value: type: string isExistingSecret: type: boolean responses: '200': description: OK '400': description: Bad Request '503': description: Service Unavailable /v1/dataapps/kv/{appSlug}/{key}: delete: summary: Delete connector key value by key for a data app tags: - Data Apps operationId: delete-data-app-connector-key-value-by-key parameters: - name: appSlug in: path required: true schema: type: string - name: artifact_type in: query required: true schema: type: string enum: - CONTAINER - TETRASPHERE description: Required artifact type filter used during authorization and app lookup. - name: namespace in: query required: true schema: type: string description: Required artifact namespace filter used during authorization and app lookup. - name: key in: path required: true schema: type: string pattern: ^[^,]+$ description: Connector key. Commas are not allowed. responses: '204': description: No Content '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '503': description: Service Unavailable get: summary: Fetch connector key value by key for a data app tags: - Data Apps operationId: fetch-data-app-connector-key-value-by-key parameters: - name: appSlug in: path required: true schema: type: string - name: artifact_type in: query required: true schema: type: string enum: - CONTAINER - TETRASPHERE description: Required artifact type filter used during authorization and app lookup. - name: namespace in: query required: true schema: type: string description: Required artifact namespace filter used during authorization and app lookup. - name: key in: path required: true schema: type: string pattern: ^[^,]+$ description: Connector key. Commas are not allowed. responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ConnectorKeyValue' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '503': description: Service Unavailable /v1/dataapps/apps/linked/{id}: delete: summary: Delete Linked Data App tags: - Linked Data Apps operationId: delete-linked-data-app parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK '503': description: Service Unavailable put: summary: Update Linked Data App tags: - Linked Data Apps operationId: update-linked-data-app parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: type: object properties: name: type: string description: type: string url: type: string iconUrl: type: string format: byte responses: '200': description: OK '400': description: Bad Request '500': description: Internal Server Error /v1/accessGroups/{id}: delete: summary: Delete an Access Group description: Delete an [access group](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization). tags: - Access Groups parameters: - name: id in: path required: true schema: type: string format: uuid responses: '204': description: Access group deleted successfully. get: summary: Get Access Group Details description: Get the details of a specific [access group](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization). tags: - Access Groups parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: Group information. content: application/json: schema: $ref: '#/components/schemas/AccessGroup' put: summary: Edit an Access Group description: Edit an [access group's](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization) name, description, status, and [data access rules](https://developers.tetrascience.com/docs/managing-organization-details#create-access-groups). tags: - Access Groups parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUpdateAccessGroup' responses: '200': description: The updated access group. content: application/json: schema: $ref: '#/components/schemas/AccessGroup' /v1/accessGroups/{id}/user/{userId}: delete: summary: Remove a User from an Access Group description: Remove a user from an [access group](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization). tags: - Access Groups parameters: - name: id in: path required: true schema: type: string format: uuid - name: userId in: path required: true schema: type: string format: uuid responses: '204': description: User removed from the access group. /v1/organizations/{organizationId}/users/{userId}: delete: description: Remove a user from the organization, revoking all access and permissions. User account data and audit trails are preserved for compliance purposes. summary: Delete user from organization tags: - Organizations parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/parameters/0' - name: userId required: true in: path schema: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' responses: '204': description: User deleted successfully '401': description: Invalid token '403': description: Caller is not authorized to perform this action /v1/roles/{roleId}: delete: summary: Delete role by ID tags: - Roles parameters: - $ref: '#/paths/~1v1~1roles~1%7BroleId%7D/get/parameters/0' responses: '204': description: Role deleted successfully '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Role not found get: summary: Get role by ID tags: - Roles parameters: - name: roleId required: true in: path schema: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' responses: '200': description: Responding with role content: application/json: schema: $ref: '#/paths/~1v1~1roles/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Role not found put: summary: Update role by ID tags: - Roles parameters: - $ref: '#/paths/~1v1~1roles~1%7BroleId%7D/get/parameters/0' requestBody: required: true content: application/json: schema: type: object allOf: - type: object properties: name: type: string description: type: string ssoGroupMappings: type: array items: type: string example: idp-group-name enabled: type: boolean policyScopes: type: array minimum: 1 items: type: string enum: - developer - dataUser - dataOwner - auditor - analyst - tenantAdmin - orgAdmin - member - support example: developer - type: object properties: id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' responses: '200': description: Responding with updated role content: application/json: schema: $ref: '#/paths/~1v1~1roles/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Role not found /v1/externalevents/requests/{requestId}: parameters: - name: requestId in: path required: true description: ID of the request schema: type: string delete: operationId: deleteRequest tags: - Requests summary: Delete a request by ID responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/EventbridgeWriteRequest' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '405': description: This request cannot yet be deleted content: application/json: schema: $ref: '#/components/schemas/EventbridgeWriteRequest' '500': $ref: '#/components/responses/500Any' get: operationId: getRequest tags: - Requests summary: Get a request by ID responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/EventbridgeWriteRequest' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '500': $ref: '#/components/responses/500Any' /v1/externalevents/requests/deletion: post: operationId: deleteSubscription tags: - Edit Subscriptions - Requests summary: Request to delete a subscription requestBody: required: true content: application/json: schema: type: object properties: id: type: string required: - id responses: '200': description: Request created successfully content: application/json: schema: $ref: '#/components/schemas/EventbridgeWriteRequest' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '500': $ref: '#/components/responses/500Any' '501': $ref: '#/components/responses/501Any' /v1/agents/{agentId}/config: get: deprecated: true summary: Deprecated - Get File-Log agent configuration description: This endpoint has been deprecated in favor of /v1/agents/{agentId}/configuration. Both endpoints are identical. tags: - Agents operationId: deprecated-agent-get-configuration parameters: - name: agentId in: path description: Agent ID schema: type: string required: true - name: type in: query description: Type of the configuration to be returned, 'cloud' or 'local'. If this parameter is not provided, the endpoint will default to 'local'. schema: type: string enum: - local - cloud required: false responses: '200': $ref: '#/paths/~1v1~1agents~1{agentId}~1configuration/get/responses/200' post: summary: Deprecated - Remotely configure a running File-Log agent description: -| This endpoint has been deprecated in favor of /v1/agents/{agentId}/configuration. Both endpoints are identical. deprecated: true operationId: deprecated-agent-post-configuration tags: - Agents parameters: - name: agentId in: path description: Agent ID schema: type: string required: true requestBody: $ref: '#/paths/~1v1~1agents~1{agentId}~1configuration/post/requestBody' responses: '200': $ref: '#/paths/~1v1~1agents~1{agentId}~1configuration/post/responses/200' '400': $ref: '#/paths/~1v1~1agents~1{agentId}~1configuration/post/responses/400' '404': $ref: '#/paths/~1v1~1agents~1{agentId}~1configuration/post/responses/404' /v1/pipeline/{pipelineId}/create-pipeline-bulk-processing-job: post: summary: Create a Bulk Processing Job description: '' operationId: DL-FI-createBulkProcessJob tags: - Pipelines parameters: - name: pipelineId in: path description: The ID of the pipeline schema: type: string format: uuid required: true requestBody: required: true content: application/json: schema: type: object required: - pipelineProcessingTypes - startDate - endDate properties: pipelineProcessingTypes: type: array minItems: 1 items: type: string enum: - PIPELINE_PROCESSING_UNPROCESSED - PIPELINE_PROCESSING_FAILED - PIPELINE_PROCESSING_COMPLETED autoProcess: type: boolean default: true name: type: string concurrentNumber: type: integer minimum: 1 maximum: 1000 default: 1000 startDate: {} endDate: {} responses: '200': $ref: '#/components/responses/200Any' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '409': description: Bulk processing job already exists content: application/json: schema: {} '500': description: Internal error content: application/json: schema: {} /v1/pipeline/create: post: summary: Create New Pipeline description: '' operationId: DL-FI-createPipeline tags: - Pipelines requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PipelineInputObject' responses: '200': $ref: '#/components/responses/200PipelineObject' '400': $ref: '#/components/responses/400Any' /v1/pipeline/{pipelineId}: get: summary: Get Details of a Single Pipeline description: Search data pipeline workflows operationId: DL-FI-getPipeline tags: - Pipelines parameters: - name: pipelineId in: path description: The ID of the pipeline schema: type: string required: true responses: '200': $ref: '#/components/responses/200PipelineObject' '404': $ref: '#/components/responses/404Any' /v1/pipeline/{pipelineId}/revisions/{revisionNumber}: get: summary: Get Pipline Revision Contents description: '' operationId: DL-FI-getRevision tags: - Pipelines parameters: - name: pipelineId in: path description: The ID of the pipeline schema: type: string format: uuid required: true - name: revisionNumber in: path description: The number of the revision to get schema: type: integer required: true responses: '200': description: The pipeline at the time of the requested revision number content: application/json: schema: $ref: '#/components/schemas/PipelineRevision' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/pipeline/{pipelineId}/revisions: get: summary: List Pipeline Revision History description: '' operationId: DL-FI-getRevisions tags: - Pipelines parameters: - name: pipelineId in: path description: The ID of the pipeline schema: type: string format: uuid required: true - name: limit in: query description: The maximum number of results to return. Defaults to 30 required: false schema: type: integer minimum: 1 maximum: 100 - name: cursor in: query description: The first element in the dataset to query from. The cursor is a revision number required: false schema: type: integer responses: '200': description: A list of revisions and a cursor pointing to the next set of revisions content: application/json: schema: type: object required: - revisions properties: revisions: type: array items: $ref: '#/components/schemas/PipelineRevisionMetadata' next: type: number '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/pipeline/import: post: summary: Import a Pipeline description: '' operationId: DL-FI-importPipeline tags: - Pipelines requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PipelineInputObject' responses: '200': $ref: '#/components/responses/200PipelineObject' '400': $ref: '#/components/responses/400Any' /v1/pipeline/pipelines/id-only: get: summary: List Pipeline IDs description: '' operationId: DL-FI-listAllPipelineIds tags: - Pipelines responses: '200': $ref: '#/components/responses/200PipelineIdsList' /v1/pipeline/clusterPolicies/databricks: get: summary: List Databricks Cluster Policies description: Returns a list of platform-level Databricks cluster policies filtered by prefix 'ts-platform-policy-*' operationId: DL-FI-listDatabricksClusterPolicies tags: - clusters - databricks - Pipelines responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/DatabricksClusterPolicy' '400': $ref: '#/components/responses/400Any' '401': $ref: '#/components/responses/401Any' '500': description: Internal server error content: application/json: schema: type: object properties: error: type: string message: type: string /v1/pipeline/clusters/databricks: get: summary: List Databricks Clusters description: '' operationId: DL-FI-listDatabricksClusters tags: - clusters - databricks - Pipelines responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/DatabricksClusterObject' '401': $ref: '#/components/responses/401Any' '404': $ref: '#/components/responses/404Any' /v1/pipeline/list: get: summary: Paginate Through all Pipeline Details (Deprecated) description: Lists all of the pipelines in a paginated list operationId: DL-FI-listPipelinesWithPagination tags: - Pipelines parameters: - name: size in: query description: Number of pipelines to return schema: type: integer minimum: 1 maximum: 1000 default: 100 - name: from in: query description: Page number to start from (0-indexed) schema: type: integer minimum: 0 default: 0 responses: '200': description: Success content: application/json: schema: type: object properties: size: type: integer hasNext: type: boolean from: type: integer hits: type: array items: $ref: '#/components/schemas/PipelineOutputObject' '400': $ref: '#/components/responses/400Any' /v1/organizations/{organizationId}/users: post: description: Add a new user to the organization or invite existing users. Assigns default roles and sends invitation emails as configured. operationId: DL-FI-postApiV1OrganizationsOrganizationidUsers summary: Add a user to Organization tags: - Organizations parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/parameters/0' requestBody: content: application/json: schema: type: object properties: firstName: type: string maxLength: 100 lastName: type: string email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' role: type: string enum: - admin - member - readonly password: type: string status: type: string enum: - active - inactive - locked default: active authType: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/authType' responses: '201': description: Added new user. content: application/json: schema: allOf: - type: object properties: authType: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/authType' email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' firstName: type: string example: John lastName: type: string example: Doe id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' lastActivity: type: string status: type: string enum: - active - inactive systemRole: type: string roles: 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' organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' role: example: Administrator roleId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' status: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/post/responses/201/content/application~1json/schema/allOf/0/properties/status' userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' orgName: type: string - type: object properties: tokens: type: array items: type: object properties: id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' token: type: string description: Truncated token value expiresAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' createdAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' createdBy: type: object properties: id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' firstName: type: string format: John lastName: type: string format: Snow password_history: type: array items: type: object athenaCredentialsUpdatedAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' - type: object properties: preferences: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/get/responses/200/content/application~1json/schema/items/allOf/2/properties/preferences' rowPreferences: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/get/responses/200/content/application~1json/schema/items/allOf/2/properties/preferences' '400': description: Bad request, details in response. content: text/plain: schema: type: string '401': description: Invalid token '403': description: Caller is not authorized to perform this action get: description: List all users within an organization including their roles, status, last activity, and access permissions for administrative oversight. summary: Get Users for Organization tags: - Organizations parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/parameters/0' - name: userStatus required: false in: query schema: type: string enum: - active - inactive - locked example: active - name: role required: false in: query schema: type: string enum: - admin - member - readonly example: service - name: roleId required: true in: query schema: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' - name: authType required: false in: query schema: type: string enum: - password - service example: service - name: from required: false in: query schema: type: number - name: size required: false in: query schema: type: number - name: email required: false description: Email address of the user (exact match) in: query schema: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' - name: firstName required: false in: query description: Exact match on user first name schema: type: string - name: lastName required: false description: Exact match on user last name in: query schema: type: string - name: include required: false in: query schema: type: array items: type: string enum: - connector-users - task-script-users - name: withCredentials required: false in: query schema: type: boolean responses: '200': description: Responding with list of users content: application/json: schema: type: array items: allOf: - type: object properties: authType: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/authType' email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' firstName: type: string example: John lastName: type: string example: Doe id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' lastActivity: type: string status: type: string enum: - active - inactive systemRole: type: string roles: 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' organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' role: example: Administrator roleId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' status: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/get/responses/200/content/application~1json/schema/items/allOf/0/properties/status' userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' orgName: type: string - type: object properties: tokens: type: array items: type: object properties: id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' token: type: string description: Truncated token value expiresAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' createdAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' createdBy: type: object properties: id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' firstName: type: string format: John lastName: type: string format: Snow password_history: type: array items: type: object athenaCredentialsUpdatedAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' - type: object properties: preferences: type: array items: {} rowPreferences: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/get/responses/200/content/application~1json/schema/items/allOf/2/properties/preferences' '401': description: Invalid token '403': description: Caller is not authorized to perform this action /v1/dataapps/apps/{id}/logs/download: get: summary: Download container logs for a specific data app tags: - Data Apps operationId: download-container-logs parameters: - name: id in: path required: true schema: type: string - name: since in: query required: false schema: type: string enum: - 30s - 10m - 30m - 1h - 12h - 1d - 3d - 1w default: 12h description: Relative time range for logs (30s, 10m, 30m, 1h, 12h, 1d, 3d, 1w for download) responses: '200': description: OK - Log file download content: text/plain: schema: type: string '400': description: Bad Request '403': description: Access Denied '404': description: Not Found '500': description: Internal Server Error /v1/dataapps/data/executeDML: post: summary: Execute a DML query on external or lakehouse schemas tags: - Data Apps operationId: execute-dml-query requestBody: content: application/json: schema: $ref: '#/components/schemas/ExecuteDMLRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DMLResult' '400': description: Bad Request '401': description: Unauthorized '500': description: Internal Server Error /v1/dataapps/apps: get: summary: List installed Data Apps description: Retrieves a paginated list of Data Apps currently installed in your organization. Supports filtering by type, labels, and search term. tags: - Data Apps operationId: fetch-all-data-apps parameters: - name: limit in: query required: false schema: type: integer default: 10 minimum: 1 maximum: 100 description: Maximum number of items to return - name: page in: query required: false schema: type: integer default: 1 minimum: 1 description: Page number for pagination (starts from 1) - name: includeLabels in: query required: false schema: type: boolean default: true description: Include labels for each data app - name: labelKey in: query required: false schema: type: string minLength: 1 description: Filter data apps by label key - name: labelValue in: query required: false schema: type: string minLength: 1 description: Filter data apps by label value (requires labelKey) - name: type in: query required: false schema: type: string enum: - CONNECTED - CONTAINER description: Filter data apps by type (CONNECTED or CONTAINER) - name: search in: query required: false schema: type: string minLength: 1 maxLength: 100 description: Search term to filter data apps by name, description, or slug - name: sort in: query required: false schema: type: string enum: - name - type default: name description: Field to sort results by - name: sortDirection in: query required: false schema: type: string enum: - asc - desc default: asc description: Sort direction (asc or desc) responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaginatedDataApp' '400': description: Bad Request '401': description: Unauthorized '503': description: Service Unavailable /v1/dataapps/apps/container/{id}: get: summary: Fetch container data app by connector or data app ID tags: - Data Apps operationId: fetch-container-data-app parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DataApp' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '503': description: Service Unavailable /v1/dataapps/apps/{id}/logs: get: summary: Fetch container logs for a specific data app tags: - Data Apps operationId: fetch-container-logs parameters: - name: id in: path required: true schema: type: string - name: mode in: query required: false schema: type: string enum: - time - count default: time description: 'Log fetch mode: "time" for time-based, "count" for last N messages' - name: since in: query required: false schema: type: string enum: - 30s - 10m - 30m - 1h - 12h - 1d - 3d - 1w default: 1h description: Relative time range for logs (30s, 10m, 30m, 1h, 12h, 1d, 3d, 1w). Used when mode=time - name: count in: query required: false schema: type: integer minimum: 1 maximum: 10000 description: Number of most recent log messages to return. Used when mode=count - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 10000 description: Maximum number of log events per request (for pagination) - name: nextToken in: query required: false schema: type: string description: Token for pagination responses: '200': description: OK content: application/json: schema: type: object properties: count: type: integer data: type: array items: type: object nextToken: type: string searchedLogStreams: type: array items: type: string '400': description: Bad Request '403': description: Access Denied '404': description: Not Found '500': description: Internal Server Error /v1/dataapps/apps/{id}: get: summary: Get Data App details description: Retrieves complete details of a single installed Data App, including metadata, deployment configuration, platform requirements, assigned labels, and associated providers. tags: - Data Apps operationId: fetch-data-app-by-id parameters: - name: id in: path required: true description: Data App ID schema: type: string format: uuid responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DataApp' '400': description: Bad Request '404': description: Not Found /v1/dataapps/providers/templates: get: summary: Fetch all data app provider templates tags: - Data App Providers operationId: fetch-data-app-provider-templates responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/DataAppProviderTemplate' '400': description: Bad Request '503': description: Service Unavailable /v1/dataapps/data/fetchDMLResult: get: summary: Fetch next chunk for an executed DML statement tags: - Data Apps operationId: fetch-dml-result parameters: - name: statementId in: query required: true schema: type: string - name: chunkIndex in: query required: true schema: type: integer responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DMLResultChunk' '400': description: Bad Request '401': description: Unauthorized '500': description: Internal Server Error /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-81d6-4627-8248-6c24c2d61324 does not exist '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}: get: summary: Get one command description: Use this endpoint to obtain all the details for one single command. You will need to supply the command id as the path variable. This endpoint returns details like the command id, creation time, expiration time, the action, actual request body, and more. tags: - Commands operationId: get-one-command 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\": \"d3b63076-02db-4d36-9cea-39fa32f52647\",\n \"orgSlug\": \"mgtest\",\n \"targetId\"\ : \"9154b6c4-0fab-4544-b9c3-c203983e7be6\",\n \"action\": \"TetraScience.Connector.gdc.HttpRequest\"\ ,\n \"expiresAt\": \"2020-12-30T23:58:43.749Z\",\n \"metadata\": {\n \"key1\": \"value1\"\ ,\n \"key2\": \"value2\"\n },\n \"status\": \"ERROR\",\n \"requestBody\": {\n \"\ body\": {\n \"url\": \"https://jsonplaceholder.typicode.com/posts/1\",\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\": \"9154b6c4-0fab-4544-b9c3-c203983e7be6\"\ ,\n \"commandId\": \"d3b63076-02db-4d36-9cea-39fa32f52647\",\n \"createdAt\": \"2020-12-27T17:04:00.500Z\"\ ,\n \"expiresAt\": \"2020-12-30T23:58:43.749Z\"\n },\n \"responseBody\": {\n \"body\"\ : \"{\\\"message\\\":\\\"Request failed with status code 404\\\"}\"\n },\n \"requestPayloadDelivery\"\ : \"embedded\",\n \"createdByEntity\": null,\n \"createdBy\": \"59eb8bd4-8b10-43b3-ac57-fe3ab86c05fd\"\ ,\n \"createdAt\": \"2020-12-27T17:04:00.500Z\",\n \"updatedAt\": \"2020-12-27T17:04:02.721Z\"\n\ }" schema: type: object properties: id: type: string example: d3b63076-02db-4d36-9cea-39fa32f52647 orgSlug: type: string example: mgtest targetId: type: string example: 9154b6c4-0fab-4544-b9c3-c203983e7be6 action: type: string example: TetraScience.Connector.gdc.HttpRequest expiresAt: type: string example: '2020-12-30T23:58:43.749Z' metadata: type: object properties: key1: type: string example: value1 key2: type: string example: value2 status: type: string example: ERROR requestBody: type: object properties: body: type: object properties: url: type: string example: https://jsonplaceholder.typicode.com/posts/1 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: 9154b6c4-0fab-4544-b9c3-c203983e7be6 commandId: type: string example: d3b63076-02db-4d36-9cea-39fa32f52647 createdAt: type: string example: '2020-12-27T17:04:00.500Z' expiresAt: type: string example: '2020-12-30T23:58:43.749Z' responseBody: type: object properties: body: type: string example: '{"message":"Request failed with status code 404"}' createdByEntity: {} requestPayloadDelivery: type: string enum: - embedded - referenced example: embedded createdBy: type: string example: 59eb8bd4-8b10-43b3-ac57-fe3ab86c05fd createdAt: type: string example: '2020-12-27T17:04:00.500Z' updatedAt: type: string example: '2020-12-27T17:04:02.721Z' '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Command with ID d3b63076-02db-4d36-9cea-39fa32f52648\ \ not found\"\n}" schema: type: object properties: statusCode: type: integer example: 404 default: 0 error: type: string example: Not Found message: type: string example: Command with ID d3b63076-02db-4d36-9cea-39fa32f52648 not found '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 /audit-trail: get: tags: - Audit Trail summary: Get audit logs (Paginated) description: Returns a paginated object of audit logs. parameters: - name: actor in: query required: false schema: type: string - name: entityName in: query required: false schema: type: string - name: entity in: query required: true schema: type: string - name: action in: query required: false schema: type: string - name: ids in: query required: false schema: type: string - name: id in: query required: false schema: type: string - name: changeReason in: query required: false schema: type: string - name: from in: query required: true schema: type: string format: date-time - name: to in: query required: true schema: $ref: '#/paths/~1audit-trail/get/parameters/7/schema' - name: take in: query required: false schema: type: number minimum: 1 - name: skip in: query required: false schema: type: number minimum: 0 - name: format in: query required: false schema: type: string default: json enum: - json - csv responses: '200': description: Complex object containing audit logs and paging information. content: application/json: schema: type: object properties: skip: type: number minimum: 0 take: type: number minimum: 1 next: type: boolean logs: type: array items: type: object properties: id: type: string format: uuid orgSlug: type: string example: tetrascience ip: type: string format: ipv4 createdAt: type: string format: date-time entity: type: object properties: id: $ref: '#/paths/~1audit-trail/get/responses/200/content/application~1json/schema/properties/logs/items/properties/id' type: type: string enum: - user - file - datahub-agent - iot-source - user-setting - db-credentials - feature-flag before: type: object after: type: object schemaVersion: type: number minimum: 1 action: type: string enum: - create - update - delete - enable - disable - unlock - change-role - change-password - login-attempt - copy - change-default-role - reset-password - forgot-password-request - expired-token actor: type: object properties: id: $ref: '#/paths/~1audit-trail/get/responses/200/content/application~1json/schema/properties/logs/items/properties/id' type: type: string enum: - user - service-user - local-user name: type: string example: Administrator email: type: string format: email authToken: type: object properties: ending: type: string text/csv: schema: type: string example: 'id,org_slug,actor_id,actor_type,actor_name,actor_email,ip_address,host,auth_token_ending,entity_type,entity_id,action,before,after,change_reason,entity_schema_version,created_at,entity_name e7917f3c-330a-4f56-8218-a8f018e09bfc,tetrascience,59eb8bd4-8b10-43b3-ac57-fe3ab86c05fd,user,Administrator Administrator,admin@tetrascience.com,178.127.44.13,,w7AY9Uc,service-user,6a7e3a44-4f7a-42dc-b728-75ddfb548339,enable,"{""id"": ""6a7e3a44-4f7a-42dc-b728-75ddfb548339"", ""name"": ""Connector 2b50b737-df0d-4a90-9962-cd6b8df6ffdb"", ""type"": ""service-user"", ""email"": ""ts-service-user.6a7e3a44-4f7a-42dc-b728-75ddfb548339@tetrascience.com"", ""status"": ""inactive""}","{""id"": ""6a7e3a44-4f7a-42dc-b728-75ddfb548339"", ""name"": ""Connector 2b50b737-df0d-4a90-9962-cd6b8df6ffdb"", ""type"": ""service-user"", ""email"": ""ts-service-user.6a7e3a44-4f7a-42dc-b728-75ddfb548339@tetrascience.com"", ""status"": ""active""}",,1,2023-04-19 12:05:02.42+00,Connector 2b50b737-df0d-4a90-9962-cd6b8df6ffdb ' /login/config: get: summary: Get login config description: Retrieve global login configuration including SSO availability, configured identity providers, and platform features. Use this to check if SSO is enabled and which identity providers are configured. tags: - Login security: [] responses: '200': description: Successfully fetched login config content: application/json: schema: type: object properties: ssoEnabled: type: boolean ssoProviders: type: array items: type: object properties: providerName: type: string authorizationUrl: type: string defaultIdp: type: boolean features: type: string '401': description: Not authorized /login/sso: get: summary: SSO login description: Authenticate users via Single Sign-On (SSO) using an authorization code from an identity provider. Use this for SSO login flows to obtain user tokens for API access. parameters: - name: code in: query required: true schema: type: string tags: - Login security: [] responses: '200': description: Login Successful content: application/json: schema: $ref: '#/paths/~1login/post/responses/200/content/application~1json/schema' '400': description: SSO not allowed '401': description: Not authorized /{subdomain}/login/config: get: summary: Get login config (Subdomain based) description: Get tenant-specific login configuration for a subdomain including SSO availability, configured identity providers, and tenant features. parameters: - name: subdomain in: path required: true schema: type: string example: tetrascience pattern: ^[0-9a-z][0-9a-z-]*$ tags: - Login security: [] responses: '200': description: Successfully fetched login config content: application/json: schema: $ref: '#/paths/~1login~1config/get/responses/200/content/application~1json/schema' '401': description: Not authorized /{subdomain}/login/sso: get: summary: SSO login (Subdomain based) parameters: - $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0' - $ref: '#/paths/~1login~1sso/get/parameters/0' tags: - Login security: [] responses: '200': description: Login Successful content: application/json: schema: $ref: '#/paths/~1login/post/responses/200/content/application~1json/schema' '400': description: SSO not allowed '401': description: Not authorized /v1/accessGroups: get: summary: List Access Groups for an Organization description: Get a list of all [access groups](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization) for an organization. tags: - Access Groups responses: '200': description: List all of an organization's access groups. content: application/json: schema: type: array items: $ref: '#/components/schemas/AccessGroupSummary' post: summary: Create a New Access Group description: Create a new [access group](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization). tags: - Access Groups requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUpdateAccessGroup' responses: '201': description: The newly created group. content: application/json: schema: $ref: '#/components/schemas/AccessGroup' /v1/accessGroups/user/{id}: get: summary: List Access Groups that a User Belongs To description: Get a list of all [access groups](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization) that a user belongs to. tags: - Access Groups parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: A list of groups that the user is in. content: application/json: schema: type: array items: $ref: '#/components/schemas/AccessGroupSummary' /v1/organizations/{organizationId}: get: description: Retrieve organization details including settings, features, subdomain, and administrative configuration for management purposes. summary: Get organization by ID tags: - Organizations parameters: - name: organizationId required: true in: path schema: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' responses: '200': description: Responding with Organization details content: application/json: schema: type: object properties: id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' createdAt: type: string format: date-time createdBy: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' features: type: object properties: ssoGroupMapping: type: object properties: admin: type: array items: type: string member: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/features/properties/ssoGroupMapping/properties/admin' readonly: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/features/properties/ssoGroupMapping/properties/admin' auditTrail: type: object properties: enabled: type: boolean changeReasonEnabled: type: boolean continuousVerification: type: object properties: enabled: type: boolean modifiedAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' modifiedBy: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' name: $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema' subDomain: type: string type: type: string '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Organization not found. put: description: Update organization properties including name, description, logo, authentication type, email domain, and feature settings. Requires organization or system admin privileges. summary: Update organization by ID tags: - Organizations parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/parameters/0' requestBody: content: application/json: schema: type: object properties: orgSlug: $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema' name: $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema' emailDomain: type: string authType: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/authType' description: type: string logo: type: string features: type: object properties: ssoGroupMapping: type: object properties: admin: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/features/properties/ssoGroupMapping/properties/admin' member: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/features/properties/ssoGroupMapping/properties/admin' readonly: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/features/properties/ssoGroupMapping/properties/admin' auditTrail: type: object properties: enabled: type: boolean changeReasonEnabled: type: boolean continuousVerification: type: object properties: enabled: type: boolean tenantId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' required: - orgSlug - name - emailDomain responses: '200': description: Responding with Organization details content: application/json: schema: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Organization not found. /v1/roles/policies: get: summary: Get all policies supported in the system tags: - Roles responses: '200': description: Responding with list of policies content: application/json: schema: type: array items: type: object properties: name: type: string example: Developer scope: type: string enum: - developer - dataUser - dataOwner - auditor - analyst - tenantAdmin - orgAdmin - member - support example: developer '401': description: Invalid token '403': description: Caller is not authorized to perform this action /v1/roles/{roleId}/users: get: summary: Get users with the role tags: - Roles parameters: - $ref: '#/paths/~1v1~1roles~1%7BroleId%7D/get/parameters/0' - name: pageNumber description: Page number in: query required: false schema: type: number default: 1 minimum: 1 - name: pageSize description: Page size in: query required: false schema: type: number default: 25 minimum: 1 responses: '200': description: Responding with list of users content: application/json: schema: allOf: - type: object properties: total: type: number example: 100 count: type: number example: 25 - type: object properties: users: type: array items: type: object properties: authType: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/authType' email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' firstName: type: string example: John lastName: type: string example: Doe id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' lastActivity: type: string status: type: string enum: - active - inactive systemRole: type: string roles: 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' organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' role: example: Administrator roleId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' status: $ref: '#/paths/~1v1~1roles~1%7BroleId%7D~1users/get/responses/200/content/application~1json/schema/allOf/1/properties/users/items/properties/status' userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' orgName: type: string '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Role not found post: summary: Add / remove users to role tags: - Roles parameters: - $ref: '#/paths/~1v1~1roles~1%7BroleId%7D/get/parameters/0' requestBody: required: true content: application/json: schema: type: object properties: userIdsToAdd: type: array items: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' userIdsToRemove: type: array items: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' responses: '204': description: Users added / removed from role successfully '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Role not found /v1/roles: get: summary: List all roles in an organization tags: - Roles responses: '200': description: Responding with list of roles 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 description: type: string organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' ssoGroupMappings: type: array items: type: string example: idp-group-name enabled: type: boolean createdAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' policyScopes: type: array items: type: string enum: - developer - dataUser - dataOwner - auditor - analyst - tenantAdmin - orgAdmin - member - support example: developer '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Organization not found post: summary: Create a new role in an organization tags: - Roles requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: type: string ssoGroupMappings: type: array items: type: string example: idp-group-name enabled: type: boolean policyScopes: type: array minimum: 1 items: type: string enum: - developer - dataUser - dataOwner - auditor - analyst - tenantAdmin - orgAdmin - member - support example: developer responses: '201': description: Responding with created role 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 description: type: string organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' ssoGroupMappings: type: array items: type: string example: idp-group-name enabled: type: boolean createdAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' policyScopes: type: array items: type: string enum: - developer - dataUser - dataOwner - auditor - analyst - tenantAdmin - orgAdmin - member - support example: developer '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Organization not found /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. /v1/users/me: get: summary: Get current user details tags: - Users responses: '200': description: Responding with user details content: application/json: schema: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/users/{userId}/roles: get: summary: Get user roles in the organization matching the orgSlug tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' responses: '200': description: Responding with user roles content: application/json: schema: $ref: '#/paths/~1v1~1users~1%7BuserId%7D~1status/put/responses/200/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found post: summary: Add new roles for a user tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: type: object properties: organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' roleIds: type: array items: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' responses: '200': description: Responding with user roles content: application/json: schema: $ref: '#/paths/~1v1~1users~1me~1organizations/post/responses/200/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found put: summary: Update the roles for a user tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: $ref: '#/paths/~1v1~1users~1%7BuserId%7D~1roles/post/requestBody/content/application~1json/schema' responses: '200': description: Responding with updated list of user roles content: application/json: schema: $ref: '#/paths/~1v1~1users~1me~1organizations/post/responses/200/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/users/{userId}: get: summary: Get user by ID tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' responses: '200': description: Responding with user details content: application/json: schema: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found put: summary: Update user by ID tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: type: object properties: firstName: type: string lastName: type: string responses: '200': description: Responding with user details content: application/json: schema: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/artifacts/ai-workflows/{namespace}: get: description: Returns a list of all ai-workflow artifacts given a namespace summary: List all ai-workflows for namespace tags: - ai-workflows operationId: getAiWorkflowArtifactByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200AiWorkflowObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ai-workflows/{namespace}/{slug}: get: description: Returns a list of all ai-workflow artifacts given a namespace and slug summary: List all ai-workflows for namespace/slug tags: - ai-workflows operationId: getAiWorkflowArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200AiWorkflowObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ai-workflows/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for a ai-workflow file given a namespace, slug, version, and file slug summary: Get contents for a ai-workflow file tags: - ai-workflows operationId: getAiWorkflowArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/AiWorkflowFileSlugParam' - $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/ai-workflows/{namespace}/{slug}/{version}: get: description: Returns a single ai-workflow artifact matching the namespace, slug, and version summary: Get a single ai-workflow artifact tags: - ai-workflows operationId: getAiWorkflowArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200AiWorkflowObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ai-workflows/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this ai-workflow summary: Get available file slugs for ai-workflow tags: - ai-workflows operationId: getAiWorkflowArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200AiWorkflowFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ai-workflows/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a ai-workflow artifact summary: Get labels for a ai-workflow tags: - ai-workflows operationId: getAiWorkflowArtifactLabels 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/ai-workflows: get: description: Returns a list of all ai-workflow artifacts, optionally filtered by namespace type summary: List all ai-workflow artifacts tags: - ai-workflows operationId: getAiWorkflowArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200AiWorkflowObjectList' '404': $ref: '#/components/responses/404Any' /v1/externalevents/availableEventTypes: get: operationId: getAllAvailableEventTypes tags: - Edit Subscriptions summary: Get a list of all available event types for this org responses: '200': description: Successful response content: application/json: schema: type: object properties: eventTypes: type: array items: $ref: '#/components/schemas/EventbridgeEventType' '500': description: Cannot list available event types content: application/json: schema: {} example: error: Internal Error message: Cannot list available event types /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/ids/{namespace}: get: description: Returns a list of all IDS artifacts given a namespace summary: List all IDSes for namespace tags: - IDS operationId: getIdsArtifactByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200IdsObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ids/{namespace}/{slug}: get: description: Returns a list of all IDS artifacts given a namespace and slug summary: Returns a list of IDS artifacts given a namespace and slug tags: - IDS operationId: getIdsArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200IdsObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ids/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for an IDS file given a namespace, slug, version, and file slug summary: Get contents for an IDS file tags: - IDS operationId: getIdsArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IdsFileSlugParam' - $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/ids/{namespace}/{slug}/{version}: get: description: Returns a single IDS artifact matching the namespace, slug, and version summary: Get single IDS tags: - IDS operationId: getIdsArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200IdsObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ids/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this IDS summary: Get available file slugs for IDS tags: - Protocols operationId: getIdsArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200IdsFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/ids/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a IDS artifact summary: Get labels for an IDS tags: - IDS operationId: getIdsArtifactLabels 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/ids/{namespace}/{slug}/{version}/relationships: get: description: Returns a list of the relationships a IDS artifact has with other artifacts summary: Get artifacts related to IDS tags: - IDS operationId: getIdsArtifactRelationships 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/ids: get: description: Returns a list of all IDS artifacts, optionally filtered by namespace type summary: List all ids artifacts tags: - IDS operationId: getIdsArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200IdsObjectList' /v1/artifacts/lakehouse/{namespace}/{slug}: get: description: Returns a list of all lakehouse artifacts given a namespace and slug summary: List all lakehouse for namespace/slug tags: - lakehouse operationId: getLakehouseArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200LakehouseObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/lakehouse/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for a lakehouse file given a namespace, slug, version, and file slug summary: Get contents for a lakehouse file tags: - lakehouse operationId: getLakehouseArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/LakehouseFileSlugParam' - $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/lakehouse/{namespace}/{slug}/{version}: get: description: Returns a single lakehouse artifact matching the namespace, slug, and version summary: Get a single lakehouse artifact tags: - lakehouse operationId: getLakehouseArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200LakehouseObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/lakehouse/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this lakehouse summary: Get available file slugs for lakehouse tags: - lakehouse operationId: getLakehouseArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200LakehouseFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/lakehouse/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a lakehouse artifact summary: Get labels for a lakehouse tags: - lakehouse operationId: getLakehouseArtifactLabels 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/lakehouse: get: description: Returns a list of all lakehouse artifacts, optionally filtered by namespace type summary: List all lakehouse artifacts tags: - lakehouse operationId: getLakehouseArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200LakehouseObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/lakehouse/{namespace}: get: description: Returns a list of all lakehouse artifacts given a namespace summary: List all lakehouse for namespace tags: - lakehouse operationId: getLakehouseArtifactsByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200LakehouseObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/protocols/{namespace}: get: description: Returns a list of all protocol artifacts given a namespace summary: List all protocols for namespace tags: - Protocols operationId: getProtocolArtifactByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200ProtocolObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/protocols/{namespace}/{slug}: get: description: Returns a list of all protocol artifacts given a namespace and slug summary: List all protocols for namespace/slug tags: - Protocols operationId: getProtocolArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200ProtocolObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/protocols/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for a protocol file given a namespace, slug, version, and file slug summary: Get contents for a protocol file tags: - Protocols operationId: getProtocolArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/ProtocolFileSlugParam' - $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/protocols/{namespace}/{slug}/{version}: get: description: Returns a single protocol artifact matching the namespace, slug, and version summary: Get single protocol tags: - Protocols operationId: getProtocolArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200ProtocolObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/protocols/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this protocol summary: Get available file slugs for protocol tags: - Protocols operationId: getProtocolArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200ProtocolFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/protocols/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a protocol artifact summary: Get labels for a protocol tags: - Protocols operationId: getProtocolArtifactLabels 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/protocols/{namespace}/{slug}/{version}/relationships: get: description: Returns a list of the relationships a protocol artifact has with other artifacts summary: Get related artifacts tags: - Protocols operationId: getProtocolArtifactRelationships 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/protocols: get: description: Returns a list of all protocol artifacts, optionally filtered by namespace type summary: List all protocols tags: - Protocols operationId: getProtocolArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200ProtocolObjectList' /v1/externalevents/requests: get: operationId: getRequests tags: - Requests summary: Get recent requests responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/EventbridgeWriteRequest' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '500': $ref: '#/components/responses/500Any' /v1/artifacts/schemas/{namespace}: get: description: Returns a list of all schema artifacts given a namespace summary: List all schemas for namespace tags: - schemas operationId: getSchemaArtifactByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200SchemaObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/schemas/{namespace}/{slug}: get: description: Returns a list of all schema artifacts given a namespace and slug summary: List all schemas for namespace/slug tags: - schemas operationId: getSchemaArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200SchemaObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/schemas/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for a schemas file given a namespace, slug, version, and file slug summary: Get contents for a schemas file tags: - schemas operationId: getSchemaArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/SchemaFileSlugParam' - $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/schemas/{namespace}/{slug}/{version}: get: description: Returns a single schemas artifact matching the namespace, slug, and version summary: Get a single schemas artifact tags: - schemas operationId: getSchemaArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200SchemaObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/schemas/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this schemas summary: Get available file slugs for schemas tags: - schemas operationId: getSchemaArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200SchemaFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/schemas/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a schemas artifact summary: Get labels for a schemas tags: - schemas operationId: getSchemaArtifactLabels 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/schemas: get: description: Returns a list of all schema artifacts, optionally filtered by namespace type summary: List all schema artifacts tags: - schemas operationId: getSchemaArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200SchemaObjectList' '404': $ref: '#/components/responses/404Any' /v1/externalevents/subscriptions/{subscriptionId}: parameters: - name: subscriptionId in: path required: true description: ID of the subscription schema: type: string get: operationId: getSubscription tags: - View Subscriptions summary: Get a subscription by ID responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/EventbridgeSubscriptionFull' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '500': $ref: '#/components/responses/500Any' '503': $ref: '#/components/responses/503Any' /v1/externalevents/subscriptions: get: operationId: getSubscriptions tags: - View Subscriptions summary: Get subscriptions for your org responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/EventbridgeSubscriptionFull' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '500': $ref: '#/components/responses/500Any' '503': $ref: '#/components/responses/503Any' /v1/artifacts/task-scripts/{namespace}: get: description: Returns a list of all task-script artifacts given a namespace summary: List all task-scripts for a namespace tags: - Task Scripts operationId: getTaskScriptArtifactByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TaskScriptObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/task-scripts/{namespace}/{slug}: get: description: Returns a list of all task-script artifacts given a namespace and slug summary: List all task-scripts for a namespace/slug tags: - Task Scripts operationId: getTaskScriptArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TaskScriptObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/task-scripts/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for a task-script file given a namespace, slug, version, and file slug summary: Get contents of a task-script file tags: - Task Scripts operationId: getTaskScriptArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/TaskScriptFileSlugParam' - $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/task-scripts/{namespace}/{slug}/{version}: get: description: Returns a single task-script artifact matching the namespace, slug, and version summary: Get single task-script tags: - Task Scripts operationId: getTaskScriptArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TaskScriptObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/task-scripts/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this task-script summary: Get available file slugs for task-script tags: - Protocols operationId: getTaskScriptArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TaskScriptFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/task-scripts/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a task-script artifact summary: Get labels for a task-script tags: - Task Scripts operationId: getTaskScriptArtifactLabels 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/task-scripts/{namespace}/{slug}/{version}/relationships: get: description: Returns a list of the relationships a task-script artifact has with other artifacts summary: Get artifacts related to task-script tags: - Task Scripts operationId: getTaskScriptArtifactRelationships 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/task-scripts: get: description: Returns a list of all task-script artifacts, optionally filtered by namespace type summary: List all task-scripts tags: - Task Scripts operationId: getTaskScriptArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TaskScriptObjectList' /v1/artifacts/tetraflows/{namespace}/{slug}: get: description: Returns a list of all tetraflow artifacts given a namespace and slug summary: List all tetraflow for namespace/slug tags: - tetraflows operationId: getTetraflowArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetraflowObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraflows/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for a tetraflow file given a namespace, slug, version, and file slug summary: Get contents for a tetraflow file tags: - tetraflows operationId: getTetraflowArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/TetraflowFileSlugParam' - $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/tetraflows/{namespace}/{slug}/{version}: get: description: Returns a single tetraflows artifact matching the namespace, slug, and version summary: Get a single tetraflow artifact tags: - tetraflows operationId: getTetraflowArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetraflowObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraflows/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this tetraflow summary: Get available file slugs for tetraflow tags: - tetraflows operationId: getTetraflowArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetraflowFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraflows/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a tetraflow artifact summary: Get labels for a tetraflow tags: - tetraflows operationId: getTetraflowArtifactLabels 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/tetraflows: get: description: Returns a list of all tetraflow artifacts, optionally filtered by namespace type summary: List all tetraflow artifacts tags: - tetraflows operationId: getTetraflowArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetraflowObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraflows/{namespace}: get: description: Returns a list of all tetraflow artifacts given a namespace summary: List all tetraflow for namespace tags: - tetraflows operationId: getTetraflowArtifactsByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetraflowObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraspheres/{namespace}: get: description: Returns a list of all tetrasphere artifacts given a namespace summary: List all tetraspheres for namespace tags: - tetraspheres operationId: getTetrasphereArtifactByNamespace parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetrasphereObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraspheres/{namespace}/{slug}: get: description: Returns a list of all tetrasphere artifacts given a namespace and slug summary: List all tetraspheres for namespace/slug tags: - tetraspheres operationId: getTetrasphereArtifactByNamespaceAndSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetrasphereObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraspheres/{namespace}/{slug}/{version}/files/{fileSlug}: get: description: Returns the file contents for a tetrasphere file given a namespace, slug, version, and file slug summary: Get contents for a tetrasphere file tags: - tetraspheres operationId: getTetrasphereArtifactByNamespaceSlugAndFileSlug parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/TetrasphereFileSlugParam' - $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/tetraspheres/{namespace}/{slug}/{version}: get: description: Returns a single tetrasphere artifact matching the namespace, slug, and version summary: Get a single tetrasphere artifact tags: - tetraspheres operationId: getTetrasphereArtifactByNamespaceSlugAndVersion parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetrasphereObject' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraspheres/{namespace}/{slug}/{version}/files: get: description: Returns which file slugs are available to retrieve for this tetrasphere summary: Get available file slugs for tetrasphere tags: - tetraspheres operationId: getTetrasphereArtifactFileSlugs parameters: - $ref: '#/components/parameters/ArtifactNamespace' - $ref: '#/components/parameters/ArtifactSlug' - $ref: '#/components/parameters/ArtifactVersion' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetrasphereFileSlugList' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraspheres/{namespace}/{slug}/{version}/labels: get: description: Returns a list of the labels associated with a tetrasphere artifact summary: Get labels for a tetrasphere tags: - tetraspheres operationId: getTetrasphereArtifactLabels 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/tetraspheres: get: description: Returns a list of all tetrasphere artifacts, optionally filtered by namespace type summary: List all tetrasphere artifacts tags: - tetraspheres operationId: getTetrasphereArtifacts parameters: - $ref: '#/components/parameters/ArtifactNamespaceTypeQuery' - $ref: '#/components/parameters/LatestOnlyQuery' - $ref: '#/components/parameters/IncludePrereleasesQuery' responses: '200': $ref: '#/components/responses/200TetrasphereObjectList' '404': $ref: '#/components/responses/404Any' /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' /v1/commands/actions: get: summary: List command actions description: 'Use this endpoint to list all distinct on-premises command actions. Note that this API does not control command actions, so this result may contain erroneous or unsent actions.' tags: - Commands operationId: list-command-actions responses: '200': description: '200' content: application/json: examples: Result: value: "[\n \"TetraScience.Connector.gdc.HttpRequest\",\n \"TetraScience.Connector.Start\",\n \"TetraScience.Connector.Stop\"\ \n]" schema: type: array items: type: string example: TetraScience.Connector.Start /v1/dataapps/kv/{appSlug}: get: summary: List connector key value keys for a data app tags: - Data Apps operationId: list-data-app-connector-key-value-keys parameters: - name: appSlug in: path required: true schema: type: string - name: artifact_type in: query required: true schema: type: string enum: - CONTAINER - TETRASPHERE description: Required artifact type filter used during authorization and app lookup. - name: namespace in: query required: true schema: type: string description: Required artifact namespace filter used during authorization and app lookup. responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DataAppConnectorKeyValueKeysResponse' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '503': description: Service Unavailable put: summary: Save connector key values for a data app tags: - Data Apps operationId: save-data-app-connector-key-values parameters: - name: appSlug in: path required: true schema: type: string - name: artifact_type in: query required: true schema: type: string enum: - CONTAINER - TETRASPHERE description: Required artifact type filter used during authorization and app lookup. - name: namespace in: query required: true schema: type: string description: Required artifact namespace filter used during authorization and app lookup. requestBody: content: application/json: schema: $ref: '#/components/schemas/SaveDataAppConnectorKeyValuesRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ConnectorKeyValuesResponse' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found '503': description: Service Unavailable /login/forgot-password-request: post: summary: Send a password reset email to the user by email description: Initiate a password reset process by sending a reset email to the user. Use this when users forget their password and need to reset it securely. requestBody: content: application/json: schema: type: object properties: email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' subdomain: type: string orgSlug: $ref: '#/paths/~1%7Bsubdomain%7D~1login~1config/get/parameters/0/schema' tags: - Login security: [] responses: '200': description: Password restore email sent to registered email '400': description: Bad request, details in response content: text/plain: schema: type: string /login: post: summary: Login user description: Authenticate user credentials with email and password. Use this for standard username/password login flows to obtain user tokens for API access. requestBody: content: application/json: schema: type: object properties: email: type: string format: email password: type: string minLength: 8 format: password subdomain: type: string tags: - Login security: [] responses: '200': description: Login Successful content: application/json: schema: type: object properties: user: type: object properties: authType: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/authType' email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' firstName: type: string example: John lastName: type: string example: Doe id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' lastActivity: type: string status: type: string enum: - active - inactive systemRole: type: string roles: 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' organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' role: example: Administrator roleId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' status: $ref: '#/paths/~1login/post/responses/200/content/application~1json/schema/properties/user/properties/status' userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' orgName: type: string token: type: string description: JWT token '401': description: Not authorized, details in response body content: text/plain: schema: type: string /v1/accessGroups/{id}/user: post: summary: Add a User to an Access Group description: Add a user to an [access group](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization). tags: - Access Groups parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object properties: userId: type: string format: uuid description: The UUID of the user to add to the group. required: - userId responses: '201': description: User added to the group. /v1/accessGroups/{id}/users: post: summary: Add or Remove Users from an Access Group description: Add or remove users from an [access group](https://developers.tetrascience.com/docs/managing-organization-details#configure-data-access-rules-for-an-organization). tags: - Access Groups parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object properties: add: type: array items: type: string format: uuid remove: type: array items: type: string format: uuid responses: '201': description: Users list updated. /v1/users/me/organizations: post: summary: Set default organization tags: - Users requestBody: required: true content: application/json: schema: type: object properties: id: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' responses: '200': description: Successfully updated default organization content: application/json: schema: 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' organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' role: example: Administrator roleId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' status: type: string enum: - active - inactive userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' orgName: type: string '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User/Organization not found /v1/users/{userId}/token/revoke: post: summary: Revoke user token tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: type: object properties: userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' token: type: string description: Truncated (last 7 characters) or full token value required: - userId - token responses: '200': description: Responding with user token content: application/json: schema: $ref: '#/paths/~1v1~1users~1%7BuserId%7D~1token/post/responses/200/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/users/{userId}/token: post: summary: Create user token tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: type: object properties: userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' tokenExpiry: type: integer enum: - 4 - 8 - 12 - 24 example: 12 tokenExpiryUnit: type: string enum: - hours example: hours required: - userId - tokenExpiry responses: '200': description: Responding with user token content: application/json: schema: type: object properties: token: type: string expiresAt: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D/get/responses/200/content/application~1json/schema/properties/createdAt' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /login/update-expired: put: summary: Update expired password description: Allow users to update their password if it has expired. Use this when users need to set a new password after their current one has expired. requestBody: content: application/json: schema: type: object properties: email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' password: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/password' newPassword: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/password' subdomain: type: string tags: - Login security: [] responses: '200': description: Password updated successfully content: application/json: schema: type: object properties: authType: type: string enum: - sso - password - service email: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/email' firstName: type: string example: John lastName: type: string example: Doe id: type: string example: 7b2b05ea-99d1-40e5-bebc-e0fd8713e3e2 format: uuid lastActivity: type: string status: type: string enum: - active - inactive systemRole: type: string roles: 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' organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' role: example: Administrator roleId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' status: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/status' userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' orgName: type: string '400': description: Bad request, details in response content: text/plain: schema: type: string /v1/roles/{roleId}/ssoMapping: put: summary: Update SSO group mapping for role tags: - Roles parameters: - $ref: '#/paths/~1v1~1roles~1%7BroleId%7D/get/parameters/0' requestBody: required: true content: application/json: schema: type: object properties: ssoGroupMappings: type: array items: type: string example: idp-group-name responses: '200': description: Responding with updated role content: application/json: schema: $ref: '#/paths/~1v1~1roles/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: Role not found /v1/users/me/password: put: summary: Update current user's password tags: - Users requestBody: required: true content: application/json: schema: type: object properties: password: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/password' newPassword: $ref: '#/paths/~1login/post/requestBody/content/application~1json/schema/properties/password' responses: '200': description: Password updated successfully '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/users/{userId}/resetPassword: put: summary: Update a user's password tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: type: object properties: password: $ref: '#/paths/~1v1~1users~1%7BuserId%7D~1unlock/put/requestBody/content/application~1json/schema/properties/password' responses: '200': description: Password reset request handled successfully content: application/json: schema: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/users/{userId}/status: put: summary: Update user status in the organization tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: type: object properties: status: type: string enum: - active - inactive responses: '200': description: Successfully updated user status 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' organizationId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' role: example: Administrator roleId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' status: type: string enum: - active - inactive userId: $ref: '#/paths/~1login~1update-expired/put/responses/200/content/application~1json/schema/properties/id' orgName: type: string '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/users/{userId}/unlock: put: summary: Unlock user tags: - Users parameters: - $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users~1%7BuserId%7D/delete/parameters/1' requestBody: required: true content: application/json: schema: type: object properties: password: type: string minLength: 8 format: password responses: '200': description: Unlock user request handled successfully content: application/json: schema: $ref: '#/paths/~1v1~1organizations~1%7BorganizationId%7D~1users/post/responses/201/content/application~1json/schema' '401': description: Invalid token '403': description: Caller is not authorized to perform this action '404': description: User not found /v1/artifacts/ai-workflows/search: post: summary: Search for ai-workflow artifacts description: Search for items using specified criteria tags: - ai-workflows operationId: searchAiWorkflowArtifacts 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/AiWorkflowObjectList' '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' /v1/artifacts/ids/search: post: summary: Search for items description: Search for items using specified criteria tags: - IDS operationId: searchIds 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/IdsObjectList' /v1/artifacts/lakehouse/search: post: summary: Search for lakehouse artifacts description: Search for items using specified criteria tags: - lakehouse operationId: searchLakehouseArtifacts 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/LakehouseObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/protocols/search: post: summary: Search for items description: Search for items using specified criteria tags: - Protocols operationId: searchProtocols 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/ProtocolObjectList' /v1/artifacts/schemas/search: post: summary: Search for schema artifacts description: Search for items using specified criteria tags: - schemas operationId: searchSchemaArtifacts 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/SchemaObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/task-scripts/search: post: summary: Search for items description: Search for items using specified criteria operationId: searchTaskScripts tags: - Task Scripts 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/TaskScriptObjectList' /v1/artifacts/tetraflows/search: post: summary: Search for tetraflow artifacts description: Search for items using specified criteria tags: - tetraflows operationId: searchTetraflows 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/TetraflowObjectList' '404': $ref: '#/components/responses/404Any' /v1/artifacts/tetraspheres/search: post: summary: Search for tetrasphere artifacts description: Search for items using specified criteria tags: - tetraspheres operationId: searchTetrasphereArtifacts 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/TetrasphereObjectList' '404': $ref: '#/components/responses/404Any' /v1/dataapps/apps/{id}/labels: put: summary: Update Data App labels for access control description: Replaces all labels assigned to a Data App. Labels drive EARS (Entitlement and Access Rights Service) access control policies — use them to control which users and teams can see and interact with a Data App. Pass an empty array to clear all labels. tags: - Data Apps operationId: update-container-data-app-labels parameters: - name: id in: path required: true description: Data App ID schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object required: - labels properties: labels: type: array description: Complete set of labels to assign. Replaces any previously assigned labels. items: type: object required: - name - value properties: name: type: string description: Label name (e.g., "department", "environment"). value: type: string description: Label value (e.g., "research", "production"). examples: set_labels: summary: Assign access control labels value: labels: - name: department value: research - name: environment value: production clear_labels: summary: Remove all labels value: labels: [] responses: '200': description: Labels updated successfully. content: application/json: schema: type: object properties: success: type: boolean '400': description: Invalid request format or label configuration. '404': description: Data App not found. '500': description: Internal Server Error /v1/externalevents/requests/update: post: operationId: updateSubscription tags: - Edit Subscriptions - Requests summary: Request to update a subscription requestBody: required: true content: application/json: schema: type: object required: - id - update properties: id: type: string update: $ref: '#/components/schemas/EventbridgeSubscriptionUpdate' responses: '200': description: Request created successfully content: application/json: schema: $ref: '#/components/schemas/EventbridgeWriteRequest' '400': $ref: '#/components/responses/400Any' '404': $ref: '#/components/responses/404Any' '500': $ref: '#/components/responses/500Any' '501': $ref: '#/components/responses/501Any' /v1/data-acquisition/agent/config: post: summary: Agent Configuration description: This endpoint returns all the parameters that client needs in order to upload files directly to Amazon S3 and upload log directly to Amazon CloudWatch. Using these values and temporary credentials obtained from `/v1/data-acquisition/agent/credentials` client can upload files to S3 into their bucket and log to CloudWatch into their log groups. tags: - Data Acquisition operationId: user-defined-integration-agent-configuration requestBody: content: application/json: schema: type: object required: - agentId - agentVersion properties: agentId: type: string description: This is the sourceId for a user-defined integration. Need to copy from the TDP web UI, where the user-defined integration is created. For existing TetraScience Agent who can connect to TetraScience Cloud directly, provide the agentId to this field. agentVersion: type: string description: The Agent version, such as "v1.0.0". responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"orgSlug\": \"mgtest\",\n \"integrationId\": \"844dc7e9-a4c4-429c-b364-b54bf531c078\"\ ,\n \"agentId\": \"0db83bc0-0921-414c-ad1c-05d47af3dd44\",\n \"agentName\": \"test agent\",\n \ \ \"region\": \"us-east-2\",\n \"bucket\": \"ts-platform-dev-datalake\",\n \"streamBucket\": \"\ ts-platform-dev-stream\",\n \"backupBucket\": \"ts-platform-dev-backup\",\n \"kmsKey\": \"alias/customer-key-development-mgtest\"\ ,\n \"integrationType\": \"user_defined\",\n \"metadata\": {},\n \"tags\": [],\n \"logGroupName\"\ : \"/agents/mgtest/0db83bc0-0921-414c-ad1c-05d47af3dd44\",\n \"rpcSourceQueueUrl\": \"https://sqs.us-east-2.amazonaws/706717599419/onprem-0db83bc0-0921-414c-ad1c-05d47af3dd44.fifo\"\ ,\n \"rpcPlatformQueueUrl\": \"https://sqs.us-east-2.amazonaws/706717599419/onprem-development-command-service-inbound\"\ \n}" schema: type: object properties: orgSlug: type: string example: mgtest integrationId: type: string example: 844dc7e9-a4c4-429c-b364-b54bf531c078 agentId: type: string example: 0db83bc0-0921-414c-ad1c-05d47af3dd44 agentName: type: string example: test agent region: type: string example: us-east-2 bucket: type: string example: ts-platform-dev-datalake streamBucket: type: string example: ts-platform-dev-stream backupBucket: type: string example: ts-platform-dev-backup kmsKey: type: string example: alias/customer-key-development-mgtest integrationType: type: string example: user_defined metadata: type: object properties: {} tags: type: array logGroupName: type: string example: /agents/mgtest/0db83bc0-0921-414c-ad1c-05d47af3dd44 rpcSourceQueueUrl: type: string example: https://sqs.us-east-2.amazonaws/706717599419/onprem-0db83bc0-0921-414c-ad1c-05d47af3dd44.fifo rpcPlatformQueueUrl: type: string example: https://sqs.us-east-2.amazonaws/706717599419/onprem-development-command-service-inbound '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Source with source\ \ ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda 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: Source with source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda does not exist deprecated: false /v1/data-acquisition/agent/status: post: summary: Agent Status (Heart Beat) description: 'This endpoint allows TetraScience Agent to send heartbeats to the Tetrascience platform periodically. Platform will return the agent''s name. It''s recommended to send a heartbeat every 30 seconds. It requires a user-defined agent set up in the TetraScience Web UI. Required fields: - agentId - agentVersion Optional fields: - agent - sourceType - If agent defines various source types, like file-log agent, this should be an array of objects with `filePath` and `type` values. Otherwise, it should be single item array that contains object with field `type`' tags: - Data Acquisition operationId: user-defined-integration-agent-status-heart-beat requestBody: content: application/json: schema: type: object required: - agentId - agentVersion properties: agentId: type: string description: This is the sourceId for a user-defined integration. Need to copy from the TDP web UI, where the user-defined integration is created. For existing Tetra Agent that can connect to TetraScience Cloud directly, provide the agentId to this field. agentVersion: type: string description: The Agent version, such as "v1.0.0". agent: type: string description: Type of agent, in the form `TetraScience.Agent.file-log`, `TetraScience.Agent.empower`, etc. If provided, object in data lake will have the metadata value `agent` in the form of `agent agentVersion` (for example, `TetraScience.Agent.file-log v4.3.0') enum: - TetraScience.Agent.file-log - TetraScience.Agent.empower - TetraScience.Agent.unicorn - TetraScience.Agent.labx - TetraScience.Agent.chromeleon - TetraScience.Agent.user-defined default: TetraScience.Agent.user-defined responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"agentName\": \"test\"\n}" schema: type: object properties: agentName: type: string example: test '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Source with source\ \ ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda 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: Source with source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda does not exist deprecated: false put: summary: Agent Status Setting Update description: "This endpoint allows TetraScience Agent to send status setting update to platform. Tetrascience agents\ \ have start/stop button. When start button is clicked, agent should hit endpoint with `statusSetting=STARTED`. Opposite,\ \ when stop button is clicked, agent should hit endpoint with `statusSetting=STOPPED`.\n\n It requires a user-defined\ \ agent set up in the TetraScience Web UI" tags: - Data Acquisition operationId: user-defined-integration-agent-status-setting-update requestBody: content: application/json: schema: type: object required: - agentId - agentVersion properties: agentId: type: string description: This is the sourceId for a user-defined integration. Need to copy from the TDP web UI, where the user-defined integration is created. For existing TetraScience Agent who can connect to TetraScience Cloud directly, provide the agentId to this field. agentVersion: type: string description: The Agent version, such as "v1.0.0". agent: type: string description: Type of agent, in the form `TetraScience.Agent.file-log`, `TetraScience.Agent.empower`, etc. If provided, object in data lake will have the metadata value `agent` in the form of `agent agentVersion` (for example, `TetraScience.Agent.file-log v4.3.0') enum: - TetraScience.Agent.file-log - TetraScience.Agent.empower - TetraScience.Agent.unicorn - TetraScience.Agent.labx - TetraScience.Agent.chromeleon - TetraScience.Agent.user-defined default: TetraScience.Agent.user-defined statusSetting: type: string description: Status setting of the agent. It can be `STARTED` or `STOPPED` enum: - STARTED - STOPPED default: STARTED responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"agentName\": \"test\"\n}" schema: type: object properties: agentName: type: string example: test '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Source with source\ \ ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda 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: Source with source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda does not exist deprecated: false /v1/data-acquisition/agent/systemmetric: post: summary: Agent System Metric Upload description: TetraScience Agent can periodically upload system metrics of itself and the host environment the Agent is running. It requires a user-defined agent set up in the TetraScience Web UI. Uploaded system metric file should be new line delimited JSON file. See below for more details. tags: - Data Acquisition operationId: user-defined-integration-agent-system-metric-upload requestBody: content: multipart/form-data: schema: type: object required: - agentId - agentVersion - systemmetric properties: agentId: type: string description: This is the sourceId for a user-defined integration. Need to copy from the TetraScience Web UI where the user-defined integration is created. For existing TetraScience Agent who can connect to TetraScience Cloud directly, provide the agentId to this field. agentVersion: type: string description: The Agent version, such as "v1.0.0". systemmetric: type: string description: The system metric file to upload. format: binary responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"message\": \"OK\"\n}" schema: type: object properties: message: type: string example: OK '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Source with source\ \ ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda 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: Source with source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda does not exist /v1/data-acquisition/agent/upload: post: summary: File Upload description: 'This endpoint uploads a file to TetraScience Cloud. It requires a user-defined agent set up in the TetraScience Web UI. API users can use it to upload, manage their files, and trigger pipelines. Maximum payload size: 500MB Validations performed by this endpoint: 1. `agentId` must be a valid ID of the user defined agent (UDA) 2. param `sourceType` must contain only lower case alphanumerical characters and dashes 3. params `metadata` and `tags` must contain only ASCII characters; `tags` values cannot contain comma and values must be unique 4. params `metadata` and `tags` together as JSON objects must have less than 1.5KB of text (1536 characters)' tags: - Data Acquisition operationId: user-defined-integration-file-upload requestBody: content: multipart/form-data: schema: type: object required: - agentId - file - filePath properties: agentId: type: string description: This is the sourceId for a user-defined integration. Need to copy from the TetraScience Web UI where the user-defined integration is created. For existing TetraScience Agent who can connect to TetraScience Cloud directly, provide the agentId to this field. agent: type: string description: Type of agent, in the form `TetraScience.Agent.file-log`, `TetraScience.Agent.empower`, etc. If provided, object in data lake will have the metadata value `agent` in the form of `agent agentVersion` (for example, `TetraScience.Agent.file-log v4.3.0') enum: - TetraScience.Agent.file-log - TetraScience.Agent.empower - TetraScience.Agent.unicorn - TetraScience.Agent.labx - TetraScience.Agent.chromeleon - TetraScience.Agent.user-defined default: TetraScience.Agent.user-defined agentVersion: type: string description: Version of the agent that's uploading the file (for example, `v4.3.0`) sourceType: type: string description: 'If provided, this field will overwrite the sourceType configured in the TetraScience Web UI. Default value: `unknown` A valid sourceType string can contain only alphanumeric characters in lower case letters and dash. Any other character will trigger validation error.' default: unknown fileCategory: type: string description: The file category of the uploaded file, included in the datalake path. enum: - RAW - PROCESSED default: RAW fileId: type: string description: If provided, it must be a valid and unique UUID. If not provided, platform will generate unique UUID value. traceId: type: string description: A valid UUID, if provided. If not present, system will use the `fileId` value filePath: type: string description: Required. An example of `filePath` can be `/experiment_2/sample a/result.pdf` file: type: string format: binary description: Content of a single file to upload payloadGzip: type: string description: 'If set to `true`, indicates the file content is gzip compressed. If false or omitted, the content will be gzipped during upload. Default value: `false`.' default: 'false' metadata: type: string description: 'JSON string as `{"key", "value"}`. The metadata and value will overwrite metadata defined for the user-defined integration in the TetraScience Web UI. Validations: fields and values must contain only ASCII characters; values must be either string or null values.' tags: type: string description: 'JSON string as `["tag 1", "tag 2"]`. Validations: values must contain only ASCII characters; value must not have comma (,); values must be unique' labels: type: string description: 'JSON string as `[{"name":"label name", "value":"label value"}]`. The labels will join the agent defined labels. Validations: Names can include any unicode characters, except line breaks. They cannot be empty, and they have a maximun length of 128 characters. Values can include any unicode characters, except line breaks, and they cannot be empty.' responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"type\": \"s3file\",\n \"fileKey\": \"demo/1cd9ffeb-1e10-45d2-a8d6-61a88c829e5c/RAW/test/raw.json\"\ ,\n \"bucket\": \"ts-platform-env-datalake\",\n \"version\": \"grXOL0hSiCeKu094tBw.mu4LXQErWzGT\"\ ,\n \"fileId\": \"c4c6cfdf-67d0-4672-a1a6-0b9f558d0156\"\n}" schema: type: object properties: type: type: string example: s3file fileKey: type: string example: demo/1cd9ffeb-1e10-45d2-a8d6-61a88c829e5c/RAW/test/raw.json bucket: type: string example: ts-platform-env-datalake version: type: string example: grXOL0hSiCeKu094tBw.mu4LXQErWzGT fileId: type: string example: c4c6cfdf-67d0-4672-a1a6-0b9f558d0156 '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Source with config\ \ source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda 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: Source with config source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda does not exist '422': description: '422' content: application/json: examples: Result: value: "{\n \"statusCode\": 422,\n \"error\": \"Unprocessable Entity\",\n \"message\": \"Param\ \ sourceType contains invalid character or upper case letter\"\n}" schema: type: object properties: statusCode: type: integer example: 422 default: 0 error: type: string example: Unprocessable Entity message: type: string example: Param sourceType contains invalid character or uppercase letter deprecated: false /v1/data-acquisition/agent/log: post: summary: Agent Log Upload description: This endpoint uploads agents log to TetraScience Cloud. It requires a user-defined agent set up in the TetraScience Web UI. tags: - Data Acquisition operationId: user-defined-integration-log-upload requestBody: content: multipart/form-data: schema: type: object required: - agentId - agentVersion - log properties: agentId: type: string description: This is the sourceId for a user-defined integration. Need to copy from the TetraScience Web UI where the user-defined integration is created. For existing TetraScience Agent who can connect to TetraScience Cloud directly, provide the agentId to this field. agentVersion: type: string description: The Agent version, such as "v1.0.0". log: type: string description: The log file to upload. format: binary responses: '200': description: '200' content: application/json: examples: Result: value: "{\n \"message\": \"OK\"\n}" schema: type: object properties: message: type: string example: OK '404': description: '404' content: application/json: examples: Result: value: "{\n \"statusCode\": 404,\n \"error\": \"Not Found\",\n \"message\": \"Source with source\ \ ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda 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: Source with source ID 47ab98d5-cccb-4a7d-86f4-0ff8f7c11bda does not exist deprecated: false components: schemas: FLAConfiguration: type: object description: Agent configuration if available, null otherwise. properties: group_user: type: object properties: user_name: type: string description: The Windows User service account used for managing folder and file access for the agent. example: user1 password: type: string description: A secure hash of the user's password. example: '-1943064076' agent_configuration: type: object properties: s3_direct_upload: type: boolean description: Whether to enable direct upload of files and logs to S3. example: true receive_commands: type: boolean description: Whether the agent should receive and execute commands from TDP. example: true destination_id: type: string format: uuid description: The Destination Id of the Agent, used in place of its own ID in datalake file keys. example: 2e72c40f-432e-46a9-a027-e70686e8cd39 agent_id: type: string description: The ID of the agent. example: f82d2230-eed1-443c-9ed8-2e1fef9039c2 org_slug: type: string description: The slug of the organization. example: tetrascience Authentication: type: string description: A secure hash of the agent's authentication token. example: '-1943064076' advanced_setting: type: object properties: heart_beat_interval: type: integer description: The interval in seconds for the agent to check its connection status. example: 30 agent_log_upload_job_interval: type: integer description: The interval in seconds for the agent to upload logs. example: 30 compression_type: type: string enum: - Zip - SevenZip description: The compression type for the agent. example: zip retry_limit: type: integer description: The number of times the agent will retry to upload a file before it stops attempting the upload. example: 3 tdpApiUrlOverride: type: string description: The URL of the TDP API example: https://api.tetrascience.com validateAwsCertificate: type: boolean description: Indicates whether to validate the AWS certificate or not. example: true proxyUseCustom: type: boolean description: Indicates whether to use a custom proxy or not. example: true proxyHost: type: string description: The host of the proxy, if one is set. example: proxy.example.com proxyPort: type: integer description: The port of the proxy, if one is set. example: 8080 proxyBypassList: type: string description: The list of addresses to bypass the proxy. example: example.com,example.org proxyUsername: type: string description: The username for the proxy, if one is set. example: proxyuser proxyPassword: type: string description: A secure hash of the agent's authentication token. example: '-1943064076' proxyUseSystem: type: boolean description: Indicates whether to use the system proxy or not. example: false services_enabled: type: array items: type: string enum: - fileWatcher description: The services enabled for the agent. example: - fileWatcher services_configuration: type: object properties: fileWatcher: type: object properties: use_path_configuration: type: boolean description: Indicates whether or not to use path-level configuration for start date and interval. example: true paths: type: array items: $ref: '#/components/schemas/FLAFileWatcherPathConfigurationItem' required: - use_path_configuration required: - fileWatcher windows_scheduled_task: type: object properties: enabled: type: boolean description: Indicates whether the Windows scheduled task to ensure the agent service is running is enabled or not.. example: true time: type: string description: The time of day when the Windows scheduled task is triggered. example: 1:00pm FLAFileWatcherPathConfigurationItem: type: object description: '**FLA v4.3.0+**: Options for archival and deletion of files in the path after upload' properties: path: type: string description: The path to watch. example: C:\FLA\test1 file_watch_mode: type: string enum: - file - folder description: The file watch mode. example: file source_type: type: string description: The source type. example: unknown interval: type: integer description: 'The time in seconds the agent will monitor the files for changes before uploading. This also specifies the time between scans of the path.' example: 30 start_date: type: string format: date description: Files with a last modified date on or after the specified date will be scanned and uploaded. example: '2023-03-27' patterns: type: array items: type: string description: Defines a list of [glob patterns](https://developers.tetrascience.com/docs/common-glob-pattern) to match files in the path. example: - '*.*' metadata: type: object description: Custom metadata to associate with files in the path. example: meta1: value1 tags: type: string description: Comma-separated list of tags to associate with files in the path. example: tag1,tag2 labels: type: array description: '**FLA v4.3.0+**: Labels applied to files in the path' items: type: object properties: name: type: string description: The label name. example: vendor value: type: string description: The label value. example: Beckman Coulter required: - name - value archive: type: object description: '**FLA v4.3.0+**: Options for archival and deletion of files in the path after upload' properties: path: type: string description: The location where files from this path will be archived example: c:\archive wait_time: type: integer description: Amount of time to wait before moving the source file to the archive path after uploading example: 1 wait_time_unit: type: string enum: - Minutes - Hours - Days description: The unit for the wait_time example: Days archive_without_checksum: type: boolean description: Determines if files uploaded by a previous agent version that have no checksum are archived or not. example: false dry_run: type: boolean description: Whether to perform a dry run example: false delete: type: object description: Options for deletion of files from the archive path properties: wait_time: type: integer description: Amount of time to wait before deleting the file from the archive path example: 7 wait_time_unit: type: string enum: - Minutes - Hours - Days description: The unit for the wait_time example: Days required: - wait_time - wait_time_unit required: - path - wait_time - wait_time_unit fetch_os_created_user: type: boolean description: Determines if the OS-created user metadata is retrieved and included as metadata on files in the path or not. example: false symlink_behavior: type: string enum: - Legacy - Ignore description: '**(For FLA v4.4.1 and higher only)** Specifies how the Agent handles symbolic links when file scanning.' required: - file_watch_mode - source_type - interval - start_date - path - patterns AgentConfiguration: type: object properties: id: type: string example: f82d2230-eed1-443c-9ed8-2e1fef9039c2 description: The unique ID of the configuration. config: $ref: '#/components/schemas/FLAConfiguration' by: type: string example: cloud description: The entity that initiated the command. at: type: string format: date-time example: '2023-08-28T14:43:46.381Z' description: The timestamp when the command was executed. commandStatus: type: string example: SUCCESS description: The status of the command. commandId: type: string example: f82d2230-eed1-443c-9ed8-2e1fef9039c2 description: The unique ID of the command. 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 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 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 ArtifactDto: type: object properties: namespace: type: string slug: type: string version: type: string required: - namespace - slug - version - manifest ConnectorDto: type: object description: Details of a single Connector properties: id: description: The Connector's id. type: string name: description: The Connector's name. type: string orgSlug: description: The organization slug that the Connector belongs to. type: string description: description: The Connector's description. type: string artifact: $ref: '#/components/schemas/ArtifactDto' hostType: description: The type of host the Connector is running on. type: string enum: - cloud - hub hub: $ref: '#/components/schemas/HubDto' metadata: type: object tags: type: array items: type: string commandQueue: description: The ARN of the Connector's command queue. type: string clusterArn: description: The ARN of the ECS cluster the Connector is running in. type: string taskDefinitionArn: description: The ARN of the ECS task definition the Connector is running. type: string health: description: The health status of the Connector. N/A indicates the Connector has never reported health. type: string enum: - HEALTHY - WARNING - CRITICAL - N/A healthErrorCode: description: The error code of the Connector's health status, if unhealthy. Defined by each Connector and used to display an error message in the UI. type: string operatingStatus: description: The desired operating status of the Connector. RUNNING means the Connector is fully working; IDLE means the Connector software is running and awaiting commands, but is not performing its main (Connector-defined) work yet; DISABLED means the software is not running at all. type: string enum: - IDLE - RUNNING - DISABLED networkStatus: description: The network status of the Connector. type: string enum: - Online - Offline config: description: The Connector's current configuration, schema varies per Connector. type: object lastSeenAt: description: The last time the Connector was seen by the platform. format: date-time type: string updatedAt: description: The last time the Connector's details were updated. format: date-time type: string createdAt: description: The time the Connector was created. format: date-time type: string required: - id - name - orgSlug - artifact - hostType - metadata - tags - commandQueue - clusterArn - taskDefinitionArn - health - operatingStatus - networkStatus - lastSeenAt - updatedAt - createdAt ConnectorsResponse: type: object description: A list of Connectors properties: connectors: type: array items: $ref: '#/components/schemas/ConnectorDto' required: - connectors ConnectorGeneratedConfigUiComponentDto: type: object properties: type: type: string enum: - generated trigger: type: string enum: - configuration config: type: array items: type: string required: - type - trigger - config ConnectorCustomConfigUiComponentDto: type: object properties: type: type: string enum: - custom trigger: type: string enum: - configuration component: type: string required: - type - trigger - component 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 ConnectorUiDto: type: object properties: components: type: array items: oneOf: - $ref: '#/components/schemas/ConnectorGeneratedConfigUiComponentDto' - $ref: '#/components/schemas/ConnectorCustomConfigUiComponentDto' - $ref: '#/components/schemas/ConnectorCustomRouteUiComponentDto' required: - components ArtifactDetailsDto: type: object description: This is the detailed version of the ArtifactDto. Includes dynamic fields from the artifact's manifest, so not all response keys are listed here. properties: namespace: type: string slug: type: string version: type: string name: type: string description: type: string sourceType: type: string ui: $ref: '#/components/schemas/ConnectorUiDto' required: - namespace - slug - version - manifest - name - description - sourceType - ui LabelDto: type: object properties: id: type: string name: type: string value: type: string required: - id - name - value ConnectorDetailsDto: type: object description: Details of a single Connector. properties: id: type: string description: The Connector's id. name: type: string description: The Connector's name. orgSlug: type: string description: The organization slug that the Connector belongs to. description: type: string description: The Connector's description. artifact: description: The Connector's artifact details. If include=artifacts is specified on the request, it will be the ArtifactDetailsDto; otherwise it will be the ArtifactDto. oneOf: - $ref: '#/components/schemas/ArtifactDto' - $ref: '#/components/schemas/ArtifactDetailsDto' hostType: type: string description: The type of host the Connector is running on. enum: - cloud - hub hub: description: Details of the Hub the Connector is running on, if any. $ref: '#/components/schemas/HubDto' metadata: description: The Connector's metadata. Deprecated in favor of labels. type: object tags: description: The Connector's tags. Deprecated in favor of labels. type: array items: type: string labels: description: The Connector's labels. type: array items: $ref: '#/components/schemas/LabelDto' commandQueue: type: string description: The ARN of the Connector's command queue. clusterArn: type: string description: The ARN of the ECS cluster the Connector is running in. taskDefinitionArn: type: string description: The ARN of the ECS task definition the Connector is running. health: type: string description: The health status of the Connector. N/A indicates the Connector has never reported health. enum: - HEALTHY - WARNING - CRITICAL - N/A healthErrorCode: type: string description: The error code of the Connector's health status, if unhealthy. Defined by each Connector and used to display an error message in the UI. operatingStatus: type: string description: The desired operating status of the Connector. RUNNING means the Connector should run all tasks; IDLE means the Connector software should run and awaiting commands, but not performing its main (Connector-defined) tasks yet; DISABLED means the software should not run at all. networkStatus: type: string description: The network status of the Connector. enum: - Online - Offline config: type: object description: The Connector's current configuration, schema varies per Connector. lastSeenAt: format: date-time type: string description: The last time the Connector was seen by the platform. updatedAt: format: date-time type: string description: The last time the Connector's details were updated. createdAt: format: date-time type: string description: The time the Connector was created. required: - id - name - orgSlug - artifact - hostType - metadata - tags - labels - commandQueue - clusterArn - taskDefinitionArn - health - operatingStatus - networkStatus - lastSeenAt - updatedAt - createdAt 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 ConnectorMetricDto: type: object description: A set of metric values reported by a Connector. properties: name: type: string values: type: array items: $ref: '#/components/schemas/MetricTimeValueDto' required: - name - values GetConnectorMetricsDto: type: object description: The set of metrics reported by the Connector. properties: metrics: type: array items: $ref: '#/components/schemas/ConnectorMetricDto' required: - metrics ConnectorFileDto: type: object description: A file reported by a Connector. properties: id: type: string description: The file's id. uniqueExternalId: type: string description: The file's unique external id, used by Connectors to deduplicate external files. filepath: type: string description: The file's path. status: type: string description: The file's status, as reported by the Connector. This reflects the Connector's own workflow to upload files, not the platform's processing of those files. enum: - PENDING - PROCESSING - SKIPPED - SUCCESS - ERROR metadata: type: object errorCount: type: number description: The number of times the file has errored during upload. After 5 errors, the Connector will stop attempting to retry this file. errorMessage: type: string description: The last error message reported by the Connector for this file. updatedAt: format: date-time type: string description: The last time the file's details were updated. createdAt: format: date-time type: string description: The time the file was created. required: - id - uniqueExternalId - filepath - status - metadata - errorCount - updatedAt - createdAt 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 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 EventbridgeWriteRequest: allOf: - type: object properties: orgSlug: type: string required: - orgSlug - anyOf: - type: object properties: type: type: string enum: - create input: type: object properties: id: type: string orgSlug: type: string selectedEventTypes: type: array items: type: string enum: - tetrascience.file.RegistrationSucceeded.v1 - tetrascience.file.RegistrationFailed.v1 - tetrascience.file.SearchIndexingSucceeded.v1 - tetrascience.file.SearchIndexingFailed.v1 - tetrascience.file.SQLIndexingSucceeded.v1 - tetrascience.file.SQLIndexingFailed.v1 - tetrascience.file.WorkflowCreated.v1 - tetrascience.file.WorkflowInProgress.v1 - tetrascience.file.WorkflowSucceeded.v1 - tetrascience.file.WorkflowFailed.v1 - tetrascience.file.WorkflowCanceled.v1 - tetrascience.agents.common.heartbeat.v1 - tetrascience.agents.common.agentStarted.v1 - tetrascience.agents.common.agentStopped.v1 - tetrascience.agents.filelog.archiveFileDeleteCompleted.v1 - tetrascience.agents.filelog.archiveFileDeleteFailed.v1 - tetrascience.agents.filelog.fileArchiveCompleted.v1 - tetrascience.agents.filelog.fileArchiveFailed.v1 - tetrascience.agents.filelog.fileArchiveSkipped.v1 - tetrascience.agents.filelog.fileArchiveStarted.v1 - tetrascience.agents.filelog.fileScanned.v1 - tetrascience.agents.filelog.fileUploadCompleted.v1 - tetrascience.agents.filelog.fileUploadFailed.v1 - tetrascience.agents.filelog.fileUploadStarted.v1 - tetrascience.agents.filelog.pathValidationFailed.v1 - tetrascience.agents.filelog.scanCompleted.v1 - tetrascience.agents.filelog.scanError.v1 - tetrascience.agents.filelog.scanStarted.v1 minItems: 1 description: The types of events to subscribe to userDefinedName: type: string pattern: ^[\S ]*\S[\S ]*$ description: Subscription name set and displayed in the UI targetEndpoint: type: string pattern: arn:aws:events:.+:.+:.+ description: Amazon Resource Name of the bus resource where events should be sent targetType: type: string enum: - BUS enabled: type: boolean required: - id - orgSlug - selectedEventTypes - userDefinedName - targetEndpoint - targetType - enabled required: - type - input - type: object properties: type: type: string enum: - update input: type: object properties: id: type: string update: type: object properties: selectedEventTypes: type: array items: type: string enum: - tetrascience.file.RegistrationSucceeded.v1 - tetrascience.file.RegistrationFailed.v1 - tetrascience.file.SearchIndexingSucceeded.v1 - tetrascience.file.SearchIndexingFailed.v1 - tetrascience.file.SQLIndexingSucceeded.v1 - tetrascience.file.SQLIndexingFailed.v1 - tetrascience.file.WorkflowCreated.v1 - tetrascience.file.WorkflowInProgress.v1 - tetrascience.file.WorkflowSucceeded.v1 - tetrascience.file.WorkflowFailed.v1 - tetrascience.file.WorkflowCanceled.v1 - tetrascience.agents.common.heartbeat.v1 - tetrascience.agents.common.agentStarted.v1 - tetrascience.agents.common.agentStopped.v1 - tetrascience.agents.filelog.archiveFileDeleteCompleted.v1 - tetrascience.agents.filelog.archiveFileDeleteFailed.v1 - tetrascience.agents.filelog.fileArchiveCompleted.v1 - tetrascience.agents.filelog.fileArchiveFailed.v1 - tetrascience.agents.filelog.fileArchiveSkipped.v1 - tetrascience.agents.filelog.fileArchiveStarted.v1 - tetrascience.agents.filelog.fileScanned.v1 - tetrascience.agents.filelog.fileUploadCompleted.v1 - tetrascience.agents.filelog.fileUploadFailed.v1 - tetrascience.agents.filelog.fileUploadStarted.v1 - tetrascience.agents.filelog.pathValidationFailed.v1 - tetrascience.agents.filelog.scanCompleted.v1 - tetrascience.agents.filelog.scanError.v1 - tetrascience.agents.filelog.scanStarted.v1 minItems: 1 description: The types of events to subscribe to userDefinedName: type: string pattern: ^[\S ]*\S[\S ]*$ description: Subscription name set and displayed in the UI targetEndpoint: type: string pattern: arn:aws:events:.+:.+:.+ description: Amazon Resource Name of the bus resource where events should be sent targetType: type: string enum: - BUS enabled: type: boolean required: - id - update required: - type - input - type: object properties: type: type: string enum: - delete input: type: object properties: id: type: string required: - id required: - type - input - type: object properties: createdAt: type: string format: date-time lastUpdatedAt: type: string format: date-time id: type: string required: - createdAt - lastUpdatedAt - id - anyOf: - type: object properties: status: type: string enum: - queued required: - status - type: object properties: status: type: string enum: - in-progress required: - status - type: object properties: status: type: string enum: - failed output: type: object properties: message: type: string required: - message required: - status - output - type: object properties: status: type: string enum: - completed required: - status EventbridgeExternalSubscriptionCreate: type: object properties: selectedEventTypes: type: array items: type: string enum: - tetrascience.file.RegistrationSucceeded.v1 - tetrascience.file.RegistrationFailed.v1 - tetrascience.file.SearchIndexingSucceeded.v1 - tetrascience.file.SearchIndexingFailed.v1 - tetrascience.file.SQLIndexingSucceeded.v1 - tetrascience.file.SQLIndexingFailed.v1 - tetrascience.file.WorkflowCreated.v1 - tetrascience.file.WorkflowInProgress.v1 - tetrascience.file.WorkflowSucceeded.v1 - tetrascience.file.WorkflowFailed.v1 - tetrascience.file.WorkflowCanceled.v1 - tetrascience.agents.common.heartbeat.v1 - tetrascience.agents.common.agentStarted.v1 - tetrascience.agents.common.agentStopped.v1 - tetrascience.agents.filelog.archiveFileDeleteCompleted.v1 - tetrascience.agents.filelog.archiveFileDeleteFailed.v1 - tetrascience.agents.filelog.fileArchiveCompleted.v1 - tetrascience.agents.filelog.fileArchiveFailed.v1 - tetrascience.agents.filelog.fileArchiveSkipped.v1 - tetrascience.agents.filelog.fileArchiveStarted.v1 - tetrascience.agents.filelog.fileScanned.v1 - tetrascience.agents.filelog.fileUploadCompleted.v1 - tetrascience.agents.filelog.fileUploadFailed.v1 - tetrascience.agents.filelog.fileUploadStarted.v1 - tetrascience.agents.filelog.pathValidationFailed.v1 - tetrascience.agents.filelog.scanCompleted.v1 - tetrascience.agents.filelog.scanError.v1 - tetrascience.agents.filelog.scanStarted.v1 minItems: 1 description: The types of events to subscribe to userDefinedName: type: string pattern: ^[\S ]*\S[\S ]*$ description: Subscription name set and displayed in the UI targetEndpoint: type: string pattern: arn:aws:events:.+:.+:.+ description: Amazon Resource Name of the bus resource where events should be sent targetType: type: string enum: - BUS enabled: type: boolean required: - selectedEventTypes - userDefinedName - targetEndpoint - targetType - enabled BasicPipelineInputObject: allOf: - $ref: '#/components/schemas/PipelineSettings' - type: object properties: id: type: string format: uuid description: ignored when provided in Query parameters orgSlug: type: string description: ignored when provided in URL/Headers message: type: string updatedAt: type: string labels: type: array items: $ref: '#/components/schemas/PipelineNestedLabel' FileTriggerInputPipeline: allOf: - $ref: '#/components/schemas/BasicPipelineInputObject' - type: object required: - triggerType - triggerCondition properties: triggerType: type: string enum: - custom triggerCondition: oneOf: - type: object additionalProperties: false - $ref: '#/components/schemas/TriggerConditionGroup' ScheduledTriggerInputPipeline: allOf: - $ref: '#/components/schemas/BasicPipelineInputObject' - type: object required: - triggerType - triggerCondition properties: triggerType: type: string enum: - sched triggerCondition: type: object required: - cron - tz properties: cron: type: string tz: type: string PipelineInputObject: oneOf: - $ref: '#/components/schemas/FileTriggerInputPipeline' - $ref: '#/components/schemas/ScheduledTriggerInputPipeline' PipelineSettings: type: object required: - name properties: name: type: string description: oneOf: - type: 'null' - type: string protocolSlug: oneOf: - type: 'null' - type: string deprecated: true protocolVersion: oneOf: - type: 'null' - type: string deprecated: true priority: type: integer default: 5 retryBehavior: oneOf: - type: 'null' - type: string enum: - 'off' - oom_only - linear - constant - exponential retryConfiguration: type: object properties: baseDelaySeconds: type: integer minimum: 0 maxRetries: type: integer minimum: 0 standby: oneOf: - type: 'null' - type: integer status: oneOf: - type: 'null' - type: string enum: - disabled taskScriptTimeoutMins: oneOf: - type: 'null' - type: integer maxParallelWorkflows: type: integer default: 0 createdAt: type: string pipelineConfig: $ref: '#/components/schemas/PipelineConfig' stepsConfig: type: object additionalProperties: $ref: '#/components/schemas/StepsConfig' default: {} artifactType: type: string enum: - protocol - tetraflow default: protocol clusterId: deprecated: true oneOf: - type: 'null' - type: string description: 'DEPRECATED: Prefer clusterPolicyId for cost-effective ephemeral job clusters.' clusterPolicyId: oneOf: - type: 'null' - type: string description: Databricks cluster policy ID for job clusters. Preferred over clusterId for cost-effective ephemeral compute. Takes precedence if both are provided. runOnDeleted: type: boolean default: false masterScriptNamespace: oneOf: - type: string - type: 'null' masterScriptVersion: oneOf: - type: string - type: 'null' masterScriptSlug: oneOf: - type: string - type: 'null' inlineArtifact: oneOf: - type: object format: unknown - type: 'null' BasicPipelineOutputObject: allOf: - $ref: '#/components/schemas/PipelineSettings' - type: object properties: id: type: string format: uuid description: ignored when provided in Query parameters orgSlug: type: string description: ignored when provided in URL/Headers revision: type: number updatedAt: type: string protocolSchema: type: string enum: - v2 - v3 - tfv1 labels: type: array items: $ref: '#/components/schemas/PipelineNestedLabel' FileTriggerOutputPipeline: allOf: - $ref: '#/components/schemas/BasicPipelineOutputObject' - type: object required: - triggerType - triggerCondition properties: triggerType: type: string enum: - custom triggerCondition: oneOf: - type: object additionalProperties: false - $ref: '#/components/schemas/TriggerConditionGroup' ScheduledTriggerOutputPipeline: allOf: - $ref: '#/components/schemas/BasicPipelineOutputObject' - type: object required: - triggerType - triggerCondition properties: triggerType: type: string enum: - sched triggerCondition: type: object required: - cron - tz properties: cron: type: string tz: type: string description: Java Timezone https://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html PipelineOutputObject: oneOf: - $ref: '#/components/schemas/FileTriggerOutputPipeline' - $ref: '#/components/schemas/ScheduledTriggerOutputPipeline' PipelineNestedLabel: type: object required: - name - value properties: name: type: string value: type: string PipelineConfig: type: object additionalProperties: anyOf: - type: object additionalProperties: true - type: array items: {} - type: string - type: integer - type: number - type: boolean - type: 'null' - type: object properties: ssm: type: string secret: type: boolean StepsConfig: type: object properties: memoryInMB: type: integer runInLambda: type: boolean TriggerConditionGroup: type: object required: - groupLevel - groupOperator - groups properties: groupLevel: type: integer groupOperator: type: string enum: - AND - OR groups: type: array items: oneOf: - $ref: '#/components/schemas/TriggerConditionGroup' - type: object required: - key - operator properties: key: type: string operator: type: string value: type: string PipelineRevisionMetadata: type: object required: - message - pipelineId - number - userId - createdAt properties: message: type: string pipelineId: type: string number: type: number userId: oneOf: - type: string - type: 'null' createdAt: type: string PipelineRevision: allOf: - $ref: '#/components/schemas/PipelineRevisionMetadata' - $ref: '#/components/schemas/PipelineSettings' DatabricksClusterPolicy: type: object required: - policyId - name properties: policyId: type: string description: Canonical unique identifier for the cluster policy name: type: string description: Display name of the cluster policy description: type: string description: Description of the cluster policy DatabricksClusterObject: type: object properties: id: type: string name: type: string DMLResultChunk: type: object required: - statementId - chunkIndex - nextChunkIndex - data - rowCount properties: statementId: type: string chunkIndex: type: integer nextChunkIndex: type: integer nullable: true data: type: array items: {} rowCount: type: integer DMLResultSchemaColumn: type: object required: - name - position - type properties: name: type: string position: type: integer type: type: string DMLResultSchema: type: object required: - columnCount - columns properties: columnCount: type: integer columns: type: array items: $ref: '#/components/schemas/DMLResultSchemaColumn' DMLResult: type: object required: - chunk - resultSchema - statementId - totalChunks - totalRowCount properties: chunk: $ref: '#/components/schemas/DMLResultChunk' resultSchema: $ref: '#/components/schemas/DMLResultSchema' statementId: type: string totalChunks: type: integer totalRowCount: type: integer ExecuteDMLRequest: type: object required: - appId - statement - parameters properties: appId: type: string statement: type: string parameters: type: array items: type: object required: - name - value - type properties: name: type: string value: {} type: type: string DataAppProviderSecret: type: object properties: name: type: string value: type: string type: type: string required: type: boolean arn: type: string envName: type: string DataAppProvider: type: object properties: id: type: string name: type: string orgSlug: type: string type: type: string iconUrl: type: string updatedAt: type: string format: date-time createdAt: type: string format: date-time updatedBy: type: string createdBy: type: string secrets: type: array items: $ref: '#/components/schemas/DataAppProviderSecret' DataAppManaged: type: object properties: name: type: string description: type: string slug: type: string namespace: type: string iconUrl: type: string type: type: string artifactType: type: string enum: - CONTAINER - TETRASPHERE description: Internal artifact type stored in the database deploymentType: type: string enum: - SERVER description: 'Deployment model: SERVER (ECS container, iFrame)' version: type: string otherVersions: type: array items: type: string platformRequirements: type: array items: type: object description: Artifact requirement (IDS or Tetraflow) properties: type: type: string enum: - ids - tetraflow namespace: type: string slug: type: string version: type: string required: - type - namespace - slug - version serviceRequirements: type: array items: type: object description: Platform service requirement (e.g., AIS) properties: type: type: string enum: - ais minVersion: type: string maxVersion: type: string required: - type - minVersion supportedPlatformVersion: type: object description: The supported platform version range for this data app properties: minVersion: type: string maxVersion: type: string DataApp: type: object properties: id: type: string format: uuid name: type: string description: type: string url: type: string description: If type is CONNECTED then the url to the external running application iconUrl: type: string type: type: string description: The type of data app. Must be either "CONNECTED" or "CONTAINER" artifactType: type: string enum: - CONTAINER - TETRASPHERE description: Internal artifact type stored in the database deploymentType: type: string enum: - SERVER description: 'Deployment model: SERVER (ECS container, iFrame)' slug: type: string version: type: string otherVersions: type: array items: type: string running: type: boolean description: Whether the container data app is running namespace: type: string description: The namespace of the data app platformRequirements: type: array items: type: object description: Artifact requirement (IDS or Tetraflow) properties: type: type: string enum: - ids - tetraflow namespace: type: string slug: type: string version: type: string required: - type - namespace - slug - version serviceRequirements: type: array items: type: object description: Platform service requirement (e.g., AIS) properties: type: type: string enum: - ais minVersion: type: string maxVersion: type: string required: - type - minVersion supportedPlatformVersion: type: object description: The supported platform version range for this data app properties: minVersion: type: string maxVersion: type: string artifactLabels: type: array items: type: object properties: name: type: string value: type: string labels: type: array items: type: object properties: name: type: string value: type: string providers: type: array items: $ref: '#/components/schemas/DataAppProvider' PaginatedDataApp: type: object properties: dataApps: type: array items: $ref: '#/components/schemas/DataApp' count: type: integer ConnectorKeyValue: type: object required: - key - secure - createdAt - updatedAt properties: key: type: string value: {} secure: type: boolean createdAt: type: string format: date-time updatedAt: type: string format: date-time DataAppProviderTemplateField: type: object properties: name: type: string display: type: string type: type: string required: type: boolean DataAppProviderTemplate: type: object properties: type: type: string name: type: string iconUrl: type: string fields: type: array items: $ref: '#/components/schemas/DataAppProviderTemplateField' PaginatedDataAppProvider: type: object properties: data: type: array items: $ref: '#/components/schemas/DataAppProvider' count: type: integer AccessGroupSummary: type: object properties: id: type: string description: The unique identifier of the group. format: uuid name: type: string description: The name of the group. description: type: string nullable: true description: The description of the group. required: - id - name AccessGroup: type: object properties: id: type: string description: The unique identifier of the group. format: uuid name: type: string description: The name of the group. description: type: string nullable: true description: The description of the group. orgSlug: type: string description: The organization's slug to which the group belongs. enabled: type: boolean description: Indicates whether the group is enabled or not. userIds: type: array nullable: true description: List of user IDs associated with the group. items: type: string format: uuid rules: $ref: '#/components/schemas/AttributeRuleConfiguration' updatedAt: type: string nullable: true format: date-time createdAt: type: string format: date-time required: - id - name - orgSlug - enabled - rules - createdAt FilterCategoryConfig: properties: id: type: string operator: type: string enum: - is - is not value: items: type: string enum: - ids - raw - processed type: array type: enum: - category type: string required: - operator - type additionalProperties: false type: object FilterCreatedAtConfig: properties: id: type: string operator: type: string enum: - between - greater than - greater than or equal to - less than - less than or equal to value: type: string type: enum: - created-at type: string required: - operator - type additionalProperties: false type: object FilterFilePathConfig: properties: id: type: string operator: type: string enum: - contains - does not contain - is - is not - begins with - ends with value: type: string type: enum: - file-path type: string required: - operator - type additionalProperties: false title: FilterFilePathConfig type: object FilterIDSConfig: properties: id: type: string operator: type: string enum: - is - is not value: items: type: string type: array type: enum: - ids type: string required: - operator - type additionalProperties: false type: object FilterIDSTypeConfig: properties: id: type: string operator: type: string enum: - is - is not value: items: type: string type: array type: enum: - ids-type type: string required: - operator - type additionalProperties: false type: object FilterLabelConfig: properties: id: type: string operator: type: string enum: - contains - is - is not - exists - does not exist value: anyOf: - type: array items: type: string - type: string - type: boolean type: enum: - label type: string label: type: string required: - operator - type - label additionalProperties: false type: object FilterMetadatumConfig: properties: id: type: string operator: type: string enum: - contains - is - exists - does not exist value: anyOf: - items: type: string type: array - type: string - type: boolean type: enum: - metadatum type: string metadatum: type: string required: - operator - type - metadatum additionalProperties: false type: object FilterOrConfig: properties: id: type: string value: items: $ref: '#/components/schemas/FilterConfig' type: array type: enum: - or type: string required: - type additionalProperties: false type: object FilterAndConfig: properties: id: type: string value: items: $ref: '#/components/schemas/FilterConfig' type: array type: enum: - and type: string required: - type additionalProperties: false type: object FilterPipelineConfig: properties: id: type: string operator: type: string enum: - is - is not value: items: type: string type: array type: enum: - pipeline type: string required: - operator - type additionalProperties: false type: object FilterSourceNameConfig: properties: id: type: string operator: type: string enum: - is - is not value: items: type: string type: array type: enum: - source-name type: string required: - operator - type additionalProperties: false type: object FilterSourceTypeConfig: properties: id: type: string operator: type: string enum: - is - is not value: items: type: string type: array type: enum: - source-type type: string required: - operator - type additionalProperties: false type: object FilterTagConfig: properties: id: type: string operator: type: string enum: - has a tag that is - does not have a tag that is value: type: boolean type: enum: - tag type: string tag: type: string required: - operator - type - tag additionalProperties: false type: object FilterTagNameConfig: properties: id: type: string operator: type: string enum: - has one that begins with - has one that ends with value: type: string type: enum: - tag-name type: string required: - operator - type additionalProperties: false type: object FilterLeaf: anyOf: - $ref: '#/components/schemas/FilterCategoryConfig' - $ref: '#/components/schemas/FilterCreatedAtConfig' - $ref: '#/components/schemas/FilterFilePathConfig' - $ref: '#/components/schemas/FilterIDSConfig' - $ref: '#/components/schemas/FilterIDSTypeConfig' - $ref: '#/components/schemas/FilterLabelConfig' - $ref: '#/components/schemas/FilterMetadatumConfig' - $ref: '#/components/schemas/FilterPipelineConfig' - $ref: '#/components/schemas/FilterSourceNameConfig' - $ref: '#/components/schemas/FilterSourceTypeConfig' - $ref: '#/components/schemas/FilterTagConfig' - $ref: '#/components/schemas/FilterTagNameConfig' FilterConfig: anyOf: - $ref: '#/components/schemas/FilterOrConfig' - $ref: '#/components/schemas/FilterAndConfig' - $ref: '#/components/schemas/FilterLeaf' FilterAllowAllConfig: properties: type: enum: - allow-all type: string required: - type additionalProperties: false type: object AttributeRule: properties: filters: anyOf: - $ref: '#/components/schemas/FilterOrConfig' - $ref: '#/components/schemas/FilterAndConfig' - $ref: '#/components/schemas/FilterAllowAllConfig' required: - filters additionalProperties: false type: object AttributeRuleConfiguration: additionalProperties: $ref: '#/components/schemas/AttributeRule' type: object ArtifactNamespace: type: string pattern: ^(common|(private|client)-).*$ ArtifactObjectBase: type: object properties: namespace: $ref: '#/components/schemas/ArtifactNamespace' slug: type: string version: type: string name: type: string nullable: true description: type: string nullable: true createdAt: type: string format: date-time lastUpdatedAt: type: string format: date-time otherVersions: type: array items: type: string supportedPlatformVersion: $ref: '#/components/schemas/SupportedPlatformVersion' required: - namespace - slug - version - createdAt - lastUpdatedAt AiWorkflowObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - ai-workflow required: - type example: type: ai-workflow namespace: private-test slug: mlflow version: v0.5.0 createdAt: '2024-04-25T15:15:34.269Z' lastUpdatedAt: '2023-04-25T17:15:34.269Z' name: MLflow workflow description: An MLflow workflow otherVersions: - v0.1.0 - v0.5.0 SupportedPlatformVersion: type: object nullable: true properties: minPlatformVersion: type: string nullable: false maxPlatformVersion: type: string nullable: true AiWorkflowObjectList: type: array items: $ref: '#/components/schemas/AiWorkflowObject' AiWorkflowFileSlug: type: string enum: - build - manifest - readme - source - databricksYml 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 EventbridgeEventType: type: string enum: - tetrascience.file.RegistrationSucceeded.v1 - tetrascience.file.RegistrationFailed.v1 - tetrascience.file.SearchIndexingSucceeded.v1 - tetrascience.file.SearchIndexingFailed.v1 - tetrascience.file.SQLIndexingSucceeded.v1 - tetrascience.file.SQLIndexingFailed.v1 - tetrascience.file.WorkflowCreated.v1 - tetrascience.file.WorkflowInProgress.v1 - tetrascience.file.WorkflowSucceeded.v1 - tetrascience.file.WorkflowFailed.v1 - tetrascience.file.WorkflowCanceled.v1 - tetrascience.agents.common.heartbeat.v1 - tetrascience.agents.common.agentStarted.v1 - tetrascience.agents.common.agentStopped.v1 - tetrascience.agents.filelog.archiveFileDeleteCompleted.v1 - tetrascience.agents.filelog.archiveFileDeleteFailed.v1 - tetrascience.agents.filelog.fileArchiveCompleted.v1 - tetrascience.agents.filelog.fileArchiveFailed.v1 - tetrascience.agents.filelog.fileArchiveSkipped.v1 - tetrascience.agents.filelog.fileArchiveStarted.v1 - tetrascience.agents.filelog.fileScanned.v1 - tetrascience.agents.filelog.fileUploadCompleted.v1 - tetrascience.agents.filelog.fileUploadFailed.v1 - tetrascience.agents.filelog.fileUploadStarted.v1 - tetrascience.agents.filelog.pathValidationFailed.v1 - tetrascience.agents.filelog.scanCompleted.v1 - tetrascience.agents.filelog.scanError.v1 - tetrascience.agents.filelog.scanStarted.v1 ConnectorObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - connector iconPresignedUrl: type: string nullable: true required: - type - iconPresignedUrl example: type: connector namespace: common slug: akta version: v1.2.0 name: null description: null iconPresignedUrl: https://localhost/some_long_url createdAt: '2023-02-16T15:15:34.269Z' lastUpdatedAt: '2023-02-16T15:15:34.269Z' otherVersions: - v2.0.0 - v1.3.0 - v1.2.0 - v1.0.0 ConnectorObjectList: type: array items: $ref: '#/components/schemas/ConnectorObject' ConnectorFileSlug: type: string enum: - build - manifest - readme - source - image Key: type: object properties: type: type: string namespace: $ref: '#/components/schemas/ArtifactNamespace' slug: type: string version: type: string required: - type - namespace - slug - version example: type: ids namespace: common slug: akta version: v1.1.0 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 IdsObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - ids iconPresignedUrl: type: string nullable: true required: - type - iconPresignedUrl example: type: ids namespace: common slug: akta version: v1.2.0 name: null description: null iconPresignedUrl: https://localhost/some_long_url createdAt: '2023-02-16T15:15:34.269Z' lastUpdatedAt: '2023-02-16T15:15:34.269Z' otherVersions: - v2.0.0 - v1.3.0 - v1.2.0 - v1.0.0 IdsObjectList: type: array items: $ref: '#/components/schemas/IdsObject' IdsFileSlug: type: string enum: - athena - build - elasticsearch - erd - expected - manifest - readme - schema - source - mapping LakehouseObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - lakehouse required: - type example: type: lakehouse namespace: common slug: datacubes version: v1.1.0 createdAt: '2024-04-25T15:15:34.269Z' lastUpdatedAt: '2023-04-25T17:15:34.269Z' name: Datacubes lakehouse description: A lakehouse for datacubes otherVersions: - v1.0.0 - v1.1.0 LakehouseObjectList: type: array items: $ref: '#/components/schemas/LakehouseObject' LakehouseFileSlug: type: string enum: - build - manifest - source - databricksYml ProtocolObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - protocol protocolSchema: type: string enum: - v2 - v3 - tfv1 triggerTypeFile: type: boolean triggerTypeScheduled: type: boolean required: - type - protocolSchema - triggerTypeFile - triggerTypeScheduled example: type: protocol namespace: common slug: akta version: v1.2.18 createdAt: '2023-02-16T15:15:34.269Z' lastUpdatedAt: '2023-02-16T15:15:34.269Z' name: A demo protocol description: The description for the demo protocol otherVersions: - v1.2.18 - v1.2.17 - v1.1.0 - v0.0.10 ProtocolObjectList: type: array items: $ref: '#/components/schemas/ProtocolObject' ProtocolFileSlug: type: string enum: - build - manifest - protocol - readme - script - source - protocolYml SchemaObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - schema required: - type example: type: schema namespace: private-test slug: tabular version: v0.5.0 createdAt: '2024-04-25T15:15:34.269Z' lastUpdatedAt: '2023-04-25T17:15:34.269Z' name: Tabular schema description: A tabular schema otherVersions: - v0.1.0 - v0.5.0 SchemaObjectList: type: array items: $ref: '#/components/schemas/SchemaObject' SchemaFileSlug: type: string enum: - build - manifest - readme - source - schema - expected EventbridgeSubscriptionFull: type: object properties: id: type: string orgSlug: type: string selectedEventTypes: type: array items: type: string enum: - tetrascience.file.RegistrationSucceeded.v1 - tetrascience.file.RegistrationFailed.v1 - tetrascience.file.SearchIndexingSucceeded.v1 - tetrascience.file.SearchIndexingFailed.v1 - tetrascience.file.SQLIndexingSucceeded.v1 - tetrascience.file.SQLIndexingFailed.v1 - tetrascience.file.WorkflowCreated.v1 - tetrascience.file.WorkflowInProgress.v1 - tetrascience.file.WorkflowSucceeded.v1 - tetrascience.file.WorkflowFailed.v1 - tetrascience.file.WorkflowCanceled.v1 - tetrascience.agents.common.heartbeat.v1 - tetrascience.agents.common.agentStarted.v1 - tetrascience.agents.common.agentStopped.v1 - tetrascience.agents.filelog.archiveFileDeleteCompleted.v1 - tetrascience.agents.filelog.archiveFileDeleteFailed.v1 - tetrascience.agents.filelog.fileArchiveCompleted.v1 - tetrascience.agents.filelog.fileArchiveFailed.v1 - tetrascience.agents.filelog.fileArchiveSkipped.v1 - tetrascience.agents.filelog.fileArchiveStarted.v1 - tetrascience.agents.filelog.fileScanned.v1 - tetrascience.agents.filelog.fileUploadCompleted.v1 - tetrascience.agents.filelog.fileUploadFailed.v1 - tetrascience.agents.filelog.fileUploadStarted.v1 - tetrascience.agents.filelog.pathValidationFailed.v1 - tetrascience.agents.filelog.scanCompleted.v1 - tetrascience.agents.filelog.scanError.v1 - tetrascience.agents.filelog.scanStarted.v1 minItems: 1 description: The types of events to subscribe to userDefinedName: type: string pattern: ^[\S ]*\S[\S ]*$ description: Subscription name set and displayed in the UI targetEndpoint: type: string pattern: arn:aws:events:.+:.+:.+ description: Amazon Resource Name of the bus resource where events should be sent targetType: type: string enum: - BUS enabled: type: boolean createdAt: type: string format: date-time lastUpdatedAt: type: string format: date-time required: - id - orgSlug - selectedEventTypes - userDefinedName - targetEndpoint - targetType - enabled - createdAt - lastUpdatedAt TaskScriptObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - task-script sdkVersion: type: string nullable: true hash: type: string nullable: true required: - type - sdkVersion - hash example: type: task-script namespace: common slug: akta version: v1.1.0 name: null description: null sdkVersion: v1.2.0 hash: aaabbbccc000111222333 createdAt: '2023-02-16T15:15:34.269Z' lastUpdatedAt: '2023-02-16T15:15:34.269Z' otherVersions: - v1.1.0 - v1.0.9 - v1.0.5 - v0.0.3 TaskScriptObjectList: type: array items: $ref: '#/components/schemas/TaskScriptObject' TaskScriptFileSlug: type: string enum: - build - buildlog - manifest - readme - source TetraflowObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - tetraflow required: - type example: type: tetraflow namespace: common slug: simplo version: v1.0.2 createdAt: '2024-04-25T15:15:34.269Z' lastUpdatedAt: '2023-04-25T17:15:34.269Z' name: A demo tetraflow description: The description for the demo tetraflow powering the simplo use case otherVersions: - v1.0.0 - v1.0.1 TetraflowObjectList: type: array items: $ref: '#/components/schemas/TetraflowObject' TetraflowFileSlug: type: string enum: - build - manifest - readme - source - protocol - tetraflowYml - generated TetrasphereObject: allOf: - $ref: '#/components/schemas/ArtifactObjectBase' - type: object properties: type: type: string enum: - tetrasphere required: - type example: type: tetrasphere namespace: private-test slug: tetrasphere version: v0.5.0 createdAt: '2024-04-25T15:15:34.269Z' lastUpdatedAt: '2023-04-25T17:15:34.269Z' name: Tetrasphere description: A tetrasphere otherVersions: - v0.1.0 - v0.5.0 TetrasphereObjectList: type: array items: $ref: '#/components/schemas/TetrasphereObject' TetrasphereFileSlug: type: string enum: - build - manifest - readme - source - distZip HubsResponse: type: object properties: hubs: type: array items: $ref: '#/components/schemas/HubDto' required: - hubs 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 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 DataAppConnectorKeyValueKeysResponse: type: object properties: keys: type: array items: type: string CreateUpdateAccessGroup: type: object properties: name: type: string description: The name of the group. maxLength: 100 minLength: 1 description: type: string nullable: true description: The description of the group. maxLength: 1000 enabled: type: boolean description: Indicates whether the group is enabled or not. rules: $ref: '#/components/schemas/AttributeRuleConfiguration' ssoGroupMappings: type: array default: [] items: type: string description: The SSO group name. required: - name - enabled - rules SaveDataAppConnectorKeyValuesRequest: type: object required: - values properties: values: type: array items: type: object required: - key - value properties: key: type: string pattern: ^[^,]+$ description: Connector key. Commas are not allowed. value: {} secure: type: boolean ConnectorKeyValuesResponse: type: object properties: values: type: array items: $ref: '#/components/schemas/ConnectorKeyValue' EventbridgeSubscriptionUpdate: type: object properties: selectedEventTypes: type: array items: type: string enum: - tetrascience.file.RegistrationSucceeded.v1 - tetrascience.file.RegistrationFailed.v1 - tetrascience.file.SearchIndexingSucceeded.v1 - tetrascience.file.SearchIndexingFailed.v1 - tetrascience.file.SQLIndexingSucceeded.v1 - tetrascience.file.SQLIndexingFailed.v1 - tetrascience.file.WorkflowCreated.v1 - tetrascience.file.WorkflowInProgress.v1 - tetrascience.file.WorkflowSucceeded.v1 - tetrascience.file.WorkflowFailed.v1 - tetrascience.file.WorkflowCanceled.v1 - tetrascience.agents.common.heartbeat.v1 - tetrascience.agents.common.agentStarted.v1 - tetrascience.agents.common.agentStopped.v1 - tetrascience.agents.filelog.archiveFileDeleteCompleted.v1 - tetrascience.agents.filelog.archiveFileDeleteFailed.v1 - tetrascience.agents.filelog.fileArchiveCompleted.v1 - tetrascience.agents.filelog.fileArchiveFailed.v1 - tetrascience.agents.filelog.fileArchiveSkipped.v1 - tetrascience.agents.filelog.fileArchiveStarted.v1 - tetrascience.agents.filelog.fileScanned.v1 - tetrascience.agents.filelog.fileUploadCompleted.v1 - tetrascience.agents.filelog.fileUploadFailed.v1 - tetrascience.agents.filelog.fileUploadStarted.v1 - tetrascience.agents.filelog.pathValidationFailed.v1 - tetrascience.agents.filelog.scanCompleted.v1 - tetrascience.agents.filelog.scanError.v1 - tetrascience.agents.filelog.scanStarted.v1 minItems: 1 description: The types of events to subscribe to userDefinedName: type: string pattern: ^[\S ]*\S[\S ]*$ description: Subscription name set and displayed in the UI targetEndpoint: type: string pattern: arn:aws:events:.+:.+:.+ description: Amazon Resource Name of the bus resource where events should be sent targetType: type: string enum: - BUS enabled: type: boolean 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 parameters: LatestOnlyQuery: description: Only return the latest version of each artifact name: latest_only in: query required: false schema: type: boolean example: true IncludePrereleasesQuery: description: Include prerelease artifacts in search name: include_prereleases in: query required: false schema: type: boolean example: true ArtifactNamespace: description: Artifact namespace. Should be common, private-*, or client-* in: path name: namespace required: true schema: $ref: '#/components/schemas/ArtifactNamespace' example: common ArtifactSlug: description: Artifact slug name: slug in: path required: true schema: type: string example: demo-slug DownloadQuery: name: download in: query description: If set to true, return a download url required: false schema: type: boolean ArtifactVersion: description: Artifact version name: version in: path required: true schema: type: string pattern: ^v(\d+|x)\.(\d+|x)\.(\d+|x)(-.*)?$ example: v1.0.0 AiWorkflowFileSlugParam: name: fileSlug description: File slug corresponding to file within an ai-workflow required: true in: path schema: $ref: '#/components/schemas/AiWorkflowFileSlug' example: build ArtifactNamespaceTypeQuery: description: Namespace type of artifacts to be returned ('common', 'client', or 'private') name: namespace_type in: query required: false schema: type: string enum: - common - client - private example: client ConnectorFileSlugParam: name: fileSlug description: File slug corresponding to file within a Connector required: true in: path schema: $ref: '#/components/schemas/ConnectorFileSlug' example: build IdsFileSlugParam: name: fileSlug description: File slug corresponding to file within an IDS required: true in: path schema: $ref: '#/components/schemas/IdsFileSlug' example: build LakehouseFileSlugParam: name: fileSlug description: File slug corresponding to file within a lakehouse required: true in: path schema: $ref: '#/components/schemas/LakehouseFileSlug' example: build ProtocolFileSlugParam: name: fileSlug description: File slug corresponding to file within a protocol required: true in: path schema: $ref: '#/components/schemas/ProtocolFileSlug' example: build SchemaFileSlugParam: name: fileSlug description: File slug corresponding to file within a schema required: true in: path schema: $ref: '#/components/schemas/SchemaFileSlug' example: build TaskScriptFileSlugParam: name: fileSlug description: File slug corresponding to file within a task-script required: true in: path schema: $ref: '#/components/schemas/TaskScriptFileSlug' example: build TetraflowFileSlugParam: name: fileSlug description: File slug corresponding to file within a tetraflow required: true in: path schema: $ref: '#/components/schemas/TetraflowFileSlug' example: build TetrasphereFileSlugParam: name: fileSlug description: File slug corresponding to file within a tetrasphere required: true in: path schema: $ref: '#/components/schemas/TetrasphereFileSlug' example: build ValueQuery: name: value in: query description: The search string required: true schema: type: string LimitQuery: name: limit in: query description: The maximum number of results to return required: false schema: type: integer minimum: 1 responses: 400Any: description: Incorrect input provided content: application/json: schema: {} example: error: Bad Request message: Invalid parameters provided. 404Any: description: Not found or not visible to user content: application/json: schema: {} example: error: Not Found message: Subscription not found 500Any: description: Internal error managing rules on eventbridge content: application/json: schema: {} example: error: Internal DB Error message: Internal error with teh database 501Any: description: Internal error managing rules on eventbridge content: application/json: schema: {} example: error: Internal Eventbridge Error message: Internal error managing rules on eventbridge 200Any: description: Success content: application/json: schema: {} 200PipelineObject: description: Success content: application/json: schema: $ref: '#/components/schemas/PipelineOutputObject' 200PipelineIdsList: description: Success content: application/json: schema: type: array items: type: string 401Any: description: Unauthorized content: application/json: schema: {} example: error: Unauthorized message: Missing authentication. 200AiWorkflowObjectList: description: Successfully fetched AiWorkflowObject list content: application/json: schema: $ref: '#/components/schemas/AiWorkflowObjectList' 200File: description: Successfully fetched file content: application/json: schema: oneOf: - type: object properties: url: type: string required: - url additionalProperties: false - type: object properties: content: description: Content of the file. Could be any type format: unknown required: - content additionalProperties: false example: content: '# README Contents * item 1 * item 2 * item 3' 200AiWorkflowObject: description: Successfully fetched AiWorkflowObject content: application/json: schema: $ref: '#/components/schemas/AiWorkflowObject' 200AiWorkflowFileSlugList: description: Successfully fetched available AiWorkflow file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/AiWorkflowFileSlug' 200Labels: description: Successfully fetched Labels content: application/json: schema: $ref: '#/components/schemas/LabelList' 200ConnectorObjectList: description: Successfully fetched ConnectorObject list content: application/json: schema: $ref: '#/components/schemas/ConnectorObjectList' 200ConnectorObject: description: Successfully fetched ConnectorObject content: application/json: schema: $ref: '#/components/schemas/ConnectorObject' 200ConnectorFileSlugList: description: Successfully fetched available Connector file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/ConnectorFileSlug' 200Relationships: description: Successfully fetched Relationships content: application/json: schema: $ref: '#/components/schemas/Relationships' 200IdsObjectList: description: Successfully fetched IdsObject list content: application/json: schema: $ref: '#/components/schemas/IdsObjectList' 200IdsObject: description: Successfully fetched IdsObject content: application/json: schema: $ref: '#/components/schemas/IdsObject' 200IdsFileSlugList: description: Successfully fetched available IDS file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/IdsFileSlug' 200LakehouseObjectList: description: Successfully fetched LakehouseObject list content: application/json: schema: $ref: '#/components/schemas/LakehouseObjectList' 200LakehouseObject: description: Successfully fetched LakehouseObject content: application/json: schema: $ref: '#/components/schemas/LakehouseObject' 200LakehouseFileSlugList: description: Successfully fetched available Lakehouse file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/LakehouseFileSlug' 200ProtocolObjectList: description: Successfully fetched ProtocolObject list content: application/json: schema: $ref: '#/components/schemas/ProtocolObjectList' 200ProtocolObject: description: Successfully fetched ProtocolObject content: application/json: schema: $ref: '#/components/schemas/ProtocolObject' 200ProtocolFileSlugList: description: Successfully fetched available Protocol file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/ProtocolFileSlug' 200SchemaObjectList: description: Successfully fetched SchemaObject list content: application/json: schema: $ref: '#/components/schemas/SchemaObjectList' 200SchemaObject: description: Successfully fetched SchemaObject content: application/json: schema: $ref: '#/components/schemas/SchemaObject' 200SchemaFileSlugList: description: Successfully fetched available Schema file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/SchemaFileSlug' 503Any: description: Could not retrieve information from AWS content: application/json: schema: {} example: error: Unavailable message: Information could not be retrieved 200TaskScriptObjectList: description: Successfully fetched TaskScriptObject list content: application/json: schema: $ref: '#/components/schemas/TaskScriptObjectList' 200TaskScriptObject: description: Successfully fetched TaskScriptObject content: application/json: schema: $ref: '#/components/schemas/TaskScriptObject' 200TaskScriptFileSlugList: description: Successfully fetched available Task Script file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/TaskScriptFileSlug' 200TetraflowObjectList: description: Successfully fetched TetraflowObject list content: application/json: schema: $ref: '#/components/schemas/TetraflowObjectList' 200TetraflowObject: description: Successfully fetched TetraflowObject content: application/json: schema: $ref: '#/components/schemas/TetraflowObject' 200TetraflowFileSlugList: description: Successfully fetched available Tetraflow file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/TetraflowFileSlug' 200TetrasphereObjectList: description: Successfully fetched TetrasphereObject list content: application/json: schema: $ref: '#/components/schemas/TetrasphereObjectList' 200TetrasphereObject: description: Successfully fetched TetrasphereObject content: application/json: schema: $ref: '#/components/schemas/TetrasphereObject' 200TetrasphereFileSlugList: description: Successfully fetched available Tetrasphere file slugs content: application/json: schema: type: array items: $ref: '#/components/schemas/TetrasphereFileSlug'