OpenMetadata SCIM API

SCIM 2.0 compliant user and group provisioning endpoints.

OpenAPI Specification

openmetadata-scim-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: OpenMetadata APIs Agent Executions SCIM API
  description: Common types and API definition for OpenMetadata
  contact:
    name: OpenMetadata
    url: https://open-metadata.org
    email: openmetadata-dev@googlegroups.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: '1.13'
servers:
- url: /api
  description: Current Host
- url: http://localhost:8585/api
  description: Endpoint URL
security:
- BearerAuth: []
tags:
- name: SCIM
  description: SCIM 2.0 compliant user and group provisioning endpoints.
paths:
  /v1/scim/Groups:
    get:
      tags:
      - SCIM
      summary: List SCIM groups
      description: Lists SCIM groups based on optional filters.
      operationId: listScimGroups
      responses:
        '200':
          description: List of SCIM Groups
    post:
      tags:
      - SCIM
      summary: Create SCIM group
      description: Creates a new SCIM group.
      operationId: createScimGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimGroup'
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimGroup'
      responses:
        '201':
          description: Group created
        '400':
          description: Invalid group input
  /v1/scim/Users:
    get:
      tags:
      - SCIM
      summary: List SCIM users
      description: Lists SCIM users based on optional filters.
      operationId: listScimUsers
      responses:
        '200':
          description: List of SCIM Users
    post:
      tags:
      - SCIM
      summary: Create SCIM user
      description: Creates a new SCIM user.
      operationId: createScimUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimUser'
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimUser'
      responses:
        '201':
          description: User created
        '400':
          description: Invalid user input
  /v1/scim/Groups/{id}:
    get:
      tags:
      - SCIM
      summary: Get SCIM group by ID
      description: Retrieves a SCIM group identified by ID.
      operationId: getScimGroup
      parameters:
      - name: id
        in: path
        description: SCIM Group ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Group found
        '404':
          description: Group not found
    put:
      tags:
      - SCIM
      summary: Update SCIM group
      description: Updates a SCIM group identified by ID.
      operationId: updateScimGroup
      parameters:
      - name: id
        in: path
        description: SCIM Group ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimGroup'
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimGroup'
      responses:
        '200':
          description: Group updated
        '404':
          description: Group not found
    delete:
      tags:
      - SCIM
      summary: Delete SCIM group
      description: Deletes a SCIM group identified by ID.
      operationId: deleteScimGroup
      parameters:
      - name: id
        in: path
        description: SCIM Group ID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Group deleted
        '404':
          description: Group not found
    patch:
      tags:
      - SCIM
      summary: Patch SCIM group
      description: Patch updates to a SCIM group identified by ID.
      operationId: patchScimGroup
      parameters:
      - name: id
        in: path
        description: SCIM Group ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimPatchOp'
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimPatchOp'
      responses:
        '204':
          description: Group patched
        '404':
          description: Group not found
  /v1/scim/Users/{id}:
    get:
      tags:
      - SCIM
      summary: Get SCIM user by ID
      description: Retrieves a SCIM user identified by ID.
      operationId: getScimUser
      parameters:
      - name: id
        in: path
        description: SCIM User ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User found
        '404':
          description: User not found
    put:
      tags:
      - SCIM
      summary: Update SCIM user
      description: Updates a SCIM user identified by ID.
      operationId: updateScimUser
      parameters:
      - name: id
        in: path
        description: SCIM User ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimUser'
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimUser'
      responses:
        '200':
          description: User updated
        '404':
          description: User not found
    delete:
      tags:
      - SCIM
      summary: Delete SCIM user
      description: Deletes a SCIM user identified by ID.
      operationId: deleteScimUser
      parameters:
      - name: id
        in: path
        description: SCIM User ID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: User deleted
        '404':
          description: User not found
    patch:
      tags:
      - SCIM
      summary: Patch SCIM user
      description: Patch updates to a SCIM user identified by ID.
      operationId: patchScimUser
      parameters:
      - name: id
        in: path
        description: SCIM User ID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimPatchOp'
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimPatchOp'
      responses:
        '200':
          description: User patched
        '404':
          description: User not found
  /v1/scim/Schemas:
    get:
      tags:
      - SCIM
      summary: Get SCIM schemas
      description: Returns supported SCIM schemas.
      operationId: getScimSchemas
      responses:
        '200':
          description: SCIM schemas
  /v1/scim:
    get:
      tags:
      - SCIM
      summary: Get SCIM Service Provider Config
      description: Returns the SCIM service provider configuration.
      operationId: getServiceProviderConfig
      responses:
        '200':
          description: SCIM Service Provider Configuration
  /v1/scim/ServiceProviderConfig:
    get:
      tags:
      - SCIM
      summary: Alias endpoint for SCIM Service Provider Config
      description: Alias endpoint for service provider configuration.
      operationId: getServiceProviderConfigAlias
      responses:
        '200':
          description: SCIM Service Provider Configuration
components:
  schemas:
    Member:
      required:
      - value
      type: object
      properties:
        value:
          type: string
        display:
          type: string
        type:
          type: string
    Manager:
      type: object
      properties:
        value:
          type: string
        displayName:
          type: string
    PhoneNumber:
      type: object
      properties:
        value:
          type: string
        type:
          type: string
    Name:
      type: object
      properties:
        givenName:
          type: string
        familyName:
          type: string
        formatted:
          type: string
    UrnIetfParamsScimSchemasExtensionEnterprise20User:
      type: object
      properties:
        employeeId:
          type: string
        department:
          type: string
        manager:
          $ref: '#/components/schemas/Manager'
    Meta:
      type: object
      properties:
        resourceType:
          type: string
        created:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        location:
          type: string
    ScimGroup:
      required:
      - displayName
      - schemas
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        id:
          type: string
        displayName:
          type: string
        externalId:
          type: string
        active:
          type: boolean
        members:
          type: array
          items:
            $ref: '#/components/schemas/Member'
        meta:
          $ref: '#/components/schemas/Meta'
    ScimPatchOp:
      required:
      - Operations
      - schemas
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        Operations:
          type: array
          items:
            $ref: '#/components/schemas/Operation'
    ScimUser:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        id:
          type: string
        externalId:
          type: string
        userName:
          type: string
        displayName:
          type: string
        active:
          type: boolean
        title:
          type: string
        preferredLanguage:
          type: string
        emails:
          type: array
          items:
            $ref: '#/components/schemas/Email'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/Address'
        name:
          $ref: '#/components/schemas/Name'
        meta:
          $ref: '#/components/schemas/Meta__1'
        urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:
          $ref: '#/components/schemas/UrnIetfParamsScimSchemasExtensionEnterprise20User'
    Email:
      type: object
      properties:
        value:
          type: string
        type:
          type: string
        primary:
          type: boolean
    Address:
      type: object
      properties:
        type:
          type: string
        formatted:
          type: string
        streetAddress:
          type: string
        locality:
          type: string
        region:
          type: string
        postalCode:
          type: string
        country:
          type: string
    Meta__1:
      type: object
      properties:
        resourceType:
          type: string
        created:
          type: string
          format: date-time
        lastModified:
          type: string
          format: date-time
        location:
          type: string
    Operation:
      required:
      - op
      type: object
      properties:
        op:
          type: string
        path:
          type: string
        value:
          type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT