openapi: 3.1.0
info:
  title: Access Management Administration
  description: |-
    The Access Management API controls roles and permissions within the ADB platform designated for software applications used by Apiture employees and Financial Institution (FI) administrators.

    Access roles are assigned to users to set the roles they may perform in the application, such as Viewer, Contributor, Analyst, Administrator, etc. Access roles are comprised of one or more access permissions. Access permissions grant software application users the ability to perform specific actions within the application, such as creating, reading, or updating application resources.

    Each application defines its own roles. Different applications may choose to use the same role names, but they are independent of one another. Thus, a user with the Administrator role in application A does not imply the user has the Administrator role in application B, or that those two Administrator roles share the same permissions.

    Granting authorization to use software applications is done through the identity provider and is out of scope for the Access Management Administration API.
  version: 0.3.1
  contact:
    name: Apiture
    url: https://developer.apiture.com/help/support/
    email: api@apiture.com
  termsOfService: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
  license:
    name: Apiture API License
    url: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
tags:
  - name: Access Management Administration
    description: Banking Access Management Administration
  - name: Software Applications
    description: Software Applications
  - name: Access Roles
    description: Access Roles
  - name: Access Permissions
    description: Access Permissions
  - name: Software Application Users
    description: Software Application Users
servers:
  - url: /bankingAdmin
x-apiture-namespace: bankingAdminAccessManagement
paths:
  /softwareApplications/{softwareApplicationId}/users:
    parameters:
      - $ref: '#/components/parameters/softwareApplicationIdPathParam'
    get:
      summary: Return a list of users of this software application
      description: Return a list of active users of the software application. The user representation includes user properties that are immutable in the scope of this API, such as ID, name, username, and the timestamp of the last login. The representation also includes the user's assigned access roles for the software application, which may be change via the [patchSoftwareApplicationUserAccessRoles](#op-patchSoftwareApplicationUserAccessRoles) operation.
      operationId: listSoftwareApplicationUsers
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: softwareApplicationUsers
      tags:
        - Software Application Users
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/softwareApplicationUsers'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/read
      x-apiture-permission: listSoftwareApplicationUsers
  /softwareApplications/{softwareApplicationId}/users/{softwareApplicationUserId}:
    parameters:
      - $ref: '#/components/parameters/softwareApplicationUserIdPathParam'
      - $ref: '#/components/parameters/softwareApplicationIdPathParam'
    get:
      summary: Fetch a representation of this user
      description: Return the JSON representation of this user resource.
      operationId: getSoftwareApplicationUser
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: softwareApplicationUsers
      tags:
        - Software Application Users
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/softwareApplicationUser'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/read
      x-apiture-permission: getSoftwareApplicationUser
  /softwareApplications/{softwareApplicationId}/users/{softwareApplicationUserId}/accessRoles:
    parameters:
      - $ref: '#/components/parameters/softwareApplicationUserIdPathParam'
      - $ref: '#/components/parameters/softwareApplicationIdPathParam'
    patch:
      summary: Update the assigned access roles of a software application user
      description: Perform a partial update of this user as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchSoftwareApplicationUserAccessRoles
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: softwareApplicationUsers
      tags:
        - Software Application Users
      requestBody:
        required: true
        description: The fields to update within the user.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/softwareApplicationUserAccessRolesPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/softwareApplicationUserAccessRolesPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/softwareApplicationUser'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAccessRoles/v1.0.0`](https://static.api.apiture.com/errors/invalidAccessRoles/v1.0.0)<br>
              One or more access roles IDs are invalid or do not refer to an existing access role in the software application.
              Remediation: Specify the ID of a valid access role for the software application.
            The `attributes` object in the error may have the properties defined for [`invalidAccessRoles`](https://static.api.apiture.com/errors/invalidAccessRoles/v1.0.0).
          x-apiture-errors:
            - invalidAccessRoles
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/write
      x-apiture-permission: patchSoftwareApplicationUserAccessRoles
  /softwareApplications/{softwareApplicationId}/accessPermissions:
    parameters:
      - $ref: '#/components/parameters/softwareApplicationIdPathParam'
    get:
      summary: Return a list of access permissions
      description: Return a list of access permissions associated with a software application.
      operationId: listAccessPermissions
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: accessPermissions
      tags:
        - Access Permissions
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accessPermissions'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/read
      x-apiture-permission: listAccessPermissions
  /softwareApplications/{softwareApplicationId}/accessRoles:
    parameters:
      - $ref: '#/components/parameters/softwareApplicationIdPathParam'
    get:
      summary: Return a list of access roles
      description: Return a list of access roles for a software application.
      operationId: listAccessRoles
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: accessRoles
      tags:
        - Access Roles
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accessRoles'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/read
      x-apiture-permission: listAccessRoles
  /softwareApplications/{softwareApplicationId}/accessRoles/{accessRoleId}:
    parameters:
      - $ref: '#/components/parameters/accessRoleIdPathParam'
      - $ref: '#/components/parameters/softwareApplicationIdPathParam'
    get:
      summary: Fetch a representation of this access role
      description: Return the JSON representation of this access role resource.
      operationId: getAccessRole
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: accessRoles
      tags:
        - Access Roles
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accessRole'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/read
      x-apiture-permission: getAccessRole
  /softwareApplications:
    get:
      summary: Return a collection of software applications
      description: Return a collection of software applications.
      operationId: listSoftwareApplications
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: softwareApplications
      tags:
        - Software Applications
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/softwareApplications'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/read
      x-apiture-permission: listSoftwareApplications
  /softwareApplications/{softwareApplicationId}:
    parameters:
      - $ref: '#/components/parameters/softwareApplicationIdPathParam'
    get:
      summary: Fetch a representation of this software application
      description: Return the JSON representation of this software application resource.
      operationId: getSoftwareApplication
      x-apiture-api: bankingAdminAccessManagement
      x-apiture-group: softwareApplications
      tags:
        - Software Applications
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/softwareApplication'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - adminAccess/read
      x-apiture-permission: getSoftwareApplication
components:
  parameters:
    accessRoleIdPathParam:
      name: accessRoleId
      description: The unique identifier of this access role. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    softwareApplicationUserIdPathParam:
      name: softwareApplicationUserId
      description: The unique identifier of this software application user. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    softwareApplicationIdPathParam:
      name: softwareApplicationId
      description: The unique identifier of this software application. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
  schemas:
    softwareApplicationUserFields:
      title: User Fields (v1.0.0)
      description: Common fields of the user resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        accessRoles:
          description: A list of the access roles assigned to this user within the context of this software application.
          type: array
          maxItems: 100
          items:
            $ref: '#/components/schemas/accessRoleItem'
      x-apiture-version: 1.0.0
    softwareApplicationUserItem:
      title: User Item (v1.0.0)
      description: Summary representation of an user resource in software application users collection. To fetch the full representation of this user, use the [`getSoftwareApplicationUser`](#op-getSoftwareApplicationUser) operation, passing this item's `id` field as the `userId` path parameter.
      required:
        - accessRoles
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/softwareApplicationUserFields'
        - $ref: '#/components/schemas/userAccountReference'
        - type: object
          properties:
            lastLoggedInAt:
              description: The date and time of the most recent successful login for this software application user. This is expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DDThh:mm:ss.sssZ` date-time format in UTC time zone.
              $ref: '#/components/schemas/readOnlyTimestamp'
      example:
        id: 0399abed-fd3d
        firstName: Benny
        lastName: Billings
        username: bbillings
        lastLoggedInAt: '2023-10-27T08:53:07Z'
        accessRoles:
          - id: fc2f9ed1-cf81
            name: Audience Contributor
      x-apiture-version: 1.0.0
    softwareApplicationUser:
      x-apiture-version: 1.1.0
      title: Software Application User (v1.1.0)
      description: Representation of a software application user resource.
      allOf:
        - $ref: '#/components/schemas/softwareApplicationUserItem'
        - type: object
          properties:
            effectiveAccessPermissions:
              description: A list of calculated access permissions for this software application user.
              readOnly: true
              type: array
              maxItems: 250
              uniqueItems: true
              items:
                $ref: '#/components/schemas/accessPermissionItem'
      example:
        id: 0399abed-fd3d
        firstName: Benny
        lastName: Billings
        username: bbillings
        lastLoggedInAt: '2023-10-27T08:53:07Z'
        accessRoles:
          - id: fc2f9ed1-cf81
            name: Audience Contributor
        effectiveAccessPermissions:
          - key: audiences/write
            label: Create and Update Customer Audiences
          - key: audiences/read
            label: View Customer Audiences
          - key: audiences/share
            label: Share Audiences with Additional Analysts
    softwareApplicationUsers:
      title: Software Application Users Collection (v1.0.0)
      description: Collection of users for a software application.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing of user items.
              type: array
              maxItems: 1000
              uniqueItems: true
              items:
                $ref: '#/components/schemas/softwareApplicationUserItem'
      example:
        items:
          - id: 0399abed-fd3d
            firstName: Benny
            lastName: Billings
            username: bbillings
            lastLoggedInAt: '2023-10-27T08:53:07Z'
            accessRoles:
              - id: fc2f9ed1-cf81
                name: Audience Contributor
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            firstName: Benny
            lastName: Billings
            username: bbillings
            lastLoggedInAt: '2023-10-25T09:44:17Z'
            accessRoles:
              - id: fc2f9ed1-cf81
                name: Audience Contributor
      x-apiture-version: 1.0.0
    softwareApplicationUserAccessRolesPatch:
      title: Patch Software Application User Access Roles (v1.0.0)
      description: Request body to update assigned access roles for a user within the context of a software application. This completely replaces the user's assigned roles for the software application. Use an empty array (`[]`) to revert to the default roles for the application.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            accessRoles:
              type: array
              maxItems: 100
              uniqueItems: true
              items:
                type: object
                properties:
                  id:
                    description: The unique identifier for this access role resource. This is an immutable opaque string.
                    $ref: '#/components/schemas/resourceId'
                  name:
                    type: string
                    description: The human readable name describing this access role. This is included for informational purposes and is not evaluated as part of the patch operation.
                    format: text
                    minLength: 1
                    maxLength: 255
      example:
        accessRoles:
          - id: fc2f9ed1-cf81
            name: Audience Contributor
      x-apiture-version: 1.0.0
    accessPermissionFields:
      title: Access Permission Fields (v1.0.0)
      description: Common fields of the access permission resource used to build other model schemas. Access permissions are scoped to the context of a software application.
      x-apiture-fragment: true
      type: object
      properties:
        key:
          type: string
          description: The name of the key used within access management claims by the identity provider.
          format: '[\/-_.:a-zA-Z0-9]{1,40}'
          minLength: 1
          maxLength: 40
          example: audiences/share
        label:
          type: string
          description: The self-descriptive human-readable text label for the access permission.
          format: text
          minLength: 1
          maxLength: 255
      x-apiture-version: 1.0.0
    accessPermissionItem:
      title: Access Permission Item (v1.0.0)
      description: Summary representation of an access permission resource in access permissions collections. To fetch the full representation of this access permission, use the [`getAccessPermission`](#op-getAccessPermission) operation, passing this item's `id` field as the `accessPermissionId` path parameter.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/accessPermissionFields'
      required:
        - key
        - label
      example:
        key: insightOwners/write
        label: Create and Update Insight Owners
      x-apiture-version: 1.0.0
    accessPermissions:
      title: Access Permission Collection (v1.0.0)
      description: Collection of access permissions. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing access permission items.
              type: array
              maxItems: 250
              uniqueItems: true
              items:
                $ref: '#/components/schemas/accessPermissionItem'
      example:
        items:
          - key: insightOwners/write
            label: Create and Update Insight Owners
          - key: insightOwners/read
            label: View Insight Owners
          - key: audiences/write
            label: Create and Update Customer Audiences
          - key: audiences/read
            label: View Customer Audiences
      x-apiture-version: 1.0.0
    accessRoleFields:
      title: Access Role Fields (v1.0.0)
      description: Common fields of the access role resource used to build other model schemas. Access roles are scoped to the context of a software application.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          type: string
          description: The human readable name describing this access role. Access role names are unique within their owning software application.
          format: text
          minLength: 1
          maxLength: 255
        description:
          type: string
          description: A description of the access role.
          format: text
          maxLength: 255
        default:
          type: boolean
          description: If `true`, this access role is the default assigned access role for the owning software application. Only one access role may be assigned as the default role for a software application.
          default: false
      x-apiture-version: 1.0.0
    accessRoleItem:
      title: Access Role Item (v1.0.0)
      description: Summary representation of an access role resource in access roles collections. To fetch the full representation of this access role, use the [`getAccessRole`](#op-getAccessRole) operation, passing this item's `id` field as the `accessRoleId` path parameter.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/accessRoleFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this access role resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
            accessPermissions:
              description: The unique fine-grained access permissions encapsulated by this access role.
              type: array
              maxItems: 250
              uniqueItems: true
              items:
                $ref: '#/components/schemas/accessPermissionItem'
      example:
        id: fc2f9ed1-cf81
        name: Audience Contributor
        accessPermissions:
          - key: audiences/write
            label: Create and Update Customer Audiences
          - key: audiences/read
            label: View Customer Audiences
      x-apiture-version: 1.0.0
    accessRole:
      title: Access Role (v1.0.0)
      description: Representation of an access role resource. Describes an access role assignable to a user. An access role is composed of one or more access permissions, for a software application.
      $ref: '#/components/schemas/accessRoleItem'
      example:
        id: fc2f9ed1-cf81
        name: Audience Contributor
        description: An audience contributor is an analyst who can make changes to properties within a customer audience.
        accessPermissions:
          - key: audiences/write
            label: Create and Update Customer Audiences
          - key: audiences/read
            label: View Customer Audiences
      x-apiture-version: 1.0.0
    accessRoles:
      title: Access Role Collection (v1.0.0)
      description: Collection of access roles. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing a list of access role items.
              type: array
              maxItems: 100
              uniqueItems: true
              items:
                $ref: '#/components/schemas/accessRoleItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Audience Contributor
            description: An audience contributor is an analyst who can make changes to properties within a customer audience.
            accessPermissions:
              - key: audiences/write
                label: Create and Update Customer Audiences
              - key: audiences/read
                label: View Customer Audiences
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            name: Audience Owner
            description: The owner of a customer audience. Owners can manage contributors within a customer audience, as well as any entitlements granted with lower roles related to customer audiences.
            accessPermissions:
              - key: audiences/write
                label: Create and Update Customer Audiences
              - key: audiences/read
                label: View Customer Audiences
              - key: audienceOwners/write
                label: Assign Customer Audience Owners
      x-apiture-version: 1.0.0
    softwareApplicationFields:
      title: Software Application Fields (v1.0.0)
      description: Common fields of the software application resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          type: string
          description: The human readable name of this software application resource.
          format: text
          minLength: 1
          maxLength: 80
        description:
          type: string
          description: A description of the software application resource.
          format: text
          minLength: 1
          maxLength: 255
      x-apiture-version: 1.0.0
    softwareApplicationItem:
      title: Software Application Item (v1.0.0)
      description: Summary representation of a software application resource in software applications collections. To fetch the full representation of this software application, use the [`getSoftwareApplication`](#op-getSoftwareApplication) operation, passing this item's `id` field as the `softwareApplicationId` path parameter.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/softwareApplicationFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this software application resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
      required:
        - id
        - name
      example:
        id: 0399abed-fd3d
        name: Developer Portal
        description: A software application for managing developer resources.
      x-apiture-version: 1.0.0
    softwareApplication:
      title: Software Application (v1.0.0)
      description: Representation of a software application resource. Describes a software application within the ADB platform.
      $ref: '#/components/schemas/softwareApplicationItem'
      example:
        id: 0399abed-fd3d
        name: Developer Portal
        description: A software application for managing developer resources.
      x-apiture-version: 1.0.0
    softwareApplications:
      title: Software Application Collection (v1.0.0)
      description: Collection of software applications. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing software application items.
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/softwareApplicationItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Developer Portal
            description: A software application for managing developer resources.
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            name: Data Portal
            description: A software application for performing analysis for Financial Institutions.
      x-apiture-version: 1.0.0
    problemResponse:
      title: Problem Response (v0.4.1)
      x-apiture-version: 0.4.1
      description: API problem or error response, as per [RFC 9457 application/problem+json](https://tools.ietf.org/html/rfc9457).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/apiProblem'
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/noSuchAccount/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists for the given account reference
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/problemResponse
    resourceId:
      x-apiture-version: 1.0.1
      title: Resource Identifier (v1.0.1)
      description: The unique, opaque system identifier for a resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference a resource by ID rather than URL.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/resourceId
    abstractBody:
      title: Abstract Body (v0.2.0)
      x-apiture-version: 0.2.0
      description: An abstract schema used to define other request and response body model schemas.
      x-apiture-fragment: true
      type: object
      properties: {}
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractBody
    userAccountReference:
      x-apiture-version: 2.0.0
      title: User Account Reference (v2.0.0)
      description: The representation of a user account.
      type: object
      required:
        - id
        - firstName
        - lastName
        - username
      properties:
        id:
          description: The immutable, unique, opaque identifier for the user.
          $ref: '#/components/schemas/resourceId'
        firstName:
          description: The user's first name.
          type: string
          format: text
          maxLength: 56
        lastName:
          description: The user's last name.
          type: string
          format: text
          maxLength: 56
        username:
          description: The user's login name.
          $ref: '#/components/schemas/customerUsername'
      example:
        id: 0399abed-fd3d
        firstName: Benny
        lastName: Billings
        username: bbillings
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/userAccountReference
    readOnlyTimestamp:
      title: Read-Only Timestamp (v1.0.0)
      description: 'A readonly or derived timestamp (an instant in time) formatted in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format: `YYYY-MM-DDThh:mm:ss.sssZ`.'
      type: string
      minLength: 20
      maxLength: 30
      format: date-time
      readOnly: true
      example: '2021-10-30T19:06:04.250Z'
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyTimestamp
      x-apiture-version: 1.0.0
    readOnlyResourceId:
      x-apiture-version: 1.0.1
      title: Read-only Resource Identifier (v1.0.1)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is also used in URLs as path parameters or in other properties or parameters that reference a resource by ID rather than URL. Resource IDs are immutable.
      readOnly: true
      allOf:
        - $ref: '#/components/schemas/resourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyResourceId
    apiProblem:
      x-apiture-version: 1.2.1
      title: API Problem (v1.2.1)
      description: API problem or error, as per [RFC 7807 application/problem+json](https://tools.ietf.org/html/rfc7807).
      type: object
      properties:
        type:
          type: string
          format: uri-reference
          description: |
            A [URI reference (RFC3986)](https://tools.ietf.org/html/rfc3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be `"about:blank"`.
          example: https://static.api.apiture.com/errors/forbidden/v1.0.0
          maxLength: 2048
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. The title is usually the same for all problem with the same `type`.
          maxLength: 120
          format: text
          example: User is not authorized to perform the requested action or access the requested resource.
        status:
          type: integer
          format: int32
          description: |
            The [HTTP status code](https://datatracker.ietf.org/doc/html/rfc7231#section-6) for this occurrence of the problem.
          minimum: 100
          maximum: 599
          example: 403
        detail:
          type: string
          description: |
            A human-readable explanation specific to this occurrence of the problem.
          maxLength: 256
          format: text
          example: User is not authorized to perform this operation.
        instance:
          type: string
          format: uri-reference
          description: |
            A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment
          example: https://prduction.api.apiture.com/banking/accounts/ad80fc3e722q5402a#189c13ff-c54c-45f7-b8e0-c88984ba724d
          maxLength: 2048
        id:
          description: The unique identifier for this problem. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        occurredAt:
          description: The timestamp when the problem occurred, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC.
          $ref: '#/components/schemas/readOnlyTimestamp'
        problems:
          description: Optional root-causes if there are multiple problems in the request or API call processing.
          type: array
          maxItems: 128
          items:
            $ref: '#/components/schemas/apiProblem'
        attributes:
          type: object
          description: Additional optional attributes related to the problem. This data conforms to the schema associated with the error type.
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/accountNotFound/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists at the given account_url
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/apiProblem
    customerUsername:
      x-apiture-version: 2.0.0
      title: Customer Username (v2.0.0)
      description: A customer's login username.
      type: string
      format: text
      minLength: 5
      maxLength: 20
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/customerUsername
    requiredIdentityChallenge:
      x-apiture-version: 1.2.3
      title: Required Challenge (v1.2.3)
      description: A request from the service for the user to verify their identity. This contains a challenge ID, the corresponding operation ID, and a list of challenge factors for identity verification. The user must complete one of these challenge factors to satisfy the challenge. This schema defines the attributes in the 401 [Unauthorized problem response](#schema-apiProblem) when the 401 problem type name is `challengeRequired`. See the "Challenge API" for details.
      type: object
      required:
        - operationId
        - challengeId
        - factors
      properties:
        operationId:
          $ref: '#/components/schemas/challengeOperationId'
        challengeId:
          description: The unique ID of this challenge instance. This is an opaque string. This is passed when starting a challenge factor or when validating the identity challenge responses.
          $ref: '#/components/schemas/readOnlyResourceId'
        factors:
          description: 'A list of challenge factors. The user must complete one of these challenge factors. The `labels` in each factor identify one or more channels the user may use, such as a list of email addresses the system may use to send a one-time passcode to the user. ***Note**: The same channel may be used by multiple factors in the array of factors. For example, the user''s primary mobile phone number may be used for both an `sms` factor and a `voice` factor.'
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeFactor'
      example:
        operationId: createTransfer
        challengeId: 0504076c566a3cf7009c
        factors:
          - type: sms
            labels:
              - '9876'
            id: 85c0ee5753fcd0b0953f
          - type: voice
            labels:
              - '9876'
            id: d089e10a80a8627df37b
          - type: voice
            labels:
              - '6754'
            id: 10506ecf9d1c2ee00403
          - type: email
            labels:
              - an****nk@example.com
              - an****98@example.com
            id: e917d671cb2f030b56f1
          - type: authenticatorToken
            labels:
              - Acme fob
            id: fe6c452d7da0bbb4e407
          - type: securityQuestions
            securityQuestions:
              questions:
                - id: q1
                  prompt: What is your mother's maiden name?
                - id: q4
                  prompt: What is your high school's name?
                - id: q9
                  prompt: What is the name of your first pet?
            id: df33c6f88a37d6b3f0a6
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/requiredIdentityChallenge
    challengeOperationId:
      x-apiture-version: 1.0.1
      title: Challenge Operation ID (v1.0.1)
      description: The ID of an operation/action for which the user must verify their identity via an identity challenge. This is passed when starting a challenge factor or when validating the identity challenge responses.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeOperationId
    challengeFactor:
      x-apiture-version: 1.2.1
      title: Challenge Factor (v1.2.1)
      description: A challenge factor. See [`requiredIdentityChallenge`](#schema-requiredIdentityChallenge) for multiple examples.
      type: object
      required:
        - type
      properties:
        id:
          description: |-
            The ID of an a challenge factor. This ID is unique within the challenge factors associated with a challenge. The client should pass this `id` value as the `factorId` when starting or verifying a challenge factor.

            *Note*: The `id` will become `required` in a future update to this schema.
          $ref: '#/components/schemas/challengeFactorId'
        type:
          $ref: '#/components/schemas/challengeFactorType'
        labels:
          description: A list of text label which identifies the channel(s) through which the user completes the challenge. For an `sms` or `voice` challenge, the only label item is the last four digits of the corresponding phone number. For an `email` challenge, each label is the masked email address.
          type: array
          minItems: 1
          maxItems: 4
          items:
            type: string
            maxLength: 300
            format: text
        securityQuestions:
          $ref: '#/components/schemas/challengeSecurityQuestions'
      example:
        type: sms
        labels:
          - '9876'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactor
    challengeFactorId:
      title: Challenge Factor ID (v1.0.0)
      description: The ID of an a challenge factor. This ID is unique within the factors offered with a challenge.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{3,48}$
      minLength: 3
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorId
      x-apiture-version: 1.0.0
    challengeFactorType:
      title: Challenge Factor Type (v1.0.0)
      description: |+
        The name of challenge factor.

        <strong><code>challengeFactorType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>sms</code></strong></td><td>SMS: <p>One-time passcode sent to the primary mobile phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>email</code></strong></td><td>Email: <p>One-time passcode sent to the primary email address</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>voice</code></strong></td><td>Voice: <p>One-time passcode communicated via automated voice phone call</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>authenticatorToken</code></strong></td><td>authenticator Token: <p>One-time passcode issued by a pre-registered hardware device, such as a token key fob, or an authenticator app</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>securityQuestions</code></strong></td><td>Security Questions: <p>Prompt with the user&#39;s security questions registered with their security profile</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: challengeFactorType
      enum:
        - sms
        - email
        - voice
        - securityQuestions
        - authenticatorToken
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorType
      x-apiture-version: 1.0.0
    challengeSecurityQuestions:
      x-apiture-version: 1.0.1
      title: Challenge Security Questions (v1.0.1)
      description: Describes a `securityQuestions` challenge. This is omitted if the challenge `type` is not `securityQuestions`.
      type: object
      required:
        - questions
      properties:
        questions:
          description: The array of security questions.
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeSecurityQuestion'
      example:
        questions:
          - id: q1
            prompt: What is your mother's maiden name?
          - id: q4
            prompt: What is your high school's name?
          - id: q9
            prompt: What is the name of your first pet?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestions
    challengeSecurityQuestion:
      x-apiture-version: 1.0.1
      title: Challenge Security Question (v1.0.1)
      description: A single security question within the `questions` array of the [`challengeSecurityQuestions`](#schema-challengeSecurityQuestions)
      type: object
      required:
        - id
        - prompt
      properties:
        id:
          description: The unique ID of security question prompt. This should be included in the [`challengeVerification`](#schema-challengeVerification) response as the `promptId`.
          $ref: '#/components/schemas/challengePromptId'
        prompt:
          description: The text prompt of this security question.
          type: string
          format: text
          maxLength: 80
      example:
        id: 74699fa628911e762ea5
        prompt: What is your mother's maiden name?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestion
    challengePromptId:
      title: Challenge Prompt ID (v1.0.0)
      description: The unique ID of a prompt (such as a security question) in a challenge factor.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]+$
      minLength: 1
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengePromptId
      x-apiture-version: 1.0.0
  x-apiture-errors:
    invalidAccessRoles:
      description: One or more access roles IDs are invalid or do not refer to an existing access role in the software application.
      remediation: Specify the ID of a valid access role for the software application.
      attributes:
        properties:
          invalidAccessRoleIds:
            description: The list of invalid access role IDs.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    badRequest:
      description: The request body and/or parameters was not well-formed.
      remediation: Correct any syntax or schema errors in the request body or parameters.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/badRequest
    unauthorized:
      description: The request lacks valid authentication credentials for the target resource or operation.
      remediation: Authenticate the user and pass the required authorization with the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unauthorized
    forbidden:
      description: The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
      remediation: Check the user's permissions and entitlements before attempting the operation.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/forbidden
    customerDisabled:
      description: The customer is disabled.
      remediation: Have the customer contact the financial institution for support.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/customerDisabled
    antiMalwareRequired:
      description: The financial institution requires the customer to have anti-malware software installed.
      remediation: Direct the user to the software requirements guide to install the correct anti-malware software.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/antiMalwareRequired
    modificationForbidden:
      description: The customer is properly authenticated but not authorized to create, modify, or delete resources.
      remediation: Avoid modification operation for customers with read-only authorization.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/modificationForbidden
    challengeRequired:
      description: The operation requires the customer to complete an identity challenge.
      remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
      attributes:
        $ref: '#/components/schemas/requiredIdentityChallenge'
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeRequired
    challengeBlocked:
      description: The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
      remediation: Have the user end their login session and login again.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeBlocked
    noIdentityChallengeFactors:
      description: This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
      remediation: Have the user register one or more challenge security code delivery factors.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/noIdentityChallengeFactors
    invalidIdentityChallengeHeader:
      description: The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
      remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/invalidIdentityChallengeHeader
    notFound:
      description: The resource at the requested URL does not exist.
      remediation: Use the URL of an existing resource.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/notFound
    tooManyRequests:
      description: The client has sent too many requests in a given amount of time, exceeding rate limiting.
      remediation: Slow down the rate of API calls.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/tooManyRequests
  securitySchemes:
    apiKey:
      type: apiKey
      name: API-Key
      in: header
      description: API Key based client identification. See details at [Secure Access](https://developer.apiture.com/docs/secure-access).
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/apiKey
    accessToken:
      type: openIdConnect
      description: OpenId Connect (OIDC) authentication/authorization. The client uses the `authorization_endpoint` and `token_endpoint` to obtain an access token to pass in the `Authorization` header. Those endpoints are available via the OIDC Configuration URL. The actual URL may vary with each financial institution. See details at [Secure Access](https://dx.apiture.com/docs/api/concepts/api-keys/).
      openIdConnectUrl: https://auth.apiture.com/oidc/.well-known/openid-configuration
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/accessToken
  responses:
    '400':
      description: |
        Bad Request. The request body, request headers, and/or query parameters are not well-formed.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/badRequest/v1.0.0`](https://static.api.apiture.com/errors/badRequest/v1.0.0)<br>
          The request body and/or parameters was not well-formed.
          Remediation: Correct any syntax or schema errors in the request body or parameters.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/badRequest'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/badRequest/v1.0.0
              title: Bad Request
              status: 400
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: Input did not parse as JSON
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/badRequest/v1.0.0
              title: Bad Request
              status: 400
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: Input did not parse as JSON
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/400
    '401':
      description: |
        Unauthorized. The operation requires authentication but no authentication or insufficient authentication was given.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unauthorized/v1.0.0`](https://static.api.apiture.com/errors/unauthorized/v1.0.0)<br>
          The request lacks valid authentication credentials for the target resource or operation.
          Remediation: Authenticate the user and pass the required authorization with the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unauthorized'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/401
    '403':
      description: |
        Forbidden. The authenticated caller is not authorized to perform the requested operation.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/forbidden/v1.0.0`](https://static.api.apiture.com/errors/forbidden/v1.0.0)<br>
          The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
          Remediation: Check the user's permissions and entitlements before attempting the operation.

        * [`https://static.api.apiture.com/errors/customerDisabled/v1.0.0`](https://static.api.apiture.com/errors/customerDisabled/v1.0.0)<br>
          The customer is disabled.
          Remediation: Have the customer contact the financial institution for support.

        * [`https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0`](https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0)<br>
          The financial institution requires the customer to have anti-malware software installed.
          Remediation: Direct the user to the software requirements guide to install the correct anti-malware software.

        * [`https://static.api.apiture.com/errors/modificationForbidden/v1.0.0`](https://static.api.apiture.com/errors/modificationForbidden/v1.0.0)<br>
          The customer is properly authenticated but not authorized to create, modify, or delete resources.
          Remediation: Avoid modification operation for customers with read-only authorization.

        * [`https://static.api.apiture.com/errors/challengeRequired/v1.0.0`](https://static.api.apiture.com/errors/challengeRequired/v1.0.0)<br>
          The operation requires the customer to complete an identity challenge.
          Remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
        The `attributes` object in the error may have the properties defined by the [`requiredIdentityChallenge` schema](#schema-requiredIdentityChallenge).
        * [`https://static.api.apiture.com/errors/challengeBlocked/v1.0.0`](https://static.api.apiture.com/errors/challengeBlocked/v1.0.0)<br>
          The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
          Remediation: Have the user end their login session and login again.

        * [`https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0`](https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0)<br>
          This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
          Remediation: Have the user register one or more challenge security code delivery factors.

        * [`https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0`](https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0)<br>
          The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
          Remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/forbidden'
        - $ref: '#/components/x-apiture-errors/customerDisabled'
        - $ref: '#/components/x-apiture-errors/antiMalwareRequired'
        - $ref: '#/components/x-apiture-errors/modificationForbidden'
        - $ref: '#/components/x-apiture-errors/challengeRequired'
        - $ref: '#/components/x-apiture-errors/challengeBlocked'
        - $ref: '#/components/x-apiture-errors/noIdentityChallengeFactors'
        - $ref: '#/components/x-apiture-errors/invalidIdentityChallengeHeader'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/403
    '404':
      description: |
        Not found. There is no such resource at the request URL.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/notFound/v1.0.0`](https://static.api.apiture.com/errors/notFound/v1.0.0)<br>
          The resource at the requested URL does not exist.
          Remediation: Use the URL of an existing resource.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/notFound'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/notFound/v1.0.0
              title: Not Found
              status: 404
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The resource at the request URL does not exist.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/notFound/v1.0.0
              title: Not Found
              status: 404
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The resource at the request URL does not exist.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/404
    '429':
      description: |
        Too Many Requests. The client has sent too many requests in a given amount of time.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/tooManyRequests/v1.0.0`](https://static.api.apiture.com/errors/tooManyRequests/v1.0.0)<br>
          The client has sent too many requests in a given amount of time, exceeding rate limiting.
          Remediation: Slow down the rate of API calls.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/tooManyRequests'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/429
    4XX:
      description: Client Request Problem. The client request had a problem not listed under another specific 400-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/4XX
    5XX:
      description: Server Problem. The server encountered a problem not listed under another specific 500-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/5XX
x-apiture-traits:
  - api:
      title: Access Management
      basePath: /bankingAdmin
      applied: true
      links: []
  - resource:
      name: software application
      description: Describes a software application within the ADB platform.
      cursorPaginated: false
      immutable: true
      applied: true
  - resource:
      name: access role
      description: Describes a access role (assignable to users), composed of one or more access permissions, for a software application.
      pathPrefix: /softwareApplications/{softwareApplicationId}
      cursorPaginated: false
      applied: true
  - resource:
      name: access permission
      description: Describes an access permission or grant to perform an API operation within a software application.
      pathPrefix: /softwareApplications/{softwareApplicationId}
      cursorPaginated: false
      immutable: true
      get: false
      applied: true
  - resource:
      name: user
      pathPrefix: /softwareApplications/{softwareApplicationId}
      excludedMethods:
        - PUT
        - DELETE
  - security:
      baseScope: banking
      applied: true
x-resolved-from: ../../adminAccessManagement/status-codes-openapi.yaml
x-resolved-at: '2024-12-09T21:58:32.073Z'
x-apiture-annotated-at: '2024-12-09T21:58:32.310Z'
