Comments (13)
Before you spend too much time on this... Wait for Redocly team to reply because there were previous issues with discriminator and composition keywords not resolving correctly. They may have more information on this issue than I do.
from redoc.
You have quite a few errors in the "not working" file.
First big thing is you have duplicate mapping keys. These four schemas are listed under components>schemas
but in reality, they appear to be a Response Object
and should be defined in components>responses
. I moved them there and they are duplicated with existing entries. So removing these will fix a major issue.
The second major issue are the missing schemas and examples defined in refs. There are quite a few missing, including the entire components>examples
entry. I see 96 invalid refs
from redoc.
@amarreo did this solve your issue?
from redoc.
Hi @jeremyfiel!
The problem of the missing references is known; as I explained in the "additional context" section of the issue, the original file is too big and I've just removed some parts to make the analysis easier. The question is that those missing references are also present in the "working" file, but this one is loading... (the same happens with the duplicated keys, they should be also duplicated in the working file)
If you prefer it, I can upload the big original yaml file, to discard that the performance issue could be related to those problems you have detected in the edited "working" and "not working files"...
Please, confirm it to me and I will upload the large original file.
Thanks!
from redoc.
Sure, I'll try it myself. go ahead and upload it when you get a chance
from redoc.
@jeremyfiel , attached the original yaml file
openapi.yaml.txt
Thanks in advance!
from redoc.
without taking hours to rebuild a working example.. I would say your liberal use of discriminator
is creating havoc.
Can you explain your motive to use this property? Are you trying to do something with the code generation or expecting to document differing responses to a single endpoint?
First off, you are discriminating with circular references to the parent schema AND using @type
but this property doesn't exist at most of the schemas you are trying to discriminate.
The jist is .. the discriminated property must be present in all schemas defined in your allOf
array.
An example of this follows:
- circular reference to
ApiProduct
schema. - the second subschema doesn't contain a property
@type
JSON Schema doesn't use inheritance and from what I gather looking at your schemas, you're trying to do exactly this. Each subschema in a composition keyword (oneOf, anyOf , allOf) are treated as separate schemas and all instances must all be valid against each schema in an allOf
scenario. This is not the case with your structure.
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: >-
Is the description of the product. It could be same description than Product
Offering one.
purpose:
type: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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" \
...
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" \
...
productOffering:
$ref: '#/components/schemas/ProductOfferingRef'
productSpecification:
$ref: '#/components/schemas/ProductSpecificationRef'
productOrderItem:
type: array
items:
$ref: '#/components/schemas/RelatedOrderItem'
signedTermOrCondition:
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: 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'
discriminator:
propertyName: '@type'
mapping:
ApiProduct: '#/components/schemas/ApiProduct'
ApiProductDeviceLocationVerification: '#/components/schemas/ApiProductDeviceLocationVerification'
In your mapping from ApiProduct
, there exists another circular reference to ApiProduct
schema
ApiProductDeviceLocationVerification:
allOf:
- $ref: '#/components/schemas/ApiProduct'
- 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:
bestAccuracy:
type: integer
description: Localization data accuracy
I created a partial repro and disabled all of your discriminator
keywords and references to Extensible
and EntityRef
. I didn't go further than that but that should get you started in the right direction. There is a great primer to learn how to define discriminator
a little better here
This file renders fairly quickly and without any errors.
I narrowed it down to one path and response body. I didn't want to spend too much time dissecting all of the required schemas, so they are all copied here . It doesn't mean they are all used.
openapi: 3.0.1
info:
title: Onboarding and Ordering Component Suite
description: >
**API Ordering, Developer & Application Onboarding and Management**
version: 5.0.0
paths:
/apiProduct:
get:
tags:
- apiProduct
summary: List or find ApiProduct objects
description: List or find ApiProduct objects
operationId: listApiProduct
x-fp-scopes:
- ogwOnboardingAndOrdering:apiProd:read
parameters: []
responses:
'200':
$ref: '#/components/responses/200ApiProductArray'
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
properties:
id:
type: string
description: unique identifier
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/Extensible'
- $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/Extensible_FVO'
- $ref: '#/components/schemas/EntityRef_FVO'
discriminator:
propertyName: '@type'
mapping:
AgreementRef: '#/components/schemas/AgreementRef_FVO'
AgreementRef_MVO:
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/Extensible'
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
AgreementRef: '#/components/schemas/AgreementRef_MVO'
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'
ApiAuthorization_MVO:
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_MVO'
required:
- approver
discriminator:
propertyName: '@type'
mapping:
ApiAuthorization: '#/components/schemas/ApiAuthorization_MVO'
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'
discriminator:
propertyName: '@type'
mapping:
ApiConsumerPermission: '#/components/schemas/ApiConsumerPermission_FVO'
ApiConsumerPermission_MVO:
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_MVO'
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.
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.
jwksUrl:
type: string
description: JSON Web Key (JWK) is a data structure that represents a cryptographic key
issuerUrl:
type: string
description: >-
The issuer URL uniquely identifies a Connect2id server instance in the various
tokens that it mints as OpenID provider / OAuth 2.0 authorisation server.
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_FVO'
- 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
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.
jwksUrl:
type: string
description: JSON Web Key (JWK) is a data structure that represents a cryptographic key
issuerUrl:
type: string
description: >-
The issuer URL uniquely identifies a Connect2id server instance in the various
tokens that it mints as OpenID provider / OAuth 2.0 authorisation server.
discriminator:
propertyName: '@type'
mapping:
ApiDigitalIdentity: '#/components/schemas/ApiDigitalIdentity_FVO'
ApiDigitalIdentity_MVO:
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
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.
jwksUrl:
type: string
description: JSON Web Key (JWK) is a data structure that represents a cryptographic key
issuerUrl:
type: string
description: >-
The issuer URL uniquely identifies a Connect2id server instance in the various
tokens that it mints as OpenID provider / OAuth 2.0 authorisation server.
discriminator:
propertyName: '@type'
mapping:
ApiDigitalIdentity: '#/components/schemas/ApiDigitalIdentity_MVO'
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
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
discriminator:
propertyName: '@type'
mapping:
ApiPermissionSet: '#/components/schemas/ApiPermissionSet_FVO'
ApiPermissionSet_MVO:
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_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: >-
Is the description of the product. It could be same description than Product
Offering one.
purpose:
type: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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" \
...
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" \
...
productOffering:
$ref: '#/components/schemas/ProductOfferingRef'
productSpecification:
$ref: '#/components/schemas/ProductSpecificationRef'
productOrderItem:
type: array
items:
$ref: '#/components/schemas/RelatedOrderItem'
signedTermOrCondition:
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: 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'
ApiProductActionAdd:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionAdd is a specialization of a ProductAction, for the context
for action to add a product.
properties:
purpose:
type: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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" \
...
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"
targetApplication:
$ref: '#/components/schemas/ApplicationRef'
discriminator:
propertyName: '@type'
mapping:
ApiProductActionAdd: '#/components/schemas/ApiProductActionAdd'
ApiProductActionAddDeviceLocationVerification: '#/components/schemas/ApiProductActionAddDeviceLocationVerification'
ApiProductActionAddDeviceLocationVerification:
allOf:
- $ref: '#/components/schemas/ApiProductActionAdd'
- type: object
description: >-
An ApiProductActionAddDeviceLocationVerification is a specialization of a ProductAction
for Device Location Verification API, for the context for action to add a
product.
properties:
bestAccuracy:
type: integer
description: Localization data accuracy
purpose:
type: string
enum:
- FraudPreventionAndDetection
- CommercialResearch
ApiProductActionAdd_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionAdd is a specialization of a ProductAction, for the context
for action to add a product.
properties:
purpose:
type: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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" \
...
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"
targetApplication:
$ref: '#/components/schemas/ApplicationRef_FVO'
required:
- targetApplication
discriminator:
propertyName: '@type'
mapping:
ApiProductActionAdd: '#/components/schemas/ApiProductActionAdd_FVO'
ApiProductActionAdd_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionAdd is a specialization of a ProductAction, for the context
for action to add a product.
properties:
purpose:
type: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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" \
...
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"
targetApplication:
$ref: '#/components/schemas/ApplicationRef_MVO'
required:
- targetApplication
discriminator:
propertyName: '@type'
mapping:
ApiProductActionAdd: '#/components/schemas/ApiProductActionAdd_MVO'
ApiProductActionDelete:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionDelete is a specialization of a ProductAction, for the
context for action to delete a product.
properties:
targetApplication:
$ref: '#/components/schemas/ApplicationRef'
discriminator:
propertyName: '@type'
mapping:
ApiProductActionDelete: '#/components/schemas/ApiProductActionDelete'
ApiProductActionDeleteDeviceLocationVerification: '#/components/schemas/ApiProductActionDeleteDeviceLocationVerification'
ApiProductActionDeleteDeviceLocationVerification:
type: object
description: >-
An ApiProductActionDeleteDeviceLocationVerification is a specialization of a ProductAction
for Device Location Verification API, for the context for action to delete a
product.
allOf:
- $ref: '#/components/schemas/ApiProductActionDelete'
ApiProductActionDelete_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionDelete is a specialization of a ProductAction, for the
context for action to delete a product.
properties:
targetApplication:
$ref: '#/components/schemas/ApplicationRef_FVO'
discriminator:
propertyName: '@type'
mapping:
ApiProductActionDelete: '#/components/schemas/ApiProductActionDelete_FVO'
ApiProductActionDelete_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionDelete is a specialization of a ProductAction, for the
context for action to delete a product.
properties:
targetApplication:
$ref: '#/components/schemas/ApplicationRef_MVO'
discriminator:
propertyName: '@type'
mapping:
ApiProductActionDelete: '#/components/schemas/ApiProductActionDelete_MVO'
ApiProductActionModify:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionModify is a specialization of a ProductAction, for the
context for 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: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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.
scope:
type: array
items:
type: string
description: 'One or several scopes of the API, as stated in the API ProductSpecification.'
targetApplication:
$ref: '#/components/schemas/ApplicationRef'
discriminator:
propertyName: '@type'
mapping:
ApiProductActionModify: '#/components/schemas/ApiProductActionModify'
ApiProductActionModifyDeviceLocationVerification: '#/components/schemas/ApiProductActionModifyDeviceLocationVerification'
ApiProductActionModifyDeviceLocationVerification:
allOf:
- $ref: '#/components/schemas/ApiProductActionModify'
- type: object
description: >-
An ApiProductActionModifyDeviceLocationVerification is a specialization of a
ProductAction for Device Location Verification API, for the context for action
to modify a product.
properties:
bestAccuracy:
type: integer
description: Localization data accuracy
purpose:
type: string
enum:
- FraudPreventionAndDetection
- CommercialResearch
ApiProductActionModify_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionModify is a specialization of a ProductAction, for the
context for 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: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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.
scope:
type: array
items:
type: string
description: 'One or several scopes of the API, as stated in the API ProductSpecification.'
targetApplication:
$ref: '#/components/schemas/ApplicationRef_FVO'
discriminator:
propertyName: '@type'
mapping:
ApiProductActionModify: '#/components/schemas/ApiProductActionModify_FVO'
ApiProductActionModify_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
An ApiProductActionModify is a specialization of a ProductAction, for the
context for 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: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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.
scope:
type: array
items:
type: string
description: 'One or several scopes of the API, as stated in the API ProductSpecification.'
targetApplication:
$ref: '#/components/schemas/ApplicationRef_MVO'
discriminator:
propertyName: '@type'
mapping:
ApiProductActionModify: '#/components/schemas/ApiProductActionModify_MVO'
ApiProductDeviceLocationVerification:
allOf:
- $ref: '#/components/schemas/ApiProduct'
- 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:
bestAccuracy:
type: integer
description: Localization data accuracy
ApiProductOrder:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: >-
An ApiProductOrder is a specialization of a 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
productOrderErrorMessage:
type: array
items:
$ref: '#/components/schemas/ProductOrderErrorMessage'
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'
ApiProductOrderErrorMessageEvent:
allOf:
- $ref: '#/components/schemas/Event'
- type: object
description: ApiProductOrderErrorMessageEvent generic structure
properties:
event:
$ref: '#/components/schemas/ApiProductOrderErrorMessageEventPayload'
discriminator:
propertyName: '@type'
mapping:
ApiProductOrderErrorMessageEvent: '#/components/schemas/ApiProductOrderErrorMessageEvent'
ApiProductOrderErrorMessageEventPayload:
type: object
description: ApiProductOrderErrorMessageEventPayload
properties:
productOrder:
$ref: '#/components/schemas/ApiProductOrder'
ApiProductOrderItemAdd:
allOf:
- $ref: '#/components/schemas/DCSProductOrderItem'
- type: object
description: >-
An ApiProductOrderItemAdd is a specialization of a ProductOrderItem, for the
context for 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'
signedTermOrCondition:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTermOrCondition'
state:
$ref: '#/components/schemas/ProductOrderItemStateType'
product:
$ref: '#/components/schemas/ApiProductRefOrValue'
ApiProductOrderItemAdd_FVO:
allOf:
- $ref: '#/components/schemas/DCSProductOrderItem_FVO'
- type: object
description: >-
An ApiProductOrderItemAdd is a specialization of a ProductOrderItem, for the
context for 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_FVO'
productAction:
$ref: '#/components/schemas/ApiProductActionAdd_FVO'
signedTermOrCondition:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTermOrCondition_FVO'
state:
$ref: '#/components/schemas/ProductOrderItemStateType'
product:
$ref: '#/components/schemas/ApiProductRefOrValue'
required:
- id
- productOffering
- signedTermOrCondition
- productAction
ApiProductOrderItemDelete:
allOf:
- $ref: '#/components/schemas/DCSProductOrderItem'
- type: object
description: >-
An ApiProductOrderItemDelete is a specialization of a ProductOrderItem, for the
context 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,
...)
productAction:
$ref: '#/components/schemas/ApiProductActionDelete'
product:
$ref: '#/components/schemas/ProductRef'
state:
$ref: '#/components/schemas/ProductOrderItemStateType'
ApiProductOrderItemDelete_FVO:
allOf:
- $ref: '#/components/schemas/DCSProductOrderItem_FVO'
- type: object
description: >-
An ApiProductOrderItemDelete is a specialization of a ProductOrderItem, for the
context 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,
...)
productAction:
$ref: '#/components/schemas/ApiProductActionDelete_FVO'
product:
$ref: '#/components/schemas/ProductRef_FVO'
state:
$ref: '#/components/schemas/ProductOrderItemStateType'
required:
- id
- apiProduct
- state
ApiProductOrderItemModify:
allOf:
- $ref: '#/components/schemas/DCSProductOrderItem'
- type: object
description: >-
An ApiProductOrderItemModify is a specialization of a ProductOrderItem, for the
context for 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,
...)
productAction:
$ref: '#/components/schemas/ApiProductActionModify'
signedTermOrCondition:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTermOrCondition'
state:
$ref: '#/components/schemas/ProductOrderItemStateType'
product:
$ref: '#/components/schemas/ApiProductRefOrValue'
ApiProductOrderItemModify_FVO:
allOf:
- $ref: '#/components/schemas/DCSProductOrderItem_FVO'
- type: object
description: >-
An ApiProductOrderItemModify is a specialization of a ProductOrderItem, for the
context for 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,
...)
productAction:
$ref: '#/components/schemas/ApiProductActionModify_FVO'
signedTermOrCondition:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTermOrCondition_FVO'
state:
$ref: '#/components/schemas/ProductOrderItemStateType'
product:
$ref: '#/components/schemas/ApiProductRefOrValue'
required:
- id
- product
- targetApplication
- signedTermOrCondition
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_FVO'
- type: object
description: >-
An ApiProductOrder is a specialization of a 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_FVO'
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'
ApiProductOrder_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- type: object
description: >-
An ApiProductOrder is a specialization of a 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_MVO'
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_MVO'
channelPartner:
$ref: '#/components/schemas/PartyRoleRef_MVO'
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
productOrderErrorMessage:
type: array
items:
$ref: '#/components/schemas/ProductOrderErrorMessage_MVO'
required:
- creationDate
- state
- apiProductOrderItem
discriminator:
propertyName: '@type'
mapping:
ApiProductOrder: '#/components/schemas/ApiProductOrder_MVO'
ApiProductRefOrValue:
type: object
description: ' Entity reference or value'
oneOf:
- $ref: '#/components/schemas/ProductRef'
- $ref: '#/components/schemas/ApiProduct'
discriminator:
propertyName: '@type'
mapping:
ProductRef: '#/components/schemas/ProductRef'
ApiProduct: '#/components/schemas/ApiProduct'
ApiProductDeviceLocationVerification: '#/components/schemas/ApiProductDeviceLocationVerification'
ApiProduct_FVO:
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- 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: >-
Is the description of the product. It could be same description than Product
Offering one.
purpose:
type: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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" \
...
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" \
...
productOffering:
$ref: '#/components/schemas/ProductOfferingRef_FVO'
productSpecification:
$ref: '#/components/schemas/ProductSpecificationRef_FVO'
productOrderItem:
type: array
items:
$ref: '#/components/schemas/RelatedOrderItem_FVO'
signedTermOrCondition:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTermOrCondition_FVO'
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_FVO'
discriminator:
propertyName: '@type'
mapping:
ApiProduct: '#/components/schemas/ApiProduct_FVO'
ApiProduct_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- 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: >-
Is the description of the product. It could be same description than Product
Offering one.
purpose:
type: array
items:
$ref: '#/components/schemas/ApiPurposeType'
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" \
...
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" \
...
productOffering:
$ref: '#/components/schemas/ProductOfferingRef_MVO'
productSpecification:
$ref: '#/components/schemas/ProductSpecificationRef_MVO'
productOrderItem:
type: array
items:
$ref: '#/components/schemas/RelatedOrderItem_MVO'
signedTermOrCondition:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTermOrCondition_MVO'
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_MVO'
discriminator:
propertyName: '@type'
mapping:
ApiProduct: '#/components/schemas/ApiProduct_MVO'
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.
Application:
allOf:
- $ref: '#/components/schemas/LogicalResource'
- 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 retrive the Application official logo.
category:
type: string
description: The category of the Application
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'
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
digitalIdentity:
$ref: '#/components/schemas/ApiDigitalIdentity'
apiConsumerRole:
type: array
items:
$ref: '#/components/schemas/LogicalResourceRole'
description: 'Each 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'
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. Applicaiton 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:
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.
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.
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 means for contacting the party, e.g. mobile phone, email address'
legalRepresentative:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole'
dataProtectionOfficer:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole'
privacyManager:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole'
registeredGeographicAddress:
$ref: '#/components/schemas/GeographicAddressContactMedium'
taxNumber:
type: string
description: Tax number of the Organization in the country
jurisdiction:
type: string
description: Legal authority granted to the Organization to enact justice.
privacyPolicyURL:
type: string
description: Url to privacy policy.
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerOrganization: '#/components/schemas/ApplicationOwnerOrganization'
ApplicationOwnerOrganization_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- 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/ApplicationOwnerPartyOrPartyRole_FVO'
dataProtectionOfficer:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_FVO'
privacyManager:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_FVO'
registeredGeographicAddress:
$ref: '#/components/schemas/GeographicAddressContactMedium_FVO'
taxNumber:
type: string
description: Tax number of the Organization in the country
jurisdiction:
type: string
description: Legal authority granted to the Organization to enact justice.
privacyPolicyURL:
type: string
description: Url to privacy policy.
required:
- contactMedium
- name
- organizationIdentification
- registeredGeographicAddress
- legalRepresentative
- taxNumber
- jurisdiction
- tradingName
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerOrganization: '#/components/schemas/ApplicationOwnerOrganization_FVO'
ApplicationOwnerOrganization_MVO:
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_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 means for contacting the party, e.g. mobile phone, email address'
legalRepresentative:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_MVO'
dataProtectionOfficer:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_MVO'
privacyManager:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_MVO'
registeredGeographicAddress:
$ref: '#/components/schemas/GeographicAddressContactMedium_MVO'
taxNumber:
type: string
description: Tax number of the Organization in the country
jurisdiction:
type: string
description: Legal authority granted to the Organization to enact justice.
privacyPolicyURL:
type: string
description: Url to privacy policy.
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 means for contacting the party, e.g. mobile phone, email address'
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual'
ApplicationOwnerRelatedIndividual_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- 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'
- 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'
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_FVO'
- 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'
- 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...)'
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization_MVO'
ApplicationOwner_FVO:
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- type: object
description: >-
Application Owner. Applicaiton 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'
status:
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.
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.
required:
- engagedParty
- name
- description
discriminator:
propertyName: '@type'
mapping:
ApplicationOwner: '#/components/schemas/ApplicationOwner_FVO'
ApplicationOwner_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- type: object
description: >-
Application Owner. Applicaiton 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:
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.
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'
ApplicationRef_FVO:
type: object
description: Reference to an Application.
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
discriminator:
propertyName: '@type'
mapping:
ApplicationRef: '#/components/schemas/ApplicationRef_FVO'
ApplicationRef_MVO:
type: object
description: Reference to an Application.
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
ApplicationRef: '#/components/schemas/ApplicationRef_MVO'
Application_FVO:
allOf:
- $ref: '#/components/schemas/LogicalResource'
- 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 retrive the Application official logo.
category:
type: string
description: The category of the Application
approvalStatusReason:
type: string
description: The reason why the approval status changed.
applicationOwner:
$ref: '#/components/schemas/PartyRoleRef_FVO'
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier_FVO'
digitalIdentity:
$ref: '#/components/schemas/ApiDigitalIdentity_FVO'
required:
- name
- description
- category
- 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 retrive the Application official logo.
category:
type: string
description: The category of the Application
approvalStatusReason:
type: string
description: The reason why the approval status changed.
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier_MVO'
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'
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'
discriminator:
propertyName: '@type'
mapping:
AssetGroup: '#/components/schemas/AssetGroup_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'
discriminator:
propertyName: '@type'
mapping:
Attachment: '#/components/schemas/Attachment_FVO'
AttachmentRef: '#/components/schemas/AttachmentRef'
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'
- 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_FVO'
- 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_MVO'
- 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'
BaseEvent_FVO:
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- 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_FVO'
BaseEvent_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- 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_MVO'
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'
CharacteristicRelationship_FVO:
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
required:
- id
- relationshipType
discriminator:
propertyName: '@type'
mapping:
CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_FVO'
CharacteristicRelationship_MVO:
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
required:
- id
- relationshipType
discriminator:
propertyName: '@type'
mapping:
CharacteristicRelationship: '#/components/schemas/CharacteristicRelationship_MVO'
Characteristic_FVO:
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_FVO'
required:
- name
discriminator:
propertyName: '@type'
mapping:
Characteristic: '#/components/schemas/Characteristic_FVO'
Characteristic_MVO:
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_MVO'
required:
- name
discriminator:
propertyName: '@type'
mapping:
Characteristic: '#/components/schemas/Characteristic_MVO'
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: >-
Type of the contact medium to qualifiy it like pro email / personal email. This is
not used to define the contact medium used.
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
ContactMedium: '#/components/schemas/ContactMedium'
SocialContactMedium: '#/components/schemas/SocialContactMedium'
PhoneContactMedium: '#/components/schemas/PhoneContactMedium'
GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium'
FaxContactMedium: '#/components/schemas/FaxContactMedium'
EmailContactMedium: '#/components/schemas/EmailContactMedium'
ContactMedium_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- 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: >-
Type of the contact medium to qualifiy it like pro email / personal email. This is
not used to define the contact medium used.
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
ContactMedium: '#/components/schemas/ContactMedium_FVO'
SocialContactMedium: '#/components/schemas/SocialContactMedium_FVO'
PhoneContactMedium: '#/components/schemas/PhoneContactMedium_FVO'
GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium_FVO'
FaxContactMedium: '#/components/schemas/FaxContactMedium_FVO'
EmailContactMedium: '#/components/schemas/EmailContactMedium_FVO'
ContactMedium_MVO:
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: >-
Type of the contact medium to qualifiy it like pro email / personal email. This is
not used to define the contact medium used.
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
ContactMedium: '#/components/schemas/ContactMedium_MVO'
SocialContactMedium: '#/components/schemas/SocialContactMedium_MVO'
PhoneContactMedium: '#/components/schemas/PhoneContactMedium_MVO'
GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium_MVO'
FaxContactMedium: '#/components/schemas/FaxContactMedium_MVO'
EmailContactMedium: '#/components/schemas/EmailContactMedium_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'
DCSProductOrderItem_FVO:
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_FVO'
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 . 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_FVO'
- $ref: '#/components/schemas/Addressable_FVO'
- 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
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'
EntityRole_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/Addressable_FVO'
- 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_FVO'
EntityRole_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- 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_MVO'
Entity_FVO:
type: object
description: Base entity schema . Property.
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- $ref: '#/components/schemas/Addressable_FVO'
Entity_MVO:
type: object
description: Base entity schema . Property.
allOf:
- $ref: '#/components/schemas/Extensible'
ErrorMessage:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: represents an Error
properties:
code:
type: string
description: error code
reason:
type: string
description: Explanation of the reason for the error
message:
type: string
description: More details and corrective actions related to the error
status:
type: string
description: error code extension like sys-ABC-2001
referenceError:
type: string
description: URI of documentation describing the error
discriminator:
propertyName: '@type'
mapping:
ErrorMessage: '#/components/schemas/ErrorMessage'
ProductOrderErrorMessage: '#/components/schemas/ProductOrderErrorMessage'
ErrorMessage_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: represents an Error
properties:
code:
type: string
description: error code
reason:
type: string
description: Explanation of the reason for the error
message:
type: string
description: More details and corrective actions related to the error
status:
type: string
description: error code extension like sys-ABC-2001
referenceError:
type: string
description: URI of documentation describing the error
discriminator:
propertyName: '@type'
mapping:
ErrorMessage: '#/components/schemas/ErrorMessage_FVO'
ProductOrderErrorMessage: '#/components/schemas/ProductOrderErrorMessage_FVO'
ErrorMessage_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: represents an Error
properties:
code:
type: string
description: error code
reason:
type: string
description: Explanation of the reason for the error
message:
type: string
description: More details and corrective actions related to the error
status:
type: string
description: error code extension like sys-ABC-2001
referenceError:
type: string
description: URI of documentation describing the error
discriminator:
propertyName: '@type'
mapping:
ErrorMessage: '#/components/schemas/ErrorMessage_MVO'
ProductOrderErrorMessage: '#/components/schemas/ProductOrderErrorMessage_MVO'
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
Event_FVO:
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_FVO'
reportingSystem:
$ref: '#/components/schemas/EntityRef_FVO'
relatedParty:
type: array
items:
$ref: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
analyticCharacteristic:
type: array
items:
$ref: '#/components/schemas/Characteristic_FVO'
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
required:
- eventId
- eventTime
- eventType
- event
Event_MVO:
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_MVO'
analyticCharacteristic:
type: array
items:
$ref: '#/components/schemas/Characteristic_MVO'
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
required:
- eventId
- eventTime
- eventType
- event
Extensible:
type: object
description: >-
Base Extensible schema - 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'
Extensible_FVO:
type: object
description: >-
Base Extensible schema - 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'
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_FVO'
- 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.
required:
- id
discriminator:
propertyName: '@type'
mapping:
ExternalIdentifier: '#/components/schemas/ExternalIdentifier_FVO'
ExternalIdentifier_MVO:
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_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'
ApiProductOrderItemModify: '#/components/schemas/ApiProductOrderItemModify'
ApiProductOrderItemDelete: '#/components/schemas/ApiProductOrderItemDelete'
ApiProductOrderItemAdd: '#/components/schemas/ApiProductOrderItemAdd'
GCProductOrderItem_FVO:
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_FVO'
discriminator:
propertyName: '@type'
mapping:
GCProductOrderItem: '#/components/schemas/GCProductOrderItem_FVO'
DCSProductOrderItem: '#/components/schemas/DCSProductOrderItem_FVO'
ApiProductOrderItemModify: '#/components/schemas/ApiProductOrderItemModify_FVO'
ApiProductOrderItemDelete: '#/components/schemas/ApiProductOrderItemDelete_FVO'
ApiProductOrderItemAdd: '#/components/schemas/ApiProductOrderItemAdd_FVO'
GCProductOrderItem_MVO:
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_MVO'
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'
discriminator:
propertyName: '@type'
mapping:
GeographicAddressRef: '#/components/schemas/GeographicAddressRef_MVO'
ItemActionType:
enum:
- add
- modify
- delete
- noChange
type: string
description: action to be performed on the entity managed by the item
LogicalResource:
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.
allOf:
- $ref: '#/components/schemas/Resource'
LogicalResourceRole:
type: object
description: Logic Resource Role
properties:
grantedPermissionSet:
type: array
items:
$ref: '#/components/schemas/ApiPermissionSet'
LogicalResource_MVO:
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.
allOf:
- $ref: '#/components/schemas/Resource_MVO'
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_FVO:
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_FVO'
OAuth2ClientCredential_MVO:
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_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_FVO'
- 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'
discriminator:
propertyName: '@type'
mapping:
OrganizationIdentification: '#/components/schemas/OrganizationIdentification_FVO'
OrganizationIdentification_MVO:
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_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'
PartyRef_FVO:
type: object
description: A Party reference
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef_FVO'
PartyRef_MVO:
type: object
description: A Party reference
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef_MVO'
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'
- 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'
ProductOfferingRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
- 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_FVO'
ProductOfferingRef_MVO:
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_MVO'
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:
signatureDate:
type: string
format: date-time
description: Date of the approval.
authorization:
type: array
items:
$ref: '#/components/schemas/ApiAuthorization'
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'
ProductOfferingTermOrConditionSpecRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
- 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_FVO'
ProductOfferingTermOrConditionSpecRef_MVO:
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_MVO'
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_FVO'
productOfferingTermOrConditionApproval:
$ref: '#/components/schemas/ProductOfferingTermOrConditionApproval'
required:
- productOfferingTermOrConditionSpecRef
discriminator:
propertyName: '@type'
mapping:
ProductOfferingTermOrCondition: '#/components/schemas/ProductOfferingTermOrCondition_FVO'
ProductOfferingTermOrCondition_MVO:
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_MVO'
productOfferingTermOrConditionApproval:
$ref: '#/components/schemas/ProductOfferingTermOrConditionApproval'
required:
- productOfferingTermOrConditionSpecRef
discriminator:
propertyName: '@type'
mapping:
ProductOfferingTermOrCondition: '#/components/schemas/ProductOfferingTermOrCondition_MVO'
ProductOrderErrorMessage:
allOf:
- $ref: '#/components/schemas/ErrorMessage'
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
A ProductOrderErrorMessage represents an error that causes a status change in a product
order.
properties:
timestamp:
type: string
format: date-time
description: Date when the error happened
productOrderItem:
type: array
description: A list of order item references corresponded to this error
items:
$ref: '#/components/schemas/ProductOrderItemRef'
discriminator:
propertyName: '@type'
mapping:
ProductOrderErrorMessage: '#/components/schemas/ProductOrderErrorMessage'
ProductOrderErrorMessage_FVO:
allOf:
- $ref: '#/components/schemas/ErrorMessage_FVO'
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
A ProductOrderErrorMessage represents an error that causes a status change in a product
order.
properties:
timestamp:
type: string
format: date-time
description: Date when the error happened
productOrderItem:
type: array
description: A list of order item references corresponded to this error
items:
$ref: '#/components/schemas/ProductOrderItemRef_FVO'
discriminator:
propertyName: '@type'
mapping:
ProductOrderErrorMessage: '#/components/schemas/ProductOrderErrorMessage_FVO'
ProductOrderErrorMessage_MVO:
allOf:
- $ref: '#/components/schemas/ErrorMessage_MVO'
- $ref: '#/components/schemas/Extensible'
- type: object
description: >-
A ProductOrderErrorMessage represents an error that causes a status change in a product
order.
properties:
timestamp:
type: string
format: date-time
description: Date when the error happened
productOrderItem:
type: array
description: A list of order item references corresponded to this error
items:
$ref: '#/components/schemas/ProductOrderItemRef_MVO'
discriminator:
propertyName: '@type'
mapping:
ProductOrderErrorMessage: '#/components/schemas/ProductOrderErrorMessage_MVO'
ProductOrderItemRef:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A reference to ProductOrder item that has been executed previously.
properties:
ProductOrderHref:
type: string
description: Reference of the related ProductOrder.
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
productOrderId:
type: string
description: Unique identifier of a refered product order.
productOrderItemId:
type: string
description: 'Identifier of a product order item. '
discriminator:
propertyName: '@type'
mapping:
ProductOrderItemRef: '#/components/schemas/ProductOrderItemRef'
ProductOrderItemRef_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A reference to ProductOrder item that has been executed previously.
properties:
ProductOrderHref:
type: string
description: Reference of the related ProductOrder.
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
productOrderId:
type: string
description: Unique identifier of a refered product order.
productOrderItemId:
type: string
description: 'Identifier of a product order item. '
required:
- productOrderId
- productOrderItemId
discriminator:
propertyName: '@type'
mapping:
ProductOrderItemRef: '#/components/schemas/ProductOrderItemRef_FVO'
ProductOrderItemRef_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A reference to ProductOrder item that has been executed previously.
properties:
ProductOrderHref:
type: string
description: Reference of the related ProductOrder.
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
productOrderId:
type: string
description: Unique identifier of a refered product order.
productOrderItemId:
type: string
description: 'Identifier of a product order item. '
required:
- productOrderId
- productOrderItemId
discriminator:
propertyName: '@type'
mapping:
ProductOrderItemRef: '#/components/schemas/ProductOrderItemRef_MVO'
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/Extensible'
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
ProductRef: '#/components/schemas/ProductRef'
ProductRef_FVO:
type: object
description: A Product reference
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/EntityRef_FVO'
discriminator:
propertyName: '@type'
mapping:
ProductRef: '#/components/schemas/ProductRef_FVO'
ProductRef_MVO:
type: object
description: A Product reference
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
ProductRef: '#/components/schemas/ProductRef_MVO'
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'
ProductSpecificationRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
- 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_FVO'
ProductSpecificationRef_MVO:
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_MVO'
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'
RelatedOrderItem_FVO:
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
required:
- role
- orderId
- orderItemId
discriminator:
propertyName: '@type'
mapping:
RelatedOrderItem: '#/components/schemas/RelatedOrderItem_FVO'
RelatedOrderItem_MVO:
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
required:
- role
- orderId
- orderItemId
discriminator:
propertyName: '@type'
mapping:
RelatedOrderItem: '#/components/schemas/RelatedOrderItem_MVO'
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'
RelatedPartyRefOrPartyRoleRef_FVO:
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'
required:
- role
discriminator:
propertyName: '@type'
mapping:
RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_FVO'
RelatedPartyRefOrPartyRoleRef_MVO:
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'
required:
- role
discriminator:
propertyName: '@type'
mapping:
RelatedPartyRefOrPartyRoleRef: '#/components/schemas/RelatedPartyRefOrPartyRoleRef_MVO'
Resource:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: >-
Resource is an abstract entity that describes the common set of attributes shared by all
concrete resources (e.g. TPE, EQUIPMENT) 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:
Resource: '#/components/schemas/Resource'
LogicalResource: '#/components/schemas/LogicalResource'
Application: '#/components/schemas/Application_FVO'
ResourceOperationalStateType:
enum:
- enable
- disable
type: string
description: ResourceOperationalStateType enumerations
Resource_FVO:
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- type: object
description: >-
Resource is an abstract entity that describes the common set of attributes shared by all
concrete resources (e.g. TPE, EQUIPMENT) 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_FVO'
discriminator:
propertyName: '@type'
mapping:
Resource: '#/components/schemas/Resource_FVO'
Resource_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- type: object
description: >-
Resource is an abstract entity that describes the common set of attributes shared by all
concrete resources (e.g. TPE, EQUIPMENT) 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:
Resource: '#/components/schemas/Resource_MVO'
LogicalResource: '#/components/schemas/LogicalResource_MVO'
Application: '#/components/schemas/Application_MVO'
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'
responses:
200ApiProductArray:
description: Success
headers:
{}
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiProduct'
from redoc.
Thanks a lot @jeremyfiel! We will take a look carefully to it, and specially to the use of "discriminator" and the circular references. Anyway, do you have any clue on why ReDoc is "degrading" when the complexity of discriminators and circular references is being increased, but it doesn't cause any problem when using swagger editor instead? Could it be a different way of "interpreting" the openapi standard or something similar?
from redoc.
I enabled all of the Extensible
and EntityRef
again and it seems like I narrowed it down further to these two schemas and the use of discriminator
.
Each of these have invalid uses of this property
productOffering:
$ref: '#/components/schemas/ProductOfferingRef'
productSpecification:
$ref: '#/components/schemas/ProductSpecificationRef'
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'
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'
from redoc.
Anyway, do you have any clue on why ReDoc is "degrading" when the complexity of discriminators and circular references is being increased, but it doesn't cause any problem when using swagger editor instead? Could it be a different way of "interpreting" the openapi standard or something similar?
I do know that Redocly have their own reference parser, it may be more strict with the ref resolution or the discriminator mapping.
from redoc.
These two schemas are only for the /apiProduct endpoint. I didn't look at the others..
from redoc.
additional info.. these schemas also have the similar issue with discriminator.
I also disabled those discriminator definitions previously and didn't recall before I posted.
productOrderItem:
type: array
items:
$ref: '#/components/schemas/RelatedOrderItem'
signedTermOrCondition:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTermOrCondition'
channelPartner:
$ref: '#/components/schemas/PartyRoleRef'
from redoc.
Again, thanks a lot for your help!
from redoc.
Related Issues (20)
- Update invalid OAS version in example
- Configuration to turn linting on or off HOT 2
- Accessibility: collapses buttons do not have aria-expanded information as default
- Wrong height when there is more elements on page HOT 2
- Static CSS Names? HOT 1
- Downloading JSON renders empty descriptions for some properties HOT 6
- Redoc jsdoc support HOT 1
- Unable to render a path item extracted into components section HOT 6
- Using custom font with the 'redocly build-docs' cli command documentation is missing HOT 4
- OneOf property is failing during OAS Schema Validation HOT 1
- Hide code samples panel HOT 1
- `Try it` console and `generateCodeSamples` with `RedocStandalone`? HOT 1
- Add A Expand All/Collapse All Button For Content Column
- `redocly lint` fails for `exclusiveMinimum` in an OpenAPI 3.0 spec HOT 4
- Possiblily to display String as JSON in the Response samples block HOT 2
- How to style h5?
- Security Vulnerabilities in redoc-cli Dependencies HOT 1
- Update sample to use Museum API
- Build-docs fails with heap allocation failure. HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redoc.