Opal Security group-bindings API

Operations related to group bindings

OpenAPI Specification

opal-security-group-bindings-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: hello@opal.dev
    name: Opal Team
    url: https://www.opal.dev/
  description: The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
  title: Opal access-rules group-bindings API
  version: '1.0'
servers:
- description: Production
  url: https://api.opal.dev/v1
tags:
- name: group-bindings
  description: Operations related to group bindings
paths:
  /group-bindings:
    get:
      summary: Get group bindings
      description: Returns a list of `GroupBinding` objects.
      operationId: getGroupBindings
      parameters:
      - description: The pagination cursor value.
        example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
        explode: true
        in: query
        name: cursor
        required: false
        schema:
          type: string
        style: form
      - description: Number of results to return per page. Default is 200.
        example: 200
        explode: true
        in: query
        name: page_size
        schema:
          type: integer
          maximum: 1000
        style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedGroupBindingsList'
          description: One page worth of group bindings for your organization.
      security:
      - BearerAuth: []
      tags:
      - group-bindings
    post:
      description: Creates a group binding.
      operationId: createGroupBinding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGroupBindingInfo'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupBinding'
          description: The group binding just created.
      security:
      - BearerAuth: []
      tags:
      - group-bindings
    put:
      description: Bulk updates a list of group bindings.
      operationId: updateGroupBindings
      requestBody:
        description: Group bindings to be updated
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupBindingInfoList'
      responses:
        '200':
          description: The group bindings were successfully updated.
      security:
      - BearerAuth: []
      tags:
      - group-bindings
  /group-bindings/{group_binding_id}:
    get:
      summary: Get group binding by ID
      description: Returns a `GroupBinding` object.
      operationId: getGroupBinding
      parameters:
      - description: The ID of the group binding.
        example: 32acc112-21ff-4669-91c2-21e27683eaa1
        explode: true
        in: path
        name: group_binding_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupBinding'
          description: The requested `GroupBinding`.
      security:
      - BearerAuth: []
      tags:
      - group-bindings
    delete:
      description: Deletes a group binding.
      operationId: deleteGroupBinding
      parameters:
      - description: The ID of the group binding.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: group_binding_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          description: The group binding was successfully deleted.
      security:
      - BearerAuth: []
      tags:
      - group-bindings
components:
  schemas:
    UpdateGroupBindingInfo:
      description: '# UpdateGroupBindingInfo Object

        ### Description

        The `UpdateGroupBindingInfo` object is used as an input to the UpdateGroupBinding API.'
      example:
        group_binding_id: 0ae19dbf-324d-4216-999c-574d46182c7e
        source_group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
        groups:
        - group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
        - group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
      properties:
        group_binding_id:
          description: The ID of the group binding.
          example: 0ae19dbf-324d-4216-999c-574d46182c7e
          format: uuid
          type: string
        source_group_id:
          description: The ID of the source group.
          example: f454d283-ca87-4a8a-bdbb-df212eca5353
          format: uuid
          type: string
        groups:
          description: The list of groups.
          items:
            properties:
              group_id:
                description: The ID of the group.
                example: f454d283-ca87-4a8a-bdbb-df212eca5353
                format: uuid
                type: string
            required:
            - group_id
          type: array
      required:
      - group_binding_id
      - source_group_id
      - groups
      type: object
    GroupTypeEnum:
      description: The type of the group.
      enum:
      - ACTIVE_DIRECTORY_GROUP
      - AWS_SSO_GROUP
      - DATABRICKS_ACCOUNT_GROUP
      - DUO_GROUP
      - GIT_HUB_TEAM
      - GIT_LAB_GROUP
      - GOOGLE_GROUPS_GROUP
      - GOOGLE_GROUPS_GKE_GROUP
      - LDAP_GROUP
      - OKTA_GROUP
      - OKTA_GROUP_RULE
      - TAILSCALE_GROUP
      - OPAL_GROUP
      - OPAL_ACCESS_RULE
      - AZURE_AD_SECURITY_GROUP
      - AZURE_AD_MICROSOFT_365_GROUP
      - CONNECTOR_GROUP
      - SNOWFLAKE_ROLE
      - WORKDAY_USER_SECURITY_GROUP
      - PAGERDUTY_ON_CALL_SCHEDULE
      - INCIDENTIO_ON_CALL_SCHEDULE
      - ROOTLY_ON_CALL_SCHEDULE
      - DEVIN_GROUP
      - GIT_HUB_ENTERPRISE_TEAM
      - GRAFANA_TEAM
      - CLICKHOUSE_ROLE
      - SLACK_USER_GROUP
      - TWINGATE_GROUP
      - TWINGATE_GROUP_SYNCED
      - ZENDESK_GROUP
      - ZENDESK_ORGANIZATION
      - HUBSPOT_TEAM
      - TABLEAU_GROUP
      example: OPAL_GROUP
      type: string
    UpdateGroupBindingInfoList:
      example:
        group_bindings:
        - group_binding_id: f454d283-ca87-4a8a-bdbb-df212eca5353
          source_group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
          groups:
          - group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
          - group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
        - group_binding_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          source_group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          groups:
          - group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          - group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
      properties:
        group_bindings:
          description: A list of group bindings with information to update.
          items:
            $ref: '#/components/schemas/UpdateGroupBindingInfo'
          type: array
      type: object
      required:
      - group_bindings
    PaginatedGroupBindingsList:
      example:
        next: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
        previous: cj1sZXdwd2VycWtJ
        results:
        - group_binding_id: f454d283-ca87-4a8a-bdbb-df212eca5353
          created_by_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          created_at: 2022-01-23 04:56:07+00:00
          source_group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
          groups:
          - group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
            group_type: OKTA_GROUP
          - group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
            group_type: AWS_SSO_GROUP
        - group_binding_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          created_by_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          source_group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          created_at: 2022-01-23 04:56:07+00:00
          groups:
          - group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
            group_type: AWS_SSO_GROUP
          - group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
            group_type: OKTA_GROUP
      properties:
        next:
          description: The cursor with which to continue pagination if additional result pages exist.
          example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
          nullable: true
          type: string
        previous:
          description: The cursor used to obtain the current result page.
          example: cj1sZXdwd2VycWtJ
          nullable: true
          type: string
        results:
          items:
            $ref: '#/components/schemas/GroupBinding'
          type: array
      required:
      - results
    GroupBindingGroup:
      description: '# Group Binding Group Object

        ### Description

        The `GroupBindingGroup` object is used to represent a group binding group.


        ### Usage Example

        Get group binding groups from the `GET Group Bindings` endpoint.'
      example:
        group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
        group_type: OKTA_GROUP
      properties:
        group_id:
          description: The ID of the group.
          example: f454d283-ca87-4a8a-bdbb-df212eca5353
          format: uuid
          type: string
        group_type:
          $ref: '#/components/schemas/GroupTypeEnum'
      required:
      - group_id
      - group_type
      type: object
    GroupBinding:
      description: '# Group Binding Object

        ### Description

        The `GroupBinding` object is used to represent a group binding.


        ### Usage Example

        Get group bindings from the `GET Group Bindings` endpoint.'
      example:
        group_binding_id: f454d283-ca87-4a8a-bdbb-df212eca5353
        created_by_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
        created_at: 2022-01-23 04:56:07+00:00
        source_group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
        groups:
        - group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
          group_type: OKTA_GROUP
        - group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          group_type: AWS_SSO_GROUP
      properties:
        group_binding_id:
          description: The ID of the group binding.
          example: f454d283-ca87-4a8a-bdbb-df212eca5353
          format: uuid
          type: string
        created_by_id:
          description: The ID of the user that created the group binding.
          example: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
          format: uuid
          type: string
        created_at:
          description: The date the group binding was created.
          example: 2022-01-23 04:56:07+00:00
          format: date-time
          type: string
        source_group_id:
          description: The ID of the source group.
          example: f454d283-ca87-4a8a-bdbb-df212eca5353
          format: uuid
          type: string
        groups:
          description: The list of groups.
          items:
            $ref: '#/components/schemas/GroupBindingGroup'
          type: array
      required:
      - group_binding_id
      - created_by_id
      - created_at
      - source_group_id
      - groups
    CreateGroupBindingInfo:
      description: '# CreateGroupBindingInfo Object

        ### Description

        The `CreateGroupBindingInfo` object is used as an input to the CreateGroupBinding API.'
      example:
        source_group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
        groups:
        - group_id: f454d283-ca87-4a8a-bdbb-df212eca5353
        - group_id: 99d0b81d-14be-4cf6-bd27-348b4af1d11b
      properties:
        source_group_id:
          description: The ID of the source group.
          example: f454d283-ca87-4a8a-bdbb-df212eca5353
          format: uuid
          type: string
        groups:
          description: The list of groups.
          items:
            properties:
              group_id:
                description: The ID of the group.
                example: f454d283-ca87-4a8a-bdbb-df212eca5353
                format: uuid
                type: string
            required:
            - group_id
          type: array
      required:
      - source_group_id
      - groups
      type: object
  securitySchemes:
    BearerAuth:
      scheme: bearer
      type: http