swagger: '2.0'
info:
  version: 2.0.0
  title: Alvaria Cloud Campaign REST API
  contact:
    name: Alvaria
    url: http://www.alvaria.com
  license:
    name: 'License: Creative Commons Attribution 4.0 International Public License'
    url: https://creativecommons.org/licenses/by/4.0/legalcode
  description: >-
    ## Overview


    The Alvaria&trade; Cloud Outreach REST APIs enable developers to create
    applications that manage Outreach resources. All Alvaria&trade; Cloud
    resource instances are accessed through an Alvaria-supplied identifier.
    Before a specific resource instance can be updated, its properties must be
    retrieved through a GET operation. Specifically, the version property from
    the GET operation must be included in the properties of the PUT or PATCH
    operation that updates the entity instance. The version enforces the
    optimistic locking mechanism rules when multiple clients attempt to update
    the same resource simultaneously.


    # Outreach Campaign Considerations


    Outreach allows modification of Outreach resource instances through the
    Outreach Campaign Manager, as well as programmatically through the API
    endpoints.  This means that updates issued successfully through the API
    could subsequently change through the Outreach Campaign Manager and vice
    versa, inadvertently changing expected campaign behavior.  This means that
    care must be taken when making Outreach resource changes in the Outreach
    Campaign Manager when using the REST APIs. In order to utilize the Outreach
    apis the outreachapi scope is required.  All named entities are case
    sensitive and query parameters must therefore match in case.
host: orgId.via.aspect-cloud.net
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  oauth:
    type: oauth2
    authorizationUrl: https://myaspect.{region}.id.aspect-cloud.net/tokenservice/oauth2/access_token?realm={orgId}
    flow: implicit
    scopes:
      outreachapi: Manage the Outreach resources
paths:
  /via/v2/organizations/{orgId}/campaign/exclusions:
    get:
      tags:
        - Exclusions
      operationId: Get Exclusions
      summary: Retrieves exclusions.
      description: >-
        Exclusions restrict records from being contacted. Using this API, the
        client can get all configured exclusions or a subset based on the query
        parameters specified.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: contactAddress
          in: query
          description: >-
            Contact address. This is used to get records associated with the
            specified contact address.
          required: false
          type: string
        - name: contactListName
          in: query
          description: >-
            Name of a contact list. This is used to get records associated with
            the specified contact list name. The valid contact list names can be
            retrieved using GET /campaign/lists endpoint
          required: false
          type: string
        - name: contactType
          in: query
          description: >-
            Contact type. This is used to get records associated with the
            specified Contact Type. Valid ContactType values are:

            0=Account

            1=Voice

            2=Email

            3=SMS Text Message

            4=Secondary Service Number(a custom exclusion number).
          required: false
          type: integer
        - name: fromStartTime
          in: query
          description: >-
            Start time of an exclusion, specified in ISO 8601 format and in UTC
            time zone (1985-04-12T23:20:50.525Z). Specify start and end time in
            fromStartTime and toStartTime to get records having an exclusion
            start time between fromStartTime and toStartTime. It is mandatory to
            have both (fromStartTimeandtoStartTime).
          required: false
          format: date-time
          type: string
        - name: toStartTime
          in: query
          description: >-
            Start time of an exclusion, specified in ISO 8601 format and in UTC
            time zone (1985-04-12T23:20:50.525Z). Specify start and end time in
            fromStartTime and toStartTime to get records having an exclusion
            start time between fromStartTime and toStartTime. It is mandatory to
            have both (fromStartTime and toStartTime).
          required: false
          format: date-time
          type: string
        - name: fromEndTime
          in: query
          description: >-
            End time of an exclusion, specified in ISO 8601 format and in UTC
            time zone (1985-04-12T23:20:50.525Z).  Specify start and end time in
            fromEndTime and toEndTime to get records having an exclusion end
            time between fromEndTime and toEndTime. It is mandatory to have both
            (fromEndTime and toEndTime).
          required: false
          format: date-time
          type: string
        - name: toEndTime
          in: query
          description: >-
            End time of an exclusion, specified in ISO 8601 format and in UTC
            time zone (1985-04-12T23:20:50.525Z). Specify start and end time in
            fromEndTime and toEndTime to get records having an exclusion end
            time between fromEndTime and toEndTime. It is mandatory to have both
            (fromEndTime and toEndTime).
          required: false
          format: date-time
          type: string
        - name: fromCreatedTime
          in: query
          description: >-
            Time an exclusion was created, specified in ISO 8601 format and in
            UTC time zone (1985-04-12T23:20:50.525Z). Specify start and end time
            in fromCreatedTimeandtoCreatedTime to get records having an
            exclusion created time between fromCreatedTime and toCreatedTime. It
            is mandatory to have both (fromCreatedTime and toCreatedTime).
          required: false
          format: date-time
          type: string
        - name: toCreatedTime
          in: query
          description: >-
            Time an exclusion was created, specified in ISO 8601 format and in
            UTC time zone (1985-04-12T23:20:50.525Z). Specify start and end time
            in fromCreatedTimeandtoCreatedTim to get records having an exclusion
            created time between fromCreatedTime and toCreatedTime. It is
            mandatory to have both (fromCreatedTime and toCreatedTime).
          required: false
          format: date-time
          type: string
        - name: fromLastModifiedTime
          in: query
          description: >-
            Time an exclusion was last modified, specified in ISO 8601 format
            and in UTC time zone (1985-04-12T23:20:50.525Z). Specify start and
            end time in fromLastModifiedTime and toLastModifiedTime to get
            records having a last modified time between fromLastModifiedTime and
            toLastModifiedTime. It is mandatory to have both
            (fromLastModifiedTime and toLastModifiedTime).
          required: false
          format: date-time
          type: string
        - name: toLastModifiedTime
          in: query
          description: >-
            Time an exclusion was last modified, specified in ISO 8601 format
            and in UTC time zone (1985-04-12T23:20:50.525Z). Specify start and
            end time in fromLastModifiedTime and toLastModifiedTime to get
            records having a last modified time between fromLastModifiedTime and
            toLastModifiedTime. It is mandatory to have both
            (fromLastModifiedTime and toLastModifiedTime).
          required: false
          format: date-time
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionExclusionsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    post:
      tags:
        - Exclusions
      operationId: Create Exclusion
      summary: Creates a new exclusion
      description: >-
        This endpoint accepts single exclusion details in a request body array.
        If you specify multiple details, the request is rejected.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: accountControlItems
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/ExclusionsInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '201':
          schema:
            $ref: '#/definitions/ExclusionsResponse'
          description: Created
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '409':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Conflict
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/exclusions/{exclusionId}:
    get:
      tags:
        - Exclusions
      operationId: Get Exclusion Instance
      summary: Retrieves the properties for an exclusion.
      description: >-
        Gets the properties for an exclusion instance specified by the exclusion
        identifier.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: exclusionId
          in: path
          description: Alvaria-generated unique identifier for the exclusion instance
          required: true
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemExclusionsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    put:
      tags:
        - Exclusions
      operationId: Update Exclusion Instance
      summary: Modifies an exclusion.
      description: >-
        Modifies the properties for an exclusion instance specified by the
        exclusion identifier. This is a complete replacement of all the
        properties of the instance and therefore requires that all properties
        (even if not changing) be submitted with the request.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: exclusionId
          in: path
          description: Alvaria-generated unique identifier for the exclusion instance
          required: true
          type: integer
        - name: accountControlItem
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/ExclusionsUpdateRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '409':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Conflict
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    delete:
      tags:
        - Exclusions
      operationId: Delete Exclusion Instance
      summary: Deletes an exclusion.
      description: Deletes an exclusion specified by the exclusion identifier.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: exclusionId
          in: path
          description: Alvaria-generated unique identifier for the exclusion instance
          required: true
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '204':
          description: No Content
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/exclusionStatuses:
    get:
      tags:
        - ExclusionStatuses
      operationId: Get Exclusion Statuses
      summary: Checks records against compliance rules to determine if dialing is allowed
      description: >-
        Using this API, a record (containing information such as account number,
        phone number, SMS number, Email, SSN(a custom exclusion number),
        customer name, number type, geocode and purpose) can validate against
        compliance rules such as exclusions, attempt tracker, message tracker
        and convenient call time to determine whether dialing is allowed. Each
        request must have contactList and one or more of the following:
        phoneNumber, accountNumber, email, sms, or ssn(a custom exclusion
        number). This operation returns a single record in a result set that
        contains the validation status against various types of compliance
        rules. After a contact attempt is made, the consumer of this API must
        call POST on the callAttempts endpoint to report the call attempt. If
        the record is restricted, it is not mandatory to call POST on the
        callAttempt endpoint. The attempt tracker and message tracker check wont
        perform on SMS or Email records, so callAttempts endpoint call is not
        required for SMS and Email records.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: phoneNumber
          in: query
          description: >-
            Phone number. This is the phone number to use when checking for
            exclusion status.
          required: false
          type: string
        - name: accountNumber
          in: query
          description: >-
            Account number. This is the account number to use when checking for
            exclusion status.
          required: false
          type: string
        - name: email
          in: query
          description: >-
            Email address. This is the email address to use when checking for
            exclusion status. If email is not empty then this record wont check
            againt attempt tracker and message tracker rules
          required: false
          type: string
        - name: sms
          in: query
          description: >-
            SMS phone number. This is the phone number to use when checking for
            SMS exclusion status. If SMS phone number is not empty then this
            record wont check againt attempt tracker and message tracker rules
          required: false
          type: string
        - name: ssn
          in: query
          description: >-
            Secondary service number(a custom exclusion number). This is the
            custom exclusion number value to use when checking for exclusion
            status.
          required: false
          type: string
        - name: customer
          in: query
          description: >-
            Customer name. This is the customer name to use when checking for
            exclusion status.
          required: false
          type: string
        - name: contactList
          in: query
          description: >-
            Contact list name. This is the contact list name to use when
            checking for exclusion status. Provide 'ALL' as the default-value.
          required: false
          type: string
        - name: numberType
          in: query
          description: >-
            Type of phone number. Specify the number type of the phone number to
            dial. Possible values are 1 - Home Phone, 2 - Work Phone, 3 - Other
            Phone, and 4 - Wireless Phone.
          required: false
          type: integer
        - name: geocode
          in: query
          description: >-
            Geocode of the phone number. This is the geocode of the phone number
            to dial.
          required: false
          type: string
        - name: purpose
          in: query
          description: >-
            Purpose associated with the phone number. This is the purpose name
            associated with the phone number to dial.
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionExclusionStatusesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/callAttempts:
    post:
      tags:
        - CallAttempts
      operationId: Report Call Attempt Status
      summary: Reports status for a single call with the required information to Outreach
      description: >-
        The consumer of GET-exclusionStatuses must return their call status to
        Outreach using this interface. This call attempt information is used for
        attempt tracker and message tracker rules validation in the
        GET-exclusionStatuses API. No need of reporting SMS and Email attempts
        using this endpoint because SMS and Email wont consider for attempt
        tracking and message tracking rule validation.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: attemptTrackerEvents
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/CallAttemptsInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/lists/{listId}/fastPathRecords:
    post:
      tags:
        - Lists
      operationId: Insert FastPath Record
      summary: Inserts a record into a Fast Path list
      description: >-
        This API call inserts records into a Fast Path list and optionally sends
        events related to the record processing. If you do not require any event
        processing information, you can use POST
        /campaign/lists/{listId}/fastPathRecords endpoint without a streaming
        session. After a record is successfully inserted, the response will
        include a requestId only. The requestId identifies the inserted record
        and is associated with all responses for the record. If you want to
        receive event processing information, you must include the session ID
        value when invoking the POST /campaign/lists/{listId}/fastPathRecords
        endpoint. To obtain a sessionid, you must first create a streaming
        session with the call POST /streaming/session. The response to this
        request will contain a session ID. You must include this session ID in
        the via-client-sessionid header parameter when invoking the POST
        /campaign/lists/{listId}/fastPathRecords endpoint.  If the
        via-client-sessionid header parameter is missing, no process events are
        generated. After a record is successfully inserted, the response will
        include a requestId and a sessionId. The requestId identifies the
        inserted record and is associated with all responses for the record.
        This is useful in a scenario in which a single streaming session is used
        for multiple insert record requests. The sessionId is the same as the
        via-client-sessionid that was passed in the request. The client can then
        retrieve record processing events by including the sessionId in the
        via-client-sessionid header parameter when using the call GET
        /streaming/events.  The details of the record processing events are
        documented in the REST API Additional Documentation section. [Follow
        this link to the __Alvaria&trade; Cloud Streaming REST API__ if you
        would like to see the events generated by sending Fastpath
        requests.](ViaStreamingClientExternalSwagger.html)
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: listId
          in: path
          description: Alvaria-generated unique identifier for the list instance
          required: true
          type: integer
        - name: fastPathRecordCollection
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/FastPathRecordsInsertRequest'
        - name: via-client-sessionid
          in: header
          description: >-
            Identifier representing a long-lived HTTP interchange between
            Alvaria&trade; Cloud and an entity when the entity is a contact,
            external client application, or authenticated user. This interchange
            is called the streaming session. Streaming sessions are used for
            operations such as exchanging text messages and retrieving events
            related to user activity. This needs to be provided if the client
            requires record status and disposition details, otherwise this is
            optional.
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '201':
          schema:
            $ref: '#/definitions/FastPathRecordsResponse'
          description: Created
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/strategies/{strategyId}/statuses:
    get:
      tags:
        - Strategies
      operationId: Get Strategy Instance Status
      summary: Returns strategy status
      description: >-
        Gets the properties for a strategy instance specified by the identifier.
        This includes the current status, progress status, collection of detail
        statuses and last modified time. For example, Get strategies URL:
        /via/v2/organizations/{orgId}/campaign/strategies/4/statuses
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: strategyId
          in: path
          description: Alvaria-generated unique identifier for the strategy instance
          required: true
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionStatusesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/strategies/{strategyId}/records:
    patch:
      tags:
        - Strategies
      operationId: Update Build Records
      summary: Update build records on strategies
      description: >-
        This operation updates the specified record fields in the Outreach
        strategy and applies only to dynamic lists. For example, updating the
        @Number value of a record. The request initiates the operation only. The
        operation may take some time to complete and a GET strategy lists
        request must be made to obtain the status about the completion of the
        update build record operation.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: strategyId
          in: path
          description: Alvaria-generated unique identifier for the strategy instance
          required: true
          type: integer
        - name: strategy
          in: body
          description: Unique identifier for the resource
          required: true
          schema:
            $ref: '#/definitions/RecordsPartialUpdateRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '409':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Conflict
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    post:
      tags:
        - Strategies
      operationId: Insert Record
      summary: Inserts a record into the prospect database
      description: >-
        Inserts a record into the prospect database defined in the strategy
        identified by the input strategy id. The prospect database must already
        exist by performing a full build of this strategy. Records can be
        inserted into any strategy, except those that use FastPath list types.
        For Static and ActiveSort lists once the record is inserted, the list
        definition filters of the strategy are used to assign the inserted
        record to the appropriate list. It is acceptable to insert records into
        strategies with active lists.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: strategyId
          in: path
          description: Alvaria-generated unique identifier for the strategy instance
          required: true
          type: integer
        - name: contactRecords
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/RecordsInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '201':
          schema:
            $ref: '#/definitions/ExclusionInsertResponse'
          description: Created
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/lists/{listId}:
    patch:
      tags:
        - Lists
      operationId: Update List Instance
      summary: Updates the filter assignment for dynamic or active sort lists
      description: >-
        This operation updates the contact list filter assignment for Dynamic
        and Active Sort lists. This does not apply other list types.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: listId
          in: path
          description: Alvaria-generated unique identifier for the list instance
          required: true
          type: integer
        - name: list
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/ListsPartialUpdateRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '409':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Conflict
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    get:
      tags:
        - Lists
      operationId: Get List Instance
      summary: Gets the properties for a list
      description: >-
        Gets the properties for a list instance specified by the list
        identifier.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: listId
          in: path
          description: Alvaria-generated unique identifier for the list instance
          required: true
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemListsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/lists:
    get:
      tags:
        - Lists
      operationId: Get Lists
      summary: Retrieves lists.
      description: This will return all or a subset based on query parameters.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: name
          in: query
          description: Name of the list
          required: false
          type: string
        - name: status
          in: query
          description: >-
            List status. Possible values are

            0 - Building

            1 - Built

            2 - Inactive

            3 - Active

            4 - Dialing

            5 - Paused
          required: false
          type: integer
        - name: listType
          in: query
          description: >-
            List type. Possible values are

            0 - Static

            1 - Dynamic

            2 - FastPath

            3 - ActiveSort
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionListsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/strategies:
    get:
      tags:
        - Strategies
      operationId: Get Strategies
      summary: Retrieves strategies.
      description: >-
        This will return all strategies or subset based on query parameters.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: name
          in: query
          description: Strategy name
          required: false
          type: string
        - name: purposeName
          in: query
          description: Purpose associated with strategy
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionStrategiesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/strategies/{strategyId}:
    get:
      tags:
        - Strategies
      operationId: Get Strategy Instance
      summary: Retrieves details of strategy
      description: This will return details of a strategy.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: strategyId
          in: path
          description: Alvaria-generated unique identifier for the strategy instance
          required: true
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemStrategiesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/timeZones:
    get:
      tags:
        - TimeZones
      operationId: Get Timezone Instance
      summary: Retrieve Timezone information
      description: >-
        Retrieve Timezone information based on Postal code / Phone number. If
        provided the postal code will be searched on first. If a valid timezone
        is not determined from the postal code the area code and exchange of the
        phone number will be used to try to lookup a timezone. If a timezone is
        not determined, then an empty data object is returned with OK, code 200,
        instead of NOT FOUND, code 404.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: postalCode
          in: query
          description: A Postal code
          required: false
          type: string
        - name: phoneNumber
          in: query
          description: A Phone number
          required: false
          type: string
        - name: countryCode
          in: query
          description: A two character country code
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemTimeZonesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/automationScripts:
    get:
      tags:
        - AutomationScripts
      operationId: Get AutomationScripts
      summary: Returns all automation scripts
      description: >-
        Returns all automation scripts or a subset based on the query parameters
        specified.  A script automates manual processes in the system. Scripts
        in Outreach can be created to automate the many tasks involved in
        running an outbound campaign.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: scriptName
          in: query
          description: Name of the automation script.
          required: false
          type: string
        - name: status
          in: query
          description: >-
            The current state of the automation script. This can be

            '0' - Ok,

            '1' - Warning,

            '2' – Error
          required: false
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionAutomationScriptsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/automationScripts/{automationScriptId}:
    get:
      tags:
        - AutomationScripts
      operationId: Get AutomationScript Instance
      summary: Gets the properties for an automation script instance
      description: >-
        Gets the properties for an automation script instance specified by the
        automation script identifier.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: automationScriptId
          in: path
          description: >-
            Alvaria-generated unique identifier for the automationScript
            instance
          required: true
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemAutomationScriptsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/automationScripts/{automationScriptId}/start:
    post:
      tags:
        - AutomationScripts
      operationId: Start Automation Script
      summary: Start automation script
      description: >-
        Start automation Script for instance specified by the automation script
        identifier. A script automates manual processes in the system. If you
        want to receive event processing information, you must include the
        session ID value when invoking the POST
        /campaign/automationScripts/{automationScriptId}/start endpoint. To
        obtain a sessionid, you must first create a streaming session with the
        call POST /streaming/session. The response to this request will contain
        a session ID. You must include this session ID in the
        via-client-sessionid header parameter when invoking the POST /campaign/
        automationScripts/{automationScriptId}/start endpoint. If the
        via-client-sessionid header parameter is missing, no process events are
        generated. The client can retrieve automation script status by including
        the sessionId in the via-client-sessionid header parameter when using
        the call GET /streaming/events. The details of the processing events are
        documented in the REST API Additional Documentation section. [Follow
        this link if you would like to see the events generated by sending these
        requests.](../../referencedocs/ViaStreamingEvents.pdf)
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: automationScriptId
          in: path
          description: >-
            Alvaria-generated unique identifier for the automationScript
            instance
          required: true
          type: integer
        - name: via-client-sessionid
          in: header
          description: >-
            Identifier representing a long-lived HTTP interchange between
            Alvaria&trade; Cloud and an entity when the entity is a contact,
            external client application, or authenticated user. This interchange
            is called the streaming session. Streaming sessions are used for
            operations such as exchanging text messages and retrieving events
            related to user activity. This needs to be provided if the client
            requires automation script status, otherwise this is optional.
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          description: OK
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/automationScripts/{automationScriptId}/stop:
    post:
      tags:
        - AutomationScripts
      operationId: Stop Automation Script
      summary: Stop automation script
      description: >-
        Stop automation Script for instance specified by the automation script
        identifier. If you want to receive event processing information, you
        must include the session ID value when invoking the POST
        /campaign/automationScripts/{automationScriptId}/stop endpoint. To
        obtain a sessionid, you must first create a streaming session with the
        call POST /streaming/session. The response to this request will contain
        a session ID. You must include this session ID in the
        via-client-sessionid header parameter when invoking the POST /campaign/
        automationScripts/{automationScriptId}/stop endpoint. If the
        via-client-sessionid header parameter is missing, no process events are
        generated. The client can retrieve automation script status by including
        the sessionId in the via-client-sessionid header parameter when using
        the call GET /streaming/events. The details of the processing events are
        documented in the REST API Additional Documentation section. [Follow
        this link if you would like to see the events generated by sending these
        requests.](../../referencedocs/ViaStreamingEvents.pdf)
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: automationScriptId
          in: path
          description: >-
            Alvaria-generated unique identifier for the automationScript
            instance
          required: true
          type: integer
        - name: via-client-sessionid
          in: header
          description: >-
            Identifier representing a long-lived HTTP interchange between
            Alvaria&trade; Cloud and an entity when the entity is a contact,
            external client application, or authenticated user. This interchange
            is called the streaming session. Streaming sessions are used for
            operations such as exchanging text messages and retrieving events
            related to user activity. This needs to be provided if the client
            requires automation script status, otherwise this is optional.
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          description: OK
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/purposes:
    get:
      tags:
        - Purposes
      operationId: Get Purposes
      summary: Returns all the purposes
      description: >-
        Returns all the purposes or a subset based on the query parameters
        specified
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionPurposesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/geocodeTemplates:
    get:
      tags:
        - GeocodeTemplates
      operationId: Get Geocode Templates
      summary: Returns all the geocode template names
      description: Returns all the geocode template names
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionGeocodeTemplatesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/dispositions:
    get:
      tags:
        - Dispositions
      operationId: Get Dispositions
      summary: Returns all the dispositions
      description: >-
        Returns all the dispositions or a subset based on the query parameters
        specified
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: dispositionCode
          in: query
          description: Disposition status code
          required: false
          type: string
        - name: locallyTerminated
          in: query
          description: >-
            Used for filtering Locally Terminated Dispositions. Supported values
            are

            1 - return locally terminated dispositions

            0 - return non locally terminated dispositions
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionDispositionsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v2/organizations/{orgId}/campaign/numberTypes:
    get:
      tags:
        - NumberTypes
      operationId: Get Number Types
      summary: Returns all the number types
      description: >-
        Returns all the number types or a subset based on the query parameters
        specified
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionNumberTypesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/timeZones:
    get:
      tags:
        - TimeZones
      operationId: Get TimeZones
      summary: Retrieve time zone information
      description: >-
        Retrieve time zone information based on postal code / country code /
        phone number. If provided the postal code will be searched on first
        using the country code as a qualifier. If a valid time zone is not
        determined from the postal code the area code and exchange of the phone
        number will be used to try to lookup a time zone. If a time zone is not
        determined, then an empty data set is returned with OK, code 200,
        instead of NOT FOUND, code 404.  Empty postal code and phone number
        query parameters will return all supported timezones.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: postalCode
          in: query
          description: A Postal code
          required: false
          type: string
        - name: phoneNumber
          in: query
          description: A Phone number
          required: false
          type: string
        - name: countryCode
          in: query
          description: A two character country code
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionTimeZonesResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/filters:
    get:
      tags:
        - Filters
      operationId: Get Filters
      summary: Retrieve filters
      description: This will return all filters or a subset based on query parameters.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: filterName
          in: query
          description: Filter name
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionFiltersResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    post:
      tags:
        - Filters
      operationId: Create Filter Instance
      summary: Create Filter Instance
      description: >-
        This endpoint creates a single filter.  Only 'Advanced' filters are
        supported.  The filters must include a WHERE clause and may optionally
        include an ORDER BY clause.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: inFilter
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/FiltersInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '201':
          schema:
            $ref: '#/definitions/FiltersResponse'
          description: Created
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '409':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Conflict
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/filters/{filterId}:
    get:
      tags:
        - Filters
      operationId: Get Filter Instance
      summary: Retrieves a filter.
      description: >-
        Gets the properties for a filter instance specified by the filter
        identifier.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: filterId
          in: path
          description: Alvaria-generated unique identifier for the filter instance
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemFiltersResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    put:
      tags:
        - Filters
      operationId: Update Filter Instance
      summary: Updates a filter.
      description: >-
        Modifies the properties for a filter instance specified by the filter
        identifier. This is a complete replacement of all the properties of the
        instance and therefore requires that all properties (even if not
        changing) be submitted with the request.  Updating a filter through the
        APIs that is 'Basic' will automatically convert it to and 'Advanced'
        filter.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: filterId
          in: path
          description: Alvaria-generated unique identifier for the filter instance
          required: true
          type: string
        - name: filter
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/FiltersUpdateRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemFiltersResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '409':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Conflict
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
    delete:
      tags:
        - Filters
      operationId: Delete Filter Instance
      summary: Deletes a filter.
      description: Deletes a filter specified by the filter identifier.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: filterId
          in: path
          description: Alvaria-generated unique identifier for the filter instance
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '204':
          description: No Content
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '409':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Conflict
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/schemaDefinitions:
    get:
      tags:
        - SchemaDefinitions
      operationId: Get SchemaDefinitions
      summary: Get a list of schema definitions
      description: >-
        This will return all schema definitions or a subset based on query
        parameters.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: schemaName
          in: query
          description: The name of the schema.
          required: false
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionSchemaDefinitionsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/callbacks:
    post:
      tags:
        - Callbacks
      operationId: Create Callbacks
      summary: Creates or updates a callback to the specified phone number.
      description: >-
        Creates or updates a callback to the specified phone number. If a
        callback for the same phone number and work type already exists then it
        will be updated. The callback will not be assigned to any list.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: appointment
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/CallbacksInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CallbacksResponse'
          description: OK
        '201':
          schema:
            $ref: '#/definitions/CallbacksResponse'
          description: Created
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/exportableItems:
    get:
      tags:
        - Jobs
      operationId: Get Exportable Items
      summary: Get Exportable Items
      description: Provides a listing of all exportable objects
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionExportableItemsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/importableItems:
    get:
      tags:
        - Jobs
      operationId: Get importable items
      summary: Get importable items
      description: Provides a listing of all importable objects
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: maxResults
          in: query
          description: >-
            Maximum results. This is used to specify the maximum number of
            records to return in the result set. You can use this to set a
            result set limit that is less than the system/API-specific limit.
          required: false
          type: integer
        - name: startIndex
          in: query
          description: >-
            Index of the starting record.This is used to set the beginning
            record for the result set when multiple GET Collection requests are
            required due to the pagination of a large result set.
          required: false
          type: integer
        - name: fileName
          in: query
          description: Filename to provide import contents
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionImportableItemsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/export:
    post:
      tags:
        - Jobs
      operationId: Export Objects
      summary: Export Objects
      description: >-
        Export data as zip from Outreach to media  location
        ‘exports/configuration/campaign’. This compressed zip file contain data
        in XML format which can be downloaded from the media storage location
        using mediaStorage endpoint.
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: args
          in: body
          description: Details of the objects to be exported
          required: true
          schema:
            $ref: '#/definitions/ExportInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          schema:
            $ref: '#/definitions/ExportResponse'
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/import:
    post:
      tags:
        - Jobs
      operationId: Import Objects
      summary: Import Objects
      description: >-
        Import compressed zip data to Outreach from media location
        ‘imports/configuration/campaign’. Prior to import this compressed zip
        file need to upload to media storage location
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: args
          in: body
          description: Details of the objects to be imported
          required: true
          schema:
            $ref: '#/definitions/ImportInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          schema:
            $ref: '#/definitions/ImportResponse'
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs:
    get:
      tags:
        - Jobs
      operationId: Get Jobs
      summary: Get Jobs
      description: Collection of all Export and Import Job information
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/CollectionJobsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/{jobId}:
    get:
      tags:
        - Jobs
      operationId: Get Job Instance
      summary: Get Job Instance
      description: Return specific job status information
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: jobId
          in: path
          description: Alvaria-generated unique identifier for the job instance
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '200':
          schema:
            $ref: '#/definitions/ItemJobsResponse'
          description: OK
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/{jobId}/pause:
    post:
      tags:
        - Jobs
      operationId: Pause Job
      summary: Pause Job
      description: Pauses an export or import job that is in a running state
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: jobId
          in: path
          description: Alvaria-generated unique identifier for the job instance
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/{jobId}/resume:
    post:
      tags:
        - Jobs
      operationId: Resume Job
      summary: Resume Job
      description: Resumes an export or import job that is in a paused state
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: jobId
          in: path
          description: Alvaria-generated unique identifier for the job instance
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/{jobId}/abort:
    post:
      tags:
        - Jobs
      operationId: Abort Job
      summary: Abort Job
      description: Aborts an export or import job that is in a paused state
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: jobId
          in: path
          description: Alvaria-generated unique identifier for the job instance
          required: true
          type: string
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
  /via/v3/organizations/{orgId}/campaign/jobs/{jobId}/conflict:
    post:
      tags:
        - Jobs
      operationId: Resolve Conflicts
      summary: Resolve Conflicts
      description: Provides resolution for name conflicts
      parameters:
        - name: orgId
          in: path
          description: Name of a customer organization
          required: true
          type: string
        - name: jobId
          in: path
          description: Alvaria-generated unique identifier for the job instance
          required: true
          type: string
        - name: conflicts
          in: body
          description: Collection of resolutions for conflict
          required: true
          schema:
            $ref: '#/definitions/ConflictInsertRequest'
        - name: Authorization
          in: header
          description: >-
            Authentication token with the value: 'Bearer {accessToken}', where
            {accessToken} was returned from a call to the authorization
            endpoint.
          required: true
          type: string
        - name: x-api-key
          in: header
          description: Alvaria-provided value used to track API endpoint usage
          required: true
          type: string
      security:
        - oauth:
          - outreachapi
      responses:
        '202':
          description: Accepted
        '400':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Not Found
        '405':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Method Not Allowed
        '408':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Request Timeout
        '429':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Throttled
        '500':
          schema:
            $ref: '#/definitions/ErrorResponse'
          description: Internal Server Error
definitions:
  CollectionExclusionsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#exclusionCollection'
      accountControlItems:
        type: array
        description: Collection of exclusions
        items:
          $ref: '#/definitions/TerseExclusionsResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results.This property will be deprecated in the
          next version of the API.
        example: 1
  TerseExclusionsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#exclusion'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the exclusion instance
        example: 123
      contactType:
        type: integer
        description: >-
          It can be 0-Account or 1-Voice or 2-Email or 3-SMS Text Message or
          4-Secondary Service Number(a custom exclusion number)
        example: 0
      contactAddress:
        type: string
        description: >-
          The value (how the contact is made) of the contact address, such as
          account or phone number
        example: '09876322222'
      contactListName:
        type: string
        description: >-
          Excluded contact list name. If empty then exclusion applicable to all
          contact lists
        example: 'ContactList1'
  ExclusionsInsertRequest:
    type: object
    properties:
      accountControlItems:
        type: array
        description: Collection of exclusions
        items:
          $ref: '#/definitions/ItemExclusionsInsertRequest'
  ItemExclusionsInsertRequest:
    type: object
    properties:
      contactType:
        type: integer
        description: >-
          It can be 0-Account or 1-Voice or 2-Email or 3-SMS Text Message or
          4-Secondary Service Number(a custom exclusion number)
        example: 0
      contactAddress:
        type: string
        description: >-
          Contact address for a record. The value of this field would be the
          Account number or phone number or email address or SMS contact number
          or Secondary Service Number(a custom exclusion number) based on
          contactType
        example: '09876322222'
      contactListName:
        type: string
        description: >-
          Name of a contact list. If this is empty, the exclusion apply to all
          lists. The valid contact list names can retrieve using GET
          /campaign/lists endpoint
        example: 'ContactList1'
      reason:
        type: string
        description: Reason for exclusion
        example: 'Customer not available'
      startTime:
        type: string
        description: Exclusion start time
        format: date-time
        example: '2017-11-03T23:20:50.525Z'
      endPattern:
        type: integer
        description: >-
          Indicates status of endTime of exclusion

          0 - No endTime set

          1 -  This exclusion having a valid end Time in endTime property
        example: 1
      endTime:
        type: string
        description: >-
          Exclusion end time. If the endPattern property is set to zero (no End
          Time), then the endTime property is not applicable and should also be
          set to zero.
        format: date-time
        example: '2017-11-12T23:20:50.525Z'
  ExclusionsResponse:
    type: object
    properties:
      ids:
        type: array
        description: ids
        items:
          $ref: '#/definitions/ExclusionsIdsResponse'
  ExclusionsIdsResponse:
    type: object
    properties:
      id:
        type: integer
        description: Alvaria-generated unique identifier for the exclusion instance
        example: 123
  ItemExclusionsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#exclusion'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the exclusion instance
        example: 123
      version:
        type: integer
        description: Current version
        example: 3
      contactType:
        type: integer
        description: >-
          It can be 0-Account or 1-Voice or 2-Email or 3-SMS Text Message or
          4-Secondary Service Number(a custom exclusion number)
        example: 1
      contactAddress:
        type: string
        description: >-
          The value (how the contact is made) of the contact address, such as
          account or phone number
        example: '09876322222'
      contactListName:
        type: string
        description: >-
          Name of a contact list. This is used to get records associated with
          the specified contact list name. If this is empty, the records apply
          to all lists
        example: 'ContactList1'
      reason:
        type: string
        description: Reason
        example: 'Customer not available'
      creationTime:
        type: string
        description: >-
          Date and time the exclusion instance was created, specified in ISO
          8601 format and in UTC time zone (1985-04-12T23:20:50.525Z)
        format: date-time
        example: '2017-11-01T23:20:50.525Z'
      startTime:
        type: string
        description: Exclusion start time
        format: date-time
        example: '2017-11-04T23:20:50.525Z'
      endPattern:
        type: integer
        description: >-
          Indicates status of endTime of exclusion

          0 - No endTime set

          1 -  This exclusion having a valid end Time in endTime property
        example: 1
      endTime:
        type: string
        description: Exclusion end time. Refer endPattern for validity of this Time
        format: date-time
        example: '2017-11-12T23:40:50.525Z'
      lastModifiedTime:
        type: string
        description: >-
          Date and time of the most recent change to the exclusion instance,
          specified in ISO 8601 format and in UTC time zone
          (1985-04-12T23:20:50.525Z)
        format: date-time
        example: '2017-11-04T13:20:50.525Z'
  ExclusionsUpdateRequest:
    type: object
    properties:
      version:
        type: integer
        description: >-
          version property must contain the value returned from the GET call for
          the entity to be changed
        example: 3
      contactType:
        type: integer
        description: >-
          It can be 0-Account or 1-Voice or 2-Email or 3-SMS Text Message or
          4-Secondary Service Number(a custom exclusion number)
        example: 1
      contactAddress:
        type: string
        description: >-
          Contact address of a record. The value of this field would be the
          Account number or phone number or email address or SMS contact number
          or Secondary Service Number(a custom exclusion number) based on
          contactType
        example: '09876322222'
      contactListName:
        type: string
        description: >-
          Name of a contact list. If this is empty, the exclusion apply to all
          lists. The valid contact list names can retrieve using GET
          /campaign/lists endpoint
        example: 'ContactList1'
      reason:
        type: string
        description: Reason 
        example: 'Customer not availabl'
      startTime:
        type: string
        description: Exclusion start time
        format: date-time
        example: '2017-11-03T03:20:50.525Z'
      endPattern:
        type: integer
        description: >-
          Indicates status of endTime of exclusion

          0 - No endTime set

          1 -  This exclusion having a valid end Time in endTime property
        example: 1
      endTime:
        type: string
        description: Exclusion end time. Refer endPattern for validity of this Time
        format: date-time
        example: '2017-11-12T23:20:50.525Z'
  CollectionExclusionStatusesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#exclusionStatusCollection'
      accountControlQueryItems:
        type: array
        description: Collection of exclusionStatuses
        items:
          $ref: '#/definitions/TerseExclusionStatusesResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results.This property will be deprecated in the
          next version of the API.
        example: 1
  TerseExclusionStatusesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#exclusionStatus'
      account:
        type: string
        description: Accountnumber (if any) associated with exclusion item
        example: '10005'
      phone:
        type: string
        description: Phonenumber (if any) associated with exclusion item
        example: '9121235477'
      email:
        type: string
        description: Email address (if any) associated with exclusion item
        example: 'mail@server.com'
      sms:
        type: string
        description: SMS number (if any) associated with exclusion item
        example: '9121235477'
      ssn:
        type: string
        description: >-
          Secondary Service Number (custom exclusion number) (if any) associated
          with exclusion item
        example: 'AAA-GG-SSSS'
      contactListName:
        type: string
        description: >-
          Name of a contact list. This is used to get records associated with
          the specified contact list name. Will have the same value provided as
          'contactlistname' query-param
        example: 'ContactList1'
      result:
        type: integer
        description: >-
          Value to identify whether the record is excluded from dialing or not.

          0 = DoNotContact

          1 = DoContact

          2 = NotChecked
        example: 1
      exclusionType:
        type: integer
        description: >-
          Value to identify the record is excluded based on which rule. If
          'result' parameter is 0 (indicating DoNotContact) then only the value
          for 'exclusionType' will have values other than 0 otherwise it will
          have default-value 0.

          0 = Account

          1 = Voice

          2 = Email

          3 = SMS

          4 = SSN(a custom exclusion number)

          5 = Customer

          6 = PhoneDialed

          7 = CustomerPhoneDialed

          8 = VoiceConvenient

          9 = CustomerConvenient
        example: 5
      customer:
        type: string
        description: Customer name
        example: 'ALBERT'
      expirationTimeForAttemptTracker:
        type: integer
        description: >-
          This is applicable only when the 'exclusionType' value 5 (Customer) or
          6 (PhoneDialed) or 7 (CustomerPhoneDialed). This time is seconds,
          after this time record should be allowed to dial
        example: 3600
      nextValidRecallTime:
        type: integer
        description: >-
          This is applicable only when the 'exclusionType' value 8
          (VoiceConvenient) or 9 (CustomerConvenient). The record is allowed to
          dial only after this time specified in seconds
        example: 0
      playMessageType:
        type: integer
        description: >-
          This is applicable with message tracker configurations. It used to
          identify if IVR message can be played for the record

          0 = Can Play

          1 = Can Not Play

          2 = Can Play Messages under certain conditions (telemarketing
          campaign)
        example: 0
      exclusionStartTime:
        type: string
        description: >-
          Time (in seconds) indicating when the restriction will start for this
          record
        format: date-time
        example: '2017-04-12T23:20:50.525Z'
      key:
        type: string
        description: >-
          The value returned in key property should be specified in POST on
          callAttempt end point. If key is empty then no need of calling POST on
          callAttempts end point
        example: '6#13#1505856041887601300'
  CallAttemptsInsertRequest:
    type: object
    properties:
      events:
        type: array
        description: Collection of callAttempts
        items:
          $ref: '#/definitions/ItemCallAttemptsInsertRequest'
  ItemCallAttemptsInsertRequest:
    type: object
    properties:
      customer:
        type: string
        description: Custumer name
        example: 'ALBERT'
      phoneDialed:
        type: string
        description: Phone number dialed
        example: '9122355400'
      responseStatus:
        type: string
        description: Dispostion value based on which call attempts are being tracked
        example: 'BZ'
      timeOfAttempt:
        type: string
        description: Contact time
        format: date-time
        example: '2017-04-12T23:20:50.525Z'
      numberType:
        type: integer
        description: >-
          Specify the numberType of the phonenumber dialed. Possible values are

          1- Home Phone 

          2 - Work Phone 

          3 - Other Phone 

          4 - Wireless Phone
        example: 1
      geoCode:
        type: string
        description: Specify the geocode of the phonenumber dialed. This can be empty
        example: 'USA'
      purposeName:
        type: string
        description: >-
          Specify the purpose name associated with phonenumber dialed. This can
          be empty
        example: 'TelemarketingPurpose'
      key:
        type: string
        description: Specify the key returned by GET on exclusionStatuses endpoint
        example: '6#13#1505856041887601300'
  FastPathRecordsInsertRequest:
    type: object
    properties:
      fastPathRecords:
        type: array
        description: Collection of fastPathRecords
        items:
          $ref: '#/definitions/ItemFastPathRecordsInsertRequest'
  ItemFastPathRecordsInsertRequest:
    type: object
    properties:
      fastPathRecord:
        type: string
        description: >-
          Record details which is matching the fastpath schema eg:
          FastPathRecord values matching to your FastPath schema like if you
          have @NUMBER, @ACCOUNT with each length of 4 in your schema then
          11112222 should be record value.
        example: >-
          '100002    1111270744     1111565111     1111904784     1111310967    
          ALBERT              AARBOR                    5555 ADAMS STREET       
          ANYTOWN             01900-1234          ALASKA              UNITED
          STATES       50.01     31'
      customFieldsStringCollection:
        type: array
        description: >-
          Custom information with record if any. It is string collection but
          takes only 3 string items. They will get stored in Outreach database.
          This is optional parameter.If you don’ t want to supply any custom
          information, then please pass empty collection as below along with
          fastPathRecord section in body. customFieldsStringCollection: [{}]
        items:
          $ref: '#/definitions/FastPathRecordsCustomFieldsStringCollectionInsertRequest'
  FastPathRecordsCustomFieldsStringCollectionInsertRequest:
    type: object
    properties:
      string:
        type: string
        description: record to insert
        example: 'record'
  FastPathRecordsResponse:
    type: object
    properties:
      fastPathResponseCollection:
        type: array
        description: Fastpaths response
        items:
          $ref: '#/definitions/FastPathRecordsFastPathResponseCollectionResponse'
  FastPathRecordsFastPathResponseCollectionResponse:
    type: object
    properties:
      sessionId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the Session. This name is used
          in all subsequent  GET /streaming/events API calls. The sessionId is
          the same as the via-client-sessionId.
        example: '1234143'
      requestId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the fastPathRecord instance.
          The requestId identifies the inserted record and is associated with
          all responses for the record.
        example: '4534147'
  CollectionStatusesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#strategyStatusCollection'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the status instance
        example: 537893998
      description:
        type: string
        description: Description
        example: 'Product 1 Leads'
      lastModifiedTime:
        type: string
        description: >-
          Date and time of the most recent change to the strategy instance,
          specified in ISO 8601 format and in UTC time zone
          (1985-04-12T23:20:50.525Z)
        format: date-time
        example: '2017-01-11 10:33:22'
      status:
        type: integer
        description: >-
          Current status of strategy. It can be

          0 - Building,

          1 - NotBuilt,

          2 - Archiving,

          3 - DeArchiving,

          4 - BuildComplete,

          5 - Appending,

          6 - Estimating,

          7 - Deleting,

          8 - Uploading,

          9 - AppendComplete,

          10 - DeleteComplete,

          11 - DeArchived,

          12 - RecycleComplete,

          13 - UpdateComplete,

          14 - Updating,

          15 - BuildFailed,

          16 - AppendFailed,

          17 - UpdateFailed,

          18 - DeleteFailed,

          19 - BuildAborted,

          20 - AppendAborted,

          21 - UpdateAborted,

          22 - RecycleAborted,

          23 - Recycling,

          24 - RecycleFailed,

          25 - UploadComplete,

          26 - UploadFailed,

          27 - EstimateComplete,

          28 - EstimateFailed,

          29 - DeArchiveFailed,

          30 - UploadAborted,

          31 - EstimateAborted,

          32 - DeArchiveAborted,

          33 - DeleteAborted,

          34 - NoStatus,

          35 - ResetCounters,

          36 - ResetCountersComplete,

          37 - ResetCountersFailed,

          38 - ResetCountersAborted,

          39 - ResetCountersCompleteWithErrors,

          50 - ResetPasscount,

          51 - ResetPasscountComplete,

          52 - ResetPasscountFailed,

          53 - ResetPasscountAborted,

          54 - ResetPasscountCompleteWithErrors,

          55 - DelayedBuild,

          56 - DelayedAppend,

          57 - DelayedUpdate,

          58 - BuildCompleteWithErrors,

          59 - DeArchivedCompleteWithErrors,

          60 - AppendCompleteWithErrors,

          61 - UpdateCompleteWithErrors,

          62 - DeleteCompleteWithErrors,

          63 - RecycleCompleteWithErrors,

          64 - UploadCompleteWithErrors,

          65 - EstimateCompleteWithErrors,

          66 - UpdatingRecords,

          67 - UpdateRecordsComplete,

          68 - UpdateRecordsFailed,

          69 - UpdateRecordsAborted,

          70 - UpdateRecordsCompleteWithErrors,

          71 - UpdateRecordsCompleteWithWarnings
        example: 0
      progressStatus:
        type: string
        description: progressStatus
        example: 'progressStatus'
      detailStatuses:
        type: array
        description: Collection of detailed statuses
        items:
          $ref: '#/definitions/TerseStatusesResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
  TerseStatusesResponse:
    type: object
    properties:
      statusDescription:
        type: string
        description: Detailed status description
        example: >-
          'Lookup key: @ACCOUNT Lookup value: 100001  Field key @NUMBER2 Field
          value: 1234278900  Status : Field key not found'
  RecordsPartialUpdateRequest:
    type: object
    properties:
      records:
        type: array
        description: Collection of records
        items:
          $ref: '#/definitions/RecordsRecordsPartialUpdateRequest'
  RecordsRecordsPartialUpdateRequest:
    type: object
    properties:
      lookupKey:
        type: string
        description: Schema field which uniquely identify record
        example: '@ACCOUNT'
      lookupValue:
        type: string
        description: Schema field value which uniquely identify record
        example: '100001'
      fields:
        type: array
        description: Collection of fields
        items:
          $ref: '#/definitions/RecordsFieldsPartialUpdateRequest'
  RecordsFieldsPartialUpdateRequest:
    type: object
    properties:
      fieldKey:
        type: string
        description: Schema field name
        example: '@NUMBER'
      fieldValue:
        type: string
        description: Schema field value
        example: 'John Doe'
  RecordsInsertRequest:
    type: object
    properties:
      records:
        type: array
        description: Collection of records
        items:
          $ref: '#/definitions/ItemRecordsInsertRequest'
  ItemRecordsInsertRequest:
    type: object
    properties:
      items:
        type: array
        description: records
        items:
          $ref: '#/definitions/RecordsItemsInsertRequest'
  RecordsItemsInsertRequest:
    type: object
    properties:
      field:
        type: string
        description: Name of schema field
        example: '@ACCOUNT'
      value:
        type: string
        description: Value associated with schema field
        example: '100545'
  ListsPartialUpdateRequest:
    type: object
    properties:
      version:
        type: integer
        description: version
        example: 8414880
      filterName:
        type: string
        description: Filter name
        example: 'InitialLeadPhase'
  ItemListsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#list'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the list instance
        example: 234
      version:
        type: integer
        description: Current version
        example: 213
      strategy:
        type: string
        description: Strategy name
        example: 'TestStrategy'
      name:
        type: string
        description: List name
        example: 'BaseOutreachList1'
      description:
        type: string
        description: Description about list
        example: 'Test list'
      status:
        type: integer
        description: >-
          List status. Possible values are

          0 - Building

          1 - Built

          2 - Inactive

          3 - Active

          4 - Dialing

          5 - Paused
        example: 0
      filterName:
        type: string
        description: Filter associated with list
        example: 'Filter1'
      penetration:
        type: integer
        description: List penetration
        example: 23
      hitRate:
        type: integer
        description: List hit rate
        example: 45
      saturation:
        type: integer
        description: List saturation
        example: 50
      exclusionFilter:
        type: string
        description: Exclusion filter associated with list
        example: 'ExclusionList'
      listType:
        type: integer
        description: >-
          Specify list type. Possible values are

          0 - Static

          1 - Dynamic

          2 - FastPath

          3 - ActiveSort
        example: 0
      purposeName:
        type: string
        description: Purpose name associated with list
        example: 'TeleMarketting'
  CollectionListsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#listCollection'
      contactLists:
        type: array
        description: Collection of lists
        items:
          $ref: '#/definitions/TerseListsResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results.This property will be deprecated in the
          next version of the API.
        example: 1
  TerseListsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#list'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the list instance
        example: 123
      name:
        type: string
        description: Name of the list
        example: 'BaseOutreachList1'
  CollectionStrategiesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#strategyCollection'
      projects:
        type: array
        description: Collection of strategies
        items:
          $ref: '#/definitions/TerseStrategiesResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results.This property will be deprecated in the
          next version of the API.
        example: 1
  TerseStrategiesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#strategy'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the strategy instance
        example: 2341
      name:
        type: string
        description: Strategy name
        example: 'CreditcardStrategy'
  ItemStrategiesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#strategy'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the strategy instance
        example: 2341
      version:
        type: integer
        description: Current version
        example: 4
      name:
        type: string
        description: Strategy name
        example: 'CreditcardStrategy'
      description:
        type: string
        description: Description of the Strategy
        example: 'This is for creditcard tracking'
      status:
        type: integer
        description: >-
          Current status of strategy. This can be

          0 - Building,

          1 - NotBuilt,

          2 - Archiving,

          3 - DeArchiving,

          4 - BuildComplete,

          5 - Appending,

          6 - Estimating,

          7 - Deleting,

          8 - Uploading,

          9 - AppendComplete,

          10 - DeleteComplete,

          11 - DeArchived,

          12 - RecycleComplete,

          13 - UpdateComplete,

          14 - Updating,

          15 - BuildFailed,

          16 - AppendFailed,

          17 - UpdateFailed,

          18 - DeleteFailed,

          19 - BuildAborted,

          20 - AppendAborted,

          21 - UpdateAborted,

          22 - RecycleAborted,

          23 - Recycling,

          24 - RecycleFailed,

          25 - UploadComplete,

          26 - UploadFailed,

          27 - EstimateComplete,

          28 - EstimateFailed,

          29 - DeArchiveFailed,

          30 - UploadAborted,

          31 - EstimateAborted,

          32 - DeArchiveAborted,

          33 - DeleteAborted,

          34 - NoStatus,

          35 - ResetCounters,

          36 - ResetCountersComplete,

          37 - ResetCountersFailed,

          38 - ResetCountersAborted,

          39 - ResetCountersCompleteWithErrors,

          50 - ResetPasscount,

          51 - ResetPasscountComplete,

          52 - ResetPasscountFailed,

          53 - ResetPasscountAborted,

          54 - ResetPasscountCompleteWithErrors,

          55 - DelayedBuild,

          56 - DelayedAppend,

          57 - DelayedUpdate,

          58 - BuildCompleteWithErrors,

          59 - DeArchivedCompleteWithErrors,

          60 - AppendCompleteWithErrors,

          61 - UpdateCompleteWithErrors,

          62 - DeleteCompleteWithErrors,

          63 - RecycleCompleteWithErrors,

          64 - UploadCompleteWithErrors,

          65 - EstimateCompleteWithErrors,

          66 - UpdatingRecords,

          67 - UpdateRecordsComplete,

          68 - UpdateRecordsFailed,

          69 - UpdateRecordsAborted,

          70 - UpdateRecordsCompleteWithErrors,

          71 - UpdateRecordsCompleteWithWarnings
        example: 0
      lastModifiedTime:
        type: string
        description: >-
          Date and time of the most recent change to the strategy instance,
          specified in ISO 8601 format and in UTC time zone
          (1985-04-12T23:20:50.525Z)
        format: date-time
        example: '2017-04-12T23:20:50.525Z'
      lastBuildTime:
        type: string
        description: Last build time
        format: date-time
        example: '2017-04-12T23:20:50.525Z'
      purposeName:
        type: string
        description: Name of the purpose associated with strategy
        example: 'TelemarketingPurpose'
  ItemTimeZonesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#Timezone'
      postalCode:
        type: string
        description: The Postal code that was used in the Timezone lookup
        example: '90210'
      phoneNumber:
        type: string
        description: The phone number that was used in the Timezone lookup
        example: '5558889999'
      olsonName:
        type: string
        description: The Olson name for the Timezone found
        example: 'America/Los_Angeles'
      displayName:
        type: string
        description: >-
          String that describes this time zone, including representative cities
          and offset from UTC
        example: '(UTC-08:00) Pacific Time (US & Canada)'
      timezoneId:
        type: string
        description: Alvaria-generated unique identifier for the timezone
        example: '33'
      countryCode:
        type: string
        description: The country code that was used in the Timezone lookup
        example: 'US'
  CollectionAutomationScriptsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#automationScriptCollection'
      scripts:
        type: array
        description: Collection of scripts
        items:
          $ref: '#/definitions/TerseAutomationScriptsResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results.This property will be deprecated in the
          next version of the API.
        example: 1
  TerseAutomationScriptsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#automationScript'
      id:
        type: integer
        description: >-
          Alvaria-generated unique identifier for the automationScript instance
        example: 123
      scriptName:
        type: string
        description: Name of the automation script.
        example: 'automationScript1 '
      runningState:
        type: boolean
        description: >-
          Show script running state. This can be

          false - script is not running,

          true - script is running
        example: false
  ItemAutomationScriptsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#automationScript'
      id:
        type: integer
        description: >-
          Alvaria-generated unique identifier for the automationScript instance
        example: 123
      scriptName:
        type: string
        description: Name of the automation script.
        example: 'BaseScript1'
      scriptDescription:
        type: string
        description: Description of the automation script.
        example: 'Base Script to Download NANP for Starter Kit'
      lastModifiedTime:
        type: string
        description: Show Time when the resource was updated last
        format: date-time
        example: '2017-11-04T13:20:50.525Z'
      runningState:
        type: boolean
        description: >-
          Show script running state. This can be

          false - script is not running,

          true - script is running
        example: false
      status:
        type: integer
        description: >-
          The current state of the automation script. This can be

          0 - Ok,

          1 - Warning,

          2 - Error
        example: 2
      statusMessage:
        type: string
        description: Show the resource detail status description
        example: 'Strategy is active'
      lastExecutedTime:
        type: string
        description: Show Time when the resource was executed last
        format: date-time
        example: '2017-11-04T13:20:50.525Z'
  CollectionPurposesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#purposeCollection'
      purposes:
        type: array
        description: Collection of purposes
        items:
          $ref: '#/definitions/TersePurposesResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
  TersePurposesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#purpose'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the purpose instance
        example: 1
      friendlyName:
        type: array
        description: Unique descriptive name for this Purpose instance
        items:
          $ref: '#/definitions/PurposesFriendlyNameResponse'
      purposeType:
        type: string
        description: Purpose type
        enum:
          - General
          - Telemarketing
        example: 'Telemarketing'
  PurposesFriendlyNameResponse:
    type: object
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: 'en-US'
      value:
        type: string
        description: The Localized value of the Purpose Name.
        example: 'TeleMarketing Purpose'
  CollectionGeocodeTemplatesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#geocodeTemplateCollection'
      geocodeTemplates:
        type: array
        description: Collection of geocode template names
        items:
          $ref: '#/definitions/TerseGeocodeTemplatesResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
  TerseGeocodeTemplatesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#geocodeTemplate'
      friendlyName:
        type: array
        description: Unique descriptive name for this GeocodeTemplate instance
        items:
          $ref: '#/definitions/GeocodeTemplatesFriendlyNameResponse'
      id:
        type: string
        description: >-
          Alvaria-generated unique identifier for the geocodeTemplate instance
        example: 'Default'
  GeocodeTemplatesFriendlyNameResponse:
    type: object
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: 'en-US'
      value:
        type: string
        description: The Localized value of the GeocodeTemplate Name.
        example: 'Default'
  CollectionDispositionsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#dispositionCollection'
      dispositions:
        type: array
        description: Collection of dispositions
        items:
          $ref: '#/definitions/TerseDispositionsResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
  TerseDispositionsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#disposition'
      id:
        type: integer
        description: Alvaria-generated unique identifier for the disposition instance
        example: 1
      dispositionCode:
        type: string
        description: Disposition status code
        example: 'CB'
      friendlyName:
        type: array
        description: Unique descriptive name for this Disposition instance
        items:
          $ref: '#/definitions/DispositionsFriendlyNameResponse'
      dispositionType:
        type: string
        description: Disposition type
        enum:
          - Agent
          - System
          - Raw
        example: 'Agent'
  DispositionsFriendlyNameResponse:
    type: object
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: 'en-US'
      value:
        type: string
        description: The Localized value of the Disposition Name.
        example: 'Service Level Callback'
  CollectionNumberTypesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#numberTypeCollection'
      numberTypes:
        type: array
        description: Collection of number types
        items:
          $ref: '#/definitions/TerseNumberTypesResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
  TerseNumberTypesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#numberType'
      numberTypeCode:
        type: integer
        description: Number type code used
        example: 1
      friendlyName:
        type: array
        description: Unique descriptive name for this NumberType instance
        items:
          $ref: '#/definitions/NumberTypesFriendlyNameResponse'
      id:
        type: string
        description: Alvaria-generated unique identifier for the numberType instance
        example: 'HomePhone'
  NumberTypesFriendlyNameResponse:
    type: object
    required:
      - locale
      - value
    properties:
      locale:
        type: string
        description: The IETF Language Tag.
        example: 'en-US'
      value:
        type: string
        description: The Localized value of the NumberType Name.
        example: 'HomePhone'
  CollectionTimeZonesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#TimeZoneCollection'
      timeZones:
        type: array
        description: Collection of time zone objects
        items:
          $ref: '#/definitions/TerseTimeZonesResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
  TerseTimeZonesResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#TimeZone'
      postalCode:
        type: string
        description: The Postal code that was used in the Timezone lookup
        example: '90210'
      phoneNumber:
        type: string
        description: The phone number that was used in the Timezone lookup
        example: '5558889999'
      olsonName:
        type: string
        description: An Olson name of the time zone
        example: 'America/Detroit'
      displayName:
        type: string
        description: >-
          String that describes this time zone, including representative cities
          and offset from UTC
        example: '(UTC-05:00) Eastern Time (US & Canada)'
      timeZoneId:
        type: string
        description: Alvaria-generated unique identifier for the timezone
        example: '18'
      countryCode:
        type: string
        description: The country code that was used in the Timezone lookup
        example: 'US'
  CollectionFiltersResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#filterCollection'
      filters:
        type: array
        description: A collection of filters
        items:
          $ref: '#/definitions/TerseFiltersResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results. This property will be deprecated in the
          next version of the API.
        example: 1
  TerseFiltersResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#filter'
      id:
        type: string
        description: Alvaria-generated unique identifier for the filter instance
        example: '123'
      version:
        type: integer
        description: The version of the filter entity.
        example: 1
      filterName:
        type: string
        description: The name of the filter
        example: 'All'
      filterDescription:
        type: string
        description: The description of the filter
        example: 'Include all records'
      schemaId:
        type: string
        description: >-
          Optional id of the schema associated with the filter.  Schema
          definition ids can be retrieved from the GET /schemaDefinitions
          endpoint.  This is used for validating the filters against a
          particular schema from the UI.
        example: '1'
      filterCriteria:
        type: string
        description: >-
          The string representation of the sql where clause definition of the
          filter.
        example: '1=1'
      lastModifiedBy:
        type: string
        description: The user that last modified the filter.
        example: 'user1'
      lastModifiedDate:
        type: string
        description: The date time of the filter was last modified.
        format: date-time
        example: '2020-08-01T23:20:50Z'
  FiltersInsertRequest:
    type: object
    required:
      - filterName
      - filterCriteria
    properties:
      filterName:
        type: string
        description: The name of the filter.
        example: 'All'
      filterDescription:
        type: string
        description: The description of the filter.
        example: 'Catch all'
      schemaId:
        type: string
        description: >-
          Optional id of the schema associated with the filter.  Schema
          definition ids can be retrieved from the GET /schemaDefinitions
          endpoint.  This is used for validating the filters against a
          particular schema from the UI.
        example: '5'
      filterCriteria:
        type: string
        description: >-
          The criteria associated with the filter.  It should contain the entire
          WHERE clause including any ORDER BY conditions.
        example: '1 = 1 order by DaysDelinquent'
  FiltersResponse:
    type: object
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the filter instance
        example: '1'
      version:
        type: integer
        description: Current version
        example: 1
      filterName:
        type: string
        description: The name of the filter.
        example: 'All'
      filterDescription:
        type: string
        description: The description of the filter.
        example: 'Catch all'
      schemaId:
        type: string
        description: >-
          Optional id of the schema associated with the filter.  Schema
          definition ids can be retrieved from the GET /schemaDefinitions
          endpoint.  This is used for validating the filters against a
          particular schema from the UI.
        example: '1'
      filterCriteria:
        type: string
        description: >-
          The criteria associated with the filter.  It should contain the entire
          WHERE clause including any ORDER BY conditions.
        example: '1 = 1 order by DaysDeliquent'
      lastModifiedBy:
        type: string
        description: User that last changed the instance.
        example: 'User1'
      lastModifiedTime:
        type: string
        description: Date and time of the most recent change to the instance.
        format: date-time
        example: '2020-08-01T23:20:50Z'
  ItemFiltersResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#filter'
      id:
        type: string
        description: Alvaria-generated unique identifier for the filter instance
        example: '1'
      version:
        type: integer
        description: The version of the filter entity.
        example: 1
      filterName:
        type: string
        description: The name of the filter.
        example: 'All'
      filterDescription:
        type: string
        description: The description of the filter.
        example: 'All Inclusive'
      schemaId:
        type: string
        description: >-
          Optional id of the schema associated with the filter.  Schema
          definition ids can be retrieved from the GET /schemaDefinitions
          endpoint.  This is used for validating the filters against a
          particular schema from the UI.
        example: '5'
      filterCriteria:
        type: string
        description: The criteria defined in this filter.
        example: '1 = 1'
      lastModifiedBy:
        type: string
        description: The last user to touch this filter.
        example: 'aa00'
      lastModifiedDate:
        type: string
        description: The time the filter was last modified.
        format: date-time
        example: '2020-08-01T23:20:50Z'
  FiltersUpdateRequest:
    type: object
    required:
      - version
      - filterName
      - filterCriteria
    properties:
      version:
        type: integer
        description: The version of the filter entity.
        example: 1
      filterName:
        type: string
        description: The name of the filter.
        example: 'All'
      filterDescription:
        type: string
        description: The description of the filter.
        example: 'Catch all'
      schemaId:
        type: string
        description: >-
          Optional id of the schema associated with the filter.  Schema
          definition ids can be retrieved from the GET /schemaDefinitions
          endpoint.  This is used for validating the filters against a
          particular schema from the UI.
        example: '5'
      filterCriteria:
        type: string
        description: >-
          The criteria associated with the filter.  It should contain the entire
          WHERE clause including any ORDER BY conditions.
        example: '1 = 1'
  CollectionSchemaDefinitionsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#schemaDefinitionCollection'
      schemaDefinitions:
        type: array
        description: A collection of schema definitions.
        items:
          $ref: '#/definitions/TerseSchemaDefinitionsResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results. This property will be deprecated in the
          next version of the API.
        example: 1
  TerseSchemaDefinitionsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#schemaDefinition'
      id:
        type: string
        description: >-
          Alvaria-generated unique identifier for the schemaDefinition instance
        example: '1'
      tenantId:
        type: integer
        description: Readonly property defining the tenant identifier
        example: 1
      schemaName:
        type: string
        description: The name of the schema definition.
        example: 'BaseSchema'
      schemaDescription:
        type: string
        description: The description of the schema definition.
        example: 'Base Schema'
      lastModifiedBy:
        type: string
        description: The last user to modify this schema definition.
        example: 'System (initial settings)'
      lastUpdatedDate:
        type: string
        description: >-
          Date and time of the most recent change to the schema definition
          instance, specified in ISO 8601 format and in UTC time zone
          (1985-04-12T23:20:50.525Z)
        format: date-time
        example: '2017-04-12T23:20:50.525Z'
  CallbacksInsertRequest:
    type: object
    required:
      - workTypeId
      - phoneNumber
      - callbackDateTime
      - callbackType
    properties:
      workTypeId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the Outbound work type
          instance to be associated with the callback. The work type id can be
          retrieved from the url
          /via/v2/organizations/{orgId}/provisioning/workTypes?channelType=voice&direction=outreach.
          The 'id' retrieved from the url is a combination of short name and the
          worktype id (shortname.worktypeid) where the worktype id is to be
          used.
        example: '1'
      memo:
        type: string
        description: Callback memo
        maxLength: 256
        example: 'My Callback'
      olsonTimeZone:
        type: string
        description: >-
          Olson timezone name(see https://www.iana.org/time-zones for more
          information) matching to the customer timezone. The valid olson
          timezones can be retrieved using GET
          /via/v3/organizations/{orgId}/campaign/timeZones endpoint. This value
          is used for AttemptTracker or ConvenientContactTime evaluation if
          enabled.
        example: 'America/Chicago'
      phoneNumber:
        type: string
        description: Callback phone number
        example: '9012314344'
      callbackDateTime:
        type: string
        description: >-
          Date and time of the callback, specified in ISO 8601 format and in UTC
          time zone
        format: date-time
        example: '2024-07-06T17:04:00.000Z'
      callbackType:
        type: string
        description: Callback type
        default: ServiceLevel
        enum:
          - ServiceLevel
          - SameAgent
        example: 'SameAgent'
      accountNumber:
        type: string
        description: >-
          Account number. This value is used for Exclusion, AttemptTracker and
          ConvenientContactTime evaluation if enabled.
        maxLength: 256
        example: '10021224'
      secondaryServiceNumber:
        type: string
        description: >-
          Secondary service number. This value is used for Exclusion evaluation
          if enabled.
        maxLength: 256
        example: '12844532'
      customer:
        type: string
        description: >-
          Unique value that identifies an individual customer. This value is
          used for AttemptTracker or ConvenientContactTime evaluation if
          enabled.
        maxLength: 256
        example: '10021224'
      userId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the user instance. Required
          for SameAgent type of callback only. User id assigned to the work type
          and this can be retrieved using the
          /via/v3/organizations/{orgId}/provisioning/users endpoint.
        example: '13e4b576c800001'
      userDefinedData:
        type: array
        description: >-
          This contain the user defined data(CDD values) for the callback
          record. Maximum of 20 CDD fields are supported.
        items:
          $ref: '#/definitions/ItemCallbacksInsertRequest'
      numberType:
        type: integer
        description: >-
          Number type of the phone number. The valid number types can be
          retrieved using GET /via/v2/organizations/{orgId}/campaign/numberTypes
          endpoint. This value is used for AttemptTracker evaluation if enabled.
        example: 1
  ItemCallbacksInsertRequest:
    type: string
    description: Contact Data
    example: 'CDD1'
  CallbacksResponse:
    type: object
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the callback instance
        example: '123'
      workTypeId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the Outbound work type
          instance to be associated with the callback. The work type id can be
          retrieved from the url
          /via/v2/organizations/{orgId}/provisioning/workTypes?channelType=voice&direction=outreach.
          The 'id' retrieved from the url is a combination of short name and the
          worktype id (shortname.worktypeid) where the worktype id is to be
          used.
        example: '1'
      memo:
        type: string
        description: Callback memo
        maxLength: 256
        example: 'My Callback'
      olsonTimeZone:
        type: string
        description: >-
          Olson timezone name(see https://www.iana.org/time-zones for more
          information) matching to the customer timezone. The valid olson
          timezones can be retrieved using GET
          /via/v3/organizations/{orgId}/campaign/timeZones endpoint. This value
          is used for AttemptTracker or ConvenientContactTime evaluation if
          enabled.
        example: 'America/Chicago'
      phoneNumber:
        type: string
        description: Callback phone number
        example: '9012314344'
      callbackDateTime:
        type: string
        description: >-
          Date and time of the callback, specified in ISO 8601 format and in UTC
          time zone
        format: date-time
        example: '2024-07-06T17:04:00.000Z'
      callbackType:
        type: string
        description: Callback type
        enum:
          - ServiceLevel
          - SameAgent
        example: 'SameAgent'
      accountNumber:
        type: string
        description: >-
          Account number. This value is used for Exclusion, AttemptTracker and
          ConvenientContactTime evaluation if enabled.
        example: '10021224'
      secondaryServiceNumber:
        type: string
        description: >-
          Secondary service number. This value is used for Exclusion evaluation
          if enabled.
        example: '12844532'
      customer:
        type: string
        description: >-
          Unique value that identifies an individual customer. This value is
          used for AttemptTracker or ConvenientContactTime evaluation if
          enabled.
        example: '10021224'
      userId:
        type: string
        description: >-
          Alvaria-generated unique identifier for the user instance. Required
          for SameAgent type of callback only. User id assigned to the work type
          and this can be retrieved using the
          /via/v3/organizations/{orgId}/provisioning/users endpoint.
        example: '13e4b576c800001'
      userDefinedData:
        type: array
        description: >-
          This contain the user defined data(CDD values) for the callback
          record. Maximum of 20 CDD fields are supported.
        items:
          $ref: '#/definitions/CallbacksUserDefinedDataResponse'
      numberType:
        type: integer
        description: >-
          Number type of the phone number. The valid number types can be
          retrieved using GET /via/v2/organizations/{orgId}/campaign/numberTypes
          endpoint. This value is used for AttemptTracker evaluation if enabled.
        example: 1
  CallbacksUserDefinedDataResponse:
    type: string
    description: Contact data
    example: 'CDD1'
  CollectionExportableItemsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#exportableItemCollection'
      objectsTypes:
        type: array
        description: Collection of exportable object types
        items:
          $ref: '#/definitions/TerseExportableItemsResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results. This property will be deprecated in the
          next version of the API.
        example: 1
  TerseExportableItemsResponse:
    type: object
    properties:
      exportableObjects:
        type: array
        description: Collection of exportable objects
        items:
          $ref: '#/definitions/ExportableItemsExportableObjectsResponse'
      exportableObjectGroup:
        type: string
        description: Object Group Identifier
        example: 'TimeZoneTemplates'
  ExportableItemsExportableObjectsResponse:
    type: object
    properties:
      objectName:
        type: string
        description: Name of the object
        example: 'STRATEGY_ABC'
      objectDescription:
        type: string
        description: Description about the object
        example: 'Strategy used for 30 Day late'
      relatedItems:
        type: array
        description: Collection of related Items
        items:
          $ref: '#/definitions/ExportableItemsRelatedItemsResponse'
  ExportableItemsRelatedItemsResponse:
    type: object
    properties:
      objectType:
        type: string
        description: Type of object
        example: 'INPUTS'
      objectNames:
        type: string
        description: List of values
        example: 'A, B, C'
  CollectionImportableItemsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#importableItemCollection'
      objectsTypes:
        type: array
        description: Collection of importable object types
        items:
          $ref: '#/definitions/TerseImportableItemsResponse'
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.


        example: 1
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results. This property will be deprecated in the
          next version of the API.
        example: 1
  TerseImportableItemsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#importableItem'
      objects:
        type: array
        description: Collection of importable objects
        items:
          $ref: '#/definitions/ImportableItemsObjectsResponse'
      objectGroup:
        type: string
        description: Object group identifier
        example: 'TimeZoneTemplates'
  ImportableItemsObjectsResponse:
    type: object
    properties:
      objectName:
        type: string
        description: Name of the object
        example: 'STRATEGY_ABC'
      objectDescription:
        type: string
        description: Description about the object
        example: 'Strategy used for 30 Day late'
      relatedItems:
        type: array
        description: Collection of related Items
        items:
          $ref: '#/definitions/ImportableItemsRelatedItemsResponse'
  ImportableItemsRelatedItemsResponse:
    type: object
    properties:
      objectType:
        type: string
        description: Type of object
        example: 'INPUTS'
      objectNames:
        type: string
        description: List of values
        example: 'A, B, C'
  ExportInsertRequest:
    type: object
    required:
      - fileName
      - zipComment
      - objectsToExport
    properties:
      fileName:
        type: string
        description: Filename to be used for compressed data exported
        example: 'ExmapleFileName'
      zipComment:
        type: string
        description: Description about the details of the data exported
        example: 'Strategies exported from ABC machine'
      objectsToExport:
        type: array
        description: Objects to Export
        items:
          $ref: '#/definitions/ItemExportInsertRequest'
  ItemExportInsertRequest:
    type: object
    required:
      - objectType
      - objectNames
    properties:
      objectType:
        type: string
        description: >-
          Type of the entity to be exported. The supported values are
          DISPOSITIONS, DISPOSITIONPLANS, DISPOSITIONGROUPS, CONTACTSTRATEGIES,
          HOLIDAYS, HOLIDAYSETS, FILTERS, FILTERPURPOSES, SCHEDULES,
          LISTTEMPLATE, PRIORITYTEMPLATE, TIMEZONETEMPLATE, AREACODETEMPLATE,
          POSTALCODETEMPLATE, COUNTERTEMPLATE, GEOCODETEMPLATE,
          WORKTYPETEMPLATE, SMSTEMPLATE, STRATEGY, BATCHUPLOAD, INPUTS,
          LISTDEFINITIONS, WORKTYPES, SCHEMADEFINITIONS
        example: 'STRATEGY'
      objectNames:
        type: array
        description: Names of the objects to be exported
        items:
          $ref: '#/definitions/ExportObjectNamesInsertRequest'
  ExportObjectNamesInsertRequest:
    type: string
    description: Name of the entity to be exported
    example: 'ABC_Strategy'
  ExportResponse:
    type: object
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the job instance
        example: '99f31b29-b522-4203-beb4-60f2c714f473'
      creationTime:
        type: string
        description: Date and time the object instance was created.
        example: '2020-08-01T23:20:50Z'
      lastModifiedTime:
        type: string
        description: Date and time of the most recent change to the instance.
        example: '2020-08-01T23:20:50Z'
  ImportInsertRequest:
    type: object
    required:
      - fileName
      - objectsToImport
    properties:
      fileName:
        type: string
        description: >-
          The name of the zip file to import from media storage location
          ‘imports/configuration/campaign’ to Outreach
        example: 'example.zip'
      dialerName:
        type: string
        description: Name of the dialer to be defaulted
        example: 'OutreachVia-Default-Dialer'
      insertOnly:
        type: boolean
        description: If true only allow new inserts and prevent updates for an import
        example: false
      salt:
        type: string
        description: >-
          Define a salt of up to 4 alphanumeric characters to be applied to any
          import items that may conflict with an existing item in the system
        example: 'sal1'
      appendSalt:
        type: boolean
        description: If true append the salt instead of prepend
        example: true
      updateAll:
        type: boolean
        description: >-
          If true only update existing objects with the data from the import
          file
        example: false
      ignoreErrors:
        type: boolean
        description: If true errors will be ignored during import
        example: false
      objectsToImport:
        type: array
        description: Objects to Import
        items:
          $ref: '#/definitions/ItemImportInsertRequest'
  ItemImportInsertRequest:
    type: object
    required:
      - objectType
      - objectNames
    properties:
      objectType:
        type: string
        description: >-
          Type of the entity to be imported. The supported values are
          DISPOSITIONS, DISPOSITIONPLANS, DISPOSITIONGROUPS, CONTACTSTRATEGIES,
          HOLIDAYS, HOLIDAYSETS, FILTERS, FILTERPURPOSES, SCHEDULES,
          LISTTEMPLATE, PRIORITYTEMPLATE, TIMEZONETEMPLATE, AREACODETEMPLATE,
          POSTALCODETEMPLATE, COUNTERTEMPLATE, GEOCODETEMPLATE,
          WORKTYPETEMPLATE, SMSTEMPLATE, STRATEGY, BATCHUPLOAD, INPUTS,
          LISTDEFINITIONS, WORKTYPES, SCHEMADEFINITIONS
        example: 'STRATEGY'
      objectNames:
        type: array
        description: Names of the objects to be imported
        items:
          $ref: '#/definitions/ImportObjectNamesInsertRequest'
  ImportObjectNamesInsertRequest:
    type: string
    description: Name of the entity to be imported
    example: 'ABC_Strategy'
  ImportResponse:
    type: object
    properties:
      id:
        type: string
        description: Alvaria-generated unique identifier for the job instance
        example: '99f31b29-b522-4203-beb4-60f2c714f473'
      creationTime:
        type: string
        description: Date and time the object instance was created.
        example: '2020-08-01T23:20:50Z'
      lastModifiedTime:
        type: string
        description: Date and time the object instance was created.
        example: '2020-08-01T23:20:50Z'
  CollectionJobsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#jobCollection'
      jobs:
        type: array
        description: Collection of jobs
        items:
          $ref: '#/definitions/TerseJobsResponse'
      lastIndexReturned:
        type: integer
        description: >-
          Final record returned in the result set of a GET Collection operation.
          This can be used as the startIndex query parameter value in a
          subsequent call for results. This property will be deprecated in the
          next version of the API.
        example: 1
      totalItems:
        type: integer
        description: >-
          Total number of entity instances returned in the results. This
          property indicates the total number of records in the result set. The
          client can use this value to determine how many calls will be required
          to navigate through the entire result set.
        example: 1
  TerseJobsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#job'
      id:
        type: string
        description: Alvaria-generated unique identifier for the job instance
        example: '9582fe3d-0ea9-4a72-9bfc-deb3febf2bc1'
      jobType:
        type: string
        description: Type of job, supported types are Export and Import
        example: 'Export'
      fileName:
        type: string
        description: File used in job request
        example: 'example.zip'
      message:
        type: string
        description: Job status message
        example: 'inactive'
      jobStatus:
        type: string
        description: Status of job
        example: 'Pending'
      conflicts:
        type: boolean
        description: Indicate conflicts happened in import job
        example: false
      conflictObjectName:
        type: string
        description: Indicates conflict object name
        example: 'SchemaDefinitions'
  ItemJobsResponse:
    type: object
    properties:
      kind:
        type: string
        description: >-
          Identifier used by Alvaria&trade; Cloud components to serialize the
          payload of the results
        example: 'via#job'
      jobType:
        type: string
        description: Type of job, supported types are Export and Import
        example: 'Export'
      message:
        type: string
        description: Job status message
        example: 'inactive'
      jobStatus:
        type: string
        description: Status of job
        example: 'Pending'
      conflicts:
        type: boolean
        description: Indicate conflicts happened for import job
        example: false
      conflictObjectName:
        type: string
        description: Indicates conflict object name
        example: 'SchemaDefinition'
      conflictInfo:
        type: array
        description: Indicate the conflict item names
        items:
          $ref: '#/definitions/JobsConflictInfoResponse'
  JobsConflictInfoResponse:
    type: object
    properties:
      name:
        type: string
        description: The original conflict object name
        example: 'TESTABC'
  ConflictInsertRequest:
    type: object
    required:
      - configObjectName
      - configRenameAll
      - configIgnoreAll
      - configSalt
      - configAppend
      - conflictChanges
    properties:
      configObjectName:
        type: string
        description: >-
          The name of the import object that has a conflict that you are
          providing a resolution for.
        example: 'Dispositions'
      configRenameAll:
        type: boolean
        description: Enable rename of all conflicts with Salt
        example: true
      configIgnoreAll:
        type: boolean
        description: Enable ignore conflict values
        example: true
      configSalt:
        type: string
        description: Define a 4 character salt to a conflict value name
        example: 'ABC'
      configAppend:
        type: boolean
        description: >-
          Enable salt value be appended rather than prepended to conflict value
        example: true
      conflictChanges:
        type: array
        description: Collection of resolution name changes
        items:
          $ref: '#/definitions/ItemConflictInsertRequest'
  ItemConflictInsertRequest:
    type: object
    required:
      - originalName
      - newName
    properties:
      originalName:
        type: string
        description: Original name value that is causing a conflict
        example: 'ABC'
      newName:
        type: string
        description: Requested new name value to resolve conflict
        example: 'DEF'
  ExclusionInsertResponse:
    type: object
    properties:
      id:
        type: integer
        description: Alvaria-generated unique identifier for the resource instance
        example: 123
  ErrorResponse:
    type: object
    properties:
      error:
        $ref: '#/definitions/ErrorResponseObj'
  ErrorResponseObj:
    type: object
    properties:
      errors:
        type: array
        items:
          $ref: '#/definitions/ErrorResponseItem'
      code:
        type: integer
        description: Error code
        example: 404
      message:
        type: string
        description: Error message.
        example: Not Found
  ErrorResponseItem:
    type: object
    properties:
      scope:
        type: string
        description: Scope of the error
        example: scope
      reason:
        type: string
        description: Reason for failure
        example: reason
      message:
        type: string
        description: Message associated with failure
        example: message
tags:
  - name: Exclusions
  - name: ExclusionStatuses
  - name: CallAttempts
  - name: Lists
  - name: Strategies
  - name: TimeZones
  - name: AutomationScripts
  - name: Purposes
  - name: GeocodeTemplates
  - name: Dispositions
  - name: NumberTypes
  - name: Filters
  - name: SchemaDefinitions
  - name: Callbacks
  - name: Jobs
