> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oleria.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List

> Returns a page of assigned applications. Pass `pageToken` from the previous response's `nextPageToken` to fetch the next page. A page can be empty while the results are still being prepared. Keep requesting pages until the response has no `nextPageToken`. Requires the `https://devx.{environment}.oleria.io/read` scope.



## OpenAPI

````yaml /developer-docs/api-reference/oleria-public-api-1.0.0.yaml get /v1/assigned-applications
openapi: 3.0.3
info:
  title: Oleria Public API
  version: 1.0.0
  description: >-
    REST API for Oleria's identity and access data. Each resource is a
    collection exposing list and get operations; responses return the complete
    object. Where Oleria can change what it reports, the change is a method on
    the same resource: disabling an account is `POST /v1/accounts/{id}/disable`,
    and membership is a sub-resource asserted with `PUT` and removed with
    `DELETE`. Those changes are applied in the source application
    asynchronously: each returns a job under `/v1/action-jobs` that reports the
    outcome for every target it affected, and whether Oleria's own data reflects
    it yet. Authenticate with OAuth 2.0 client credentials and send the access
    token as `Authorization: Bearer <token>`.
servers:
  - url: https://devx.{environment}.oleria.io
    description: Oleria API server.
    variables:
      environment:
        default: prod
        description: >-
          Your Oleria deployment, for example `acme` for
          `https://devx.acme.oleria.io`. Substitute it in the OAuth scope names
          as well, since OpenAPI applies a server variable to the URL only and
          the scopes are published with the placeholder still in them.
security: []
paths:
  /v1/assigned-applications:
    get:
      tags:
        - Assigned applications
      summary: List
      description: >-
        Returns a page of assigned applications. Pass `pageToken` from the
        previous response's `nextPageToken` to fetch the next page. A page can
        be empty while the results are still being prepared. Keep requesting
        pages until the response has no `nextPageToken`. Requires the
        `https://devx.{environment}.oleria.io/read` scope.
      operationId: ListAssignedApplications
      parameters:
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/pageToken'
        - $ref: '#/components/parameters/applicationInstanceId'
      responses:
        '200':
          description: A page of assigned applications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignedApplicationList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - oauth2:
            - https://devx.{environment}.oleria.io/read
components:
  parameters:
    pageSize:
      name: pageSize
      in: query
      description: Maximum items per page.
      schema:
        type: integer
        format: int32
        default: 50
        minimum: 1
        maximum: 200
    pageToken:
      name: pageToken
      in: query
      description: >-
        Opaque page token from the previous response's `nextPageToken`. Omit it
        for the first page; pass it back exactly as received. Do not parse or
        construct it.
      schema:
        type: string
    applicationInstanceId:
      name: applicationInstanceId
      in: query
      description: >-
        Scope the list to a single application instance, identified by its id
        (UUID). An application instance is one connected integration in your
        tenant: a specific Okta, Workday, and so on. Omit it to list across all
        of your instances.
      schema:
        type: string
        format: uuid
  schemas:
    AssignedApplicationList:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Oleria_AssignedApplication'
        nextPageToken:
          type: string
          description: >-
            Opaque token for the next page; pass it back as `pageToken`. Present
            whenever more pages remain, including when this page is empty
            because the results are still being prepared, and absent only once
            the collection is fully returned. Do not parse or construct it.
    Oleria_AssignedApplication:
      type: object
      description: >
        An Oleria AssignedApplication represents an IDP's knowledge of an
        application —

        emitted by Okta, Entra, PingOne, and similar identity providers.

        Multiple Oleria AssignedApplication nodes may exist for the same
        deployment, one per IDP.

        Each connects to the same Oleria ApplicationDeployment via Oleria
        ApplicationReferencedBy.

        The deployment node is the merge point for conflicting signals across
        IDPs.

        enrichedSamlEntityId and enrichedOAuthClientId carry plain-text auth
        identity signals

        sourced from the IDP's SSO configuration.
      allOf:
        - $ref: '#/components/schemas/AssignedApplication'
        - $ref: '#/components/schemas/Oleria_AssignedApplicationGlobalIdentifiers'
        - $ref: '#/components/schemas/Oleria_AssignedApplicationEnrichedInformation'
        - $ref: '#/components/schemas/Oleria_AssignedApplicationAnalyticsInformation'
        - $ref: >-
            #/components/schemas/Oleria_AssignedApplicationSystemOfRecordInformation
        - required:
            - oleriaObjectMetadata
          type: object
          properties:
            oleriaObjectMetadata:
              $ref: '#/components/schemas/Oleria_ObjectMetadata'
    ErrorResponse:
      type: object
      description: >-
        Error envelope. `code` is a stable machine-readable identifier;
        `message` is human-readable.
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Stable, machine-readable error code (SCREAMING_SNAKE_CASE).
          example: NOT_FOUND
        details:
          type: object
          description: Optional free-form context for debugging.
          additionalProperties: true
        message:
          type: string
          description: Human-readable description of the error.
          example: No resource with the given id.
    AssignedApplication:
      required:
        - id
        - name
        - objectMetadata
      type: object
      properties:
        authenticationRequirements:
          $ref: '#/components/schemas/AuthenticationRequirements'
        id:
          $ref: '#/components/schemas/LocallyUniqueAssignedApplicationId'
        labels:
          type: array
          items:
            $ref: '#/components/schemas/MetadataItem'
        name:
          type: string
          description: The name of the assigned application
          example: GitHub Enterprise Cloud
        objectDirectoryContainerFederation:
          $ref: '#/components/schemas/EntityIdentifierFederationInformation'
        objectDirectoryContainerId:
          $ref: '#/components/schemas/LocallyUniqueObjectDirectoryId'
        objectMetadata:
          $ref: '#/components/schemas/ObjectMetadata'
        oauthClientId:
          type: string
          description: >-
            Plain-text OAuth client ID for this application instance.
            Informational — authenticationRequirements.authenticationKeys
            carries the authoritative hashed representation used for matching.
            Emitted alongside the hashed representation to support display and
            diagnostics.
          example: 1234567890abcdef.apps.googleusercontent.com
        samlEntityId:
          type: string
          description: >-
            Plain-text SAML service provider entity ID for this application
            instance. Informational —
            authenticationRequirements.authenticationKeys carries the
            authoritative hashed representation used for matching. Emitted
            alongside the hashed representation to support display and
            diagnostics.
          example: https://github.com/enterprises/acme-corp
        vendorName:
          type: string
          description: >-
            Name of the vendor for the enterprise application or identity
            provider product
          example: Microsoft
      description: >-
        An AssignedApplication object represents an enterprise SaaS application
        that has its access managed by an identity provider in the Oleria
        system. The identity provider may enumerate access to applications that
        are integrated or have not yet been integrated with Oleria (see the
        relationship definition UserGroupEntitledToAssignedApplication).
    Oleria_AssignedApplicationGlobalIdentifiers:
      required:
        - globalId
      type: object
      properties:
        globalAuthenticationRequirements:
          $ref: '#/components/schemas/AuthenticationRequirements'
        globalId:
          type: string
          description: >-
            Opaque platform-assigned identifier for this assigned application
            node.
        globalObjectDirectoryContainerId:
          type: string
          description: Global ID of the ObjectDirectory (IDP) that emitted this assignment.
      description: >
        Global identifiers translated from AssignedApplication local identifiers
        to be composed on Oleria AssignedApplication
    Oleria_AssignedApplicationEnrichedInformation:
      type: object
      properties:
        enrichedOAuthClientId:
          type: string
          description: >
            Plain-text OAuth client ID from the IDP configuration. Key
            resolution signal

            (resolution priority 4). Promoted to Oleria
            ApplicationDeployment.enrichedOAuthClientId.
        enrichedResolvedDeploymentId:
          type: string
          description: >
            Global ID of the Oleria ApplicationDeployment this node resolved to.
            Denormalized cache of the

            Oleria ApplicationReferencedBy edge, which is authoritative. Omitted
            when unresolved — surfaces

            in admin UX for review.
        enrichedSamlEntityId:
          type: string
          description: >
            Plain-text SAML entity ID from the IDP SSO configuration. Key
            resolution signal

            (resolution priority 3). Promoted to Oleria
            ApplicationDeployment.enrichedSamlEntityId

            from the most authoritative source.
      description: >
        Enriched information derived from a combination of AssignedApplication
        data, additional identity signals
    Oleria_AssignedApplicationAnalyticsInformation:
      type: object
      description: >
        Analytics information calculated from the identity security graph and
        added to the assigned application
    Oleria_AssignedApplicationSystemOfRecordInformation:
      type: object
      description: >
        System of Record information associated with an assigned application and
        managed in Oleria
    Oleria_ObjectMetadata:
      type: object
      properties:
        enrichmentVersion:
          type: string
        generatedTime:
          type: string
          format: date-time
      description: >
        object metadata supersets object metadata with platform enrichment
        provenance — the enrichment version and the time the record was
        generated
    AuthenticationRequirements:
      type: object
      required:
        - isMFAAuthority
        - isSSOBasedMFARequired
      properties:
        authenticationKeys:
          type: array
          description: >
            Each array item is a base64 encoded SHA256 hash of authentication
            configuration properties.The authenticationKeys property is used by
            Oleria to match enterprise application IntegratedApplication objects
            with corresponding identity provider configured AssignedApplication
            objects assigned to accounts or groups. When these objects are
            connected and there's a match in authenticationKeys and federated
            identity, the Oleria platform will connect
            [Account](#/components/schemas/Account) objects that have an
            Identity
            [AccountAuthenticationFunction](#/components/schemas/AccountAuthenticationFunction)
            with their corresponding [Account](#/components/schemas/Account)
            objects that have an ApplicationAccount
            [AccountAuthenticationFunction](#/components/schemas/AccountAuthenticationFunction),
            and indicate an SSO-based login flow is available. The following
            protocol configurations are supported:
              1. SAML configurations encode the SAML certificate raw public key info
              2. First party configurations e.g. Microsoft Entra to Microsoft 365 Apps encode the app type + the first party instance specific instance key with a ":" delimiter
              3. OIDC configurations encode the lowercased issuer URL (with trailing slash appended) and the client ID, joined by a "," delimiter, SHA256 hashed and base64 (standard encoding) encoded. Example input: "https://login.example.com/tenant/v2.0/,client-id-abc"
              4. RADIUS configuration encoding is TBD
          example:
            - XD+NWux+oeqdAa1eUPtNC06g/HtrzM6AbNiZU2MhHSM=
          items:
            type: string
        adaptiveAuthenticationMethodSelectionPolicy:
          type: array
          items:
            $ref: '#/components/schemas/AdaptiveAuthenticationMethodSelectionPolicy'
        authenticationMethodSelectionPolicy:
          $ref: '#/components/schemas/AuthenticationMethodSelectionPolicy'
        availableAuthenticationMethods:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticationMethod'
        enforcedAuthenticationMethods:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticationMethod'
        isMFAAuthority:
          type: boolean
          description: >-
            Is this the MFA authority for authentication associated with this
            application. If false, then a connected identity provider is usually
            the MFA authority
          example: true
        isSSOBasedMFARequired:
          type: boolean
          description: >-
            Does that application require MFA to be done at the configured IDP
            to allow login
          example: false
        passwordPolicy:
          $ref: '#/components/schemas/PasswordPolicy'
        secondaryFactorRequirements:
          $ref: '#/components/schemas/MFARequirements'
        ssoExclusions:
          type: array
          description: >
            An array of account ids for accounts that are excluded from SSO
            requirements. These are typically used in the context of break glass
            scenarios
          items:
            $ref: '#/components/schemas/LocallyUniqueAccountId'
      description: >-
        AuthenticationRequirements are used to specify authentication
        requirement configuration for Oleria integrated applications as
        described by their corresponding IntegratedApplication object
    LocallyUniqueAssignedApplicationId:
      type: string
      description: >
        An identifier for an
        [AssignedApplication](#/components/schemas/AssignedApplication) object
        in the Oleria system. Oleria converts these identifiers to global ids so
        they can be unique in the context of the global system graph. It is
        important for this identifier to be based on an underlying persistent
        and reusable application id so connections to the object are robust to
        metadata changes and other relevant operations.
      example: 0oa1qcscnzkl4DTym1d8 (Okta)
    MetadataItem:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        namespace:
          type: string
        type:
          $ref: '#/components/schemas/MetadataValueType'
        value:
          type: object
    EntityIdentifierFederationInformation:
      type: object
      required:
        - isFederated
      properties:
        authenticationKey:
          type: string
        isFederated:
          type: boolean
      description: |
        Federation information used when specifying an _EntityIdentifier_
    LocallyUniqueObjectDirectoryId:
      type: string
      description: >
        An identifier (unique to the integrated application) for a
        [ObjectDirectory](#/components/schemas/ObjectDirectory) object
        represented in the Oleria system. Oleria converts these identifiers to
        global ids so they can be unique in the context of the global system
        graph. It is important for this identifier to be based on an underlying
        persistent and reusable application or identity provider id so
        connections to the object are robust to metadata changes and other
        relevant operations      
      example: >-
        repo:R_kgDOLL0doQ (GitHub based on repository node identifier),
        1BUxdX4M-H7X8GKRgTjprJS8fjY_Ij1giE82lQlny2kc (Google Drive based on file
        id)
    ObjectMetadata:
      required:
        - ApplicationInstanceId
        - GeneratedTime
      type: object
      properties:
        ApplicationInstanceId:
          type: string
        GeneratedTime:
          type: string
          format: date-time
        Profile:
          $ref: '#/components/schemas/SchemaProfile'
        ObjectOrRelationshipType:
          type: string
      description: >
        The _ObjectMetadata_ structure defines metadata that applies to every
        object and relationship, and is usually managed by the system that
        receives the data
    AdaptiveAuthenticationMethodSelectionPolicy:
      type: object
      properties:
        policy:
          $ref: '#/components/schemas/AuthenticationMethodSelectionPolicy'
        riskLevel:
          $ref: '#/components/schemas/AuthenticationRiskLevel'
      description: |
        Defines selection policies for an authentication risk level
    AuthenticationMethodSelectionPolicy:
      type: object
      properties:
        accountConditions:
          $ref: '#/components/schemas/ConditionSpecification'
        assignedApplicationConditions:
          $ref: '#/components/schemas/ConditionSpecification'
        authorizedLocations:
          $ref: '#/components/schemas/AuthorizedLocationPolicy'
        excludedAuthenticationMethods:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticationMethod'
        includedAuthenticationMethods:
          type: array
          items:
            $ref: '#/components/schemas/AuthenticationMethod'
      description: >
        This policy expresses the selection criteria used by an IDP or MFA
        provider to select authentication methods for use at authentication time
        (usually as a subset of the enforced authentication methods)
    AuthenticationMethod:
      type: object
      properties:
        type:
          type: string
        description:
          type: string
      description: >
        Authentication methods describe how an
        [Account](#/components/schemas/Account) is required to authenticate to
        an enterprise application or identity provider.
        [Account](#/components/schemas/Account) include a list of enrolled
        authentication methods for the account, and
        [Activity](#/components/schemas/Activity) will include the
        authentication method used for login and other events. The type
        [AuthenticationMethodType](#/components/schemas/AuthenticationMethodType)
        is a string that can be one of many different authentication methods
        recognized by Oleria
    PasswordPolicy:
      type: object
      required:
        - expirationLengthInDays
        - length
        - resetViaSelfServiceAllowed
        - reuseDisallowed
      properties:
        characters:
          type: array
          items:
            $ref: '#/components/schemas/PasswordCharacterTypes'
        expirationLengthInDays:
          type: integer
          description: A value of 0 indicates passwords never expire.
        length:
          type: integer
          description: A value of 0 indicates no minimum password length requirement.
        mfaRequirements:
          $ref: '#/components/schemas/MFARequirements'
        reuseDisallowed:
          type: boolean
        resetViaSelfServiceAllowed:
          type: boolean
        policyMetadata:
          type: array
          description: >-
            An array of additional metadata items associated with the permission
            specification
          items:
            $ref: '#/components/schemas/MetadataItem'
      description: >
        The set of rules used by an organization, department, group, etc. to
        ensure the creation and maintenance of secure passwords
    MFARequirements:
      type: string
      description: |
        MFA requirements for an [Account](#/components/schemas/Account)         
      example: Required
      enum:
        - Adaptive
        - EnrollmentRequired
        - Excluded
        - NotApplicable
        - NotRequired
        - Required
        - Unavailable
    LocallyUniqueAccountId:
      type: string
      description: >
        An identifier (unique to integrated application) for an
        [Account](#/components/schemas/Account) object represented in the Oleria
        system. Oleria converts these identifiers to global ids so they can be
        unique in the context of the global system graph. It is important for
        this identifier to be based on an underlying persistent and reusable
        application or identity provider id so connections to the object are
        robust to metadata changes and other relevant operations
      example: >-
        user:U_kgDOB7P6Rg (GitHub based on node identifier), 838439349399
        (Google Workspace based on user id), user:wiz-inc-4db1c46901 (GitHub
        based on app slug)
    MetadataValueType:
      type: string
      enum:
        - array_boolean
        - array_float32
        - array_float64
        - array_int32
        - array_int64
        - array_string
        - boolean
        - float32
        - float64
        - int32
        - int64
        - oleria_global_id
        - oleria_local_id
        - pem
        - property_bag
        - rfc3339_date
        - string
    SchemaProfile:
      type: string
      enum:
        - Account
        - Membership
        - Governance
        - Risk
        - Access
        - Detection
    AuthenticationRiskLevel:
      type: string
      enum:
        - Critical
        - Default
        - High
        - Low
        - Moderate
    ConditionSpecification:
      type: object
      properties:
        context:
          type: array
          description: Additional context used when evaluating the conditional access
          items:
            $ref: '#/components/schemas/MetadataItem'
        overrides:
          type: array
          items:
            $ref: '#/components/schemas/ConditionOverrideSpecifier'
        rootOperator:
          $ref: '#/components/schemas/ConditionOperator'
    AuthorizedLocationPolicy:
      type: object
      required:
        - isInherited
      properties:
        isInherited:
          type: boolean
          description: >
            When set to true this indicates that the location policy is
            inherited from another object, otherwise the location policy is
            directly specified
        policy:
          oneOf:
            - $ref: '#/components/schemas/AuthorizedEntityLocationPolicy'
            - $ref: '#/components/schemas/AuthorizedInheritedLocationPolicy'
      description: >
        _AuthorizedLocationPolicy_ is used to specify locations authorized for
        use by accounts, groups, roles, employees, departments, etc.
    PasswordCharacterTypes:
      type: string
      enum:
        - AlphaUppercase
        - AlphaLowercase
        - AlphaCaseInsensitive
        - Numeric
        - SpecialSymbolic
    ConditionOverrideSpecifier:
      type: string
      enum:
        - AllowAdmin
        - AllowAll
        - AllowAnonymous
        - DenyAdmin
        - DenyAll
        - DenyAnonymous
    ConditionOperator:
      type: object
      properties:
        operator:
          oneOf:
            - $ref: '#/components/schemas/ConditionArrayOperator'
            - $ref: '#/components/schemas/ConditionComparisonOperator'
            - $ref: '#/components/schemas/ConditionContentSearchOperator'
            - $ref: '#/components/schemas/ConditionGraphOperator'
            - $ref: '#/components/schemas/ConditionLogicalOperator'
            - $ref: '#/components/schemas/ConditionSecureScriptOperator'
        type:
          $ref: '#/components/schemas/ConditionOperatorType'
    AuthorizedEntityLocationPolicy:
      type: object
      required:
        - allowAll
      properties:
        allowAll:
          type: boolean
          description: |
            When set to true this indicates that all locations are authorized
        authorizedLocations:
          type: array
          description: >
            These are the locations authorized for use by the entity that has
            this policy. If none are specified then no locations are allowed. If
            any are specified and it is desirable for the _assignedLocations_ to
            be authorized, then they must be explicitly included in the array
          items:
            $ref: '#/components/schemas/LocationSpecification'
      description: >
        _AuthorizedEntityLocationPolicy_ is used to specify locations authorized
        for use by the specific entity that it is attached to
    AuthorizedInheritedLocationPolicy:
      type: object
      properties:
        sourceObjectType:
          $ref: '#/components/schemas/ObjectType'
        sourceObjectId:
          $ref: '#/components/schemas/LocallyUniqueId'
      description: >
        _AuthorizedInheritedLocationPolicy_ is used to specify an object that is
        the source for the location authorization data used by the specific
        entity the _AuthorizedInheritedLocationPolicy_ is attached to
    ConditionArrayOperator:
      type: object
      required:
        - isArrayGeneratingDynamicValue
      properties:
        isArrayGeneratingDynamicValue:
          type: boolean
        arrayOpKey:
          $ref: '#/components/schemas/ConditionKey'
        arrayOpType:
          $ref: '#/components/schemas/ConditionArrayOperatorType'
        arrayOpValue:
          oneOf:
            - $ref: '#/components/schemas/ConditionArrayStaticValues'
            - $ref: '#/components/schemas/DynamicConditionValue'
      description: >-
        Condition used to specify conditional access based on presence or
        absence of the key data in the given array of values
    ConditionComparisonOperator:
      type: object
      properties:
        comparisonOpKey:
          $ref: '#/components/schemas/ConditionKey'
        comparisonOpType:
          $ref: '#/components/schemas/ConditionComparisonOperatorType'
        comparisonOpValue:
          $ref: '#/components/schemas/ConditionValue'
      description: >-
        Condition used to specify conditional access based on key - value
        comparison
    ConditionContentSearchOperator:
      type: object
      required:
        - searchOpIsDynamicCondition
      properties:
        searchOpIsDynamicCondition:
          type: boolean
        searchOpValue:
          oneOf:
            - $ref: '#/components/schemas/DynamicContentCondition'
            - $ref: '#/components/schemas/StaticContentCondition'
      description: >-
        Condition used to specify conditional access based on data inside a
        resource instance
    ConditionGraphOperator:
      type: object
      properties:
        graphOpSource:
          $ref: '#/components/schemas/ConditionGraphOperatorEntityIdentifier'
        graphOpTargets:
          type: array
          items:
            $ref: '#/components/schemas/ConditionGraphOperatorEntityIdentifier'
        graphOpTypes:
          $ref: '#/components/schemas/ConditionGraphOperatorType'
      description: >-
        Condition used to specify conditional access based on graph entity
        relationships
    ConditionLogicalOperator:
      type: object
      properties:
        logicalOpOperands:
          type: array
          items:
            $ref: '#/components/schemas/ConditionOperator'
        logicalOpType:
          $ref: '#/components/schemas/ConditionLogicalOperatorType'
      description: >-
        Condition used to specify conditional access based on a logical (AND,
        OR, NOT, EXISTS, ORDERED) operation
    ConditionSecureScriptOperator:
      type: object
      properties:
        contentType:
          $ref: '#/components/schemas/SecureScriptContentType'
        context:
          type: array
          description: >-
            Additional context used when accessing the data referenced by the
            condition key e.g. Function key parameters
          items:
            $ref: '#/components/schemas/MetadataItem'
        executionEngine:
          type: string
        scriptContent:
          type: string
        version:
          type: string
      description: A condition used to specify a script based conditional access expression
    ConditionOperatorType:
      type: string
      description: Categories of operators that can be used with conditional expressions
      enum:
        - Array
        - Comparison
        - ContentSearch
        - Graph
        - Logical
        - SecureScript
    LocationSpecification:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/LocationSpecificationType'
        typeSpecificData:
          oneOf:
            - $ref: '#/components/schemas/NetworkLocationSpecification'
            - $ref: '#/components/schemas/PhysicalLocationSpecification'
    ObjectType:
      type: string
      description: >-
        The enumerated list of all Oleria objects used to describe and manage
        any customer application's identity security. The definition of each
        object describes its usage
      example: Account
      enum:
        - Account
        - AccountRole
        - Activity
        - AssignedApplication
        - Authenticator
        - AuthenticatorEnrollment
        - Department
        - DirectoryProvider
        - Employee
        - IntegratedApplication
        - None
        - ObjectDirectory
        - PermissionSet
        - Person
        - ResourceClass
        - ResourceInstance
        - RiskDefinition
        - RiskViolation
        - Role
        - UserGroup
    LocallyUniqueId:
      minLength: 1
      type: string
      description: >
        An identifier (unique to the integrated or assigned application) of any
        object or entity represented in the Oleria system as well as any
        relationship or connection among entities when they are represented in
        Oleria. Oleria converts these identifiers to global ids so they can be
        unique in the context of the global system graph. The full list of
        Oleria objects or entities is defined by the object-type enumeration,
        and the full list of relationships or connections is defined by the
        relationship-type enumeration
    ConditionKey:
      type: object
      properties:
        keySpecification:
          oneOf:
            - $ref: '#/components/schemas/ConditionKeyFunctionSpecifier'
            - $ref: '#/components/schemas/ConditionKeyObjectSpecifier'
        type:
          $ref: '#/components/schemas/ConditionKeyType'
        value:
          type: string
      description: >-
        Identifies the entity or function data used to evaluate the validity of
        a condition against the specified condition value
    ConditionArrayOperatorType:
      type: string
      description: Supported operators for array conditions
      enum:
        - In
        - NotIn
    ConditionArrayStaticValues:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/StaticConditionValue'
      description: Array of static values used as an operand in array conditions
    DynamicConditionValue:
      type: object
      properties:
        dynamicConditionValueContext:
          type: array
          description: >-
            This context can be passed to the function that resolves the dynamic
            specification to a static one
          items:
            $ref: '#/components/schemas/MetadataItem'
        dynamicConditionValueData:
          type: string
      description: >-
        Type for dynamic conditional access expression values. These will
        resolve to static ConditionValueTypes (or arrays of static
        ConditionValueTypes) by a relevant authorization function
    ConditionComparisonOperatorType:
      type: string
      description: Supported operators for comparison conditions
      enum:
        - Contains
        - DoesNotContain
        - Equal
        - GreaterThan
        - GreaterThanOrEqual
        - LessThan
        - LessThanOrEqual
        - NotEqual
    ConditionValue:
      type: object
      required:
        - isDynamic
      properties:
        data:
          oneOf:
            - $ref: '#/components/schemas/DynamicConditionValue'
            - $ref: '#/components/schemas/StaticConditionValue'
        isDynamic:
          type: boolean
      description: Typed condition value for static or dynamic values
    DynamicContentCondition:
      type: object
      required:
        - dynamicContentConditionCaseSensitive
        - dynamicContentConditionDiacriticSensitive
      properties:
        dynamicContentConditionCaseSensitive:
          type: boolean
        dynamicContentConditionDiacriticSensitive:
          type: boolean
        dynamicContentConditionLangage:
          type: string
        dynamicContentConditionResourceInstanceId:
          $ref: '#/components/schemas/LocallyUniqueResourceInstanceId'
        dynamicContentConditionSearch:
          $ref: '#/components/schemas/ConditionKey'
      description: >-
        A condition used to a target content search conditional access
        expression with a dynamic search string
    StaticContentCondition:
      type: object
      required:
        - staticContentConditionCaseSensitive
        - staticContentConditionDiacriticSensitive
      properties:
        staticContentConditionCaseSensitive:
          type: boolean
        staticContentConditionDiacriticSensitive:
          type: boolean
        staticContentConditionLanguage:
          type: string
        staticContentConditionResourceInstanceId:
          $ref: '#/components/schemas/LocallyUniqueResourceInstanceId'
        staticSearch:
          type: string
      description: >-
        A condition used to specify a target content search conditional access
        expression with a static search string
    ConditionGraphOperatorEntityIdentifier:
      type: object
      required:
        - isDynamicEntityIdentifier
      properties:
        isDynamicEntityIdentifier:
          type: boolean
        value:
          oneOf:
            - $ref: >-
                #/components/schemas/ConditionGraphOperatorConditionKeyEntityIdentifier
            - $ref: '#/components/schemas/EntityIdentifier'
      description: >-
        ConditionGraphOperatorEntityIdentifier is used to reference a entity
        (node) in the graph
    ConditionGraphOperatorType:
      type: string
      description: Supported operators for graph conditions
      enum:
        - AssignedAccessTo
        - MemberOf
    ConditionLogicalOperatorType:
      type: string
      description: Supported operators for logical conditions
      enum:
        - And
        - Exists
        - Not
        - Or
        - Ordered
    SecureScriptContentType:
      type: string
      description: Content types used to specify scripts for conditional access
      enum:
        - JavaScript
        - JSON
        - XML
    LocationSpecificationType:
      type: string
      enum:
        - Network
        - Physical
    NetworkLocationSpecification:
      type: object
      properties:
        ipAddressExclusions:
          type: array
          items:
            type: string
        ipAddressInclusions:
          type: array
          items:
            type: string
        name:
          type: string
        supplementaryInformation:
          $ref: '#/components/schemas/SupplementaryLocationInformation'
      description: >
        Specify a network location or zone with a name and a list of IP
        addresses or ranges (including in CIDR notation)
    PhysicalLocationSpecification:
      type: object
      properties:
        addressedObjectIdentifier:
          $ref: '#/components/schemas/AddressedObjectIdentifier'
        countryLevelInformation:
          $ref: '#/components/schemas/CountryLevelInformation'
        locality:
          $ref: '#/components/schemas/Locality'
        postcode:
          type: string
          description: |
            Postal code or ZIP code
          example: '98112'
        supplementaryInformation:
          $ref: '#/components/schemas/SupplementaryLocationInformation'
      description: >
        A subset of the ISO 19160-4:2023 delivery point specification. For
        context, the property examples reference the address - The Madrona
        Refuge Building, Suite 301, 1126 34th Avenue, Seattle, WA, 98112
    ConditionKeyFunctionSpecifier:
      type: object
      properties:
        parameters:
          type: array
          description: >-
            Optional parameters used when accessing the data referenced by the
            condition key e.g. Function key parameters
          items:
            $ref: '#/components/schemas/MetadataItem'
    ConditionKeyObjectSpecifier:
      type: object
      properties:
        name:
          type: string
      description: >-
        Contextual object specifier for a condition key that is derefencing its
        value from an object type
    ConditionKeyType:
      type: string
      description: >
        The following types of keys are used to specify conditional access
        expressions:

        1. A _Function_ key is used to identify a runtime function that will
        resolve to a value e.g. isLoggedIn, isImpersonatingUser, etc.

        2. A _Object_ key is used to identify a particular field on an object
        where the value of the field on the object is used to determine the
        validity of the condition
      enum:
        - Function
        - Object
    StaticConditionValue:
      type: object
      properties:
        staticConditionValueType:
          $ref: '#/components/schemas/ConditionValueType'
        staticConditionValueData:
          type: object
      description: Type for static conditional access expression values
    LocallyUniqueResourceInstanceId:
      type: string
      description: >
        An identifier (unique to the integrated application) for a
        [ResourceInstance](#/components/schemas/ResourceInstance) object
        represented in the Oleria system. Oleria converts these identifiers to
        global ids so they can be unique in the context of the global system
        graph. It is important for this identifier to be based on an underlying
        persistent and reusable application or identity provider id so
        connections to the object are robust to metadata changes and other
        relevant operations      
      example: >-
        repo:R_kgDOLL0doQ (GitHub based on repository node identifier),
        1BUxdX4M-H7X8GKRgTjprJS8fjY_Ij1giE82lQlny2kc (Google Drive based on file
        id)
    ConditionGraphOperatorConditionKeyEntityIdentifier:
      type: object
      properties:
        objectIdConditionKey:
          $ref: '#/components/schemas/ConditionKey'
        objectTypeConditionKey:
          $ref: '#/components/schemas/ConditionKey'
      description: >
        ConditionGraphOperatorConditionKeyEntityIdentifier is used to reference
        a entity (node) in the graph with
        [ConditionKey](#/components/schemas/ConditionKey)-based dynamic values
        for _objectId_ and _objectType_
    EntityIdentifier:
      type: object
      properties:
        federationInformation:
          $ref: '#/components/schemas/EntityIdentifierFederationInformation'
        objectId:
          $ref: '#/components/schemas/LocallyUniqueId'
        objectType:
          $ref: '#/components/schemas/ObjectType'
      description: >
        Used for typed indentification of an entity (node) in the graph with
        values for _objectId_ and _objectType_
    SupplementaryLocationInformation:
      type: object
      properties:
        geoLocation:
          $ref: '#/components/schemas/GeoLocation'
        additionalLocationMetadata:
          type: array
          items:
            $ref: '#/components/schemas/MetadataItem'
    AddressedObjectIdentifier:
      type: object
      properties:
        building:
          type: string
          description: >
            Element identifying the number or name and type of the location
            edifice or construction
          example: The Madrona Refuge Building
        door:
          type: string
          description: |
            Element identifying the apartment, room, or office
          example: Suite 301
        premisesIdentifier:
          type: string
          description: >
            Element designating the area or the object on an area associated
            with the location
          example: 1126 34th Avenue
      description: >
        Subset of an ISO 19160-4:2023 construct identifying a specific addess
        within a [Locality](#/components/schemas/Locality). For context, the
        property examples reference the address - The Madrona Refuge Building,
        Suite 301, 1126 34th Avenue, Seattle, WA, 98112
    CountryLevelInformation:
      type: object
      properties:
        countryCode:
          type: string
          description: >
            Element designating the ISO 3166-1 A-2 country code for the country,
            territory or area of geopolitical interest
          example: US
        countryName:
          type: string
          description: >
            Element designating the country, dependency, or area of geopolitical
            interest
          example: United States
        multiCountryRegion:
          type: string
          description: >
            Element indicating a region in which the country, territory, or area
            of geopolitical interest is located and by which it is potentially
            more effectively recognized
          example: North America
      description: >
        Subset of ISO 19160-4:2023 country level information. For context, the
        property examples reference the address - The Madrona Refuge Building,
        Suite 301, 1126 34th Avenue, Seattle, WA, 98112
    Locality:
      type: object
      properties:
        district:
          type: string
          description: >
            Element indicating the name of the area within or adjacent to the
            specified town
          example: Madrona (neighborhood in Seattle)
        region:
          type: string
          description: >
            Element specifying the geographic or administrative area of the
            country in which the town is situated
          example: Washington
        town:
          type: string
          description: >
            Element indicating the name of the populated place associated with
            the
            [LocationSpecification](#/components/schemas/LocationSpecification)
            in which this _Locality_ is being referenced
          example: Seattle
      description: >
        Subset of ISO 19160-4:2023 locality information identifying the
        geographical area. For context, the property examples reference the
        address - The Madrona Refuge Building, Suite 301, 1126 34th Avenue,
        Seattle, WA, 98112
    ConditionValueType:
      type: string
      description: >-
        Types for condition values used in specifying static conditional access
        expression values
      enum:
        - activity_type
        - boolean
        - float
        - int32
        - int64
        - object
        - object_type
        - relationship_type
        - string
    GeoLocation:
      type: object
      required:
        - latitude
        - longtitude
      properties:
        latitude:
          type: number
        longtitude:
          type: number
      description: Latitude and longtitude specification for a location
  responses:
    BadRequest:
      description: The request was malformed, for example an invalid cursor or page size.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: BAD_REQUEST
            message: The request was malformed.
    Unauthorized:
      description: Missing or invalid authentication token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: UNAUTHORIZED
            message: Missing or invalid authentication token.
    Forbidden:
      description: The token lacks the scope required for this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: FORBIDDEN
            message: The token lacks the required scope.
    TooManyRequests:
      description: Rate limit exceeded. Retry after the interval in the Retry-After header.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            minimum: 0
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: TOO_MANY_REQUESTS
            message: Rate limit exceeded. Retry after the specified interval.
    InternalError:
      description: An unexpected error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: INTERNAL_ERROR
            message: An unexpected error occurred.
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        OAuth 2.0 client-credentials flow. Request an access token from the
        token endpoint and send it as `Authorization: Bearer <token>`.
      flows:
        clientCredentials:
          tokenUrl: https://auth.prod.oleria.io/oauth/token
          scopes:
            https://devx.{environment}.oleria.io/delete: Irreversibly destroy an object in the source system.
            https://devx.{environment}.oleria.io/read: Read identity and access data, and the jobs that change it.
            https://devx.{environment}.oleria.io/write: >-
              Make reversible changes: grant, enable, assign, revoke and remove
              access.

````