GSMA Open Gateway API Product API

Operations for ApiProduct Resource

Operations 2

GET /apiProduct List or find ApiProduct objects #
GET /apiProduct/{id} Retrieves a ApiProduct by ID #

Documentation

📖
Documentation
https://github.com/camaraproject/NumberVerification
📖
APIReference
https://camaraproject.github.io/swagger-ui/
📖
Documentation
https://www.gsma.com/solutions-and-impact/gsma-open-gateway/gsma-open-gateway-api-descriptions/
📖
Documentation
https://github.com/camaraproject/SimSwap
📖
Documentation
https://github.com/camaraproject/DeviceSwap
📖
Documentation
https://github.com/camaraproject/CallForwardingSignal
📖
Documentation
https://github.com/camaraproject/KnowYourCustomerMatch
📖
Documentation
https://github.com/camaraproject/KnowYourCustomerAgeVerification
📖
Documentation
https://github.com/camaraproject/Tenure
📖
Documentation
https://github.com/camaraproject/OTPValidation
📖
Documentation
https://github.com/camaraproject/QualityOnDemand
📖
Documentation
https://github.com/camaraproject/DeviceReachabilityStatus
📖
Documentation
https://github.com/camaraproject/DeviceIdentifier
📖
Documentation
https://github.com/camaraproject/DeviceStatus
📖
Documentation
https://github.com/camaraproject/PopulationDensityData
📖
Documentation
https://github.com/camaraproject/DeviceLocation
📖
Documentation
https://github.com/camaraproject/SimpleEdgeDiscovery
📖
Documentation
https://github.com/camaraproject/CarrierBillingCheckOut
📖
Documentation
https://github.com/camaraproject/HomeDevicesQoD
📖
Documentation
https://github.com/tmforum-apis/TMF931_OpenGatewayOnboardingAndOrderingComponentSuite
📖
APIReference
https://github.com/tmforum-apis/TMF931_OpenGatewayOnboardingAndOrderingComponentSuite

Specifications

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/open-gateway-apiproduct-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

open-gateway-apiproduct-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open Gateway Operate API Onboarding and Ordering API Product API
  description: "**TMF931 - API Ordering, Developer & Application Onboarding and Management**   \n\nThis 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 : \n- Application Owner (Developer) Management (acceptance, onboarding, lifecycle management)  \n- Application Management (acceptance, onboarding, lifecycle management)  \n- Service API Management (ordering, retrieving)\n\nThis API is a composite DCS (Domain Context Specialization) of the following TMF Open APIs for Open Gateway context\n- TMF622 Product Ordering Management v5.0\n- TMF637 Product Inventory Management v5.0\n- TMF669 Party Role Management v5.0\n- TMF639 Resource Inventory v5.0\n\nCopyright © TM Forum 2025. All Rights Reserved\n"
  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: apiProduct
  description: Operations for ApiProduct Resource
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'
components:
  schemas:
    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
    DpvFrequencyType:
      enum:
      - dpv:ContinuousFrequency
      - dpv:OftenFrequency
      - dpv:SingularFrequency
      - dpv:SporadicFrequency
      type: string
      description: Valid values for the data processing frequency based on W3C Data Privacy Vocabulary v2 https://w3c.github.io/dpv/2.0/dpv/
    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
    Extensible:
      type: object
      description: Base Extensible schema for use in TMForum Open-APIs - When used for 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'
    PartyRef:
      type: object
      description: A Party reference
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          PartyRef: '#/components/schemas/PartyRef'
    DpvProcessingOperationType:
      enum:
      - dpv:Access
      - dpv:Acquire
      - dpv:Adapt
      - dpv:Aggregate
      - dpv:Align
      - dpv:Alter
      - dpv:Analyse
      - dpv:Anonymise
      - dpv:Assess
      - dpv:Collect
      - dpv:Combine
      - dpv:Consult
      - dpv:Copy
      - dpv:CrossBorderTransfer
      - dpv:Delete
      - dpv:Derive
      - dpv:Destruct
      - dpv:Disclose
      - dpv:DiscloseByTransmission
      - dpv:Display
      - dpv:Disseminate
      - dpv:Download
      - dpv:Erase
      - dpv:Export
      - dpv:Filter
      - dpv:Format
      - dpv:Generate
      - dpv:Infer
      - dpv:MakeAvailable
      - dpv:Match
      - dpv:Modify
      - dpv:Monitor
      - dpv:Move
      - dpv:Observe
      - dpv:Obtain
      - dpv:Organise
      - dpv:Profiling
      - dpv:Pseudonymise
      - dpv:Query
      - dpv:Record
      - dpv:Reformat
      - dpv:Remove
      - dpv:Restrict
      - dpv:Retrieve
      - dpv:Screen
      - dpv:Share
      - dpv:Store
      - dpv:Structure
      - dpv:Transfer
      - dpv:Transform
      - dpv:Transmit
      - dpv:Use
      type: string
      description: Valid values for the data processing operation based on W3C Data Privacy Vocabulary v2 https://w3c.github.io/dpv/2.0/dpv/.
    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'
    Entity:
      type: object
      description: Base entity schema for use in TMForum Open-APIs. Property.
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/Addressable'
    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'
          product:
            $ref: '#/components/schemas/ProductRef'
          applicationLegalBasisForInputData:
            $ref: '#/components/schemas/DpvLegalBasisType'
          process:
            type: array
            items:
              $ref: '#/components/schemas/DpvProcess'
            description: Lists all the operations or 'processing' performed on data by the data consumer.
          purposeReason:
            type: string
            description: Explain the reason justifying the purpose, indicating specifically which is the reason why the API is employed as part of the application's use case.
          userConsentScreenshot:
            $ref: '#/components/schemas/SimpleAttachment'
      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'
          deprecated: true
          description: DEPRECATED not possible yet to have the ID of the individual that made the approval.
    ProductRelationship:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - $ref: '#/components/schemas/EntityRef'
      - type: object
        description: Used to describe relationship between product.
        properties:
          id:
            type: string
            description: Id of the related product
          relationshipType:
            type: string
            description: Relationship type as relies on, bundles, etc...
      discriminator:
        propertyName: '@type'
        mapping:
          OpenGatewayProductRelationship: '#/components/schemas/OpenGatewayProductRelationship'
          ProductRelationship: '#/components/schemas/ProductRelationship'
    ApiGrantInformation:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: ApiGrantInformation is a structured set of information regarding the grant of access to an API product, detailing its purpose, scope, grant type, and legal basis for usage.
        properties:
          purpose:
            $ref: '#/components/schemas/DpvPurposeType'
          scope:
            type: array
            items:
              type: string
            description: 'One or several scopes of the API, as stated in the API that has been purchased. Examples: "sim-swap:retrieve-date" '
          grantType:
            type: array
            items:
              type: string
            description: "One or several grantType of the API, as stated in the API that has been purchased. Examples:\n  \"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:
            $ref: '#/components/schemas/DpvLegalBasisType'
      discriminator:
        propertyName: '@type'
        mapping:
          ApiGrantInformation: '#/components/schemas/ApiGrantInformation'
    SimpleAttachment:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: Complements the description of an element (for instance a product) through video, pictures...
        properties:
          content:
            type: string
            format: base64
            description: The actual contents of the attachment object, if embedded, encoded as base64
          mimeType:
            type: string
            enum:
            - application/pdf
            description: a technical characterization of the attachment content format using IETF Mime Types
          url:
            type: string
            description: Uniform Resource Locator, is a web page address (a subset of URI)
      discriminator:
        propertyName: '@type'
        mapping:
          SimpleAttachment: '#/components/schemas/SimpleAttachment'
    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)
    RelatedPartyRefOrPartyRoleRef:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: RelatedParty reference. A related party defines party or 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'
    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'
    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'
    ApiProduct_RES:
      type: object
      description: Response object for ApiProduct
      allOf:
      - $ref: '#/components/schemas/ApiProduct'
      required:
      - id
      - href
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProduct: '#/components/schemas/ApiProduct'
          ApiProductDeviceLocationVerification: '#/components/schemas/ApiProductDeviceLocationVerification'
          ApiProductLocationVerificationAntifraud: '#/components/schemas/ApiProductLocationVerificationAntifraud'
          UsageVolumeProductLocationVerification: '#/components/schemas/UsageVolumeProductLocationVerification'
    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'
    ItemActionType:
      enum:
      - add
      - modify
      - delete
      - noChange
      type: string
      description: action to be performed on the entity managed by the item
    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'
    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:
            deprecated: true
            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 product order
      discriminator:
        propertyName: '@type'
        mapping:
          RelatedOrderItem: '#/components/schemas/RelatedOrderItem'
    DpvProcessingContextType:
      enum:
      - dpv:AlgorithmicLogic
      - dpv:AssistiveAutomation
      - dpv:AutomatedDecisionMaking
      - dpv:AutomatedScoringOfIndividuals
      - dpv:AutomationLevel
      - dpv:Autonomous
      - dpv:CannotChallengeProcess
      - dpv:CannotChallengeProcessInput
      - dpv:CannotChallengeProcessOutput
      - dpv:CannotCorrectProcess
      - dpv:CannotCorrectProcessInput
      - dpv:CannotCorrectProcessOutput
      - dpv:CannotObjectToProcess
      - dpv:CannotOptInToProcess
      - dpv:CannotOptOutFromProcess
      - dpv:CannotReverseProcessEffects
      - dpv:CannotReverseProcessInput
      - dpv:CannotReverseProcessOutput
      - dpv:CannotWithdrawFromProcess
      - dpv:ChallengingProcess
      - dpv:ChallengingProcessInput
      - dpv:ChallengingProcessOutput
      - dpv:ConditionalAutomation
      - dpv:ConsentControl
      - dpv:CorrectingProcess
      - dpv:CorrectingProcessInput
      - dpv:CorrectingProcessOutput
      - dpv:CompletelyManualProcessing
      - dpv:DataControllerDataSource
      - dpv:DataPublishedByDataSubject
      - dpv:DataSource
      - dpv:DataSubject
      - dpv:DataSubjectDataSource
      - dpv:DataSubjectScale
      - dpv:DataVolume
      - dpv:DecisionMaking
      - dpv:EntityActiveInvolvement
      - dpv:EntityInvolvement
      - dpv:EntityNonInvolvement
      - dpv:EntityNonPermissiveInvolvement
      - dpv:EntityPassiveInvolvement
      - dpv:EntityPermissiveInvolvement
      - dpv:EvaluationOfIndividuals
      - dpv:EvaluationScoring
      - dpv:FullAutomation
      - dpv:GeographicCoverage
      - dpv:GlobalScale
      - dpv:HighAutomation
      - dpv:HugeDataVolume
      - dpv:HugeScaleOfDataSubjects
      - dpv:HumanInvolved
      - dpv:HumanInvolvement
      - dpv:HumanInvolvementForControl
      - dpv:HumanInvolvementForDecision
      - dpv:HumanInvolvementForInput
      - dpv:HumanInvolvementForIntervention
      - dpv:HumanInvolvementForOversight
      - dpv:HumanInvolvementForVerification
      - dpv:HumanNotInvolved
      - dpv:InnovativeUseOfExistingTechnology
      - dpv:InnovativeUseOfNewTechnologies
      - dpv:InnovativeUseOfTechnology
      - dpv:LargeDataVolume
      - dpv:LargeScaleOfDataSubjects
      - dpv:LargeScaleProcessing
      - dpv:LocalEnvironmentScale
      - dpv:LocalityScale
      - dpv:MediumDataVolume
      - dpv:MediumScaleOfDataSubjects
      - dpv:MediumScaleProcessing
      - dpv:MultiNationalScale
      - dpv:NationalScale
      - dpv:NearlyGlobalScale
      - dpv:NonPublicDataSource
      - dpv:NotAutomated
      - dpv:ObjectingToProcess
      - dpv:ObtainConsent
      - dpv:OptingInToProcess
      - dpv:OptingOutFromProcess
      - dpv:PartialAutomation
      - dpv:ProcessingCondition
      - dpv:ProcessingDuration
      - dpv:ProcessingLocation
      - dpv:ProcessingScale
      - dpv:ProvideConsent
      - dpv:PublicDataSource
      - dpv:ReaffirmConsent
      - dpv:RegionalScale
      - dpv:ReversingProcessEffects
      - dpv:ReversingProcessInput
      - dpv:ReversingProcessOutput
      - dpv:Scale
      - dpv:ScoringOfIndividuals
      - dpv:SingularDataVolume
      - dpv:SingularScaleOfDataSubjects
      - dpv:SmallDataVolume
      - dpv:SmallScaleOfDataSubjects
      - dpv:SmallScaleProcessing
      - dpv:SporadicDataVolume
      - dpv:SporadicScaleOfDataSubjects
      - dpv:StorageCondition
      - dpv:StorageDeletion
      - dpv:StorageDuration
      - dpv:StorageLocation
      - dpv:StorageRestoration
      - dpv:SystematicMonitoring
      - dpv:ThirdPartyDataSource
      - dpv:WithdrawConsent
      - dpv:WithdrawingFromProcess
      type: string
      description: Valid values for the data processing context classes based on W3C Data Privacy Vocabulary v2 https://w3c.github.io/dpv/2.0/dpv/
    DpvPurposeType:
      enum:
      - dpv:AcademicResearch
      - dpv:AccountManagement
      - dpv:Advertising
      - dpv:AgeVerification
      - dpv:CombatClimateChange
      - dpv:CommercialPurpose
      - dpv:CommercialResearch
      - dpv:CommunicationForCustomerCare
      - dpv:CommunicationManagement
      - dpv:CounterMoneyLaundering
      - dpv:Counterterrorism
      - dpv:CreditChecking
      - dpv:CustomerCare
      - dpv:CustomerClaimsManagement
      - dpv:CustomerManagement
      - dpv:CustomerOrderManagement
      - dpv:CustomerRelationshipManagement
      - dpv:CustomerSolvencyMonitoring
      - dpv:DataAltruism
      - dpv:DeliveryOfGoods
      - dpv:DirectMarketing
      - dpv:DisputeManagement
      - dpv:EnforceAccessControl
      - dpv:EnforceSecurity
      - dpv:EstablishContractualAgreement
      - dpv:FraudPreventionAndDetection
      - dpv:FulfilmentOfContractualObligation
      - dpv:FulfilmentOfObligation
      - dpv:HumanResourceManagement
      - dpv:IdentityAuthentication
      - dpv:IdentityVerification
      - dpv:ImproveExistingProductsAndServices
      - dpv:ImproveHealthcare
      - dpv:ImproveInternalCRMProcesses
      - dpv:ImprovePublicServices
      - dpv:ImproveTransportMobility
      - dpv:IncreaseServiceRobustness
      - dpv:InternalResourceOptimisation
      - dpv:LegalCompliance
      - dpv:MaintainCreditCheckingDatabase
      - dpv:MaintainCreditRatingDatabase
      - dpv:MaintainFraudDatabase
      - dpv:Marketing
      - dpv:MemberPartnerManagement
      - dpv:MisusePreventionAndDetection
      - dpv:NonCommercialPurpose
      - dpv:NonCommercialResearch
      - dpv:OptimisationForConsumer
      - dpv:OptimisationForController
      - dpv:OptimiseUserInterface
      - dpv:OrganisationComplianceManagement
      - dpv:OrganisationGovernance
      - dpv:OrganisationRiskManagement
      - dpv:PaymentManagement
      - dpv:Personalisation
      - dpv:PersonalisedAdvertising
      - dpv:PersonalisedBenefits
      - dpv:PersonnelHiring
      - dpv:PersonnelManagement
      - dpv:PersonnelPayment
      - dpv:ProtectionOfIPR
      - dpv:ProtectionOfNationalSecurity
      - dpv:ProtectionOfPublicSecurity
      - dpv:ProvideEventRecommendations
      - dpv:ProvideOfficialStatistics
      - dpv:ProvidePersonalisedRecommendations
      - dpv:ProvideProductRecommendations
      - dpv:PublicBenefit
      - dpv:PublicPolicyMaking
      - dpv:PublicRelations
      - dpv:RecordManagement
      - dpv:RepairImpairments
      - dpv:RequestedServiceProvision
      - dpv:ResearchAndDevelopment
      - dpv:RightsFulfillment
      - dpv:ScientificResearch
      - dpv:SearchFunctionalities
      - dpv:SellDataToThirdParties
      - dpv:SellInsightsFromData
      - dpv:SellProducts
      - dpv:SellProductsToDataSubject
      - dpv:ServiceOptimisation
      - dpv:ServicePersonalisation
      - dpv:ServiceProvision
      - dpv:ServiceRegistration
      - dpv:ServiceUsageAnalytics
      - dpv:SocialMediaMarketing
      - dpv:TargetedAdvertising
      - dpv:TechnicalServiceProvision
      - dpv:UserInterfacePersonalisation
      - dpv:VendorManagement
      - dpv:VendorPayment
      - dpv:VendorRecordsManagement
      - dpv:VendorSelectionAssessment
      - dpv:Verification
      type: string
      description: 'Valid values for the purpose based on W3C Data Privacy Vocabulary v2 https://w3c.github.io/dpv/2.0/dpv/ '
    DpvDurationType:
      enum:
      - dpv:EndlessDuration
      - dpv:FixedOccurrencesDuration
      - dpv:IndeterminateDuration
      - dpv:TemporalDuration
      - dpv:UntilEventDuration
      - dpv:UntilTimeDuration
      type: string
      description: Valid values for the data processing duration based on W3C Data Privacy Vocabulary v2 https://w3c.github.io/dpv/2.0/dpv/
    Addressable:
      type: object
      description: Base schema for addressable entities
      properties:
        href:
          type: string
          description: Hyperlink reference
        id:
          type: string
          description: unique identifier
    OpenGatewayProductRelationship:
      allOf:
      - $ref: '#/components/schemas/ProductRelationship'
      - type: object
        description: Used to describe relationship between product in the Open Gateway context.
        properties:
          relationshipType:
            type: string
            description: Relationship in the Open Gateway context. bundles is used when the id in the productRelationship is the id of a product bundled into the main product. appliesOn is used when the id in the productRelationship is the id of a product to which the main product applies on (like a usage volume product applies on an API product).
            enum:
            - bundles
            - appliesOn
    DpvContext:
      allOf:
      - $ref: '#/components/schemas/Extensible'
      - type: object
        description: Describes all the context and conditions within which processing takes place
        properties:
          processingContext:
            type: array
            items:
              $ref: '#/components/schemas/DpvProcessingContextType'
            description: context classes of the data processing of the API.
          duration:
            $ref: '#/components/schemas/DpvDurationType'
          frequency:
            $ref: '#/components/schemas/DpvFrequencyType'
      discriminator:
        propertyName: '@type'
        mapping:
          DpvContext: '#/components/schemas/DpvContext'
    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'
    ProductRef:
      type: object
      description: A Product reference
      allOf:
      - $ref: '#/components/schemas/EntityRef'
      discriminator:
        propertyName: '@type'
        mapping:
          ProductRef: '#/components/schemas/ProductRef'
    ApiProduct:
      allOf:
      - $ref: '#/components/schemas/Entity'
      - type: object
        description: ApiProduct is a specialization of a Product being an instance of an atomic ProductOffering or a ProductSpecification that is realized by an API (the Service).
        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: Is the description of the product. It could be same description than Product Offering one.
          productOffering:
            $ref: '#/components/schemas/ProductOfferingRef'
          productSpecification:
            $ref: '#/components/schemas/ProductSpecificationRef'
          productRelationship:
            type: array
            description: Collection of product relationships
            items:
              $ref: '#/components/schemas/OpenGatewayProductRelationship'
          apiName:
            type: string
            description: Standardized name of the API.
          apiVersionDetails:
            type: array
            items:
              $ref: '#/components/schemas/ApiVersionDetails'
            description: A set of ApiProduct characteristics grouped together by API major version.
          purpose:
            $ref: '#/components/schemas/DpvPurposeType'
          countryCode:
            type: array
            items:
              $ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier'
            description: One or several countries where API is operated.
          productOrderItem:
            type: array
            items:
              $ref: '#/components/schemas/RelatedOrderItem'
            description: A reference to the Product Order items that involved this Product.
          approvedProductOfferingTermOrCondition:
            type: array
            items:
              $ref: '#/components/schemas/ProductOfferingTermOrCondition'
            description: Approved Terms or Conditions of the ProductOffering.
          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: Is the date from which the product starts
          orderDate:
            type: string
            format: date-time
            description: Is the date when the product was ordered
          terminationDate:
            type: string
            format: date-time
            description: Is the date when the product was terminated
          channelPartner:
            $ref: '#/components/schemas/PartyRoleRef'
          agreementItem:
            type: array
            items:
              $ref: '#/components/schemas/AgreementItemRef'
            description: Collection of agreement items that involves this Product.
      discriminator:
        propertyName: '@type'
        mapping:
          ApiProduct: '#/components/schemas/ApiProduct'
          ApiProductDeviceLocationVerification: '#/component

# --- truncated at 32 KB (74 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/open-gateway/refs/heads/main/openapi/open-gateway-apiproduct-api-openapi.yml