Vendasta SCIM 2.0 User Management API

A SCIM 2.0 implementation for provisioning and de-provisioning Vendasta users and groups from an external identity provider. Covers Users, Groups and System Operations (ServiceProviderConfig, ResourceTypes, Schemas), with published guides on group-to-user assignment, supported PATCH operations, and the known limitations of SCIM in Vendasta. Uses the same gateway bearer token as the rest of the platform.

OpenAPI Specification

vendasta-scim-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SCIM 2.0 User Management
  description: |-
    System for Cross-domain Identity Management (SCIM) is designed to make managing user identities in cloud-based applications and services easier. It is an [open specification](https://www.simplecloud.info/) that is supported by many user management tools. 

    These pages document the specifics of Vendasta's implementation for partners who want to manage users in their own system and them push the changes to the Vendasta platform.
  version: 1.0.0
servers:
  - url: 'https://prod.apigateway.co/scim'
    description: Production
  - url: 'https://demo.apigateway.co/scim'
    description: Demo
  - url: 'http://localhost:11001/scim'
    description: Local
  - url: '{local}/scim'
    description: Localhost
tags:
  - name: User
    description: User resources
  - name: Group
    description: Group resource
  - name: System Operations
    description: System Operations
paths:
  '/{namespace}/Users':
    parameters:
      - $ref: '#/components/parameters/namespace'
    get:
      tags:
        - User
      summary: Search Users
      parameters:
        - $ref: '#/components/parameters/accept-scim'
        - $ref: '#/components/parameters/accept-charset-scim'
        - name: filter
          in: query
          description: |-
            Filtering is an OPTIONAL parameter.
            List users using described filters.
            <br> Supported filters are:
            <br> `externalId eq "user_external_id"`
            <br> `userName eq "user@mail.com"`
            <br>`/scim/v1/{partnerid}/Users?filter=userName eq "user@mail.com"`
          schema:
            type: string
        - schema:
            type: string
          in: query
          name: attributes
          description: |-
            Resource attributes can be restriceted by using attributes parameter.
            <br>`/scim/v1/{partnerid}/Users?filter=userName eq "user@mail.com"&attributes=userName`
            <br>`/scim/v1/{partnerid}/Users?attributes=id,externalId,userName`
        - schema:
            type: string
          in: query
          name: excludedAttributes
          description: 'A list of the attributes not to return in the response body. It '
        - schema:
            type: integer
            minimum: 1
            default: 1
          in: query
          name: startIndex
          description: The 1-based index of the first query result
        - schema:
            type: integer
          in: query
          name: count
          description: Specifies the desired maximum number of query results per page
        - schema:
            type: string
            enum:
              - userName
              - meta.created
              - name. givenName
              - name.familyName
          in: query
          name: sortBy
          description: The attribute to order the results based on
        - schema:
            type: string
            enum:
              - ascending
              - descending
            default: ascending
          in: query
          name: sortOrder
          description: Specifies if the results should be sorted A-Z (ascending) or Z-A (descending) based on the attribute in the sortBy parameter
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ListResponseUsers'
        '400':
          description: |
            Below are the error messages for bad request:
            <br>Only eq filter operator supported.
            <br>Only "userName" or "externalId" filter attribute supported.
            <br>There is some issue with provided attribute value.
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        This endpoint can be used to search users based on filter or list all user if filter criteria is ignored
      operationId: scim-search-users
    post:
      tags:
        - User
      summary: Create User
      requestBody:
        description: Create a new user
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Failed to create user.
        '409':
          description: One or more of the attribute values are already in use or are reserved.
      operationId: scim-create-user
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Create User based on SCIM schema
      security:
        - OAuth2Demo:
            - user.admin
        - OAuth2Prod:
            - user.admin
  '/{namespace}/Users/{id}':
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: The id of the user assigned by Vendasta
      - $ref: '#/components/parameters/namespace'
    get:
      tags:
        - User
      summary: Get User
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: Resource not found
      x-internal: false
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Get an user when the user id is known
      operationId: scim-get-user
      security:
        - OAuth2Demo:
            - user.admin
        - OAuth2Prod:
            - user.admin
    put:
      tags:
        - User
      summary: Replace User
      requestBody:
        description: Create a new user
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Failed to create user.
      operationId: scim-replace-user
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        API to replace an user. All of the attributes will be replaced with provided value and attributes will be kept blank for which no value is specified
      security:
        - OAuth2Demo:
            - user.admin
        - OAuth2Prod:
            - user.admin
    patch:
      tags:
        - User
      summary: Update User
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/PatchOp'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/User'
        '405':
          description: Invalid input
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Update an user's one or multiple attributes by providing operation path and value. Post update all other attributes will be unchanged apart from provided attributes.
      operationId: scim-update-user
      security:
        - OAuth2Demo:
            - user.admin
        - OAuth2Prod:
            - user.admin
    delete:
      tags:
        - User
      summary: Delete User
      responses:
        '204':
          description: No Content
        '405':
          description: Resource not found
      operationId: scim-delete-user
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        API to delete an user
      security:
        - OAuth2Demo:
            - user.admin
        - OAuth2Prod:
            - user.admin
  '/{namespace}/Groups':
    parameters:
      - $ref: '#/components/parameters/namespace'
    get:
      tags:
        - Group
      summary: Search Groups
      parameters:
        - name: excludedAttributes
          in: query
          description: Exclude members using `excludedAttributes=members`
          required: false
          schema:
            type: string
        - name: filter
          in: query
          description: Search group using `displayName eq "Platform Admin"`
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ListResponseGroup'
        '404':
          description: User not found
      operationId: ''
      x-lifecycle:
        status: proposed
      description: |
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Draft`
  '/{namespace}/Groups/{id}':
    parameters:
      - $ref: '#/components/parameters/namespace'
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: The id of the group assigned by Vendasta
    get:
      tags:
        - Group
      summary: Get Group
      parameters:
        - name: excludedAttributes
          in: query
          description: Exclude members using `excludedAttributes=members`
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/Group'
        '404':
          description: User not found
      x-lifecycle:
        status: proposed
      description: |
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Draft`
    patch:
      tags:
        - Group
      summary: Update Group
      requestBody:
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/PatchOp'
        required: true
      responses:
        '204':
          description: No Content
        '405':
          description: Invalid input
      x-lifecycle:
        status: proposed
      description: |
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Draft`
  '/{namespace}/ResourceTypes':
    parameters:
      - $ref: '#/components/parameters/namespace'
    get:
      summary: List Resource Types
      tags:
        - System Operations
      responses:
        '200':
          description: Ok
          content:
            application/scim+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/MessageListResponse'
                  - type: object
                    properties:
                      Resources:
                        type: array
                        items:
                          $ref: '#/components/schemas/ResourceResourceType'
        default:
          $ref: '#/components/responses/error'
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/attributes'
        - $ref: '#/components/parameters/excludedAttributes'
      operationId: get-namespace-ResourceTypes
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Returns a list of the resource types that the server suppports. Example "Groups", "Users", "Contacts"
  '/{namespace}/ResourceTypes/{id}':
    parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: VUNI
        description: Currently this must be the id of the partner that you wish to manage users for. In the future we plan to support other types of namespaces such as marketplace apps
      - schema:
          type: string
        name: id
        in: path
        required: true
    get:
      summary: Get Resource Type
      tags:
        - System Operations
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ResourceResourceType'
          headers:
            Location:
              $ref: '#/components/headers/Location'
            Content-Type:
              $ref: '#/components/headers/Content-Type'
        default:
          $ref: '#/components/responses/error'
      operationId: get-ResourceTypes-id
      parameters:
        - $ref: '#/components/parameters/Accept'
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Returns a list of the resource types that the server suppports. Example "Groups", "Users", "Contacts"
  '/{namespace}/Schemas':
    parameters:
      - $ref: '#/components/parameters/namespace'
    get:
      summary: List Schemas
      tags:
        - System Operations
      responses:
        '200':
          description: Ok
          content:
            application/scim+json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/MessageListResponse'
                  - type: object
                    properties:
                      Resources:
                        type: array
                        items:
                          $ref: '#/components/schemas/ResourceSchema'
        default:
          $ref: '#/components/responses/error'
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/attributes'
        - $ref: '#/components/parameters/excludedAttributes'
      operationId: get-namespace-Schemas
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Lists the data schemas that may be used by the resource types
  '/{namespace}/Schemas/{id}':
    parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          example: VUNI
        description: Currently this must be the id of the partner that you wish to manage users for. In the future we plan to support other types of namespaces such as marketplace apps
      - schema:
          type: string
        name: id
        in: path
        required: true
    get:
      summary: Get Schema
      tags:
        - System Operations
      responses:
        '200':
          description: OK
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ResourceSchema'
          headers:
            Location:
              $ref: '#/components/headers/Location'
            Content-Type:
              $ref: '#/components/headers/Content-Type'
        default:
          $ref: '#/components/responses/error'
      operationId: get-Schemas-id
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Lists the data schemas that may be used by the resource types
  '/{namespace}/Me':
    parameters:
      - $ref: '#/components/parameters/namespace'
    get:
      summary: Me redirect
      tags:
        - User
      responses:
        '308':
          description: Permanent Redirect (experiemental)
          headers:
            Location:
              schema:
                type: string
                example: 'https://prod.apigateway.co/scim/VUNI/Users/U-123456'
              description: The correct URI to make a request to
      operationId: get-namespace-Me
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`


        The SCIM standard defines a special resource called "Me" that represents the user making the API request as identified by the access token. This is similar to the "/userinfo" endpoint defined in the OAuth2 spec. 

        The Vendasta platform will respond to all requests with a redirect to the coorisponding '/Users' endpoint. This may result in a different namespace.
  '/{namespace}/ServiceProviderConfig':
    parameters:
      - $ref: '#/components/parameters/namespace'
    get:
      summary: Get Service Provider Config
      tags:
        - System Operations
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaServiceProviderConfig'
      operationId: get-ServiceProviderConfig
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/attributes'
        - $ref: '#/components/parameters/excludedAttributes'
      x-lifecycle:
        status: proposed
      description: |-
        [Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`

        Provides details on the SCIM features supported by the Vendasta platform
  '/{namespace}/Bulk':
    parameters:
      - $ref: '#/components/parameters/namespace'
    get:
      summary: Bulk Actions
      tags:
        - System Operations
      responses:
        '501':
          $ref: '#/components/responses/error'
      operationId: get-namespace-Bulk
      x-lifecycle:
        status: removed
      description: |-
        Status: `Not planned`


        The SCIM standard defines an optional `/Bulk` endpoint for performing multiple operations at the same time. The Vendasta platform does not currently support it.
components:
  schemas:
    User:
      type: object
      properties:
        schemas:
          type: array
          example:
            - 'urn:ietf:params:scim:schemas:core:2.0:User'
          minItems: 1
          uniqueItems: true
          items:
            type: string
            example: '["urn:ietf:params:scim:schemas:core:2.0:User"]'
        id:
          type: string
          description: |-
            Unique identifier in Vendasta.
            This field will be generated by Vendasta during creation of user.
        externalId:
          type: string
          description: External unique identifier of the user.
        userName:
          type: string
          description: |-
            A service provider's unique identifier for the user, typically
            used by the user to directly authenticate to the service provider.
            Often displayed to the user as their unique identifier within the
            system (as opposed to "id" or "externalId", which are generally
            opaque and not user-friendly identifiers).  Each User MUST include
            a non-empty userName value.  This identifier MUST be unique across
            the service provider's entire set of Users.  This attribute is
            REQUIRED and is case insensitive.
            <br><b>userName</b> is mapped with <b>email</b>
          example: barbara@mail.com
        name:
          $ref: '#/components/schemas/Name'
        displayName:
          type: string
          description: givenName + familyName
          example: Babs Jensen
          readOnly: true
        nickName:
          type: string
          example: Babs
        profileUrl:
          type: string
          format: uri
          description: <b>This field currently NOT SUPPORTED</b>
        title:
          type: string
          description: |-
            The user''s title, such as "Vice President".
            <br><b>This field currently NOT SUPPORTED</b>
        userType:
          type: string
          description: |-
            Used to identify the relationship between the organization and the
            user.  Typical values used might be "Contractor", "Employee",
            "Intern", "Temp", "External", and "Unknown", but any value may be used.
            <br><b>This field currently NOT SUPPORTED</b>
        preferredLanguage:
          type: string
        locale:
          type: string
          description: <b>This field currently NOT SUPPORTED</b>
        timezone:
          type: string
          example: America/Regina
        emails:
          type: array
          minItems: 1
          maxItems: 1
          description: Email is i one to one mapping with user.
          items:
            $ref: '#/components/schemas/Email'
        active:
          type: boolean
        password:
          type: string
          description: <b>This field currently NOT SUPPORTED</b>
        addresses:
          type: array
          description: Address is in one to one mapping with user
          minItems: 0
          maxItems: 1
          items:
            $ref: '#/components/schemas/Address'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Member'
        meta:
          $ref: '#/components/schemas/Meta'
      required:
        - schemas
        - userName
        - name
        - emails
    PhoneNumber:
      type: object
      properties:
        value:
          type: string
          example: +1-306-555-1234
          description: phone number format should match the region / country given in address against the type
        type:
          type: string
          example: work
    Address:
      type: object
      properties:
        type:
          type: string
          example: work
        streetAddress:
          type: string
          example: 100 Universal City Plaza
        locality:
          type: string
          example: Hollywood
          x-stoplight:
            id: ho5pd2iv86rrw
        region:
          type: string
          pattern: '^[A-Z]{2}-[\w]{1,3}$'
          description: |-
            The code for the top level subdivision within the country (state/province). For more info see the [Addresses guide](https://developers.vendasta.com/platform/1ljuzmi2uboim-addresses)

            Examples: CA-SK, US-FL, AG-08, AU-NSW
          example: CA-SK
        postalCode:
          type: string
          example: '91608'
        country:
          type: string
          pattern: '^[A-Z]{2}$'
          description: |-
            The two letter country code. For more info see the [Addresses guide](https://developers.vendasta.com/platform/1ljuzmi2uboim-addresses)

            Examples: CA, US, AU
          example: CA
        formatted:
          type: string
          example: '100 Universal City Plaza\nHollywood, CA-SK 91608 CA'
        primary:
          type: boolean
    Name:
      type: object
      properties:
        formatted:
          type: string
          description: givenName + " " + familyName
          readOnly: true
        familyName:
          type: string
          example: Jensen
        givenName:
          type: string
          example: Barbara
        middleName:
          type: string
          example: Jane
          description: <b>This field currently NOT SUPPORTED</b>
        honorificPrefix:
          type: string
          example: Ms.
          description: <b>This field currently NOT SUPPORTED</b>
        honorificSuffix:
          type: string
          example: III
          description: <b>This field currently NOT SUPPORTED</b>
      required:
        - givenName
    Email:
      type: object
      properties:
        value:
          type: string
          format: email
          example: bjensen@example.com
        type:
          type: string
          example: work
        primary:
          type: boolean
    Group:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
          example:
            - 'urn:ietf:params:scim:schemas:core:2.0:Group'
        id:
          type: string
          example: e9e30dba-f08f-4109-8486-d5c6a331660a
        displayName:
          type: string
          example: Tour Guides
        members:
          type: array
          items:
            $ref: '#/components/schemas/Member'
        meta:
          $ref: '#/components/schemas/Meta'
      x-examples:
        Example 1:
          schemas:
            - 'urn:ietf:params:scim:schemas:core:2.0:Group'
          id: 'ba:getStarted:AG-1234567890'
          displayName: Get Started for AG-1234567890
          members:
            - value: 2819c223-7f76-453a-919d-413861904646
              display: Babs Jensen
          meta:
            resourceType: Group
    Member:
      type: object
      properties:
        value:
          type: string
          example: 2819c223-7f76-453a-919d-413861904646
        $ref:
          type: string
          format: uri
          example: 'https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646'
        display:
          type: string
          example: Babs Jensen
    ServiceProviderConfig:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
          example:
            - 'urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig'
        meta:
          $ref: '#/components/schemas/Meta'
    ListResponseUsers:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
          example:
            - 'urn:ietf:params:scim:api:messages:2.0:ListResponse'
        Resources:
          type: array
          items:
            $ref: '#/components/schemas/User'
        startIndex:
          type: number
          description: |-
            The 1-based index of the first result in the current set of list results.
            REQUIRED when partial results are returned due to pagination.
        itemsPerPage:
          type: number
          description: |-
            The number of resources returned in a list response page.
            REQUIRED when partial results are returned due to pagination.
        totalResults:
          type: number
          description: The total number of results returned by the list or query operation
    ListResponseGroup:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
          example:
            - 'urn:ietf:params:scim:api:messages:2.0:ListResponse'
        totalResults:
          type: number
        Resources:
          type: array
          items:
            $ref: '#/components/schemas/Group'
        startIndex:
          type: number
        itemsPerPage:
          type: number
    PatchOp:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
          example:
            - 'urn:ietf:params:scim:api:messages:2.0:PatchOp'
        Operations:
          type: array
          items:
            $ref: '#/components/schemas/Operation'
    Operation:
      type: object
      properties:
        op:
          type: string
          example: Replace
        path:
          type: string
          example: 'emails[type eq "work"].value'
        value:
          type: string
          example: updatedEmail@mail.com
    ResourceResourceType:
      description: |
        The "ResourceType" schema specifies the metadata about a resource
          type.  Resource type resources are READ-ONLY and identified using the
          following schema URI:
          "urn:ietf:params:scim:schemas:core:2.0:ResourceType".  Unlike other
          core resources, all attributes are REQUIRED unless otherwise
          specified.  The "id" attribute is not required for the resource type
          resource.
      title: 'schemas:core:2.0:ResourceType'
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
            default: 'urn:ietf:params:scim:schemas:core:2.0:ResourceType'
            enum:
              - 'urn:ietf:params:scim:schemas:core:2.0:ResourceType'
        id:
          type: string
          description: |-
            The resource type's server unique id.  This is often the same
                  value as the "name" attribute.  OPTIONAL.
        name:
          type: string
          description: |-
            The resource type name.  When applicable, service providers MUST
                  specify the name, e.g., "User" or "Group".  This name is
                  referenced by the "meta.resourceType" attribute in all resources.
                  REQUIRED.
        description:
          type: string
          description: |-
            The resource type's human-readable description.  When applicable,
                  service providers MUST specify the description.  OPTIONAL.
        endpoint:
          type: string
          description: |-
            The resource type's HTTP-addressable endpoint relative to the Base
                  URL of the service provider, e.g., "Users".  REQUIRED.
        schema:
          type: string
          description: |-
            The resource type's primary/base schema URI, e.g.,
                  "urn:ietf:params:scim:schemas:core:2.0:User".  This MUST be equal
                  to the "id" attribute of the associated "Schema" resource.
                  REQUIRED.
        schemaExtensions:
          type: array
          description: |-
            A list of URIs of the resource type's schema extensions.
                  OPTIONAL.
          items:
            type: object
            properties:
              schema:
                type: string
                description: |-
                  The URI of an extended schema, e.g., "urn:edu:2.0:Staff".
                          This MUST be equal to the "id" attribute of a "Schema"
                          resource.  REQUIRED.
              required:
                type: boolean
                description: |-
                  A Boolean value that specifies whether or not the schema
                          extension is required for the resource type.  If true, a
                          resource of this type MUST include this schema extension and
                          also include any attributes declared as required in this schema
                          extension.  If false, a resource of this type MAY omit this
                          schema extension.  REQUIRED.
            required:
              - schema
              - required
        meta:
          type: object
          properties:
            location:
              type: string
            resourceType:
              type: string
              example: ResourceType
      required:
        - schemas
        - name
        - description
        - endpoint
        - schema
    ResourceSchema:
      title: 'schema:core:2.0:Schema'
      x-stoplight:
        id: unazswsqjjclk
      type: object
      description: |-
        This section defines a way to specify the schema in use by resources
           available and accepted by a SCIM service provider.  For each
           "schemas" URI value, this schema specifies the defined attribute(s)
           and their characteristics (mutability, returnability, etc).  For
           every schema URI used in a resource object, there is a corresponding
           "Schema" resource.  "Schema" resources are not modifiable, and their
           associated attributes have a mutability of "readOnly".  Except for
           "id" (which is always returned), all attributes have a "returned"
           characteristic of "default".  Unless otherwise specified, all schema
           attributes are case insensitive.  These resources have a "schemas"
           attribute with the following schema URI:

           urn:ietf:params:scim:schemas:core:2.0:Schema

           Unlike other core resources, the "Schema" resource MAY contain a
           complex object within a sub-attribute, and all attributes are
           REQUIRED unless otherwise specified.
      properties:
        schemas:
          type: array
          items:
            type: string
            default: 'urn:ietf:params:scim:

# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vendasta/refs/heads/main/openapi/vendasta-scim-openapi.yml