TetraScience Access Groups API

The Access Groups API from TetraScience — 6 operation(s) for access groups.

Documentation

Specifications

Other Resources

OpenAPI Specification

tetrascience-access-groups-api-openapi.yml Raw ↑
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