openapi: 3.1.0 info: title: TetraScience Data and AI Cloud Access Groups 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 paths: /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/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/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. components: schemas: 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' AttributeRule: properties: filters: anyOf: - $ref: '#/components/schemas/FilterOrConfig' - $ref: '#/components/schemas/FilterAndConfig' - $ref: '#/components/schemas/FilterAllowAllConfig' required: - filters 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 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 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 FilterAllowAllConfig: properties: type: enum: - allow-all type: string required: - type additionalProperties: false type: object 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 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 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 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 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 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 FilterOrConfig: properties: id: type: string value: items: $ref: '#/components/schemas/FilterConfig' type: array type: enum: - or type: string required: - type additionalProperties: false 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 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 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 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 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 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 FilterConfig: anyOf: - $ref: '#/components/schemas/FilterOrConfig' - $ref: '#/components/schemas/FilterAndConfig' - $ref: '#/components/schemas/FilterLeaf' AttributeRuleConfiguration: additionalProperties: $ref: '#/components/schemas/AttributeRule' 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 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