Opal Security idp-group-mappings API

Operations related to IDP group mappings

OpenAPI Specification

opal-security-idp-group-mappings-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 idp-group-mappings API
  version: '1.0'
servers:
- description: Production
  url: https://api.opal.dev/v1
tags:
- name: idp-group-mappings
  description: Operations related to IDP group mappings
paths:
  /idp-group-mappings/{app_resource_id}:
    get:
      description: Returns the configured set of available `IdpGroupMapping` objects for an Okta app.
      operationId: getIdpGroupMappings
      parameters:
      - description: The ID of the Okta app.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: app_resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdpGroupMappingList'
          description: The configured set of available `IdpGroupMapping` objects for an Okta app.
      security:
      - BearerAuth: []
      tags:
      - idp-group-mappings
    put:
      description: Updates the list of available `IdpGroupMapping` objects for an Okta app.
      operationId: updateIdpGroupMappings
      parameters:
      - description: The ID of the Okta app.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: app_resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                mappings:
                  type: array
                  items:
                    properties:
                      group_id:
                        type: string
                        format: uuid
                      alias:
                        type: string
                      hidden_from_end_user:
                        type: boolean
                    type: object
              required:
              - mappings
              type: object
      responses:
        '200':
          description: The updated set of available `IdpGroupMapping` objects for an Okta app.
      security:
      - BearerAuth: []
      tags:
      - idp-group-mappings
  /idp-group-mappings/{app_resource_id}/groups/{group_id}:
    get:
      description: Gets an `IdpGroupMapping` object for an Okta app and group.
      operationId: getIdpGroupMapping
      parameters:
      - description: The ID of the Okta app.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: app_resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of the group.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: group_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdpGroupMapping'
          description: The `IdpGroupMapping` object for the Okta app and group.
      security:
      - BearerAuth: []
      tags:
      - idp-group-mappings
    post:
      description: 'Creates or updates an individual `IdpGroupMapping` object (upsert operation).


        **Behavior:**

        - If the mapping doesn''t exist, it will be created with the provided values

        - If the mapping exists, only the fields provided in the request will be updated

        '
      operationId: createIdpGroupMapping
      parameters:
      - description: The ID of the Okta app.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: app_resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of the group.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: group_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      requestBody:
        required: false
        content:
          application/json:
            schema:
              properties:
                alias:
                  description: Optional alias for the group mapping
                  type: string
                  nullable: true
                hidden_from_end_user:
                  description: 'Whether this mapping should be hidden from end users.

                    - **New mappings**: If not provided, defaults to `false`

                    - **Existing mappings**: If not provided, existing value is preserved (no change)

                    - **Explicit values**: If provided, value is updated to the specified boolean

                    '
                  type: boolean
                  nullable: true
              type: object
      responses:
        '200':
          description: The IDP group mapping was successfully created or updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdpGroupMapping'
      security:
      - BearerAuth: []
      tags:
      - idp-group-mappings
    delete:
      description: Deletes an `IdpGroupMapping` object.
      operationId: delete_idp_group_mappings
      parameters:
      - description: The ID of the Okta app.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: app_resource_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      - description: The ID of the group.
        example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
        explode: false
        in: path
        name: group_id
        required: true
        schema:
          format: uuid
          type: string
        style: simple
      responses:
        '200':
          description: The IDP group mapping was successfully deleted.
      security:
      - BearerAuth: []
      tags:
      - idp-group-mappings
components:
  schemas:
    IdpGroupMapping:
      description: Information about a group mapping.
      example:
        app_resource_id: 1520617d-e72a-47f5-a84c-693817ab48ad2
        group_id: 6f99639b-7928-4043-8184-47cbc6766145
        alias: finance-team
        hidden_from_end_user: false
      properties:
        app_resource_id:
          description: The ID of the app resource.
          example: 1520617d-e72a-47f5-a84c-693817ab48ad2
          format: uuid
          type: string
        group_id:
          description: The ID of the group.
          example: 6f99639b-7928-4043-8184-47cbc6766145
          format: uuid
          type: string
        alias:
          description: The alias of the group.
          example: finance-team
          type: string
        hidden_from_end_user:
          description: A bool representing whether or not the group is hidden from the end user.
          example: false
          type: boolean
      required:
      - group_id
      - hidden_from_end_user
      type: object
    IdpGroupMappingList:
      example:
        mappings:
        - group_id: 6f99639b-7928-4043-8184-47cbc6766145
          alias: finance-team
          hidden_from_end_user: false
        - group_id: 7870617d-e72a-47f5-a84c-693817ab4567
          alias: engineering-team
          hidden_from_end_user: false
      properties:
        mappings:
          items:
            $ref: '#/components/schemas/IdpGroupMapping'
          type: array
      type: object
      required:
      - mappings
  securitySchemes:
    BearerAuth:
      scheme: bearer
      type: http