---
openapi: 3.0.3
info:
  title: Resource Inventory
  description: |
    #### Copyright
      Copyright Aeris Communications, Inc. 2026. All rights reserved. No part of this document may be reproduced in any form without the written permission of the copyright owner.

      #### Disclaimer

      The contents of this document are subject to revision without notice due to continued progress in methodology, design and manufacturing.
      Aeris shall have no liability for any error or damage of any kind resulting from the use of this document.

      #### Trademark List

      All trademarks mentioned herein are the property of their respective owners.
      These are shown in the document Trademark Information.

    # Introduction

      This document describes the IoT Accelerator inventory APIs.
      Inventory APIs are used to retrieve organization's network resources and services.

    ## Scope

    This document covers the following topics:

      - An overview of the API

      - A detailed description of all operations offered by the API

    ## Prerequisites
    In this document, it is assumed that the user is familiar with the following:

      - Java Script Object Notation (JSON)

      - Basic understanding of REST web services

      - The [OpenAPI Initiative](https://www.openapis.org/) for the standardized format used in this document.

    ## Related Information
    The definition and explanation of acronyms and terminology and typographic conventions can be found in the following documents:

      - IoTA Glossary of Terms and Acronyms

      - Typographic Conventions

    # General API Guidelines

    ## Compatibility

    API audience must be prepared for compatible API extensions:

      - Be tolerant with unknown fields in the payload (see also Fowler's "TolerantReader" post), i.e. ignore new fields but do not eliminate them from payload if needed for subsequent PUT requests.
      - Be prepared that "x-extensible-enum" return parameter may deliver new values. Either be agnostic or provide default behavior for unknown values.
      - Be prepared to handle HTTP status codes not explicitly specified in endpoint definitions.
      - Follow the redirect when the server returns HTTP status 301 Moved Permanently.

    ## Security

      This section describes the security measures in the API. Security measures include authentication, authorization, and encryption.

      ### Authentication and Authorization

      The API uses OAuth2 and OpenID Connect (OIDC) for authentication and authorization.

    All API endpoints require authentication, which is performed by passing a token in the Authorization header in each request, preceded by the word Bearer and a space. See the following example:
      ```
    e.g.   curl -i -X GET "https://baseURL/iot/api/apns" -H "Content-Type: application/json" -H "Authorization: Bearer <TOKEN_GOES_HERE>"
      ```
    To fetch the token using e.g. curl, submit the following:
      ```
    curl -X POST "https://baseURL/iot/api/auth/token" -H "Accept: application/vnd.dcp-v1+json" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=password&client_id=<client_id>&username=<username>&password=<password>"
      ```
      ### Encryption

      All API requests are encrypted using the HTTPS protocol to grant secure data transfer.

    ### Permission
    API permissions are authorized by authorization server based on the account roles. Required permissions for this API are documented in 'securitySchemes' section.
    You can view available permissions for your account through permission library in Service Portal by navigating Administration > Users & roles > Permission library
    or Role administration > Actions > View permission library.


    ## Deprecation

    API deprecation will be reflected in the OpenAPI definition. If a method on a path, a whole path or even a whole API endpoint (multiple paths) should be deprecated, they will be marked as deprecated.
    During deprecation phase, a Deprecation header and a Sunset header fields will be added in the response.

    Example:
    ```
    Deprecation: Tue, 31 Dec 2024 23:59:59 GMT
    Sunset: Wed, 31 Dec 2025 23:59:59 GMT
    ```

     API audience should not start using a deprecated API.

     API audience is encouraged to monitor for Deprecation and Sunset header.

  version: 2.0.7
  x-audience: external-partner
  x-api-id: 3c82242f-95ff-4484-b84a-c96a9b2c43d3
servers:
  - url: https://iot-api.aeris.com/iot/api
    description: API server
tags:
  - name: Resource Inventory
    description: Inventory queries for network resources
paths:

  /esm-profiles:
    get:
      tags:
        - Resource Inventory
      summary: Get ESM  profiles list
      description: Get list of ESM profiles
      operationId: getESMProfileListArray
      parameters:
        - name: cursor
          in: query
          description: |
            Opaque string returned within the meta object response on endpoints which support pagination.
             Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results.
              The last page of results will not have a 'next' present.
          schema:
            type: string
          example: DFVSDB3434%DFB%EYY445
        - name: limit
          in: query
          description: "The maximum number of entries to return. If the value exceeds\
            \ the maximum, then the maximum value will be used. The value of limit ranges from 1 to 1000."
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            example: 100
            default: 100
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmProfileArray'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /esm-profiles/{id}:
    get:
      tags:
        - Resource Inventory
      summary: 'Get details of an ESM profile'
      description: Get ESM profile
      operationId: getESMProfile
      parameters:
        - name: id
          in: path
          description: ESM Profile Id
          required: true
          schema:
            type: string
            example: "1"
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmProfile'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /esm-contexts:
    get:
      tags:
        - Resource Inventory
      summary: Get ESM contexts list
      description: Get list of ESM contexts
      operationId: getESMContextListArray
      parameters:
        - name: cursor
          in: query
          description: |
            Opaque string returned within the meta object response on endpoints which support pagination.
             Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results.
              The last page of results will not have a 'next' present.
          schema:
            type: string
          example: DFVSDB3434%DFB%EYY445
        - name: limit
          in: query
          description: "The maximum number of entries to return. If the value exceeds\
            \ the maximum, then the maximum value will be used. The value of limit ranges from 1 to 1000."
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            example: 100
            default: 100
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmContextArray'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /esm-contexts/{id}:
    get:
      tags:
        - Resource Inventory
      summary: 'Get details of an ESM context'
      description: Get ESM context
      operationId: getESMContext
      parameters:
        - name: id
          in: path
          description: ESM Context Id
          required: true
          schema:
            type: string
            example: "1"
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmContext'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /pdp-context-profiles:
    get:
      tags:
        - Resource Inventory
      summary: Get PDP context profiles list
      description: Get list of PDP context profiles
      operationId: getPDPContextListArray
      parameters:
        - name: cursor
          in: query
          description: |
            Opaque string returned within the meta object response on endpoints which support pagination.
             Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results.
              The last page of results will not have a 'next' present.
          schema:
            type: string
          example: DFVSDB3434%DFB%EYY445
        - name: limit
          in: query
          description: "The maximum number of entries to return. If the value exceeds\
            \ the maximum, then the maximum value will be used. The value of limit ranges from 1 to 1000."
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            example: 100
            default: 100
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PdpContextProfileArray'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /pdp-context-profiles/{id}:
    get:
      tags:
        - Resource Inventory
      summary: Get details of a PDP context profile
      description: Get  PDP context profile
      operationId: getPDPContextProfiles
      parameters:
        - name: id
          in: path
          description: PDP Context Id
          required: true
          schema:
            type: string
            example: "1"
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PdpContextProfiles'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /esm-context-qos:
    get:
      tags:
        - Resource Inventory
      summary: Get ESM  context QoSs list
      description: Get list of ESM context qos
      operationId: getESMContextQOSListArray
      parameters:
        - name: cursor
          in: query
          description: |
            Opaque string returned within the meta object response on endpoints which support pagination.
             Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results.
              The last page of results will not have a 'next' present.
          schema:
            type: string
          example: DFVSDB3434%DFB%EYY445
        - name: limit
          in: query
          description: "The maximum number of entries to return. If the value exceeds\
            \ the maximum, then the maximum value will be used. The value of limit ranges from 1 to 1000."
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            example: 100
            default: 100
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmContextQosArray'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /esm-context-qos/{id}:
    get:
      tags:
        - Resource Inventory
      summary: 'Get details of an ESM context QoS'
      description: Get  ESM context qos
      operationId: getEsmContextQos
      parameters:
        - name: id
          in: path
          description: ESM Context Qos Id
          required: true
          schema:
            type: string
            example: "1"
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmContextQos'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /esm-profile-qos:
    get:
      tags:
        - Resource Inventory
      summary: Get ESM profile QoSs list
      description: Get list of ESM profile QoSs
      operationId: getESMProfileQOSListArray
      parameters:
        - name: cursor
          in: query
          description: |
            Opaque string returned within the meta object response on endpoints which support pagination.
             Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results.
              The last page of results will not have a 'next' present.
          schema:
            type: string
          example: DFVSDB3434%DFB%EYY445
        - name: limit
          in: query
          description: "The maximum number of entries to return. If the value exceeds\
            \ the maximum, then the maximum value will be used. The value of limit ranges from 1 to 1000."
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            example: 100
            default: 100
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmProfileQosArray'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /esm-profile-qos/{id}:
    get:
      tags:
        - Resource Inventory
      summary: 'Get details of an ESM profile QoS'
      description: Get ESM profile qos
      operationId: getEsmProfileQos
      parameters:
        - name: id
          in: path
          description: ESM Profile Qos Id
          required: true
          schema:
            type: string
            example: "1"
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EsmProfileQos'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /pdp-context-qos:
    get:
      tags:
        - Resource Inventory
      summary: Get PDP context QoSs list
      description: Get PDP context qos
      operationId: getQOSListArray
      parameters:
        - name: cursor
          in: query
          description: |
            Opaque string returned within the meta object response on endpoints which support pagination.
             Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results.
              The last page of results will not have a 'next' present.
          schema:
            type: string
          example: DFVSDB3434%DFB%EYY445
        - name: limit
          in: query
          description: "The maximum number of entries to return. If the value exceeds\
            \ the maximum, then the maximum value will be used. The value of limit ranges from 1 to 1000."
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            example: 100
            default: 100
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PdpContextQosArray'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /pdp-context-qos/{id}:
    get:
      tags:
        - Resource Inventory
      summary: 'Get details of a PDP context QoS'
      description: Get PDP context qos
      operationId: getPdpContextQos
      parameters:
        - name: id
          in: path
          description: PDP Context Qos Id
          required: true
          schema:
            type: string
            example: "1"
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PdpContextQos'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /apns:
    get:
      tags:
        - Resource Inventory
      summary: Get APNs list
      description: Get list of APNs
      operationId: getapnListArray
      parameters:
        - name: cursor
          in: query
          description: |
            Opaque string returned within the meta object response on endpoints which support pagination.
             Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results.
              The last page of results will not have a 'next' present.
          schema:
            type: string
          example: DFVSDB3434%DFB%EYY445
        - name: limit
          in: query
          description: "The maximum number of entries to return. If the value exceeds\
            \ the maximum, then the maximum value will be used. The value of limit ranges from 1 to 1000."
          schema:
            type: integer
            maximum: 1000
            minimum: 1
            example: 100
            default: 100
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApnArray'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /apns/{id}:
    get:
      tags:
        - Resource Inventory
      summary: Get details of an APN
      description: Get details of an APN
      operationId: getApn
      parameters:
        - name: id
          in: path
          description: 'APN Id'
          required: true
          schema:
            type: string
            example: "1"
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Apn'
              examples:
                INTERNET_APN:
                  $ref: '#/components/examples/internetApnExample'
                NON_HOSTED_APN:
                  $ref: '#/components/examples/nonHostedApnExample'
                PRIVATE_APN:
                  $ref: '#/components/examples/privateApnExample'
                VIRTUAL_APN:
                  $ref: '#/components/examples/virtualApnExample'
                RADIUS_APN:
                  $ref: '#/components/examples/radiusApnExample'
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_resources
  /network-nodes:
    get:
      tags:
        - Operator network nodes
      summary: Get list of network nodes
      description: |
        Get list of network nodes grouped by geo-redundancy.
        If the redundancyNodeId is configured,then that means that the EPG has ICR configured, and those EPG will always work on active-active mode. 
        If the redundancyNodeId is not configured (e.g "redundancyNodeId": null) then these EPGs does not have ICR configured so the either one form 
        that pair can be selected as primary based on operator's choice for that apn.
      operationId: getNetworkNodes
      parameters:
        - name: q
          in: query
          schema:
            type: string
          required: false
          description: |
            Filter parameter which supports the RSQL filter syntax. RSQL is a super-set of the Feed Item Query Language (FIQL).
            Currently there are only 1 field (operatorId) available for search,
          example: q=operatorId==3.5
      responses:
        "200":
          description: OK
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeoRedundantGroupArray'
              example:
                operatorDcsNodes:
                  - networkNodes:
                      - id: 1
                        name: STO-EPG1
                        nodeType: EPG
                        redundancyNodeId: 2
                      - id: 2
                        name: AMS-EPG1
                        nodeType: EPG
                        redundancyNodeId: 1
                    apnSuffixes: ["m2m.cn",".che1"]
                  - networkNodes:
                      - id: 3
                        name: STO-EPG3
                        nodeType: EPG
                        redundancyNodeId: null
                      - id: 4
                        name: AMS-EPG4
                        nodeType: EPG
                        redundancyNodeId: null
                    apnSuffixes: ["m2m.cn",".com"]
        "400":
          description: Bad Request
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Bad Request
                status: 400
                detail: Invalid request parameter
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "401":
          description: Unauthorized
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: 'Unauthorized'
                status: 401
                detail: The request has not been applied because the server requires
                  user authentication.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "429":
          description: Too Many Requests
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: API rate limit exceeded
                status: 429
                detail: The server has too many requests.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        "500":
          description: Internal Server Error.
          headers:
            Content-Type:
              $ref: '#/components/headers/Content-Type'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://www.iana.org/assignments/http-status-codes
                title: Internal Server Error
                status: 500
                detail: The server has encountered a situation that it does not know
                  how to handle.
                instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
        default:
          description: Internal Server Error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
        - oauth2:
            - cnx_view_networks
  /roaming-profiles-2g3g:
    get:
      security:
        - oauth2:
            - cnx_view_resources
      tags:
        - Resource Inventory
      summary: 'Get 2G3G roaming profile list'
      description: 'List 2G3G roaming profiles '
      operationId: 'Get2G3GInventories'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get2G3GInventoryListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /roaming-profiles-4g:
    get:
      security:
        - oauth2:
            - cnx_view_resources
      tags:
        - Resource Inventory
      summary: 'Get 4G roaming profile list'
      description: 'Get 4G roaming profile list'
      operationId: 'get4GInventories'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get4GInventoryListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /roaming-profiles-2g3g/{id}:
    parameters:
      - $ref: '#/components/parameters/inventoryId'
    get:
      security:
        - oauth2:
            - cnx_view_resources
      tags:
        - Resource Inventory
      summary: 'Get details of a 2G3G roaming profile'
      description: 'Show the detailed information of a 2G3G roaming profile by given id.'
      operationId: 'Get2G3GInventoryById'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get2G3GInventoryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /roaming-profiles-4g/{id}:
    parameters:
      - $ref: '#/components/parameters/inventoryId'
    get:
      security:
        - oauth2:
            - cnx_view_resources
      tags:
        - Resource Inventory
      summary: 'Get details of a 4G roaming profile'
      description: 'Show the detailed information of a 4G roaming profile by given id.'
      operationId: 'get4GInventoryById'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get4GInventoryResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'
  /sm-context-qos-5gsa:
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get 5GSA SM Context QoS list'
      description: 'Retrieves list of all available 5GSA SM Context QoS entries.'
      operationId: 'GetSmContextQos5gsaInventories'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSMContextQos5GSAInventoryListResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /sm-context-qos-5gsa/{id}:
    parameters:
      - $ref: '#/components/parameters/inventoryId'
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get details of a 5GSA SM Context QoS'
      description: 'Show the detailed information of a 5GSA SM Context QoS by given id.'
      operationId: 'GetSmContextQos5gsaInventoryById'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSMContextQos5GSAInventoryResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /network-slicing-contexts:
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get 5GSA Network Slice Context list'
      description: 'Retrieves list of all available 5GSA Network Slice Contexts.'
      operationId: 'GetNetworkSliceContextInventories'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNetworkSliceContextInventoryListResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /network-slicing-contexts/{id}:
    parameters:
      - $ref: '#/components/parameters/inventoryId'
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get details of a Network Slice Context'
      description: 'Show the detailed information of a Network Slice Context by given id.'
      operationId: 'GetNetworkSliceContextInventoryById'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNetworkSliceContextInventoryResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /sm-context-5gsa:
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get 5GSA SM Context list'
      description: 'Retrieves list of all available 5GSA SM Contexts.'
      operationId: 'GetSmContextInventories'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSmContext5gsaInventoryListResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /sm-context-5gsa/{id}:
    parameters:
      - $ref: '#/components/parameters/inventoryId'
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get details of a 5GSA SM Context'
      description: 'Show the detailed information of a 5GSA SM Context by given id.'
      operationId: 'GetSmContextInventoryById'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSmContext5gsaInventoryResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /sm-profile-5gsa:
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get 5GSA SM Profile list'
      description: 'Retrieves list of all available 5GSA SM Profiles.'
      operationId: 'GetSmProfileInventories'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSmProfile5gsaInventoryListResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /sm-profile-5gsa/{id}:
    parameters:
      - $ref: '#/components/parameters/inventoryId'
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get details of a 5GSA SM Profile'
      description: 'Show the detailed information of a 5GSA SM Profile by given id.'
      operationId: 'GetSmProfileInventoryById'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSmProfile5gsaInventoryResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /roaming-profile-5gsa:
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get Roaming Profile 5GSA list'
      description: 'Retrieves list of all available 5GSA Roaming Profiles.'
      operationId: 'GetRoamingProfile5gsaInventories'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoamingProfile5gsaInventoryListResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

  /roaming-profile-5gsa/{id}:
    parameters:
      - $ref: '#/components/parameters/inventoryId'
    get:
      security:
        - Oauth2_auth:
            - cnx_view_resources
      tags:
        - 'Resource inventory'
      summary: 'Get details of a Roaming Profile 5GSA'
      description: 'Show the detailed information of a Roaming Profile 5GSA by given id.'
      operationId: 'GetRoamingProfile5gsaInventoryById'
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRoamingProfile5gsaInventoryResponseSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'
  /operator-networks:
    get:
      security:
        - oauth2:
            - cnx_view_networks
      tags:
        - Operator networks
      operationId: listOperatorNetworks
      summary: Get operator networks.
      description: This operation lists allowed operator networks based on token and filtered by organizationId if provided.
      parameters:
        - name: q
          in: query
          description: |
            Filter parameter which supports the RSQL filter syntax.
            RSQL is a super-set of the Feed Item Query Language (FIQL).
            Note! The query string must be URL encoded.
            Supported fields:
              - organizationId (If "organizationId" not provided, return all the allowed operator networks list of current user.)
          schema:
            type: string
            example: organizationId==3.41
      responses:
        '200':
          description: 'OK'
          allOf:
            - $ref: '#/components/responses/RateLimitedResponse'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOperatorNetworksListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        default:
          $ref: '#/components/responses/Problem'

components:
  parameters:
    cursor:
      in: query
      name: 'cursor'
      schema:
        type: string
      example: 'DFVSDB3434%DFB%EYY445'
      description: |
        Opaque string returned within the meta object response on endpoints which support pagination. Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results. The last page of results will not have a 'next' present.
    limit:
      in: query
      name: 'limit'
      description: 'The maximum number of entries to return. If the value exceeds the maximum, then the maximum value will be used.'
      schema:
        type: integer
        default: 100
        example: 100
    inventoryId:
      name: 'id'
      in: path
      description: 'the id of inventory item'
      required: true
      schema:
        type: string
        example: '1'
  schemas:
    RoamingProfile4g:
      allOf:
        - $ref: '#/components/schemas/RoamingProfile4gSimple'
        - $ref: '#/components/schemas/RoamingAreas'
        - type: object
          properties:
            operatorNetworkId:
              type: string
              description: 'network group ID'
              nullable: true
              example: '538'
            operatorId:
              type: string
              description: 'operator ID'
              example: '3.77'
        - type: object
          properties:
            hssRsaId:
              type: string
              description: 'Roaming service area id'
              example: '996'
            roamingAreaListType:
              type: string
              description: 'Indicate the roaming area list is an roaming allowed list or roaming blocked list.'
              x-extensible-enum:
                - ALLOWED_LIST
                - BLOCKED_LIST
              example: 'ALLOWED_LIST'
    RoamingProfile4gSimple:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: 'RP996LTE'
        description:
          type: string
          nullable: true
          maxLength: 500
          example: 'RP996LTE Offering'
      required:
        - name
    RoamingAreas:
      type: object
      properties:
        realms:
          type: array
          description: 'Realms of roaming profile 4G'
          uniqueItems: true
          items:
            type: string
          example: [ 'epc.mnc860.mcc354.3gppnetwork.org', 'epc.mnc010.mcc440.3gppnetwork.org', 'epc.mnc020.mcc412.3gppnetwork.org' ]
    Get2G3GInventoryListResponse:
      allOf:
        - type: object
          properties:
            roamingProfiles:
              type: array
              items:
                $ref: '#/components/schemas/InventoryItem2G3G'
        - type: object
          properties:
            next:
              description: Opaque string returned within the meta object response on endpoints which support pagination. Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results. The last page of results will not have a 'next' present.
              type: string
              example: '/roaming-profiles-2g3g?cursor=DFVSDB3434%DFB%EYY445'
    Get2G3GInventoryResponse:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - $ref: '#/components/schemas/RoamingProfile2g3g'
    Get4GInventoryResponse:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - $ref: '#/components/schemas/RoamingProfile4g'
    RoamingProfileSimple:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: 'RP996'
        description:
          type: string
          nullable: true
          maxLength: 500
          example: 'RP996'
      required:
        - name
    RoamingProfile2g3g:
      allOf:
        - type: object
          properties:
            hlrRsaId:
              type: string
              description: 'Roaming service area id'
              example: '996'
        - $ref: '#/components/schemas/RoamingProfileSimple'
        - $ref: '#/components/schemas/GlobalTitles'
        - type: object
          properties:
            operatorNetworkId:
              type: string
              description: 'network group ID'
              nullable: true
              example: '538'
            operatorId:
              type: string
              description: 'operator ID'
              example: '3.77'
    GlobalTitles:
      type: object
      properties:
        globalTitles:
          type: array
          description: 'Global Titles'
          uniqueItems: true
          items:
            type: string
          example: [ '164780001', '2250505987', '32468', '32475', '7901106', '7901154', '790116', '7901472', '790160', '799426', '99292', '99293' ]
    InventoryItem2G3G:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            hlrRsaId:
              type: string
              description: 'Roaming service area id'
              example: '996'
    GetOperatorNetworksListResponse:
      allOf:
        - type: object
          properties:
            networks:
              type: array
              items:
                $ref: '#/components/schemas/OperatorNetworkRead'
    OperatorNetworkRead:
      type: object
      properties:
        id:
          type: string
          description: 'Operator network ID'
        name:
          type: string
          minLength: 1
          maxLength: 255
          example: 'My network'
        description:
          type: string
          nullable: true
          maxLength: 500
          example: default operator network
        status:
          type: string
          example: 'ACTIVE'
          x-extensible-enum:
            - DRAFT
            - ACTIVE
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        operatorId:
          type: string
          description: 'operator ID'
          example: '3.77'
      required:
        - name
    Get4GInventoryListResponse:
      allOf:
        - type: object
          properties:
            lteV2RoamingProfiles:
              type: array
              items:
                $ref: '#/components/schemas/InventoryItem4G'
        - type: object
          properties:
            next:
              description: Opaque string returned within the meta object response on endpoints which support pagination. Indicates that more results are available and can be used as the 'cursor' parameter in the next request to return the next page of results. The last page of results will not have a 'next' present.
              type: string
              example: '/roaming-profiles-4g?cursor=DFVSDB3434%DFB%EYY445'
    InventoryItem4G:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            hssRsaId:
              type: string
              description: 'Roaming service area id'
              example: '996'
    Problem:
      type: object
      properties:
        type:
          type: string
          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).
          format: uri
          example: https://your.api.documentation.url
          default: about:blank
        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: Internal Server Error
        status:
          maximum: 600
          minimum: 100
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          format: int32
          example: 500
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: The server has encountered a situation that it does not know how
            to handle.
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
    NotFound:
      description: |
        Network Resource with provided ID not found.

    GeoRedundantGroupArray:
      type: object
      properties:
        operatorDcsNodes:
          type: array
          items:
            $ref: '#/components/schemas/NetworkNodeArray'
    NetworkNodeArray:
      type: object
      properties:
        networkNodes:
          type: array
          items:
            $ref: '#/components/schemas/NetworkNode'
        apnSuffixes:
          type: array
          items:
            type: string
            example: "m2m.cn"
    NetworkNode:
      type: object
      properties:
        id:
          type: integer
          description: Node Id
          example: 1
        name:
          type: string
          description: Node Name
          example: "STO-EPG1"
        nodeType:
          type: string
          description: Node Type
          example: "EPG"
        redundancyNodeId:
          type: integer
          nullable: true
          description: Redundancy Node Id
          example: 2

    EsmProfileArray:
      allOf:
        - type: object
          properties:
            esmProfiles:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/InventoryBase'
                  - $ref: '#/components/schemas/InventoryProfileItems'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /esm-profiles?cursor=BDCTAQ3434%DFB%EYY445
    EsmProfile:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            esmContexts:
              type: array
              items:
                $ref: '#/components/schemas/EsmContextSub'
            esmProfileQosId:
              type: string
              description: The id of ESM profile QoS
              example: "14567"
            defaultEsmContextId:
              type: string
              description: The id of default ESM context
              example: "50605"
            apnOiReplacement:
              type: string
              nullable: true
              description: This attribute indicates the domain name to replace the APN
                Operator Identifier when constructing the PDN Gateway (GW) Full Qualified
                Domain Name (FQDN) upon which to perform a DNS resolution.
              example: mncfoo.mccfoo.gprs
            enabled5gNsa:
              type: boolean
              description: A boolean indicating whether 5G is enabled
              example: true
            operatorId:
              type: string
              description: operator ID
              example: "3.77"
            operatorNetworkId:
              type: string
              description: network group id
              nullable: true
              example: "5"
            hssEsmProfileId:
              type: string
              description: Esm profile id in HSS
              example: "2"
    EsmContextSub:
      type: object
      properties:
        ordinal:
          type: integer
          description: The ordinal number of the ESM context.
          format: int32
          example: 2
        esmContextId:
          type: string
          description: The id of the ESM context
          example: "1235"
      example:
        ordinal: 2
        esmContextId: "1235"
    EsmContextArray:
      allOf:
        - type: object
          properties:
            esmContexts:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/InventoryBase'
                  - $ref: '#/components/schemas/InventoryContextItems'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /esm-contexts?cursor=BDCTAQ3434%DFB%EYY445
    EsmContext:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            apnId:
              type: string
              description: The id of the APN
              example: "3000"
            esmContextQosId:
              type: string
              description: The id of the ESM context Qos
              example: "300"
            pdnType:
              type: string
              description: The address type of the PDN
              example: IPV4
              x-extensible-enum:
                - IPV4
                - IPV6
                - IPV4_AND_IPV6
                - IPV4_OR_IPV6
                - NONE
            staticPdnGwAsFqdn:
              type: string
              nullable: true
              description: The PDN-GW node identity in Fully Qualified Domain Name (FQDN)
                format.
              example: topon.s5.epc.mnc015.mcc234.3gppnetwork.org$epc.mnc015.mcc234.3gppnetwork.org
            staticPdnGwAsIpv4:
              type: string
              nullable: true
              description: "The PDN-GW node identity in IPv4 format, that is, four octets\
                \ of decimal numbers, separated by periods (.)."
              format: ipv4
              example: 11.11.11.11
            staticPdnGwAsIpv6:
              type: string
              nullable: true
              description: "The PDN-GW node identity in IPv6 format, that is, eight\
                \ groups of four hexadecimal numbers, separated by colons (:)."
              format: ipv6
              example: 2010:0000:0000:0001:0a5b:1000:6789:000c
            allowVpLmn:
              type: boolean
              description: A boolean indicating whether dynamic address allocation in
                the VPLMN is allowed
              example: true
            apnOiReplacement:
              type: string
              nullable: true
              description: This attribute indicates the domain name to replace the APN
                Operator Identifier when constructing the PDN Gateway (GW) Full Qualified
                Domain Name (FQDN) upon which to perform a DNS resolution.
              example: mncfoo.mccfoo.gprs
            hssEsmContextId:
              type: string
              description: HSS ESM Context Id
              example: "2"
            operatorId:
              type: string
              description: operator ID
              example: "3.77"
            operatorNetworkId:
              type: string
              description: network group id
              nullable: true
              example: "5"
    PdpContextProfileArray:
      allOf:
        - type: object
          properties:
            pdpContextProfiles:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/InventoryBase'
                  - $ref: '#/components/schemas/InventoryPdpContextItems'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /pdp-context-profiles?cursor=BDCTAQ3434%DFB%EYY445
    PdpContextProfiles:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - $ref: '#/components/schemas/PdpContextProfile'
    PdpContextProfile:
      type: object
      properties:
        pdpContexts:
          type: array
          items:
            $ref: '#/components/schemas/PdpContextSub'
        operatorId:
          type: string
          description: operator ID
          example: "3.77"
        operatorNetworkId:
          type: string
          description: network group id
          nullable: true
          example: "5"
        hlrPdpContextProfileId:
          type: string
          description: hlr PDP context profile id
          example: "5"
    PdpContextSub:
      type: object
      properties:
        ordinal:
          type: integer
          description: The ordinal number of the PDP context. The ordinal number indicates
            the usage order of the PDP contexts when there are more than one PDP contexts
          format: int32
          example: 1
        apnId:
          type: string
          description: apn id
          example: "1249"
        pdpContextQosId:
          type: string
          example: "2"
        pdpContextType:
          type: string
          example: IPV4
          x-extensible-enum:
            - IPV4
            - IPV6
            - IPV4_AND_IPV6
      example:
        ordinal: 10
        apnId: "1249"
        pdpContextQosId: "1242"
        pdpContextType: IPV4
    EsmContextQosArray:
      allOf:
        - type: object
          properties:
            esmContextQoS:
              type: array
              items:
                $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /esm-contexts-qos?cursor=BDCTAQ3434%DFB%EYY445
    EsmContextQos:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            name:
              type: string
              description: The name of the ESM context Qos
              example: Foo Esm Context Qos
            qosClassId:
              type: integer
              description: QoS Class Identifier (QCI). Bearer level QoS parameter.
              format: int32
              example: 0
            arp:
              maximum: 15
              minimum: 1
              type: integer
              description: Allocation/retention Priority
              format: int32
              example: 10
            maxDownLinkBitrate:
              type: integer
              description: Max downlink bitrate (bits/s)
              format: int32
              example: 0
            maxUpLinkBitrate:
              type: integer
              description: Max uplink bitrate in (bits/s)
              format: int32
              example: 0
            maxExternalDownLinkBitrate:
              type: integer
              description: Max External downlink bitrate in (kbits/s)
              format: int64
              example: 0
            maxExternalUpLinkBitrate:
              type: integer
              description: Max External uplink bitrate in (kbits/s)
              format: int64
              example: 0
            epsServiceChargingChar:
              type: string
              nullable: true
              description: eps service charging char
              example: "64555"
            arpPreemptionCapability:
              type: boolean
              description: Allocation/retention Priority Capability
              example: true
            arpPreemptionVulnerability:
              type: boolean
              description: Allocation/retention Priority Vulnerability
              example: true
            operatorId:
              type: string
              description: operator ID
              example: "3.77"
            operatorNetworkId:
              type: string
              description: network group id
              nullable: true
              example: "5"
    EsmProfileQosArray:
      allOf:
        - type: object
          properties:
            esmProfileQos:
              type: array
              items:
                $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /esm-profiles-qos?cursor=BDCTAQ3434%DFB%EYY445
    EsmProfileQos:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            name:
              type: string
              description: The name of the ESM profile Qos
              example: Foo Esm profile Qos
            maxDownlinkBitrate:
              type: integer
              description: Max downlink bitrate in (bits/s)
              format: int32
              example: 0
            maxUplinkBitrate:
              type: integer
              description: Max uplink bitrate in (bits/s)
              format: int32
              example: 0
            maxExtendedDownlinkBitrate:
              type: integer
              description: Max Extended downlink bitrate in (kbits/s)
              format: int64
              example: 0
            maxExtendedUplinkBitrate:
              type: integer
              description: Max Extended uplink bitrate in (kbits/s)
              format: int64
              example: 0
            epsServiceChargingChar:
              type: string
              nullable: true
              description: eps service charging char
              example: "64555"
            freqPriorityId:
              type: integer
              description: Frequency priority identifier/subscriber profile ID
              format: int32
              example: 3
            operatorId:
              type: string
              description: operator ID
              example: "3.77"
            operatorNetworkId:
              type: string
              description: network group id
              nullable: true
              example: "5"
    PdpContextQosArray:
      allOf:
        - type: object
          properties:
            qos:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/InventoryBase'
                  - $ref: '#/components/schemas/InventoryPdpContextQosItem'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /pdp-context-qos?cursor=BDCTAQ3434%DFB%EYY445
    PdpContextQos:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
        - type: object
          properties:
            name:
              type: string
              description: The name of the  Qos
              example: Foo  Qos
            trafficClass:
              type: string
              description: Traffic class
              example: BACKGROUND
              x-extensible-enum:
                - BACKGROUND
                - CONVERSATIONAL
                - INTERACTIVE
                - STREAMING
            maximumBitrateUp:
              type: integer
              description: Max bitrate up in Kbps
              format: int32
              example: 5
            maximumBitrateDown:
              type: integer
              description: Max bitrate down in Kbps
              format: int32
              example: 5
            deliveryOrder:
              type: string
              description: Delivery Order
              example: IN_ORDER
              x-extensible-enum:
                - IN_ORDER
                - NO_ORDERING
            allocationRetentionPriority:
              type: string
              description: allocation Retention Priority
              example: HIGH
              x-extensible-enum:
                - HIGH
                - NORMAL
                - LOW
            trafficHandlingPriority:
              type: string
              description: traffic handling priority
              example: PRIO_1
              x-extensible-enum:
                - PRIO_1
                - PRIO_2
                - PRIO_3
                - PRIO_4
            serviceDataUnit:
              $ref: '#/components/schemas/ServiceDataUnit'
            transferDelay:
              type: integer
              description: transfer delay
              nullable: true
              format: int32
              example: 100
            operatorId:
              type: string
              description: operator ID
              example: "3.77"
            operatorNetworkId:
              type: string
              description: network group id
              nullable: true
              example: "5"
            hlrPdpContextQosId:
              type: string
              description: hlr Pdp Context Qos Id
              example: "5"
    ServiceDataUnit:
      properties:
        sduMaxSize:
          type: integer
          description: sdu Max size
          format: int32
          example: 5
        erroneousSduDelivery:
          type: string
          description: erroreous Sdu Delivery
          example: DELIVERED
          x-extensible-enum:
            - NOT_CHECKED
            - NOT_DELIVERED
            - DELIVERED
        residualBitErrorRate:
          type: integer
          description: residual Bit Error Rate
          format: int32
          example: 4
        sduErrorRatio:
          type: integer
          description: sdu Error Ratio
          format: int32
          example: 2
      description: Service Data Unit
      example:
        sduMaxSize: 5
        erroneousSduDelivery: DELIVERED
        residualBitErrorRate: 4
        sduErrorRatio: 2
    ApnArray:
      allOf:
        - type: object
          properties:
            apns:
              type: array
              items:
                $ref: '#/components/schemas/DataProfileBase'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /apns?cursor=BDCTAQ3434%DFB%EYY445
    DataProfileBase:
      allOf:
        - $ref: '#/components/schemas/InventoryBase'
      type: object
      properties:
        apn:
          type: string
          description: The name of the APN
          example: foo.go
        hlrApnId:
          type: string
          nullable: true
          description: HLR Apn Id
          example: "6415"
        hssApnId:
          type: string
          nullable: true
          description: HSS Apn Id
          example: "6415"
        supplierDnsHosted:
          type: boolean
          description: A boolean indicating supplier DNS hosted property
          example: true
        type:
          type: string
          example: INTERNET_APN
          x-extensible-enum:
            - INTERNET_APN
            - NON_HOSTED_APN
            - PRIVATE_APN
            - VIRTUAL_APN
            - RADIUS_APN
    Apn:
      anyOf:
        - $ref: '#/components/schemas/InternetApn'
        - $ref: '#/components/schemas/NonHostedApn'
        - $ref: '#/components/schemas/PrivateApn'
        - $ref: '#/components/schemas/RadiusApn'
        - $ref: '#/components/schemas/VirtualApn'
    InternetApn:
      allOf:
        - $ref: '#/components/schemas/RealApn'
        - type: object
          properties:
            firewallAllowlist:
              type: array
              description: The configuration to restrict communication on the internet.
              items:
                $ref: '#/components/schemas/ApnFirewallAllowlist'
    RealApn:
      allOf:
        - $ref: '#/components/schemas/PgwApn'
        - type: object
          properties:
            uplinkBandwidth:
              type: integer
              description: "An uplink bandwidth limit to apply a speed profile on the\
                \ subscriptions connecting through this APN. If no value is entered,\
                \ the default value applies, which is defined by the QoS"
              format: int32
              example: 60
            downlinkBandwidth:
              type: integer
              description: "A downlink bandwidth limit to apply a speed profile on the\
                \ subscriptions connecting through this APN. If no value is entered,\
                \ the default value applies, which is defined by the QoS"
              format: int32
              example: 80
            numberOfSimultaneousSessions:
              type: integer
              description: "Number of connected device"
              format: int32
              example: 256
            primaryGiRange:
              type: string
              description: Primary GI Address Range
              nullable: true
              example: "42.56.152.23/28"
            secondaryGiRange:
              type: string
              description: Secondary GI Address Range
              nullable: true
              example: "42.56.152.23/28"
            routingInstance:
              type: string
              description: The routing instance where the APN is configured
              example: route1
            natFirewallBy:
              type: string
              description: The NAT Firewall provided by Ericsson or Operator
              example: OPERATOR
              x-extensible-enum:
                - OPERATOR
                - ERICSSON
            ipVersion:
              type: string
              description: The type of the PDP
              example: IPV4
              x-extensible-enum:
                - IPV4
                - IPV6
                - IPV4_AND_IPV6
                - IPV4_OR_IPV6
                - NONE
            sessionTimeout:
              type: string
              description: The session timeout configuration.
              example: DEFAULT
              x-extensible-enum:
                - DEFAULT
                - NO_SUPERVISION
                - TIMER
                - RADIUS
            sessionTimeoutTimer:
              type: integer
              description: The amount of time that needs to be elapsed for the session
                to expire
              format: int32
              example: 60
            idleTimeout:
              type: string
              description: The idle timeout configuration
              nullable: true
              example: DEFAULT
              x-extensible-enum:
                - DEFAULT
                - NO_SUPERVISION
                - TIMER
                - RADIUS
            idleTimeoutTimer:
              type: integer
              description: "The number of minutes that the idle timer timeout. When\
                \ the traffic idle time exceeds the specified value, the session will\
                \ be reset"
              format: int32
              example: 60
            vpn:
              type: string
              description: The name of the VPN to be connected
              nullable: true
              example: vpn1
            terminalIpAddresses:
              type: array
              description: The terminal IP range to be used
              items:
                pattern: "((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\\
                  .){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*(?:/[0-9]\\\
                  d|/3[0-9])?$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3}(\\\
                  /(\\d{1,2}|1[0-1]\\d|12[0-8]))?)|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\\
                  s*$))|(^\\*$)"
                type: string
                description: IPv4 or IPv6 IP address with netmask
                example: 10.100.200.50/20
            secondaryTerminalIpAddresses:
              type: array
              description: The terminal IP range to be used for the backup site
              items:
                pattern: "((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\\
                  .){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*(?:/[0-9]\\\
                  d|/3[0-9])?$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3}(\\\
                  /(\\d{1,2}|1[0-1]\\d|12[0-8]))?)|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\\
                  d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\\
                  s*$))|(^\\*$)"
                type: string
                description: IPv4 or IPv6 IP address with netmask
                example: 2001:db8:abcd:0012::0/56
            primaryEnterpriseServerAddress:
              pattern: "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])(?:\\.[01]?\\d\\d?|\\.2[0-4]\\\
                d|\\.25[0-5]){3}(?:/[0-2]\\d|/3[0-2])?$"
              type: string
              description: Primary DHCP server address
              nullable: true
              example: 10.20.30.40/20
            secondaryEnterpriseServerAddress:
              pattern: "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])(?:\\.[01]?\\d\\d?|\\.2[0-4]\\\
                d|\\.25[0-5]){3}(?:/[0-2]\\d|/3[0-2])?$"
              type: string
              description: Secondary DHCP server address
              nullable: true
              example: 10.20.30.40/20
            primaryAuthServer:
              $ref: '#/components/schemas/AuthServer'
            secondaryAuthServer:
              $ref: '#/components/schemas/AuthServer'
            primaryAcctServer:
              $ref: '#/components/schemas/AcctServer'
            secondaryAcctServer:
              $ref: '#/components/schemas/AcctServer'
            useIpAddressAllocation:
              type: boolean
              example: true
            addressAllocationType:
              type: string
              description: Address Allocation
              example: Provider_Static
              x-extensible-enum:
                - Provider_Dynamic
                - Provider_Static
                - Enterprise_RADIUS
                - Enterprise_DHCP
                - DCP_DHCP
                - DCP_RADIUS
            radiusAuthOptions:
              type: string
              description: Authentication options/AVPs
              nullable: true
              example: "imsi , rat-type , user-plmn-id , allocate-ip-type"
            radiusAccOptions:
              type: string
              description: Accounting options/AVPs'
              nullable: true
              example: "event-timestamp , imsi , msisdn , apn-selection-mode"
            numberOfReservedIpV4Addresses:
              type: integer
              description: Number of reserved IPv4 address
              format: int32
              example: 2
            numberOfReservedIpV6Addresses:
              type: integer
              description: Number of reserved IPv6 address
              format: int32
              example: 2
            restrictM2MAccess:
              type: boolean
              description: A boolean indicating whether communication between terminals
                is restricted
              example: true
            sendIpV4Dns:
              type: boolean
              description: A boolean indicating whether IPV4 DNS is used on the APN
              example: true
            useSupplierDnsIpV4:
              type: boolean
              description: A boolean indicating whether to set devices IPv4 DNS
              example: true
            sendIpV6Dns:
              type: boolean
              description: A boolean indicating whether IPV6 DNS is used on the APN
              example: true
            useSupplierDnsIpV6:
              type: boolean
              description: "A boolean indicating whether to set devices IPv6 DNS. Note!\
                \ If it is true and no IPv6 DNS addresses are provided, Ericsson will\
                \ add by default the IoTA IPv6 DNS"
              example: true
            primaryDnsIpV4:
              pattern: "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])(?:\\.[01]?\\d\\d?|\\.2[0-4]\\\
                d|\\.25[0-5]){3}(?:/[0-9]\\d|/3[0-9])?$"
              type: string
              description: The IPv4 address of the primary DNS server
              nullable: true
              example: 34.125.64.6/28
            primaryDnsIpV6:
              pattern: "^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\\\
                /([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$"
              type: string
              description: The IPv6 address of the primary DNS server
              nullable: true
              example: fe80:0000:0000:0000:0204:61ff:fe9d:f156/76
            secondaryDnsIpV4:
              pattern: "([01]?\\d\\d?|2[0-4]\\d|25[0-5])(?:\\.[01]?\\d\\d?|\\.2[0-4]\\\
                d|\\.25[0-5]){3}(?:/[0-9]\\d|/3[0-9])?$"
              type: string
              description: The IPv4 address of the secondary DNS server
              nullable: true
              example: 34.125.64.6/28
            secondaryDnsIpV6:
              pattern: "^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\\\
                /([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$"
              type: string
              description: The IPv6 address of the secondary DNS server
              nullable: true
              example: fe80:0000:0000:0000:0204:61ff:fe9d:f156/76
            pcrf:
              type: string
              description: Policy Control Type
              example: NONE
              x-extensible-enum:
                - NONE
                - B2C
                - POLICY_CONTROL
            enabled2g3g:
              type: boolean
              description: |
                Enable 2G or 3G in APN
              example: true
            enabled4g:
              type: boolean
              description: |
                Enable 4G in APN
              example: true
    PgwApn:
      allOf:
        - $ref: '#/components/schemas/ApnBase'
        - type: object
          properties:
            packetGws:
              type: array
              items:
                $ref: '#/components/schemas/PacketGw'
    ApnBase:
      allOf:
        - $ref: '#/components/schemas/DataProfileBase'
        - type: object
          properties:
            supplierHostedDns:
              type: boolean
              example: true
            dnsPlmnIds:
              type: array
              items:
                type: string
                example: "7324"
            advancedResellerApn:
              type: boolean
              description: |
                APN requested by a CSP is a Global APN or is being used in the Reseller scenario
              example: true
    PacketGw:
      type: object
      properties:
        id:
          type: string
          example: "525"
        name:
          type: string
          example: pwg1
        isPrimary:
          type: boolean
          example: true
      example:
        id: "525"
        name: pwg1
        isPrimary: true
    AuthServer:
      type: object
      properties:
        ipAddress:
          type: string
          format: ipv4
          example: 34.125.64.6
        port:
          type: integer
          format: int32
          example: 1812
        key:
          type: string
          example: "1232"
      description: Authentication server
      nullable: true
      example:
        ipAddress: 34.125.64.6
        port: 1812
        key: "1243"
    AcctServer:
      type: object
      properties:
        ipAddress:
          type: string
          format: ipv4
          example: 34.125.64.9
        port:
          type: integer
          format: int32
          example: 18126
        key:
          type: string
          example: "1234"
      description: Accounting server
      nullable: true
      example:
        ipAddress: 34.125.64.9
        port: 1812
        key: "1324"
    NonHostedApn:
      allOf:
        - $ref: '#/components/schemas/ApnBase'
    PrivateApn:
      allOf:
        - $ref: '#/components/schemas/RealApn'
    RadiusApn:
      allOf:
        - $ref: '#/components/schemas/PgwApn'
        - type: object
          properties:
            defaultApnId:
              type: string
              description: Default Apn Id
              example: "0"
    VirtualApn:
      allOf:
        - $ref: '#/components/schemas/PgwApn'
        - type: object
          properties:
            realApnId:
              type: string
              example: "0"
    InventoryBase:
      type: object
      properties:
        id:
          type: string
          example: "1"
        status:
          type: string
          example: ACTIVE
          x-extensible-enum:
            - ACTIVE
            - DEPRECATED
        name:
          maxLength: 255
          minLength: 1
          type: string
          example: Foo name
        description:
          maxLength: 500
          type: string
          nullable: true
          example: Foo description
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        operatorId:
          type: string
          description: operator ID
          example: "3.77"
        operatorNetworkId:
          type: string
          description: network group ID
          nullable: true
          example: "538"
    InventoryProfileItems:
      type: object
      properties:
        hssEsmProfileId:
          type: string
          description: Esm profile id in HSS
          example: "2"
    InventoryContextItems:
      type: object
      properties:
        hssEsmContextId:
          type: string
          description: HSS ESM Context Id
          example: "2"
    InventoryPdpContextItems:
      type: object
      properties:
        hlrPdpContextProfileId:
          type: string
          description: hlr PDP context profile id
          example: "5"
    InventoryPdpContextQosItem:
      type: object
      properties:
        hlrPdpContextQosId:
          type: string
          description: hlr Pdp Context Qos Id
          example: "5"
    ApnFirewallAllowlist:
      type: object
      properties:
        ipAddress:
          type: string
          example: 111.222.111.222
        portStart:
          type: integer
          format: int32
          example: 1810
        portEnd:
          type: integer
          format: int32
          example: 1820
        protocol:
          type: string
          example: TCP
          x-extensible-enum:
            - TCP
            - UDP
            - ICMP
            - SCTP
            - ESP
            - ANY
    GetSMContextQos5GSAInventoryListResponseSchema:
      allOf:
        - type: object
          properties:
            smContextQos:
              type: array
              items:
                $ref: '#/components/schemas/InventoryItemSMContextQos5GSASchema'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /sm-context-qos-5gsa?cursor=BDCTAQ3434%DFB%EYY445
    InventoryItemSMContextQos5GSASchema:
      type: object
      properties:
        id:
          type: string
          example: "1"
        status:
          type: string
          example: ACTIVE
          x-extensible-enum:
            - ACTIVE
            - DEPRECATED
        name:
          maxLength: 255
          minLength: 1
          type: string
          example: Foo name
        description:
          maxLength: 500
          type: string
          nullable: true
          example: Foo description
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        operatorId:
          type: string
          description: operator ID
          example: "3.77"
        operatorNetworkId:
          type: string
          description: Operator network ID
          nullable: true
          example: "538"
    GetSMContextQos5GSAInventoryResponseSchema:
      allOf:
        - $ref: '#/components/schemas/InventoryItemSMContextQos5GSASchema'
        - type: object
          properties:
            aggMaxDownlinkBitrate:
              type: integer
              description: Aggregate maximum downlink bitrate in (bits/s)
              format: int32
              example: 0
            aggMaxUplinkBitRate:
              type: integer
              description: Aggregate maximum uplink bitrate in (bits/s)
              format: int32
              example: 0
            qosPriorityLevel:
              type: integer
              description: QoS priority level
              minimum: 1
              maximum: 15
              example: 10
            sessionContinuityIndicator:
              type: string
              description: Session continuity indicator
              nullable: true
              example: null
            arpPreemptionCapability:
              type: boolean
              description: ARP preemption capability flag
              example: true
            arpPreemptionVulnerability:
              type: boolean
              description: ARP preemption vulnerability flag
              example: true
            sscModes:
              type: array
              description: List of SSC modes with default indicator
              items:
                $ref: '#/components/schemas/SscModeEntry'

    SscModeEntry:
      type: object
      properties:
        mode:
          type: string
          description: SSC mode value
          example: SSC_MODE_1
        def:
          type: boolean
          description: Indicates whether this is the default SSC mode
          example: true

    GetNetworkSliceContextInventoryListResponseSchema:
      allOf:
        - type: object
          properties:
            networkSliceContexts:
              type: array
              items:
                $ref: '#/components/schemas/InventoryItemNetworkSliceContextSchema'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /network-slicing-contexts?cursor=BDCTAQ3434%DFB%EYY445
    InventoryItemNetworkSliceContextSchema:
      type: object
      properties:
        id:
          type: string
          example: "1"
        status:
          type: string
          example: ACTIVE
          x-extensible-enum:
            - ACTIVE
            - DEPRECATED
        name:
          maxLength: 255
          minLength: 1
          type: string
          example: Foo name
        description:
          maxLength: 500
          type: string
          nullable: true
          example: Foo description
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        operatorId:
          type: string
          description: operator ID
          example: "3.77"
        operatorNetworkId:
          type: string
          description: Operator network ID
          nullable: true
          example: "538"
    GetNetworkSliceContextInventoryResponseSchema:
      allOf:
        - $ref: '#/components/schemas/InventoryItemNetworkSliceContextSchema'
        - type: object
          properties:
            networkId:
              type: integer
              description: Network Id
              format: int32
              example: 0
            sliceType:
              type: integer
              description: Slice Type
              format: int32
              example: 0
            sliceDifferentiator:
              type: string
              description: Slice Differentiator (SD)
              example: "000090"
            networkSlicingDnnMappingDetailResps:
              type: array
              description: List of DNN mappings associated with this network slice context
              items:
                $ref: '#/components/schemas/DnnMapping'
    DnnMapping:
      type: object
      properties:
        dnnDcpId:
          type: string
          description: DCP ID of the DNN
          example: "7324"
        isDefault:
          type: boolean
          description: Indicates whether this is the default DNN mapping
          example: true

    GetSmContext5gsaInventoryListResponseSchema:
      allOf:
        - type: object
          properties:
            smContexts:
              type: array
              items:
                $ref: '#/components/schemas/InventoryItemSmContext5gsaSchema'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /sm-context-5gsa?cursor=BDCTAQ3434%DFB%EYY445
    InventoryItemSmContext5gsaSchema:
      type: object
      properties:
        id:
          type: string
          example: "1"
        status:
          type: string
          example: ACTIVE
          x-extensible-enum:
            - ACTIVE
            - DEPRECATED
        name:
          maxLength: 255
          minLength: 1
          type: string
          example: Foo name
        description:
          maxLength: 500
          type: string
          nullable: true
          example: Foo description
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        operatorId:
          type: string
          description: operator ID
          example: "3.77"
        operatorNetworkId:
          type: string
          description: Operator network ID
          nullable: true
          example: "538"
    GetSmContext5gsaInventoryResponseSchema:
      allOf:
        - $ref: '#/components/schemas/InventoryItemSmContext5gsaSchema'
        - type: object
          properties:
            networkId:
              type: integer
              description: Network Id
              format: int32
              example: 0
            smContextQosId:
              type: string
              description: ID of the associated SM Context QoS
              example: "300"
            networkSlicingContextId:
              type: string
              description: ID of the associated Network Slicing Context
              example: "000090"
            dnnId:
              type: array
              description: List of DNN IDs associated with this SM context
              items:
                type: string
                example: "7324"

    GetSmProfile5gsaInventoryListResponseSchema:
      allOf:
        - type: object
          properties:
            smProfiles:
              type: array
              items:
                $ref: '#/components/schemas/InventoryItemSmProfile5gsaSchema'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /sm-profile-5gsa?cursor=BDCTAQ3434%DFB%EYY445
    InventoryItemSmProfile5gsaSchema:
      type: object
      properties:
        id:
          type: string
          example: "1"
        status:
          type: string
          example: ACTIVE
          x-extensible-enum:
            - ACTIVE
            - DEPRECATED
        name:
          maxLength: 255
          minLength: 1
          type: string
          example: Foo name
        description:
          maxLength: 500
          type: string
          nullable: true
          example: Foo description
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        operatorId:
          type: string
          description: operator ID
          example: "3.77"
        operatorNetworkId:
          type: string
          description: Operator network ID
          nullable: true
          example: "538"
    GetSmProfile5gsaInventoryResponseSchema:
      allOf:
        - $ref: '#/components/schemas/InventoryItemSmProfile5gsaSchema'
        - type: object
          properties:
            aggMaxUplinkBitRate:
              type: string
              description: Aggregate maximum uplink bit rate
              example: "1000000"
            aggMaxDownlinkBitrate:
              type: string
              description: Aggregate maximum downlink bit rate
              example: "1000000"
            nssaiInclusionAllowed:
              type: boolean
              description: Indicates whether NSSAI inclusion is allowed
              example: true
            smContexts:
              type: array
              description: List of SM contexts associated with this SM profile
              items:
                $ref: '#/components/schemas/SmContextRef'
    SmContextRef:
      type: object
      properties:
        smContextId:
          type: string
          description: ID of the SM context
          example: "123"
        defaultContext:
          type: boolean
          description: Indicates whether this is the default SM context
          example: true

    GetRoamingProfile5gsaInventoryListResponseSchema:
      allOf:
        - type: object
          properties:
            roamingProfiles:
              type: array
              items:
                $ref: '#/components/schemas/InventoryItemRoamingProfile5gsaSchema'
        - type: object
          properties:
            next:
              type: string
              description: Opaque string returned within the meta object response on
                endpoints which support pagination. Indicates that more results are
                available and can be used as the 'cursor' parameter in the next request
                to return the next page of results. The last page of results will not
                have a 'next' present.
              example: /roaming-profile-5gsa?cursor=BDCTAQ3434%DFB%EYY445
    InventoryItemRoamingProfile5gsaSchema:
      type: object
      properties:
        id:
          type: string
          example: "1"
        status:
          type: string
          example: ACTIVE
          x-extensible-enum:
            - ACTIVE
            - DEPRECATED
        name:
          maxLength: 255
          minLength: 1
          type: string
          example: Foo name
        description:
          maxLength: 500
          type: string
          nullable: true
          example: Foo description
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        operatorId:
          type: string
          description: operator ID
          example: "3.77"
        operatorNetworkId:
          type: string
          description: Operator network ID
          nullable: true
          example: "538"
    GetRoamingProfile5gsaInventoryResponseSchema:
      allOf:
        - $ref: '#/components/schemas/InventoryItemRoamingProfile5gsaSchema'
        - type: object
          properties:
            globalTitles:
              type: array
              description: List of global titles associated with the roaming profile
              uniqueItems: true
              items:
                type: string
              example: [ '164780001', '2250505987', '32468' ]
  responses:
    RateLimitedResponse:
      headers:
        X-RateLimit-Limit-Second:
          $ref: '#/components/headers/X-RateLimit-Limit-Second'
        X-RateLimit-Limit-Minute:
          $ref: '#/components/headers/X-RateLimit-Limit-Minute'
        X-RateLimit-Remaining-Second:
          $ref: '#/components/headers/X-RateLimit-Remaining-Second'
        X-RateLimit-Remaining-Minute:
          $ref: '#/components/headers/X-RateLimit-Remaining-Minute'
        Content-Type:
          $ref: '#/components/headers/Content-Type'
    BadRequest:
      description: Bad Request
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          example:
            type: https://www.iana.org/assignments/http-status-codes
            title: Bad Request
            status: 400
            detail: Invalid request parameter
            instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
    Unauthorized:
      description: Unauthorized
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          example:
            type: https://www.iana.org/assignments/http-status-codes
            title: 'Unauthorized'
            status: 401
            detail: The request has not been applied because the server requires user
              authentication.
            instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
    Forbidden:
      description: Forbidden
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          example:
            type: "https://www.iana.org/assignments/http-status-codes"
            title: "Forbidden"
            status: 403
            detail: "Authentication token is valid, but user has no access permissions to the request resource."
            instance: "https://api.documentation.url/request-id"
    TooManyRequests:
      description: Too Many Requests
      allOf:
        - $ref: '#/components/responses/RateLimitedResponse'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    InternalError:
      description: Internal Server Error.
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          example:
            type: https://www.iana.org/assignments/http-status-codes
            title: Internal Server Error
            status: 500
            detail: The server has encountered a situation that it does not know how
              to handle.
            instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
    Problem:
      description: Internal Server Error.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    NotFound:
      description: Not Found
      headers:
        Content-Type:
          $ref: '#/components/headers/Content-Type'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/NotFound'
          example:
            type: https://www.iana.org/assignments/http-status-codes
            title: Not Found
            status: 404
            detail: The server has not found anything matching the Request-URI.
            instance: https://api.documentation.url/123e4567-e89b-12d3-a456-426614174000
    NoContent:
      description: No Content
    Accepted:
      description: Accepted
  examples:
    internetApnExample:
      value:
        id: "1"
        status: ACTIVE
        description: Foo description
        createdAt: "2022-06-28T13:23:59.121Z"
        updatedAt: "2022-06-28T13:23:59.121Z"
        type: INTERNET_APN
        name: iot
        apn: rad0309.iota.com
        hlrApnId: "6415"
        hssApnId: "6416"
        supplierDnsHosted: true
        enabled2g3g: true
        enabled4g: false
        packetGws:
          - id: "26"
            name: pgd1
            isPrimary: true
          - id: "27"
            name: pgd2
            isPrimary: false
        dnsPlmnIds:
          - "123456"
          - "777888"
        advancedResellerApn: true
        uplinkBandwidth: 500
        downlinkBandwidth: 700
        numberOfSimultaneousSessions: 256
        primaryGiRange: "42.56.152.23/28"
        secondaryGiRange: "42.56.152.23/28"
        routingInstance: route1
        natFirewallBy: OPERATOR
        ipVersion: IPV4
        sessionTimeout: NO_SUPERVISION
        sessionTimeoutTimer: 0
        idleTimeout: TIMER
        idleTimeoutTimer: 0
        vpn: vpn1
        terminalIpAddresses:
          - 34.231.12.37/24
          - 2001:db8:abd:0012::0/56
        secondaryTerminalIpAddresses:
          - 34.231.12.37/24
          - 2001:db8:abc:0012::0/56
        primaryEnterpriseServerAddress: 1.2.3.4/20
        secondaryEnterpriseServerAddress: 1.2.3.4/20
        primaryAuthServer:
          ipAddress: 34.231.12.37
          port: 18126
          key: "1234"
        secondaryAuthServer:
          ipAddress: 34.231.12.37
          port: 18126
          key: "1234"
        primaryAcctServer:
          ipAddress: 100.12.43.4
          port: 1813
          key: "1246"
        secondaryAcctServer:
          ipAddress: 100.12.43.4
          port: 1813
          key: "1246"
        addressAllocationType: Provider_Dynamic
        useIpAddressAllocation: false
        radiusAuthOptions: "imsi , rat-type , user-plmn-id , allocate-ip-type"
        radiusAccOptions: "event-timestamp , imsi , msisdn , apn-selection-mode"
        numberOfReservedIpV4Addresses: 2
        numberOfReservedIpV6Addresses: 0
        restrictM2MAccess: true
        sendIpV4Dns: true
        useSupplierDnsIpV4: true
        sendIpV6Dns: true
        useSupplierDnsIpV6: true
        primaryDnsIpV4: 100.12.43.7
        primaryDnsIpV6: 2001:db8:abd:0012::0/89
        secondaryDnsIpV4: 100.12.43.4
        secondaryDnsIpV6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
        pcrf: NONE
        firewallAllowlist:
          - ipAddress: 1.2.3.4/20
            portStart: 22
            portEnd: 8080
            protocol: ESP
        operatorId: "3.77"
        operatorNetworkId: "538"
    nonHostedApnExample:
      value:
        id: "1"
        status: ACTIVE
        description: Foo description
        createdAt: "2022-06-28T13:23:59.121Z"
        updatedAt: "2022-06-28T13:23:59.121Z"
        type: NON_HOSTED_APN
        name: iot
        apn: rad0309.iota.com
        advancedResellerApn: true
        hlrApnId: "6415"
        hssApnId: "6416"
        supplierDnsHosted: true
        dnsPlmnIds:
          - "123456"
          - "777888"
        operatorId: "3.77"
        operatorNetworkId: "538"
    privateApnExample:
      value:
        id: "1"
        status: ACTIVE
        description: Foo description
        createdAt: "2022-06-28T13:23:59.121Z"
        updatedAt: "2022-06-28T13:23:59.121Z"
        type: PRIVATE_APN
        name: iot
        apn: rad0309.iota.com
        hlrApnId: "6415"
        hssApnId: "6416"
        supplierDnsHosted: true
        enabled2g3g: true
        enabled4g: false
        packetGws:
          - id: "26"
            name: pgd1
            isPrimary: true
          - id: "27"
            name: pgd2
            isPrimary: false
        dnsPlmnIds:
          - "123456"
          - "777888"
        advancedResellerApn: true
        uplinkBandwidth: 500
        downlinkBandwidth: 700
        numberOfSimultaneousSessions: 256
        primaryGiRange: "42.56.152.23/28"
        secondaryGiRange: "42.56.152.23/28"
        routingInstance: route1
        natFirewallBy: OPERATOR
        ipVersion: IPV4
        sessionTimeout: NO_SUPERVISION
        sessionTimeoutTimer: 0
        idleTimeout: TIMER
        idleTimeoutTimer: 0
        vpn: vpn1
        terminalIpAddresses:
          - 34.231.12.37/24
          - 2001:db8:abd:0012::0/56
        secondaryTerminalIpAddresses:
          - 34.231.12.37/20
          - 2001:db8:abd:0012::0/56
        primaryEnterpriseServerAddress: 1.2.3.4/20
        secondaryEnterpriseServerAddress: 1.2.3.4/20
        primaryAuthServer:
          ipAddress: 34.231.12.37
          port: 18126
          key: "1234"
        secondaryAuthServer:
          ipAddress: 34.231.12.37
          port: 18126
          key: "1234"
        primaryAcctServer:
          ipAddress: 100.12.43.4
          port: 1813
          key: "1246"
        secondaryAcctServer:
          ipAddress: 100.12.43.4
          port: 1813
          key: "1246"
        addressAllocationType: Provider_Dynamic
        useIpAddressAllocation: false
        radiusAuthOptions: "imsi , rat-type , user-plmn-id , allocate-ip-type"
        radiusAccOptions: "event-timestamp , imsi , msisdn , apn-selection-mode"
        numberOfReservedIpV4Addresses: 2
        numberOfReservedIpV6Addresses: 0
        restrictM2MAccess: true
        sendIpV4Dns: true
        useSupplierDnsIpV4: true
        sendIpV6Dns: true
        useSupplierDnsIpV6: true
        primaryDnsIpV4: 100.12.43.7
        primaryDnsIpV6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
        secondaryDnsIpV4: 100.12.43.4
        secondaryDnsIpV6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
        pcrf: NONE
        operatorId: "3.77"
        operatorNetworkId: "538"
    virtualApnExample:
      value:
        id: "1"
        status: ACTIVE
        description: Foo description
        createdAt: "2022-06-28T13:23:59.121Z"
        updatedAt: "2022-06-28T13:23:59.121Z"
        type: VIRTUAL_APN
        name: iot
        apn: rad0309.iota.com
        advancedResellerApn: true
        hlrApnId: "6415"
        hssApnId: "6416"
        supplierDnsHosted: true
        enabled2g3g: true
        enabled4g: false
        packetGws:
          - id: "26"
            name: pgd1
            isPrimary: true
          - id: "27"
            name: pgd2
            isPrimary: false
        dnsPlmnIds:
          - "123456"
          - "777888"
        realApnId: "0"
        operatorId: "3.77"
        operatorNetworkId: "538"
    radiusApnExample:
      value:
        id: "1"
        status: ACTIVE
        description: Foo description
        createdAt: "2022-06-28T13:23:59.121Z"
        updatedAt: "2022-06-28T13:23:59.121Z"
        type: RADIUS_APN
        name: iot
        apn: rad0309.iota.com
        advancedResellerApn: true
        hlrApnId: "6415"
        hssApnId: "6416"
        supplierDnsHosted: true
        packetGws:
          - id: "26"
            name: pgd1
            isPrimary: true
          - id: "27"
            name: pgd2
            isPrimary: false
        dnsPlmnIds:
          - "123456"
          - "777888"
        defaultApnId: "0"
        operatorId: "3.77"
        operatorNetworkId: "538"
  headers:
    Content-Type:
      description: Handle Content-Type
      schema:
        type: string
    X-RateLimit-Limit-Second:
      description: The maximum number of requests allowed in a second.
      schema:
        type: integer
        format: int32
    X-RateLimit-Limit-Minute:
      description: The maximum number of requests allowed in a minute.
      schema:
        type: integer
        format: int32
    X-RateLimit-Remaining-Second:
      description: The number of requests remaining in a second.
      schema:
        type: integer
        format: int32
    X-RateLimit-Remaining-Minute:
      description: The number of requests remaining in a minute.
      schema:
        type: integer
        format: int32
  securitySchemes:
    oauth2:
      type: oauth2
      description: The API uses OAuth2 and OIDC for authentication and authorization.
      flows:
        password:
          tokenUrl: https://<baseURL>/iot/api/auth/token
          scopes:
            cnx_view_resources: Access right to read APN