openapi: 3.0.1
info:
  title: Open Gateway - Onboarding And Ordering API
  description: >
    The TMF931 "Open Gateway - Onboarding And Ordering API" enables Channel Partners and Operators to carry out onboarding tasks via an API. 
    
# This API focusses on : 

#     - Application Owner (Developer) Management (acceptance, onboarding, lifecycle management)  

#     - Application Management (acceptance, onboarding, lifecycle management)  

#     - Service API Management (ordering, retrieving)



#     ** November 2023**  


#     Copyright © TM Forum 2023. All Rights Reserved
  version: 5.0.0
  contact:
    name: Vodafone Developer Marketplace
    url: https://developer.vodafone.com/landing-page
servers:
  - url: https://api-test.non-prod.vf-dmp.engineering.vodafone.com/tmf-api/openGatewayOperateAPIOnboardingAndOrdering/v5
    description: "Sandbox"
 # - url: https://api.vf-dmp.engineering.vodafone.com/tmf-api/openGatewayOperateAPIOnboardingAndOrdering/v5
 #   description: "Production"
    
    
  # - url: '{apiRoot}/openGatewayOperateAPIOnboardingAndOrdering/v5/'
  #   variables:
  #     apiRoot:
  #       default: 'https://serverRoot/tmf-api/openGatewayOperateAPIOnboardingAndOrdering/v5'
  #       enum:
  #         - 'https://serverRoot/tmf-api/openGatewayOperateAPIOnboardingAndOrdering/v5'
tags:
  - name: apiProductOrder
    description: Operations for ApiProductOrder Resource
  - name: apiProduct
    description: Operations for ApiProduct Resource
  - name: application
    description: Operations for Application Resource
  - name: applicationOwner
    description: Operations for ApplicationOwner Resource
  # - name: monitor
  #   description: Operations for Monitor Resource
  # - name: notification listener
  #   description: Notifications for Resource Lifecycle and event notifications
  # - name: events subscription
  #   description: Endpoints to register and terminate an Event Listener
paths:
  /apiProduct:
    get:
      tags:
        - apiProduct
      summary: List or find ApiProduct objects
      description: List or find ApiProduct objects
      security:
        - oAuth2ClientCredentials: []

      operationId: listApiProduct
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/200ApiProductArray'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  '/apiProduct/{id}':
    get:
      tags:
        - apiProduct
      summary: Retrieves a ApiProduct by ID
      description: >-
        This operation retrieves a ApiProduct entity. Attribute selection enabled for all first
        level attributes.
      security:
        - oAuth2ClientCredentials: []
      operationId: retrieveApiProduct
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        - $ref: '#/components/parameters/Id'
        - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200ApiProduct_Get'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  /apiProductOrder:
    get:
      tags:
        - apiProductOrder
      summary: List or find ApiProductOrder objects
      description: List or find ApiProductOrder objects
      security:
        - oAuth2ClientCredentials: []

      operationId: listApiProductOrder
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/200ApiProductOrderArray'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
    post:
      tags:
        - apiProductOrder
      summary: Creates a ApiProductOrder
      description: This operation creates a ApiProductOrder entity.
      security:
        - oAuth2ClientCredentials: []
      operationId: createApiProductOrder
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/ApiProductOrder_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201ApiProductOrder'
        # '202':
        #   description: Accepted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  '/apiProductOrder/{id}':
    get:
      tags:
        - apiProductOrder
      summary: Retrieves a ApiProductOrder by ID
      description: >-
        This operation retrieves a ApiProductOrder entity. Attribute selection enabled for all first
        level attributes.
      security:
        - oAuth2ClientCredentials: []

      operationId: retrieveApiProductOrder
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        # - $ref: '#/components/parameters/Id'
        - name: id
          in: path
          required: true
          description: Identifier of the Resource
          schema: 
            type: string
            example: '322'
        - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200ApiProductOrder_Get'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  /application:
    post:
      tags:
        - application
      summary: Creates a Application
      description: This operation creates a Application entity.
      security:
        - oAuth2ClientCredentials: []
      operationId: createApplication
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/Application_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201Application'

        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
    get:
      tags:
        - application
      summary: List or find Application objects
      description: List or find Application objects
      security:
        - oAuth2ClientCredentials: []
      operationId: listApplication
      parameters:
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/200ApplicationArray'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  '/application/{id}':
    get:
      tags:
        - application
      summary: Retrieves a Application by ID
      description: >-
        This operation retrieves a Application entity. Attribute selection enabled for all first
        level attributes.
      security:
        - oAuth2ClientCredentials: []

      operationId: retrieveApplication
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        # - $ref: '#/components/parameters/Id'
        - name: id
          in: path
          required: true
          description: Identifier of the Resource
          schema: 
            type: string
            example: '101'
        
        - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200Application_Get'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
    patch:
      tags:
        - application
      summary: Updates partially a Application
      description: This operation updates partially a Application entity.
      security:
        - oAuth2ClientCredentials: []
      operationId: patchApplication
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        # - $ref: '#/components/parameters/Id'
        - name: id
          in: path
          required: true
          description: Identifier of the Resource
          schema: 
            type: string
            example: '101'
        - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/Application_MVO'
      responses:
        '200':
          $ref: '#/components/responses/200Application_Patch'
        # '202':
        #   description: Accepted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  /applicationOwner:
    post:
      tags:
        - applicationOwner
      summary: Creates a ApplicationOwner
      description: This operation creates a ApplicationOwner entity.
      security:
        - oAuth2ClientCredentials: []

      operationId: createApplicationOwner
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationOwner_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201ApplicationOwner'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
    get:
      tags:
        - applicationOwner
      summary: List or find ApplicationOwner objects
      description: List or find ApplicationOwner objects
      security:
        - oAuth2ClientCredentials: []
      operationId: listApplicationOwner
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/200ApplicationOwnerArray'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  '/applicationOwner/{id}':
    get:
      tags:
        - applicationOwner
      summary: Retrieves a ApplicationOwner by ID
      description: >-
        This operation retrieves a ApplicationOwner entity. Attribute selection enabled for all
        first level attributes.
      security:
        - oAuth2ClientCredentials: []

      operationId: retrieveApplicationOwner
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        # - $ref: '#/components/parameters/Id'
        - name: id
          in: path
          required: true
          description: Identifier of the Resource
          schema: 
            type: string
            example: '31'
        - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200ApplicationOwner_Get'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
    patch:
      tags:
        - applicationOwner
      summary: Updates partially a ApplicationOwner
      description: This operation updates partially a ApplicationOwner entity.
      security:
        - oAuth2ClientCredentials: []
      operationId: patchApplicationOwner
      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"
        - $ref: "#/components/parameters/X-Correlator"
        # - $ref: '#/components/parameters/Id'
        - name: id
          in: path
          required: true
          description: Identifier of the Resource
          schema: 
            type: string
            example: '31'
        - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationOwner_MVO'
      responses:
        '200':
          $ref: '#/components/responses/200ApplicationOwner_Patch'
        # '202':
        #   description: Accepted
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  # /hub:
  #   post:
  #     operationId: createHub
  #     summary: Create a subscription (hub) to receive Events
  #     description: Sets the communication endpoint to receive an Event.
  #     security:
  #       - oAuth2ClientCredentials: []

  #     tags:
  #       - events subscription
  #     requestBody:
  #       $ref: '#/components/requestBodies/Hub_FVO'
  #     responses:
  #       '201':
  #         $ref: '#/components/responses/Hub'
  #       default:
  #         $ref: '#/components/responses/Error'
  # '/hub/{id}':
  #   delete:
  #     operationId: hubDelete
  #     summary: Remove a subscription (hub) to receive Events
  #     description: ''
  #     security:
  #       - oAuth2ClientCredentials: []
  #     tags:
  #       - events subscription
  #     parameters:
  #       - $ref: "#/components/parameters/vf-trace-transaction-id"
  #       - $ref: "#/components/parameters/X-Correlator"
  #       - $ref: '#/components/parameters/Id'
  #     responses:
  #       '204':
  #         description: Deleted
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/apiProductOrderAttributeValueChangeEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApiProductOrderAttributeValueChangeEvent
  #     description: >-
  #       Example of a client listener for receiving the notification
  #       ApiProductOrderAttributeValueChangeEvent
  #     security:
  #       - oAuth2ClientCredentials: []

  #     operationId: apiProductOrderAttributeValueChangeEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApiProductOrderAttributeValueChangeEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/apiProductOrderCreateEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApiProductOrderCreateEvent
  #     description: Example of a client listener for receiving the notification ApiProductOrderCreateEvent
  #     operationId: apiProductOrderCreateEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApiProductOrderCreateEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/apiProductOrderStateChangeEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApiProductOrderStateChangeEvent
  #     description: Example of a client listener for receiving the notification ApiProductOrderStateChangeEvent
  #     operationId: apiProductOrderStateChangeEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApiProductOrderStateChangeEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/applicationApprovalStatusChangeEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApplicationApprovalStatusChangeEvent
  #     description: >-
  #       Example of a client listener for receiving the notification
  #       ApplicationApprovalStatusChangeEvent
  #     operationId: applicationApprovalStatusChangeEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApplicationApprovalStatusChangeEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/applicationAttributeValueChangeEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApplicationAttributeValueChangeEvent
  #     description: >-
  #       Example of a client listener for receiving the notification
  #       ApplicationAttributeValueChangeEvent
  #     operationId: applicationAttributeValueChangeEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApplicationAttributeValueChangeEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/applicationCreateEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApplicationCreateEvent
  #     description: Example of a client listener for receiving the notification ApplicationCreateEvent
  #     operationId: applicationCreateEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApplicationCreateEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/applicationOwnerApprovalStatusChangeEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApplicationOwnerApprovalStatusChangeEvent
  #     description: >-
  #       Example of a client listener for receiving the notification
  #       ApplicationOwnerApprovalStatusChangeEvent
  #     operationId: applicationOwnerApprovalStatusChangeEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApplicationOwnerApprovalStatusChangeEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/applicationOwnerAttributeValueChangeEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApplicationOwnerAttributeValueChangeEvent
  #     description: >-
  #       Example of a client listener for receiving the notification
  #       ApplicationOwnerAttributeValueChangeEvent
  #     operationId: applicationOwnerAttributeValueChangeEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApplicationOwnerAttributeValueChangeEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/applicationOwnerCreateEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity ApplicationOwnerCreateEvent
  #     description: Example of a client listener for receiving the notification ApplicationOwnerCreateEvent
  #     operationId: applicationOwnerCreateEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/ApplicationOwnerCreateEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /listener/monitorStateChangeEvent:
  #   post:
  #     tags:
  #       - notification listener
  #     summary: Client listener for entity MonitorStateChangeEvent
  #     description: Example of a client listener for receiving the notification MonitorStateChangeEvent
  #     operationId: monitorStateChangeEvent
  #     requestBody:
  #       $ref: '#/components/requestBodies/MonitorStateChangeEvent'
  #     responses:
  #       '204':
  #         description: Notified
  #       default:
  #         $ref: '#/components/responses/Error'
  # /monitor:
  #   get:
  #     tags:
  #       - monitor
  #     summary: List or find Monitor objects
  #     description: List or find Monitor objects
  #     operationId: listMonitor
  #     parameters:
  #       - $ref: '#/components/parameters/Fields'
  #       - $ref: '#/components/parameters/Offset'
  #       - $ref: '#/components/parameters/Limit'
  #     responses:
  #       '200':
  #         $ref: '#/components/responses/200MonitorArray'
  #       '400':
  #         $ref: '#/components/responses/400'
  #       '401':
  #         $ref: '#/components/responses/401'
  #       '403':
  #         $ref: '#/components/responses/403'
  #       '404':
  #         $ref: '#/components/responses/404'
  #       '405':
  #         $ref: '#/components/responses/405'
  #       '500':
  #         $ref: '#/components/responses/500'
  #       '501':
  #         $ref: '#/components/responses/501'
  #       '503':
  #         $ref: '#/components/responses/503'
  # '/monitor/{id}':
  #   get:
  #     tags:
  #       - monitor
  #     summary: Retrieves a Monitor by ID
  #     description: >-
  #       This operation retrieves a Monitor entity. Attribute selection enabled for all first level
  #       attributes.
  #     operationId: retrieveMonitor
  #     parameters:
  #       - $ref: '#/components/parameters/Id'
  #       - $ref: '#/components/parameters/Fields'
  #     responses:
  #       '200':
  #         $ref: '#/components/responses/200Monitor_Get'
  #       '400':
  #         $ref: '#/components/responses/400'
  #       '401':
  #         $ref: '#/components/responses/401'
  #       '403':
  #         $ref: '#/components/responses/403'
  #       '404':
  #         $ref: '#/components/responses/404'
  #       '405':
  #         $ref: '#/components/responses/405'
  #       '500':
  #         $ref: '#/components/responses/500'
  #       '501':
  #         $ref: '#/components/responses/501'
  #       '503':
  #         $ref: '#/components/responses/503'

  /ping:
    get:
      tags:
        - Monitoring
      summary: Check the upstream system is up and running.
      description: |-
        This API is for checking the upstream system is up and running.

      security:
        - oAuth2ClientCredentials: []

      operationId: getPing

      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"

      responses:
        "200":
          description: "**OK**"
          content:
            application/json:
              examples:
                success_response:
                  value: {
                            "suffix": "/ping",
                            "client": "35.191.13.203",
                            "startTime": "2023-06-05T19:47:16.794Z",
                            "endTime": "2023-06-05T19:47:16.888Z",
                            "responseTime": 94,
                            "message": "PONG"
                          }
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
  /status:
    get:
      tags:
        - Monitoring
      summary: Check the downstream system is up and running.
      description: |-
        This API is for checking that the downstream system is up and running.

      security:
        - oAuth2ClientCredentials: []

      operationId: getStatus

      parameters:
        - $ref: "#/components/parameters/vf-trace-transaction-id"

      responses:
        "200":
          description: "**OK**"
          content:
            application/json:
              examples:
                success_response:
                  value: {
                            "status": "OK",

                          }
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '502':
          $ref: '#/components/responses/502'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'

components:
  schemas:
    Addressable:
      type: object
      description: Base schema for adressable entities
      properties:
        href:
          type: string
          description: Hyperlink reference
        id:
          type: string
          description: unique identifier
          
    Addressable_FVO:
      type: object
      description: Base schema for adressable entities
    Addressable_MVO:
      type: object
      description: Base schema for adressable entities
    AgreementItemRef:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: It's a Agreement item that has been executed previously.
          properties:
            agreementName:
              type: string
              description: Name of the related entity.
            agreementHref:
              type: string
              description: Reference of the related entity.
            '@referredType':
              type: string
              description: The actual type of the target instance when needed for disambiguation.
            agreementId:
              type: string
              description: Unique identifier of a related entity.
            agreementItemId:
              type: string
              description: Id of an item of a Agreement
      discriminator:
        propertyName: '@type'
        mapping:
          AgreementItemRef: '#/components/schemas/AgreementItemRef'
    AgreementRef:
      type: object
      description: >-
        Agreement reference. An agreement represents a contract or arrangement, either written or
        verbal and sometimes enforceable by law, such as a service level agreement or a customer
        price agreement. An agreement involves a number of other business entities, such as
        products, services, and resources and/or their specifications.
      allOf:
        - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          AgreementRef: '#/components/schemas/AgreementRef'
    AgreementRef_FVO:
      type: object
      description: >-
        Agreement reference. An agreement represents a contract or arrangement, either written or
        verbal and sometimes enforceable by law, such as a service level agreement or a customer
        price agreement. An agreement involves a number of other business entities, such as
        products, services, and resources and/or their specifications.
      allOf:
        - $ref: '#/components/schemas/EntityRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          AgreementRef: '#/components/schemas/AgreementRef_FVO'
    ApiAuthorization:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Describes who has been authorized to sign the API ProductOfferingTermOrCondition.
          properties:
            name:
              type: string
              description: Name of the required authorization
            approver:
              $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiAuthorization: '#/components/schemas/ApiAuthorization'
    ApiAuthorization_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Describes who has been authorized to sign the API ProductOfferingTermOrCondition.
          properties:
            name:
              type: string
              description: Name of the required authorization
            approver:
              $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
          required:
            - approver
      discriminator:
        propertyName: '@type'
        mapping:
          ApiAuthorization: '#/components/schemas/ApiAuthorization_FVO'
    ApiConsumerPermission:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: A ApiConsumerPermission allows an Application to consume a API.
          properties:
            managedAssetGroup:
              $ref: '#/components/schemas/ApiListAssetGroup'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiConsumerPermission: '#/components/schemas/ApiConsumerPermission'
    ApiConsumerPermission_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: A ApiConsumerPermission allows an Application to consume a API.
          properties:
            managedAssetGroup:
              $ref: '#/components/schemas/ApiListAssetGroup_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiConsumerPermission: '#/components/schemas/ApiConsumerPermission_FVO'
    ApiConsumerPermission_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: A ApiConsumerPermission allows an Application to consume a API.
          properties:
            managedAssetGroup:
              $ref: '#/components/schemas/ApiListAssetGroup_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiConsumerPermission: '#/components/schemas/ApiConsumerPermission_MVO'
    ApiDigitalIdentity:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            ApiDigitalIdentity is a class for describing a digital identity for an individual, a resource, or a specific party role. One of these three MUST be provided. If an individual is provided, this identity will be for all of their partyRole objects. To avoid confusion, we recommend, in this case, you do not provide partyRoleIdentified.
          properties:
            clientId:
              type: string
              description: >-
                OAuth2 Client ID: A public identifier for apps. Even though it is public, it is best
                that it is not guessable by third parties, so many implementations use something
                like a 32-character hex string.
            redirectUrl:
              type: array
              items:
                type: string
              description: >-
                After a user successfully authorizes an application, the authorization server will
                redirect the user back to the application.
            jwksUri:
              type: string
              description: JSON Web Key (JWK) is a data structure that represents a cryptographic key
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            status:
              type: string
              description: >-
                Used to indicate the current lifecycle status of this digital identity (unknown,
                active, suspended, archived).
            credential:
              type: array
              description: >-
                A list of credential/authentification method that are used for this digital
                identity.
              items:
                $ref: '#/components/schemas/OAuth2ClientCredential'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiDigitalIdentity: '#/components/schemas/ApiDigitalIdentity'
    ApiDigitalIdentity_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            ApiDigitalIdentity is a class that allow to describe a digital identity for an
            individual or a resource or a specific party role. One of these three MUST be provided.
            If an individual is provided, this identity will be for all her/his partyRole. To avoid
            confusion it is recommended in this case to not provide partyRoleIdentified.
          properties:
            clientId:
              type: string
              description: >-
                OAuth2 Client ID: A public identifier for apps. Even though it is public, it is best practice for this to be something that is not guessable by third parties. This means many implementations use a 32-character hex string, or similar.
            redirectUrl:
              type: array
              items:
                type: string
              description: >-
                After a user successfully authorizes an application, the authorization server will
                redirect the user back to the application.
            jwksUri:
              type: string
              description: JSON Web Key (JWK) is a data structure that represents a cryptographic key
      discriminator:
        propertyName: '@type'
        mapping:
          ApiDigitalIdentity: '#/components/schemas/ApiDigitalIdentity_FVO'
    ApiDigitalIdentity_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            ApiDigitalIdentity is a class that allows you to describe a digital identity for an individual, a resource, or a specific party role. One of these three MUST be provided. If an individual is provided, this identity will be for all their partyRole objects. To avoid confusion, we recommend, in this case, you do not provide partyRoleIdentified.
          properties:
            clientId:
              type: string
              description: >-
                OAuth2 Client ID: A public identifier for apps. Even though it is public, it is best practice for this to be something that is not guessable by third parties. This means many implementations use a 32-character hex string, or similar.
            redirectUrl:
              type: array
              items:
                type: string
              description: >-
                After a user successfully authorizes an application, the authorization server will
                redirect the user back to the application.
            jwksUri:
              type: string
              description: JSON Web Key (JWK) is a data structure that represents a cryptographic key
      discriminator:
        propertyName: '@type'
        mapping:
          ApiDigitalIdentity: '#/components/schemas/ApiDigitalIdentity_MVO'
    ApiErrorCodeType:
      pattern: '(((SVC)|(SVR)|(SEC))[0-9]{4})$'
      enum:
        - SVC1000
        - SVC1001
        - SVC1002
        - SVC0005
        - SVC1011
        - SVC1013
        - SEC1003
        - SEC1004
        - SVC1006
        - SVR1000
        - SVR1001
        - SVR1002
        - SVR1003
        - SVR1004
        - SVR1005
        - SVR1006
        - SVR1007
        - SVR1008
        - SVR1009
      type: string
      description: Valid values for the code of the API Errors.
    ApiErrorReasonType:
      enum:
        - INVALID ARGUMENT
        - CONFLICT
        - OUT_OF_RANGE
        - PERMISSION_DENIED
        - ABORTED
        - ALREADY_EXISTS
        - NOT_FOUND
        - UNAUTHENTICATED
        - TOO_MANY_REQUESTS
        - AUTHENTICATION_REQUIRED
        - FAILED_PRECONDITION
        - DATA_LOSS
        - INTERNAL
        - BAD_GATEWAY
        - UNAVAILABLE
        - TIMEOUT
        - NOT_IMPLEMENTED
        - METHOD_NOT_ALLOWED
        - NOT_ACCEPTABLE
        - UNSUPPORTED_MEDIA_TYPE
      type: string
      description: Valid values for the cause of the API Errors.
    ApiGrantInformation:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: A set of ApiProductCharacteristics grouped together for granting usage.
          properties:
            purpose:
              type: string
              description: >
                Purpose of the API. Value must be one in the following W3C list:
                https://w3c.github.io/dpv/dpv/#vocab-purpose, as stated in the API
                ProductSpecification. \

                All the possibilities are defined on ApiPurposeType schema. \

                Examples:
                  "AcademicResearch" \
                  "AccountManagement" \
                  "Advertising" \
                  "AntiTerrorismOperations" \
                  "CommercialResearch" \
                  "CommunicationForCustomerCare" \
                  "CommunicationManagement" \
                  "CounterMoneyLaundering" \
                  "CreditChecking" \
                  "CustomerCare" \
                    ...
            scope:
              type: array
              items:
                type: string
              description: |
                One or several scopes of the API, as stated in the API ProductSpecification. \
                Examples:
                  "sim-swap:retrieve-date" 
            grantType:
              type: array
              items:
                type: string
              description: |
                One or several grantType of the API, as stated in the API ProductSpecification. \
                Examples:
                  "authorization_code" \
                  "client_credentials" \
                  "urn:ietf:params:oauth:grant-type:token-exchange" \
                  "urn:ietf:params:oauth:grant-type:jwt-bearer" \
                  "urn:ietf:params:oauth:grant-type:saml2-bearer" \
                  "urn:ietf:params:oauth:grant-type:device_code" \
                  "urn:openid:params:grant-type:ciba" \
                    ...
            legalBasis:
              type: string
              description: |
                One or several legal basis for the API use. \
                Examples as given by W3C:
                  "dpv:Consent" \
                  "dpv:LegitimateInterest" \
                  "dpv:DataTransferLegalBasis" \
                  "dpv:LegitimateInterestOfDataSubject" \
                  "dpv:LegalObligation" \
                  "dpv:PublicInterest" \
                  "dpv:VitalInterest" \
                  "dpv:OfficialAuthorityOfController" \
                    ...
      discriminator:
        propertyName: '@type'
        mapping:
          ApiGrantInformation: '#/components/schemas/ApiGrantInformation'
    ApiListAssetGroup:
      allOf:
        - $ref: '#/components/schemas/AssetGroup'
        - type: object
          description: Defines a group of API assets to which access can be controlled
          properties:
            apiProduct:
              type: array
              items:
                $ref: '#/components/schemas/ProductRef'
              description: The list of permissions in this set
    ApiListAssetGroup_FVO:
      allOf:
        - $ref: '#/components/schemas/AssetGroup_FVO'
        - type: object
          description: Defines a group of API assets to which access can be controlled
          properties:
            apiProduct:
              type: array
              items:
                $ref: '#/components/schemas/ProductRef_FVO'
              description: The list of permissions in this set
    ApiListAssetGroup_MVO:
      allOf:
        - $ref: '#/components/schemas/AssetGroup_MVO'
        - type: object
          description: Defines a group of API assets to which access can be controlled
          properties:
            apiProduct:
              type: array
              items:
                $ref: '#/components/schemas/ProductRef'
              description: The list of permissions in this set
    ApiPermissionSet:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            The PermissionSet is a set of Permissions granted to a user (party, party role or
            resource). The set may be granted explicitly by an authorized user or may be acquired
            implicitly due to the role that the user is playing.
          properties:
            creationDate:
              type: string
              format: date-time
              description: Date when the PermissionSet was created and assigned to a user
            description:
              type: string
              description: Text describing the permission set
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            permission:
              $ref: '#/components/schemas/ApiConsumerPermission'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiPermissionSet: '#/components/schemas/ApiPermissionSet'
    ApiPermissionSet_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            The PermissionSet is a set of Permissions granted to a user (party, party role or
            resource). The set may be granted explicitly by an authorized user or may be acquired
            implicitly due to the role that the user is playing.
          properties:
            creationDate:
              type: string
              format: date-time
              description: Date when the PermissionSet was created and assigned to a user
            description:
              type: string
              description: Text describing the permission set
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            permission:
              $ref: '#/components/schemas/ApiConsumerPermission_FVO'
          required:
            - creationDate
            - permission
            - description
      discriminator:
        propertyName: '@type'
        mapping:
          ApiPermissionSet: '#/components/schemas/ApiPermissionSet_FVO'
    ApiPermissionSet_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            The PermissionSet is a set of Permissions granted to a user (party, party role or
            resource). The set may be granted explicitly by an authorized user or may be acquired
            implicitly due to the role that the user is playing.
          properties:
            creationDate:
              type: string
              format: date-time
              description: Date when the PermissionSet was created and assigned to a user
            description:
              type: string
              description: Text describing the permission set
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            permission:
              $ref: '#/components/schemas/ApiConsumerPermission_MVO'
          required:
            - creationDate
            - permission
      discriminator:
        propertyName: '@type'
        mapping:
          ApiPermissionSet: '#/components/schemas/ApiPermissionSet_MVO'
    ApiProduct:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            A product offering procured by a customer or other interested party playing a party
            role. A product is realized as one or more service(s) and / or resource(s).
          properties:
            name:
              type: string
              description: Name of the product. It could be the same as the name of the product offering
            description:
              type: string
              description: >-
                The description of the product. It could be same description as the Product Offering.
            productOffering:
              $ref: '#/components/schemas/ProductOfferingRef'
            productSpecification:
              $ref: '#/components/schemas/ProductSpecificationRef'
            apiName:
              type: string
              description: Standardized name of the API.
            apiVersionDetails:
              type: array
              items:
                $ref: '#/components/schemas/ApiVersionDetails'
            productOrderItem:
              type: array
              items:
                $ref: '#/components/schemas/RelatedOrderItem'
            approvedProductOfferingTermOrCondition:
              type: array
              items:
                $ref: '#/components/schemas/ProductOfferingTermOrCondition'
            status:
              $ref: '#/components/schemas/ProductStatusType'
            creationDate:
              type: string
              format: date-time
              description: Date and time when the product was created
            startDate:
              type: string
              format: date-time
              description: The date from which the product starts.
            orderDate:
              type: string
              format: date-time
              description: The date when the product was ordered.
            terminationDate:
              type: string
              format: date-time
              description: The date when the product was terminated.
            channelPartner:
              $ref: '#/components/schemas/PartyRoleRef'
            agreementItem:
              type: array
              items:
                $ref: '#/components/schemas/AgreementItemRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProduct: '#/components/schemas/ApiProduct'
    ApiProductActionAdd:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            An ApiProductActionAdd is a specialization of a ProductAction, in-line with the GSMA Open GW action to add a product.
          properties:
            purpose:
              type: string
              description: >
                urpose of the API. Value must be one in the following W3C list :
                https://w3c.github.io/dpv/dpv/#vocab-purpose, as stated in the API
                ProductSpecification. \

                All the possibilities are defined on ApiPurposeType. \

                Examples:
                  "AcademicResearch" \
                  "AccountManagement" \
                  "Advertising" \
                  "AntiTerrorismOperations" \
                  "CommercialResearch" \
                  "CommunicationForCustomerCare" \
                  "CommunicationManagement" \
                  "CounterMoneyLaundering" \
                  "CreditChecking" \
                  "CustomerCare" \
                    ...
            countryCode:
              type: array
              items:
                $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier'
              description: One or several countries where the APIs are operating.
            targetApplication:
              $ref: '#/components/schemas/ApplicationRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductActionAdd: '#/components/schemas/ApiProductActionAdd'
    ApiProductActionAdd_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            An ApiAn ApiProductActionAdd is a specialization of a ProductAction, in-line with the GSMA Open GW action to add a product.
          properties:
            purpose:
              type: string
              description: >
                Purpose of the API. Value must be one of the W3C list :
                https://w3c.github.io/dpv/dpv/#vocab-purpose, as stated in the API
                ProductSpecification. \

                All the possibilities are defined on ApiPurposeType. \

                Examples:
                  "AcademicResearch" \
                  "AccountManagement" \
                  "Advertising" \
                  "AntiTerrorismOperations" \
                  "CommercialResearch" \
                  "CommunicationForCustomerCare" \
                  "CommunicationManagement" \
                  "CounterMoneyLaundering" \
                  "CreditChecking" \
                  "CustomerCare" \
                    ...
            countryCode:
              type: array
              items:
                $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier_FVO'
              description: One or several countries were API are operated.
            targetApplication:
              $ref: '#/components/schemas/ApplicationRef'
          required:
            - targetApplication
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductActionAdd: '#/components/schemas/ApiProductActionAdd_FVO'
    ApiProductActionModify:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            An ApiProductActionModify is a specialization of a ProductAction, in-line with the GSMA Open GW action to modify a product. The values in the schema shall override the values in the Product; it means if the purpose values were [A,B] then if in the modify productAction the purpose values are [A,C] it means the purpose B will be removed and purpose C will be added.
          properties:
            purpose:
              type: string
              description: >
                Purpose of the API. Value must be one in the following W3C list :
                https://w3c.github.io/dpv/dpv/#vocab-purpose, as stated in the API
                ProductSpecification. \

                All the possibilities are defined on ApiPurposeType. \

                Examples:
                  "AcademicResearch" \
                  "AccountManagement" \
                  "Advertising" \
                  "AntiTerrorismOperations" \
                  "CommercialResearch" \
                  "CommunicationForCustomerCare" \
                  "CommunicationManagement" \
                  "CounterMoneyLaundering" \
                  "CreditChecking" \
                  "CustomerCare" \
                    ...
            countryCode:
              type: array
              items:
                $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier'
              description: One or several countries where the APIs are operating.
            targetApplication:
              $ref: '#/components/schemas/ApplicationRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductActionModify: '#/components/schemas/ApiProductActionModify'
    ApiProductActionModify_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            An ApiProductActionModify is a specialization of a ProductAction, in-line with the GSMA Open GW action to modify a product. The values in the schema shall override the values in the Product; it means if the purpose values were [A,B] then if in the modify productAction the purpose values are [A,C] it means the purpose B will be removed and purpose C will be added.
          properties:
            purpose:
              type: string
              description: >
                Purpose of the API. Value must be one of the W3C list :
                https://w3c.github.io/dpv/dpv/#vocab-purpose, as stated in the API
                ProductSpecification. \

                All the possibilities are defined on ApiPurposeType. \

                Examples:
                  "AcademicResearch" \
                  "AccountManagement" \
                  "Advertising" \
                  "AntiTerrorismOperations" \
                  "CommercialResearch" \
                  "CommunicationForCustomerCare" \
                  "CommunicationManagement" \
                  "CounterMoneyLaundering" \
                  "CreditChecking" \
                  "CustomerCare" \
                    ...
            countryCode:
              type: array
              items:
                $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier_FVO'
              description: One or several countries were API are operated.
            targetApplication:
              $ref: '#/components/schemas/ApplicationRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductActionModify: '#/components/schemas/ApiProductActionModify_FVO'
    ApiProductOrder:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            An ApiProductOrder is a specialization of a TMForum ProductOrder, which can be used to
            place an order between a customer and a service provider or between a service provider
            and a partner and vice versa.
          properties:
            description:
              type: string
              description: Description of the product order
            externalId:
              type: array
              items:
                $ref: '#/components/schemas/ExternalIdentifier'
            productOrderItem:
              type: array
              items:
                $ref: '#/components/schemas/DCSProductOrderItem'
              minItems: 1
            agreement:
              type: array
              description: A reference to an agreement defined in the context of the product order
              items:
                $ref: '#/components/schemas/AgreementRef'
            channelPartner:
              $ref: '#/components/schemas/PartyRoleRef'
            state:
              $ref: '#/components/schemas/ProductOrderStateType'
            creationDate:
              type: string
              format: date-time
              description: Date and time when the ProductOrder was created
            expectedCompletionDate:
              type: string
              format: date-time
              description: Expected delivery date amended by the provider
            completionDate:
              type: string
              format: date-time
              description: Date when the ProductOrder was completed
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductOrder: '#/components/schemas/ApiProductOrder'
    ApiProductOrderAttributeValueChangeEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApiProductOrderAttributeValueChangeEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApiProductOrderAttributeValueChangeEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductOrderAttributeValueChangeEvent: '#/components/schemas/ApiProductOrderAttributeValueChangeEvent'
    ApiProductOrderAttributeValueChangeEventPayload:
      type: object
      description: ApiProductOrderAttributeValueChangeEventPayload
      properties:
        productOrder:
          $ref: '#/components/schemas/ApiProductOrder'
    ApiProductOrderCreateEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApiProductOrderCreateEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApiProductOrderCreateEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductOrderCreateEvent: '#/components/schemas/ApiProductOrderCreateEvent'
    ApiProductOrderCreateEventPayload:
      type: object
      description: ApiProductOrderCreateEventPayload
      properties:
        productOrder:
          $ref: '#/components/schemas/ApiProductOrder'
    ApiProductOrderItemAdd:
      allOf:
        - $ref: '#/components/schemas/DCSProductOrderItem'
        - type: object
          description: >-
            An ApiProductOrderItemAdd is a specialization of a ProductOrderItem, in-line with the GSMA Open GW action to add a product.  An identified part of the order. A product order is decomposed into one or more order items.
          properties:
            id:
              type: string
              description: >-
                Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03,
                ...)
            productOffering:
              $ref: '#/components/schemas/ProductOfferingRef'
            productAction:
              $ref: '#/components/schemas/ApiProductActionAdd'
            approvedProductOfferingTermOrCondition:
              type: array
              items:
                $ref: '#/components/schemas/ProductOfferingTermOrCondition'
            state:
              $ref: '#/components/schemas/ProductOrderItemStateType'
            product:
              $ref: '#/components/schemas/ProductRef'
    ApiProductOrderItemAdd_FVO:
      allOf:
        - $ref: '#/components/schemas/DCSProductOrderItem'
        - type: object
          description: >-
            An ApiProductOrderItemAdd is a specialization of a ProductOrderItem, in-line with the GSMA Open GW action to add a product.  An identified part of the order. A product order is decomposed into one or more order items.
          properties:
            id:
              type: string
              description: >-
                Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03,
                ...)
            productOffering:
              $ref: '#/components/schemas/ProductOfferingRef'
            productAction:
              $ref: '#/components/schemas/ApiProductActionAdd_FVO'
            approvedProductOfferingTermOrCondition:
              type: array
              items:
                $ref: '#/components/schemas/ProductOfferingTermOrCondition_FVO'
    ApiProductOrderItemModify:
      allOf:
        - $ref: '#/components/schemas/DCSProductOrderItem'
        - type: object
          description: >-
            An ApiProductOrderItemModify is a specialization of a ProductOrderItem,  in-line with the GSMA Open GW action to modify a product. An identified part of the order. A product order is decomposed into one or more order items.
          properties:
            id:
              type: string
              description: >-
                Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03,
                ...)
            productAction:
              $ref: '#/components/schemas/ApiProductActionModify'
            approvedProductOfferingTermOrCondition:
              type: array
              items:
                $ref: '#/components/schemas/ProductOfferingTermOrCondition'
            state:
              $ref: '#/components/schemas/ProductOrderItemStateType'
            product:
              $ref: '#/components/schemas/ProductRef'
    ApiProductOrderItemModify_FVO:
      allOf:
        - $ref: '#/components/schemas/DCSProductOrderItem'
        - type: object
          description: >-
            An ApiProductOrderItemModify is a specialization of a ProductOrderItem,  in-line with the GSMA Open GW action to modify a product. An identified part of the order. A product order is decomposed into one or more order items.
          properties:
            id:
              type: string
              description: >-
                Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03,
                ...)
            productAction:
              $ref: '#/components/schemas/ApiProductActionModify_FVO'
            approvedProductOfferingTermOrCondition:
              type: array
              items:
                $ref: '#/components/schemas/ProductOfferingTermOrCondition_FVO'
            product:
              $ref: '#/components/schemas/ProductRef_FVO'
          required:
            - product
    ApiProductOrderStateChangeEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApiProductOrderStateChangeEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApiProductOrderStateChangeEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductOrderStateChangeEvent: '#/components/schemas/ApiProductOrderStateChangeEvent'
    ApiProductOrderStateChangeEventPayload:
      type: object
      description: ApiProductOrderStateChangeEventPayload
      properties:
        productOrder:
          $ref: '#/components/schemas/ApiProductOrder'
    ApiProductOrder_FVO:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            An ApiProductOrder is a specialization of a TMForum ProductOrder, which can be used to
            place an order between a customer and a service provider or between a service provider
            and a partner and vice versa.
          properties:
            description:
              type: string
              description: Description of the product order
            externalId:
              type: array
              items:
                $ref: '#/components/schemas/ExternalIdentifier_FVO'
            productOrderItem:
              type: array
              items:
                $ref: '#/components/schemas/DCSProductOrderItem'
              minItems: 1
            agreement:
              type: array
              description: A reference to an agreement defined in the context of the product order
              items:
                $ref: '#/components/schemas/AgreementRef_FVO'
          required:
            - productOrderItem
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProductOrder: '#/components/schemas/ApiProductOrder_FVO'
    ApiPurposeType:
      enum:
        - AcademicResearch
        - AccountManagement
        - Advertising
        - AntiTerrorismOperations
        - CommercialResearch
        - CommunicationForCustomerCare
        - CommunicationManagement
        - CounterMoneyLaundering
        - CreditChecking
        - CustomerCare
        - CustomerClaimsManagement
        - CustomerManagement
        - CustomerOrderManagement
        - CustomerRelationshipManagement
        - CustomerSolvencyMonitoring
        - DeliveryOfGoods
        - DirectMarketing
        - DisputeManagement
        - EnforceAccessControl
        - EnforceSecurity
        - EstablishContractualAgreement
        - FraudPreventionAndDetection
        - FulfilmentOfContractualObligation
        - FulfilmentOfObligation
        - HumanResourceManagement
        - IdentityVerification
        - ImproveExistingProductsAndServices
        - ImproveInternalCRMProcesses
        - IncreaseServiceRobustness
        - InternalResourceOptimisation
        - LegalCompliance
        - MaintainCreditCheckingDatabase
        - MaintainCreditRatingDatabase
        - MaintainFraudDatabase
        - Marketing
        - MemberPartnerManagement
        - NonCommercialResearch
        - OptimisationForConsumer
        - OptimisationForController
        - OptimiseUserInterface
        - OrganisationComplianceManagement
        - OrganisationGovernance
        - OrganisationRiskManagement
        - PaymentManagement
        - Personalisation
        - PersonalisedAdvertising
        - PersonalisedBenefits
        - PersonnelHiring
        - PersonnelManagement
        - PersonnelPayment
        - ProvideEventRecommendations
        - ProvidePersonalisedRecommendations
        - ProvideProductRecommendations
        - PublicRelations
        - Purpose
        - RecordManagement
        - RepairImpairments
        - RequestedServiceProvision
        - ResearchAndDevelopment
        - SearchFunctionalities
        - Sector
        - SellDataToThirdParties
        - SellInsightsFromData
        - SellProducts
        - SellProductsToDataSubject
        - ServiceOptimisation
        - ServicePersonalisation
        - ServiceProvision
        - ServiceRegistration
        - ServiceUsageAnalytics
        - SocialMediaMarketing
        - TargetedAdvertising
        - TechnicalServiceProvision
        - UserInterfacePersonalisation
        - VendorManagement
        - VendorPayment
        - VendorRecordsManagement
        - VendorSelectionAssessment
      type: string
      description: Valid values for the purpose of the API product.
    ApiVersionDetails:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: A set of ApiProduct characteristics grouped together by a major version of an API's specification.
          properties:
            apiMajorVersion:
              type: integer
              description: Major version of the API standard specification.
            basePath:
              type: string
              description: Base path of the API.
            countryCode:
              $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier'
            apiGrantInformation:
              type: array
              items:
                $ref: '#/components/schemas/ApiGrantInformation'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiVersionDetails: '#/components/schemas/ApiVersionDetails'
    Application:
      allOf:
        - $ref: '#/components/schemas/LogicalResource'
        - type: object
          description: >-
            An Application is a type of LogicalResource, which is a category of resources that defines a common set of attributes shared by all specific logical resources in the inventory, such as TPE, MSISDN, and IP Addresses.

          properties:
            commercialName:
              type: string
              description: Exact name of the Application as marketed (and known by the end-user).
            logoUrl:
              type: string
              description: Url to retrieve the Application official logo.
            privacyPolicyURL:
              type: string
              description: 'Url to Application privacy policy, if applicable.'
            category:
              type: string
              description: >-
                The category of the Application. Possible values are described in
                ApplicationCategoryType schema.
            approvalStatus:
              $ref: '#/components/schemas/ApprovalStatusType'
            approvalStatusReason:
              type: string
              description: The reason why the approval status changed.
            applicationOwner:
              $ref: '#/components/schemas/PartyRoleRef'
            channelPartner:
              $ref: '#/components/schemas/PartyRoleRef'
            digitalIdentity:
              $ref: '#/components/schemas/ApiDigitalIdentity'
            apiConsumerRole:
              type: array
              items:
                $ref: '#/components/schemas/LogicalResourceRole'
              description: 'Each GSMA Service-API plays a role, and has specific permissions for use'
    ApplicationApprovalStatusChangeEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApplicationApprovalStatusChangeEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApplicationApprovalStatusChangeEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationApprovalStatusChangeEvent: '#/components/schemas/ApplicationApprovalStatusChangeEvent'
    ApplicationApprovalStatusChangeEventPayload:
      type: object
      description: ApplicationApprovalStatusChangeEventPayload
      properties:
        application:
          $ref: '#/components/schemas/Application'
    ApplicationAttributeValueChangeEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApplicationAttributeValueChangeEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApplicationAttributeValueChangeEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationAttributeValueChangeEvent: '#/components/schemas/ApplicationAttributeValueChangeEvent'
    ApplicationAttributeValueChangeEventPayload:
      type: object
      description: ApplicationAttributeValueChangeEventPayload
      properties:
        application:
          $ref: '#/components/schemas/Application'
    ApplicationCategoryType:
      enum:
        - artAndDesign
        - autoAndVehicle
        - beauty
        - booksAndReference
        - business
        - developerTools
        - education
        - eventsAndEntertainment
        - finance
        - foodAndDrink
        - games
        - healthAndFitness
        - kids
        - librariesAndDemo
        - lifestyle
        - mapsAndNavigation
        - medical
        - musicAndAudio
        - newsAndMagazines
        - photoAndVideo
        - productivity
        - shopping
        - socialNetworkingAndCommunications

        - sports
        - utilities
        - travelAndLocal
        - weather
      type: string
      description: >-
        Valid values for the category of the Application. Please refer to the main Application stores in order to retrieve a more precise definition of the categories.
    ApplicationCreateEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApplicationCreateEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApplicationCreateEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationCreateEvent: '#/components/schemas/ApplicationCreateEvent'
    ApplicationCreateEventPayload:
      type: object
      description: ApplicationCreateEventPayload
      properties:
        application:
          $ref: '#/components/schemas/Application'
    ApplicationOwner:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Application Owner. Application Owner represents the legal representative of the
            organization in a given context.
          properties:
            name:
              type: string
              description: >-
                A word, term, or phrase by which the ApplicationOwner is known and distinguished
                from other PartyRoles. It's the name of the ApplicationOwner unique entity.
            description:
              type: string
              description: A description of the ApplicationOwner.
            engagedParty:
              $ref: '#/components/schemas/ApplicationOwnerOrganization'
            channelPartner:
              $ref: '#/components/schemas/PartyRoleRef'
            approvalStatus:
              $ref: '#/components/schemas/ApprovalStatusType'
            approvalStatusReason:
              type: string
              description: The reason why the approval status changed.
            status:
              $ref: '#/components/schemas/ApplicationOwnerStatusType'
            statusReason:
              type: string
              description: >-
                A string providing an explanation of the value of the status lifecycle. For instance if the status is Rejected, statusReason will provide the reason for rejection.
            validFor:
              $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwner: '#/components/schemas/ApplicationOwner'
    ApplicationOwnerApprovalStatusChangeEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApplicationOwnerApprovalStatusChangeEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApplicationOwnerApprovalStatusChangeEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerApprovalStatusChangeEvent: '#/components/schemas/ApplicationOwnerApprovalStatusChangeEvent'
    ApplicationOwnerApprovalStatusChangeEventPayload:
      type: object
      description: ApplicationOwnerApprovalStatusChangeEventPayload
      properties:
        applicationOwner:
          $ref: '#/components/schemas/ApplicationOwner'
    ApplicationOwnerAttributeValueChangeEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApplicationOwnerAttributeValueChangeEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApplicationOwnerAttributeValueChangeEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerAttributeValueChangeEvent: '#/components/schemas/ApplicationOwnerAttributeValueChangeEvent'
    ApplicationOwnerAttributeValueChangeEventPayload:
      type: object
      description: ApplicationOwnerAttributeValueChangeEventPayload
      properties:
        applicationOwner:
          $ref: '#/components/schemas/ApplicationOwner'
    ApplicationOwnerCreateEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: ApplicationOwnerCreateEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/ApplicationOwnerCreateEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerCreateEvent: '#/components/schemas/ApplicationOwnerCreateEvent'
    ApplicationOwnerCreateEventPayload:
      type: object
      description: ApplicationOwnerCreateEventPayload
      properties:
        applicationOwner:
          $ref: '#/components/schemas/ApplicationOwner'
    ApplicationOwnerOrganization:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            Application Organization represents a group of people identified by shared interests or
            purpose. Examples include business, department and enterprise. Because of the complex
            nature of many businesses, both organizations and organization units are represented by
            the same data.
          properties:
            name:
              type: string
              description: Organization name (department name for example)
            nameType:
              type: string
              description: 'Type of the name : Co, Inc, Ltd, etc.'
            tradingName:
              type: string
              description: Name that the organization (unit) trades under
            organizationType:
              type: string
              description: 'Type of Organization (company, department...)'
            organizationIdentification:
              type: array
              items:
                $ref: '#/components/schemas/OrganizationIdentification'
              description: >-
                List of official identifiers given to the organization, for example company number
                in the registry of companies
            isLegalEntity:
              type: boolean
              description: >-
                If value is true, the organization is a legal entity known by a national
                referential.
            externalReference:
              type: array
              items:
                $ref: '#/components/schemas/ExternalIdentifier'
              description: >-
                List of identifiers of the Party in an external system, for example when party
                information is imported from a commerce system
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium'
              description: 'List of ways to contact the party, e.g. mobile phone, email address'
            legalRepresentative:
              $ref: '#/components/schemas/ApplicationOwnerRelatedIndividual'
            dataProtectionOfficer:
              $ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole'
            privacyManager:
              $ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole'
            registeredGeographicAddress:
              $ref: '#/components/schemas/LightGeographicAddress'
            taxNumber:
              type: string
              description: Tax number of the Organization in the country
            privacyPolicyURL:
              type: string
              description: Url to privacy policy.
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerOrganization: '#/components/schemas/ApplicationOwnerOrganization'
    ApplicationOwnerOrganization_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            Application Organization represents a group of people identified by shared interests or
            purpose. Examples include business, department and enterprise. Because of the complex
            nature of many businesses, both organizations and organization units are represented by
            the same data.
          properties:
            name:
              type: string
              description: Organization name (department name for example)
            nameType:
              type: string
              description: 'Type of the name : Co, Inc, Ltd, etc.'
            tradingName:
              type: string
              description: Name that the organization (unit) trades under
            organizationType:
              type: string
              description: 'Type of Organization (company, department...)'
            organizationIdentification:
              type: array
              items:
                $ref: '#/components/schemas/OrganizationIdentification_FVO'
              description: >-
                List of official identifiers given to the organization, for example company number
                in the registry of companies
            isLegalEntity:
              type: boolean
              description: >-
                If value is true, the organization is a legal entity known by a national
                referential.
            externalReference:
              type: array
              items:
                $ref: '#/components/schemas/ExternalIdentifier_FVO'
              description: >-
                List of identifiers of the Party in an external system, for example when party
                information is imported from a commerce system
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium_FVO'
              description: 'List of means for contacting the party, e.g. mobile phone, email address'
            legalRepresentative:
              $ref: '#/components/schemas/ApplicationOwnerRelatedIndividual_FVO'
            dataProtectionOfficer:
              $ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_FVO'
            privacyManager:
              $ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_FVO'
            registeredGeographicAddress:
              $ref: '#/components/schemas/LightGeographicAddress_FVO'
            taxNumber:
              type: string
              description: Tax number of the Organization in the country
            privacyPolicyURL:
              type: string
              description: Url to privacy policy.
          required:
            - contactMedium
            - name
            - organizationIdentification
            - registeredGeographicAddress
            - taxNumber
            - tradingName
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerOrganization: '#/components/schemas/ApplicationOwnerOrganization_FVO'
    ApplicationOwnerOrganization_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            Application Organization represents a group of people identified by shared interests or
            purpose. Examples include business, department and enterprise. Because of the complex
            nature of many businesses, both organizations and organization units are represented by
            the same data.
          properties:
            name:
              type: string
              description: Organization name (department name for example)
            nameType:
              type: string
              description: 'Type of the name : Co, Inc, Ltd, etc.'
            tradingName:
              type: string
              description: Name that the organization (unit) trades under
            organizationType:
              type: string
              description: 'Type of Organization (company, department...)'
            organizationIdentification:
              type: array
              items:
                $ref: '#/components/schemas/OrganizationIdentification_MVO'
              description: >-
                List of official identifiers given to the organization, for example company number
                in the registry of companies
            isLegalEntity:
              type: boolean
              description: >-
                If value is true, the organization is a legal entity known by a national
                referential.
            externalReference:
              type: array
              items:
                $ref: '#/components/schemas/ExternalIdentifier_MVO'
              description: >-
                List of identifiers of the Party in an external system, for example when party
                information is imported from a commerce system
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium_MVO'
              description: 'List of ways to contact the party, e.g. mobile phone, email address'
            legalRepresentative:
              $ref: '#/components/schemas/ApplicationOwnerRelatedIndividual_MVO'
            dataProtectionOfficer:
              $ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_MVO'
            privacyManager:
              $ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_MVO'
            registeredGeographicAddress:
              $ref: '#/components/schemas/LightGeographicAddress_MVO'
            taxNumber:
              type: string
              description: Tax number of the Organization in the country
            privacyPolicyURL:
              type: string
              description: Url to privacy policy.
          required:
            - contactMedium
            - name
            - organizationIdentification
            - registeredGeographicAddress
            - taxNumber
            - tradingName
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerOrganization: '#/components/schemas/ApplicationOwnerOrganization_MVO'
    ApplicationOwnerPartyOrPartyRole:
      type: object
      description: ''
      oneOf:
        - $ref: '#/components/schemas/ApplicationOwnerRelatedIndividual'
        - $ref: '#/components/schemas/ApplicationOwnerRelatedOrganization'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual'
          ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization'
    ApplicationOwnerPartyOrPartyRole_FVO:
      type: object
      description: ''
      oneOf:
        - $ref: '#/components/schemas/ApplicationOwnerRelatedIndividual_FVO'
        - $ref: '#/components/schemas/ApplicationOwnerRelatedOrganization_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual_FVO'
          ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization_FVO'
    ApplicationOwnerPartyOrPartyRole_MVO:
      type: object
      description: ''
      oneOf:
        - $ref: '#/components/schemas/ApplicationOwnerRelatedIndividual_MVO'
        - $ref: '#/components/schemas/ApplicationOwnerRelatedOrganization_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual_MVO'
          ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization_MVO'
    ApplicationOwnerRelatedIndividual:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            ApplicationOwnerRelatedIndividual represents a single human being (a man, woman or
            child). The individual can be a customer, an employee or any other person that the
            organization needs to store information about.
          properties:
            familyName:
              type: string
              description: >-
                Contains the non-chosen or inherited name. Also known as last name in the Western
                context
            givenName:
              type: string
              description: First name of the individual
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium'
              description: 'List of ways to contact the party, e.g. mobile phone, email address'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual'
    ApplicationOwnerRelatedIndividual_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            ApplicationOwnerRelatedIndividual represents a single human being (a man, woman or
            child). The individual can be a customer, an employee or any other person that the
            organization needs to store information about.
          properties:
            familyName:
              type: string
              description: >-
                Contains the non-chosen or inherited name. Also known as last name in the Western
                context
            givenName:
              type: string
              description: First name of the individual
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium_FVO'
              description: 'List of means for contacting the party, e.g. mobile phone, email address'
          required:
            - familyName
            - givenName
            - contactMedium
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual_FVO'
    ApplicationOwnerRelatedIndividual_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            ApplicationOwnerRelatedIndividual represents a single human being (a man, woman or
            child). The individual can be a customer, an employee or any other person that the
            organization needs to store information about.
          properties:
            familyName:
              type: string
              description: >-
                Contains the non-chosen or inherited name. Also known as last name in the Western
                context
            givenName:
              type: string
              description: First name of the individual
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium_MVO'
              description: 'List of means for contacting the party, e.g. mobile phone, email address'
          required:
            - familyName
            - givenName
            - contactMedium
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual_MVO'
    ApplicationOwnerRelatedOrganization:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            Application Organization represents a group of people identified by shared interests or
            purpose. Examples include business, department and enterprise. Because of the complex
            nature of many businesses, both organizations and organization units are represented by
            the same data.
          properties:
            name:
              type: string
              description: Organization name (department name for example)
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium'
              description: 'List of means for contacting the party, e.g. mobile phone, email address'
            organizationType:
              type: string
              description: 'Type of Organization (company, department...)'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization'
    ApplicationOwnerRelatedOrganization_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            Application Organization represents a group of people identified by shared interests or
            purpose. Examples include business, department and enterprise. Because of the complex
            nature of many businesses, both organizations and organization units are represented by
            the same data.
          properties:
            name:
              type: string
              description: Organization name (department name for example)
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium_FVO'
              description: 'List of means for contacting the party, e.g. mobile phone, email address'
            organizationType:
              type: string
              description: 'Type of Organization (company, department...)'
          required:
            - name
            - contactMedium
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization_FVO'
    ApplicationOwnerRelatedOrganization_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            Application Organization represents a group of people identified by shared interests or
            purpose. Examples include business, department and enterprise. Because of the complex
            nature of many businesses, both organizations and organization units are represented by
            the same data.
          properties:
            name:
              type: string
              description: Organization name (department name for example)
            contactMedium:
              type: array
              items:
                $ref: '#/components/schemas/ContactMedium_MVO'
              description: 'List of means for contacting the party, e.g. mobile phone, email address'
            organizationType:
              type: string
              description: 'Type of Organization (company, department...)'
          required:
            - name
            - contactMedium
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization_MVO'
    ApplicationOwnerStatusType:
      enum:
        - active
        - inactive
      type: string
      description: >-
        Used to track the lifecycle status of the ApplicationOwner in Channel Partner IT. So this
        attribute is allowed to be contributed by the Channel Partner and patchable..
    ApplicationOwner_FVO:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Application Owner. Application Owner represents the legal representative of the
            organization in a given context.
          properties:
            name:
              type: string
              description: >-
                A word, term, or phrase by which the ApplicationOwner is known and distinguished
                from other PartyRoles. It's the name of the ApplicationOwner unique entity.
            description:
              type: string
              description: A description of the ApplicationOwner.
            engagedParty:
              $ref: '#/components/schemas/ApplicationOwnerOrganization_FVO'
          required:
            - engagedParty
            - name
            - description
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwner: '#/components/schemas/ApplicationOwner_FVO'
    ApplicationOwner_MVO:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Application Owner. Application Owner represents the legal representative of the
            organization in a given context.
          properties:
            name:
              type: string
              description: >-
                A word, term, or phrase by which the ApplicationOwner is known and distinguished
                from other PartyRoles. It's the name of the ApplicationOwner unique entity.
            description:
              type: string
              description: A description of the ApplicationOwner.
            engagedParty:
              $ref: '#/components/schemas/ApplicationOwnerOrganization_MVO'
            status:
              $ref: '#/components/schemas/ApplicationOwnerStatusType'
            statusReason:
              type: string
              description: >-
                A string providing an explanation on the value of the status lifecycle. For instance
                if the status is Rejected, statusReason will provide the reason for rejection.
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationOwner: '#/components/schemas/ApplicationOwner_MVO'
    ApplicationRef:
      type: object
      description: Reference to an Application.
      allOf:
        - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ApplicationRef: '#/components/schemas/ApplicationRef'
    Application_FVO:
      allOf:
        - $ref: '#/components/schemas/LogicalResource_FVO'
        - type: object
          description: >-
            An Application is a kind-of LogicalResource is a type of resource that describes the
            common set of attributes shared by all concrete logical resources (e.g. TPE, MSISDN, IP
            Addresses) in the inventory.
          properties:
            commercialName:
              type: string
              description: Exact name of the Application as marketed (and known by the end-user).
            logoUrl:
              type: string
              description: Url to retrieve the Application official logo.
            privacyPolicyURL:
              type: string
              description: 'Url to the Application privacy policy, if applicable.'
            category:
              type: string
              description: >-
                The category of the Application. Possible values are described in
                ApplicationCategoryType schema.
            applicationOwner:
              $ref: '#/components/schemas/PartyRoleRef_FVO'
            digitalIdentity:
              $ref: '#/components/schemas/ApiDigitalIdentity_FVO'
          required:
            - applicationOwner
            - commercialName
    Application_MVO:
      allOf:
        - $ref: '#/components/schemas/LogicalResource_MVO'
        - type: object
          description: >-
            An Application is a kind-of LogicalResource is a type of resource that describes the
            common set of attributes shared by all concrete logical resources (e.g. TPE, MSISDN, IP
            Addresses) in the inventory.
          properties:
            commercialName:
              type: string
              description: Exact name of the Application as marketed (and known by the end-user).
            logoUrl:
              type: string
              description: Url to retrieve the Application official logo.
            privacyPolicyURL:
              type: string
              description: 'Url to Application privacy policy, if applicable.'
            category:
              type: string
              description: >-
                The category of the Application. Possible values are described in
                ApplicationCategoryType schema.
            approvalStatusReason:
              type: string
              description: The reason why the approval status changed.
            digitalIdentity:
              $ref: '#/components/schemas/ApiDigitalIdentity_MVO'
    ApprovalStatusType:
      enum:
        - pendingApproval
        - approved
        - rejected
      type: string
      description: Valid values for an approvalStatus in the context of an approval process.
    AssetGroup:
      type: object
      description: >-
        Defines a group of assets (entities) to which access can be controlled. Specific subclasses
        allow definition in various ways (list of entities, queries, ownership by customer, etc.).
        AssetGroup is not a managed entity, its concrete subclasses are always included by value in
        their containing entities.
      allOf:
        - $ref: '#/components/schemas/Extensible'
      discriminator:
        propertyName: '@type'
        mapping:
          AssetGroup: '#/components/schemas/AssetGroup'
          ApiListAssetGroup: '#/components/schemas/ApiListAssetGroup'
    AssetGroup_FVO:
      type: object
      description: >-
        Defines a group of assets (entities) to which access can be controlled. Specific subclasses
        allow definition in various ways (list of entities, queries, ownership by customer, etc.).
        AssetGroup is not a managed entity, its concrete subclasses are always included by value in
        their containing entities.
      allOf:
        - $ref: '#/components/schemas/Extensible'
      discriminator:
        propertyName: '@type'
        mapping:
          AssetGroup: '#/components/schemas/AssetGroup_FVO'
          ApiListAssetGroup: '#/components/schemas/ApiListAssetGroup_FVO'
    AssetGroup_MVO:
      type: object
      description: >-
        Defines a group of assets (entities) to which access can be controlled. Specific subclasses
        allow definition in various ways (list of entities, queries, ownership by customer, etc.).
        AssetGroup is not a managed entity, its concrete subclasses are always included by value in
        their containing entities.
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          AssetGroup: '#/components/schemas/AssetGroup_MVO'
          ApiListAssetGroup: '#/components/schemas/ApiListAssetGroup_MVO'
    Attachment:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Complements the description of an element (for instance a product) through video,
            pictures...
          properties:
            name:
              type: string
              description: The name of the attachment
            description:
              type: string
              description: A narrative text describing the content of the attachment
              example: Photograph of the Product
            url:
              type: string
              description: 'Uniform Resource Locator, is a web page address (a subset of URI)'
              example: 'http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f'
            content:
              type: string
              format: base64
              description: 'The actual contents of the attachment object, if embedded, encoded as base64'
            size:
              $ref: '#/components/schemas/Quantity'
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            attachmentType:
              type: string
              description: >-
                a business characterization of the purpose of the attachment, for example logo,
                instructionManual, contractCopy
            mimeType:
              type: string
              description: a technical characterization of the attachment content format using IETF Mime Types
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment'
    AttachmentRef:
      allOf:
        - $ref: '#/components/schemas/EntityRef'
        - type: object
          description: >-
            Attachment reference. An attachment complements the description of an element (for
            instance a product) through video, pictures
          properties:
            description:
              type: string
              description: A narrative text describing the content of the attachment
            url:
              description: Link to the attachment media/content
              type: string
      discriminator:
        propertyName: '@type'
        mapping:
          AttachmentRef: '#/components/schemas/AttachmentRef'
    AttachmentRefOrValue:
      type: object
      description: >-
        The polymorphic attributes @type, @schemaLocation & @referredType are related to the
        Attachment entity and not the AttachmentRefOrValue class itself
      oneOf:
        - $ref: '#/components/schemas/Attachment'
        - $ref: '#/components/schemas/AttachmentRef'
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment'
          AttachmentRef: '#/components/schemas/AttachmentRef'
    AttachmentRefOrValue_FVO:
      type: object
      description: >-
        The polymorphic attributes @type, @schemaLocation & @referredType are related to the
        Attachment entity and not the AttachmentRefOrValue class itself
      oneOf:
        - $ref: '#/components/schemas/Attachment_FVO'
        - $ref: '#/components/schemas/AttachmentRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_FVO'
          AttachmentRef: '#/components/schemas/AttachmentRef_FVO'
    AttachmentRefOrValue_MVO:
      type: object
      description: >-
        The polymorphic attributes @type, @schemaLocation & @referredType are related to the
        Attachment entity and not the AttachmentRefOrValue class itself
      oneOf:
        - $ref: '#/components/schemas/Attachment_MVO'
        - $ref: '#/components/schemas/AttachmentRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_MVO'
          AttachmentRef: '#/components/schemas/AttachmentRef_MVO'
    AttachmentRef_FVO:
      allOf:
        - $ref: '#/components/schemas/EntityRef_FVO'
        - type: object
          description: >-
            Attachment reference. An attachment complements the description of an element (for
            instance a product) through video, pictures
          properties:
            description:
              type: string
              description: A narrative text describing the content of the attachment
            url:
              description: Link to the attachment media/content
              type: string
      discriminator:
        propertyName: '@type'
        mapping:
          AttachmentRef: '#/components/schemas/AttachmentRef_FVO'
    AttachmentRef_MVO:
      allOf:
        - $ref: '#/components/schemas/EntityRef_MVO'
        - type: object
          description: >-
            Attachment reference. An attachment complements the description of an element (for
            instance a product) through video, pictures
          properties:
            description:
              type: string
              description: A narrative text describing the content of the attachment
            url:
              description: Link to the attachment media/content
              type: string
      discriminator:
        propertyName: '@type'
        mapping:
          AttachmentRef: '#/components/schemas/AttachmentRef_MVO'
    Attachment_FVO:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Complements the description of an element (for instance a product) through video,
            pictures...
          properties:
            name:
              type: string
              description: The name of the attachment
            description:
              type: string
              description: A narrative text describing the content of the attachment
              example: Photograph of the Product
            url:
              type: string
              description: 'Uniform Resource Locator, is a web page address (a subset of URI)'
              example: 'http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f'
            content:
              type: string
              format: base64
              description: 'The actual contents of the attachment object, if embedded, encoded as base64'
            size:
              $ref: '#/components/schemas/Quantity'
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            attachmentType:
              type: string
              description: >-
                a business characterization of the purpose of the attachment, for example logo,
                instructionManual, contractCopy
            mimeType:
              type: string
              description: a technical characterization of the attachment content format using IETF Mime Types
          required:
            - attachmentType
            - mimeType
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_FVO'
    Attachment_MVO:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Complements the description of an element (for instance a product) through video,
            pictures...
          properties:
            name:
              type: string
              description: The name of the attachment
            description:
              type: string
              description: A narrative text describing the content of the attachment
              example: Photograph of the Product
            url:
              type: string
              description: 'Uniform Resource Locator, is a web page address (a subset of URI)'
              example: 'http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f'
            content:
              type: string
              format: base64
              description: 'The actual contents of the attachment object, if embedded, encoded as base64'
            size:
              $ref: '#/components/schemas/Quantity'
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            attachmentType:
              type: string
              description: >-
                a business characterization of the purpose of the attachment, for example logo,
                instructionManual, contractCopy
            mimeType:
              type: string
              description: a technical characterization of the attachment content format using IETF Mime Types
      discriminator:
        propertyName: '@type'
        mapping:
          Attachment: '#/components/schemas/Attachment_MVO'
    BaseEvent:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: Base event with common attributes.
          properties:
            event:
              type: object
            eventId:
              type: string
              description: The identifier of the notification.
            eventTime:
              type: string
              format: date-time
              description: Time of the event occurrence.
            eventType:
              type: string
              description: The type of the notification.
            correlationId:
              type: string
              description: The correlation id for this event.
            domain:
              type: string
              description: The domain of the event.
            title:
              type: string
              description: The title of the event.
            description:
              type: string
              description: An explanatory of the event.
            priority:
              type: string
              description: A priority.
            timeOcurred:
              type: string
              format: date-time
              description: The time the event occured.
      discriminator:
        propertyName: '@type'
        mapping:
          BaseEvent: '#/components/schemas/BaseEvent'
    Characteristic:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Describes a given characteristic of an object or entity through a name/value pair.
          properties:
            id:
              type: string
              description: Unique identifier of the characteristic
            name:
              type: string
              description: Name of the characteristic
            valueType:
              type: string
              description: Data type of the value of the characteristic
            characteristicRelationship:
              type: array
              items:
                $ref: '#/components/schemas/CharacteristicRelationship'
      discriminator:
        propertyName: '@type'
        mapping:
          Characteristic: '#/components/schemas/Characteristic'
    CharacteristicRelationship:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Another Characteristic that is related to the current Characteristic;
          properties:
            id:
              type: string
              description: Unique identifier of the characteristic
            relationshipType:
              type: string
              description: The type of relationship
      discriminator:
        propertyName: '@type'
        mapping:
          CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship'
    ContactMedium:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Indicates the contact medium that could be used to contact the party.
          properties:
            id:
              type: string
              description: Identifier for this contact medium.
            preferred:
              type: boolean
              description: 'If true, indicates that is the preferred contact medium'
            contactType:
              type: string
              description: >-
                This specifies the type of contact medium, such as professional or personal email, rather than defining the actual contact medium used.
            validFor:
              $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          ContactMedium: '#/components/schemas/ContactMedium'
          EmailContactMedium: '#/components/schemas/EmailContactMedium'
          FaxContactMedium: '#/components/schemas/FaxContactMedium'
          GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium'
          PhoneContactMedium: '#/components/schemas/PhoneContactMedium'
          SocialContactMedium: '#/components/schemas/SocialContactMedium'
    ContactMedium_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Indicates the contact medium that could be used to contact the party.
          properties:
            preferred:
              type: boolean
              description: 'If true, indicates that is the preferred contact medium'
            contactType:
              type: string
              description: >-
                This specifies the type of contact medium, such as professional or personal email, rather than defining the actual contact medium used.
            validFor:
              $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          ContactMedium: '#/components/schemas/ContactMedium_FVO'
          EmailContactMedium: '#/components/schemas/EmailContactMedium_FVO'
          FaxContactMedium: '#/components/schemas/FaxContactMedium_FVO'
          GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium_FVO'
          PhoneContactMedium: '#/components/schemas/PhoneContactMedium_FVO'
          SocialContactMedium: '#/components/schemas/SocialContactMedium_FVO'
    ContactMedium_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: Indicates the contact medium that could be used to contact the party.
          properties:
            preferred:
              type: boolean
              description: 'If true, indicates that is the preferred contact medium'
            contactType:
              type: string
              description: >-
                This specifies the type of contact medium, such as professional or personal email, rather than defining the actual contact medium used.
            validFor:
              $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          ContactMedium: '#/components/schemas/ContactMedium_MVO'
          EmailContactMedium: '#/components/schemas/EmailContactMedium_MVO'
          FaxContactMedium: '#/components/schemas/FaxContactMedium_MVO'
          GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium_MVO'
          PhoneContactMedium: '#/components/schemas/PhoneContactMedium_MVO'
          SocialContactMedium: '#/components/schemas/SocialContactMedium_MVO'
    DCSProductOrderItem:
      type: object
      description: An identified part of the order. A product order is decomposed into one or more order items.
      allOf:
        - $ref: '#/components/schemas/GCProductOrderItem'
    EmailContactMedium:
      allOf:
        - $ref: '#/components/schemas/ContactMedium'
        - type: object
          description: >-
            Describes an email that could be used to contact a party (an individual or an
            organization)
          properties:
            emailAddress:
              type: string
              description: Full email address in standard format
    EmailContactMedium_FVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_FVO'
        - type: object
          description: >-
            Describes an email that could be used to contact a party (an individual or an
            organization)
          properties:
            emailAddress:
              type: string
              description: Full email address in standard format
    EmailContactMedium_MVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_MVO'
        - type: object
          description: >-
            Describes an email that could be used to contact a party (an individual or an
            organization)
          properties:
            emailAddress:
              type: string
              description: Full email address in standard format
    Entity:
      type: object
      description: Base entity schema for use in TMForum Open-APIs. Property.
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - $ref: '#/components/schemas/Addressable'
    EntityRef:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - $ref: '#/components/schemas/Addressable'
        - type: object
          description: Entity reference schema to be use for all entityRef class.
          properties:
            id:
              type: string
              description: The identifier of the referred entity.
            href:
              type: string
              description: The URI of the referred entity.
            name:
              type: string
              description: Name of the referred entity.
            '@referredType':
              type: string
              description: The actual type of the target instance when needed for disambiguation.
          required:
            - id
    EntityRef_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - $ref: '#/components/schemas/Addressable'
        - type: object
          description: Entity reference schema to be use for all entityRef class.
          properties:
            name:
              type: string
              description: Name of the referred entity.
            '@referredType':
              type: string
              description: The actual type of the target instance when needed for disambiguation.
    EntityRef_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - $ref: '#/components/schemas/Addressable'
        - type: object
          description: Entity reference schema to be use for all entityRef class.
          properties:
            name:
              type: string
              description: Name of the referred entity.
            '@referredType':
              type: string
              description: The actual type of the target instance when needed for disambiguation.
    EntityRole:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - $ref: '#/components/schemas/Addressable'
        - type: object
          description: The EntityRole provides a contextual role for eny Entity
          properties:
            name:
              type: string
              description: Name of the Entity Role
            description:
              type: string
              description: Description of the Entity Role
            role:
              type: string
              description: The Role of the Entity
      discriminator:
        propertyName: '@type'
        mapping:
          EntityRole: '#/components/schemas/EntityRole'
    Entity_MVO:
      type: object
      description: Base entity schema for use in TMForum Open-APIs. Property.
      allOf:
        - $ref: '#/components/schemas/Extensible'
    Event:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: event with common attributes.
          properties:
            href:
              type: string
              description: Hyperlink reference
            id:
              type: string
              description: unique identifier
            correlationId:
              type: string
              description: The correlation id for this event.
            domain:
              type: string
              description: The domain of the event.
            title:
              type: string
              description: The title of the event.
            description:
              type: string
              description: An explnatory of the event.
            priority:
              type: string
              description: A priority.
            timeOccurred:
              type: string
              format: date-time
              description: The time the event occurred.
            source:
              $ref: '#/components/schemas/EntityRef'
            reportingSystem:
              $ref: '#/components/schemas/EntityRef'
            relatedParty:
              type: array
              items:
                $ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef'
            analyticCharacteristic:
              type: array
              items:
                $ref: '#/components/schemas/Characteristic'
            eventId:
              type: string
              description: The identifier of the notification.
            eventTime:
              type: string
              format: date-time
              description: Time of the event occurrence.
            eventType:
              type: string
              description: The type of the notification.
            event:
              description: The event linked to the involved resource object
              type: object
    Extensible:
      type: object
      description: >-
        Base Extensible schema for use in TMForum Open-APIs - When used in a schema it means that the Entity described by the schema  MUST be extended with the @type
      properties:
        '@type':
          type: string
          description: 'When sub-classing, this defines the sub-class Extensible name'
        '@baseType':
          type: string
          description: 'When sub-classing, this defines the super-class'
        '@schemaLocation':
          type: string
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
      required:
        - '@type'
    Extensible_MVO:
      type: object
      description: >-
        Base Extensible schema for use in TMForum Open-APIs - When used in a schema it means that the Entity described by the schema  MUST be extended with the @type
      properties:
        '@schemaLocation':
          type: string
          description: A URI to a JSON-Schema file that defines additional attributes and relationships
    ExternalIdentifier:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            An identification of an entity that is owned by or originates in a software system
            different from the current system, for example a ProductOrder handed off from a commerce
            platform into an order handling system. The structure identifies the system itself, the
            nature of the entity within the system (e.g. class name) and the unique ID of the entity
            within the system. It is anticipated that multiple external IDs can be held for a single
            entity, e.g. if the entity passed through multiple systems on the way to the current
            system. In this case the consumer is expected to sequence the IDs in the array in
            reverse order of provenance, i.e. most recent system first in the list.
          properties:
            owner:
              type: string
              description: Name of the external system that owns the entity.
              example: MagentoCommerce
            externalIdentifierType:
              type: string
              description: >-
                Type of the identification, typically would be the type of the entity within the
                external system
              example: ProductOrder
            id:
              type: string
              description: identification of the entity within the external system.
      discriminator:
        propertyName: '@type'
        mapping:
          ExternalIdentifier: '#/components/schemas/ExternalIdentifier'
    ExternalIdentifier_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            An identification of an entity that is owned by or originates in a software system
            different from the current system, for example a ProductOrder handed off from a commerce
            platform into an order handling system. The structure identifies the system itself, the
            nature of the entity within the system (e.g. class name) and the unique ID of the entity
            within the system. It is anticipated that multiple external IDs can be held for a single
            entity, e.g. if the entity passed through multiple systems on the way to the current
            system. In this case the consumer is expected to sequence the IDs in the array in
            reverse order of provenance, i.e. most recent system first in the list.
          properties:
            owner:
              type: string
              description: Name of the external system that owns the entity.
              example: MagentoCommerce
            externalIdentifierType:
              type: string
              description: >-
                Type of the identification, typically would be the type of the entity within the
                external system
              example: ProductOrder
      discriminator:
        propertyName: '@type'
        mapping:
          ExternalIdentifier: '#/components/schemas/ExternalIdentifier_FVO'
    ExternalIdentifier_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            An identification of an entity that is owned by or originates in a software system
            different from the current system, for example a ProductOrder handed off from a commerce
            platform into an order handling system. The structure identifies the system itself, the
            nature of the entity within the system (e.g. class name) and the unique ID of the entity
            within the system. It is anticipated that multiple external IDs can be held for a single
            entity, e.g. if the entity passed through multiple systems on the way to the current
            system. In this case the consumer is expected to sequence the IDs in the array in
            reverse order of provenance, i.e. most recent system first in the list.
          properties:
            owner:
              type: string
              description: Name of the external system that owns the entity.
              example: MagentoCommerce
            externalIdentifierType:
              type: string
              description: >-
                Type of the identification, typically would be the type of the entity within the
                external system
              example: ProductOrder
      discriminator:
        propertyName: '@type'
        mapping:
          ExternalIdentifier: '#/components/schemas/ExternalIdentifier_MVO'
    FaxContactMedium:
      allOf:
        - $ref: '#/components/schemas/ContactMedium'
        - type: object
          description: Describes a fax that could be used to contact a party (an individual or an organization)
          properties:
            faxNumber:
              type: string
              description: The fax number of the contact
    FaxContactMedium_FVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_FVO'
        - type: object
          description: Describes a fax that could be used to contact a party (an individual or an organization)
          properties:
            faxNumber:
              type: string
              description: The fax number of the contact
    FaxContactMedium_MVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_MVO'
        - type: object
          description: Describes a fax that could be used to contact a party (an individual or an organization)
          properties:
            faxNumber:
              type: string
              description: The fax number of the contact
    GCProductOrderItem:
      type: object
      description: >-
        General Context ProductOrderItem that can be used as a Domain Specialization Order Item or
        as a non-specialised OrderItem.
      allOf:
        - $ref: '#/components/schemas/Extensible'
      discriminator:
        propertyName: '@type'
        mapping:
          GCProductOrderItem: '#/components/schemas/GCProductOrderItem'
          DCSProductOrderItem: '#/components/schemas/DCSProductOrderItem'
          ProductOrderItemDelete: '#/components/schemas/ProductOrderItemDelete_FVO'
          ApiProductOrderItemModify: '#/components/schemas/ApiProductOrderItemModify_FVO'
          ApiProductOrderItemAdd: '#/components/schemas/ApiProductOrderItemAdd_FVO'
    GeographicAddressContactMedium:
      allOf:
        - $ref: '#/components/schemas/ContactMedium'
        - type: object
          description: >-
            Describes a geographical address that could be used to contact a party (an individual or
            an organization)
          properties:
            city:
              type: string
              description: The city
            country:
              type: string
              description: The country
            postCode:
              type: string
              description: Postcode
            stateOrProvince:
              type: string
              description: State or province
            street1:
              type: string
              description: Describes the street
            street2:
              type: string
              description: Complementary street description
            geographicAddress:
              $ref: '#/components/schemas/GeographicAddressRef'
    GeographicAddressContactMedium_FVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_FVO'
        - type: object
          description: >-
            Describes a geographical address that could be used to contact a party (an individual or
            an organization)
          properties:
            city:
              type: string
              description: The city
            country:
              type: string
              description: The country
            postCode:
              type: string
              description: Postcode
            stateOrProvince:
              type: string
              description: State or province
            street1:
              type: string
              description: Describes the street
            street2:
              type: string
              description: Complementary street description
            geographicAddress:
              $ref: '#/components/schemas/GeographicAddressRef_FVO'
    GeographicAddressContactMedium_MVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_MVO'
        - type: object
          description: >-
            Describes a geographical address that could be used to contact a party (an individual or
            an organization)
          properties:
            city:
              type: string
              description: The city
            country:
              type: string
              description: The country
            postCode:
              type: string
              description: Postcode
            stateOrProvince:
              type: string
              description: State or province
            street1:
              type: string
              description: Describes the street
            street2:
              type: string
              description: Complementary street description
            geographicAddress:
              $ref: '#/components/schemas/GeographicAddressRef_MVO'
    GeographicAddressRef:
      type: object
      description: Reference to a Geographic Address.
      allOf:
        - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          GeographicAddressRef: '#/components/schemas/GeographicAddressRef'
    GeographicAddressRef_FVO:
      type: object
      description: Reference to a Geographic Address.
      allOf:
        - $ref: '#/components/schemas/EntityRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          GeographicAddressRef: '#/components/schemas/GeographicAddressRef_FVO'
    GeographicAddressRef_MVO:
      type: object
      description: Reference to a Geographic Address.
      allOf:
        - $ref: '#/components/schemas/EntityRef_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          GeographicAddressRef: '#/components/schemas/GeographicAddressRef_MVO'
    HeaderItem:
      type: object
      description: An item typically included in a request or response
      properties:
        name:
          description: 'The name of the header item, e.g. locale'
          type: string
        value:
          description: 'The value of the header item, e.g. en-us'
          type: string
    ISO31661Alpha2StandardIdentifier:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            The corresponding identification of the resource in different standard, regulatory
            definitions. The standard specification identifier (e.g., ISO 3166-1 Alpha-2) and the
            corresponding value (e.g., BE) relevant to a particular resource.
          properties:
            value:
              type: string
              description: The value of the resource in the ISO 3166-1 Alpha 2 standard
              pattern: '[A-Z]{2}'
              example: GB
      discriminator:
        propertyName: '@type'
        mapping:
          ISO31661Alpha2StandardIdentifier: '#/components/schemas/ISO31661Alpha2StandardIdentifier'
    ISO31661Alpha2StandardIdentifier_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            The corresponding identification of the resource in different standard, regulatory
            definitions. The standard specification identifier (e.g., ISO 3166-1 Alpha-2) and the
            corresponding value (e.g., BE) relevant to a particular resource.
          properties:
            value:
              type: string
              description: The value of the resource in the ISO 3166-1 Alpha 2 standard
              pattern: '[A-Z]{2}'
              example: GB
          required:
            - value
      discriminator:
        propertyName: '@type'
        mapping:
          ISO31661Alpha2StandardIdentifier: '#/components/schemas/ISO31661Alpha2StandardIdentifier_FVO'
    ISO31661Alpha2StandardIdentifier_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            The corresponding identification of the resource in different standard, regulatory
            definitions. The standard specification identifier (e.g., ISO 3166-1 Alpha-2) and the
            corresponding value (e.g., BE) relevant to a particular resource.
          properties:
            value:
              type: string
              description: The value of the resource in the ISO 3166-1 Alpha 2 standard
              pattern: '[A-Z]{2}'
              example: GB
          required:
            - value
      discriminator:
        propertyName: '@type'
        mapping:
          ISO31661Alpha2StandardIdentifier: '#/components/schemas/ISO31661Alpha2StandardIdentifier_MVO'
    ItemActionType:
      enum:
        - add
        - modify
        - delete
        - noChange
      type: string
      description: action to be performed on the entity managed by the item
    LightGeographicAddress:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            Structured textual way of describing how to find a Property in an urban area (country
            properties are often defined differently).

            Note : Address corresponds to SID UrbanPropertyAddress
          properties:
            streetNr:
              type: string
              description: Number identifying a specific property on a public street.
            streetName:
              type: string
              description: Name of the street
            locality:
              type: string
              description: >-
                An area of defined or undefined boundaries within a local authority or other
                legislatively defined area, usually rural or semi rural in nature, or a suburb, a
                bounded locality within a city, town or shire principally of urban character
            city:
              type: string
              description: City that the address is in
            stateOrProvince:
              type: string
              description: the State or Province that the address is in
            countryCode:
              $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier'
            postcode:
              type: string
              description: >-
                descriptor for a postal delivery area, used to speed and simplify the delivery of
                mail (also know as zipcode)
            geographicSubAddress:
              $ref: '#/components/schemas/LightGeographicSubAddress'
      discriminator:
        propertyName: '@type'
        mapping:
          LightGeographicAddress: '#/components/schemas/LightGeographicAddress'
    LightGeographicAddress_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            Structured textual way of describing how to find a Property in an urban area (country
            properties are often defined differently).

            Note : Address corresponds to SID UrbanPropertyAddress
          properties:
            streetNr:
              type: string
              description: Number identifying a specific property on a public street.
            streetName:
              type: string
              description: Name of the street
            locality:
              type: string
              description: >-
                An area of defined or undefined boundaries within a local authority or other
                legislatively defined area, usually rural or semi rural in nature, or a suburb, a
                bounded locality within a city, town or shire principally of urban character
            city:
              type: string
              description: City that the address is in
            stateOrProvince:
              type: string
              description: the State or Province that the address is in
            countryCode:
              $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier_FVO'
            postcode:
              type: string
              description: >-
                descriptor for a postal delivery area, used to speed and simplify the delivery of
                mail (also know as zipcode)
            geographicSubAddress:
              $ref: '#/components/schemas/LightGeographicSubAddress'
          required:
            - city
            - countryCode
      discriminator:
        propertyName: '@type'
        mapping:
          LightGeographicAddress: '#/components/schemas/LightGeographicAddress_FVO'
    LightGeographicAddress_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            Structured textual way of describing how to find a Property in an urban area (country
            properties are often defined differently).

            Note : Address corresponds to SID UrbanPropertyAddress
          properties:
            streetNr:
              type: string
              description: Number identifying a specific property on a public street.
            streetName:
              type: string
              description: Name of the street
            locality:
              type: string
              description: >-
                An area of defined or undefined boundaries within a local authority or other
                legislatively defined area, usually rural or semi rural in nature, or a suburb, a
                bounded locality within a city, town or shire principally of urban character
            city:
              type: string
              description: City that the address is in
            stateOrProvince:
              type: string
              description: the State or Province that the address is in
            countryCode:
              $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier_MVO'
            postcode:
              type: string
              description: >-
                descriptor for a postal delivery area, used to speed and simplify the delivery of
                mail (also know as zipcode)
            geographicSubAddress:
              $ref: '#/components/schemas/LightGeographicSubAddress_MVO'
          required:
            - city
            - countryCode
      discriminator:
        propertyName: '@type'
        mapping:
          LightGeographicAddress: '#/components/schemas/LightGeographicAddress_MVO'
    LightGeographicSubAddress:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            Representation of a GeographicSubAddress 

            It is used for addressing within a property in an urban area (country properties are
            often defined differently). It may refer to a building, a building cluster, or a floor
            of a multistory building.
          properties:
            buildingName:
              type: string
              description: allows for buildings that have well-known names
            levelNumber:
              type: string
              description: 'used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2'
            levelType:
              type: string
              description: describes level types within a building
            privateStreetName:
              type: string
              description: >-
                private streets internal to a property (e.g. a university) may have internal names
                that are not recorded by the land title office.
            privateStreetNumber:
              type: string
              description: private streets numbers internal to a private street
      discriminator:
        propertyName: '@type'
        mapping:
          LightGeographicSubAddress: '#/components/schemas/LightGeographicSubAddress'
    LightGeographicSubAddress_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            Representation of a GeographicSubAddress 

            It is used for addressing within a property in an urban area (country properties are
            often defined differently). It may refer to a building, a building cluster, or a floor
            of a multistory building.
          properties:
            buildingName:
              type: string
              description: allows for buildings that have well-known names
            levelNumber:
              type: string
              description: 'used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2'
            levelType:
              type: string
              description: describes level types within a building
            privateStreetName:
              type: string
              description: >-
                private streets internal to a property (e.g. a university) may have internal names
                that are not recorded by the land title office.
            privateStreetNumber:
              type: string
              description: private streets numbers internal to a private street
      discriminator:
        propertyName: '@type'
        mapping:
          LightGeographicSubAddress: '#/components/schemas/LightGeographicSubAddress_MVO'
    LogicalResource:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Logic resource is a type of resource that describes the common set of attributes shared
            by all concrete logical resources (e.g. TPE, MSISDN, IP Addresses) in the inventory.
          properties:
            description:
              type: string
              description: free-text description of the resource
            name:
              type: string
              description: the name of the resource
            operationalState:
              $ref: '#/components/schemas/ResourceOperationalStateType'
            resourceVersion:
              type: string
              description: A field that identifies the specific version of an instance of a resource.
            externalIdentifier:
              type: array
              description: >-
                An identification of this resource that is owned by or originates in a software
                system different from the current system. The structure identifies the system
                itself, the nature of the resource within the system and the unique ID of the
                resource within the system. It is anticipated that multiple external IDs can be held
                for a single resource, e.g. if the resource passed through multiple systems on the
                way to the current system.
              items:
                $ref: '#/components/schemas/ExternalIdentifier'
      discriminator:
        propertyName: '@type'
        mapping:
          LogicalResource: '#/components/schemas/LogicalResource'
          Application: '#/components/schemas/Application'
    LogicalResourceRole:
      type: object
      description: Logic Resource Role
      properties:
        grantedPermissionSet:
          type: array
          items:
            $ref: '#/components/schemas/ApiPermissionSet'
    LogicalResourceRole_FVO:
      type: object
      description: Logic Resource Role
      properties:
        grantedPermissionSet:
          type: array
          items:
            $ref: '#/components/schemas/ApiPermissionSet_FVO'
    LogicalResourceRole_MVO:
      type: object
      description: Logic Resource Role
      properties:
        grantedPermissionSet:
          type: array
          items:
            $ref: '#/components/schemas/ApiPermissionSet_MVO'
    LogicalResource_FVO:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Logic resource is a type of resource that describes the common set of attributes shared
            by all concrete logical resources (e.g. TPE, MSISDN, IP Addresses) in the inventory.
          properties:
            description:
              type: string
              description: free-text description of the resource
            name:
              type: string
              description: the name of the resource
            resourceVersion:
              type: string
              description: A field that identifies the specific version of an instance of a resource.
            externalIdentifier:
              type: array
              description: >-
                An identification of this resource that is owned by or originates in a software
                system different from the current system. The structure identifies the system
                itself, the nature of the resource within the system and the unique ID of the
                resource within the system. It is anticipated that multiple external IDs can be held
                for a single resource, e.g. if the resource passed through multiple systems on the
                way to the current system.
              items:
                $ref: '#/components/schemas/ExternalIdentifier_FVO'
          required:
            - name
            - description
      discriminator:
        propertyName: '@type'
        mapping:
          LogicalResource: '#/components/schemas/LogicalResource_FVO'
          Application: '#/components/schemas/Application_FVO'
    LogicalResource_MVO:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: >-
            Logic resource is a type of resource that describes the common set of attributes shared
            by all concrete logical resources (e.g. TPE, MSISDN, IP Addresses) in the inventory.
          properties:
            description:
              type: string
              description: free-text description of the resource
            name:
              type: string
              description: the name of the resource
            operationalState:
              $ref: '#/components/schemas/ResourceOperationalStateType'
            resourceVersion:
              type: string
              description: A field that identifies the specific version of an instance of a resource.
            externalIdentifier:
              type: array
              description: >-
                An identification of this resource that is owned by or originates in a software
                system different from the current system. The structure identifies the system
                itself, the nature of the resource within the system and the unique ID of the
                resource within the system. It is anticipated that multiple external IDs can be held
                for a single resource, e.g. if the resource passed through multiple systems on the
                way to the current system.
              items:
                $ref: '#/components/schemas/ExternalIdentifier_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          LogicalResource: '#/components/schemas/LogicalResource_MVO'
          Application: '#/components/schemas/Application_MVO'
    Monitor:
      allOf:
        - $ref: '#/components/schemas/Entity'
        - type: object
          description: Monitoring of resources
          properties:
            request:
              $ref: '#/components/schemas/Request'
            response:
              $ref: '#/components/schemas/Response'
            sourceHref:
              type: string
              description: The monitored resource href
            state:
              type: string
              description: 'The Monitor state of the resource.  InProgress, InError, Completed'
      discriminator:
        propertyName: '@type'
        mapping:
          Monitor: '#/components/schemas/Monitor'
    MonitorStateChangeEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          description: MonitorStateChangeEvent generic structure
          properties:
            event:
              $ref: '#/components/schemas/MonitorStateChangeEventPayload'
      discriminator:
        propertyName: '@type'
        mapping:
          MonitorStateChangeEvent: '#/components/schemas/MonitorStateChangeEvent'
    MonitorStateChangeEventPayload:
      type: object
      description: MonitorStateChangeEventPayload generic structure
      properties:
        monitor:
          $ref: '#/components/schemas/Monitor'
    OAuth2ClientCredential:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            OAuth2ClientCredential describes the registration attributes in an OAuth registration
            process
          properties:
            clientSecret:
              type: string
              description: clientSecret
            state:
              type: string
              description: >-
                Used to indicate the current lifecycle state of this credential (like active,
                inactive, expired).
            validFor:
              $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          OAuth2ClientCredential: '#/components/schemas/OAuth2ClientCredential'
    OAuth2ClientCredential_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: >-
            OAuth2ClientCredential describes the registration attributes in an OAuth registration
            process
          properties:
            clientSecret:
              type: string
              description: clientSecret
            state:
              type: string
              description: >-
                Used to indicate the current lifecycle state of this credential (like active,
                inactive, expired).
            validFor:
              $ref: '#/components/schemas/TimePeriod'
      discriminator:
        propertyName: '@type'
        mapping:
          OAuth2ClientCredential: '#/components/schemas/OAuth2ClientCredential_MVO'
    OrganizationIdentification:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Represents our registration of information used as proof of identity by an organization
          properties:
            identificationId:
              type: string
              description: Identifier
            issuingAuthority:
              type: string
              description: Authority which has issued the identifier (chamber of commerce...)
            issuingDate:
              type: string
              format: date-time
              description: Date at which the identifier was issued
            identificationType:
              type: string
              description: >-
                Type of identification information used to identify the company in a country or
                internationally
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            attachment:
              $ref: '#/components/schemas/AttachmentRefOrValue'
      discriminator:
        propertyName: '@type'
        mapping:
          OrganizationIdentification: '#/components/schemas/OrganizationIdentification'
    OrganizationIdentification_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Represents our registration of information used as proof of identity by an organization
          properties:
            identificationId:
              type: string
              description: Identifier
            issuingAuthority:
              type: string
              description: Authority which has issued the identifier (chamber of commerce...)
            issuingDate:
              type: string
              format: date-time
              description: Date at which the identifier was issued
            identificationType:
              type: string
              description: >-
                Type of identification information used to identify the company in a country or
                internationally
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            attachment:
              $ref: '#/components/schemas/AttachmentRefOrValue_FVO'
          required:
            - identificationId
      discriminator:
        propertyName: '@type'
        mapping:
          OrganizationIdentification: '#/components/schemas/OrganizationIdentification_FVO'
    OrganizationIdentification_MVO:
      allOf:
        - $ref: '#/components/schemas/Extensible_MVO'
        - type: object
          description: Represents our registration of information used as proof of identity by an organization
          properties:
            identificationId:
              type: string
              description: Identifier
            issuingAuthority:
              type: string
              description: Authority which has issued the identifier (chamber of commerce...)
            issuingDate:
              type: string
              format: date-time
              description: Date at which the identifier was issued
            identificationType:
              type: string
              description: >-
                Type of identification information used to identify the company in a country or
                internationally
            validFor:
              $ref: '#/components/schemas/TimePeriod'
            attachment:
              $ref: '#/components/schemas/AttachmentRefOrValue_MVO'
      discriminator:
        propertyName: '@type'
        mapping:
          OrganizationIdentification: '#/components/schemas/OrganizationIdentification_MVO'
    PartyRef:
      type: object
      description: A Party reference
      allOf:
        - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef'
    PartyRefOrPartyRoleRef:
      type: object
      description: ''
      oneOf:
        - $ref: '#/components/schemas/PartyRef'
        - $ref: '#/components/schemas/PartyRoleRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef'
          PartyRoleRef: '#/components/schemas/PartyRoleRef'
    PartyRoleRef:
      allOf:
        - $ref: '#/components/schemas/EntityRef'
        - type: object
          description: >-
            Party role reference. A party role represents the part played by a party in a given
            context.
          properties:
            partyId:
              type: string
              description: The identifier of the engaged party that is linked to the PartyRole object.
            partyName:
              type: string
              description: The name of the engaged party that is linked to the PartyRole object.
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRoleRef: '#/components/schemas/PartyRoleRef'
    PartyRoleRef_FVO:
      allOf:
        - $ref: '#/components/schemas/EntityRef_FVO'
        - type: object
          description: >-
            Party role reference. A party role represents the part played by a party in a given
            context.
          properties:
            partyId:
              type: string
              description: The identifier of the engaged party that is linked to the PartyRole object.
            partyName:
              type: string
              description: The name of the engaged party that is linked to the PartyRole object.
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO'
    PartyRoleRef_MVO:
      allOf:
        - $ref: '#/components/schemas/EntityRef_MVO'
        - type: object
          description: >-
            Party role reference. A party role represents the part played by a party in a given
            context.
          properties:
            partyId:
              type: string
              description: The identifier of the engaged party that is linked to the PartyRole object.
            partyName:
              type: string
              description: The name of the engaged party that is linked to the PartyRole object.
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO'
    PhoneContactMedium:
      allOf:
        - $ref: '#/components/schemas/ContactMedium'
        - type: object
          description: >-
            Describes a phone number that could be used to contact a party (an individual or an
            organization)
          properties:
            phoneNumber:
              type: string
              description: The phone number of the contact
    PhoneContactMedium_FVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_FVO'
        - type: object
          description: >-
            Describes a phone number that could be used to contact a party (an individual or an
            organization)
          properties:
            phoneNumber:
              type: string
              description: The phone number of the contact
    PhoneContactMedium_MVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_MVO'
        - type: object
          description: >-
            Describes a phone number that could be used to contact a party (an individual or an
            organization)
          properties:
            phoneNumber:
              type: string
              description: The phone number of the contact
    ProductOfferingRef:
      allOf:
        - $ref: '#/components/schemas/EntityRef'
        - type: object
          description: >-
            ProductOffering reference. A product offering represents entities that are orderable
            from the provider of the catalog, this resource includes pricing information.
          properties:
            version:
              type: string
              description: Version of the product offering
      discriminator:
        propertyName: '@type'
        mapping:
          ProductOfferingRef: '#/components/schemas/ProductOfferingRef'
    ProductOfferingTermOrCondition:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Approved Terms or Conditions of the ProductOffering.
          properties:
            id:
              type: string
              description: Identifier of the ProductOfferingTermOrCondition.
            name:
              type: string
              description: Identifier of the ProductOfferingTermOrCondition.
            productOfferingTermOrConditionSpecRef:
              $ref: '#/components/schemas/ProductOfferingTermOrConditionSpecRef'
            productOfferingTermOrConditionApproval:
              $ref: '#/components/schemas/ProductOfferingTermOrConditionApproval'
      discriminator:
        propertyName: '@type'
        mapping:
          ProductOfferingTermOrCondition: '#/components/schemas/ProductOfferingTermOrCondition'
    ProductOfferingTermOrConditionApproval:
      type: object
      description: >-
        Approval entity for the ProductOfferingTermOrCondition. Exists when Terms or Conditions are
        approved.
      properties:
        approvalDate:
          type: string
          format: date-time
          description: Date of the approval.
        authorization:
          type: array
          items:
            $ref: '#/components/schemas/ApiAuthorization'
    ProductOfferingTermOrConditionApproval_FVO:
      type: object
      description: >-
        Approval entity for the ProductOfferingTermOrCondition. Exists when Terms or Conditions are
        approved.
      properties:
        approvalDate:
          type: string
          format: date-time
          description: Date of the approval.
        authorization:
          type: array
          items:
            $ref: '#/components/schemas/ApiAuthorization_FVO'
      required:
        - approvalDate
        - authorization
    ProductOfferingTermOrConditionSpecRef:
      allOf:
        - $ref: '#/components/schemas/EntityRef'
        - type: object
          description: Reference to the ProductOfferingTermOrCondition specification.
          properties:
            version:
              type: string
              description: Version of the ProductOfferingTermOrCondition specification.
      discriminator:
        propertyName: '@type'
        mapping:
          ProductOfferingTermOrConditionSpecRef: '#/components/schemas/ProductOfferingTermOrConditionSpecRef'
    ProductOfferingTermOrCondition_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: Approved Terms or Conditions of the ProductOffering.
          properties:
            id:
              type: string
              description: Identifier of the ProductOfferingTermOrCondition.
            name:
              type: string
              description: Identifier of the ProductOfferingTermOrCondition.
            productOfferingTermOrConditionSpecRef:
              $ref: '#/components/schemas/ProductOfferingTermOrConditionSpecRef'
            productOfferingTermOrConditionApproval:
              $ref: '#/components/schemas/ProductOfferingTermOrConditionApproval_FVO'
          required:
            - productOfferingTermOrConditionSpecRef
      discriminator:
        propertyName: '@type'
        mapping:
          ProductOfferingTermOrCondition: '#/components/schemas/ProductOfferingTermOrCondition_FVO'
    ProductOrderItemDelete:
      allOf:
        - $ref: '#/components/schemas/DCSProductOrderItem'
        - type: object
          description: >-
            A ProductOrderItemDelete is a specialization of a ProductOrderItem, for action to delete
            a product. An identified part of the order. A product order is decomposed into one or
            more order items.
          properties:
            id:
              type: string
              description: >-
                Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03,
                ...)
            product:
              $ref: '#/components/schemas/ProductRef'
            state:
              $ref: '#/components/schemas/ProductOrderItemStateType'
    ProductOrderItemDelete_FVO:
      allOf:
        - $ref: '#/components/schemas/DCSProductOrderItem'
        - type: object
          description: >-
            A ProductOrderItemDelete is a specialization of a ProductOrderItem, for action to delete
            a product. An identified part of the order. A product order is decomposed into one or
            more order items.
          properties:
            id:
              type: string
              description: >-
                Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03,
                ...)
            product:
              $ref: '#/components/schemas/ProductRef_FVO'
          required:
            - product
    ProductOrderItemStateType:
      enum:
        - acknowledged
        - rejected
        - pending
        - held
        - inProgress
        - cancelled
        - completed
        - failed
        - partial
        - assessingCancellation
        - pendingCancellation
      type: string
      description: Possible values for the state of the product order item
    ProductOrderStateType:
      enum:
        - acknowledged
        - rejected
        - pending
        - held
        - inProgress
        - cancelled
        - completed
        - failed
        - partial
        - assessingCancellation
        - pendingCancellation
        - draft
        - inProgress.accepted
      type: string
      description: Possible values for the state of the order
    ProductRef:
      type: object
      description: A Product reference
      allOf:
        - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ProductRef: '#/components/schemas/ProductRef'
    ProductRef_FVO:
      type: object
      description: A Product reference
      allOf:
        - $ref: '#/components/schemas/EntityRef_FVO'
      discriminator:
        propertyName: '@type'
        mapping:
          ProductRef: '#/components/schemas/ProductRef_FVO'
    ProductSpecificationRef:
      allOf:
        - $ref: '#/components/schemas/EntityRef'
        - type: object
          description: >-
            ProductSpecification reference. A product Specification represents entities that are
            orderable from the provider of the catalog.
          properties:
            version:
              type: string
              description: Version of the product specification
            targetProductSchema:
              $ref: '#/components/schemas/TargetProductSchema'
      discriminator:
        propertyName: '@type'
        mapping:
          ProductSpecificationRef: '#/components/schemas/ProductSpecificationRef'
    ProductStatusType:
      enum:
        - created
        - pendingActive
        - cancelled
        - active
        - pendingTerminate
        - terminated
        - suspended
        - 'aborted '
      type: string
      description: Possible values for the status of the product
    Quantity:
      type: object
      description: An amount in a given unit
      properties:
        amount:
          type: number
          format: float
          default: 1
          description: Numeric value in a given unit
        units:
          type: string
          description: Unit
    RelatedOrderItem:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: It's a Order item that has been executed previously.
          properties:
            orderItemAction:
              $ref: '#/components/schemas/ItemActionType'
            orderHref:
              type: string
              description: Reference of the related entity.
            '@referredType':
              type: string
              description: The actual type of the target instance when needed for disambiguation.
            role:
              type: string
              description: Role played by the  Order
            orderId:
              type: string
              description: Unique identifier of a related  Order.
            orderItemId:
              type: string
              description: Id of an item of a prduct order
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedOrderItem: '#/components/schemas/RelatedOrderItem'
    RelatedPartyRefOrPartyRoleRef:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            RelatedParty reference. A related party defines a party, party role, or its reference,
            linked to a specific entity
          properties:
            role:
              description: >-
                Role played by the related party or party role in the context of the specific entity
                it is linked to. Such as 'initiator', 'customer',  'salesAgent', 'user'
              type: string
            partyOrPartyRole:
              $ref: '#/components/schemas/PartyRefOrPartyRoleRef'
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef'
    RelatedPartyRefOrPartyRoleRef_FVO:
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          description: >-
            RelatedParty reference. A related party defines a party, party role, or its reference,
            linked to a specific entity
          properties:
            role:
              description: >-
                Role played by the related party or party role in the context of the specific entity
                it is linked to. Such as 'initiator', 'customer',  'salesAgent', 'user'
              type: string
            partyOrPartyRole:
              $ref: '#/components/schemas/PartyRefOrPartyRoleRef'
          required:
            - role
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
    Request:
      type: object
      description: A response to a request
      properties:
        method:
          description: 'The protocol of the request, e.g. http'
          type: string
        to:
          description: 'The target of the request, e.g. a URL for an HTTP request'
          type: string
        body:
          description: >-
            The body of the request. For example for an HTTP request might contain content of a form
            .
          type: object
        header:
          type: array
          description: >-
            Items included in the header of the request. For example for an HTTP request might
            contain requested locale, basic authentication.
          items:
            $ref: '#/components/schemas/HeaderItem'
          title: header
    ResourceOperationalStateType:
      enum:
        - enable
        - disable
      type: string
      description: ResourceOperationalStateType enumerations
    Response:
      type: object
      description: A response to a request
      properties:
        statusCode:
          description: >-
            The status of the response. For example for an HTTP response would be codes such as 200,
            400, etc.
          type: string
        body:
          description: >-
            The body of the response. For example for an HTTP response might contain HTML for
            rendering.
          type: object
        header:
          description: >-
            Items included in the header of the response. For example for an HTTP response might
            contain negotiated locale.
          type: array
          items:
            $ref: '#/components/schemas/HeaderItem'
          title: header
    SocialContactMedium:
      allOf:
        - $ref: '#/components/schemas/ContactMedium'
        - type: object
          description: >-
            Describes a social media identifier that could be used to contact a party (an individual
            or an organization)
          properties:
            socialNetworkId:
              type: string
              description: Identifier as a member of a social network
    SocialContactMedium_FVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_FVO'
        - type: object
          description: >-
            Describes a social media identifier that could be used to contact a party (an individual
            or an organization)
          properties:
            socialNetworkId:
              type: string
              description: Identifier as a member of a social network
    SocialContactMedium_MVO:
      allOf:
        - $ref: '#/components/schemas/ContactMedium_MVO'
        - type: object
          description: >-
            Describes a social media identifier that could be used to contact a party (an individual
            or an organization)
          properties:
            socialNetworkId:
              type: string
              description: Identifier as a member of a social network
    TargetProductSchema:
      type: object
      description: >-
        The reference object to the schema and type of target product which is described by product
        specification
      properties:
        '@type':
          type: string
          description: Class type of the target product
        '@schemaLocation':
          type: string
          format: uri
          description: This field provides a link to the schema describing the target product
    TimePeriod:
      type: object
      description: 'A period of time, either as a deadline (endDateTime only) a startDateTime only, or both'
      properties:
        startDateTime:
          description: 'Start of the time period, using IETC-RFC-3339 format'
          type: string
          format: date-time
          example: '1985-04-12T23:20:50.52Z'
        endDateTime:
          description: 'End of the time period, using IETC-RFC-3339 format'
          type: string
          format: date-time
          example: '1985-04-12T23:20:50.52Z'
    Error:
      discriminator:
        propertyName: '@type'
        mapping:
          Error: '#/components/schemas/Error'
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - type: object
          required:
            - code
            - reason
          properties:
            code:
              type: string
              description: 'Application relevant detail, defined in the API or a common list.'
            reason:
              type: string
              description: Explanation of the reason for the error which can be shown to a client user.
            message:
              type: string
              description: >-
                More details and corrective actions related to the error which can be shown to a
                client user.
            status:
              type: string
              description: HTTP Error code extension
            referenceError:
              type: string
              description: URI of documentation describing the error.
      description: 'Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)'
    Hub_FVO:
      type: object
      description: >-
        Sets the communication endpoint address the service instance must use to deliver
        notification information
      required:
        - callback
      allOf:
        - $ref: '#/components/schemas/Extensible'
        - properties:
            callback:
              type: string
              description: The callback being registered.
            query:
              type: string
              description: additional data to be passed
    Hub:
      type: object
      description: >-
        Sets the communication endpoint address the service instance must use to deliver
        notification information
      allOf:
        - $ref: '#/components/schemas/Entity'
        - properties:
            id:
              type: string
              description: Id of the listener
            callback:
              type: string
              description: The callback being registered.
            query:
              type: string
              description: additional data to be passed
          required:
            - callback
    JsonPatch:
      type: object
      description: A JSONPatch document as defined by RFC 6902
      required:
        - op
        - path
      properties:
        op:
          type: string
          description: The operation to be performed
          enum:
            - add
            - remove
            - replace
            - move
            - copy
            - test
        path:
          type: string
          description: A JSON-Pointer
        value:
          description: The value to be used within the operations.
        from:
          type: string
          description: A string containing a JSON Pointer value.
    JsonPatchOperations:
      description: JSONPatch Operations document as defined by RFC 6902
      type: array
      items:
        $ref: '#/components/schemas/JsonPatch'
  parameters:
    vf-trace-transaction-id:
      name: vf-trace-transaction-id
      in: header
      required: false
      description: A unique identifier for each request (typically a GUID).  This is not defined as part of the standard, but it can be used by the Service Provider to set a value which could assist in troubleshooting.  Note - if this header is not set in the request, Vodafone generates this value upon receipt of the message and returns the value in the response as a header.
      schema:
        type: string   

    X-Correlator:
      name: X-Correlator
      in: header
      required: false
      description: Correlation UUID that will be included in the response to request.
      schema:
        type: string      
    
    Id:
      name: id
      required: true
      schema:
        type: string
      example: 101
      in: path
      description: Identifier of the Resource
    Fields:
      name: fields
      in: query
      description: Comma-separated properties to be provided in response
      schema:
        type: string
      example: id,description

    Offset:
      name: offset
      in: query
      description: Requested index for start of resources to be provided in response
      schema:
        type: integer
      example: 1
    Limit:
      name: limit
      in: query
      description: Requested number of resources to be provided in response
      schema:
        type: integer
      example: 2
  requestBodies:
    ApiProductOrder_FVO:
      description: The ApiProductOrder to be created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProductOrder_FVO'
          examples:
            Create_a_API_Product_Order_for_ordering_subscribe_a_new_product_:
              $ref: >-
                #/components/examples/Create_a_API_Product_Order_for_ordering_subscribe_a_new_product__request
            Create_a_API_Product_Order_for_ordering_unsubscribe_the_removal_of_an_existing_product_:
              $ref: >-
                #/components/examples/Create_a_API_Product_Order_for_ordering_unsubscribe_the_removal_of_an_existing_product__request
      required: true
    ApiProductOrderCreateEvent:
      description: ApiProductOrder create Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProductOrderCreateEvent'
          examples:
            ApiProductOrderCreateEvent:
              $ref: '#/components/examples/ApiProductOrderCreateEvent_request'
      required: true
    ApiProductOrderStateChangeEvent:
      description: ApiProductOrder stateChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProductOrderStateChangeEvent'
          examples:
            ApiProductOrderStateChangeEvent:
              $ref: '#/components/examples/ApiProductOrderStateChangeEvent_request'
      required: true
    ApiProductOrderAttributeValueChangeEvent:
      description: ApiProductOrder attributeValueChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProductOrderAttributeValueChangeEvent'
          examples:
            ApiProductOrderAttributeValueChangeEvent:
              $ref: '#/components/examples/ApiProductOrderAttributeValueChangeEvent_request'
      required: true
    Application_FVO:
      description: The Application to be created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Application_FVO'
          examples:
            Create_an_Application:
              $ref: '#/components/examples/Create_an_Application_request'
      required: true
    Application_MVO:
      description: The Application to be patched
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Application_MVO'
          examples:
            Application_Update_-_Patch_Merge:
              $ref: '#/components/examples/Application_Update_-_Patch_Merge_request'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/Application_MVO'
          examples:
            Application_Update_-_Patch_Merge:
              $ref: '#/components/examples/Application_Update_-_Patch_Merge_request'
        application/json-patch+json:
          schema:
            $ref: '#/components/schemas/JsonPatchOperations'
          examples:
            Application_Update_-_JSON_Patch:
              $ref: '#/components/examples/Application_Update_-_JSON_Patch_request'
        application/json-patch-query+json:
          schema:
            $ref: '#/components/schemas/JsonPatchOperations'
          examples:
            Application_Update_-_JSON_Patch_Query:
              $ref: '#/components/examples/Application_Update_-_JSON_Patch_Query_request'
      required: true
    ApplicationCreateEvent:
      description: Application create Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationCreateEvent'
          examples:
            ApplicationCreateEvent:
              $ref: '#/components/examples/ApplicationCreateEvent_request'
      required: true
    ApplicationApprovalStatusChangeEvent:
      description: Application approvalStatusChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationApprovalStatusChangeEvent'
          examples:
            ApplicationApprovalStatusChangeEvent:
              $ref: '#/components/examples/ApplicationApprovalStatusChangeEvent_request'
      required: true
    ApplicationAttributeValueChangeEvent:
      description: Application attributeValueChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationAttributeValueChangeEvent'
          examples:
            ApplicationAttributeValueChangeEvent:
              $ref: '#/components/examples/ApplicationAttributeValueChangeEvent_request'
      required: true
    ApplicationOwner_FVO:
      description: The ApplicationOwner to be created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwner_FVO'
          examples:
            Create_an_ApplicationOwner:
              $ref: '#/components/examples/Create_an_ApplicationOwner_request'
      required: true
    ApplicationOwner_MVO:
      description: The ApplicationOwner to be patched
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwner_MVO'
          examples:
            ApplicationOwner_Update_-_Patch_Merge:
              $ref: '#/components/examples/ApplicationOwner_Update_-_Patch_Merge_request'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/ApplicationOwner_MVO'
          examples:
            ApplicationOwner_Update_-_Patch_Merge:
              $ref: '#/components/examples/ApplicationOwner_Update_-_Patch_Merge_request'
        application/json-patch+json:
          schema:
            $ref: '#/components/schemas/JsonPatchOperations'
          examples:
            ApplicationOwner_Update_-_JSON_Patch:
              $ref: '#/components/examples/ApplicationOwner_Update_-_JSON_Patch_request'
        application/json-patch-query+json:
          schema:
            $ref: '#/components/schemas/JsonPatchOperations'
          examples:
            ApplicationOwner_Update_-_JSON_Patch_Query:
              $ref: '#/components/examples/ApplicationOwner_Update_-_JSON_Patch_Query_request'
      required: true
    ApplicationOwnerCreateEvent:
      description: ApplicationOwner create Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwnerCreateEvent'
          examples:
            ApplicationOwnerCreateEvent:
              $ref: '#/components/examples/ApplicationOwnerCreateEvent_request'
      required: true
    ApplicationOwnerApprovalStatusChangeEvent:
      description: ApplicationOwner approvalStatusChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwnerApprovalStatusChangeEvent'
          examples:
            ApplicationOwnerApprovalStatusChangeEvent:
              $ref: '#/components/examples/ApplicationOwnerApprovalStatusChangeEvent_request'
      required: true
    ApplicationOwnerAttributeValueChangeEvent:
      description: ApplicationOwner attributeValueChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwnerAttributeValueChangeEvent'
          examples:
            ApplicationOwnerAttributeValueChangeEvent:
              $ref: '#/components/examples/ApplicationOwnerAttributeValueChangeEvent_request'
      required: true
    MonitorStateChangeEvent:
      description: Monitor stateChange Event payload
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MonitorStateChangeEvent'
          examples:
            MonitorStateChangeEvent:
              $ref: '#/components/examples/MonitorStateChangeEvent_request'
      required: true
    Hub_FVO:
      description: Data containing the callback endpoint to deliver the information
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Hub_FVO'
      required: true
  responses:
    '200':
      description: OK
    '202':
      description: Accepted
    '204':
      description: Deleted
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            invalid_request:
              value:
                { 
                  "@type": "Error",
                  "code": "invalid_request",
                  "message": "Unsupported query parameter"
                }
            
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Access Token Expired:
              value:
                { 
                  "@type": "Error",
                  "code": "invalid_client",
                  "message": "Access Token Expired"
                }
            Invalid Access Token:
              value:
                { 
                  "@type": "Error",
                  "code": "invalid_client",
                  "message": "Invalid Access Token"
                }
            Missing or invalid client_id or client_secret:
              value:
                { 
                  "@type": "Error",
                  "code": "invalid_client",
                  "message": "Missing or invalid client_id or client_secret"
                }

    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '404':
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Resource Not Found:
              value:
                { 
                  "@type": "Error",
                  "code": "resource_not_found",
                  "message": "URI does not represent a recognised resource"
                }
    '405':
      description: Method Not allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Method Not Allowed:
              value:
                { 
                  "@type": "Error",
                  "code": "method_not_allowed",
                  "message": "The request method is not supported by this resource"
                }
    '406':
      description: Not Acceptable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Invalid Accept Header:
              value:
                { 
                  "@type": "Error",
                  "code": "not_acceptable",
                  "message": "The server cannot produce a response matching the content requested by the client through Accept-* headers"
                }
    '415':
      description: Unsupported Media Type
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Invalid Content Type:
              value:
                { 
                  "@type": "Error",
                  "code": "unsupported_media_type",
                  "message": "The value of Content-Type header is invalid"
                }
                
    '429':
      description: Too Many Requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            QuotaViolation:
              value:
                { 
                  "@type": "Error",
                  "code": "too_many_requests",
                  "message": "Api Quota limit reached"
                }
            SpikeArrestViolation:
              value:
                { 
                  "@type": "Error",
                  "code": "too_many_requests",
                  "message": "Rate limit exceeded"
                }
    '500':
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Internal Error:
              value:
                { 
                  "@type": "Error",
                  "code": "server_error",
                  "message": "The authorization server encountered an unexpected condition that prevented it from fulfilling the request"
                }
    '502':
      description: Bad Gateway
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Bad Gateway:
              value:
                { 
                  "@type": "Error",
                  "code": "bad_gateway",
                  "message": "The service is currently not available"
                }
    '503':
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Service Unavailable:
              value:
                { 
                  "@type": "Error",
                  "code": "unavailable",
                  "message": "The service is currently not available"
                }
    '504':
      description: Gateway Timeout
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Gateway Timeout:
              value:
                { 
                  "@type": "Error",
                  "code": "timeout",
                  "message": "The service is currently not available"
                }
    200ApiProductOrderArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ApiProductOrder'
          examples:
            Retrieve_a_list_of_API_Product_Order_already_created_:
              $ref: '#/components/examples/Retrieve_a_list_of_API_Product_Order_already_created__response'
            Retrieve_a_list_of_API_Product_Order_already_created_with_field_selection_:
              $ref: >-
                #/components/examples/Retrieve_a_list_of_API_Product_Order_already_created_with_field_selection__response
    200ApiProductOrder_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProductOrder'
          examples:
            Retrieve_an_API_Product_Order_already_created_for_add_:
              $ref: >-
                #/components/examples/Retrieve_an_API_Product_Order_already_created_for_add__response
            Retrieve_an_API_Product_Order_already_created_for_delete_:
              $ref: >-
                #/components/examples/Retrieve_an_API_Product_Order_already_created_for_delete__response
    200ApiProductOrder_Patch:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProductOrder'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/ApiProductOrder'
        application/json-patch+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ApiProductOrder'
              - type: array
                items:
                  $ref: '#/components/schemas/ApiProductOrder'
              - type: string
                nullable: true
        application/json-patch-query+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ApiProductOrder'
              - type: array
                items:
                  $ref: '#/components/schemas/ApiProductOrder'
              - type: string
                nullable: true
    201ApiProductOrder:
      description: OK/Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProductOrder'
          examples:
            Create_a_API_Product_Order_for_ordering_subscribe_a_new_product_:
              $ref: >-
                #/components/examples/Create_a_API_Product_Order_for_ordering_subscribe_a_new_product__response
            Create_a_API_Product_Order_for_ordering_unsubscribe_the_removal_of_an_existing_product_:
              $ref: >-
                #/components/examples/Create_a_API_Product_Order_for_ordering_unsubscribe_the_removal_of_an_existing_product__response
    200ApiProductArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ApiProduct'
          examples:
            Retrieve_a_list_of_API_Product_already_created_:
              $ref: '#/components/examples/Retrieve_a_list_of_API_Product_already_created__response'
            Retrieve_a_list_of_API_Product_already_created_with_field_selection_:
              $ref: >-
                #/components/examples/Retrieve_a_list_of_API_Product_already_created_with_field_selection__response
    200ApiProduct_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProduct'
          examples:
            Retrieve_an_API_Product_already_created_:
              $ref: '#/components/examples/Retrieve_an_API_Product_already_created__response'
    200ApiProduct_Patch:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProduct'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/ApiProduct'
        application/json-patch+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ApiProduct'
              - type: array
                items:
                  $ref: '#/components/schemas/ApiProduct'
              - type: string
                nullable: true
        application/json-patch-query+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ApiProduct'
              - type: array
                items:
                  $ref: '#/components/schemas/ApiProduct'
              - type: string
                nullable: true
    201ApiProduct:
      description: OK/Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiProduct'
    200ApplicationArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Application'
          examples:
            Retrieve_a_list_of_Application_already_created_:
              $ref: '#/components/examples/Retrieve_a_list_of_Application_already_created__response'
            Retrieve_a_list_of_Application_already_created_with_field_selection_:
              $ref: >-
                #/components/examples/Retrieve_a_list_of_Application_already_created_with_field_selection__response
    200Application_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Application'
          examples:
            Retrieve_an_Application_after_creation:
              $ref: '#/components/examples/Retrieve_an_Application_after_creation_response'
            Retrieve_an_Application_with_permissions:
              $ref: '#/components/examples/Retrieve_an_Application_with_permissions_response'
            Retrieve_an_Application_without_digital_identity:
              $ref: '#/components/examples/Retrieve_an_Application_without_digital_identity_response'
    200Application_Patch:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Application'
          examples:
            Application_Update_-_Patch_Merge:
              $ref: '#/components/examples/Application_Update_-_Patch_Merge_response'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/Application'
          examples:
            Application_Update_-_Patch_Merge:
              $ref: '#/components/examples/Application_Update_-_Patch_Merge_response'
        application/json-patch+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Application'
              - type: array
                items:
                  $ref: '#/components/schemas/Application'
              - type: string
                nullable: true
          examples:
            Application_Update_-_JSON_Patch:
              $ref: '#/components/examples/Application_Update_-_JSON_Patch_response'
        application/json-patch-query+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Application'
              - type: array
                items:
                  $ref: '#/components/schemas/Application'
              - type: string
                nullable: true
          examples:
            Application_Update_-_JSON_Patch_Query:
              $ref: '#/components/examples/Application_Update_-_JSON_Patch_Query_response'
    201Application:
      description: OK/Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Application'
          examples:
            Create_an_Application:
              $ref: '#/components/examples/Create_an_Application_response'
    200ApplicationOwnerArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ApplicationOwner'
          examples:
            Retrieve_a_list_of_ApplicationOwner_already_created_:
              $ref: '#/components/examples/Retrieve_a_list_of_ApplicationOwner_already_created__response'
            Retrieve_a_list_of_ApplicationOwner_already_created_with_field_selection_:
              $ref: >-
                #/components/examples/Retrieve_a_list_of_ApplicationOwner_already_created_with_field_selection__response
    200ApplicationOwner_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwner'
          examples:
            Retrieve_an_ApplicationOwner_:
              $ref: '#/components/examples/Retrieve_an_ApplicationOwner__response'
    200ApplicationOwner_Patch:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwner'
          examples:
            ApplicationOwner_Update_-_Patch_Merge:
              $ref: '#/components/examples/ApplicationOwner_Update_-_Patch_Merge_response'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/ApplicationOwner'
          examples:
            ApplicationOwner_Update_-_Patch_Merge:
              $ref: '#/components/examples/ApplicationOwner_Update_-_Patch_Merge_response'
        application/json-patch+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ApplicationOwner'
              - type: array
                items:
                  $ref: '#/components/schemas/ApplicationOwner'
              - type: string
                nullable: true
          examples:
            ApplicationOwner_Update_-_JSON_Patch:
              $ref: '#/components/examples/ApplicationOwner_Update_-_JSON_Patch_response'
        application/json-patch-query+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ApplicationOwner'
              - type: array
                items:
                  $ref: '#/components/schemas/ApplicationOwner'
              - type: string
                nullable: true
          examples:
            ApplicationOwner_Update_-_JSON_Patch_Query:
              $ref: '#/components/examples/ApplicationOwner_Update_-_JSON_Patch_Query_response'
    201ApplicationOwner:
      description: OK/Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationOwner'
          examples:
            Create_an_ApplicationOwner:
              $ref: '#/components/examples/Create_an_ApplicationOwner_response'
    200MonitorArray:
      description: Success
      headers:
        X-Total-Count:
          $ref: '#/components/headers/X-Total-Count'
        X-Result-Count:
          $ref: '#/components/headers/X-Result-Count'
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/Monitor'
          examples:
            Retrieve_a_list_of_Monitor_already_created_:
              $ref: '#/components/examples/Retrieve_a_list_of_Monitor_already_created__response'
            Retrieve_a_list_of_Monitor_already_created_with_field_selection_:
              $ref: >-
                #/components/examples/Retrieve_a_list_of_Monitor_already_created_with_field_selection__response
    200Monitor_Get:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Monitor'
          examples:
            Retrieve_a_Monitor_:
              $ref: '#/components/examples/Retrieve_a_Monitor__response'
    200Monitor_Patch:
      description: Success
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Monitor'
        application/merge-patch+json:
          schema:
            $ref: '#/components/schemas/Monitor'
        application/json-patch+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Monitor'
              - type: array
                items:
                  $ref: '#/components/schemas/Monitor'
              - type: string
                nullable: true
        application/json-patch-query+json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Monitor'
              - type: array
                items:
                  $ref: '#/components/schemas/Monitor'
              - type: string
                nullable: true
    201Monitor:
      description: OK/Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Monitor'
    Error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Hub:
      description: Notified
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Hub'
  headers:
    X-Total-Count:
      description: Total number of items matching criteria
      schema:
        type: integer
    X-Result-Count:
      description: Actual number of items returned in the response body
      schema:
        type: integer
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      description: Oath2 grant type clientCredentials
      flows: 
        clientCredentials: 
          tokenUrl: https://api-test.non-prod.vf-dmp.engineering.vodafone.com/oauth2/v1/token
          scopes: {}

  examples:
    Retrieve_an_API_Product_Order_already_created_for_add__response:
      value:
        '@type': ApiProductOrder
        '@baseType': DCSProductOrder
        id: '322'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/322'
        state: completed
        creationDate: '2023-11-21T23:20:50.52Z'
        completionDate: '2023-10-21T23:21:50.52Z'
        externalId:
          - '@type': ExternalIdentifier
            externalIdentifierType: ApplicationOwnerCustomerOrder
            id: '2232342'
            owner: ChannelPartner
        description: Camara API order for an Application Owner
        productOrderItem:
          - '@type': ApiProductOrderItemAddDeviceLocationVerification
            '@baseType': ProductOrderItem
            id: '1'
            state: completed
            productOffering:
              '@type': ProductOfferingRef
              id: '202'
              name: areocloud_device_location_verification
            product:
              '@type': ProductRef
              id: '122'
            productAction:
              '@type': ApiProductActionAddDeviceLocationVerification
              '@baseType': ApiProductAction
              purpose: FraudPreventionAndDetection
              bestAccuracy: '100000'
              targetApplication:
                '@type': ApplicationRef
                id: '101'
            approvedProductOfferingTermOrCondition:
              - '@type': ProductOfferingTermOrCondition
                name: Device Location Term or Condition
                productOfferingTermOrConditionSpec:
                  id: '22332'
                  name: device_location_verification_terms
                  version: '1.1'
                productOfferingTermOrConditionApproval:
                  '@type': ProductOfferingTermOrConditionApproval
                  approvalDate: '2023-11-20T00:00'
                  authorization:
                    - '@type': Authorization
                      name: Application Owner representative
                      approver:
                        '@type': RelatedPartyRefOrPartyRoleRef
                        role: applicationOwner
                        partyOrPartyRole:
                          '@type': PartyRoleRef
                          id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: API Order representation.
    Retrieve_an_API_Product_Order_already_created_for_delete__response:
      value:
        '@type': ApiProductOrder
        '@baseType': DCSProductOrder
        id: '323'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/323'
        state: completed
        creationDate: '2023-11-21T23:20:50.52Z'
        completionDate: '2023-10-21T23:21:50.52Z'
        externalId:
          - '@type': ExternalIdentifier
            externalIdentifierType: ApplicationOwnerCustomerOrder
            id: '2232342'
            owner: ChannelPartner
        description: Camara API Unsubscription for an Application Owner
        productOrderItem:
          - '@type': ProductOrderItemDelete
            '@baseType': ProductOrderItem
            id: '1'
            state: completed
            product:
              '@type': ProductRef
              id: '122'
              name: device_location_verification
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: API Order representation.
    Retrieve_a_list_of_API_Product_Order_already_created__response:
      value:
        - '@type': ApiProductOrder
          '@baseType': DCSProductOrder
          id: '322'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/322'
          state: completed
          creationDate: '2023-11-21T23:20:50.52Z'
          completionDate: '2023-10-21T23:21:50.52Z'
          externalId:
            - '@type': ExternalIdentifier
              externalIdentifierType: ApplicationOwnerCustomerOrder
              id: '2232342'
              owner: ChannelPartner
          description: Camara API order for an Application Owner
          productOrderItem:
            - '@type': ApiProductOrderItemAddDeviceLocationVerification
              '@baseType': ProductOrderItem
              id: '1'
              state: completed
              productOffering:
                '@type': ProductOfferingRef
                id: '202'
                name: areocloud_device_location_verification
              product:
                '@type': ProductRef
                id: '122'
              productAction:
                '@type': ApiProductActionAddDeviceLocationVerification
                '@baseType': ApiProductAction
                purpose: FraudPreventionAndDetection
                bestAccuracy: '100000'
                targetApplication:
                  '@type': ApplicationRef
                  id: '101'
              approvedProductOfferingTermOrCondition:
                - '@type': ProductOfferingTermOrCondition
                  name: Device Location Term or Condition
                  productOfferingTermOrConditionSpec:
                    id: '22332'
                    name: device_location_verification_terms
                    version: '1.1'
                  productOfferingTermOrConditionApproval:
                    '@type': ProductOfferingTermOrConditionApproval
                    approvalDate: '2023-11-20T00:00'
                    authorization:
                      - '@type': Authorization
                        name: Application Owner representative
                        approver:
                          '@type': RelatedPartyRefOrPartyRoleRef
                          role: applicationOwner
                          partyOrPartyRole:
                            '@type': PartyRoleRef
                            id: '31'
          channelPartner:
            '@type': PartyRoleRef
            id: '15'
        - '@type': ApiProductOrder
          '@baseType': ProductOrder
          id: '323'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/323'
          state: completed
          creationDate: '2023-11-21T23:20:50.52Z'
          completionDate: '2023-10-21T23:21:50.52Z'
          externalId:
            - '@type': ExternalIdentifier
              externalIdentifierType: ApplicationOwnerCustomerOrder
              id: '2232342'
              owner: ChannelPartner
          description: Camara API Unsubscription for an Application Owner
          productOrderItem:
            - '@type': ProductOrderItemDelete
              '@baseType': ProductOrderItem
              id: '1'
              state: completed
              product:
                '@type': ProductRef
                id: '122'
                name: device_location_verification
          channelPartner:
            '@type': PartyRoleRef
            id: '15'
      description: A collection of API Order representation
    Retrieve_a_list_of_API_Product_Order_already_created_with_field_selection__response:
      value:
        - '@type': ApiProductOrder
          id: '322'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/322'
          state: completed
        - '@type': ApiProductOrder
          id: '323'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/323'
          state: completed
      description: >-
        A collection of API Product Order with filter selection. In the example above, the filtering
        is on the state field, and only products with a state of completed returned
    Retrieve_an_API_Product_already_created__response:
      value:
        '@type': ApiProductDeviceLocationVerification
        '@baseType': ApiProduct
        id: '122'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProduct/122'
        name: device_location_verification
        description: Open Gateway Device Location Verify
        creationDate: '2023-10-21T23:20:50.52Z'
        startDate: '2023-10-21T23:20:50.52Z'
        status: active
        productOffering:
          '@type': ProductOfferingRef
          id: '202'
          name: areocloud_device_location_verification
        productOrderItem:
          - '@type': RelatedProductOrderItem
            orderId: '322'
            orderItemId: '1'
            orderItermAction: add
            role: Creation order item on this product
          - '@type': RelatedProductOrderItem
            orderId: '323'
            orderItemId: '1'
            orderItermAction: modify
            role: Modify order item on this product
        productSpecification:
          '@type': ProductSpecificationRef
          id: '533'
          name: device_location_verification
          version: '1.0'
        apiName: LocationVerification
        apiVersionDetails:
          - '@type': ApiVersionDetails
            apiMajorVersion: 0
            basePath: location-verification
            apiGrantInformation:
              - '@type': ApiGrantInformation
                purpose: FraudPreventionAndDetection
                scope:
                  - 'location-verification:verify'
                grantType:
                  - 'urn:openid:params:grant-type:ciba'
                  - authorization_code
                legalBasis: 'dpv:Consent'
              - '@type': ApiGrantInformation
                scope:
                  - 'location-verification:read'
                grantType:
                  - client_credentials
        bestAccuracy: '500'
        approvedProductOfferingTermOrCondition:
          - '@type': ProductOfferingTermOrCondition
            name: Device Location Term or Condition
            productOfferingTermOrConditionSpec:
              '@type': ProductOfferingTermOrConditionSpec
              id: '22332'
              name: device_location_verification_terms
              version: '1.1'
            productOfferingTermOrConditionApproval:
              '@type': ProductOfferingTermOrConditionApproval
              approvalDate: '2023-11-20T00:00:00.000Z'
              authorization:
                - '@type': Authorization
                  name: Application Owner representative
                  approver:
                    '@type': RelatedPartyRefOrPartyRoleRef
                    role: applicationOwner
                    partyOrPartyRole:
                      '@type': PartyRoleRef
                      id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: API Order representation.
    Retrieve_a_list_of_API_Product_already_created__response:
      value:
        - '@type': ApiProductDeviceLocationVerification
          '@baseType': ApiProduct
          id: '122'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProduct/122'
          name: device_location_verification
          description: Open Gateway Device Location Verify
          creationDate: '2023-10-21T23:20:50.52Z'
          startDate: '2023-10-21T23:20:50.52Z'
          status: active
          productOffering:
            '@type': ProductOfferingRef
            id: '202'
            name: areocloud_device_location_verification
          productOrderItem:
            - '@type': RelatedProductOrderItem
              orderId: '322'
              orderItemId: '1'
              orderItermAction: add
              role: Creation order item on this product
            - '@type': RelatedProductOrderItem
              orderId: '323'
              orderItemId: '1'
              orderItermAction: modify
              role: Modify order item on this product
          productSpecification:
            '@type': ProductSpecificationRef
            id: '533'
            name: device_location_verification
            version: '1.0'
          apiName: LocationVerification
          apiVersionDetails:
            - '@type': ApiVersionDetails
              apiMajorVersion: 0
              basePath: location-verification
              apiGrantInformation:
                - '@type': ApiGrantInformation
                  purpose: FraudPreventionAndDetection
                  scope:
                    - 'location-verification:verify'
                  grantType:
                    - 'urn:openid:params:grant-type:ciba'
                    - authorization_code
                  legalBasis: 'dpv:Consent'
                - '@type': ApiGrantInformation
                  scope:
                    - 'location-verification:read'
                  grantType:
                    - client_credentials
          bestAccuracy: '100000'
          approvedProductOfferingTermOrCondition:
            - '@type': ProductOfferingTermOrCondition
              name: Device Location Term or Condition
              productOfferingTermOrConditionSpec:
                '@type': ProductOfferingTermOrConditionSpec
                id: '22332'
                name: device_location_verification_terms
                version: '1.1'
              productOfferingTermOrConditionApproval:
                '@type': ProductOfferingTermOrConditionApproval
                approvalDate: '2023-11-20T00:00:00.000Z'
                authorization:
                  - '@type': Authorization
                    name: Application Owner representative
                    approver:
                      '@type': RelatedPartyRefOrPartyRoleRef
                      role: applicationOwner
                      partyOrPartyRole:
                        '@type': PartyRoleRef
                        id: '31'
          channelPartner:
            '@type': PartyRoleRef
            id: '15'
      description: A collection of API representation
    Retrieve_a_list_of_API_Product_already_created_with_field_selection__response:
      value:
        - '@type': ApiProductDeviceLocationVerification
          id: '122'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProduct/122'
          status: active
      description: >-
        A collection of API Product with filter selection. In the example above, the filtering is on
        the state field, and only products with a state of active are returned
    Retrieve_an_Application_after_creation_response:
      value:
        '@type': Application
        '@baseType': LogicalResource
        id: '101'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
        name: Evolve Quest
        commercialName: Evolve Quest
        description: Evolve Quest mobile application
        category: games
        operationalState: enable
        approvalStatus: approved
        digitalIdentity:
          '@type': ApiDigitalIdentity
          clientId: evolve_quest_channelPartner15
          redirectUrl:
            - 'https://evolvequest.com/redirect'
          jwksUri: 'https://evolvequest.com/jwk'
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: Application representation
    Retrieve_an_Application_with_permissions_response:
      value:
        '@type': Application
        '@baseType': LogicalResource
        id: '102'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/102'
        name: Evolve West
        commercialName: Evolve West
        description: Evolve West mobile application
        category: games
        operationalState: enable
        approvalStatus: approved
        digitalIdentity:
          '@type': ApiDigitalIdentity
          clientId: evolve_quest_channelPartner15
          redirectUrl:
            - 'https://evolvewest.com/redirect'
          jwksUri: 'https://evolvewest.com/jwk'
        apiConsumerRole:
          - '@type': LogicalResourceRole
            '@baseType': EntityRole
            name: Evolve Quest application API consumer
            grantedPermissionSet:
              - '@type': ApiPermissionSet
                '@baseType': PermissionSet
                creationDate: '2023-10-21T23:20:50.52Z'
                validFor:
                  startDate: '2023-10-21T23:20:50.52Z'
                  endDate: '2026-09-21T23:20:50.52Z'
                permission:
                  '@type': ApiConsumerPermission
                  '@baseType': Permission
                  managedAssetGroup:
                    '@type': ApiListAssetGroup
                    '@baseType': AssetGroup
                    apiProduct:
                      - '@type': ProductRef
                        id: '123'
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: Application representation
    Retrieve_an_Application_without_digital_identity_response:
      value:
        '@type': Application
        '@baseType': LogicalResource
        id: '103'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/103'
        name: Evolve East
        commercialName: Evolve East
        description: Evolve East mobile application
        category: games
        operationalState: enable
        approvalStatus: approved
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        externalIdentifier:
          - '@type': ExternalIdentifier
            id: '1234'
            owner: ChannelPartner
            externalIdentifierType: ApplicationIdFromCP
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: Application representation
    Retrieve_a_list_of_Application_already_created__response:
      value:
        - '@type': Application
          '@baseType': LogicalResource
          id: '101'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
          name: Evolve Quest
          commercialName: Evolve Quest
          description: Evolve Quest mobile application
          category: games
          operationalState: enable
          approvalStatus: approved
          digitalIdentity:
            '@type': ApiDigitalIdentity
            clientId: evolve_quest_channelPartner15
            redirectUrl:
              - 'https://evolvequest.com/redirect'
            jwksUri: 'https://evolvequest.com/jwk'
          applicationOwner:
            '@type': PartyRoleRef
            id: '31'
          externalIdentifier:
            - '@type': ExternalIdentifier
              id: '1234'
              owner: ChannelPartner
              externalIdentifierType: ApplicationIdFromCP
          channelPartner:
            '@type': PartyRoleRef
            id: '15'
        - '@type': Application
          '@baseType': LogicalResource
          id: '102'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/102'
          name: Evolve West
          commercialName: Evolve West
          description: Evolve West mobile application
          category: games
          operationalState: enable
          approvalStatus: approved
          digitalIdentity:
            '@type': ApiDigitalIdentity
            clientId: evolve_quest_channelPartner15
            redirectUrl:
              - 'https://evolvewest.com/redirect'
            jwksUri: 'https://evolvewest.com/jwk'
          apiConsumerRole:
            - '@type': LogicalResourceRole
              '@baseType': EntityRole
              name: Evolve Quest application API consumer
              grantedPermissionSet:
                - '@type': ApiPermissionSet
                  '@baseType': PermissionSet
                  creationDate: '2023-10-21T23:20:50.52Z'
                  id: 09128
                  validFor:
                    startDate: '2023-10-21T23:20:50.52Z'
                    endDate: '2026-09-21T23:20:50.52Z'
                  apiConsumerPermissionManagedAssetGroup:
                    '@type': ApiListAssetGroup
                    '@baseType': AssetGroup
                    apiProduct:
                      - '@type': ProductRef
                        id: '123'
          applicationOwner:
            '@type': PartyRoleRef
            id: '31'
          channelPartner:
            '@type': PartyRoleRef
            id: '15'
      description: A collection of Application representation
    Retrieve_a_list_of_Application_already_created_with_field_selection__response:
      value:
        - '@type': Application
          id: '101'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
          approvalStatus: approved
        - '@type': Application
          id: '102'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/102'
          approvalStatus: approved
      description: A collection of Application with filter selection.
    Retrieve_an_ApplicationOwner__response:
      value:
        '@type': ApplicationOwner
        '@baseType': PartyRole
        id: '31'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
        name: Funtastic Games application owner role
        description: Application owner role in the Open Gateway context
        engagedParty:
          '@type': ApplicationOwnerOrganization
          '@baseType': Organization
          name: Funtastic Games SA
          tradingName: Funtastic Games
          isLegalEntity: true
          organizationType: ForProfitOrganisation
          privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
          taxNumber: 00.623.904/0001-73
          organizationIdentification:
            - '@type': OrganizationIdentification
              identificationType: CNPJ
              identificationId: 00.623.904/0001-73
              issuingAuthority: Receita Federal
          externalReference:
            - '@type': ExternalReference
              id: funtastic_games_asp
              externalReferenceType: organization name in channel partner IT
          registeredGeographicAddress:
            '@type': LightGeographicAddress
            '@baseType': GeographicAddress
            streetNr: '123'
            streetName: Avenida Paulista
            locality: Paraíso
            city: São Paulo
            stateOrProvince: São Paulo
            countryCode:
              '@type': ISO31661Alpha2StandardIdentifier
              '@baseType': StandardIdentifier
              value: BR
            postcode: 01311-000
            geographicSubAddress:
              '@type': LightGeographicSubAddress
              '@baseType': GeographicSubAddress
              buildingName: Fogo
              levelNumber: Planta 4
          contactMedium:
            - '@type': EmailContactMedium
              id: '1'
              preferred: true
              emailAddress: contact@funtasticgames.com
          legalRepresentative:
            '@type': Individual
            familyName: OConnor
            givenName: Jane
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: jane@funtasticgames.com
          dataProtectionOfficer:
            '@type': Organization
            name: DPO Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: dpo@funtasticgames.com
          privacyManager:
            '@type': Organization
            name: Privacy Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: privacy@funtasticgames.com
        status: inactive
        approvalStatus: pendingApproval
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: ApplicationOwner representation.
    Retrieve_a_list_of_ApplicationOwner_already_created__response:
      value:
        - '@type': ApplicationOwner
          '@baseType': PartyRole
          id: '31'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
          name: Funtastic Games application owner role
          description: Application owner role in the Open Gateway context
          engagedParty:
            '@type': ApplicationOwnerOrganization
            '@baseType': Organization
            name: Funtastic Games SA
            tradingName: Funtastic Games
            isLegalEntity: true
            organizationType: ForProfitOrganisation
            privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
            taxNumber: 00.623.904/0001-73
            organizationIdentification:
              - '@type': OrganizationIdentification
                identificationType: CNPJ
                identificationId: 00.623.904/0001-73
                issuingAuthority: Receita Federal
            externalReference:
              - '@type': ExternalReference
                id: funtastic_games_asp
                externalReferenceType: organization name in channel partner IT
            registeredGeographicAddress:
              '@type': LightGeographicAddress
              '@baseType': GeographicAddress
              streetNr: '123'
              streetName: Avenida Paulista
              locality: Paraíso
              city: São Paulo
              stateOrProvince: São Paulo
              countryCode:
                '@type': ISO31661Alpha2StandardIdentifier
                '@baseType': StandardIdentifier
                value: BR
              postcode: 01311-000
              geographicSubAddress:
                '@type': LightGeographicSubAddress
                '@baseType': GeographicSubAddress
                buildingName: Fogo
                levelNumber: Planta 4
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                emailAddress: contact@funtasticgames.com
            legalRepresentative:
              '@type': Individual
              familyName: OConnor
              givenName: Jane
              contactMedium:
                - '@type': EmailContactMedium
                  id: '1'
                  preferred: true
                  mediumType: email
                  emailAddress: jane@funtasticgames.com
            dataProtectionOfficer:
              '@type': Organization
              name: DPO Office
              organizationType: department
              contactMedium:
                - '@type': EmailContactMedium
                  id: '1'
                  preferred: true
                  mediumType: email
                  emailAddress: dpo@funtasticgames.com
            privacyManager:
              '@type': Organization
              name: Privacy Office
              organizationType: department
              contactMedium:
                - '@type': EmailContactMedium
                  id: '1'
                  preferred: true
                  mediumType: email
                  emailAddress: privacy@funtasticgames.com
          status: active
          approvalStatus: pendingApproval
          channelPartner:
            '@type': PartyRoleRef
            id: '15'
      description: A collection of ApplicationOwner representation
    Retrieve_a_list_of_ApplicationOwner_already_created_with_field_selection__response:
      value:
        - '@type': ApplicationOwner
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
          id: '31'
          approvalStatus: approved
      description: A collection of ApplicationOwner with filter selection.
    Retrieve_a_Monitor__response:
      value:
        '@type': Monitor
        id: '987654'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/monitor/987654'
        state: Completed
        request:
          method: POST
          to: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application'
          body:
            '@type': Application
            '@baseType': LogicalResource
            name: Evolve Quest
            commercialName: Evolve Quest
            description: Evolve Quest mobile application
            category: games
            operationalState: enable
            digitalIdentity:
              '@type': ApiDigitalIdentity
              clientId: evolve_quest_channelPartner15
              redirectUrl:
                - 'https://evolvequest.com/redirect'
              jwksUri: 'https://evolvequest.com/jwk'
            applicationOwner:
              '@type': PartyRoleRef
              id: '31'
        response:
          statusCode: '201'
          body:
            '@type': Application
            '@baseType': LogicalResource
            id: '101'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
            name: Evolve Quest
            commercialName: Evole Quest
            description: Evolve Quest mobile application
            category: games
            operationalState: enable
            approvalStatus: approved
            digitalIdentity:
              '@type': ApiDigitalIdentity
              clientId: evolve_quest_channelPartner15
              redirectUrl:
                - 'https://evolvequest.com/redirect'
              jwksUri: 'https://evolvequest.com/jwk'
            applicationOwner:
              '@type': PartyRoleRef
              id: '31'
            channelPartner:
              '@type': PartyRoleRef
              id: '15'
        sourceHref: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
      description: Monitor representation.
    Retrieve_a_list_of_Monitor_already_created__response:
      value:
        - '@type': Monitor
          id: '987654'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/monitor/987654'
          state: Completed
          request:
            method: POST
            to: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application'
            body:
              '@type': Application
              '@baseType': LogicalResource
              name: Evolve Quest
              commercialName: Evolve Quest
              description: Evolve Quest mobile application
              category: games
              operationalState: enable
              digitalIdentity:
                '@type': ApiDigitalIdentity
                clientId: evolve_quest_channelPartner15
                redirectUrl:
                  - 'https://evolvequest.com/redirect'
                jwksUri: 'https://evolvequest.com/jwk'
              applicationOwner:
                '@type': PartyRoleRef
                id: '31'
          response:
            statusCode: '201'
            body:
              '@type': Application
              '@baseType': LogicalResource
              id: '101'
              href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
              name: Evolve Quest
              commercialName: Evolve Quest
              description: Evolve Quest mobile application
              category: games
              operationalState: enable
              approvalStatus: approved
              digitalIdentity:
                '@type': ApiDigitalIdentity
                clientId: evolve_quest_channelPartner15
                redirectUrl:
                  - 'https://evolvequest.com/redirect'
                jwksUri: 'https://evolvequest.com/jwk'
              applicationOwner:
                '@type': PartyRoleRef
                id: '31'
              channelPartner:
                '@type': PartyRoleRef
                id: '15'
          sourceHref: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
        - '@type': Monitor
          id: '987653'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/monitor/987653'
          state: Completed
          request:
            method: POST
            to: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner'
            body:
              '@type': ApplicationOwner
              '@baseType': PartyRole
              name: Funtastic Games application owner role
              description: Application owner role in the Open Gateway context
              engagedParty:
                '@type': ApplicationOwnerOrganization
                '@baseType': Organization
                name: Funtastic Games SA
                tradingName: Funtastic Games
                isLegalEntity: true
                organizationType: ForProfitOrganisation
                privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
                taxNumber: 00.623.904/0001-73
                organizationIdentification:
                  - '@type': OrganizationIdentification
                    identificationType: CNPJ
                    identificationId: 00.623.904/0001-73
                    issuingAuthority: Receita Federal
                externalReference:
                  - '@type': ExternalReference
                    id: funtastic_games_asp
                    externalReferenceType: organization name in channel partner IT
                registeredGeographicAddress:
                  '@type': LightGeographicAddress
                  '@baseType': GeographicAddress
                  streetNr: '123'
                  streetName: Avenida Paulista
                  locality: Paraíso
                  city: São Paulo
                  stateOrProvince: São Paulo
                  countryCode:
                    '@type': ISO31661Alpha2StandardIdentifier
                    '@baseType': StandardIdentifier
                    value: BR
                  postcode: 01311-000
                  geographicSubAddress:
                    '@type': LightGeographicSubAddress
                    '@baseType': GeographicSubAddress
                    buildingName: Fogo
                    levelNumber: Planta 4
                contactMedium:
                  - '@type': EmailContactMedium
                    id: '1'
                    preferred: true
                    emailAddress: contact@funtasticgames.com
                legalRepresentative:
                  '@type': Individual
                  familyName: OConnor
                  givenName: Jane
                  contactMedium:
                    - '@type': EmailContactMedium
                      id: '1'
                      preferred: true
                      mediumType: email
                      emailAddress: jane@funtasticgames.com
                dataProtectionOfficer:
                  '@type': Organization
                  name: DPO Office
                  organizationType: department
                  contactMedium:
                    - '@type': EmailContactMedium
                      id: '1'
                      preferred: true
                      mediumType: email
                      emailAddress: dpo@funtasticgames.com
                privacyManager:
                  '@type': Organization
                  name: Privacy Office
                  organizationType: department
                  contactMedium:
                    - '@type': EmailContactMedium
                      id: '1'
                      preferred: true
                      mediumType: email
                      emailAddress: privacy@funtasticgames.com
              status: active
              channelPartner:
                '@type': PartyRoleRef
                id: '15'
          response:
            statusCode: '201'
            body:
              '@type': ApplicationOwner
              '@baseType': PartyRole
              id: '31'
              href: >-
                https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31
              name: Funtastic Games application owner role
              description: Application owner role in the Open Gateway context
              engagedParty:
                '@type': ApplicationOwnerOrganization
                '@baseType': Organization
                name: Funtastic Games SA
                tradingName: Funtastic Games
                isLegalEntity: true
                organizationType: ForProfitOrganisation
                privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
                taxNumber: 00.623.904/0001-73
                organizationIdentification:
                  - '@type': organizationIdentification
                    identificationType: CNPJ
                    identificationId: 00.623.904/0001-73
                    issuingAuthority: Receita Federal
                externalReference:
                  - '@type': ExternalReference
                    id: funtastic_games_asp
                    externalReferenceType: organization name in channel partner IT
                registeredGeographicAddress:
                  '@type': LightGeographicAddress
                  '@baseType': GeographicAddress
                  streetNr: '123'
                  streetName: Avenida Paulista
                  locality: Paraíso
                  city: São Paulo
                  stateOrProvince: São Paulo
                  countryCode:
                    '@type': ISO31661Alpha2StandardIdentifier
                    '@baseType': StandardIdentifier
                    value: BR
                  postcode: 01311-000
                  geographicSubAddress:
                    '@type': LightGeographicSubAddress
                    '@baseType': GeographicSubAddress
                    buildingName: Fogo
                    levelNumber: Planta 4
                contactMedium:
                  - '@type': EmailContactMedium
                    id: '1'
                    preferred: true
                    emailAddress: contact@funtasticgames.com
                legalRepresentative:
                  '@type': Individual
                  familyName: OConnor
                  givenName: Jane
                  contactMedium:
                    - '@type': EmailContactMedium
                      id: '1'
                      preferred: true
                      mediumType: email
                      emailAddress: jane@funtasticgames.com
                dataProtectionOfficer:
                  '@type': Organization
                  name: DPO Office
                  organizationType: department
                  contactMedium:
                    - '@type': EmailContactMedium
                      id: '1'
                      preferred: true
                      mediumType: email
                      emailAddress: dpo@funtasticgames.com
                privacyManager:
                  '@type': Organization
                  name: Privacy Office
                  organizationType: department
                  contactMedium:
                    - '@type': EmailContactMedium
                      id: '1'
                      preferred: true
                      mediumType: email
                      emailAddress: privacy@funtasticgames.com
              status: active
              approvalStatus: pendingApproval
              channelPartner:
                '@type': PartyRoleRef
                id: '15'
          sourceHref: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
      description: A collection of Monitor representation
    Retrieve_a_list_of_Monitor_already_created_with_field_selection__response:
      value:
        - '@type': Monitor
          id: '987654'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/monitor/987654'
          state: Completed
          sourceHref: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
        - '@type': Monitor
          id: '987653'
          href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/monitor/987653'
          state: Completed
          sourceHref: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
      description: A collection of Monitor with filter selection.
    Create_a_API_Product_Order_for_ordering_subscribe_a_new_product__request:
      value:
        '@type': ApiProductOrder
        '@baseType': ProductOrder
        # externalId:
        #   - '@type': ExternalIdentifier
        #     externalIdentifierType: ApplicationOwnerCustomerOrder
        #     id: '2232342'
        #     owner: ChannelPartner
        description: Camara API order for an ApplicationOwner
        productOrderItem:
          - '@type': ApiProductOrderItemAdd
            '@baseType': ProductOrderItem
            # id: '1'
            productOffering:
              '@type': ProductOfferingRef
              id: '202'
              name: areocloud_device_location_verification
            productAction:
              '@type': ApiProductActionAdd
              # '@baseType': ApiProductActionAdd
              purpose: ["FraudPreventionAndDetection"]
              scope: ["number-verification:verify"]
              # bestAccuracy: '500'
              targetApplication:
                '@type': ApplicationRef
                id: '101'
            # approvedProductOfferingTermOrCondition:
            #   - '@type': ProductOfferingTermOrCondition
            #     name: Device Location Term or Condition
            #     productOfferingTermOrConditionSpec:
            #       id: '22332'
            #       name: device_location_verification_terms
            #       version: '1.1'
            #     productOfferingTermOrConditionApproval:
            #       '@type': ProductOfferingTermOrConditionApproval
            #       approvalDate: '2023-11-20T00:00'
            #       authorization:
            #         - '@type': Authorization
            #           name: Application Owner representative
            #           approver:
            #             '@type': RelatedPartyRefOrPartyRoleRef
            #             role: applicationOwner
            #             partyOrPartyRole:
            #               '@type': PartyRoleRef
            #               id: '31'
      description: POST API Order Request Example
    Create_a_API_Product_Order_for_ordering_subscribe_a_new_product__response:
      value:
        '@type': ApiProductOrder
        '@baseType': DCSProductOrder
        id: '322'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/322'
        state: completed
        creationDate: '2023-11-21T23:20:50.52Z'
        completionDate: '2023-10-21T23:21:50.52Z'
        externalId:
          - '@type': ExternalIdentifier
            externalIdentifierType: ApplicationOwnerCustomerOrder
            id: '2232342'
            owner: ChannelPartner
        description: Camara API order for an Application Owner
        productOrderItem:
          - '@type': ApiProductOrderItemAddDeviceLocationVerification
            '@baseType': ProductOrderItem
            id: '1'
            state: completed
            productOffering:
              '@type': ProductOfferingRef
              id: '202'
              name: areocloud_device_location_verification
            product:
              '@type': ProductRef
              id: '122'
            productAction:
              '@type': ApiProductActionAddDeviceLocationVerification
              '@baseType': ApiProductActionAdd
              purpose: FraudPreventionAndDetection
              bestAccuracy: '500'
              targetApplication:
                '@type': ApplicationRef
                id: '101'
            approvedProductOfferingTermOrCondition:
              - '@type': ProductOfferingTermOrCondition
                name: Device Location Term or Condition
                productOfferingTermOrConditionSpec:
                  id: '22332'
                  name: device_location_verification_terms
                  version: '1.1'
                productOfferingTermOrConditionApproval:
                  '@type': ProductOfferingTermOrConditionApproval
                  approvalDate: '2023-11-20T00:00'
                  authorization:
                    - '@type': Authorization
                      name: Application Owner representative
                      approver:
                        '@type': RelatedPartyRefOrPartyRoleRef
                        role: applicationOwner
                        partyOrPartyRole:
                          '@type': PartyRoleRef
                          id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: POST API Order Response Example
    Create_a_API_Product_Order_for_ordering_unsubscribe_the_removal_of_an_existing_product__request:
      value:
        '@type': ApiProductOrder
        '@baseType': ProductOrder
        # externalId:
        #   - '@type': ExternalIdentifier
        #     externalIdentifierType: ApplicationOwnerCustomerOrder
        #     id: '2232342'
        #     owner: ChannelPartner
        description: Camara API Unsubscription for an Application Owner
        productOrderItem:
          - '@type': ApiProductOrderItemDelete
            '@baseType': ProductOrderItem
            # id: '1'
            product:
              '@type': ProductRef
              id: '122'
              name: device_location_verification
            productAction:
              '@type': ApiProductActionDelete
              targetApplication:
                - '@type': ApplicationRef
                  id: '101'
      description: POST API Order Request Example
    Create_a_API_Product_Order_for_ordering_unsubscribe_the_removal_of_an_existing_product__response:
      value:
        '@type': ApiProductOrder
        '@baseType': DCSProductOrder
        id: '323'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/323'
        state: completed
        creationDate: '2023-11-21T23:20:50.52Z'
        completionDate: '2023-10-21T23:21:50.52Z'
        externalId:
          - '@type': ExternalIdentifier
            externalIdentifierType: ApplicationOwnerCustomerOrder
            id: '2232342'
            owner: ChannelPartner
        description: Camara API Unsubscription for an Application Owner
        productOrderItem:
          - '@type': ProductOrderItemDelete
            '@baseType': ProductOrderItem
            id: '1'
            state: completed
            product:
              '@type': ProductRef
              id: '122'
              name: device_location_verification
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: POST API Order Response Example
    Create_an_Application_request:
      value:
        '@type': Application
        '@baseType': LogicalResource
        name: Evolve Quest
        commercialName: Evolve Quest
        description: Evolve Quest mobile application
        category: games
        # digitalIdentity:
        #   '@type': ApiDigitalIdentity
        #   clientId: evolve_quest_channelPartner15
        #   redirectUrl:
        #     - 'https://evolvequest.com/redirect'
        #   jwksUri: 'https://evolvequest.com/jwk'
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        # externalIdentifier:
        #   - '@type': ExternalIdentifier
        #     id: '1234'
        #     owner: Developer
        #     externalIdentifierType: ApplicationIdFromDeveloper
      description: POST Application Request Example
    Create_an_Application_response:
      value:
        '@type': Application
        '@baseType': LogicalResource
        id: '101'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
        name: Evolve Quest
        commercialName: Evolve Quest
        description: Evolve Quest mobile application
        category: games
        operationalState: enable
        approvalStatus: approved
        digitalIdentity:
          '@type': ApiDigitalIdentity
          clientId: evolve_quest_channelPartner15
          redirectUrl:
            - 'https://evolvequest.com/redirect'
          jwksUri: 'https://evolvequest.com/jwk'
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        externalIdentifier:
          - '@type': ExternalIdentifier
            id: '1234'
            owner: Developer
            externalIdentifierType: ApplicationIdFromDeveloper
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: POST Application Response Example
    Create_an_ApplicationOwner_request:
      value:
        '@type': ApplicationOwner
        # '@baseType': PartyRole
        name: Chief Information Officer (CTO)
        description: Chief Information Office (CTO)
        engagedParty:
          '@type': ApplicationOwnerOrganization
          # '@baseType': Organization
          name: Funtastic Games SA
          tradingName: Funtastic Games
          # isLegalEntity: true
          # organizationType: ForProfitOrganisation

          # privacyPolicyURL: 'https://www.funtasticgames.com/privacy'

          organizationIdentification:
            - '@type': OrganizationIdentification
              # identificationType: CNPJ
              identificationId: 00.623.904/0001-73
              # issuingAuthority: Receita Federal
          # externalReference:
          #   - '@type': ExternalReference
          #     id: funtastic_games_asp
          #     externalReferenceType: organization name in channel partner IT
          contactMedium:
            - '@type': EmailContactMedium
              # id: '1'
              # preferred: true
              # emailAddress: contact@funtasticgames.com

          legalRepresentative:
            '@type': Individual
            familyName: OConnor
            givenName: Jane
            contactMedium:
              - '@type': EmailContactMedium
                # id: '1'
                # preferred: true
                # mediumType: email
                # emailAddress: jane@funtasticgames.com
          # dataProtectionOfficer:
          #   '@type': Organization
          #   name: DPO Office
          #   organizationType: department
          #   contactMedium:
          #     - '@type': EmailContactMedium
          #       id: '1'
          #       preferred: true
          #       mediumType: email
          #       emailAddress: dpo@funtasticgames.com
          # privacyManager:
          #   '@type': Organization
          #   name: Privacy Office
          #   organizationType: department
          #   contactMedium:
          #     - '@type': EmailContactMedium
          #       id: '1'
          #       preferred: true
          #       mediumType: email
          #       emailAddress: privacy@funtasticgames.com
          registeredGeographicAddress:
            '@type': GeographicAddress
            # '@baseType': GeographicAddress
            # streetNr: '123'
            # streetName: Avenida Paulista
            # locality: Paraíso
            city: São Paulo
            # stateOrProvince: São Paulo
            countryCode:
              '@type': ISO31661Alpha2StandardIdentifier
              # '@baseType': StandardIdentifier
              value: BR
            # postcode: 01311-000
            # geographicSubAddress:
            #   '@type': LightGeographicSubAddress
            #   '@baseType': GeographicSubAddress
            #   buildingName: Fogo
            #   levelNumber: Planta 4


          taxNumber: 00.623.904/0001-73
          jurisdiction: "BR"
      description: POST ApplicationOwner Request Example
    Create_an_ApplicationOwner_response:
      value:
        '@type': ApplicationOwner
        '@baseType': PartyRole
        id: '31'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
        name: Funtastic Games application owner role
        description: Application owner role in the Open Gateway context
        engagedParty:
          '@type': ApplicationOwnerOrganization
          '@baseType': Organization
          name: Funtastic Games SA
          tradingName: Funtastic Games
          isLegalEntity: true
          organizationType: ForProfitOrganisation
          privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
          taxNumber: 00.623.904/0001-73
          organizationIdentification:
            - '@type': organizationIdentification
              # identificationType: CNPJ
              identificationId: 00.623.904/0001-73
              # issuingAuthority: Receita Federal
          # externalReference:
          #   - '@type': ExternalReference
          #     id: funtastic_games_asp
          #     externalReferenceType: organization name in channel partner IT
          # registeredGeographicAddress:
          #   '@type': LightGeographicAddress
          #   '@baseType': GeographicAddress
          #   streetNr: '123'
          #   streetName: Avenida Paulista
          #   locality: Paraíso
          #   city: São Paulo
          #   stateOrProvince: São Paulo
          #   countryCode:
          #     '@type': ISO31661Alpha2StandardIdentifier
          #     '@baseType': StandardIdentifier
          #     value: BR
          #   postcode: 01311-000
          #   geographicSubAddress:
          #     '@type': LightGeographicSubAddress
          #     '@baseType': GeographicSubAddress
          #     buildingName: Fogo
          #     levelNumber: Planta 4
          contactMedium:
            - '@type': EmailContactMedium
              # id: '1'
              # preferred: true
              # emailAddress: contact@funtasticgames.com
          legalRepresentative:
            '@type': Individual
            familyName: OConnor
            givenName: Jane
            contactMedium:
              - '@type': EmailContactMedium
                # id: '1'
                # preferred: true
                # mediumType: email
                # emailAddress: jane@funtasticgames.com
          dataProtectionOfficer:
            '@type': Organization
            name: DPO Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: dpo@funtasticgames.com
          privacyManager:
            '@type': Organization
            name: Privacy Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: privacy@funtasticgames.com
        status: active
        approvalStatus: pendingApproval
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: POST ApplicationOwner Response Example
    Application_Update_-_Patch_Merge_request:
      value:
        '@type': Application
        operationalState: disable
      description: An example of a request for updating an Application object.
    Application_Update_-_Patch_Merge_response:
      value:
        '@type': Application
        '@baseType': LogicalResource
        id: '101'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
        name: Evolve Quest
        commercialName: Evolve Quest
        description: Evolve Quest mobile application
        category: games
        operationalState: disable
        approvalStatus: approved
        digitalIdentity:
          '@type': ApiDigitalIdentity
          clientId: evolve_quest_channelPartner15
          redirectUrl:
            - 'https://evolvequest.com/redirect'
          jwksUri: 'https://evolvequest.com/jwk'
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: An example of a response for updating an Application object.
    Application_Update_-_JSON_Patch_request:
      value:
        - op: replace
          path: /operationalState
          value: disable
      description: An example of a request for updating an Application object.
    Application_Update_-_JSON_Patch_response:
      value:
        '@type': Application
        '@baseType': LogicalResource
        id: '101'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
        name: Evolve Quest
        commercialName: Evolve Quest
        description: Evolve Quest mobile application
        category: games
        operationalState: disable
        approvalStatus: approved
        digitalIdentity:
          '@type': ApiDigitalIdentity
          clientId: evolve_quest_channelPartner15
          redirectUrl:
            - 'https://evolvequest.com/redirect'
          jwksUri: 'https://evolvequest.com/jwk'
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: An example of a response for updating an Application object.
    Application_Update_-_JSON_Patch_Query_request:
      value:
        - op: replace
          path: /externalIdentifier?id=1234
          value:
            '@type': ExternalIdentifier
            id: '1234'
            owner: ChannelPartner
            externalIdentifierType: ApplicationIdFromCP
      description: An example of a request for updating an Application object.
    Application_Update_-_JSON_Patch_Query_response:
      value:
        '@type': Application
        '@baseType': LogicalResource
        id: '101'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
        name: Evolve Quest
        commercialName: Evole Quest
        description: Evolve Quest mobile application
        category: games
        operationalState: disable
        approvalStatus: approved
        digitalIdentity:
          '@type': ApiDigitalIdentity
          clientId: evolve_quest_channelPartner15
          redirectUrl:
            - 'https://evolvequest.com/redirect'
          jwksUri: 'https://evolvequest.com/jwk'
        applicationOwner:
          '@type': PartyRoleRef
          id: '31'
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: An example of a response for updating an Application object.
    ApplicationOwner_Update_-_Patch_Merge_request:
      value:
        '@type': ApplicationOwner
        status: Inactive
      description: An example of a request for updating an ApplicationOwner object.
    ApplicationOwner_Update_-_Patch_Merge_response:
      value:
        '@type': ApplicationOwner
        '@baseType': PartyRole
        id: '31'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
        name: Funtastic Games application owner role
        description: Application owner role in the Open Gateway context
        engagedParty:
          '@type': ApplicationOwnerOrganization
          '@baseType': Organization
          name: Funtastic Games Worldwide SA
          tradingName: Funtastic Games
          isLegalEntity: true
          organizationType: ForProfitOrganisation
          privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
          taxNumber: 00.623.904/0001-73
          organizationIdentification:
            - '@type': OrganizationIdentification
              identificationType: CNPJ
              identificationId: 00.623.904/0001-73
              issuingAuthority: Receita Federal
          externalReference:
            - '@type': ExternalReference
              id: funtastic_games_asp
              externalReferenceType: organization name in channel partner IT
          registeredGeographicAddress:
            '@type': LightGeographicAddress
            '@baseType': GeographicAddress
            streetNr: '123'
            streetName: Avenida Paulista
            locality: Paraíso
            city: São Paulo
            stateOrProvince: São Paulo
            countryCode:
              '@type': ISO31661Alpha2StandardIdentifier
              '@baseType': StandardIdentifier
              value: BR
            postcode: 01311-000
            geographicSubAddress:
              '@type': LightGeographicSubAddress
              '@baseType': GeographicSubAddress
              buildingName: Fogo
              levelNumber: Planta 4
          contactMedium:
            - '@type': EmailContactMedium
              id: '1'
              preferred: true
              emailAddress: contact@funtasticgames.com
          legalRepresentative:
            '@type': Individual
            familyName: OConnor
            givenName: Jane
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: jane@funtasticgames.com
          dataProtectionOfficer:
            '@type': Organization
            name: DPO Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                preferred: true
                mediumType: email
                emailAddress: dpo@funtasticgames.com
          privacyManager:
            '@type': Organization
            name: Privacy Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                preferred: true
                mediumType: email
                emailAddress: privacy@funtasticgames.com
        status: inactive
        approvalStatus: pendingApproval
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: An example of a response for updating an ApplicationOwner object.
    ApplicationOwner_Update_-_JSON_Patch_request:
      value:
        - op: replace
          path: /status
          value: inactive
      description: An example of a request for updating an ApplicationOwner object.
    ApplicationOwner_Update_-_JSON_Patch_response:
      value:
        '@type': ApplicationOwner
        '@baseType': PartyRole
        id: '31'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
        name: Funtastic Games application owner role
        description: Application owner role in the Open Gateway context
        engagedParty:
          '@type': ApplicationOwnerOrganization
          '@baseType': Organization
          name: Funtastic Games Worldwide SA
          tradingName: Funtastic Games
          isLegalEntity: true
          organizationType: ForProfitOrganisation
          privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
          taxNumber: 00.623.904/0001-73
          organizationIdentification:
            - '@type': OrganizationIdentification
              identificationType: CNPJ
              identificationId: 00.623.904/0001-73
              issuingAuthority: Receita Federal
          externalReference:
            - '@type': ExternalReference
              id: funtastic_games_asp
              externalReferenceType: organization name in channel partner IT
          registeredGeographicAddress:
            '@type': LightGeographicAddress
            '@baseType': GeographicAddress
            streetNr: '123'
            streetName: Avenida Paulista
            locality: Paraíso
            city: São Paulo
            stateOrProvince: São Paulo
            countryCode:
              '@type': ISO31661Alpha2StandardIdentifier
              '@baseType': StandardIdentifier
              value: BR
            postcode: 01311-000
            geographicSubAddress:
              '@type': LightGeographicSubAddress
              '@baseType': GeographicSubAddress
              buildingName: Fogo
              levelNumber: Planta 4
          contactMedium:
            - '@type': EmailContactMedium
              id: '1'
              preferred: true
              emailAddress: contact@funtasticgames.com
          legalRepresentative:
            '@type': Individual
            familyName: OConnor
            givenName: Jane
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: jane@funtasticgames.com
          dataProtectionOfficer:
            '@type': Organization
            name: DPO Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                preferred: true
                mediumType: email
                emailAddress: dpo@funtasticgames.com
          privacyManager:
            '@type': Organization
            name: Privacy Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                preferred: true
                mediumType: email
                emailAddress: privacy@funtasticgames.com
        status: inactive
        approvalStatus: pendingApproval
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: An example of a response for updating an ApplicationOwner object.
    ApplicationOwner_Update_-_JSON_Patch_Query_request:
      value:
        - op: replace
          path: /engagedParty.contactMedium?id=1
          value:
            '@type': EmailContactMedium
            id: '1'
            preferred: true
            emailAddress: newContact@funtasticgames.com
      description: An example of a request for updating an Application object.
    ApplicationOwner_Update_-_JSON_Patch_Query_response:
      value:
        '@type': ApplicationOwner
        '@baseType': PartyRole
        id: '31'
        href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
        name: Funtastic Games application owner role
        description: Application owner role in the Open Gateway context
        engagedParty:
          '@type': ApplicationOwnerOrganization
          '@baseType': Organization
          name: Funtastic Games Worldwide SA
          tradingName: Funtastic Games
          isLegalEntity: true
          organizationType: ForProfitOrganisation
          privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
          taxNumber: 00.623.904/0001-73
          organizationIdentification:
            - '@type': OrganizationIdentification
              identificationType: CNPJ
              identificationId: 00.623.904/0001-73
              issuingAuthority: Receita Federal
          externalReference:
            - '@type': ExternalReference
              id: funtastic_games_asp
              externalReferenceType: organization name in channel partner IT
          registeredGeographicAddress:
            '@type': LightGeographicAddress
            '@baseType': GeographicAddress
            streetNr: '123'
            streetName: Avenida Paulista
            locality: Paraíso
            city: São Paulo
            stateOrProvince: São Paulo
            countryCode:
              '@type': ISO31661Alpha2StandardIdentifier
              '@baseType': StandardIdentifier
              value: BR
            postcode: 01311-000
            geographicSubAddress:
              '@type': LightGeographicSubAddress
              '@baseType': GeographicSubAddress
              buildingName: Fogo
              levelNumber: Planta 4
          contactMedium:
            - '@type': EmailContactMedium
              id: '1'
              preferred: true
              emailAddress: contact@funtasticgames.com
          legalRepresentative:
            '@type': Individual
            familyName: OConnor
            givenName: Jane
            contactMedium:
              - '@type': EmailContactMedium
                id: '1'
                preferred: true
                mediumType: email
                emailAddress: jane@funtasticgames.com
          dataProtectionOfficer:
            '@type': Organization
            name: DPO Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                preferred: true
                mediumType: email
                emailAddress: dpo@funtasticgames.com
          privacyManager:
            '@type': Organization
            name: Privacy Office
            organizationType: department
            contactMedium:
              - '@type': EmailContactMedium
                preferred: true
                mediumType: email
                emailAddress: privacy@funtasticgames.com
        status: active
        approvalStatus: pendingApproval
        channelPartner:
          '@type': PartyRoleRef
          id: '15'
      description: An example of a response for updating an ApplicationOwner object.
    ApiProductOrderCreateEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a productOrder creation.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApiProductOrderCreateEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApiProductOrderCreateEvent
        event:
          productOrder:
            '@type': ApiProductOrder
            '@baseType': DCSProductOrder
            id: '322'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/322'
            state: completed
            creationDate: '2023-11-21T23:20:50.52Z'
            completionDate: '2023-10-21T23:21:50.52Z'
            externalId:
              - '@type': ExternalIdentifier
                externalIdentifierType: ApplicationOwnerCustomerOrder
                id: '2232342'
                owner: ChannelPartner
            description: Camara API order for an Application Owner
            productOrderItem:
              - '@type': ApiProductOrderItemAddDeviceLocationVerification
                '@baseType': ProductOrderItem
                id: '1'
                state: completed
                productOffering:
                  '@type': ProductOfferingRef
                  id: '202'
                  name: areocloud_device_location_verification
                product:
                  '@type': ProductRef
                  id: '122'
                productAction:
                  '@type': ApiProductActionAddDeviceLocationVerification
                  '@baseType': ApiProductActionAdd
                  purpose: FraudPreventionAndDetection
                  bestAccuracy: '500'
                  targetApplication:
                    - '@type': ApplicationRef
                      id: '101'
                approvedProductOfferingTermOrCondition:
                  - '@type': ProductOfferingTermOrCondition
                    name: Device Location Term or Condition
                    productOfferingTermOrConditionSpec:
                      id: '22332'
                      name: device_location_verification_terms
                      version: '1.1'
                    productOfferingTermOrConditionApproval:
                      '@type': ProductOfferingTermOrConditionApproval
                      approvalDate: '2023-11-20T00:00'
                      authorization:
                        - '@type': Authorization
                          name: Application Owner representative
                          approver:
                            '@type': RelatedPartyRefOrPartyRoleRef
                            role: applicationOwner
                            partyOrPartyRole:
                              '@type': PartyRoleRef
                              id: '31'
            channelPartner:
              '@type': PartyRoleRef
              id: '15'
        '@baseType': Event
        '@type': ApiProductOrderCreateEvent
      description: Message example for an ApiProductOrderCreateEvent event
    ApiProductOrderStateChangeEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a productOrder state change.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApiProductOrderStateChangeEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApiProductOrderStateChangeEvent
        event:
          productOrder:
            '@type': ApiProductOrder
            id: '322'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/322'
            state: cancelled
        '@baseType': Event
        '@type': ApiProductOrderStateChangeEvent
      description: Message example for an ApiProductOrderStateChangeEvent event
    ApiProductOrderAttributeValueChangeEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a productOrder attribute value change.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApiProductOrderAttributeValueChangeEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApiProductOrderAttributeValueChangeEvent
        event:
          productOrder:
            '@type': ApiProductOrder
            id: '322'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/apiProductOrder/322'
            state: completed
            completionDate: '2023-10-21T23:21:50.52Z'
        '@baseType': Event
        '@type': ApiProductOrderAttributeValueChangeEvent
      description: Message example for an ApiProductOrderAttributeValueChangeEvent event
    ApplicationCreateEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a application creation.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApplicationCreateEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApplicationCreateEvent
        event:
          application:
            '@type': Application
            '@baseType': LogicalResource
            id: '101'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
            name: Evolve Quest
            commercialName: Evolve Quest
            description: Evolve Quest mobile application
            category: games
            operationalState: enable
            approvalStatus: approved
            digitalIdentity:
              '@type': ApiDigitalIdentity
              clientId: evolve_quest_channelPartner15
              redirectUrl:
                - 'https://evolvequest.com/redirect'
              jwksUri: 'https://evolvequest.com/jwk'
            applicationOwner:
              '@type': PartyRoleRef
              id: '31'
            channelPartner:
              '@type': PartyRoleRef
              id: '15'
        '@baseType': Event
        '@type': ApplicationCreateEvent
      description: Message example for ApplicationCreateEvent event
    ApplicationApprovalStatusChangeEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a application approvalStatus change.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApplicationApprovalStatusChangeEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApplicationApprovalStatusChangeEvent
        event:
          application:
            '@type': Application
            id: '101'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/application/101'
            approvalStatus: approved
        '@baseType': Event
        '@type': ApplicationApprovalStatusChangeEvent
      description: Message example for an ApplicationApprovalStatusChangeEvent event
    ApplicationAttributeValueChangeEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a application attribute value change.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApplicationAttributeValueChangeEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApplicationAttributeValueChangeEvent
        event:
          application:
            '@type': Application
            id: '101'
            href: >-
              https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/101
            description: Evolve Quest awarded mobile application.
        '@baseType': Event
        '@type': ApplicationAttributeValueChangeEvent
      description: Message example for an ApplicationAttributeValueChangeEvent event
    ApplicationOwnerCreateEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a applicationOwner creation.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApplicationOwnerCreateEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApplicationOwnerCreateEvent
        event:
          applicationOwner:
            '@type': ApplicationOwner
            '@baseType': PartyRole
            id: '31'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
            name: Funtastic Games application owner role
            description: Application owner role in the Open Gateway context
            engagedParty:
              '@type': ApplicationOwnerOrganization
              '@baseType': Organization
              name: Funtastic Games SA
              tradingName: Funtastic Games
              isLegalEntity: true
              organizationType: ForProfitOrganisation
              privacyPolicyURL: 'https://www.funtasticgames.com/privacy'
              taxNumber: 00.623.904/0001-73
              organizationIdentification:
                - '@type': organizationIdentification
                  identificationType: CNPJ
                  identificationId: 00.623.904/0001-73
                  issuingAuthority: Receita Federal
              externalReference:
                - '@type': ExternalReference
                  id: funtastic_games_asp
                  externalReferenceType: organization name in channel partner IT
              registeredGeographicAddress:
                '@type': LightGeographicAddress
                '@baseType': GeographicAddress
                streetNr: '123'
                streetName: Avenida Paulista
                locality: Paraíso
                city: São Paulo
                stateOrProvince: São Paulo
                countryCode:
                  '@type': ISO31661Alpha2StandardIdentifier
                  '@baseType': StandardIdentifier
                  value: BR
                postcode: 01311-000
                geographicSubAddress:
                  '@type': LightGeographicSubAddress
                  '@baseType': GeographicSubAddress
                  buildingName: Fogo
                  levelNumber: Planta 4
              contactMedium:
                - '@type': EmailContactMedium
                  id: '1'
                  preferred: true
                  emailAddress: contact@funtasticgames.com
              legalRepresentative:
                '@type': Individual
                familyName: OConnor
                givenName: Jane
                contactMedium:
                  - '@type': EmailContactMedium
                    id: '1'
                    preferred: true
                    mediumType: email
                    emailAddress: jane@funtasticgames.com
              dataProtectionOfficer:
                '@type': Organization
                name: DPO Office
                organizationType: department
                contactMedium:
                  - '@type': EmailContactMedium
                    id: '1'
                    preferred: true
                    mediumType: email
                    emailAddress: dpo@funtasticgames.com
              privacyManager:
                '@type': Organization
                name: Privacy Office
                organizationType: department
                contactMedium:
                  - '@type': EmailContactMedium
                    id: '1'
                    preferred: true
                    mediumType: email
                    emailAddress: privacy@funtasticgames.com
            status: active
            approvalStatus: pendingApproval
            channelPartner:
              '@type': PartyRoleRef
              id: '15'
        '@baseType': Event
        '@type': ApplicationOwnerCreateEvent
      description: Message example for ApplicationOwnerCreateEvent event
    ApplicationOwnerApprovalStatusChangeEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a applicationOwner approvalStatus change.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApplicationOwnerApprovalStatusChangeEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApplicationOwnerApprovalStatusChangeEvent
        event:
          applicationOwner:
            '@type': ApplicationOwner
            id: '31'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
            approvalStatus: approved
        '@baseType': Event
        '@type': ApplicationOwnerApprovalStatusChangeEvent
      description: Message example for an ApplicationOwnerApprovalStatusChangeEvent event
    ApplicationOwnerAttributeValueChangeEvent_request:
      value:
        correlationId: 126-54f
        description: Event for a applicationOwner attribute value change.
        domain: Open Gateway Onboarding
        eventId: '125'
        eventTime: '2023-09-27T07:43:59.059Z'
        eventType: ApplicationOwnerAttributeValueChangeEvent
        priority: '1'
        timeOcurred: '2023-09-27T07:43:59.059Z'
        title: ApplicationOwnerAttributeValueChangeEvent
        event:
          applicationOwner:
            '@type': ApplicationOwner
            id: '31'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/applicationOwner/31'
            description: Application owner role in the GSMA Open Gateway context.
        '@baseType': Event
        '@type': ApplicationOwnerAttributeValueChangeEvent
      description: Message example for an ApplicationOwnerAttributeValueChangeEvent event
    MonitorStateChangeEvent_request:
      value:
        correlationId: 987-46i
        description: Event for a monitor state change.
        domain: Open Gateway Onboarding
        eventId: '987'
        eventTime: '2023-10-27T07:43:59.059Z'
        eventType: MonitorStateChangeEvent
        priority: '1'
        timeOcurred: '2023-10-27T07:43:59.059Z'
        title: MonitorStateChangeEvent
        event:
          monitor:
            '@type': Monitor
            id: '987654'
            href: 'https://mycsp.com:8080/tmf-api/openGatewayOnboardingAndOrdering/v5/monitor/987654'
            state: Completed
        '@baseType': Event
        '@type': MonitorStateChangeEvent
      description: Message example for an MonitorStateChangeEvent event
