openapi: 3.1.0
info:
  title: Admin Reports
  description: |-
    Manages admin report components, templates and various admin reports.
    Admin user lists are named groups of users. These lists may be used as components for a filter or report.
    Each generated report allows certain fields to be used. The fields can be grouped into saved report templates. Allowed fields vary based on the report type.
  version: 0.7.2
  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: Admin Users
    description: Admin Users
  - name: Admin User Lists
    description: Admin User Lists
  - name: Admin Report Types
    description: Admin Report Types
  - name: Admin Reports
    description: Admin Reports
  - name: Admin Report Templates
    description: Admin Report Templates
servers:
  - url: /bankingAdmin
x-apiture-namespace: bankingAdminReports
paths:
  /adminUsers:
    get:
      summary: Return a collection of admin users
      description: Lists users to be used for constructing report filters.
      operationId: listAdminUsers
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin Users
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminUsers'
        '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:
            - adminReports/read
      x-apiture-permission: listAdminUsers
  /adminUserLists:
    get:
      summary: Return a collection of admin user lists
      description: Return a collection of admin user lists.
      operationId: listAdminUserLists
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin User Lists
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminUserLists'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          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:
            - adminReports/read
      x-apiture-permission: listAdminUserLists
    post:
      summary: Create a new admin user list
      description: Create a new admin user list within the admin user lists collection.
      operationId: createAdminUserList
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin User Lists
      requestBody:
        required: true
        description: The data necessary to create a new admin user list.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newAdminUserList'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminUserList'
          headers:
            Location:
              description: The URI of the new admin user list.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          $ref: '#/components/responses/409'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          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:
            - adminReports/write
      x-apiture-permission: createAdminUserList
  /adminUserLists/{adminUserListId}:
    parameters:
      - name: adminUserListId
        description: The unique identifier of this admin user list. This is an opaque string.
        in: path
        schema:
          $ref: '#/components/schemas/resourceId'
        required: true
    get:
      summary: Fetch a representation of this admin user list
      description: Return the JSON representation of this admin user list resource.
      operationId: getAdminUserList
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin User Lists
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminUserList'
        '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:
            - adminReports/read
      x-apiture-permission: getAdminUserList
    patch:
      summary: Update this admin user list resource
      description: Perform a partial update of this admin user list 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: patchAdminUserList
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin User Lists
      requestBody:
        required: true
        description: The fields to update within the admin user list.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/adminUserListPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/adminUserListPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminUserList'
        '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.
          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:
            - adminReports/write
      x-apiture-permission: patchAdminUserList
    delete:
      summary: Delete this admin user list resource
      description: Delete this admin user list resource. The deletion does not cascade to any admin report templates that reference this admin user list.
      operationId: deleteAdminUserList
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin User Lists
      responses:
        '204':
          $ref: '#/components/responses/204'
        '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:
            - adminReports/write
      x-apiture-permission: deleteAdminUserList
  /adminReportTypes:
    get:
      summary: Return a collection of admin report types
      description: Return a collection of admin report types.
      operationId: listAdminReportTypes
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReportTypes
      tags:
        - Admin Report Types
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReportTypes'
        '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:
            - adminReports/read
      x-apiture-permission: listAdminReportTypes
  /adminReports:
    get:
      summary: Return a collection of admin reports
      description: Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of admin reports. The [nextPage_url](https://developer.apiture.com/docs/concepts/links) in the response is a pagination link.
      operationId: listAdminReports
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin Reports
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
        - name: adminReportTypes
          in: query
          description: Filter the list of reports to ones matching these report types.
          required: false
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 1
            uniqueItems: true
            items:
              $ref: '#/components/schemas/adminReportType'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReports'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '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/invalidReportFilter/v1.0.0`](https://static.api.apiture.com/errors/invalidReportFilter/v1.0.0)<br>
              The report filters are invalid for the requested report type.
              Remediation: Supply proper filter criteria for the requested report type.
          x-apiture-errors:
            - invalidReportFilter
          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:
            - adminReports/read
      x-apiture-permission: listAdminReports
    post:
      summary: Create a new admin report
      description: |-
        Create a new admin report within the admin reports collection.

        This request allows the optional use of an [idempotency key](https://dx.apiture.com/docs/api/concepts/idempotent-operations/). When the operation is successful and an idempotency key is used, subsequent attempts with the same idempotency key return the same response, but an additional admin report is not created.
      operationId: createAdminReport
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin Reports
      parameters:
        - $ref: '#/components/parameters/idempotencyKeyHeaderParam'
      requestBody:
        required: true
        description: The data necessary to create a new admin report.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newAdminReport'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReport'
          headers:
            Location:
              description: The URI of the new admin report.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '202':
          description: Accepted. The service accepted the request and has started generating the requested report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReport'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '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/invalidUserListIds/v1.0.0`](https://static.api.apiture.com/errors/invalidUserListIds/v1.0.0)<br>
              One or more user list ids is invalid.
              Remediation: Supply proper user list id.

            * [`https://static.api.apiture.com/errors/invalidUserIds/v1.0.0`](https://static.api.apiture.com/errors/invalidUserIds/v1.0.0)<br>
              One or more user ids is invalid.
              Remediation: Supply proper user ids.

            * [`https://static.api.apiture.com/errors/invalidUsername/v1.0.0`](https://static.api.apiture.com/errors/invalidUsername/v1.0.0)<br>
              The username is invalid.
              Remediation: Supply a valid username.
          x-apiture-errors:
            - invalidUserListIds
            - invalidUserIds
            - invalidUsername
          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:
            - adminReports/write
      x-apiture-permission: createAdminReport
  /adminReports/{adminReportId}:
    parameters:
      - name: adminReportId
        description: The unique identifier of this admin report. This is an opaque string.
        in: path
        schema:
          $ref: '#/components/schemas/resourceId'
        required: true
    get:
      summary: Fetch a representation of this admin report
      description: Return the representation of this admin report resource.
      operationId: getAdminReport
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin Reports
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReport'
        '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:
            - adminReports/read
      x-apiture-permission: getAdminReport
    delete:
      summary: Delete this admin report resource
      description: Delete this admin report resource.
      operationId: deleteAdminReport
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReports
      tags:
        - Admin Reports
      responses:
        '204':
          $ref: '#/components/responses/204'
        '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:
            - adminReports/write
      x-apiture-permission: deleteAdminReport
  /adminReportTemplates:
    get:
      summary: Return a collection of admin report templates
      description: Return a collection of admin report templates.
      operationId: listAdminReportTemplates
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReportTemplates
      tags:
        - Admin Report Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReportTemplates'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          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:
            - adminReports/read
      x-apiture-permission: listAdminReportTemplates
    post:
      summary: Create a new admin report template
      description: Create a new admin report template within the admin report templates collection.
      operationId: createAdminReportTemplate
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReportTemplates
      tags:
        - Admin Report Templates
      requestBody:
        required: true
        description: The data necessary to create a new admin report template.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newAdminReportTemplate'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReportTemplate'
          headers:
            Location:
              description: The URI of the new admin report template.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '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/invalidUserListIds/v1.0.0`](https://static.api.apiture.com/errors/invalidUserListIds/v1.0.0)<br>
              One or more user list ids is invalid.
              Remediation: Supply proper user list id.

            * [`https://static.api.apiture.com/errors/invalidUserIds/v1.0.0`](https://static.api.apiture.com/errors/invalidUserIds/v1.0.0)<br>
              One or more user ids is invalid.
              Remediation: Supply proper user ids.

            * [`https://static.api.apiture.com/errors/invalidUsername/v1.0.0`](https://static.api.apiture.com/errors/invalidUsername/v1.0.0)<br>
              The username is invalid.
              Remediation: Supply a valid username.
          x-apiture-errors:
            - invalidUserListIds
            - invalidUserIds
            - invalidUsername
          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:
            - adminReports/write
      x-apiture-permission: createAdminReportTemplate
  /adminReportTemplates/{adminReportTemplateId}:
    parameters:
      - name: adminReportTemplateId
        description: The unique identifier of this admin report template. This is an opaque string.
        in: path
        schema:
          $ref: '#/components/schemas/resourceId'
        required: true
    get:
      summary: Fetch a representation of this admin report template
      description: Return the JSON representation of this admin report template resource.
      operationId: getAdminReportTemplate
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReportTemplates
      tags:
        - Admin Report Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReportTemplate'
        '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:
            - adminReports/read
      x-apiture-permission: getAdminReportTemplate
    patch:
      summary: Update this admin report template
      description: Perform a partial update of this admin report template 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: patchAdminReportTemplate
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReportTemplates
      tags:
        - Admin Report Templates
      requestBody:
        required: true
        description: The fields to update within the admin report template.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/adminReportTemplatePatch'
          application/json:
            schema:
              $ref: '#/components/schemas/adminReportTemplatePatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/adminReportTemplate'
        '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/invalidUserListIds/v1.0.0`](https://static.api.apiture.com/errors/invalidUserListIds/v1.0.0)<br>
              One or more user list ids is invalid.
              Remediation: Supply proper user list id.

            * [`https://static.api.apiture.com/errors/invalidUserIds/v1.0.0`](https://static.api.apiture.com/errors/invalidUserIds/v1.0.0)<br>
              One or more user ids is invalid.
              Remediation: Supply proper user ids.

            * [`https://static.api.apiture.com/errors/invalidUsername/v1.0.0`](https://static.api.apiture.com/errors/invalidUsername/v1.0.0)<br>
              The username is invalid.
              Remediation: Supply a valid username.
          x-apiture-errors:
            - invalidUserListIds
            - invalidUserIds
            - invalidUsername
          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:
            - adminReports/write
      x-apiture-permission: patchAdminReportTemplate
    delete:
      summary: Delete this admin report template resource
      description: Delete this admin report template resource and any resources that are owned by it.
      operationId: deleteAdminReportTemplate
      x-apiture-api: bankingAdminReports
      x-apiture-group: adminReportTemplates
      tags:
        - Admin Report Templates
      responses:
        '204':
          $ref: '#/components/responses/204'
        '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:
            - adminReports/write
      x-apiture-permission: deleteAdminReportTemplate
components:
  schemas:
    adminReport:
      x-apiture-version: 4.0.2
      title: Admin Report (v4.0.2)
      description: Representation of metadata for an admin report.
      allOf:
        - $ref: '#/components/schemas/adminReportItem'
        - type: object
          properties:
            csv_url:
              description: A url to retrieve the comma-separated values (CSV) representation of this report.
              type: string
              format: uri
              maxLength: 2048
            tsv_url:
              description: A url to retrieve the tab-separated values (TSV) representation of this report.
              type: string
              format: uri
              maxLength: 2048
            html_url:
              description: A url to retrieve the HTML representation of this report.
              type: string
              format: uri
              maxLength: 2048
            linksExpireAt:
              description: 'The expiration timestamp for the URLs of this report formatted in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format: `YYYY-MM-DDThh:mm:ss.sssZ`.'
              $ref: '#/components/schemas/readOnlyTimestamp'
      example:
        id: 1c7f9731-b52b-40cd-9f7a-2918faccccaf
        name: Tiger Team Audit Report 4/13/23
        type: adminUserAudit
        createdBy:
          id: c6f1c6938e22707c1196
          firstName: Billy
          lastName: Billings
          username: bbillings
        createdAt: '2023-04-13T12:15:45.224Z'
        state: available
        csv_url: https://cdn.apiture.com/reports/1c7f9731-b52b-40cd-9f7a-2918faccccaf.csv
        tsv_url: https://cdn.apiture.com/reports/1c7f9731-b52b-40cd-9f7a-2918faccccaf.tsv
        html_url: https://cdn.apiture.com/reports/1c7f9731-b52b-40cd-9f7a-2918faccccaf.html
        linksExpireAt: '2023-04-13T16:19:03.000Z'
        adminUserAudit:
          userLists:
            - id: d98c2227cf9739910c7b
              name: Tiger Team
          dateRange: '2023-04-13'
    adminReportFields:
      x-apiture-version: 1.1.0
      title: Admin Report Fields (v1.1.0)
      description: Common fields of the admin report resource used to build other model schemas.
      type: object
      properties:
        name:
          description: The name of the report. This value does not need to be unique.
          type: string
          format: name
          minLength: 1
          maxLength: 55
    adminUserAudit:
      title: Admin User Audit (v1.0.0)
      description: Report metadata related to admin user audit report. This field should only be present when `type` is `adminUserAudit`.
      required:
        - userLists
        - dateRange
      allOf:
        - $ref: '#/components/schemas/adminUserAuditItem'
        - type: object
          properties:
            dateRange:
              description: |-
                The date range that limits the report results to audit events that occurred within the provided dates. The default range includes the previous 30 calendar days. The results include records within the date range based on the local time zone of the financial institution. Future dates are not allowed.

                Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). Examples: <ul> <li> `2023-05-19` on May 19, 2023</li> <li> `[2023-05-01,2023-05-31]` between May 1 and 31, 2023, inclusive</li> <li> `[2023-05-01,2023-06-01)` on or after May 1, but _before_ June 1 (in May, 2023)</li> <li> `[2023-05-19,]` on or after May 19, 2023, up to today</li> <li> `[,2023-05-19]` on or before May 19, 2023</li> </ul>
              $ref: '#/components/schemas/dateRange'
      x-apiture-version: 1.0.0
    adminReportItem:
      x-apiture-version: 4.0.2
      title: Admin Report (v4.0.2)
      description: Representation of an admin report.
      required:
        - id
        - name
        - type
        - createdBy
        - createdAt
        - state
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/adminReportFields'
        - $ref: '#/components/schemas/createdAtField'
        - type: object
          properties:
            id:
              description: The unique identifier for this admin report resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
            type:
              description: The type of the report. The report must have a field matching this `type`. For example, if `type` is `adminUserAudit`, the report must also contain a field of `adminUserAudit`.
              $ref: '#/components/schemas/adminReportType'
            createdBy:
              description: The admin user that created this report.
              $ref: '#/components/schemas/userAccountReference'
            state:
              description: The current state of this admin report.
              $ref: '#/components/schemas/adminReportState'
            adminUserAudit:
              $ref: '#/components/schemas/adminUserAudit'
      example:
        id: 0399abed-fd3d
        name: Report 1
        createdBy:
          id: c6f1c6938e22707c1196
          username: bbillings
          firstName: Billy
          lastName: Billings
        createdAt: '2023-03-20T14:36:04Z'
        type: adminUserAudit
        state: processing
        adminUserAudit:
          userLists:
            - id: d98c2227cf9739910c7b
              name: Tiger Team
          dateRange: '[2023-05-01,2023-05-31]'
    newAdminReport:
      x-apiture-version: 2.0.0
      title: New Admin Report (v2.0.0)
      description: Representation used to create a new admin report.
      required:
        - name
        - type
        - sortBy
      allOf:
        - $ref: '#/components/schemas/adminReportFields'
        - type: object
          properties:
            type:
              description: The type of the report. This determines which sub-resource fields must be present. The `template` must have a matching `type` to be used. For example, if `type` is `adminUserAudit`, the referenced report template must also be `adminUserAudit`.
              $ref: '#/components/schemas/adminReportType'
            filters:
              description: Ad-hoc filters for a specific report type. Only one key is allowed per report. The key must match the `type` of this report.
              $ref: '#/components/schemas/adminReportFilters'
      examples:
        - name: Support User Audit Report for 2022-05-19
          type: adminUserAudit
          filters:
            adminUserAudit:
              dateRange: '2022-05-19'
              sortBy:
                - field: date
                  direction: descending
                - field: name
                  direction: ascending
              userListIds:
                - c6f1c6938e22707c1196
        - name: Support User Audt Report for 2022-05-19 to 2022-05-26
          type: adminUserAudit
          filters:
            adminUserAudit:
              dateRange: '[2022-05-19,2022-05-26]'
              sortBy:
                - field: date
                  direction: descending
                - field: name
                  direction: ascending
              userIds:
                - d98c2227cf9739910c7b
                - 3b2c40684c1e4ef9eb85
                - b42eda1bc6b32570f504
        - name: User Audit Report for 2022-05-19
          type: adminUserAudit
          filters:
            adminUserAudit:
              dateRange: '2022-05-19'
              sortBy:
                - field: date
                  direction: descending
                - field: name
                  direction: ascending
              userListIds:
                - c6f1c6938e22707c1196
              targetusername: bbillings@fi.example.com
    adminReportFilters:
      x-apiture-version: 2.0.0
      title: Admin Report Filters (v2.0.0)
      description: Representation of filters for various report types. Filters not associated with the given report type should be omitted.
      type: object
      properties:
        adminUserAudit:
          $ref: '#/components/schemas/adminUserAuditFilter'
      examples:
        - adminUserAudit:
            dateRange: '[2022-05-19,2022-05-26]'
            sortBy:
              - field: date
                direction: descending
              - field: name
                direction: ascending
            userIds:
              - d98c2227cf9739910c7b
              - 3b2c40684c1e4ef9eb85
              - b42eda1bc6b32570f504
    adminUserAuditFilter:
      x-apiture-version: 2.0.0
      title: Admin User Audit Report Filter (v2.0.0)
      description: Fields used to filter the results for the Admin User Audit Report.
      allOf:
        - $ref: '#/components/schemas/adminUserAuditReportComponents'
        - type: object
          properties:
            dateRange:
              description: |-
                The date range that limits the report results to audit events that occurred within the provided dates. The default range includes the previous 30 calendar days. The results include records within the date range based on the local time zone of the financial institution. Future dates are not allowed.

                Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). Examples: <ul> <li> `2023-05-19` on May 19, 2023</li> <li> `[2023-05-01,2023-05-31]` between May 1 and 31, 2023, inclusive</li> <li> `[2023-05-01,2023-06-01)` on or after May 1, but _before_ June 1 (in May, 2023)</li> <li> `[2023-05-19,]` on or after May 19, 2023, up to today</li> <li> `[,2023-05-19]` on or before May 19, 2023</li> </ul>
              $ref: '#/components/schemas/dateRange'
            sortBy:
              description: |-
                The an ordered set of fields to sort the results by. The default sort is by date descending.

                Sorting may occur by multiple fields. Sorting is applied from the first value to the last value. For example, if the specified sorting indicates first by name ascending and then date descending, the admin user display name is ordered in alphabetical order. After the name, records are sorted by the audit event occurrence date, with the most recent event being first and the oldest event being last.
              type: array
              minItems: 1
              maxItems: 3
              uniqueItems: true
              default:
                - field: date
                  direction: descending
              items:
                $ref: '#/components/schemas/adminUserAuditReportSortCriteria'
              example:
                - field: date
                  direction: descending
                - field: name
                  direction: ascending
      examples:
        - dateRange: '[2022-05-19,2022-05-26]'
          sortBy:
            - field: date
              direction: descending
            - field: name
              direction: ascending
          userIds:
            - d98c2227cf9739910c7b
            - 3b2c40684c1e4ef9eb85
            - b42eda1bc6b32570f504
        - dateRange: '2022-05-19'
          sortBy:
            - field: date
              direction: descending
            - field: name
              direction: ascending
          userListIds:
            - c6f1c6938e22707c1196
    adminUserAuditReportComponents:
      x-apiture-version: 2.0.0
      title: Admin User Audit Report Components (v2.0.0)
      description: A set of filter components used to create an admin user audit report. `userListIds` and `userIds` are mutally exclusive and cannot be combined. When included, the online banking customer represented by `targetUsername` becomes the subject of admin user actions.
      type: object
      properties:
        userListIds:
          description: Filter the report to admin users included in the lists whose list IDs are in this array. This field should be omitted when empty.
          $ref: '#/components/schemas/adminUserListIds'
        userIds:
          description: Filter the report to only the admin users whose user IDs are in this array. This field should be omitted when empty.
          $ref: '#/components/schemas/adminUserIds'
        targetUsername:
          description: Filter the report to only admin user actions related to the online banking customer whose username is provided.
          type: string
          format: text
          maxLength: 20
      example:
        userIds:
          - 0399abed-fd3d
        targetusername: bbillings@fi.example.com
    adminUserAuditReportTemplateComponentsPatch:
      title: Admin User Audit Report Template Components Patch (v1.0.0)
      description: |-
        Representation used to patch an existing admin user audit report template using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.

        `userListIds` and `userIds` are mutally exclusive and cannot be combined. When included, the online banking customer represented by `targetUsername` becomes the subject of admin user actions.
      type: object
      properties:
        userListIds:
          description: Update the template filter to admin users included in the lists whose list IDs are in this array. Use `null` to unset this field.
          $ref: '#/components/schemas/adminUserListIdsPatch'
        userIds:
          description: Update the template filter to only the admin users whose user IDs are in this array. Use `null` to unset this field.
          $ref: '#/components/schemas/adminUserIdsPatch'
        targetUsername:
          description: Update the template filter to scope to the online banking customer who is the subject of an admin user audit report. Use `null` to unset this field.
          type:
            - string
            - 'null'
          format: text
          maxLength: 64
      example:
        userIds:
          - 0399abed-fd3d
        targetUsername: null
      x-apiture-version: 1.0.0
    adminUserAuditReportTemplateComponents:
      x-apiture-version: 2.0.1
      title: Admin User Audit Report Template Components (v2.0.1)
      description: A set of saved filter components that compose an admin user audit report template.
      allOf:
        - $ref: '#/components/schemas/adminUserAuditItem'
        - type: object
          properties:
            users:
              description: A set of users that are used for an admin user audit report template.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/adminUserReference'
            targetUsername:
              description: The online banking customer who is the subject of an admin user audit report.
              type: string
              format: text
              maxLength: 64
      examples:
        - userLists:
            - id: 0399abed-fd3d
              name: Tiger Team
          users: []
        - userLists: []
          users:
            - id: 0399abed-fd3d
              name: Bob Billings
              username: bbillings
              state: active
          targetUsername: billPayer
    adminUserAuditItem:
      x-apiture-version: 2.0.0
      title: Admin User Audit Report Item (v2.0.0)
      description: Report metadata related to an admin user audit report.
      type: object
      required:
        - userLists
      properties:
        userLists:
          description: A set of user lists that are used for an admin user audit report.
          type: array
          maxItems: 1
          items:
            $ref: '#/components/schemas/adminUserListItem'
      example:
        userLists:
          - id: c6f1c6938e22707c1196
            name: Tiger Team
        dateRange: '[2023-05-01,2023-05-31]'
    adminUserAuditReportSortField:
      title: Admin User Audit Report Sort Field (v1.0.0)
      description: |+
        Fields to use for sorting in the Admin User Audit Report.

        <strong><code>adminUserAuditReportSortField</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>name</code></strong></td><td>Name: <p>Sort by the display name of the user</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>date</code></strong></td><td>Date: <p>Sort by the occurrence of the audit event</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>username</code></strong></td><td>Username: <p>Sort by the username of the user</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: adminUserAuditReportSortField
      type: string
      enum:
        - name
        - date
        - username
      x-apiture-version: 1.0.0
    adminUserAuditReportSortCriteria:
      title: Admin User Audit Report Sort Criteria (v1.0.0)
      description: Sorting criteria to apply in the Admin User Audit Report.
      type: object
      required:
        - field
        - direction
      properties:
        field:
          description: The field to sort on.
          $ref: '#/components/schemas/adminUserAuditReportSortField'
        direction:
          description: The direction for applying the sorting to this field.
          $ref: '#/components/schemas/sortDirection'
      example:
        field: name
        direction: descending
      x-apiture-version: 1.0.0
    adminReports:
      x-apiture-version: 4.0.2
      title: Admin Report Collection (v4.0.2)
      description: Collection of admin reports. The items in the collection are ordered in the `items` array. The response object may contain the `nextPage_url` pagination link.
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - items
            - count
          properties:
            reportCount:
              description: The total number of reports for the result set across all pages.
              type: number
              format: int32
            items:
              description: An array containing a page of admin report items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/adminReportItem'
      example:
        start: d1b48af913464aa49fcb07065dcc0616
        limit: 10
        count: 20
        nextPage_url: https://static.api.apiture.com/bankingAdmin/adminReports?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10
        reportCount: 2
        items:
          - id: 0399abed-fd3d
            name: Report 1
            createdBy:
              id: 8f022db9-3004
              username: bbillings
              firstName: Billy
              lastName: Billings
            createdAt: '2023-03-20T14:36:04Z'
            type: adminUserAudit
            state: available
            adminUserAudit:
              userLists:
                - id: c6f1c6938e22707c1196
                  name: Tiger Team
              dateRange: '[2023-02-14,2023-02-21]'
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            name: Report 2
            createdBy:
              id: 8f022db9-3004
              username: bbillings
              firstName: Billy
              lastName: Billings
            createdAt: '2023-03-20T14:36:04Z'
            type: adminUserAudit
            state: processing
            adminUserAudit:
              userLists:
                - id: c6f1c6938e22707c1196
                  name: Tiger Team
              dateRange: '[2023-03-01,2023-03-20)'
    adminUserIds:
      title: Admin User Ids (v1.0.0)
      description: A list of unique opaque admin user IDs. Each value is the `id` of an item in the `listAdminUsers` operation response.
      type: array
      minItems: 1
      maxItems: 10000
      uniqueItems: true
      items:
        $ref: '#/components/schemas/resourceId'
      x-apiture-version: 1.0.0
    adminUserIdsPatch:
      title: Admin User Ids Patch (v1.0.0)
      description: A list of unique opaque admin user IDs. Each value is the `id` of an item in the `listAdminUsers` operation response.
      type:
        - array
        - 'null'
      minItems: 1
      maxItems: 10000
      uniqueItems: true
      items:
        $ref: '#/components/schemas/resourceId'
      x-apiture-version: 1.0.0
    adminUserListIds:
      x-apiture-version: 2.0.0
      title: Admin User List Ids (v2.0.0)
      description: A list of admin user lists IDs. Each value is the `id` of an item in the `listAdminUserLists` operation response.
      type: array
      minItems: 1
      maxItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/resourceId'
    adminUserListIdsPatch:
      title: Admin User List Ids Patch (v1.0.0)
      description: A list of admin user lists IDs. Each value is the `id` of an item in the `listAdminUserLists` operation response.
      type:
        - array
        - 'null'
      minItems: 1
      maxItems: 1
      uniqueItems: true
      items:
        $ref: '#/components/schemas/resourceId'
      x-apiture-version: 1.0.0
    adminUserListFields:
      x-apiture-version: 2.0.0
      title: Admin User List Fields (v2.0.0)
      x-apiture-fragment: true
      description: Common fields of the admin user list resource used to build other model schemas.
      type: object
      properties:
        name:
          description: The human readable name of this admin user list.
          type: string
          maxLength: 50
          format: name
    newAdminUserList:
      x-apiture-version: 2.1.0
      title: New Admin User List (v2.1.0)
      description: Representation used to create a new admin user list.
      required:
        - name
        - userIds
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/adminUserListFields'
        - type: object
          properties:
            userIds:
              $ref: '#/components/schemas/adminUserIds'
      example:
        name: Tiger Team
        userIds:
          - 0399abed-fd3d
    adminUserListPatch:
      x-apiture-version: 2.0.0
      title: Admin User List Patch Request (v2.0.0)
      description: Representation used to patch an existing admin user list using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/adminUserListFields'
        - type: object
          properties:
            userIds:
              description: A unique list of opaque ids referencing admin users.
              type: array
              maxItems: 10000
              uniqueItems: true
              items:
                $ref: '#/components/schemas/resourceId'
      example:
        name: Tiger Team
    adminUserListItem:
      x-apiture-version: 2.0.0
      title: Admin User List Item (v2.0.0)
      description: Summary representation of an admin user list resource. To fetch the full representation of this admin user list, use the [`getAdminUserList`](#op-getAdminUserList) operation, passing this item's `id` field as the `adminUserListId` path parameter.
      required:
        - id
        - name
      allOf:
        - $ref: '#/components/schemas/adminUserListFields'
        - type: object
          properties:
            id:
              description: The immutable, unique, opaque identifier for the admin user list resource.
              $ref: '#/components/schemas/resourceId'
      example:
        id: 0399abed-fd3d
        name: Tiger Team
    adminUserList:
      x-apiture-version: 3.0.1
      title: Admin User List (v3.0.1)
      description: Representation of an admin user list resource. An admin user list is a named set of users to be used as a filter for a report. This list allows active and inactive users. Admin user lists are not report specific; they may be referenced across many reports and filters.
      required:
        - id
        - name
        - users
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/adminUserListItem'
        - type: object
          properties:
            users:
              description: A unique list of users. Users can be active or inactive. Inactive includes users that are disabled or deleted.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/adminUserReference'
      example:
        id: 0399abed-fd3d
        name: Tiger Team
        users:
          - id: d62c0701-0d74
            firstName: Benny
            lastName: Billings
            username: bbillings
            state: active
    adminUserLists:
      x-apiture-version: 3.0.0
      title: Admin User List Collection (v3.0.0)
      description: Collection of admin user lists. 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 admin user list items.
              type: array
              maxItems: 20
              items:
                $ref: '#/components/schemas/adminUserListItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Tiger Team
    adminReportTypeItem:
      x-apiture-version: 1.1.0
      title: Admin Report Type Item (v1.1.0)
      description: Summary representation of an admin report type.
      required:
        - name
        - label
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            name:
              description: The unique identifier for this admin report type resource. This is an immutable string.
              $ref: '#/components/schemas/adminReportType'
            label:
              description: The human readable label for the report type.
              type: string
              format: name
              minLength: 1
              maxLength: 55
    adminReportType:
      title: Admin Report Type (v1.0.0)
      description: |+
        Representation of admin report type resources.

        <strong><code>adminReportType</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>adminUserAudit</code></strong></td><td>User Audit Report: <p>An audit report of activities for a set of admin users</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: adminReportType
      type: string
      enum:
        - adminUserAudit
      x-apiture-version: 1.0.0
    adminReportState:
      title: Admin Report State (v1.0.0)
      description: |+
        Representation of admin report state resources.

        <strong><code>adminReportState</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>processing</code></strong></td><td>Processing: <p>The requested admin report has not finished processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>failed</code></strong></td><td>Failed: <p>The requested admin report failed to process</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>available</code></strong></td><td>Available: <p>The requested admin report is available for viewing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>expired</code></strong></td><td>Expired: <p>The requested admin report has expired and is no longer available</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: adminReportState
      type: string
      enum:
        - processing
        - failed
        - available
        - expired
      x-apiture-version: 1.0.0
    adminReportTypes:
      x-apiture-version: 1.1.1
      title: Admin Report Type Collection (v1.1.1)
      description: Collection of admin report types. 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 admin report type items.
              type: array
              maxItems: 100
              uniqueItems: true
              items:
                $ref: '#/components/schemas/adminReportTypeItem'
      example:
        items:
          - name: adminUserAudit
            label: Admin User Audit Report
    adminReportTemplateFields:
      title: Admin Report Template Fields (v1.0.0)
      description: Common fields of the admin report template resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The name of the report template.
          type: string
          minLength: 1
          maxLength: 55
          format: text
      x-apiture-version: 1.0.0
    newAdminReportTemplate:
      x-apiture-version: 2.0.0
      title: New Admin Report Template (v2.0.0)
      description: Representation used to create a new admin report template.
      required:
        - type
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/adminReportTemplateFields'
        - type: object
          properties:
            type:
              description: The type of the report. This determines which sub-resource fields must be present. The `template` must have a matching `type` to be used. For example, if `type` is `adminUserAudit`, the referenced report template must also be `adminUserAudit`.
              $ref: '#/components/schemas/adminReportType'
            adminUserAudit:
              description: The filter components for an admin user audit report that can be persisted.
              allOf:
                - $ref: '#/components/schemas/adminUserAuditReportComponents'
      example:
        name: Tiger Team
        type: adminUserAudit
        adminUserAudit:
          userIds:
            - 2319affd-fd3d
          userListIds:
            - 8f022db9-3004-415e-9545-9bd6ca745b11
    adminReportTemplateItem:
      title: Admin Report Template Item (v1.0.0)
      description: Summary representation of an admin report template resource in admin report templates collection. To fetch the full representation of this admin report template, use the [`getAdminReportTemplate`](#op-getAdminReportTemplate) operation, passing this item's `id` field as the `adminReportTemplateId` path parameter.
      required:
        - id
        - type
        - name
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/adminReportTemplateFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this admin report template resource. This is an immutable opaque string.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
            type:
              description: The type of the report. This determines which sub-resource fields must be present. The `template` must have a matching `type` to be used. For example, if `type` is `adminUserAudit`, the referenced report template must also be `adminUserAudit`.
              readOnly: true
              $ref: '#/components/schemas/adminReportType'
      example:
        id: 0399abed-fd3d
        name: Tiger Team
        type: adminUserAudit
      x-apiture-version: 1.0.0
    adminReportTemplatePatch:
      title: Admin Report Template Patch (v1.0.0)
      description: Representation used to patch an existing admin report template using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/adminReportTemplateFields'
        - type: object
          properties:
            adminUserAudit:
              description: The persisted filter components for an admin user audit report.
              allOf:
                - $ref: '#/components/schemas/adminUserAuditReportTemplateComponentsPatch'
      example:
        name: Updated Template
        adminUserAudit:
          userIds:
            - 0399abed-fd3d
          targetUsername: null
      x-apiture-version: 1.0.0
    adminReportTemplate:
      x-apiture-version: 2.0.1
      title: Admin Report Template (v2.0.1)
      description: Representation of an admin report template resource. A saved set of filters for generating reports.
      allOf:
        - $ref: '#/components/schemas/adminReportTemplateItem'
        - type: object
          properties:
            adminUserAudit:
              description: The persisted filter components for an admin user audit report.
              allOf:
                - $ref: '#/components/schemas/adminUserAuditReportTemplateComponents'
      examples:
        - id: 0399abed-fd3d
          name: Tiger Team
          type: adminUserAudit
          adminUserAudit:
            userLists:
              - id: 0399abed-fd3d
                name: Tiger Team
            users: []
        - id: d62c0701-0d74-4836-83f9-ebf3709442ea
          name: Usual Suspects
          type: adminUserAudit
          adminUserAudit:
            userLists: []
            users:
              - id: 0399abed-fd3d
                firstName: Benny
                lastName: Billings
                username: bbillings
                state: active
            targetUsername: billPayer
    adminReportTemplates:
      title: Admin Report Template Collection (v1.0.0)
      description: Collection of admin report templates. The items in the collection are ordered in the `items` array.
      allOf:
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing admin report template items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/adminReportTemplateItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Tiger Team
            type: adminUserAudit
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            name: Usual Suspects
            type: adminUserAudit
      x-apiture-version: 1.0.0
    adminUsers:
      x-apiture-version: 2.0.2
      title: Admin Users (v2.0.2)
      description: A collection of admin user accounts.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: A list of all administrative users within a financial institution. This list includes all active and former users.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/adminUserReference'
      example:
        items:
          - id: 0399abed-fd3d
            firstName: Benny
            lastName: Billings
            username: bbillings
            state: active
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/adminUsers
    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
    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
    dateRange:
      title: Date Range (v1.0.0)
      description: 'A date range, supporting inclusive or exclusive endpoints. Dates ranges use dates expressed in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. The value may have the following forms: <ul> <li>`YYYY-MM-DD` match the date exactly; equivalent to matching dates in the range `[YYYY-MM-DD,YYYY-MM-DD]`</li> <li>`[YYYY-MM-DD,YYYY-MM-DD]` between two dates, inclusive of the endpoints</li> <li>`(YYYY-MM-DD,YYYY-MM-DD)` between two dates, exclusive of the endpoints</li> <li>`[YYYY-MM-DD,]` on or after the date</li> <li>`(YYYY-MM-DD,)` after the date</li> <li>`[,YYYY-MM-DD]` before or on the date</li> <li>`(,YYYY-MM-DD)` before the date</li> </ul>'
      type: string
      maxLength: 24
      pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]])$
      examples:
        - '2022-05-19'
        - '[2022-05-01,2022-05-31]'
        - '[2022-05-01,2022-06-01)'
        - '[2022-05-19,]'
        - (2022-05-19,)
        - '[,2022-05-19]'
        - (,2022-05-19)
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/dateRange
      x-apiture-version: 1.0.0
    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
    createdAtField:
      description: A field used to represent the `createdAt` date-time for a resource.
      x-apiture-fragment: true
      type: object
      properties:
        createdAt:
          description: The date-time when this resource was created, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and immutable.
          $ref: '#/components/schemas/readOnlyTimestamp'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/createdAtField
      x-apiture-version: 1.0.0
      title: ' (v1.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
    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
    adminUserReference:
      title: Admin User Reference (v1.0.0)
      description: A small object representing an administrative user's login account.
      type: object
      required:
        - id
        - firstName
        - lastName
        - username
        - state
      properties:
        id:
          description: The immutable, unique, opaque identifier for the user.
          $ref: '#/components/schemas/readOnlyResourceId'
        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 username.
          type: string
          format: text
          maxLength: 255
        state:
          $ref: '#/components/schemas/adminUserState'
      example:
        id: 0399abed-fd3d
        firstName: Benny
        lastName: Billings
        username: bbillings
        state: active
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/adminUserReference
      x-apiture-version: 1.0.0
    sortDirection:
      title: Sort Direction (v1.0.0)
      x-apiture-since: 0.17.0
      description: |+
        The direction to sort by. This should be combined with a sorting field.

        <strong><code>sortDirection</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>ascending</code></strong></td><td>Ascending: <p>Sort the associated field in ascending order</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>descending</code></strong></td><td>Descending: <p>Sort the associated field in descending order</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: sortDirection
      enum:
        - ascending
        - descending
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/sortDirection
      x-apiture-version: 1.0.0
    abstractPagedBody:
      title: Abstract Paged Body (v0.5.1)
      x-apiture-version: 0.5.1
      description: An abstract schema used to define paginated collections of resources. Collection classes which extend this schema define an array of `items` which represent a page of data.
      x-apiture-fragment: true
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/abstractPagedBodyFields'
        - type: object
          properties:
            start:
              description: The opaque cursor that specifies the starting location of this page of items.
              type: string
              format: text
              maxLength: 256
      example:
        start: 1922a8531e8384cfa71b
        limit: 100
        nextPage_url: https://static.api.apiture.com/banking/resources?start=8b76b4a97dccad88890e&limit=100
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractPagedBody
    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
    adminUserState:
      title: Admin User State (v1.0.0)
      description: |+
        The current state of the admin user.

        <strong><code>adminUserState</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>active</code></strong></td><td>Active: <p>The admin user is active</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>locked</code></strong></td><td>Locked: <p>The admin user&#39;s account is locked</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>removed</code></strong></td><td>Removed: <p>The admin user has been been removed from the system</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: adminUserState
      enum:
        - active
        - locked
        - removed
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/adminUserState
      x-apiture-version: 1.0.0
    abstractPagedBodyFields:
      x-apiture-version: 1.1.1
      title: Abstract Paged Body Fields (v1.1.1)
      description: Common properties of collection page responses.
      x-apiture-fragment: true
      type: object
      required:
        - limit
      properties:
        limit:
          description: The number of items requested for this page response. The length of the `items` array may be less that `limit`.
          type: integer
          format: int32
          minimum: 0
          maximum: 10000
        nextPage_url:
          description: The URL of the next page of resources. If this URL is omitted, there are no more resources in the collection.
          readOnly: true
          maxLength: 8000
          type: string
          format: uri-reference
          example: https://static.api.apiture.com/banking/resources/8b76b4a97dccad88890e
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractPagedBodyFields
    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:
    invalidReportFilter:
      description: The report filters are invalid for the requested report type.
      remediation: Supply proper filter criteria for the requested report type.
    invalidUserListIds:
      description: One or more user list ids is invalid.
      remediation: Supply proper user list id.
    invalidUserIds:
      description: One or more user ids is invalid.
      remediation: Supply proper user ids.
    invalidUsername:
      description: The username is invalid.
      remediation: Supply a valid username.
    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
    conflict:
      description: The request could not be completed due to a conflict with the current state of the target resource.
      remediation: Try another operation that is allowed.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/conflict
    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:
    '204':
      description: No Content. The operation succeeded but returned no response body.
      x-resolved-from: ../../common/openapi.yaml#/components/responses/204
    '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
    '409':
      description: |
        Conflict. The request conflicts with the state of the application.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/conflict/v1.0.0`](https://static.api.apiture.com/errors/conflict/v1.0.0)<br>
          The request could not be completed due to a conflict with the current state of the target resource.
          Remediation: Try another operation that is allowed.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/conflict'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
      x-resolved-from: ../../common/openapi.yaml#/components/responses/409
    '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
  parameters:
    startQueryParam:
      name: start
      in: query
      description: The location of the next item in the collection. This is an opaque cursor supplied by the API service. Omit this to start at the beginning of the collection. The client does not define this value; the API services automatically pass the `?start=` parameter on the `nextPage_url`.
      schema:
        type: string
        maxLength: 256
        pattern: ^[-a-zA-Z0-9.,-=_+:;@$]{0,256}$
        default: ''
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/startQueryParam
    limitQueryParam:
      name: limit
      in: query
      description: The maximum number of items to return in this paged response.
      schema:
        type: integer
        format: int32
        minimum: 0
        maximum: 1000
        default: 100
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/limitQueryParam
    idempotencyKeyHeaderParam:
      name: Idempotency-Key
      in: header
      schema:
        type: string
        maxLength: 255
        pattern: ^[-a-zA-Z0-9_\.\$\:\~\+\=]{1,255}$
      description: A key to ensure operations are only processed once even if a client retries the operation. The V4 UUID format, as defined in [RFC 4122](https://tools.ietf.org/html/rfc4122), is recommended to avoid collisions but is not required.
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/idempotencyKeyHeaderParam
x-apiture-traits:
  - resource:
      name: admin user list
      description: A named set of users to be used as a filter for a report.
      indexPaged: false
      cursorPaged: false
      applied: true
  - singleton:
      name: admin users
      description: Lists users to be used for constructing report filters.
      immutable: true
      applied: true
  - singleton:
      name: admin report types
      description: Lists valid report types used for saving templates and generating reports.
      immutable: true
  - resource:
      name: admin report
      description: A rendered report created by applying templates or individual filter components.
      excludedMethods:
        - put
        - patch
      applied: true
  - resource:
      name: admin report template
      description: A saved set of filters for generating reports.
      indexPaged: false
      cursorPaged: false
  - security:
      baseScope: adminReports
      applied: true
x-resolved-from: ../../adminReports/status-codes-openapi.yaml
x-resolved-at: '2024-12-09T22:08:03.140Z'
x-apiture-annotated-at: '2024-12-09T22:08:03.391Z'
