TM Forum TMF931 Open Gateway Onboarding and Ordering API

TM Forum TMF931 Open Gateway Operate API - Onboarding and Ordering 5.2.1, the GSMA-defined 'Operate API' that channel partners and aggregators use to onboard against an operator: browse the API product catalogue, place API product orders, manage applications and application owners, and subscribe to lifecycle events. This is the machine-readable onboarding path into Open Gateway, and it is certified jointly by GSMA and TM Forum alongside the CAMARA service APIs. Twenty-two operations, Apache-2.0 licensed.

OpenAPI Specification

tmforum-tmf931-open-gateway-onboarding-ordering-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Open Gateway Operate API Onboarding and Ordering
  description: >
    **TMF931 - API Ordering, Developer & Application Onboarding and Management**   


    This Operate API specification covers the onboarding operations between Channel Partners and
    Operators as described by GSMA. It offers a consolidation of multiple TM Forum based APIs into a
    single specification (a component suite). This API specification proposes : 

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

    - Application Management (acceptance, onboarding, lifecycle management)  

    - Service API Management (ordering, retrieving)


    This API is a composite DCS (Domain Context Specialization) of the following TMF Open APIs for
    Open Gateway context

    - TMF622 Product Ordering Management v5.0

    - TMF637 Product Inventory Management v5.0

    - TMF669 Party Role Management v5.0

    - TMF639 Resource Inventory v5.0


    Copyright © TM Forum 2025. All Rights Reserved
  version: 5.2.1
  x-generation-tooling-version: v8.5.15
  x-generation-data-model-version: unknown
  x-generation-date: '2025-12-11T09:49:01.463Z'
  x-api-id: TMF931
  license:
    name: Apache License 2.0
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
servers:
  - 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
      operationId: listApiProduct
      parameters:
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Before'
        - $ref: '#/components/parameters/After'
        - $ref: '#/components/parameters/Sort'
        - $ref: '#/components/parameters/Filter'
      responses:
        '200':
          $ref: '#/components/responses/200ApiProductArray'
        '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'
  '/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.
      operationId: retrieveApiProduct
      parameters:
        - $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'
        '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'
  /apiProductOrder:
    get:
      tags:
        - apiProductOrder
      summary: List or find ApiProductOrder objects
      description: List or find ApiProductOrder objects
      operationId: listApiProductOrder
      parameters:
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Before'
        - $ref: '#/components/parameters/After'
        - $ref: '#/components/parameters/Sort'
        - $ref: '#/components/parameters/Filter'
      responses:
        '200':
          $ref: '#/components/responses/200ApiProductOrderArray'
        '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'
    post:
      tags:
        - apiProductOrder
      summary: Creates a ApiProductOrder
      description: This operation creates a ApiProductOrder entity.
      operationId: createApiProductOrder
      parameters:
        - $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'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  '/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.
      operationId: retrieveApiProductOrder
      parameters:
        - $ref: '#/components/parameters/Id'
        - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200ApiProductOrder_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'
  /application:
    post:
      tags:
        - application
      summary: Creates a Application
      description: This operation creates a Application entity.
      operationId: createApplication
      parameters:
        - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/Application_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201Application'
        '202':
          description: Accepted
        '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'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    get:
      tags:
        - application
      summary: List or find Application objects
      description: List or find Application objects
      operationId: listApplication
      parameters:
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Before'
        - $ref: '#/components/parameters/After'
        - $ref: '#/components/parameters/Sort'
        - $ref: '#/components/parameters/Filter'
      responses:
        '200':
          $ref: '#/components/responses/200ApplicationArray'
        '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'
  '/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.
      operationId: retrieveApplication
      parameters:
        - $ref: '#/components/parameters/Id'
        - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200Application_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'
    patch:
      tags:
        - application
      summary: Updates partially a Application
      description: This operation updates partially a Application entity.
      operationId: patchApplication
      parameters:
        - $ref: '#/components/parameters/Id'
        - $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'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /applicationOwner:
    post:
      tags:
        - applicationOwner
      summary: Creates a ApplicationOwner
      description: This operation creates a ApplicationOwner entity.
      operationId: createApplicationOwner
      parameters:
        - $ref: '#/components/parameters/Fields'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationOwner_FVO'
      responses:
        '201':
          $ref: '#/components/responses/201ApplicationOwner'
        '202':
          description: Accepted
        '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'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
    get:
      tags:
        - applicationOwner
      summary: List or find ApplicationOwner objects
      description: List or find ApplicationOwner objects
      operationId: listApplicationOwner
      parameters:
        - $ref: '#/components/parameters/Fields'
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/Before'
        - $ref: '#/components/parameters/After'
        - $ref: '#/components/parameters/Sort'
        - $ref: '#/components/parameters/Filter'
      responses:
        '200':
          $ref: '#/components/responses/200ApplicationOwnerArray'
        '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'
  '/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.
      operationId: retrieveApplicationOwner
      parameters:
        - $ref: '#/components/parameters/Id'
        - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          $ref: '#/components/responses/200ApplicationOwner_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'
    patch:
      tags:
        - applicationOwner
      summary: Updates partially a ApplicationOwner
      description: This operation updates partially a ApplicationOwner entity.
      operationId: patchApplicationOwner
      parameters:
        - $ref: '#/components/parameters/Id'
        - $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'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
        '501':
          $ref: '#/components/responses/501'
        '503':
          $ref: '#/components/responses/503'
  /hub:
    post:
      operationId: createHub
      summary: Create a subscription (hub) to receive Events
      description: Sets the communication endpoint to receive Events.
      tags:
        - events subscription
      requestBody:
        $ref: '#/components/requestBodies/Hub_FVO'
      responses:
        '201':
          $ref: '#/components/responses/Hub'
        default:
          $ref: '#/components/responses/Error'
  '/hub/{id}':
    get:
      operationId: hubGet
      summary: Retrieve a subscription (hub)
      description: This operation retrieves the subscription to receive Events.
      tags:
        - events subscription
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '200':
          $ref: '#/components/responses/Hub'
        default:
          $ref: '#/components/responses/Error'
    delete:
      operationId: hubDelete
      summary: Remove a subscription (hub) to receive Events
      description: This operation removes the subscription to receive Events.
      tags:
        - events subscription
      parameters:
        - $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
      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'
        - $ref: '#/components/parameters/Before'
        - $ref: '#/components/parameters/After'
        - $ref: '#/components/parameters/Sort'
        - $ref: '#/components/parameters/Filter'
      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'
components:
  schemas:
    Addressable:
      type: object
      description: Base schema for addressable entities
      properties:
        href:
          type: string
          description: Hyperlink reference
        id:
          type: string
          description: unique identifier
    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'
    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: An ApiConsumerPermission allows an Application to consume an API.
          properties:
            managedAssetGroup:
              $ref: '#/components/schemas/ApiListAssetGroup'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiConsumerPermission: '#/components/schemas/ApiConsumerPermission'
    ApiDigitalIdentity:
      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. DEPRECATED
            in the POST and PATCH, this attribute can't be valued by the API consumer in this
            context.
          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. DEPRECATED in the POST and the PATCH, this attribute
                can't be valued by the API consumer in this context.
            redirectUrl:
              type: array
              deprecated: true
              items:
                type: string
              description: >-
                DEPRECATED : moved to Application schema. After a user successfully authorizes an
                application, the authorization server will redirect the user back to the
                application.
            jwksUri:
              deprecated: true
              type: string
              description: >-
                DEPRECATED : moved to Application schema. 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. DEPRECATED
            in the POST and PATCH, this attribute can't be valued by the API consumer in this
            context.
          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. DEPRECATED in the POST and the PATCH, this attribute
                can't be valued by the API consumer in this context.
            redirectUrl:
              type: array
              deprecated: true
              items:
                type: string
              description: >-
                DEPRECATED : moved to Application schema. After a user successfully authorizes an
                application, the authorization server will redirect the user back to the
                application.
            jwksUri:
              deprecated: true
              type: string
              description: >-
                DEPRECATED : moved to Application schema. JSON Web Key (JWK) is a data structure
                that represents a cryptographic key
      discriminator:
        

# --- truncated at 32 KB (386 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/open-gateway/refs/heads/main/openapi/tmforum-tmf931-open-gateway-onboarding-ordering-openapi.yml