Avaya Experience Platform (AXP) APIs

REST APIs for Avaya Experience Platform, Avaya's CCaaS platform: account, user, group, profile, resource partition, match/queue/category and timetable administration; voice administration across Communication Manager, Avaya Aura Device Services, Avaya Cloud Office, MS Teams and hybrid cloud gateways; customer journey and engagement history; digital custom chat and async messaging; drafts; transcripts; historical and producer analytics; and webhook or WebSocket notification subscriptions. Bearer JWT plus a tenant appkey header, served from seven regional hosts.

Operations 11

GET /accounts List Accounts #
GET /accounts/{accountId} Get Account #
PUT /accounts/{accountId} Update Account #
POST /accounts:listStatuses List Account Statuses #
POST /accounts/{accountId}/organization-nodes Create Organization Node #
GET /accounts/{accountId}/organization-nodes List Organization Nodes #
GET /accounts/{accountId}/organization-nodes/{organizationNodeId} Get Organization Node #
PUT /accounts/{accountId}/organization-nodes/{organizationNodeId} Update Organization Node #
POST /accounts/{accountId}/organization-nodes:listStatuses List Org. Node Statuses #
POST /accounts/{accountId}/audit-records:search Search Audit Records #
POST /accounts/{accountId}/audit-records:export Export Audit Records #

Documentation

Specifications

OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-account-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-element-inventory-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-group-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-match-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-timetable-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-user-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-voice-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-analytics-historical-data-v1-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-analytics-historical-data-v2-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-analytics-producer-management-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-auth-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-customer-journey-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-digital-custom-chat-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-digital-custom-messaging-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-digital-notification-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-digital-sdk-auth-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-digital-signed-media-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-digital-signed-media-uri-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-draft-retrieval-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-draft-save-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-notification-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-routing-queue-metrics-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-transcript-retrieval-openapi.yml
OpenAPI
https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-transcript-save-openapi.yml

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/avaya-experience-platform-axp-apis"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

avaya-axp-admin-account-openapi.yml Raw ↑
openapi: 3.0.2
x-explorer-enabled: false
x-samples-languages:
- curl
- node
- java
- javascript
- python
- go
info:
  title: Admin - Account
  description: Multi Tenancy Service REST APIs are used to create,update delete,fetch the Account and Account hierarchy.
  contact:
    name: Avaya API Team
    url: https://developers.avayacloud.com/onecloud-ccaas
    email: apiteam@avaya.com
  license:
    name: Avaya Software Development Kit (SDK) Software License Terms
    url: http://support.avaya.com/css/P8/documents/101038288
  version: 1.0.1
security:
- {}
- BearerAuth: []
  AppKey: []
servers:
- url: '{protocol}://{server}{basePath}'
  description: Open API
  variables:
    protocol:
      enum:
      - https
      default: https
    server:
      default: HOST-REGION.api.avayacloud.com
    basePath:
      default: /api/admin/account/v1
tags:
- name: Account
  description: APIs to manage Accounts.
- name: Audit Records
  description: 'Search or export audit records for auditable objects.

    '
- name: Organization Structure
  description: APIs to manage a customer's organization structure
paths:
  /accounts:
    get:
      tags:
      - Account
      summary: List Accounts
      description: '**This API requires the Administrator role.**


        Lists the accounts based on the filter criteria provided.


        Filtering is supported on the following fields:

        * name

        * accountId

        * domainName

        * profileName

        * profileId

        * isDefault

        '
      operationId: listAccounts
      parameters:
      - name: pageNumber
        in: query
        description: The page number of the records to retrieve. Default value is 1
        required: false
        schema:
          type: integer
          format: int32
          example: 30
          default: 1
          minimum: 1
      - name: pageSize
        in: query
        description: The max number of records to retrieve per page. Default value is 5,max value is 50.
        required: false
        schema:
          type: integer
          format: int32
          example: 5
          default: 5
          minimum: 5
          maximum: 50
      - name: filter
        in: query
        required: false
        description: "Specifies details of a row filter.\n\nThe possible fields you can filter are\n* name\n* accountId\n\n\
          The allowed format:\n\n- Begins with the column name to be filtered, followed by a colon, (This will be used as\
          \ Contains operator.) then:\n  - Either an exact string to match, or\n  - A string expression including the * wildcard\
          \ character.\n    - :{PREFIX}* will be used to find out word start with.\n    - :*{POSTFIX} will be used to find\
          \ out word end with\n    - : will be used to match exact word\n- Begin with colmun name to be filtered, followed\
          \ by a = operator. (this will be used to match exact string)\n"
        schema:
          type: string
          maxLength: 255
        examples:
          exact:
            description: Example of filtering based on an exact string.
            value: name:SyncG
          prefix:
            description: Example of filtering based on a prefix string.
            value: name:SyncG*
          postfix:
            description: Example of filtering based on a postfix string.
            value: name:*SyncG
      - name: orderBy
        in: query
        required: false
        description: 'Field name on which sorting needs to be performed.


          The possible fields you ordered on

          * name

          * accountId


          Field Names are case-sensitive (should be written as it is in description).


          The default sorting order is name ascending.


          To specify descending order, a suffix " desc" should be added. For example, "name" for ascending or "name desc"
          for descending".

          '
        schema:
          type: string
          maxLength: 255
        examples:
          ascending:
            value: name
          descending:
            value: name desc
      responses:
        '200':
          description: List of accounts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountPage'
              examples:
                AccountPage:
                  $ref: '#/components/examples/AccountPage'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}:
    get:
      tags:
      - Account
      summary: Get Account
      description: '**This API requires the Account Administrator role.**


        Gets an account by ID.

        '
      operationId: getAccount
      parameters:
      - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          description: Account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
              examples:
                AccountDetails:
                  $ref: '#/components/examples/AccountDetails'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Account
      summary: Update Account
      description: "**This API requires the Account Administrator role.**\n\nUpdates an account. This is a complete replacement\
        \ of the existing Account.\n\nChanges to the fields:\n  * `name`\n  * `features`\n\nWill trigger asynchronous updates\
        \ for 'name','features' the status of which should be monitored via `/accounts:listStatuses`.\n\nThe following fields\
        \ must be unique otherwise a `HTTP 409 Conflict` will be returned:\n  * `name`\n"
      operationId: updateAccount
      parameters:
      - $ref: '#/components/parameters/accountId'
      requestBody:
        $ref: '#/components/requestBodies/AccountUpdateDetails'
      responses:
        '202':
          description: Account update request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
              examples:
                AccountDetails:
                  $ref: '#/components/examples/AccountDetails'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts:listStatuses:
    post:
      tags:
      - Account
      summary: List Account Statuses
      description: '**This API requires the Account Administrator role.**


        Lists the current statuses for the given accounts.

        '
      operationId: listAccountStatuses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountIdList'
            examples:
              Request-Account-Statuses:
                $ref: '#/components/examples/AccountStatusesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AccountStatusResponse'
              examples:
                Account-Statuses:
                  $ref: '#/components/examples/AccountStatuses'
                Failed-Account-Statuses:
                  $ref: '#/components/examples/FailedAccountStatuses'
                InProgress-Account-Statuses:
                  $ref: '#/components/examples/InProgressAccountStatuses'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/organization-nodes:
    post:
      tags:
      - Organization Structure
      summary: Create Organization Node
      description: "**This API requires the Account Administrator role.**\n\nCreates a new organization node at the hierarchy\
        \ determined by the value of the `parentPath` field.\nThe following fields must be unique otherwise a `HTTP 409 Conflict`\
        \ will be returned:\n  *  `name`\n"
      operationId: createOrganizationNode
      parameters:
      - $ref: '#/components/parameters/accountId'
      requestBody:
        $ref: '#/components/requestBodies/OrganizationNode'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationNode'
              examples:
                OrganizationNodeDetails:
                  $ref: '#/components/examples/OrganizationNodeDetails'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/OrganizationNodeNotFound'
        '409':
          $ref: '#/components/responses/OrganizationNodeConflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
      - Organization Structure
      summary: List Organization Nodes
      description: '**This API requires the Account Administrator role.**


        Lists the organization nodes for an account.

        '
      operationId: listOrganizationNodes
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/pageNumber'
      - name: children
        in: query
        description: Flag to indicate if response should contain child nodes.
        schema:
          type: boolean
          default: false
          example: false
      - name: pageSize
        in: query
        description: The max number of records to retrieve per page. Default value is 5,max value is 50.
        required: false
        schema:
          type: integer
          format: int32
          example: 5
          default: 5
          minimum: 5
          maximum: 50
      - name: filter
        in: query
        required: false
        description: "Specifies details of a row filter.\n\nThe possible fields you can filter are:\n* name\n* accountId\n\
          \nThe allowed format:\n\n- Begins with the column name to be filtered, followed by a colon, (This will be used as\
          \ Contains operator.) then:\n  - Either an exact string to match, or\n  - A string expression including the * wildcard\
          \ character.\n    - :{PREFIX}* will be used to find out word start with.\n    - :*{POSTFIX} will be used to find\
          \ out word end with\n    - : will be used to match exact word\n- Begin with column name to be filtered, followed\
          \ by a = operator. (this will be used to match exact string)\n"
        schema:
          type: string
          maxLength: 255
        examples:
          exact:
            description: Example of filtering based on an exact string.
            value: name:LocationPune
          prefix:
            description: Example of filtering based on a prefix string.
            value: name:LocationPune*
          postfix:
            description: Example of filtering based on a postfix string.
            value: name:*LocationPune
      - name: orderBy
        in: query
        required: false
        description: 'Field name on which sorting needs to be performed.


          The possible fields you ordered on

          * name

          * accountId


          Field Names are case-sensitive (should be written as it is in description).


          The default sorting order is name ascending.


          To specify descending order, a suffix "desc" should be added. For example, "name" for ascending or "name desc" for
          descending".

          '
        schema:
          type: string
          minLength: 4
          maxLength: 255
        examples:
          ascending:
            value: name
          descending:
            value: name desc
      responses:
        '200':
          description: List of OrganizationNodes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationNodePage'
              examples:
                OrganizationNodePage:
                  $ref: '#/components/examples/OrganizationNodePage'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/OrganizationNodeNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/organization-nodes/{organizationNodeId}:
    get:
      tags:
      - Organization Structure
      summary: Get Organization Node
      description: '**This API requires the Account Administrator role.**


        Gets an organization node by ID.

        '
      operationId: getOrganizationNode
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/organizationNodeId'
      - name: children
        in: query
        description: Flag to indicate if response should contain child nodes.
        schema:
          type: boolean
          default: false
          example: true
      responses:
        '200':
          description: Organization node
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationNode'
              examples:
                OrganizationNodeDetails:
                  $ref: '#/components/examples/OrganizationNodeDetails'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/OrganizationNodeNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Organization Structure
      summary: Update Organization Node
      description: "**This API requires the Account Administrator role.**\n\nUpdates the organization node. This is a complete\
        \ replacement of the existing Organization Node.\n\nThe following fields must be unique otherwise a `HTTP 409 Conflict`\
        \ will be returned:\n  *  `name`\n"
      operationId: updateOrganizationNode
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/organizationNodeId'
      requestBody:
        $ref: '#/components/requestBodies/OrganizationNode'
      responses:
        '200':
          description: Organization Node Updated Successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationNode'
              examples:
                OrganizationNodeDetails:
                  $ref: '#/components/examples/OrganizationNodeDetails'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/OrganizationNodeNotFound'
        '409':
          $ref: '#/components/responses/OrganizationNodeConflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/organization-nodes:listStatuses:
    post:
      tags:
      - Organization Structure
      summary: List Org. Node Statuses
      description: '**This API requires the Account Administrator role.**


        Lists the current statuses for the given organization nodes.

        '
      operationId: listOrganizationNodeStatuses
      parameters:
      - $ref: '#/components/parameters/accountId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationNodeIdList'
            examples:
              Request-Organization-Node-Statuses:
                $ref: '#/components/examples/OrganizationNodeStatusesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OrganizationNodeStatusResponse'
              examples:
                OrganizationNode-Statuses:
                  $ref: '#/components/examples/OrganizationNodeStatuses'
                Failed-OrganizationNode-Statuses:
                  $ref: '#/components/examples/FailedOrganizationNodeStatuses'
                InProgress-OrganizationNode-Statuses:
                  $ref: '#/components/examples/InProgressOrganizationNodeStatuses'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/OrganizationNodeNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/audit-records:search:
    post:
      tags:
      - Audit Records
      summary: Search Audit Records
      description: '**This API requires the Account Administrator role.**


        Searches the audit records based on the supplied filter.


        The value of **searchKeyword** can be used to perform a text search across all fields within an audit record (excluding
        date).

        '
      operationId: searchAuditRecords
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/pageNumber'
      - name: pageSize
        in: query
        description: 'The max number of records to retrieve per page. Default value is 5, max value is 50.

          '
        required: false
        schema:
          type: integer
          format: int32
          example: 5
          default: 5
          minimum: 5
          maximum: 50
      - name: orderBy
        in: query
        description: 'Field name on which sorting needs to be performed. The possible fields

          you ordered on are **date (date of audit record)** and **author**.

          Field Names are case-sensitive (should be written as it is in description). The default sorting order is descending.
          To specify ascending order, a suffix " asc" should be added. For example, "date asc" for ascending or "date desc"
          for descending".

          '
        required: false
        schema:
          type: string
          example: date desc
          minLength: 4
          maxLength: 255
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuditSearchFilter'
            examples:
              Search-Audit-Records:
                $ref: '#/components/examples/SearchAuditRecordsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditRecords'
              examples:
                Search-Audit-Records:
                  $ref: '#/components/examples/SearchAuditRecordsResponse'
        '400':
          $ref: '#/components/responses/ErrorConstraintViolation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/audit-records:export:
    post:
      tags:
      - Audit Records
      summary: Export Audit Records
      description: '**This API requires the Account Administrator role.**


        Exports the audit records within the date-time range in CSV format.


        A maximum of 1000 records can be exported for a given date-time range per request.


        If the number of records within a date-time range exceeds the maximum then this API will

        return a _HTTP 400 Bad Request_. This response will contain:

        * A human readable message explaining the issue.

        * A unique error code that a client can use to identify the issue.

        '
      operationId: exportAuditRecords
      parameters:
      - $ref: '#/components/parameters/accountId'
      - name: orderBy
        in: query
        description: 'Field name on which sorting needs to be performed. The possible fields

          you ordered on are **date (date of audit record)** and **author**.

          Field Names are case-sensitive (should be written as it is in description). The default sorting order is descending.
          To specify ascending order, a suffix " asc" should be added. For example, "date asc" for ascending or "date desc"
          for descending".

          '
        required: false
        schema:
          type: string
          example: date desc
          minLength: 4
          maxLength: 255
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuditSearchFilter'
            examples:
              Export-Audit-Records:
                $ref: '#/components/examples/SearchAuditRecordsRequest'
      responses:
        '200':
          description: OK
          content:
            text/csv:
              schema:
                type: string
                format: binary
              example: 'Account Id,Date,Event,Author,IP Address,Type,Audit Data

                ABCDEF,2021-11-14T09:24:05.234Z,CREATED,jsmith@example.com,165.225.72.60,ACCOUNT,"{""name"":""AricentAccount"",""type"":""ACCOUNT"",""enabled"":""true"",""accountSize"":""10""}"

                '
        '400':
          description: BadRequest
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                Too-many-records:
                  $ref: '#/components/examples/ErrorTooManyRecords'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  requestBodies:
    OrganizationNode:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OrganizationNode'
          examples:
            OrganizationNodeReqDetails:
              $ref: '#/components/examples/OrganizationNodeReqDetails'
      description: Organization node object
      required: true
    Account:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Account'
          examples:
            AccountDetails:
              $ref: '#/components/examples/AccountDetails'
      description: Account object
      required: true
    AccountUpdateDetails:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Account'
          examples:
            AccountDetails:
              $ref: '#/components/examples/AccountUpdateDetails'
      description: Account Update request object
      required: true
  schemas:
    AccountProperty:
      description: Free format name value pair to add information to a account beyond its standard fields.
      type: object
      properties:
        name:
          type: string
          example: dnis
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9\p{L}\-\_\.\ ]+$
        key:
          type: string
          example: dnis
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9\p{L}\-\_\.\ ]+$
        value:
          type: string
          example: '1234'
          maxLength: 255
      title: AccountProperty
    Problem:
      type: object
      description: '<b>Problem Detail</b> as a way to carry machine-readable details of errors in a HTTP response to avoid
        the need to define new error response formats for HTTP APIs <a href="https://tools.ietf.org/html/rfc7807">RFC 7807</a>

        '
      properties:
        type:
          type: string
          format: uri
          description: 'An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable
            documentation for the problem type (e.g., using HTML).

            '
          default: about:blank
          example: https://developers.avayacloud.com/onecloud-ccaas/docs/error-handling#constraint-violation
        title:
          type: string
          description: 'A short, summary of the problem type. Written in english and readable for engineers (usually not suited
            for non technical stakeholders and not localized).

            '
          example: Service Unavailable
          nullable: true
        status:
          type: integer
          format: int32
          description: 'The HTTP status code generated by the origin server for this occurrence of the problem.

            '
          minimum: 100
          maximum: 600
          exclusiveMaximum: true
          example: 503
          nullable: true
        detail:
          type: string
          description: 'A human readable explanation specific to this occurrence of the problem.

            '
          example: Connection to database timed out
          nullable: true
        instance:
          type: string
          format: uri
          description: 'An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further
            information if dereferenced.

            '
          nullable: true
        violations:
          type: array
          description: 'A list of violations that occurred as a result of invalid data provided as part of a request.

            '
          nullable: true
          items:
            type: object
            properties:
              field:
                type: string
                description: 'The name of the field in the request that caused the violation. This can be the name of a path
                  parameter, query parameter, or a field within the request body.

                  '
                example: accountId
              message:
                type: string
                description: 'A human readable explanation specific to this occurrence of the violation.

                  '
                example: must match "^[a-zA-Z]{6}$"
              code:
                type: integer
                format: int32
                description: 'The violation code generated by the server for this occurrence of the violation. Use this code
                  when implementing any error handling logic instead of the message, as the message can change.

                  '
                example: 20006
          example:
          - field: emailAddress
            message: must not be null
            code: 20002
          - field: accountId
            message: must match "^[a-zA-Z]{6}$"
            code: 20006
    OrganizationNodeType:
      description: Type of node in a Account's organization structure. For example location, department, region, location,
        business division, team, etc.
      type: object
      properties:
        name:
          type: string
          example: Location
          minLength: 1
          maxLength: 255
          pattern: ^[a-zA-Z0-9\p{L}\-\_\.\ ]+$
        position:
          type: integer
          format: int32
          example: 1
      title: OrganizationNodeType
    OrganizationNode:
      description: A node in Account's organization structure. It is managed by an account administrator. It is an efficient
        way to manage a large number of users, features and profiles by grouping them into different levels and hierarchical
        nodes based on regions, lines of business, etc.
      allOf:
      - $ref: '#/components/schemas/OrganizationNodeBasic'
      - type: object
        properties:
          children:
            description: Complete hierarchy of child nodes.
            type: array
            items:
              $ref: '#/components/schemas/ChildNodePath'
            readOnly: true
          profiles:
            type: array
            items:
              $ref: '#/components/schemas/Profile'
          accountId:
            type: string
            readOnly: true
            example: AVSDER
            minLength: 6
            maxLength: 6
            description: Unique Account
          nodeType:
            type: string
            maxLength: 255
            readOnly: true
            example: OrganizationNode
          countryCode:
            type: string
            example: IN
            minLength: 2
            maxLength: 2
            description: Country code of the Organization Node
        title: OrganizationNode
    ChildNodePath:
      description: Path of the child of Organization node with the complete hierarchy.
      type: string
      example: account/location1
    Profile:
      description: Unique ID of User Profile like Basic, Core, Power, Trial, etc.
      type: object
      required:
      - profileId
      properties:
        profileId:
          type: string
          example: ASEDFG
          minLength: 6
          maxLength: 6
          pattern: ^[a-zA-Z0-9\-\_\.\ ]+$
        url:
          type: string
          example: /api/admin/user/v1/accounts/AVSDER/profiles/ASEDFG
          minLength: 1
          maxLength: 255
        name:
          type: string
          readOnly: true
          example: ASEDFG
          minLength: 0
          maxLength: 255
      title: Profile
    Address:
      type: object
      description: A real address and phone number for an Account.
      required:
      - addressName
      - streetNumber
      - streetName
      - countryCode
      - zip
      properties:
        addressName:
          type: string
          minLength: 1
          maxLength: 32
          pattern: ^[a-zA-Z\p{L}0-9]+([ ]*[a-zA-Z\p{L}0-9-\_\*\=\+\$\:\;\&\~\,\?\%\!\|\{\}\`\.\']+)*$
          example: OfficeAddress
        addressId:
          type: string
          example: c8c2909d-75e9-484a-94c0-b7e8d29771fe
          minLength: 36
          maxLength: 36
          pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
        streetNumber:
          type: string
          minLength: 1
          maxLength: 16
          example: E-11
        streetName:
          type: string
          minLength: 2
          maxLength: 128
          example: Allstate Pkwy
        addressType:
          type: string
          enum:
          - OFFICE
          - APARTMENT
          - BASEMENT
          - BUILDING
          - DEPARTMENT
          - FLOOR
          - FRONT
          - KEY
          - LOBBY
          - LOT
          - LOWER
          - PENTHOUSE
          - PIER
          - REAR
          - ROOM
          - SIDE
          - SLIP
          - SPACE
          - STOP
          - SUITE
          - TRAILER
          - UNIT
          - UPPER
          example: OFFICE
        addressTypeNumber:
          type: string
          minLength: 0
          maxLength: 64
          example: 300A
        city:
          type: string
          minLength: 0
          maxLength: 128
          example: Markham
        state:
          type: string
          minLength: 1
          maxLength: 3
          example: 'ON'
        countryCode:
          type: string
          example: IN
          minLength: 2
          maxLength: 2
          description: Country code of the Country
        zip:
          type: string
     

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/avaya/refs/heads/main/openapi/avaya-axp-admin-account-openapi.yml