SlashID Organizations API

The Organizations API from SlashID — 10 operation(s) for organizations.

OpenAPI Specification

slashid-organizations-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: SlashID Groups Organizations API
  description: "This is the [OpenAPI](https://www.openapis.org/) specification for communicating with the [SlashID](https://www.slashid.dev/) service.\n\nThe latest version of the OpenAPI API spec can be fetched from [our CDN](https://cdn.slashid.com/slashid-openapi-latest.yaml).\n\nWe recommend you use an [OpenAPI SDK generator](https://openapi.tools/#sdk) to create a client library in your programming language,\nbut you can also use this documentation to make HTTP calls directly.\n\n> **Compatibility note**: We aim to keep wire compatibility whenever we update the API, but parts of the specification may occasionally be refactored.\n  If you use an SDK generator, your code may require minor changes between versions.\n"
  version: '1.1'
  termsOfService: https://www.slashid.dev/terms-of-use/
  contact:
    name: API Support
    email: contact@slashid.dev
servers:
- url: https://api.slashid.com
  description: Production
- url: https://api.sandbox.slashid.com
  description: Sandbox
security:
- ApiKeyAuth: []
tags:
- name: Organizations
paths:
  /persons/{person_id}:
    parameters:
    - $ref: '#/components/parameters/PersonIDPathParam'
    - $ref: '#/components/parameters/OrgIDHeader'
    delete:
      operationId: DeletePersonsPersonId
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      x-manager-rbac-allowed-groups: admin
      tags:
      - Organizations
      summary: Delete a person from an organization
      description: 'Remove the person, specified by its ID, from the organization.


        Note that access to all the attributes associated with this person will be permanently revoked.'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /persons/{person_id}/organizations:
    parameters:
    - $ref: '#/components/parameters/PersonIDPathParam'
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetPersonsPersonIdOrganizations
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Organizations
      summary: Retrieve the list of person's organizations
      description: "Retrieve details of all the organizations a person belongs to, including:\n - The organization of the request: the person must be a member of the organization you authenticate\n   with for you to be allowed to retrieve this list\n - Any sub- and super-organizations that share the person pool with the organization of the request:\n   A hierarchy of organizations can be created using [this API endpoint](/docs/api/post-organizations-suborganizations).\n   When organizations are configured to share a person pool, if the same person registers with multiple organizations\n   in the pool using the same handle, all organizations will see the same person ID for that person.\n"
      parameters:
      - $ref: '#/components/parameters/GetPersonsPersonIdOrganizationsFilterQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/GetPersonOrganizationsResponse'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /organizations:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetOrganizations
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Organizations
      summary: Retrieve information about an organization
      description: 'Retrieve information about which other organizations the given shares persons and groups with.

        '
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/OrganizationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: DeleteOrganizations
      x-rbac-enabled: false
      tags:
      - Organizations
      summary: Delete an organization
      description: 'Delete a non-root, leaf organization, including all its persons memberships and their groups memberships and attributes.

        '
      parameters:
      - $ref: '#/components/parameters/RequiredConsistencyHeader'
      - $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
      - $ref: '#/components/parameters/DeleteSuborganizationOptionalQueryParam'
      - $ref: '#/components/parameters/ConfirmationTimestampQueryParam'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
  /organizations/suborganizations:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetOrganizationsSuborganizations
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Organizations
      summary: List suborganizations
      description: 'Retrieve a list of all descendant organizations.

        '
      parameters:
      - $ref: '#/components/parameters/OrganizationsFilterQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      type: array
                      items:
                        $ref: '#/components/schemas/OrganizationID'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: PostOrganizationsSuborganizations
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Organizations
      summary: Create a suborganization
      description: 'Create a new organization subordinate to your organization.

        '
      parameters:
      - $ref: '#/components/parameters/RequiredConsistencyHeader'
      - $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuborganizationCreateRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/OrganizationCreateResponse'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
  /organizations/api-keys:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    - $ref: '#/components/parameters/RequiredConsistencyHeader'
    - $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
    put:
      operationId: PutOrganizationsApiKeys
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Organizations
      summary: Generate a new API key for the specified organization
      description: A new API key is created and returned. The previous API key will no longer be valid after this.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/OrganizationsPutAPIKeyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
  /organizations/config:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetOrganizationsConfig
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member,impersonator,saml-admin,uar-certifier,uar-campaign-manager,cs-id-verifier
      tags:
      - Organizations
      summary: Get organization config
      description: Get the current configuration for your organization
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/OrganizationConfig'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
    patch:
      operationId: PatchOrganizationsConfig
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin
      tags:
      - Organizations
      summary: Update organization config
      description: 'Modify the configuration for your organization.


        The token duration determines the number of seconds a token issued by SlashID will be valid for. If not set, or set to 0, the default duration of 24 hours will be used for all tokens.


        The groups claim name determines the name of the claim in the token payload where a user''s groups are found. If not set, or set to the empty string, the default claim name `groups` will be used for all tokens.

        '
      parameters:
      - $ref: '#/components/parameters/RequiredConsistencyHeader'
      - $ref: '#/components/parameters/RequiredConsistencyTimeoutHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationConfigPatchRequest'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /organizations/quota/current-tier:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetOrganizationsQuotaCurrentTier
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Organizations
      summary: Get current pricing tier details.
      description: This returns the quotas associated with your organization's current pricing tier.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/PricingTierConstraints'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
  /organizations/quota/all-tiers:
    get:
      operationId: GetOrganizationsQuotaAllTiers
      tags:
      - Organizations
      summary: Get details on all pricing tiers.
      description: This returns the quotas for each available pricing tier.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      type: array
                      items:
                        $ref: '#/components/schemas/PricingTierConstraints'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
  /organizations/quota/usage:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetOrganizationsQuotaUsage
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Organizations
      summary: Get resource usage for the organization hierarchy.
      description: This returns the resources used by your organization and its suborganizations. This can be used to evaluate the need for a tier upgrade.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      $ref: '#/components/schemas/OrganizationUsageDetails'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
  /organizations/attribute-buckets:
    parameters:
    - $ref: '#/components/parameters/OrgIDHeader'
    get:
      operationId: GetOrganizationsAttributeBuckets
      x-rbac-enabled: true
      x-rbac-allowed-groups: admin,member
      tags:
      - Organizations
      summary: List organization's attribute buckets
      description: Get a list of available attribute buckets for your organization
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/APIResponseBase'
                - type: object
                  properties:
                    result:
                      type: array
                      items:
                        $ref: '#/components/schemas/AttributeBucket'
                  required:
                  - result
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  parameters:
    RequiredConsistencyHeader:
      name: SlashID-Required-Consistency
      in: header
      description: 'The consistency level required for this request. If the consistency level is not achieved within the timeout, the request will fail with a 408 Request Timeout error.

        408 Request Timeout error indicates that request was not handled within the timeout, but it may still be handled after request timeout.

        Allowed values: * `local_region`: Wait while the request executes in the local region. * `all_regions`: Wait while the request executes across all regions.

        You can learn more about our replication model on our [Cross-region Replication Model](/docs/access/concepts/replication) page.

        '
      schema:
        type: string
        enum:
        - local_region
        - all_regions
        default: local_region
    OrgIDHeader:
      name: SlashID-OrgID
      in: header
      schema:
        type: string
      required: true
      description: The organization ID
      example: af5fbd30-7ce7-4548-8b30-4cd59cb2aba1
    GetPersonsPersonIdOrganizationsFilterQueryParam:
      in: query
      name: filter
      schema:
        type: string
      description: A filter to be applied to the result list, using the [SCIM 2.0 Filter syntax](https://www.rfc-editor.org/rfc/rfc7644#section-3.4.2.2).
      examples:
        permission_write:
          summary: Returns only persons with 'write' permission.
          value: permission eq "write"
    ConfirmationTimestampQueryParam:
      in: query
      name: confirmation_timestamp
      schema:
        type: string
        description: RFC3339 timestamp. Must be between -60s and -10s from the current time to be accepted by the endpoint.
        format: date-time
      required: false
    RequiredConsistencyTimeoutHeader:
      name: SlashID-Required-Consistency-Timeout
      in: header
      description: 'The maximum amount of seconds to wait for the requested consistency level to be achieved. If the consistency level is not achieved within this time, the request will fail with a 408 Request Timeout error.

        408 Request Timeout error indicates that request was not handled within the timeout, but it may still be handled after request timeout.

        You can learn more about our replication model on our [Cross-region Replication Model](/docs/access/concepts/replication) page.

        '
      schema:
        type: integer
        default: 30
        maximum: 120
        minimum: 1
    OrganizationsFilterQueryParam:
      in: query
      name: filter
      schema:
        type: string
      description: A filter to be applied to the result list, using the [SCIM 2.0 Filter syntax](https://www.rfc-editor.org/rfc/rfc7644#section-3.4.2.2).
      examples:
        org_name_eq:
          summary: Returns only organizations named exactly "my_org"
          value: name eq "my_org"
        org_name_co:
          summary: Returns only organizations with the string "some_str" in the name
          value: name co "some_str"
        org_name_sw:
          summary: Returns only organizations with name starting in "my_prefix"
          value: name sw "my_prefix"
        org_id_eq:
          summary: Returns only the organization with the specified ID, if it exists
          value: id eq "0be15c7a-a72d-47c4-ab9a-9a88bac3416d"
        parent_org_id_eq:
          summary: Returns only organizations children of the org with the specified ID
          value: parent_org_id eq "0be15c7a-a72d-47c4-ab9a-9a88bac3416d"
    DeleteSuborganizationOptionalQueryParam:
      in: query
      name: delete_suborganizations
      schema:
        type: boolean
        description: Whether to delete suborganizations of the organization being deleted. If this option is provided a valid `confirmation_timestamp` param is also required for the operation to proceed.
      required: false
    PersonIDPathParam:
      name: person_id
      description: The person ID
      example: 903c1ff9-f2cc-435c-b242-9d8a690fcf0a
      in: path
      required: true
      schema:
        type: string
  responses:
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIResponseBase'
    NoContent:
      description: No content
    PreconditionFailed:
      description: Precondition Failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIResponseBase'
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIResponseBase'
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIResponseBase'
    PaymentRequired:
      description: Pricing Tier Violation - operation violated the limits specified in its pricing tier.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIResponseBase'
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIResponseBase'
  schemas:
    Bytes:
      type: string
    PricingTierConstraints:
      type: object
      description: 'Details of the constraints applied to a specific pricing tier.

        '
      required:
      - name
      - custom_templates_allowed
      - nhi_external_connections_allowed
      properties:
        name:
          $ref: '#/components/schemas/PricingTier'
        custom_templates_allowed:
          description: Indicates if custom email and SMS message templates are allowed
          type: boolean
        nhi_external_connections_allowed:
          description: Indicates if external connections to non-human identity sources are allowed
          type: boolean
        max_suborganizations:
          description: Indicates the maximum number of the suborganizations in the hierarchy, not including the root organization. `null` indicates no limit.
          type: integer
          format: int64
        max_persons:
          description: Indicates the maximum number of persons allowed, including all suborganizations in the hierarchy. `null` indicates no limit.
          type: integer
          format: int64
        max_groups:
          description: Indicates the maximum number of groups allowed, including all suborganizations in the hierarchy. `null` indicates no limit.
          type: integer
          format: int64
    OrganizationResponse:
      allOf:
      - $ref: '#/components/schemas/Organization'
      - type: object
        required:
        - persons_pool_org_ids
        - group_pool_org_ids
        properties:
          parent_id:
            description: The ID of the parent organization.
            $ref: '#/components/schemas/OrganizationID'
          persons_pool_org_ids:
            description: The list of organizations or suborganizations that share user identities with this organization
            type: array
            items:
              $ref: '#/components/schemas/OrganizationID'
          group_pool_org_ids:
            description: The list of organizations or suborganizations that share user groups with this organization
            type: array
            items:
              $ref: '#/components/schemas/OrganizationID'
          inherits_rbac_pools:
            type: boolean
    PersonHandle:
      required:
      - type
      - value
      type: object
      properties:
        type:
          $ref: '#/components/schemas/PersonHandleType'
        value:
          type: string
          example: user@user.com
    GetPersonOrganizationsResponse:
      type: array
      items:
        $ref: '#/components/schemas/OrganizationDetails'
    OrganizationDetails:
      allOf:
      - $ref: '#/components/schemas/Organization'
      - type: object
        properties:
          managed_organizations:
            type: array
            items:
              $ref: '#/components/schemas/Organization'
    AttributePermissions:
      type: string
      description: The access level for end-users to attributes in this bucket.
      enum:
      - no_access
      - read_only
      - read_write
    PricingTier:
      type: string
      description: 'The tier associated with a root organization.


        Your organization may be subject to various constraints depending on its

        tier, such as maximum number of users, rate-limits, etc.

        '
      enum:
      - free-trial
      - professional
      - enterprise
      - enterprise-with-nhi
      - identity-protection
    OrganizationUsageDetails:
      type: object
      description: 'Details of how many suborganization/persons/groups have been used by this organization hierarchy.

        '
      required:
      - num_suborganizations
      - num_persons
      - num_groups
      properties:
        pricing_tier_details:
          $ref: '#/components/schemas/PricingTierConstraints'
        num_suborganizations:
          description: Indicates the number of the suborganizations in the hierarchy, not including the root organization.
          type: integer
          format: int64
        num_persons:
          description: Indicates the number of persons, including all suborganizations in the hierarchy.
          type: integer
          format: int64
        num_groups:
          description: Indicates the groups, including all suborganizations in the hierarchy.
          type: integer
          format: int64
    FactorMethod:
      type: string
      description: Allowed login factor
      enum:
      - webauthn
      - email_link
      - sms_link
      - otp_via_sms
      - otp_via_email
      - totp
      - oidc
      - saml
      - api
      - direct_id
      - password
      - impersonate
      - anonymous
    AttributeSharingScope:
      type: string
      description: The scope in which attributes in this bucket are available
      enum:
      - organization
      - person_pool
    APIResponseBase:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/APIMeta'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/APIResponseError'
    APIPagination:
      type: object
      required:
      - limit
      - offset
      - total_count
      properties:
        limit:
          type: integer
        offset:
          type: integer
        total_count:
          type: integer
          format: int64
    GlobPattern:
      type: string
      description: A glob pattern
      example: '*@example.com'
    PersonHandleType:
      type: string
      enum:
      - email_address
      - phone_number
      - username
      example: email_address
    APICursorPagination:
      type: object
      required:
      - limit
      - cursor
      - total_count
      properties:
        limit:
          type: integer
        cursor:
          type: string
        total_count:
          type: integer
          format: int64
    OrganizationCreateResponse:
      allOf:
      - $ref: '#/components/schemas/Organization'
      - type: object
        required:
        - api_key
        properties:
          api_key:
            $ref: '#/components/schemas/Bytes'
    OrganizationID:
      type: string
    OrganizationConfig:
      type: object
      description: Configuration values for an organization. Note that some values are read-only.
      properties:
        pricing_tier:
          $ref: '#/components/schemas/PricingTier'
        from_email:
          type: string
          description: 'The email address from which authentication emails are sent.


            Empty means SlashID''s default e-mail address will be used.


            This is set during onboarding.

            '
        from_phone_number_sms:
          type: string
          description: 'The phone number from which authentication SMS messages are sent.


            Empty means SlashID''s default phone numbers will be used.


            This is set during onboarding.

            '
        token_duration:
          type: integer
          description: The number of seconds before a token expires.
        groups_claim_name:
          type: string
          description: The name of the JWT claim holding the list of groups for the authenticated user identified in the token.
          example: dev.slashid.groups
        requires_manual_approval:
          type: boolean
          description: If true, new users are deactivated until the organization admin sets the person's `active` field.
        deny_self_registration:
          type: boolean
          description: If true, new users can only be created by the organization admin
        allowed_factor_methods:
          type: array
          description: 'Only allow authentication using the specified factor methods.


            Empty means all supported factors are enabled.


            This configuration doesn''t affect API and DirectID authentications.

            '
          example:
          - sms_link
          - email_link
          - webauthn
          items:
            $ref: '#/components/schemas/FactorMethod'
        authn_link_allowed_redirect_uris:
          type: array
          maxItems: 8
          description: 'The URIs to which users can be redirected after authenticating with an email/SMS link.


            It can''t be an IP, nor contain query parameters or fragments. We advise that it''s an

            HTTPS URI but we don''t require it. Custom schemes are allowed.

            '
          example:
          - https://slashid.com
          - http://localhost:8080/a-path
          - com.slashid://example
          items:
            type: string
        new_person_handle_patterns:
          type: array
          description: Only allow registration of new persons with a handle matching one of the patterns.
          example:
          - '*@example.com'
          - +1*
          items:
            $ref: '#/components/schemas/GlobPattern'
        sudo_mode_duration:
          type: integer
          description: The number of seconds, after users authenticate, during which they can perform sensitive actions.
        authn_redirect_page_ui_config:
          $ref: '#/components/schemas/AuthnRedirectPageUIConfig'
        canonical_identity_ai_matching_enabled:
          type: boolean
          description: 'If true (default), uses AI-based matching for canonical identities which provides

            higher accuracy through fuzzy matching and semantic analysis.

            If false, uses deterministic field-level matching based on exact email/identifier matches,

            which may result in more missed matches and require more manual management.

            '
          default: true
      required:
      - from_email
      - from_phone_number_sms
      - token_duration
      - groups_claim_name
      - requires_manual_approval
      - deny_self_registration
      - allowed_factor_methods
      - authn_link_allowed_redirect_uris
      - new_person_handle_patterns
      - sudo_mode_duration
    APIResponseError:
      type: object
      properties:
        httpcode:
          type: integer
        message:
          type: string
    APIMeta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/APIPagination'
        cursor_pagination:
          $ref: '#/components/schemas/APICursorPagination'
    AttributeBucket:
      type: object
      description: An attribute bucket with access settings
      required:
      - name
      - sharing_scope
      - end_user_permissions
      properties:
        name:
          type: string
          description: The name of the attribute bucket
        sharing_scope:
          $ref: '#/components/schemas/AttributeSharingScope'
        owner_organization_id:
          $ref: '#/components/schemas/OrganizationID'
        end_user_permissions:
          $ref: '#/components/schemas/AttributePermissions'
    OrganizationConfigPatchRequest:
      type: object
      description: Request for updating organization configuration values.
      properties:
        token_duration:
          type: integer
          description: The number of seconds before a token expires
        groups_claim_name:
          type: string
          description: The name of the JWT claim holding the list of groups for the authenticated user identified in the token
          example: dev.slashid.groups
        requires_manual_approval:
          type: boolean
          description: If true, new users are deactivated until the organization admin sets the person's `active` field.
        deny_self_registration:
          type: boolean
          description: If true, new users can only be created by the organization admin
        allowed_factor_methods:
          type: array
          description: 'Only allow authentication using the specified factor methods.


            Empty means all supported factors are enabled.


            This configuration doesn''t affect API and DirectID authentications.

            '
          example:
          - sms_link
          - email_link
          - webauthn
          items:
            $ref: '#/components/schemas/FactorMethod'
        authn_link_allowed_redirect_uris:
          type: array
          description: 'The URIs to where users can be redirected after authenticating with an email/SMS link.

            '
          items:
            type: string
        new_person_handle_patterns:
          type: array
          description: Only allow registration of new persons with a handle matching one of the patterns
          example:
          - '*@example.com'
          - +1*
          items:
            $ref: '#/components/schemas/GlobPattern'
        sudo_mode_duration:
          type: integer
          description: The number of seconds, after users authenticate, during which they can perform sensitive actions. Negative values will revert this property to its default (15 minutes).
        authn_redirect_page_ui_config:
          $ref: '#/components/schema

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