openapi: 3.1.0
info:
  title: Service Customer Audiences
  description: |-
    An audience is a subset of banking customers (members) as selected by some filter criteria. Audiences (sometimes called a customer segmentation) may be used to define a target set of customers for a marketing or communication campaign, or to define analytics related to the customers in that subset. Audiences are defined and managed by financial institution administrators and analysts. Each analyst can [list and view all audiences](#op-listCustomerAudiences) they have created and those which others have shared with them. Analysts can [create or copy audiences](#op-createCustomerAudience). Audiences can be shared with [other analysts who are collaborators](#op-listCustomerAudienceCollaborators).

    An Audience Template allows banking customers to create audiences with a pre-defined set of filters. To create a new customer audience from a template, pass the `id` of the template as the `?customerAudienceTemplateId=` query parameter on the [create the customer audience](#op-createCustomerAudience) operation. To override the filters in the referenced customer audience template, include them in the request body; otherwise the new audience uses the filters from the customer audience template. Customer audiences cannot be created from customer audience templates whenever the template is in the institution's `excludedCustomerAudienceTemplates`.


    ## API Identities

    This API is designed to be called from the following identity types:

      * Secure service client
  version: 4.0.0
  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
x-apiture-namespace: serviceCustomerAudiences
x-apiture-identity-types:
  - serviceClient
x-apiture-service-client: true
tags:
  - name: Customer Audiences
    description: Banking Customer Audiences
  - name: Customer Audience Actions
    description: Actions on a Banking Customer Audience
  - name: Customer Audience Collaborators
    description: Collaborators on a Banking Customer Audience
  - name: Customer Audience Templates
    description: Templates that data analysts can use to create Banking Customer Audiences
  - name: Data Analysts
    description: People Who Perform Data Analysis at the Financial Institution
servers:
  - url: /service
paths:
  /customerAudiences/{customerAudienceId}/archived:
    parameters:
      - $ref: '#/components/parameters/customerAudienceIdPathParam'
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    post:
      operationId: archiveCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      summary: Archive a customer audience
      description: |-
        Archive a customer audience. This changes the `state` property of the customer audience to `archived`. The response is the updated representation of the customer audience. This operation is idempotent: no changes are made if the customer audience is already `archived`. Archived audiences are automatically removed 30 days after being archived.

        Audiences that are in use elsewhere may not be archived.
      tags:
        - Customer Audience Actions
      parameters:
        - $ref: '#/components/parameters/ifMatchHeaderParam'
      responses:
        '200':
          description: OK. The operation succeeded. The customer audience was updated and its `state` changed to `archived`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudience'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/customerAudience'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: |-
            Conflict.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/cannotUpdateInUseAudience/v1.0.0`](https://static.api.apiture.com/errors/cannotUpdateInUseAudience/v1.0.0)<br>
              Cannot update, delete, or archive an audience that is used by another resource, such as a campaign.
              Remediation: Update or delete the resources that use this audience, then retry the operation.
          x-apiture-errors:
            - cannotUpdateInUseAudience
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '412':
          $ref: '#/components/responses/412'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/write
  /customerAudiences/{customerAudienceId}/active:
    parameters:
      - $ref: '#/components/parameters/customerAudienceIdPathParam'
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    post:
      operationId: restoreCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      summary: Restore an archived customer audience.
      description: 'Restore an archived customer audience. This changes the `state` property of the customer audience from `archived` to `active`. The response is the updated representation of the customer audience. This operation is idempotent: no changes are made if the customer audience is already `active`.'
      tags:
        - Customer Audience Actions
      parameters:
        - $ref: '#/components/parameters/ifMatchHeaderParam'
      responses:
        '200':
          description: OK. The operation succeeded. The customer audience was updated and its `state` changed to `active`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudience'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/customerAudience'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '412':
          $ref: '#/components/responses/412'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/write
  /importedCustomerAudiences:
    parameters:
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    post:
      operationId: importCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      summary: Import a customer audience
      description: |-
        Create a new customer audience from a file containing a list of customer identifiers.
        The import operation supports comma-separated values (CSV), plain text, and Microsoft Excel (`.xls` and `.xlsx` format) files with an optional header row. The file must consist of only one column of customer IDs. Files with additional columns result in import failures.
        The customers for the created audience may only be updated with [`updateCustomerAudienceCustomers`](#op-updateCustomerAudienceCustomers).
      tags:
        - Customer Audience Actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerAudienceImport'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '202':
          description: Accepted. The request was accepted but the import is not yet complete. The results in the response reflect what was able to be processed in the allowed timeframe.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
        '400':
          description: |-
            Bad Request. 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/emptyFileForImport/v1.0.0`](https://static.api.apiture.com/errors/emptyFileForImport/v1.0.0)<br>
              The provided values file is empty.
              Remediation: Supply the values for import in Base64 encoding of a well-formed values file.

            * [`https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0`](https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0)<br>
              The parsed values file contains too many columns.
              Remediation: Supply the Base64 encoding of a well-formed values file with a single column.

            * [`https://static.api.apiture.com/errors/invalidContentFormat/v1.0.0`](https://static.api.apiture.com/errors/invalidContentFormat/v1.0.0)<br>
              The format of the content for importing values is invalid.
              Remediation: Supply the Base64 encoding of a well-formed values file.

            The `content` field allows comma-separated values (CSV), plain text, and Microsoft Excel (.xls and .xlsx) formats.
          x-apiture-errors:
            - emptyFileForImport
            - tooFewColumnsInImport
            - invalidContentFormat
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/write
  /validatedCustomerAudiences:
    parameters:
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    post:
      operationId: validateCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      summary: Validate a file of customer identifiers
      description: |-
        Validate a file containing a list of customer identifiers.
        The operation supports comma-separated values (CSV), plain text, and Microsoft Excel (`.xls` and `.xlsx` format) files with an optional header row. The file must consist of only one column of customer IDs. Files with additional columns result in validation failures.
      tags:
        - Customer Audience Actions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerAudienceImport'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/validatedCustomerAudience'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/validatedCustomerAudience'
        '400':
          description: |-
            Bad Request. 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/emptyFileForImport/v1.0.0`](https://static.api.apiture.com/errors/emptyFileForImport/v1.0.0)<br>
              The provided values file is empty.
              Remediation: Supply the values for import in Base64 encoding of a well-formed values file.

            * [`https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0`](https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0)<br>
              The parsed values file contains too many columns.
              Remediation: Supply the Base64 encoding of a well-formed values file with a single column.

            * [`https://static.api.apiture.com/errors/invalidContentFormat/v1.0.0`](https://static.api.apiture.com/errors/invalidContentFormat/v1.0.0)<br>
              The format of the content for importing values is invalid.
              Remediation: Supply the Base64 encoding of a well-formed values file.

            The `content` field allows comma-separated values (CSV), plain text, and Microsoft Excel (.xls and .xlsx) formats.
          x-apiture-errors:
            - emptyFileForImport
            - tooFewColumnsInImport
            - invalidContentFormat
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/read
  /customerAudienceCounts:
    parameters:
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    post:
      operationId: countAudienceCustomers
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudienceActions
      summary: Count the customers who match a set of customer audience filters.
      description: Return a count of the customers who match a set of customer audience filters and the total number of customers at the financial institution. If neither an `insightId` nor filter properties are given, then the full customer count is returned. If both `insightId` and filter properties are given, then then the returned count will include customers who satisfy both the filters in the insight and satisfy the filters in this request.
      tags:
        - Customer Audience Actions
      requestBody:
        required: true
        description: The parameters to use when counting customers.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerAudienceCountsRequest'
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudienceCounts'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/customerAudienceCounts'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0`](https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0)<br>
              The given customer audience filters are invalid. The filters are not customer filters, or the filter type is not found, or the filter values do not satisfy the constraints of that filter type.
              Remediation: Correct the filters according to the `detail` and/or `problems` in the problem response.
            The `attributes` object in the error may have the properties defined for [`invalidCustomerAudienceFilters`](https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0).
          x-apiture-errors:
            - invalidCustomerAudienceFilters
          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:
        - clientCredentials:
            - adminData/read
  /customerAudiences/{customerAudienceId}/collaborators:
    parameters:
      - $ref: '#/components/parameters/customerAudienceIdPathParam'
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    get:
      summary: Fetch the list of audience collaborators
      description: Fetch the list of collaborators for a customer audience.
      operationId: listCustomerAudienceCollaborators
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudienceCollaborators
      tags:
        - Customer Audience Collaborators
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudienceCollaborators'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/read
  /customerAudiences/{customerAudienceId}/customers:
    parameters:
      - $ref: '#/components/parameters/customerAudienceIdPathParam'
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    get:
      summary: Fetch a page of customers in a customer audience
      description: Return a page of customers for this customer audience. This is a set of data for banking customers who satisfy the filter criteria defined by this customer audience. There can be many thousands or even millions of customers, so the client must fetch these via pagination with a maximum `limit` of 100,000 customers per page. The customer audience resource indicates how many customers satisfy the audience filter criteria.
      operationId: listCustomerAudienceCustomers
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      tags:
        - Customer Audiences
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - name: limit
          in: query
          description: The maximum number of items to return in this paged response.
          schema:
            type: integer
            format: int32
            minimum: 0
            maximum: 100000
            default: 10000
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudienceCustomers'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CustomerAudience'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/read
    put:
      summary: Update audience customers
      description: |-
        Replace the list of customers for this audience.
        This operation supports the same file content formats listed in [`importCustomerAudience`](#op-importCustomerAudience).
        The customers for this audience may only be replaced if the audience was created with [`importCustomerAudience`](#op-importCustomerAudience) (that is, it has a `source` of `list`).
      operationId: updateCustomerAudienceCustomers
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      tags:
        - Customer Audience Actions
      parameters:
        - $ref: '#/components/parameters/ifMatchHeaderParam'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerAudienceCustomersImport'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '202':
          description: Accepted. The request was accepted but import is not yet complete. The results in the response reflect what was able to be processed in the allowed time.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/importedCustomerAudience'
        '400':
          description: |-
            Bad Request. 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/emptyFileForImport/v1.0.0`](https://static.api.apiture.com/errors/emptyFileForImport/v1.0.0)<br>
              The provided values file is empty.
              Remediation: Supply the values for import in Base64 encoding of a well-formed values file.

            * [`https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0`](https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0)<br>
              The parsed values file contains too many columns.
              Remediation: Supply the Base64 encoding of a well-formed values file with a single column.

            * [`https://static.api.apiture.com/errors/invalidContentFormat/v1.0.0`](https://static.api.apiture.com/errors/invalidContentFormat/v1.0.0)<br>
              The format of the content for importing values is invalid.
              Remediation: Supply the Base64 encoding of a well-formed values file.

            The `content` field allows comma-separated values (CSV), plain text, and Microsoft Excel (.xls and .xlsx) formats.
          x-apiture-errors:
            - emptyFileForImport
            - tooFewColumnsInImport
            - invalidContentFormat
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CustomerAudience'
        '412':
          $ref: '#/components/responses/412'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/write
  /customerAudiences:
    parameters:
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    get:
      summary: Return a collection of customer audiences
      description: Return a collection of customer audiences for the current analyst. This includes audiences the analyst has created and audiences that others have shared with them.
      operationId: listCustomerAudiences
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      tags:
        - Customer Audiences
      parameters:
        - name: q
          in: query
          description: Optional search string. This search is case insensitive and will return audiences where any part of the name or description matches the search string. See "Using Search Strings" in the Admin Search API for details on searching for multiple words.
          schema:
            type: string
            format: text
            minLength: 1
            maxLength: 1000
        - name: state
          in: query
          description: Filter the response to only audiences whose `state` is in this pipe-delimited set of state names.
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 2
            uniqueItems: true
            items:
              $ref: '#/components/schemas/customerAudienceState'
        - name: source
          in: query
          description: Filter the response to only audiences whose `source` is in this pipe-delimited set of source values.
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 4
            uniqueItems: true
            items:
              $ref: '#/components/schemas/customerAudienceSource'
        - name: enrollmentState
          in: query
          description: |-
            Filter the response to only audiences whose `enrollmentState` is in this pipe-delimited set of values.

            Note: The `enrollmentState` query parameter value `all` is not a catchall term to return all possible audiences regardless of their `enrollmentState`. Using `?enrollmentState=all` will only return audiences with an `enrollmentState` that is set to `all`.
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 5
            uniqueItems: true
            items:
              $ref: '#/components/schemas/customerAudienceEnrollmentState'
        - name: campaign
          description: Returns audiences created from a campaign's engagement data, where the campaign's ID matches the given campaign parameter value.
          in: query
          schema:
            $ref: '#/components/schemas/resourceId'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudiences'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/read
    post:
      summary: Create a new customer audience
      description: Create a new customer audience within the customer audiences collection. If an `insightId` is given, then the resulting audience is all customers who satisfy both the filters in the insight and satisfy the filters in this request.
      operationId: createCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      tags:
        - Customer Audiences
      parameters:
        - name: copyOf
          description: Copy the properties and filters of the referenced audience resource, except the collaborators. The `copyOf` parameter is the resource `id` of the source audience resource. Values in the request body override the values from the source. `insightId`, `customerAudienceTemplateId`, `campaignId` and `copyOf` are mutually exclusive.
          in: query
          schema:
            $ref: '#/components/schemas/resourceId'
        - name: insightId
          description: Create an audience from the referenced audience insight resource. This value is the `id` of the insight instance. Other attributes of the resulting audience (the `customerType`, `filters`) are immutable in the new `customerType` audience. `insightId`, `customerAudienceTemplateId`, `campaignId`, and `copyOf` are mutually exclusive.
          in: query
          schema:
            $ref: '#/components/schemas/resourceId'
        - name: customerAudienceTemplateId
          description: If passed, this parameter indicates the audience was derived from a customer audience template. The value of this parameter is the `id` of that customer audience template. `insightId`, `customerAudienceTemplateId`, `campaignId`, and `copyOf` are mutually exclusive.
          in: query
          schema:
            $ref: '#/components/schemas/resourceId'
        - name: campaignId
          description: If passed, this parameter indicates the audience was derived from a campaign's engagement data. The value of this parameter is the `id` of that campaign. This parameter does not automatically apply any filters to the audience. Filters must be added to the audience that indicate which engagement properties are used to create the audience. `insightId`, `customerAudienceTemplateId`, `campaignId`, and `copyOf` are mutually exclusive.
          in: query
          schema:
            $ref: '#/components/schemas/resourceId'
      requestBody:
        required: true
        description: The data necessary to create a new customer audience.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newCustomerAudience'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudience'
          headers:
            Location:
              description: The URI of the new customer audience.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
            ETag:
              $ref: '#/components/headers/ETag'
        '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/invalidSourceAudience/v1.0.0`](https://static.api.apiture.com/errors/invalidSourceAudience/v1.0.0)<br>
              The source audience does not exist or is not an audience that is eligible to be copied.
              Remediation: Pass the `id` of a mutable, copyable audience.

            * [`https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0`](https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0)<br>
              The given customer audience filters are invalid. The filters are not customer filters, or the filter type is not found, or the filter values do not satisfy the constraints of that filter type.
              Remediation: Correct the filters according to the `detail` and/or `problems` in the problem response.
            The `attributes` object in the error may have the properties defined for [`invalidCustomerAudienceFilters`](https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0).
            * [`https://static.api.apiture.com/errors/duplicateFilterOrdinals/v1.0.0`](https://static.api.apiture.com/errors/duplicateFilterOrdinals/v1.0.0)<br>
              Two or more filters in the request have the same ordinal.
              Remediation: Resubmit the request such that all filters have unique ordinals.

            * [`https://static.api.apiture.com/errors/invalidFilterOrdinals/v1.0.0`](https://static.api.apiture.com/errors/invalidFilterOrdinals/v1.0.0)<br>
              Ordinals were not provided for all filters. If ordinals are provided, then they must be set for every filter.
              Remediation: Resubmit the request such that all filters have unique ordinals, or remove all ordinals.

            * [`https://static.api.apiture.com/errors/invalidSourceInsight/v1.0.0`](https://static.api.apiture.com/errors/invalidSourceInsight/v1.0.0)<br>
              The source data does not exist or is not eligible to be used for audience creation.
              Remediation: Resubmit the request with the `id` of an eligible insight.

            * [`https://static.api.apiture.com/errors/invalidCustomerAudienceTemplate/v1.0.0`](https://static.api.apiture.com/errors/invalidCustomerAudienceTemplate/v1.0.0)<br>
              The source customer audience template does not exist or is not eligible to be used for audience creation.
              Remediation: Resubmit the request with the `id` of an eligible customer audience template. If this template is in the institution's `excludedCustomerAudienceTemplates`, then remove it and retry the operation.

            * [`https://static.api.apiture.com/errors/invalidCreateAudienceQueryParameters/v1.0.0`](https://static.api.apiture.com/errors/invalidCreateAudienceQueryParameters/v1.0.0)<br>
              The `insightId`, `customerAudienceTemplateId`, and `copyOf` query parameters are mutually exclusive, and cannot be combined in a single request to create an audience.
              Remediation: Resubmit the request with only one of the following query parameters: `insightId`, `customerAudienceTemplateId`, or `copyOf`.

            * [`https://static.api.apiture.com/errors/invalidCampaign/v1.0.0`](https://static.api.apiture.com/errors/invalidCampaign/v1.0.0)<br>
              The campapign does not exist or is not a campaign that has eligible engagement data to create an audience from.
              Remediation: Pass the `id` of a campaign with valid engagement data.
          x-apiture-errors:
            - invalidSourceAudience
            - invalidCustomerAudienceFilters
            - duplicateFilterOrdinals
            - invalidFilterOrdinals
            - invalidSourceInsight
            - invalidCustomerAudienceTemplate
            - invalidCreateAudienceQueryParameters
            - invalidCampaign
          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:
        - clientCredentials:
            - adminData/write
  /customerAudiences/{customerAudienceId}:
    parameters:
      - $ref: '#/components/parameters/customerAudienceIdPathParam'
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    get:
      summary: Fetch a representation of this customer audience
      description: Return the JSON representation of this customer audience resource.
      operationId: getCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      tags:
        - Customer Audiences
      parameters:
        - $ref: '#/components/parameters/ifNoneMatchHeaderParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudience'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CustomerAudience'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/read
    patch:
      summary: Update this customer audience
      description: Perform a partial update of this customer audience 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: patchCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      tags:
        - Customer Audiences
      parameters:
        - $ref: '#/components/parameters/ifMatchHeaderParam'
      requestBody:
        required: true
        description: The fields to update within the customer audience.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/customerAudiencePatch'
          application/json:
            schema:
              $ref: '#/components/schemas/customerAudiencePatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudience'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CustomerAudience'
        '409':
          description: |-
            Conflict.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/cannotUpdateImmutableAudienceProperties/v1.0.0`](https://static.api.apiture.com/errors/cannotUpdateImmutableAudienceProperties/v1.0.0)<br>
              The `customerType` and `filters` of an audience created from an insight are not mutable.
              Remediation: Omit `customerType` and `filters` from the request and retry the operation.

            * [`https://static.api.apiture.com/errors/cannotUpdateInUseAudience/v1.0.0`](https://static.api.apiture.com/errors/cannotUpdateInUseAudience/v1.0.0)<br>
              Cannot update, delete, or archive an audience that is used by another resource, such as a campaign.
              Remediation: Update or delete the resources that use this audience, then retry the operation.
          x-apiture-errors:
            - cannotUpdateImmutableAudienceProperties
            - cannotUpdateInUseAudience
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '412':
          $ref: '#/components/responses/412'
        '422':
          x-apiture-errors:
            - invalidCustomerAudienceFilters
            - duplicateFilterOrdinals
            - invalidFilterOrdinals
          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/invalidCustomerAudienceFilters/v1.0.0`](https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0)<br>
              The given customer audience filters are invalid. The filters are not customer filters, or the filter type is not found, or the filter values do not satisfy the constraints of that filter type.
              Remediation: Correct the filters according to the `detail` and/or `problems` in the problem response.
            The `attributes` object in the error may have the properties defined for [`invalidCustomerAudienceFilters`](https://static.api.apiture.com/errors/invalidCustomerAudienceFilters/v1.0.0).
            * [`https://static.api.apiture.com/errors/duplicateFilterOrdinals/v1.0.0`](https://static.api.apiture.com/errors/duplicateFilterOrdinals/v1.0.0)<br>
              Two or more filters in the request have the same ordinal.
              Remediation: Resubmit the request such that all filters have unique ordinals.

            * [`https://static.api.apiture.com/errors/invalidFilterOrdinals/v1.0.0`](https://static.api.apiture.com/errors/invalidFilterOrdinals/v1.0.0)<br>
              Ordinals were not provided for all filters. If ordinals are provided, then they must be set for every filter.
              Remediation: Resubmit the request such that all filters have unique ordinals, or remove all ordinals.
          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:
        - clientCredentials:
            - adminData/write
    delete:
      summary: Delete this customer audience
      description: Delete this customer audience resource and any resources that are owned by it, including audience connections. Customer audiences that are used in `scheduled`, `active`, `paused`, or `testing` campaigns cannot be deleted. If an audience is deleted, then engagement data can still be retrieved for any `completed` campaign that was created from the audience.
      operationId: deleteCustomerAudience
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudiences
      tags:
        - Customer Audiences
      security:
        - clientCredentials:
            - adminData/write
      parameters:
        - $ref: '#/components/parameters/ifMatchHeaderParam'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CustomerAudience'
        '409':
          description: |-
            Conflict.

            This problem response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/cannotUpdateInUseAudience/v1.0.0`](https://static.api.apiture.com/errors/cannotUpdateInUseAudience/v1.0.0)<br>
              Cannot update, delete, or archive an audience that is used by another resource, such as a campaign.
              Remediation: Update or delete the resources that use this audience, then retry the operation.
          x-apiture-errors:
            - cannotUpdateInUseAudience
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '412':
          $ref: '#/components/responses/412'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
  /customerAudienceTemplates:
    parameters:
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    get:
      summary: Return a collection of customer audience templates
      description: Return a collection of customer audience templates for the current analyst.
      operationId: listCustomerAudienceTemplates
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudienceTemplates
      tags:
        - Customer Audience Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudienceTemplates'
        '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:
        - clientCredentials:
            - adminData/read
  /customerAudienceTemplates/{customerAudienceTemplateId}:
    parameters:
      - $ref: '#/components/parameters/customerAudienceTemplateIdPathParam'
      - $ref: '#/components/parameters/singleInstitutionsQueryParam'
    get:
      summary: Fetch a representation of this customer audience template
      description: Return the JSON representation of this customer audience template resource.
      operationId: getCustomerAudienceTemplate
      x-apiture-api: serviceCustomerAudiences
      x-apiture-group: customerAudienceTemplates
      tags:
        - Customer Audience Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAudienceTemplate'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404CustomerAudienceTemplate'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - clientCredentials:
            - adminData/read
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: API-Key
      in: header
      description: API Key based client identification. See details at [API Keys](https://dx.apiture.com/docs/api/concepts/api-keys/).
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/apiKey
    clientCredentials:
      type: oauth2
      description: Client Credentials OAuth2 flow that allows a secure service application to access resources. (This access is not used with insecure clients such as web or mobile applications.) See details at [Secure Access](https://dx.apiture.com/docs/api/guides/secure-access/).
      flows:
        clientCredentials:
          tokenUrl: https://dev-oidc.apiture-comm-nonprod.com/oidc/token
          scopes:
            bankingAdmin/read: Read a wide variety of banking and other financial institution and customer data.
            bankingAdmin/write: Write a wide variety of banking and other financial institution and customer data.
            adminData/read: Read access to non-banking data and resources.
            adminData/write: Read, write, and delete access to non-banking data and resources.
            samlPlatform/write: Write access to security-critical Apiture internal key and certificate data.
            samlPlatform/read: Read access to integration resources, e.g. supported codes.
            samlAdmin/write: Write, delete and execute access to service provider metadata and SAML computation operations.
            systemIntegrations/read: Read access to integration definition resources.
            systemIntegrations/write: Write, delete and execute access to integration definition resources.
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/clientCredentials
  parameters:
    customerAudienceIdPathParam:
      name: customerAudienceId
      description: The unique identifier of this customer audience. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    customerAudienceTemplateIdPathParam:
      name: customerAudienceTemplateId
      description: The unique identifier of this customer audience template. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    singleInstitutionsQueryParam:
      name: institutions
      in: query
      description: An identifier that uniquely identifies a financial institution. This can be used to fetch resources for a particular institution. This is only allowed for Apiture administrative users, and cannot be used by admins at an institution.
      style: pipeDelimited
      explode: false
      schema:
        type: array
        minItems: 1
        maxItems: 1
        items:
          $ref: '#/components/schemas/institutionId'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/singleInstitutionsQueryParam
    ifMatchHeaderParam:
      name: If-Match
      description: The entity tag that was returned in the `ETag` response header of a previous call. If passed, this must match the current entity tag of the resource, else the operation fails with a 412 Precondition Failed error.
      in: header
      schema:
        $ref: '#/components/schemas/entityTag'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/ifMatchHeaderParam
    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
    ifNoneMatchHeaderParam:
      name: If-None-Match
      description: The entity tag that was returned in the `ETag` response header of a previous call. If the resource's current entity tag value matches this header value, the `GET` will return 304 (Not Modified) and no response body, else the current resource representation and updated `ETag` is returned.
      in: header
      schema:
        $ref: '#/components/schemas/entityTag'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/ifNoneMatchHeaderParam
  responses:
    '204':
      description: No Content. The operation succeeded but returned no response body.
      x-resolved-from: ../../common/openapi.yaml#/components/responses/204
    '304':
      description: Not Modified. The resource has not been modified since it was last fetched.
      x-resolved-from: ../../common/openapi.yaml#/components/responses/304
    '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
    '412':
      description: |-
        Precondition Failed. One or more conditions given in the request header fields evaluated to false when tested on the server.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/preconditionFailed/v1.0.0`](https://static.api.apiture.com/errors/preconditionFailed/v1.0.0)<br>
          One or more conditions given in the request header fields evaluated to false when tested on the server.
          Remediation: Update resources and use it's most recent ETag or modification time stamp.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/preconditionFailed'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
      x-resolved-from: ../../common/openapi.yaml#/components/responses/412
    '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/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
          The syntax of the request entity is correct but was unable to process the contained instructions.
          Remediation: Provide a semantically correct request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unprocessableEntity'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0
              title: Unprocessable Entity
              status: 422
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request body and/or query parameters were well-formed but otherwise invalid.
              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/unprocessableEntity/v1.0.0
              title: Unprocessable Entity
              status: 422
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request body and/or query parameters were well-formed but otherwise invalid.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/422
    '428':
      description: |-
        Precondition Required. The origin server requires the request to be conditional.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/preconditionRequired/v1.0.0`](https://static.api.apiture.com/errors/preconditionRequired/v1.0.0)<br>
          The origin server requires the request to be conditional.
          Remediation: Use a If-Unmodified-Since or If-Match request header corresponding to the most recent resource state.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/preconditionRequired'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
      x-resolved-from: ../../common/openapi.yaml#/components/responses/428
    '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
    404CustomerAudience:
      description: Not Found. There is no such customer audience resource at the specified `{customerAudienceId}`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404CustomerAudienceTemplate:
      description: Not Found. There is no such customer audience template resource at the specified `{customerAudienceId}`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422CustomerAudienceTemplate:
      description: |-
        Unprocessable Entity.

        This problem response may have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/customerAudienceTemplateCannotContainNestedAudienceFilter/v1.0.0`](https://static.api.apiture.com/errors/customerAudienceTemplateCannotContainNestedAudienceFilter/v1.0.0)<br>
          The customer audience template contains a nested audience filter.
          Remediation: Resubmit the request without any nested audience `filters`.

        * [`https://static.api.apiture.com/errors/duplicateCustomerAudienceTemplateName/v1.0.0`](https://static.api.apiture.com/errors/duplicateCustomerAudienceTemplateName/v1.0.0)<br>
          The given `name` is already in use by another customer audience template.
          Remediation: Resubmit the request with a unique `name`.

        * [`https://static.api.apiture.com/errors/invalidCustomerAudienceTemplateTopic/v1.0.0`](https://static.api.apiture.com/errors/invalidCustomerAudienceTemplateTopic/v1.0.0)<br>
          The given customer audience template topics are invalid or cannot be found.
          Remediation: Resubmit the request with valid topics.

        * [`https://static.api.apiture.com/errors/missingCustomerAudienceTemplateFilters/v1.0.0`](https://static.api.apiture.com/errors/missingCustomerAudienceTemplateFilters/v1.0.0)<br>
          The customer audience template has invalid `filters`. At least one of `primitiveFilters` or `compositeFilters` must be present and not empty.
          Remediation: Resubmit the request with `filters` that contain at least one valid set of `primitiveFilters` or `compositeFilters`.
      x-apiture-errors:
        - customerAudienceTemplateCannotContainNestedAudienceFilter
        - duplicateCustomerAudienceTemplateName
        - invalidCustomerAudienceTemplateTopic
        - missingCustomerAudienceTemplateFilters
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    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
  schemas:
    customerAudienceFileImportFields:
      x-apiture-version: 2.1.0
      title: Customer Audience Import Fields (v2.1.0)
      description: Fields used to compose customer audience file import requests.
      x-apiture-fragment: true
      x-apiture-todo: Add fileUrl
      type: object
      properties:
        identifierType:
          $ref: '#/components/schemas/customerAudienceImportIdentifierType'
        includesHeader:
          description: Indicates whether the customer audience IDs file includes a header row or not.
          type: boolean
        fileName:
          $ref: '#/components/schemas/customerAudienceFileName'
        content:
          description: |-
            The [Base64-encoded](https://en.wikipedia.org/wiki/Base64) content containing the identifiers for customers to include in a customer audience.

            The import allows comma-separated values (CSV), plain text, and Microsoft Excel (.xls and .xlsx format) files.

            The maximum length constraint allows for a (non-Base64 encoded) input file of at most 6,500,000 bytes.
          type: string
          format: byte
          contentEncoding: base64
          maxLength: 8905000
          example: QmFzZS02NCBlbmNvZGVkIENTViBjb250ZW50IGhlcmUuLi4=
      example:
        identifierType: taxIdNumber
        includesHeader: false
        content: QmFzZS02NCBlbmNvZGVkIENTViBjb250ZW50IGhlcmUuLi4=
    customerAudienceImport:
      x-apiture-version: 2.2.0
      title: Customer Audience Import (v2.2.0)
      description: A request to create a new customer audience from a file of customer audience IDs.
      required:
        - name
        - identifierType
        - includesHeader
        - fileName
        - content
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/customerAudienceDescriptionFields'
        - $ref: '#/components/schemas/customerAudienceFileImportFields'
      example:
        name: New Customers Ages 35-49
        description: New customers added within the last 60 days who are in the 35-49 years age group.
        identifierType: taxIdNumber
        fileName: 2023_18to35_north_carolina.csv
        includesHeader: false
        content: QmFzZS02NCBlbmNvZGVkIENTViBjb250ZW50IGhlcmUuLi4=
    customerAudienceCustomersImport:
      x-apiture-version: 1.3.0
      title: Customer Audience Import (v1.3.0)
      description: A request to import a values file of customers for a customer audience.
      required:
        - identifierType
        - includesHeader
        - content
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/customerAudienceFileImportFields'
      example:
        identifierType: taxIdNumber
        includesHeader: false
        fileName: 2023_18to35_north_carolina.csv
        content: QmFzZS02NCBlbmNvZGVkIENTViBjb250ZW50IGhlcmUuLi4=
    validatedCustomerAudience:
      x-apiture-version: 1.1.0
      title: Validated Customer Audience (v1.1.0)
      description: The result from validating a list of customer audience customers from a file.
      required:
        - customerCount
        - totalCustomerCount
        - unmatchedCount
        - unmatchedIds
      allOf:
        - $ref: '#/components/schemas/customerAudienceValidationFields'
        - $ref: '#/components/schemas/customerAudienceCountFields'
      example:
        customerCount: 12340
        retailCustomerCount: 10000
        commercialCustomerCount: 2340
        enrolledCustomerCount: 12300
        unenrolledCustomerCount: 40
        applicantCount: 100
        totalCustomerCount: 2340659
        unmatchedCount: 0
        unmatchedIds: []
    customerAudienceValidationFields:
      title: Customer Audience Validation Fields (v1.0.0)
      description: Fields used to compose customer audience file import validation requests.
      x-apiture-fragment: true
      type: object
      properties:
        unmatchedCount:
          description: The count of identifiers that are unable to be matched to customers for this audience.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000
        unmatchedIds:
          description: List of customer identifiers that were unable to be matched. This list is limited to the first 1,000 unmatched IDs. Identifiers longer than 50 characters may be truncated.
          type: array
          maxItems: 1000
          items:
            type: string
            format: text
            maxLength: 50
      x-apiture-version: 1.0.0
    importedCustomerAudience:
      x-apiture-version: 7.7.0
      title: Imported Customer Audience (v7.7.0)
      description: The result from importing a list of customer audience customers from a file.
      type: object
      allOf:
        - $ref: '#/components/schemas/customerAudience'
        - $ref: '#/components/schemas/customerAudienceValidationFields'
      example:
        id: 0399abedfd3d
        name: Most valuable customers
        state: active
        createdAt: '2023-04-14T06:47:53.375Z'
        updatedAt: '2023-04-24T08:48:05.000Z'
        customerCount: 12340
        retailCustomerCount: 10000
        commercialCustomerCount: 2340
        enrolledCustomerCount: 12300
        unenrolledCustomerCount: 40
        applicantCount: 100
        totalCustomerCount: 2340659
        customerCountUpdatedAt: '2023-04-24T08:48:05.000Z'
        unmatchedCount: 2
        unmatchedIds:
          - c50aae5d1be0ad19ca5b
          - f26c0-43c527f42430b15
        fileName: 2023_18to35_north_carolina.csv
        owners:
          - id: 0399abedfd3d
            firstName: Bob
            lastName: Hartley
            username: bhartley
        updatedBy:
          id: 0399abedfd3d
          firstName: Bob
          lastName: Hartley
          username: bhartley
        collaborators: []
        connections:
          - id: 0399abed-fd3d
            state: active
            provider:
              name: pendo
              resourceId: q6PioQIWPFAhOA
        identifierType: customerId
        includesHeader: true
    customerAudienceSource:
      x-apiture-version: 1.2.0
      title: Customer Audience Source (v1.2.0)
      description: |-
        The source or origin of the customers in a customer audience.

        <strong><code>customerAudienceSource</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>filter</code></strong></td><td>Filter: <p>The audience was created from a set of filters</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>insight</code></strong></td><td>Insight: <p>The audience was created from an insight</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>list</code></strong></td><td>List: <p>The audience was created from importing a list of customer IDs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>template</code></strong></td><td>Template: <p>The audience was created from an audience template.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>campaign</code></strong></td><td>Campaign: <p>The audience was created from a campaign&#39;s engagement data.</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: customerAudienceSource
      enum:
        - filter
        - insight
        - list
        - template
        - campaign
    customerAudienceImportIdentifierType:
      x-apiture-version: 1.1.0
      title: Customer Audience Import Identifier Type (v1.1.0)
      description: |-
        The type of the field used for importing customer audience customers.

        <strong><code>customerAudienceImportIdentifierType</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>username</code></strong></td><td>Username: <p>The import contains the login usernames of financial institution customers</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>customerId</code></strong></td><td>Customer ID: <p>The import contains the customer IDs of financial institution customers</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>dataCustomerId</code></strong></td><td>Data Customer ID: <p>The import contains the data customer IDs of financial institution customers</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>taxIdNumber</code></strong></td><td>Tax ID Number: <p>The import contains the tax identifiers of financial institution customers, such as social security number (SSN) or employer identification number (EIN)</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: customerAudienceImportIdentifierType
      enum:
        - username
        - customerId
        - dataCustomerId
        - taxIdNumber
    customerAudienceCustomerType:
      title: Customer Audience Customer Type (v1.0.0)
      description: |-
        Selects the customer type to use as the primary customer filter.

        <strong><code>customerAudienceCustomerType</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>all</code></strong></td><td>All Customers: <p>All customers/members at the financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>retail</code></strong></td><td>Retail Customers: <p>Retail (personal) banking customers/members at the financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>commercial</code></strong></td><td>Commercial Customers: <p>Commercial (business) banking customers/members at the financial institution</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: customerAudienceCustomerType
      enum:
        - all
        - retail
        - commercial
      x-apiture-version: 1.0.0
    customerAudienceEnrollmentState:
      x-apiture-version: 1.1.0
      title: Customer Audience Enrollment State (v1.1.0)
      description: |-
        Selects the enrollment state to use as the primary customer enrollment state filter.

        <strong><code>customerAudienceEnrollmentState</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>all</code></strong></td><td>All: <p>Includes all banking customers and applicants.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>customer</code></strong></td><td>Customer: <p>Includes enrolled and unenrolled banking customers (retail and commercial).</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>enrolled</code></strong></td><td>Enrolled: <p>Users that are enrolled for online banking at the financial institution.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>unenrolled</code></strong></td><td>Unenrolled: <p>Users that are not enrolled for online banking at the financial institution.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>applicant</code></strong></td><td>applicant: <p>An entity or entities that are in the process of applying for a digital account, but are not yet customers at the financial institution.</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: customerAudienceEnrollmentState
      enum:
        - all
        - customer
        - enrolled
        - unenrolled
        - applicant
    dataAnalyst:
      x-apiture-version: 2.0.1
      title: Data Analyst (v2.0.1)
      description: A person who uses data analysis products.
      type: object
      allOf:
        - $ref: '#/components/schemas/userAccountReference'
      example:
        id: 0399abedfd3d
        firstName: Bob
        lastName: Hartley
        username: bhartley
    customerAudienceOwner:
      title: Customer Audience Owner (v1.0.0)
      description: An owner of a customer audience resource. An owner can manage ownership of the customer audience.
      type: object
      allOf:
        - $ref: '#/components/schemas/dataAnalyst'
      x-apiture-version: 1.0.0
    customerAudienceCollaborator:
      x-apiture-version: 2.0.1
      title: Customer Audience Collaborator (v2.0.1)
      description: A collaborator that a customer audience resource has been shared with. This customer audience appears in the [`listCustomerAudiences`](#op-listCustomerAudiences) response for each collaborator, and their `allows` object will determine what operations the collaborator may use.
      type: object
      allOf:
        - $ref: '#/components/schemas/dataAnalyst'
    customerAudienceCollaborators:
      x-apiture-version: 3.0.0
      title: Customer Audience Collaborators (v3.0.0)
      description: A list of collaborators that this audience resource has been shared with. Manage collaborators with the `patchCustomerAudienceCollaborator` operation.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - owners
            - items
          properties:
            owners:
              description: An array containing the owners of this customer audience.
              type: array
              minItems: 1
              maxItems: 1
              items:
                $ref: '#/components/schemas/customerAudienceOwner'
            items:
              description: An array containing customer audience collaborator items.
              type: array
              maxItems: 2000
              items:
                $ref: '#/components/schemas/customerAudienceCollaborator'
    customerAudienceCustomerItem:
      x-apiture-version: 1.1.0
      title: Customer Audience Customer Item (v1.1.0)
      description: Customer data, including the `customerId` and `dataCustomerId`, for a person at the financial institution. If the person is not a digital banking customer at the financial institution, then `customerId` is omitted.
      required:
        - dataCustomerId
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            dataCustomerId:
              description: The ID of the customer in data systems.
              type: string
              pattern: ^[-_:.~$a-zA-Z0-9]{6,48}$
              minLength: 1
              maxLength: 48
            customerId:
              description: The ID of the digital banking customer.
              $ref: '#/components/schemas/resourceId'
            primaryPhoneNumber:
              description: The primary phone number of the customer.
              allOf:
                - $ref: '#/components/schemas/extendedPhoneNumber'
            primaryEmail:
              description: The primary email address of the customer.
              type: string
              format: email
              maxLength: 255
              example: email@example.com
      example:
        dataCustomerId: d884eab0082669f519b0
        customerId: 9dfb049f5672424d7b3b
        primaryPhoneNumber: '+19992345678'
        primaryEmail: email@example.com
    customerAudienceCustomers:
      x-apiture-version: 2.1.0
      title: Customer Audience Customers (v2.1.0)
      description: A page of customer data for an audience.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The array of customer data.
              type: array
              maxItems: 100000
              items:
                $ref: '#/components/schemas/customerAudienceCustomerItem'
            count:
              description: The total number of customers which satisfy this audience's filter criteria.
              type: integer
              format: int32
              minimum: 0
              maximum: 1000000000
            nextPage_url:
              description: The URL of the next page of customer data. If this URL is omitted, there are no more customer data.
              readOnly: true
              maxLength: 256
              type: string
              format: uri-reference
              example: https://static.api.apiture.com/bankingAdmin/customerAudiences/0399abedfd3d/customers?start=74f96e77c3aafcb9fe85&limit=100000
      example:
        count: 189
        items:
          - dataCustomerId: 9dfb049f5672424d7b3b
            customerId: d884eab0082669f519b0
            primaryPhoneNumber: '+19992345678'
            primaryEmail: email@example.com
          - dataCustomerId: f26c043c527f42430b15
            customerId: c3aadd481d5301b568e6
            primaryPhoneNumber: '+11112345678'
            primaryEmail: api@example.com
          - dataCustomerId: 40ce35bd15417a2e2a09
            customerId: 63d87c56c86fc231f20f
          - dataCustomerId: c84fd4b81049c27d4a65
            customerId: 936a1b266f88066d9c97
          - dataCustomerId: b8e93bb1bd22dba4093c
            customerId: 80f3a986ab155a4e740e
          - dataCustomerId: c5247e8f5de1a4e79f67
            customerId: 514434dfd748d66f506c
          - dataCustomerId: 5e979274f87e41eee739
            customerId: 4b6b478295c150ae7a7e
          - dataCustomerId: 6dc7c36cb2306288919f
            customerId: f31508460b6329cc6f9a
          - dataCustomerId: 09c8fdf03607d0e12c91
          - dataCustomerId: c50aae5d1be0ad19ca5b
        nextPage_url: https://static.api.apiture.com/bankingAdmin/customerAudiences/0399abedfd3d/customers?start=74f96e77c3aafcb9fe85?limit=10
    customerAudienceState:
      title: Customer Audience State (v1.0.0)
      description: |-
        The state of a Customer Audience

        <strong><code>customerAudienceState</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 audience is active and available for use.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>archived</code></strong></td><td>Archived: <p>The audience is archived and not available for use. Archived audiences are deleted 30 days after being archived.</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: customerAudienceState
      enum:
        - active
        - archived
      x-apiture-version: 1.0.0
    customerAudienceDescriptionFields:
      x-apiture-version: 2.0.0
      title: Customer Audience Description Fields (v2.0.0)
      description: A fragment schema used to define description fields for customer audience schemas.
      type: object
      x-apiture-fragment: true
      properties:
        name:
          description: The name of this audience.
          type: string
          format: text
          minLength: 3
          maxLength: 100
        description:
          description: A detailed description of the audience.
          type: string
          format: text
          minLength: 3
          maxLength: 256
    customerAudienceFilterFields:
      x-apiture-version: 2.3.0
      title: Customer Audience Filter Fields (v2.3.0)
      description: A fragment schema used to define filter fields for customer audience schemas.
      type: object
      x-apiture-fragment: true
      properties:
        customerType:
          description: |-
            When used with the `filter` customer audience source, the customer type to use as the primary customer filter. This is implicitly combined with the other `filters` with an `and` operator. The default is `all`.
            When used with a `list` or `insight` customer audience source, the customer type is derived based on the audience customers.
          $ref: '#/components/schemas/customerAudienceCustomerType'
        enrollmentState:
          description: |-
            When used with the `filter` customer audience source, the enrollment state to use as the primary enrollment filter. This is implicitly combined with the other `filters` with an `and` operator. The default is `customer`.
            When used with a `list` or `insight` customer audience source, this is the enrollment state used as the primary enrollment state filter.
          $ref: '#/components/schemas/customerAudienceEnrollmentState'
        filters:
          description: One or more customer audiences filters that are combined with a logical operator (`and`, `or`, `not`). Note that the customer type filter is implicitly defined with the `customerType` property of the audience resource (it is also automatically combined with these `filters` with an `and`), so these filters should not include a customer type filter.
          $ref: '#/components/schemas/compositeAnalyticFilter'
    customerAudienceFields:
      x-apiture-version: 3.3.0
      title: Customer Audience Fields (v3.3.0)
      description: Common fields of the customer audience resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/customerAudienceDescriptionFields'
        - $ref: '#/components/schemas/customerAudienceFilterFields'
      example:
        name: New Customers Ages 35-49
        description: New customers added within the last 60 days who are in the 35-49 years age group.
        customerType: retail
        enrollmentState: enrolled
    newCustomerAudience:
      x-apiture-version: 4.0.0
      title: New Customer Audience (v4.0.0)
      description: Representation used to create a new customer audience.
      required:
        - name
        - enrollmentState
        - customerType
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/customerAudienceFields'
    customerAudienceImmutableFields:
      x-apiture-version: 5.4.0
      title: Customer Audience Immutable Fields (v5.4.0)
      description: A fragment schema used to define immutable customer audience fields for other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        id:
          description: The unique identifier for this customer audience resource. This is an immutable opaque string.
          allOf:
            - $ref: '#/components/schemas/readOnlyResourceId'
        state:
          $ref: '#/components/schemas/customerAudienceState'
        owners:
          description: The analysts who own this customer audience.
          type: array
          minItems: 1
          maxItems: 1
          items:
            $ref: '#/components/schemas/customerAudienceOwner'
        connections:
          description: A list of customer audience connections that are tied to this audience.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/customerAudienceConnectionReference'
        updatedBy:
          description: The analyst who last updated this customer audience.
          $ref: '#/components/schemas/customerAudienceCollaborator'
        source:
          description: The source used to create this audience.
          $ref: '#/components/schemas/customerAudienceSource'
        insight:
          description: A summary of the insight that was used to create this audience. This field is omitted if the audience was not created from an insight.
          $ref: '#/components/schemas/insightReference'
        template:
          description: A summary of the audience template that was used to create this audience. This field is omitted if the audience was not created from a template.
          $ref: '#/components/schemas/customerAudienceTemplateReference'
        fileName:
          $ref: '#/components/schemas/customerAudienceFileName'
        identifierType:
          $ref: '#/components/schemas/customerAudienceImportIdentifierType'
        includesHeader:
          description: Indicates whether the customer audience IDs file included a header row or not.
          type: boolean
        campaign:
          description: A summary of the campaign whose engagement data was used to create this audience. This field is omitted if the audience was not created from a campaign.
          $ref: '#/components/schemas/campaignReference'
    customerAudienceItem:
      x-apiture-version: 7.7.0
      title: Customer Audience Item (v7.7.0)
      description: Summary representation of a customer audience resource in the customer audiences collection. To fetch the full representation of this customer audience, use the [`getCustomerAudience`](#op-getCustomerAudience) operation, passing this item's `id` field as the `customerAudienceId` path parameter.
      required:
        - id
        - state
        - customerCount
        - totalCustomerCount
        - customerCountUpdatedAt
        - owners
        - createdAt
        - updatedAt
        - source
        - collaborators
        - collaboratorsCount
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/timestampFields'
        - $ref: '#/components/schemas/customerAudienceFields'
        - $ref: '#/components/schemas/customerAudienceImmutableFields'
        - $ref: '#/components/schemas/customerAudienceCountFields'
        - $ref: '#/components/schemas/customerCountUpdatedAtFields'
        - type: object
          properties:
            collaborators:
              description: An array containing up to the first 16 customer audience collaborators. Update this value with the [`patchCustomerAudienceCollaborators`](#op-patchCustomerAudienceCollaborators) operation. Within the list of customer audiences returned from [`listCustomerAudiences`](#op-listCustomerAudiences), this list is limited to the first 16 collaborators. The full list is available in the full [`customerAudience`](#schema-customerAudience) response from the [`getCustomerAudience`](#op-getCustomerAudience) or from [`listCustomerAudienceCollaborators`](#op-listCustomerAudienceCollaborators).
              readOnly: true
              type: array
              maxItems: 16
              items:
                $ref: '#/components/schemas/customerAudienceCollaborator'
            collaboratorsCount:
              description: The total number of collaborators on this customer audience. The full list is available in the [`listCustomerAudienceCollaborators`](#op-listCustomerAudienceCollaborators) response.
              type: integer
              format: int32
              minimum: 0
              maximum: 2000
            filters:
              $ref: '#/components/schemas/compositeAnalyticFilter'
      example:
        id: 0399abedfd3d
        name: Most valuable customers
        state: active
        createdAt: '2023-04-14T06:47:53.375Z'
        updatedAt: '2023-04-24T08:48:05.000Z'
        customerCount: 12340
        retailCustomerCount: 10000
        commercialCustomerCount: 2340
        enrolledCustomerCount: 12300
        unenrolledCustomerCount: 40
        applicantCount: 100
        totalCustomerCount: 2340659
        customerCountUpdatedAt: '2023-04-24T08:48:05.000Z'
        source: list
        owners:
          - id: 0399abedfd3d
            firstName: Bob
            lastName: Hartley
            username: bhartley
        updatedBy:
          id: 0399abedfd3d
          firstName: Bob
          lastName: Hartley
          username: bhartley
        collaborators:
          - id: 0399abedfd3d
            firstName: Bob
            lastName: Hartley
            username: bhartley
          - id: 389a2238d9f5c275d172
            firstName: Carol
            lastName: Wallace
            username: cwallace
          - id: 69fdb75ba971f3291432
            firstName: Jerry
            lastName: Robinson
            username: jrobinson
        connections:
          - id: 0399abed-fd3d
            state: active
            provider:
              name: pendo
              resourceId: q6PioQIWPFAhOA
        identifierType: customerId
        includesHeader: true
    customerAudiencePatch:
      x-apiture-version: 3.3.0
      title: Customer Audience Patch (v3.3.0)
      description: Request to patch a customer audience resources.
      allOf:
        - $ref: '#/components/schemas/customerAudienceFields'
    customerCountUpdatedAtFields:
      title: Customer Count Updated At Fields (v1.0.0)
      description: The timestamp when the `customerCount` was last updated, in [RFC 3339](https://tools.ietf.org/html/rfc3339) UTC `YYYY-MM-DDThh:mm:ss.sssZ` date-time format. This is fragment schema used to build other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        customerCountUpdatedAt:
          description: The timestamp when the `customerCount` was last updated, in [RFC 3339](https://tools.ietf.org/html/rfc3339) UTC `YYYY-MM-DDThh:mm:ss.sssZ` date-time format.
          $ref: '#/components/schemas/timestamp'
      example:
        customerCountUpdatedAt: '2023-04-24T08:48:05.000Z'
      x-apiture-version: 1.0.0
    customerAudienceCountFields:
      x-apiture-version: 1.1.0
      title: Customer Audience Count Fields (v1.1.0)
      description: A count of customers who meet the criteria of the given customer audience filters. This is fragment schema used to build other schemas.
      type: object
      x-apiture-fragment: true
      properties:
        customerCount:
          description: The number of customers who match this audience's filter criteria.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000000
        retailCustomerCount:
          description: The number of retail customers who match this audience's filter criteria.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000000
        commercialCustomerCount:
          description: The number of commercial customers who match this audience's filter criteria.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000000
        enrolledCustomerCount:
          description: The number of customers who are enrolled in online banking and match this audience's filter criteria.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000000
        unenrolledCustomerCount:
          description: The number of customers who are not enrolled in online banking and match this audience's filter criteria.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000000
        applicantCount:
          description: The number of digital banking applicants who match this audience's filter criteria.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000000
        totalCustomerCount:
          description: The total number of customers at the financial institution, ignoring any filter criteria.
          type: integer
          format: int32
          minimum: 0
          maximum: 1000000000
      example:
        customerCount: 12340
        retailCustomerCount: 10000
        commercialCustomerCount: 2340
        enrolledCustomerCount: 12300
        unenrolledCustomerCount: 40
        applicantCount: 100
        totalCustomerCount: 2340659
    customerAudienceCountsRequest:
      title: Customer Audience Counts Request (v1.0.0)
      description: Schema representation used to request a count of members in a customer audience.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/compositeAnalyticFilter'
        - type: object
          properties:
            insightId:
              description: The ID of the insight resource that this audience was derived from. This field is omitted if the audience was not created from an insight.
              $ref: '#/components/schemas/readOnlyResourceId'
      x-apiture-version: 1.0.0
    customerAudienceCounts:
      x-apiture-version: 1.1.0
      title: Customer Audience Counts (v1.1.0)
      description: The count of customers who meet the criteria of the given customer audience filters or insight.
      required:
        - customerCount
        - totalCustomerCount
        - customerCountUpdatedAt
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/customerAudienceCountFields'
        - $ref: '#/components/schemas/customerCountUpdatedAtFields'
    customerAudience:
      x-apiture-version: 7.7.0
      title: Customer Audience (v7.7.0)
      description: Representation of customer audience resources.
      required:
        - id
        - state
        - customerCount
        - totalCustomerCount
        - customerCountUpdatedAt
        - owners
        - source
        - createdAt
        - updatedAt
        - collaborators
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/timestampFields'
        - $ref: '#/components/schemas/customerAudienceFields'
        - $ref: '#/components/schemas/customerAudienceImmutableFields'
        - $ref: '#/components/schemas/customerAudienceCountFields'
        - $ref: '#/components/schemas/customerCountUpdatedAtFields'
        - type: object
          properties:
            collaborators:
              description: An array containing customer audience collaborators. Update this value with the [`patchCustomerAudienceCollaborators`](#op-patchCustomerAudienceCollaborators) operation.
              readOnly: true
              type: array
              maxItems: 2000
              items:
                $ref: '#/components/schemas/customerAudienceCollaborator'
      example:
        id: 0399abedfd3d
        name: Most valuable customers
        state: active
        createdAt: '2023-04-14T06:47:53.375Z'
        updatedAt: '2023-04-24T08:48:05.000Z'
        customerCount: 12340
        retailCustomerCount: 10000
        commercialCustomerCount: 2340
        enrolledCustomerCount: 12300
        unenrolledCustomerCount: 40
        applicantCount: 100
        totalCustomerCount: 2340659
        customerCountUpdatedAt: '2023-04-24T08:48:05.000Z'
        source: list
        owners:
          - id: 0399abedfd3d
            firstName: Bob
            lastName: Hartley
            username: bhartley
        updatedBy:
          id: 0399abedfd3d
          firstName: Bob
          lastName: Hartley
          username: bhartley
        collaborators:
          - id: 0399abedfd3d
            firstName: Bob
            lastName: Hartley
            username: bhartley
          - id: 389a2238d9f5c275d172
            firstName: Carol
            lastName: Wallace
            username: cwallace
          - id: 69fdb75ba971f3291432
            firstName: Jerry
            lastName: Robinson
            username: jrobinson
        connections:
          - id: 0399abed-fd3d
            state: active
            provider:
              name: pendo
              resourceId: q6PioQIWPFAhOA
        identifierType: customerId
        includesHeader: true
    customerAudiences:
      x-apiture-version: 7.7.0
      title: Customer Audience Collection (v7.7.0)
      description: Collection of customer audiences. The items in the collection are ordered in the `items` array.
      allOf:
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing customer audience items.
              type: array
              maxItems: 2000
              items:
                $ref: '#/components/schemas/customerAudienceItem'
    customerAudienceFileName:
      title: Customer Audience File Name (v1.0.0)
      description: The name of the file used to create this audience. This is available when the audience `source` is `list`.
      type: string
      format: text
      minLength: 4
      maxLength: 255
      example: 2023_18to35_north_carolina.csv
      x-apiture-version: 1.0.0
    customerAudienceTemplateFields:
      x-apiture-version: 2.0.0
      title: Customer Audience Template Fields (v2.0.0)
      description: Common fields of the customer audience template resource used to build other model schemas.
      x-apiture-fragment: true
      properties:
        name:
          description: The unique name of this customer audience template.
          type: string
          format: text
          minLength: 3
          maxLength: 100
        description:
          description: The description of this customer audience template, including the purpose/goals.
          type: string
          format: text
          minLength: 3
          maxLength: 500
        topics:
          description: An array containing a list of topics that this customer audience template relates to.
          type: array
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/dataTopic'
    customerAudienceTemplateItem:
      x-apiture-version: 2.4.0
      title: Customer Audience Template Item (v2.4.0)
      description: Summary representation of a customer audience template resource in a collection.
      required:
        - id
        - name
        - description
        - topics
        - customerType
        - filters
        - customerCount
        - totalCustomerCount
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/customerAudienceTemplateFields'
        - $ref: '#/components/schemas/customerAudienceFilterFields'
        - $ref: '#/components/schemas/customerAudienceCountFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this customer audience template resource. This is an immutable opaque string.
              $ref: '#/components/schemas/resourceId'
            ordinal:
              description: An integer that represents this customer audience template's importance relative to other templates, which allows the client to order templates by importance. Templates with lower ordinal values are considered more important compared to those with higher values.
              type: integer
              format: int16
              minimum: 0
              maximum: 1000
      example:
        id: 0399abed-f13a
        name: High Balance Users in the Southeast
        description: This template creates an audience with users who live in the southeast and have high account balances.
        customerType: all
        enrollmentState: enrolled
        filters:
          - operator: and
            ordinal: 2
            primitiveFilters:
              - filterType:
                  name: customerRegion
                  id: 01888d58e2424bf1c676
                operator: in
                values:
                  - NC
                  - SC
                  - GA
                  - FL
                ordinal: 0
              - filterType:
                  name: accountBalance
                  id: 023cd8af6a9d46eec506
                operator: greaterThan
                values:
                  - '250000.00'
                ordinal: 1
        topics:
          - id: 1cd2f01c-a9d9
            label: Transaction Activity
            description: View customer spending habits.
        customerCount: 12340
        retailCustomerCount: 10000
        commercialCustomerCount: 2340
        enrolledCustomerCount: 12300
        unenrolledCustomerCount: 40
        applicantCount: 100
        totalCustomerCount: 2340659
        ordinal: 0
    customerAudienceTemplate:
      x-apiture-version: 2.4.0
      title: Customer Audience Template (v2.4.0)
      description: Representation of a customer audience template resource.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/customerAudienceTemplateItem'
      example:
        id: 0399abed-f13a
        name: High Balance Users in the Southeast
        description: This template creates an audience with users who live in the southeast and have high account balances.
        customerType: all
        enrollmentState: enrolled
        filters:
          - operator: and
            ordinal: 2
            primitiveFilters:
              - filterType:
                  name: customerRegion
                  id: 01888d58e2424bf1c676
                operator: in
                values:
                  - NC
                  - SC
                  - GA
                  - FL
                ordinal: 0
              - filterType:
                  name: accountBalance
                  id: 023cd8af6a9d46eec506
                operator: greaterThan
                values:
                  - '250000.00'
                ordinal: 1
        topics:
          - id: 1cd2f01c-a9d9
            label: Transaction Activity
            description: View customer spending habits.
        customerCount: 12340
        retailCustomerCount: 10000
        commercialCustomerCount: 2340
        enrolledCustomerCount: 12300
        unenrolledCustomerCount: 40
        applicantCount: 100
        totalCustomerCount: 2340659
        ordinal: 0
    customerAudienceTemplates:
      x-apiture-version: 2.4.0
      title: Customer Audience Template Collection (v2.4.0)
      description: Collection of customer audience templates.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing customer audience template items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/customerAudienceTemplateItem'
      example:
        items:
          - id: 0399abed-f13a
            name: High Balance Users in the Southeast
            description: This template creates an audience with users who live in the southeast and have high account balances.
            customerType: all
            enrollmentState: enrolled
            filters:
              - operator: and
                ordinal: 2
                primitiveFilters:
                  - filterType:
                      name: customerRegion
                      id: 01888d58e2424bf1c676
                    operator: in
                    values:
                      - NC
                      - SC
                      - GA
                      - FL
                    ordinal: 0
                  - filterType:
                      name: accountBalance
                      id: 023cd8af6a9d46eec506
                    operator: greaterThan
                    values:
                      - '250000.00'
                    ordinal: 1
            topics:
              - id: 1cd2f01c-a9d9
                label: Transaction Activity
                description: View customer spending habits.
            customerCount: 12340
            retailCustomerCount: 10000
            commercialCustomerCount: 2340
            enrolledCustomerCount: 12300
            unenrolledCustomerCount: 40
            applicantCount: 100
            totalCustomerCount: 2340659
            ordinal: 0
          - id: 0399abed-f13b
            name: Retirees in the Southeast
            description: This template creates an audience with retail users whom are of retirement age.
            customerType: retail
            enrollmentState: enrolled
            filters:
              operator: and
              ordinal: 0
              primitiveFilters:
                - filterType:
                    name: customerRegion
                    id: 01888d58e2424bf1c676
                  operator: in
                  values:
                    - NC
                    - SC
                    - GA
                    - FL
                  ordinal: 0
                - filterType:
                    id: 6b3927745edec398ad76
                    name: customerAge
                  operator: between
                  values:
                    - '65'
                    - '150'
                  ordinal: 1
            topics:
              - id: 1cd2f01c-a9d0
                label: Customer Demographics
                description: See customer income, location, and other statistics.
            customerCount: 2222
            retailCustomerCount: 1222
            commercialCustomerCount: 1000
            enrolledCustomerCount: 2000
            unenrolledCustomerCount: 2222
            applicantCount: 100
            totalCustomerCount: 2341234
            ordinal: 1
    customerAudienceTemplateReference:
      title: Customer Audience Template Reference (v1.0.0)
      description: A reference to a customer audience template.
      type: object
      properties:
        id:
          description: The unique identifier for the customer audience template resource. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        name:
          description: The unique name of this customer audience template.
          type: string
          minLength: 3
          maxLength: 100
          format: text
      x-apiture-version: 1.0.0
    problemResponse:
      title: Problem Response (v0.4.2)
      x-apiture-version: 0.4.2
      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
    institutionId:
      x-apiture-version: 1.1.0
      title: Institution ID (v1.1.0)
      description: The unique immutable identifier of a financial institution.
      type: string
      pattern: ^[A-Z0-9_]{2,8}$
      maxLength: 8
      minLength: 2
      example: TIBURON
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/institutionId
    entityTag:
      title: Entity Tag (v1.1.0)
      description: An strong or weak [HTTP Entity Tag (ETag)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag). Strong ETags take the form `"{printable-non-control-ASCII-characters}"` but for backwards compatibility the surrounding double quotes are optional. Weak ETags take the form `W/"{printable-non-control-ASCII-characters}"`.
      type: string
      minLength: 3
      maxLength: 512
      pattern: ^((\"?[\x21\x23-\x7e]{1,512}\"?)|(W\/\"[\x21\x23-\x7e]{1,509}\"))$
      example: W/"325cf1cc-e370-4baf-8faf-c6db23f195a2"
      x-apiture-version: 1.1.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/entityTag
    abstractBody:
      title: Abstract Body (v0.2.0)
      x-apiture-version: 0.2.0
      description: An abstract schema used to define other request and response body model schemas.
      x-apiture-fragment: true
      type: object
      properties: {}
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractBody
    userAccountReference:
      x-apiture-version: 2.1.0
      title: User Account Reference (v2.1.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
    extendedPhoneNumber:
      title: Extended Phone Number (v1.0.0)
      description: A phone number with optional extension. Phone numbers are free-form strings and may include letters (such as `'1-800-APITURE'`), extensions (such as `'919-555-1234 ext 34'`) or country code prefixes such as `'+19105550155'`.
      type: string
      examples:
        - '+19105550155'
        - 910-555-0155
        - 1-800-APITURE
        - 919-555-0155 ext 34
      minLength: 5
      maxLength: 20
      format: extended-phone-number
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/extendedPhoneNumber
      x-apiture-version: 1.0.0
    compositeAnalyticFilter:
      x-apiture-version: 2.1.0
      title: Composite Analytic Filter (v2.1.0)
      description: |-
        A composite of analytic filter that are combined with a logical operator (`and`, `or`, `not`). For example, if `primitiveFilters` contains 3 filters `p1`, `p2` and `p2` and `compositeFilters` contains 2 filters `c1`, `c2` and `operator` is `and`, the filter represents the expression `( p1 and p2 and p3 and c1 and c2 )`. The example is equivalent to
        ``` ( { customerType equals "retail" }
          or
          { customerAge between ["35", "49"] }
          or
          (
            { customerRegion in [ "NC", "SC", "GA", "FL" ]}
            and
            { balance greaterThan "250000.00" }
          )
        ) ```

        Note: there must be at least one item in either the `primitiveFilters` array or the `compositeFilters` array.
      type: object
      properties:
        operator:
          description: The logical operator (and, or, not) used to combine the contained filters.
          $ref: '#/components/schemas/compositeFilterOperator'
        primitiveFilters:
          description: An array of 1 or more primitive filters to be combined via the `operator` with each other and the `compositeFilters`.
          type: array
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/primitiveAnalyticFilter'
        compositeFilters:
          description: An array of 0 or more composite filters to be combined via the `operator` with each other and the `primitiveFilters`.
          type: array
          maxItems: 100
          items:
            $ref: '#/components/schemas/compositeAnalyticFilter'
        ordinal:
          description: The ordinal value of the composite filter.
          $ref: '#/components/schemas/analyticFilterOrdinal'
      example:
        operator: or
        primitiveFilters:
          - filterType:
              id: 215eaed841368ce154d5
              name: customerType
            operator: equals
            values:
              - retail
            ordinal: 0
            includeMissingValues: false
          - filterType:
              id: 6b3927745edec398ad74
              name: customerAge
            operator: between
            values:
              - '35'
              - '49'
            ordinal: 1
            includeMissingValues: false
        compositeFilters:
          - operator: and
            ordinal: 2
            primitiveFilters:
              - filterType:
                  name: customerRegion
                  id: 01888d58e2424bf1c676
                operator: in
                values:
                  - NC
                  - SC
                  - GA
                  - FL
                ordinal: 0
                includeMissingValues: false
              - filterType:
                  name: accountBalance
                  id: 023cd8af6a9d46eec506
                operator: greaterThan
                values:
                  - '250000.00'
                ordinal: 1
                includeMissingValues: false
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/compositeAnalyticFilter
    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
    customerAudienceConnectionReference:
      title: Customer Audience Connection Reference (v1.0.0)
      description: An object that references a customer audience connection by its `id`, `provider`, and `state`.
      required:
        - id
        - provider
        - state
      type: object
      properties:
        id:
          description: The unique identifier for this customer audience connection resource. This is an immutable opaque string.
          $ref: '#/components/schemas/resourceId'
        provider:
          description: Properties that pertain to the audience connection provider.
          $ref: '#/components/schemas/customerAudienceConnectionProvider'
        state:
          $ref: '#/components/schemas/customerAudienceConnectionState'
      example:
        id: 0399abed-fd3d
        state: active
        provider:
          name: pendo
          resourceId: q6PioQIWPFAhOA
      x-resolved-from: ../../adminCustomerAudienceConnections/openapi.yaml#/components/schemas/customerAudienceConnectionReference
      x-apiture-version: 1.0.0
    insightReference:
      title: Customer Audience Insight Reference (v1.0.0)
      description: Simplified representation of the insight a customer audience was created from.
      type: object
      required:
        - id
      properties:
        id:
          description: The unique identifier for this insight type resource. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        insightTypeName:
          description: The human-readable label for this insight type.
          type: string
          minLength: 4
          maxLength: 128
          format: text
        insightCategoryName:
          description: The label of the insight category.
          type: string
          format: text
          maxLength: 512
      x-resolved-from: ../../adminInsights/openapi.yaml#/components/schemas/insightReference
      x-apiture-version: 1.0.0
    campaignReference:
      x-apiture-version: 1.3.0
      title: Campaign Reference (v1.3.0)
      description: An object that references a summary of the campaign.
      required:
        - id
        - name
        - state
        - audience
      type: object
      properties:
        id:
          description: The unique identifier for this campaign resource. This is an immutable opaque string.
          $ref: '#/components/schemas/resourceId'
        name:
          description: The campaign name.
          type: string
          format: text
          minLength: 3
          maxLength: 100
        state:
          $ref: '#/components/schemas/campaignState'
        audience:
          $ref: '#/components/schemas/campaignAudienceReference'
      example:
        id: 0399abed-fd3d
        name: Holiday Savings Campaign
        state: active
        audience:
          id: 590c0c441f3241de9526
          name: New Customers Ages 35-49
      x-resolved-from: ../../adminCampaigns/openapi.yaml#/components/schemas/campaignReference
    timestampFields:
      x-apiture-version: 1.1.0
      title: Timestamp Fields (v1.1.0)
      description: Timestamps which describe when a resource was created or last updated.
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/createdAtField'
        - type: object
          properties:
            updatedAt:
              description: The date-time when the resource was last updated, 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/timestampFields
    timestamp:
      title: Timestamp (v1.0.0)
      description: A timestamp (an instant in time) formatted in `YYYY-MM-DDThh:mm:ss.sssZ` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format.
      type: string
      minLength: 20
      maxLength: 30
      format: date-time
      example: '2021-10-30T19:06:04.250Z'
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/timestamp
      x-apiture-version: 1.0.0
    dataTopic:
      title: Data Topic (v1.0.0)
      description: The topic of the data resource.
      type: object
      required:
        - id
        - label
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/dataTopicFields'
        - type: object
          properties:
            id:
              description: The ID of the data topic.
              $ref: '#/components/schemas/readOnlyResourceId'
      example:
        id: 1cd2f01c-a9d9
        label: Feature Usage
        description: Learn about how customers use banking features.
      x-resolved-from: ../../adminDataTopics/openapi.yaml#/components/schemas/dataTopic
      x-apiture-version: 1.0.0
    apiProblem:
      x-apiture-version: 1.2.2
      title: API Problem (v1.2.2)
      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 problems 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.1.0
      title: Customer Username (v2.1.0)
      description: A customer's login username.
      type: string
      format: text
      minLength: 5
      maxLength: 128
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/customerUsername
    compositeFilterOperator:
      title: Composite Filter Operator (v1.0.0)
      description: |-
        An operator for combining filters in a composite filter.

        <strong><code>compositeFilterOperator</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>and</code></strong></td><td>And: <p>A filter is true if all the nested filters evaluate to true.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>or</code></strong></td><td>Or: <p>A filter is true if any one or more of the nested filters evaluate to true.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>not</code></strong></td><td>Not: <p>A filter is true if none of the nested filters evaluate to true.</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: compositeFilterOperator
      enum:
        - and
        - or
        - not
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/compositeFilterOperator
      x-apiture-version: 1.0.0
    primitiveAnalyticFilter:
      x-apiture-version: 1.2.0
      title: Primitive Analytic Filter (v1.2.0)
      description: A primitive analytic filter that compares constant values to a data measurement within an audience data measure and returns a boolean value.
      type: object
      required:
        - filterType
        - operator
        - values
      properties:
        filterType:
          description: The name and `id` of the filter type that this filter is an instance of.
          $ref: '#/components/schemas/analyticFilterTypeReference'
        operator:
          description: The name of the filter operator to apply to the measure associated with the filter type and the optional filter `values`. This is one of the `operators` in the corresponding filter type.
          $ref: '#/components/schemas/analyticFilterOperatorType'
        values:
          description: The constant values to compare the measure to. The number of values in this array must be within the `minimumValues` and `maximumValues` constraints in the named filter type. Thus array is required but may be an empty array `[]` if the corresponding analytic filter's `minimumValues` is `0`.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/analyticFilterValue'
        ordinal:
          description: The ordinal value of the composite filter.
          $ref: '#/components/schemas/analyticFilterOrdinal'
        includeMissingValues:
          description: If `true`, unconditionally include records with missing values for the selected `filterType` as part of the filtered result.
          type: boolean
      example:
        filterType:
          id: 6b3927745edec398ad74
          name: customerAge
        operator: between
        values:
          - '35'
          - '49'
        ordinal: 0
        includeMissingValues: false
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/primitiveAnalyticFilter
    analyticFilterOrdinal:
      title: Analytic Filter Ordinal (v1.0.0)
      description: An integer that represents this filter's importance relative to other filters, to allow the client to order filters by importance. This value may pertain to a primitive or composite filter. Filters with lower ordinal values are considered more important compared to those with higher values.
      type: integer
      format: int16
      minimum: 0
      maximum: 200
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/analyticFilterOrdinal
      x-apiture-version: 1.0.0
    customerAudienceConnectionProvider:
      title: Customer Audience Connection Provider (v1.0.0)
      description: Properties that are specific to the audience connection's provider for an institution.
      type: object
      properties:
        name:
          description: The audience connection provider name.
          type: string
          format: text
          maxLength: 80
        connectedResourceId:
          description: A value that uniquely identifies the resource associated with the audience in the connected provider.
          $ref: '#/components/schemas/externalResourceId'
      x-resolved-from: ../../adminCustomerAudienceConnections/openapi.yaml#/components/schemas/customerAudienceConnectionProvider
      x-apiture-version: 1.0.0
    customerAudienceConnectionState:
      title: Customer Audience Connection State (v1.0.0)
      description: |-
        The state of a customer audience connection

        <strong><code>customerAudienceConnectionState</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 audience connection is active and available for use.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>inactive</code></strong></td><td>Inactive: <p>The audience connection is inactive. The connection must be reactivated before it can be used.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>pending</code></strong></td><td>Pending: <p>The audience connection is pending and not yet available for use.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>failed</code></strong></td><td>Failed: <p>The audience connection failed. Activate the connection to retry connecting.</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: customerAudienceConnectionState
      enum:
        - active
        - inactive
        - pending
        - failed
      x-resolved-from: ../../adminCustomerAudienceConnections/openapi.yaml#/components/schemas/customerAudienceConnectionState
      x-apiture-version: 1.0.0
    campaignState:
      title: Campaign States (v1.0.0)
      description: |-
        The set of states a campaign may have.

        <strong><code>campaignState</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>draft</code></strong></td><td>Draft: <p>A campaign that is created but yet to be scheduled</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>testing</code></strong></td><td>Testing: <p>A campaign that is running for a specific audience for the purpose of testing before it is made public. Campaigns that have finished their tests move back to a draft or scheduled state when completed.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>scheduled</code></strong></td><td>Scheduled: <p>A campaign that has been scheduled to be published on a set date but has not started running</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>active</code></strong></td><td>Active: <p>A running campaign. This includes a campaign that may or may not be displayed to end users due to scheduling</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>paused</code></strong></td><td>Paused: <p>An active campaign that is paused but may be resumed. No further ads are served from this campaign</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>canceled</code></strong></td><td>Canceled: <p>A campaign that has been canceled before the scheduled end date of the campaign</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>completed</code></strong></td><td>Completed: <p>A campaign that ran for its full schedule without being canceled</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>archived</code></strong></td><td>Archived: <p>A campaign that has been archived</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: campaignState
      enum:
        - draft
        - scheduled
        - testing
        - active
        - paused
        - canceled
        - completed
        - archived
      x-resolved-from: ../../adminCampaigns/openapi.yaml#/components/schemas/campaignState
      x-apiture-version: 1.0.0
    campaignAudienceReference:
      x-apiture-version: 1.1.0
      title: Campaign Audience Reference (v1.1.0)
      description: An object that references a Campaign Audience by its `id` and `name`.
      unevaluatedProperties: false
      required:
        - id
      type: object
      allOf:
        - $ref: '#/components/schemas/campaignAudienceFields'
      example:
        id: 590c0c441f3241de9526
        name: New Customers Ages 35-49
      x-resolved-from: ../../adminCampaigns/openapi.yaml#/components/schemas/campaignAudienceReference
    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)'
    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
    dataTopicFields:
      title: Data Topic Fields (v1.0.0)
      description: Common fields of the data topic resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        label:
          description: The label of the data topic.
          type: string
          format: text
          minLength: 3
          maxLength: 100
        description:
          description: The description of the data topic.
          type: string
          format: text
          minLength: 3
          maxLength: 500
      x-resolved-from: ../../adminDataTopics/openapi.yaml#/components/schemas/dataTopicFields
      x-apiture-version: 1.0.0
    requiredIdentityChallenge:
      x-apiture-version: 1.3.0
      title: Required Challenge (v1.3.0)
      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 403 [Forbidden problem response](#schema-apiProblem) when the 403 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'
        challengeText:
          allOf:
            - $ref: '#/components/schemas/identityChallengeText'
      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
    analyticFilterTypeReference:
      x-apiture-version: 1.0.2
      title: Analytic Filter Type Reference (v1.0.2)
      description: An object that reference and Analytic Filter Type by its `id` and `name`.
      type: object
      required:
        - id
      properties:
        id:
          description: The unique identifier for this analytic filter type resource. This is an immutable opaque string.
          $ref: '#/components/schemas/resourceId'
        name:
          description: The name of the filter type. This is for informational purposes only.
          $ref: '#/components/schemas/analyticFilterTypeName'
      example:
        id: 3752cfec9b06fae15c9e
        name: customerAge
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/analyticFilterTypeReference
    analyticFilterOperatorType:
      title: Analytic Filter Operator Type (v1.0.0)
      description: |-
        Indicates the type of the comparison operator used by an analytic filter.

        <strong><code>analyticFilterOperatorType</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>equals</code></strong></td><td>Equals: <p>The measure is equal to a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>notEquals</code></strong></td><td>Not Equals: <p>The measure not equal to a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>lessThan</code></strong></td><td>Less Than: <p>The measurement less than a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>lessThanOrEqualTo</code></strong></td><td>Less Than or Equal To: <p>The measure less than or equal a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>greaterThan</code></strong></td><td>Greater Than: <p>The measure is greater than a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>greaterThanOrEqualTo</code></strong></td><td>Greater Than or Equal To: <p>The measure greater than or equal to a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>between</code></strong></td><td>Between: <p>The measure is Between a minimum and maximum value. A filter using this operator requires exactly 2 values.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>notBetween</code></strong></td><td>Not Between: <p>Measure not between a minimum and maximum value. A filter using this operator requires exactly 2 values.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>before</code></strong></td><td>Before: <p>Date measure before or on a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>after</code></strong></td><td>After: <p>Date measure on or after a value. A filter using this operator requires exactly 1 value.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>in</code></strong></td><td>In: <p>The measure is in a set of values. A filter using this operator requires at least 2 values.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>notIn</code></strong></td><td>Not In: <p>The measure is not in a set of values. A filter using this operator requires exactly 2 values.</p>
        </td>
            </tr>
        </table>
      type: string
      x-apiture-enum: analyticFilterOperatorType
      enum:
        - equals
        - notEquals
        - lessThan
        - lessThanOrEqualTo
        - greaterThan
        - greaterThanOrEqualTo
        - before
        - after
        - between
        - notBetween
        - in
        - notIn
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/analyticFilterOperatorType
      x-apiture-version: 1.0.0
    analyticFilterValue:
      title: Analytic Filter Value (v1.0.0)
      description: A constant value used in a filter, such as `25` in a filter `{ customerAge greater than 25 }`. This value is compared to the measure defined by the filter.
      type: string
      maxLength: 200
      format: text
      example: 25-to-49
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/analyticFilterValue
      x-apiture-version: 1.0.0
    externalResourceId:
      x-apiture-version: 1.1.0
      title: External Resource Identifier (v1.1.0)
      description: The unique, opaque system identifier for an external resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference an external resource by ID rather than URL.
      type: string
      format: text
      readOnly: true
      minLength: 1
      maxLength: 256
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/externalResourceId
    campaignAudienceFields:
      title: Campaign Audience Fields (v1.0.0)
      description: Common fields of the campign audience resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        id:
          description: The unique identifier for this campaign audience resource. This is an immutable opaque string.
          $ref: '#/components/schemas/resourceId'
        name:
          description: The audience name.
          type: string
          format: text
          maxLength: 100
      example:
        id: 590c0c441f3241de9526
        name: New Customers Ages 35-49
      x-resolved-from: ../../adminCampaigns/openapi.yaml#/components/schemas/campaignAudienceFields
      x-apiture-version: 1.0.0
    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
    identityChallengeText:
      title: Identity Challenge Text (v1.0.0)
      description: |-
        Optional text to display during an identity challenge user experience. All text fields are optional. If present, the text overrides default text defined by the system or financial institution.

        The text values may be HTML or plain text.
      type: object
      unevaluatedProperties: false
      properties:
        factorSelection:
          description: Text shown to the user when the application asks them to choose which verification factor to use to verify their identity.
          type: string
          format: text
          minLength: 8
          maxLength: 512
        maximumFailures:
          description: Text shown to the user when the user has failed identity verification the maximum number of attempts, as configured by the financial institution.
          type: string
          format: text
          minLength: 8
          maxLength: 512
        email:
          description: Text shown to the user when the client prompts the user to enter a one-time passcode sent to their chosen email address.
          type: string
          format: text
          minLength: 8
          maxLength: 512
        sms:
          description: Text shown to the user when the client prompts the user to enter a one-time passcode sent to their chosen mobile (SMS) phone number.
          type: string
          format: text
          minLength: 8
          maxLength: 512
        authenticatorToken:
          description: Text shown to the user when the client prompts the user to enter a one-time passcode from their hardware or software authenticator device.
          type: string
          format: text
          minLength: 8
          maxLength: 512
        voice:
          description: Text shown to the user when the client prompts the user to enter a one-time passcode sent to their chosen voice phone number.
          type: string
          format: text
          minLength: 8
          maxLength: 512
        securityQuestions:
          description: Text shown to the user when the client prompts the user to enter a an answer to one of their security questions.
          type: string
          format: text
          minLength: 8
          maxLength: 512
      example:
        factorSelection: Select one of the following methods to verify your identity for security purposes.
        maximumFailures: You have failed identity verification too many times. Contact your financial institution.
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/identityChallengeText
      x-apiture-version: 1.0.0
    analyticFilterTypeName:
      x-apiture-version: 1.0.2
      title: Analytic Filter Type Name (v1.0.2)
      description: The name of an analytic filter type.
      type: string
      format: text
      minLength: 2
      maxLength: 100
      x-resolved-from: ../../adminAnalyticFilters/openapi.yaml#/components/schemas/analyticFilterTypeName
    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
  headers:
    ETag:
      description: The value of this resource's _entity tag_, to be passed with `If-Match` and `If-None-Match` request headers in other conditional API calls for this resource.
      schema:
        $ref: '#/components/schemas/entityTag'
      x-resolved-from: ../../common/openapi.yaml#/components/headers/ETag
  x-apiture-errors:
    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
    preconditionFailed:
      description: One or more conditions given in the request header fields evaluated to false when tested on the server.
      remediation: Update resources and use it's most recent ETag or modification time stamp.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/preconditionFailed
    unprocessableEntity:
      description: The syntax of the request entity is correct but was unable to process the contained instructions.
      remediation: Provide a semantically correct request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unprocessableEntity
    preconditionRequired:
      description: The origin server requires the request to be conditional.
      remediation: Use a If-Unmodified-Since or If-Match request header corresponding to the most recent resource state.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/preconditionRequired
    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
x-apiture-errors:
  invalidContentFormat:
    description: The format of the content for importing values is invalid.
    remediation: |-
      Supply the Base64 encoding of a well-formed values file.

      The `content` field allows comma-separated values (CSV), plain text, and Microsoft Excel (.xls and .xlsx) formats.
  tooFewColumnsInImport:
    description: The parsed values file contains too many columns.
    remediation: Supply the Base64 encoding of a well-formed values file with a single column.
  emptyFileForImport:
    description: The provided values file is empty.
    remediation: Supply the values for import in Base64 encoding of a well-formed values file.
  invalidSourceAudience:
    description: The source audience does not exist or is not an audience that is eligible to be copied.
    remediation: Pass the `id` of a mutable, copyable audience.
  invalidSourceInsight:
    description: The source data does not exist or is not eligible to be used for audience creation.
    remediation: Resubmit the request with the `id` of an eligible insight.
  invalidCampaign:
    description: The campapign does not exist or is not a campaign that has eligible engagement data to create an audience from.
    remediation: Pass the `id` of a campaign with valid engagement data.
  invalidCollaborator:
    description: The collaborator `id` is not found.
    remediation: Pass the `id` of an existing, active collaborator.
  invalidCustomerAudienceFilters:
    description: The given customer audience filters are invalid. The filters are not customer filters, or the filter type is not found, or the filter values do not satisfy the constraints of that filter type.
    remediation: Correct the filters according to the `detail` and/or `problems` in the problem response.
    attributes:
      properties:
        problems:
          description: A list of filter problems. The `instance` is the relative path of the filter within the `filters` object, such as `"#/filters[1].filters[3]"`.
          type: array
          maxItems: 100
          items:
            $ref: '#/components/schemas/apiProblem'
  duplicateFilterOrdinals:
    description: Two or more filters in the request have the same ordinal.
    remediation: Resubmit the request such that all filters have unique ordinals.
  invalidFilterOrdinals:
    description: Ordinals were not provided for all filters. If ordinals are provided, then they must be set for every filter.
    remediation: Resubmit the request such that all filters have unique ordinals, or remove all ordinals.
  cannotUpdateImmutableAudienceProperties:
    description: The `customerType` and `filters` of an audience created from an insight are not mutable.
    remediation: Omit `customerType` and `filters` from the request and retry the operation.
  cannotUpdateInUseAudience:
    description: Cannot update, delete, or archive an audience that is used by another resource, such as a campaign.
    remediation: Update or delete the resources that use this audience, then retry the operation.
  invalidCustomerAudienceTemplate:
    description: The source customer audience template does not exist or is not eligible to be used for audience creation.
    remediation: Resubmit the request with the `id` of an eligible customer audience template. If this template is in the institution's `excludedCustomerAudienceTemplates`, then remove it and retry the operation.
  invalidCreateAudienceQueryParameters:
    description: The `insightId`, `customerAudienceTemplateId`, and `copyOf` query parameters are mutually exclusive, and cannot be combined in a single request to create an audience.
    remediation: 'Resubmit the request with only one of the following query parameters: `insightId`, `customerAudienceTemplateId`, or `copyOf`.'
  duplicateCustomerAudienceTemplateName:
    description: The given `name` is already in use by another customer audience template.
    remediation: Resubmit the request with a unique `name`.
  invalidCustomerAudienceTemplateTopic:
    description: The given customer audience template topics are invalid or cannot be found.
    remediation: Resubmit the request with valid topics.
  customerAudienceTemplateCannotContainNestedAudienceFilter:
    description: The customer audience template contains a nested audience filter.
    remediation: Resubmit the request without any nested audience `filters`.
  missingCustomerAudienceTemplateFilters:
    description: The customer audience template has invalid `filters`. At least one of `primitiveFilters` or `compositeFilters` must be present and not empty.
    remediation: Resubmit the request with `filters` that contain at least one valid set of `primitiveFilters` or `compositeFilters`.
x-apiture-traits:
  - resource:
      name: customer audience
      excludeMethods:
        - put
        - delete
      cursorPaged: false
      applied: true
  - resource:
      name: customer audience template
      excludeMethods:
        - post
        - patch
        - put
        - delete
      cursorPaged: false
      applied: true
  - singleton:
      name: customer audience collaborators
      excludeMethods:
        - put
      simpleObjectModel: true
      pathPrefix: /customerAudiences/{customerAudienceId}
      etag: true
  - singleton:
      name: customer audience ids
      pathPrefix: /customerAudiences/{customerAudienceId}
      immutable: true
      cursorPaged: false
      applied: true
  - action:
      name: customer audience
      state: active
      verb: restore
      applied: true
  - action:
      name: customer audience
      state: archived
      verb: archive
      applied: true
  - action:
      name: customer audience
      state: imported
      verb: import
      applied: true
  - security:
      baseScope: adminData
x-apiture-package-name: service-customer-audiences
x-resolved-from: ../../serviceCustomerAudiences/status-codes-openapi.yaml
x-resolved-at: '2025-06-06T15:17:59.766Z'
x-apiture-service-client-applied: true
x-apiture-annotated-at: '2025-06-06T15:18:00.339Z'
