openapi: 3.1.0
info:
title: FIT-Product Ordering
description: |-
The following document is the user guide of the REST API for Product Ordering management. It includes the model definition as well as all available operations.
The Product Ordering API provides a standardized mechanism for placing a Product Order with all of the necessary order parameters. The API consists of a simple set of operations that interact with Customer Relationship Management / Order Negotiation systems in a consistent manner. A Product Order is created based on a product offer that is defined in a catalog. The Product Order references the product offer and identifies any specific requests made by the customer.
Product Ordering API manages Product Order resource:
- A Product Order is a type of order 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
- Main Product Order attributes are its identifier, state (acknowledged, inProgress, completed...), priority, category, related dates, related billing account, related parties and order items
- Main Order Items (aka order lines) attributes are the ordered offering and product characteristics with the related action to be performed (e.g. add or delete the products), state, location information for delivery.
Product Ordering API performs the following operations on Product Order:
- Creation of a Product Order (including default values and creation rules)
- Retrieval of a Product Order or a collection of Product Orders depending on filter criteria
- Notification of events on Product Order
- Product Order creation
- Product Order state change
- Product Order attribute value change used to notify that any data in an order has just changed
- Product Order information required used to notify that some data in the order need to be filled / are missing
- Product Order jeopardy alert
- Product Order milestone
Product Ordering API performs the following operations on CancelProductOrder:
- Creation of a Product Order cancel request
- Retrieval of a Product Order cancellation request or a collection of Product Order cancellation requests depending on filter criteria
- Notification of events on Product Order cancel
- Cancel Product Order state change
Product Ordering API performs the following operations on InflightChangeProductOrder (FIT only, for changing (amend, reschedule, add information, provide a response to an existing provider change Product Order, close) an existing Product Order):
- Creation of an Inflight Change Product Order request
- Retrieval of an Inflight Change Product Order request or a collection of Inflight Change Product Order requests depending on filter criteria
- Notification of events on Inflight Change Product Order
- Inflight Change Product Order state change
#### FIT Adaptations
**ProductOrder resource:**
- PATCH & DELETE are not used for FIT
- added state change history (based on TMF621)
- Milestone / JeopardyAlert adapted to FIT requirements
- added ProviderChangeInfo to document provider change agreement
- added requestedTimeSlot to provide time slot request for appointment
- added alternateProductOffering
**InflightChangeProductOrder task resource:** added task resource to change an existing Product Order, e.g., rescheduling, addition of optional products, notes and related parties.
#### Sources
The source API definition can be found at [fit-tmf622.yaml](https://bitbucket.org/fit-api/fit-api/src/tmf622_v2.0.3/tmf622/oas/fit-tmf622.yaml)
version: '2.0.3'
servers:
- url: https://api.example.com/tmf-api/productOrderingManagement/v5
- url: http://localhost:8080/tmf-api/productOrderingManagement/v5
security:
- OAuth2ClientCredentials:
- read
- write
tags:
- name: productOrder
description: Operations for ProductOrder Resource.
- name: cancelProductOrder
description: Operations for CancelProductOrder Resource.
- name: inflightChangeProductOrder
description: Operations for InflightChangeProductOrder Resource.
- name: notification listener
description: Notifications for Resource Lifecycle and event notifications.
paths:
/productOrder:
get:
operationId: listProductOrder
summary: List or find ProductOrder objects
description: |-
This operation retrieves a ProductOrder entity. Attribute selection enabled for all first
level attributes.
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/200ProductOrderArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- OAuth2ClientCredentials:
- read
tags:
- productOrder
post:
operationId: createProductOrder
summary: Creates a ProductOrder
description: This operation creates a ProductOrder entity.
requestBody:
$ref: '#/components/requestBodies/ProductOrder_FVO'
responses:
'201':
$ref: '#/components/responses/201ProductOrder'
'202':
$ref: '#/components/responses/202'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- OAuth2ClientCredentials:
- write
tags:
- productOrder
/productOrder/{id}:
get:
operationId: retrieveProductOrder
summary: Retrieves a ProductOrder by ID
description: This operation retrieves a ProductOrder entity. Attribute selection is enabled for all first level attributes.
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200ProductOrder'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- OAuth2ClientCredentials:
- read
tags:
- productOrder
/cancelProductOrder:
get:
operationId: listCancelProductOrder
summary: List or find CancelProductOrder objects
description: |-
This operation retrieves a CancelProductOrder entity. Attribute selection enabled for all
first level attributes.
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/200CancelProductOrderArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- read
tags:
- cancelProductOrder
post:
operationId: createCancelProductOrder
summary: Creates a CancelProductOrder
description: This operation creates a CancelProductOrder entity.
requestBody:
$ref: '#/components/requestBodies/CancelProductOrder_FVO'
responses:
'201':
$ref: '#/components/responses/201CancelProductOrder'
'202':
$ref: '#/components/responses/202'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- OAuth2ClientCredentials:
- write
tags:
- cancelProductOrder
/cancelProductOrder/{id}:
get:
operationId: retrieveCancelProductOrder
summary: Retrieves a CancelProductOrder by ID
description: This operation retrieves a CancelProductOrder entity. Attribute selection is enabled for all first level attributes.
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200CancelProductOrder'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- OAuth2ClientCredentials:
- read
tags:
- cancelProductOrder
/inflightChangeProductOrder:
get:
operationId: listInflightChangeProductOrder
summary: List or find InflightChangeProductOrder objects
description: |-
This operation retrieves a InflightChangeProductOrder entity. Attribute selection enabled for all
first level attributes.
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/200InflightChangeProductOrderArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- read
tags:
- inflightChangeProductOrder
post:
operationId: createInflightChangeProductOrder
summary: Creates a InflightChangeProductOrder
description: This operation creates a InflightChangeProductOrder entity.
requestBody:
$ref: '#/components/requestBodies/InflightChangeProductOrder_FVO'
responses:
'201':
$ref: '#/components/responses/201InflightChangeProductOrder'
'202':
$ref: '#/components/responses/202'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- OAuth2ClientCredentials:
- write
tags:
- inflightChangeProductOrder
/inflightChangeProductOrder/{id}:
get:
operationId: retrieveInflightChangeProductOrder
summary: Retrieves a InflightChangeProductOrder by ID
description: This operation retrieves a InflightChangeProductOrder entity. Attribute selection is enabled for all first level attributes.
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200InflightChangeProductOrder'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
'409':
$ref: '#/components/responses/409'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
security:
- OAuth2ClientCredentials:
- read
tags:
- inflightChangeProductOrder
/listener/productOrderCreateEvent:
post:
operationId: listenToProductOrderCreateEvent
summary: Client listener for ProductOrderCreateEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/ProductOrderCreateEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
/listener/productOrderAttributeValueChangeEvent:
post:
operationId: listenToProductOrderAttributeValueChangeEvent
summary: Client listener for ProductOrderAttributeValueChangeEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/ProductOrderAttributeValueChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
/listener/productOrderStateChangeEvent:
post:
operationId: listenToProductOrderStateChangeEvent
summary: Client listener for ProductOrderStateChangeEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/ProductOrderStateChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
/listener/productOrderMilestoneEvent:
post:
operationId: listenToProductOrderMilestoneEvent
summary: Client listener for ProductOrderMilestoneEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/ProductOrderMilestoneEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
/listener/productOrderJeopardyAlertEvent:
post:
operationId: listenToProductOrderJeopardyAlertEvent
summary: Client listener for ProductOrderJeopardyAlertEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/ProductOrderJeopardyAlertEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
/listener/productOrderInformationRequiredEvent:
post:
operationId: listenToProductOrderInformationRequiredEvent
summary: Client listener for ProductOrderInformationRequiredEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/ProductOrderInformationRequiredEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
/listener/cancelProductOrderStateChangeEvent:
post:
operationId: listenToCancelProductOrderStateChangeEvent
summary: Client listener for CancelProductOrderStateChangeEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/CancelProductOrderStateChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
/listener/inflightChangeProductOrderStateChangeEvent:
post:
operationId: listenToInflightChangeProductOrderStateChangeEvent
summary: Client listener for InflightChangeProductOrderStateChangeEvent
description: Example of a client listener for receiving notifications
requestBody:
$ref: '#/components/requestBodies/InflightChangeProductOrderStateChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listener
components:
schemas:
InstallationInstruction:
description: Specialization of Note
allOf:
- $ref: '#/components/schemas/Note'
- type: object
discriminator:
propertyName: '@type'
mapping:
InstallationInstruction: '#/components/schemas/InstallationInstruction'
BillingAccountRef:
description: BillingAccount reference. A BillingAccount is a detailed description of a bill structure.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
BillingAccountRef: '#/components/schemas/BillingAccountRef'
CancelProductOrder:
description: Request for cancellation an existing Product Order
example:
description: Example of created CancelProductOrder
value:
$schema: '##SCHEMA_PATH##'
'@type': CancelProductOrder
id: 2fd01b2b-9110-41ed-8efd-014d7e8ee158
href: https://api.example.org/tmf-api/productOrderingManagement/v5/cancelProductOrder/2fd01b2b-9110-41ed-8efd-014d7e8ee158
state: acknowledged
requestDate: '2022-05-11T11:25:00+02:00'
requestPostedDate: '2022-05-11T10:30:00+02:00'
entity:
'@type': ProductOrderRef
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
stateChangeDate: '2022-05-11T11:25:00+02:00'
allOf:
- $ref: '#/components/schemas/TaskEntity'
- type: object
properties:
stateChangeDate:
description: The date and time the state changed.
type: string
format: date-time
example: '2024-01-01T12:00:00+01:00'
stateChangeMessage:
description: Message for the state change described as a combination of a text and a code.
type: array
items:
$ref: '#/components/schemas/Message'
example: []
stateChangeHistory:
description: The state change history that is associated to the Entity. Populated by the server
type: array
items:
$ref: '#/components/schemas/StateChange'
example: []
externalId:
description: A reference to an externaly defined object in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
example: []
discriminator:
propertyName: '@type'
mapping:
CancelProductOrder: '#/components/schemas/CancelProductOrder'
CancelProductOrder_FVO:
description: |-
Request for cancellation an existing Product Order
Skipped properties: state, stateChange, stateChangeDate, stateChangeHistory
allOf:
- $ref: '#/components/schemas/TaskEntity_FVO'
- type: object
properties:
externalId:
description: A reference to an externaly defined object in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
example: []
discriminator:
propertyName: '@type'
mapping:
CancelProductOrder: '#/components/schemas/CancelProductOrder_FVO'
InflightChangeProductOrder:
description: Request to reschedule an existing Product Order
example:
description: Example of created InflightChangeProductOrder
value:
$schema: '##SCHEMA_PATH##'
'@type': InflightChangeProductOrder
id: 892cfa45-fca3-488d-8a7c-2883923f820e
href: https://api.example.org/tmf-api/productOrderingManagement/v5/inflightChangeProductOrder/892cfa45-fca3-488d-8a7c-2883923f820e
state: acknowledged
requestDate: '2022-05-11T10:35:00+02:00'
requestPostedDate: '2022-05-11T10:35:00+02:00'
entity:
'@type': ProductOrderRef
id: 596d7fa0-981f-4b98-bcf5-e9b2955776f4
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/596d7fa0-981f-4b98-bcf5-e9b2955776f4
category:
- respondProviderChange
stateChangeDate: '2022-05-11T10:35:00+02:00'
providerChangeInfo:
'@type': ProviderChangeInfo
approval: true
allOf:
- $ref: '#/components/schemas/TaskEntity'
- type: object
required:
- category
properties:
category:
type: array
items:
type: string
description: |-
Possible values for the category of the task resource:
- add: add information, e.g., a note or a related party
- activate: activate a ProductOrder of the category “connectivityWithActivation”
- amend: add an optional product
- close: close the productOrder
- respondProviderChange: provide a response to a productOrder of the category “terminationProviderChange”
- reschedule: reschedule the productOrder
enum:
- add
- activate
- amend
- close
- respondProviderChange
- reschedule
example: respondProviderChange
requestedCompletionDate:
description: Rescheduled requested delivery date from the requester perspective
type: string
format: date-time
example: '2025-12-24T19:30:00+01:00'
closeMessage:
$ref: '#/components/schemas/Message'
stateChangeDate:
description: The date and time the state changed.
type: string
format: date-time
example: '2024-01-01T12:00:00+01:00'
stateChangeMessage:
description: Message for the state change described as a combination of a text and a code.
type: array
items:
$ref: '#/components/schemas/Message'
example: []
stateChangeHistory:
description: The state change history that is associated to the Entity. Populated by the server
type: array
items:
$ref: '#/components/schemas/StateChange'
example: []
providerChangeInfo:
$ref: '#/components/schemas/ProviderChangeInfo'
externalId:
description: A reference to an externaly defined object in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
example: []
agreement:
description: A reference to an agreement defined in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/AgreementRefOrValue'
example: []
note:
description: Note
type: array
items:
$ref: '#/components/schemas/Note'
example: []
relatedParty:
description: Related party
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
additionalOrderInformation:
$ref: '#/components/schemas/AdditionalOrderInformation'
productOrderItem:
type: array
items:
$ref: '#/components/schemas/ProductOrderItem'
example: []
discriminator:
propertyName: '@type'
mapping:
InflightChangeProductOrder: '#/components/schemas/InflightChangeProductOrder'
InflightChangeProductOrder_FVO:
description: |-
Request to change an existing Product Order
Skipped properties: state, stateChange, stateChangeDate, stateChangeHistory
allOf:
- $ref: '#/components/schemas/TaskEntity_FVO'
- type: object
required:
- category
properties:
category:
type: array
items:
type: string
description: |-
Possible values for the category of the task resource:
- add: add information, e.g., a note or a related party
- activate: activate a ProductOrder of the category "connectivityWithActivation"
- amend: add an optional product
- close: close the productOrder
- respondProviderChange: provide a response to a productOrder of the category "terminationProviderChange"
- reschedule: reschedule the productOrder
enum:
- add
- activate
- amend
- close
- respondProviderChange
- reschedule
example: respondProviderChange
requestedCompletionDate:
description: Rescheduled requested delivery date from the requester perspective
type: string
format: date-time
example: '2025-12-24T19:30:00+01:00'
closeMessage:
$ref: '#/components/schemas/Message'
providerChangeInfo:
$ref: '#/components/schemas/ProviderChangeInfo'
externalId:
description: A reference to an externally defined object in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
example: []
agreement:
description: A reference to an agreement defined in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/AgreementRefOrValue'
example: []
note:
description: Note
type: array
items:
$ref: '#/components/schemas/Note'
example: []
relatedParty:
description: Related party
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
additionalOrderInformation:
$ref: '#/components/schemas/AdditionalOrderInformation'
productOrderItem:
type: array
items:
$ref: '#/components/schemas/ProductOrderItem'
example: []
discriminator:
propertyName: '@type'
mapping:
InflightChangeProductOrder: '#/components/schemas/InflightChangeProductOrder_FVO'
OrderItemActionType:
description: |-
Action to be performed on the product:
- *add*: Add product
- *modify*: Modify product
- *delete*: Delete product
- *nochange*: No change at main product
- *transfer*: Take over product
type: string
enum:
- add
- modify
- delete
- nochange
- transfer
OrderItemRelationship:
description: Used to describe relationships between order items for complex business cases (e.g. product change).
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
id:
description: Id of the related Order item (must be in the same Order)
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
relationshipType:
description: Relationship type as relies on, bundles, etc...
type: string
example: requires
discriminator:
propertyName: '@type'
mapping:
OrderItemRelationship: '#/components/schemas/OrderItemRelationship'
ProductOrderRelationship:
description: The ProductOrderRelationship makes it possible to document references to other Product Orders. Use cases include orders on behalf of third parties and group orders.
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
properties:
relationshipType:
description: The type of Product Order relationship
type: string
example: requires
productOrder:
description: Product Order
type: array
items:
$ref: '#/components/schemas/ProductOrderRefOrValue'
example: []
discriminator:
propertyName: '@type'
mapping:
ProductOrderRelationship: '#/components/schemas/ProductOrderRelationship'
Product:
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).
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
properties:
creationDate:
description: Date and time when the product was created
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
description:
description: Is the description of the product. It could be copied from the description of the Product Offering.
type: string
example: Lorem ipsum dolor
name:
description: Name of the product. It could be the same as the name of the product offering
type: string
example: Acme ludicrous speed fiber line
orderDate:
description: Is the date when the product was ordered
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
startDate:
description: Is the date from which the product starts
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
terminationDate:
description: Is the date when the product was terminated
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
relatedPlace:
description: Related place
type: array
items:
$ref: '#/components/schemas/RelatedPlaceRefOrValue'
example: []
product:
description: Product
type: array
items:
$ref: '#/components/schemas/ProductRefOrValue'
example: []
productCharacteristic:
description: Product characteristic
type: array
items:
$ref: '#/components/schemas/Characteristic'
example: []
productOffering:
$ref: '#/components/schemas/ProductOfferingRefOrValue'
productRelationship:
description: Product relationship
type: array
items:
$ref: '#/components/schemas/ProductRelationship'
example: []
productSpecification:
$ref: '#/components/schemas/ProductSpecificationRef'
relatedParty:
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
status:
$ref: '#/components/schemas/ProductStatusType'
discriminator:
propertyName: '@type'
mapping:
Product: '#/components/schemas/Product'
BitstreamAccessProduct: '#/components/schemas/BitstreamAccessProduct'
OpticalAccessLineProduct: '#/components/schemas/OpticalAccessLineProduct'
HvtLocalLoopProduct: '#/components/schemas/HvtLocalLoopProduct'
KvzLocalLoopProduct: '#/components/schemas/KvzLocalLoopProduct'
StandaloneFieldServiceProduct: '#/components/schemas/StandaloneFieldServiceProduct'
ProductOfferingQualificationRef:
description: It's a productOfferingQualification that has been executed previously
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
ProductOfferingQualificationRef: '#/components/schemas/ProductOfferingQualificationRef'
ProductOrder:
description: A Product Order is a type of order 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,
example:
description: Example of created ProductOrder
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrder
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
category: new
creationDate: '2022-05-11T10:30:30+02:00'
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
creationDate: '2022-05-11T10:30:30+02:00'
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
state: acknowledged
stateChangeDate: '2022-05-11T10:30:00+02:00'
additionalOrderInformation:
campaignIdentifier:
- PromotionFiber
projectIdentifier: AB1234
couplingIdentifier: QW567
orderBindingId: AK45678
orderBindingNumberOfOrders: 5
hardwareIdType: OntSerialNumber
hardwareIdValue: '1234567890'
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
required:
- productOrderItem
- category
- creationDate
- orderPostedDate
- state
- stateChangeDate
properties:
category:
description: Used to categorize the order from a business perspective (new, productChange, groupChange, productModification, termination, groupMigration)
type: string
example: new
description:
description: Description of the Product Order
type: string
example: Lorem ipsum dolor
expectedCompletionDate:
description: Expected delivery date amended by the provider
type: string
format: date-time
example: '2025-12-24T19:30:00+01:00'
creationDate:
description: Date when the order resource was created
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
orderIsChargingRelevant:
description: Boolean amended by the provider defining if the processing of the ProductOrder is charging relevant
type: boolean
example: false
orderPostedDate:
description: Date when the order was posted by the requester
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
priority:
description: 'A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)'
type: string
example: '4'
requestedCompletionDate:
description: Requested delivery date from the requestors perspective
type: string
format: date-time
example: '2025-12-24T19:30:00+01:00'
agreement:
description: A reference to an agreement defined in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/AgreementRefOrValue'
example: []
externalId:
description: A reference to an externaly defined object in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
example: []
billingAccount:
$ref: '#/components/schemas/BillingAccountRef'
note:
description: Note
type: array
items:
$ref: '#/components/schemas/Note'
example: []
productOfferingQualification:
description: Product offering qualification
type: array
items:
$ref: '#/components/schemas/ProductOfferingQualificationRef'
example: []
productOrderItem:
description: Product Order item
type: array
items:
$ref: '#/components/schemas/ProductOrderItem'
example: []
minItems: 1
relatedParty:
description: Related party
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
state:
$ref: '#/components/schemas/ProductOrderStateType'
stateChangeDate:
description: The date and time the state changed.
type: string
format: date-time
example: '2024-01-01T12:00:00+01:00'
stateChangeMessage:
description: Message for the state change described as a combination of a text and a code.
type: array
items:
$ref: '#/components/schemas/Message'
example: []
stateChangeHistory:
description: The state change history that is associated to the Entity. Populated by the server
type: array
items:
$ref: '#/components/schemas/StateChange'
example: []
earliestOrderRetry:
description: Earliest date when the order can be submitted again.
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
attachment:
description: Attachment
type: array
items:
$ref: '#/components/schemas/AttachmentRefOrValue'
example: []
productOrderJeopardyAlert:
description: List of ProductOrderJeopardyAlerts. A ProductOrderJeopardyAlert represents a predicted exception during a Product Order processing that would brings risk to complete successfully the order.
type: array
items:
$ref: '#/components/schemas/ProductOrderJeopardyAlert'
example: []
productOrderMilestone:
description: List of ProductOrderMilestones. A ProductOrderMilestone represents an action or event marking a significant change or stage in processing of a Product Order.
type: array
items:
$ref: '#/components/schemas/ProductOrderMilestone'
example: []
productOrderRelationship:
description: Product Order relationship
type: array
items:
$ref: '#/components/schemas/ProductOrderRelationship'
example: []
providerChangeInfo:
$ref: '#/components/schemas/ProviderChangeInfo'
additionalOrderInformation:
$ref: '#/components/schemas/AdditionalOrderInformation'
discriminator:
propertyName: '@type'
mapping:
ProductOrder: '#/components/schemas/ProductOrder'
ProductOrder_FVO:
description: |-
A Product Order is a type of order 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,
Skipped properties: id, href, expectedCompletionDate, creationDate, orderIsChargingRelevant, state, stateChangeDate, stateChangeMessage, stateChangeHistory, requestedCompletionChangeHistory, expectedCompletionChangeHistory, jeopardyAlert, milestone, expectedCompletionDate (also skip productOrderItem.state)
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- type: object
required:
- productOrderItem
- category
- orderPostedDate
properties:
category:
description: Used to categorize the order from a business perspective (new, productChange, groupChange, productModification, termination, groupMigration)
type: string
example: new
description:
description: Description of the Product Order
type: string
example: Lorem ipsum dolor
orderPostedDate:
description: Date when the order request was created/posted
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
priority:
description: 'A way that can be used by consumers to prioritize orders in OM system (from 0 to 4: 0 is the highest priority, and 4 the lowest)'
type: string
example: '4'
requestedCompletionDate:
description: Expected completion date amended by the provider
type: string
format: date-time
example: '2025-12-24T19:30:00+01:00'
agreement:
description: A reference to an agreement defined in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/AgreementRefOrValue'
example: []
externalId:
description: A reference to an externaly defined object in the context of the Product Order
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
example: []
billingAccount:
$ref: '#/components/schemas/BillingAccountRef'
note:
description: Note
type: array
items:
$ref: '#/components/schemas/Note'
example: []
productOfferingQualification:
description: Product Order qualification
type: array
items:
$ref: '#/components/schemas/ProductOfferingQualificationRef'
example: []
productOrderItem:
description: Product Order item
type: array
items:
$ref: '#/components/schemas/ProductOrderItem'
example: []
minItems: 1
relatedParty:
description: Related party
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
attachment:
description: Attachment
type: array
items:
$ref: '#/components/schemas/AttachmentRefOrValue'
example: []
productOrderRelationship:
description: Product Order relationship
type: array
items:
$ref: '#/components/schemas/ProductOrderRelationship'
example: []
additionalOrderInformation:
$ref: '#/components/schemas/AdditionalOrderInformation'
discriminator:
propertyName: '@type'
mapping:
ProductOrder: '#/components/schemas/ProductOrder_FVO'
ProductOrderItem:
description: An identified part of the order. A Product Order is decomposed into one or more order items.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- action
- id
properties:
id:
description: Identifier of the ProductOrder item (generally it is a sequence number 01, 02, 03,...)
type: string
example: '01'
action:
$ref: '#/components/schemas/OrderItemActionType'
product:
$ref: '#/components/schemas/ProductRefOrValue'
productOffering:
$ref: '#/components/schemas/ProductOfferingRefOrValue'
alternateProductOffering:
$ref: '#/components/schemas/ProductOfferingRefOrValue'
productOrderItemRelationship:
description: Product Order item relationship
type: array
items:
$ref: '#/components/schemas/OrderItemRelationship'
example: []
productOfferingQualificationItem:
$ref: '#/components/schemas/ProductOfferingQualificationItemRef'
endUserAppointmentIsNecessary:
description: Defines if an end user appointment is required for this order item
type: boolean
example: false
requestedTimeSlot:
$ref: '#/components/schemas/TimeSlot'
appointment:
$ref: '#/components/schemas/AppointmentRefOrValue'
discriminator:
propertyName: '@type'
mapping:
ProductOrderItem: '#/components/schemas/ProductOrderItem'
ProductOfferingQualificationItemRef:
description: It's a productOfferingQualification item that has been executed previously
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
productOfferingQualificationName:
description: Name of the related entity.
type: string
example: n/a
productOfferingQualificationHref:
description: Reference of the related entity.
type: string
example: n/a
'@referredType':
description: The actual type of the target instance when needed for disambiguation.
type: string
example: n/a
productOfferingQualificationId:
description: Unique identifier of a related entity.
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
itemId:
description: Id of an item of a product offering qualification
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
ProductOrderStateType:
description: |-
Possible values for the state of the order:
- *acknowledged*: The Acknowledged state is where an order/item has been received and has passed message level validation (e. g. schema, conformance profile). The order is stored and addressable.
- *accepted*: The Accepted state is where an order has passed business validation. Several operations, e. g. storno, are possible.
- *rejected*: The Rejected state is where:
- An order failed the Order Feasibility check
- Invalid information is provided through the order request
- The order request fails to meet business rules for ordering
Same rules applied for order item.
- *pending*: The Pending state is used when an order/item is currently in a waiting stage for an action/activity to be completed before the order/item can progress further, pending order amend or cancel assessment. In situations where Access Seeker action is required, an “information required” notification will be issued on transition into this state.
A pending stage can lead into auto cancellation of an order/item, if no action is taken within the defined timeframes to be described under the Agreement.
- *inProgress*: The In Progress state is where an order Item has passed the Order Feasibility check successfully and product delivery has started.
For the order at least one order item is inProgress.
- *held*: The Held state is used when an order/item cannot be progressed due to an issue. SP has temporarily delayed completing an order/item to resolve an infrastructure shortfall to facilitate supply of order. Upon resolution of the issue, the order/item will continue to progress.
- *assessingCancellation*: Following a cancel request, the SP is assessing if cancel can be done for the order/item (or if the PO has reached PONR). If cancellation request is not accepted after assessment the order will return to Held or Pending or InProgress state.
- *cancelled*: The Cancelled state is where an In-Flight Order/item has been successfully cancelled.
- *completed*: The Completed state is where an item has complete provision and the service is now active.
For an order all order items are completed.
- *closed*: The post-provisioning activities such as billing account update have been finalized. The order is Closed.
- *failed*: Order item as not a successful delivery completion. The product is not delivered and the order item failed.
All Order items have failed which results in the entire Order has Failed.
- *readyForActivation*: NotConnected Order successful. Following order needs to be posted.
type: string
enum:
- acknowledged
- accepted
- rejected
- pending
- inProgress
- held
- assessingCancellation
- cancelled
- completed
- closed
- failed
- readyForActivation
ProductOrderRef:
description: ProductOrder (ProductOrder). The product order which the action is related with.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
ProductOrderRefOrValue:
description: Product reference or value
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/ProductOrderRef'
- $ref: '#/components/schemas/ProductOrder'
ProductRef:
description: Product reference
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
ProductRefOrValue:
description: A product to be created defined by value or existing defined by reference.
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/ProductRef'
- $ref: '#/components/schemas/Product'
ProductRelationship:
description: Used to describe relationship between product.
type: object
properties:
relationshipType:
description: Relationship type as relies on, bundles, etc...
type: string
example: requires
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
ProductRelationship: '#/components/schemas/ProductRelationship'
ProductStatusType:
description: |-
Possible values for the status of the product:
- *created*: Product created
- *pendingActive*: Product pending active
- *cancelled*: Product cancelled
- *active*: Product active
- *pendingTerminate*: Product pendingTerminate
- *terminated*: Product terminated
- *suspended*: Product suspended
- *aborted*: Product aborted
type: string
enum:
- created
- pendingActive
- cancelled
- active
- pendingTerminate
- terminated
- suspended
- aborted
ProductOrderCreateEvent:
allOf:
- $ref: '#/components/schemas/Event'
- type: object
description: ProductOrderCreateEvent generic structure
properties:
event:
$ref: '#/components/schemas/ProductOrderCreateEventPayload'
discriminator:
propertyName: '@type'
mapping:
ProductOrderCreateEvent: '#/components/schemas/ProductOrderCreateEvent'
ProductOrderCreateEventPayload:
description: ProductOrderCreateEventPayload
type: object
properties:
productOrder:
$ref: '#/components/schemas/ProductOrder'
ProductOrderAttributeValueChangeEvent:
description: The notification data structure
allOf:
- $ref: '#/components/schemas/AttributeValueChangeEvent'
- type: object
properties:
event:
description: The event payload linked to the involved resource object
$ref: '#/components/schemas/ProductOrderAttributeValueChangeEventPayload'
discriminator:
propertyName: '@type'
mapping:
ProductOrderAttributeValueChangeEvent: '#/components/schemas/ProductOrderAttributeValueChangeEvent'
ProductOrderAttributeValueChangeEventPayload:
description: The event data structure
type: object
properties:
productOrder:
description: The involved resource data for the event
$ref: '#/components/schemas/ProductOrder'
ProductOrderStateChangeEvent:
description: The notification data structure
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
event:
description: The event payload linked to the involved resource object
$ref: '#/components/schemas/ProductOrderStateChangeEventPayload'
discriminator:
propertyName: '@type'
mapping:
ProductOrderStateChangeEvent: '#/components/schemas/ProductOrderStateChangeEvent'
ProductOrderStateChangeEventPayload:
description: The event data structure
type: object
properties:
productOrder:
description: The involved resource data for the event
$ref: '#/components/schemas/ProductOrder'
ProductOrderInformationRequiredEvent:
description: The notification data structure
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
fieldPath:
description: Field path
type: array
items:
$ref: '#/components/schemas/FieldPath'
example: []
event:
description: The event payload linked to the involved resource object
$ref: '#/components/schemas/ProductOrderInformationRequiredEventPayload'
discriminator:
propertyName: '@type'
mapping:
ProductOrderInformationRequiredEvent: '#/components/schemas/ProductOrderInformationRequiredEvent'
ProductOrderInformationRequiredEventPayload:
description: The event data structure
type: object
properties:
productOrder:
description: The involved resource data for the event
$ref: '#/components/schemas/ProductOrder'
CancelProductOrderStateChangeEvent:
description: The notification data structure
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
event:
description: The event payload linked to the involved resource object
$ref: '#/components/schemas/CancelProductOrderStateChangeEventPayload'
discriminator:
propertyName: '@type'
mapping:
CancelProductOrderStateChangeEvent: '#/components/schemas/CancelProductOrderStateChangeEvent'
CancelProductOrderStateChangeEventPayload:
description: The event data structure
type: object
properties:
cancelProductOrder:
description: The involved resource data for the event
$ref: '#/components/schemas/CancelProductOrder'
InflightChangeProductOrderStateChangeEvent:
description: The notification data structure
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
event:
description: The event payload linked to the involved resource object
$ref: '#/components/schemas/InflightChangeProductOrderStateChangeEventPayload'
discriminator:
propertyName: '@type'
mapping:
InflightChangeProductOrderStateChangeEvent: '#/components/schemas/InflightChangeProductOrderStateChangeEvent'
InflightChangeProductOrderStateChangeEventPayload:
description: The event data structure
type: object
properties:
inflightChangeProductOrder:
description: The involved resource data for the event
$ref: '#/components/schemas/InflightChangeProductOrder'
BitstreamAccessProduct:
description: Bitstream access product
allOf:
- $ref: '#/components/schemas/Product'
- type: object
properties:
accessTechnology:
description: Defines the type of connectivity (e.g. FTTH, FTTB, FTTC, HFC, Coax, TAL, OAL)
type: string
example: FTTH
accessProtocol:
description: "Defines the type and technology of the access (e.g. \tEthernet, P2P, GPON, XGS-PON, VDSL, GFAST-CuDa., GFAST-Coax, DOCSIS, ADSL, SDSL, ...)"
type: string
example: VDSL
upstreamNominalBandwidth:
description: Defines the upstream access bandwidth (e.g. 100 Mbit/s , 1 Gbit/s, 100 kbit/s)
$ref: '#/components/schemas/Quantity'
downstreamNominalBandwidth:
description: Defines the downstream access bandwidth (e.g. 400 Mbit/s , 1 Gbit/s )
$ref: '#/components/schemas/Quantity'
trafficHandOver:
description: Defines how the traffic is handed over to the reseller (e.g. L2, L3, LT)
type: string
example: L2
trafficAggregation:
description: Defines the aggregation provided by the supplier hand over close to customer, in a region or one central hand over for the complete country (e.g. local, regional, national)
type: string
example: local
networkTerminationUnitType:
description: Defines the type of the access termination (e.g. withOnt, withoutOnt)
type: string
example: withOnt
uniConnectorType:
description: Defines the interface of the access termination (e.g. TAE, RJ45, E2000, LC-APC, MMD (Multi Media Dose → Koaxialdose, F-Stecker) ...)
type: string
example: RJ45
reversePowering:
description: Defines if the DSLAM needs to be reverse powered (e.g. yes, no)
type: string
example: 'yes'
leadTime:
description: Defines the typical lead time for provisioning an access
$ref: '#/components/schemas/Duration'
lineID:
description: Defines the identifier of the access line. If ProductId is not known for change orders, the contract number of the product to be changed / terminated can be entered here by the buyer
type: string
virtualAccessLineId:
description: Line-Identifier for the end customer
type: string
enni:
description: Identifies the point of traffic interconnection external network to network interconnection (e.g. value or location of A10NSP)
type: string
enniPort:
description: Defines the configured port
type: string
example: n/a
cvlan:
description: Defines the configured C-VLAN
type: string
example: n/a
svlan:
description: Defines the configured S-VLAN
type: string
networkTerminationUnitLocation:
description: Describes the location of the network termination (e.g. describes the position of TAE/GF-TA or ONT)
type: string
homeId:
description: Identifies the GF-TA unit at the end user's premise.
type: string
example: a12d5a4545
ontSerialNumber:
description: Serial number of the ONT
type: string
example: '1515515155115'
trafficLimitationUpstream:
description: Defines the traffic/Speedlimit of bandwith
$ref: '#/components/schemas/Quantity'
trafficLimitationDownstream:
description: Defines the traffic/Speedlimit of bandwith
$ref: '#/components/schemas/Quantity'
singleContractIdExistingProduct:
description: If ProductId is not known for change orders, the contract number of the product to be changed / canceled can be entered here
type: string
example: '3072576895'
discriminator:
propertyName: '@type'
mapping:
BitstreamAccessProduct: '#/components/schemas/BitstreamAccessProduct'
OpticalAccessLineProduct:
description: Optical access line product
allOf:
- $ref: '#/components/schemas/Product'
- type: object
required:
- patchService
properties:
patchService:
description: Entity connecting active and passive port
$ref: '#/components/schemas/PatchServiceType'
passiveAccessLineId:
description: Technical identifier for the fibtre optical cable - starting at the ODF to the customers house - homeId
type: string
example: DEU.DGW.G465157FDU
ontType:
description: Type of ONT
type: string
example: '9000'
ontActivationCode:
description: Code required to activate an ONT at this connection, has to be provided by the NGA and used only if the ANE offers a service to deliver the ONT to the end-customer.
type: string
example: Aalskdg78q
ontSerialNumber:
description: Serial number of ONT
type: string
example: ALCL:F8ADCACF
oltName:
description: Name of the OLT the fibre shall be/is connected to.
type: string
example: dtm4711-access6
oltPort:
description: Port of the OLT the fibre shall be/is connected to.
type: string
example: 3/7/15
splitterName:
description: Name of the splitter
type: string
example: bch1743-NVT7-MUX34
splitterPort:
description: Port on the splitter the fibre is connected to may be provided by the NGA or ANE depending on set-up of the project
type: string
example: '27'
switchingDataNga:
description: Data provided by the NGA (owner of the active network) about the active fibre optical connection. Defines the location of the fibre in the POP.
$ref: '#/components/schemas/SwitchingDataOal'
switchingDataAne:
description: Data provided by the ANE (owner of the passive network) about the passive fibre optical connection. Defines the location of the fibre in the POP.
$ref: '#/components/schemas/SwitchingDataOal'
ontProvidedBy:
description: Provider of the ONT (e.g. Buyer, Seller)
example: Buyer
discriminator:
propertyName: '@type'
mapping:
OpticalAccessLineProduct: '#/components/schemas/OpticalAccessLineProduct'
PatchServiceType:
description: |-
Possible values are:
type: string
enum:
- partner
- supplier
SwitchingDataOal:
description: Switching data optical access line
type: object
properties:
room:
description: Room the ODF is located
type: string
example: A
rack:
description: Rack the ODF is located
type: string
example: '1'
shelf:
description: Shelf in the rack
type: string
example: '3'
slot:
description: Slot in the shelf
type: string
example: '5'
port:
description: Port in the slot
type: string
example: SPL-410688-05-B-2-32
ppid:
description: PortId
type: string
example: 000SP50
HvtLocalLoopProduct:
description: Local loop from the central office
allOf:
- $ref: '#/components/schemas/LocalLoopProduct'
- type: object
properties:
switchingDataHvt:
description: Switiching data for the Local loop from the central office
type: array
items:
$ref: '#/components/schemas/SwitchingDataHvt'
example: []
maxItems: 2
minItems: 1
discriminator:
propertyName: '@type'
mapping:
HvtLocalLoopProduct: '#/components/schemas/HvtLocalLoopProduct'
KvzLocalLoopProduct:
description: Local loop from the curb
allOf:
- $ref: '#/components/schemas/LocalLoopProduct'
- type: object
properties:
switchingDataKvz:
description: Switching data for the Local loop from the curb
type: array
items:
$ref: '#/components/schemas/SwitchingDataKvz'
example: []
maxItems: 2
minItems: 1
discriminator:
propertyName: '@type'
mapping:
KvzLocalLoopProduct: '#/components/schemas/KvzLocalLoopProduct'
LocalLoopProduct:
description: Local loop product
allOf:
- $ref: '#/components/schemas/Product'
- type: object
properties:
transmissionMethod:
description: Transmission method
type: string
example: H01
loopResistance:
description: 'Total resistance (unit: ohms) of the loop'
type: string
example: <1200
maxGrossBitrate:
description: Max. gross bit rate in kbit/s
type: string
example: '9000'
singleContractIdExistingProduct:
description: If ProductId is not known for change orders, the contract number of the product to be changed / canceled can be entered here
type: string
example: '3072345760'
accessLine:
$ref: '#/components/schemas/AccessLine'
lineSegment:
description: Line segment
type: array
items:
$ref: '#/components/schemas/LineSegment'
example: []
maxItems: 99
access:
$ref: '#/components/schemas/Access'
discriminator:
propertyName: '@type'
mapping:
LocalLoopProduct: '#/components/schemas/LocalLoopProduct'
StandaloneFieldServiceProduct:
description: StandaloneFieldService product
allOf:
- $ref: '#/components/schemas/Product'
- type: object
properties:
networkTerminationUnitLocation:
description: Describes the location of the network termination (e.g. describes the position of TAE/GF-TA or ONT)
type: string
homeId:
description: Identifies the GF-TA unit at the end user's premise.
type: string
example: a12d5a4545
discriminator:
propertyName: '@type'
mapping:
StandaloneFieldServiceProduct: '#/components/schemas/StandaloneFieldServiceProduct'
AccessLine:
description: Access line for the local loop
type: object
properties:
lineKey:
description: Indicates the type of line
type: string
example: 96W
areaCodeA:
description: The area code of location A
type: string
example: '228'
areaCodeB:
description: The area code of location B
type: string
example: '228'
talSequenceNumber:
description: Consecutive number to identify the line
type: string
example: FXP00WZTRH
required:
- lineKey
- areaCodeA
- areaCodeB
- talSequenceNumber
LineSegment:
description: Line segment
type: object
properties:
id:
description: Consecutive number to identify the line section
type: string
example: '1'
length:
description: 'Length (unit: meter) of the line section'
type: string
example: '441'
diameter:
description: Diameter of the line section
type: string
example: '500'
required:
- id
- length
- diameter
Access:
description: Notes on the commissioned connection
type: object
properties:
areaCode:
description: Area code of the previous connection (when changing provider)
type: string
example: '228'
subscriberNumber:
description: Phone number of the previous connection (when changing provider)
type: string
example: '123456'
required:
- areaCode
- subscriberNumber
SwitchingDataKvz:
description: Switching data for the Local loop from the curb
type: object
properties:
kvzId:
description: Unique identifier of the cable distributor
type: string
example: '20'
kvzSwitchingId:
description: Information from the carrier regarding its switching data
type: string
example: '285'
required:
- kvzId
- kvzSwitchingId
SwitchingDataHvt:
description: Switching data for the Local loop from the central office
type: object
properties:
uevt:
description: Number of the "Übergabeverteiler"
type: string
example: '0203'
evs:
description: Number of the "Endverschluss"
type: string
example: '24'
copperPairId:
description: Number of the twisted pair
type: string
example: '43'
required:
- uevt
- evs
- copperPairId
ProductOrderMilestone:
description: A ProductOrderMilestone represents an action or event marking a significant change or stage in processing of a Product Order.
type: object
allOf:
- $ref: '#/components/schemas/Milestone'
discriminator:
propertyName: '@type'
mapping:
ProductOrderMilestone: '#/components/schemas/ProductOrderMilestone'
ProductOrderMilestoneEvent:
description: The notification data structure
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
event:
description: The event payload linked to the involved resource object
$ref: '#/components/schemas/ProductOrderMilestoneEventPayload'
discriminator:
propertyName: '@type'
mapping:
ProductOrderMilestoneEvent: '#/components/schemas/ProductOrderMilestoneEvent'
ProductOrderMilestoneEventPayload:
description: The event data structure
type: object
properties:
productOrder:
description: The involved resource data for the event
$ref: '#/components/schemas/ProductOrder'
ProductOrderJeopardyAlert:
description: A ProductOrderJeopardyAlert represents a predicted exception during a Product Order processing that would brings risk to complete successfully the order.
type: object
allOf:
- $ref: '#/components/schemas/JeopardyAlert'
discriminator:
propertyName: '@type'
mapping:
ProductOrderJeopardyAlert: '#/components/schemas/ProductOrderJeopardyAlert'
ProductOrderJeopardyAlertEvent:
description: The notification data structure
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
event:
description: The event payload linked to the involved resource object
$ref: '#/components/schemas/ProductOrderJeopardyAlertEventPayload'
discriminator:
propertyName: '@type'
mapping:
ProductOrderJeopardyAlertEvent: '#/components/schemas/ProductOrderJeopardyAlertEvent'
ProductOrderJeopardyAlertEventPayload:
description: The event data structure
type: object
properties:
productOrder:
description: The involved resource data for the event
$ref: '#/components/schemas/ProductOrder'
ProviderChangeInfo:
description: Additional provider change information for terminating provider
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
respondTime:
description: Latest time the response to the provider change request must have been submitted
type: string
format: date-time
example: '2025-12-24T19:30:00+01:00'
approval:
description: State of the provider change approval
type: boolean
example: true
responseMessage:
$ref: '#/components/schemas/Message'
discriminator:
propertyName: '@type'
mapping:
ProviderChangeInfo: '#/components/schemas/ProviderChangeInfo'
AdditionalOrderInformation:
description: Defines additional order information
type: object
properties:
providerChangeAgreementTechnology:
description: Technology of the old product (only for Provider Change Use Cases)
type: string
example: Kupfer
providerChangeAgreementLineId:
description: LineId of the old product (only for Provider Change Use Cases)
type: string
example: DEU.XYZ.HV1G1
providerChangeAgreementSingleContractId:
description: Single Contract Id of the old product (only for Provider Change Use Cases)
type: string
example: '3213214567'
providerChangePassiveAccessLineId:
description: Single Contract Id of the old product (only for Provider Change Use Cases)
type: string
example: '123456789'
previousTenantGivenName:
description: Given Name of the previous tenant
type: string
example: Karl
previousTenantFamilyName:
description: Family Name of the previous tenant
type: string
example: Klammer
previousTenantNationalDestinationCode:
description: National destination code of the previous tenant
type: string
example: '228'
previousTenantSubscriberNumber:
description: Subscriber number of the previous tenant
type: string
example: '1234567'
campaignIdentifier:
description: List of identifiers for marketing campaigns, e. g. promotions
type: array
example: []
items:
type: string
example: '#A6'
projectIdentifier:
description: Identifier for specific projects
type: string
example: 12a
couplingIdentifier:
description: Identifier for specific projects
type: string
example: 23b
orderBindingId:
description: Identifier used to bind orders
type: string
example: 34c
orderBindingNumberOfOrders:
description: Number of orders (used together with orderBindingId)
type: integer
example: 5
orderBindingFailedExternalOrderId:
description: Failed order number (refers to another failed order)
type: string
example: '3213214568'
copperPairInUseLineKey:
description: LineKey of the copper pair in Use
type: string
example: 96W
copperPairInUseNationalDestinationCodeA:
description: NationalDestinationCodeA of the copper pair in Use
type: string
example: '228'
copperPairInUseNationalDestinationCodeB:
description: NationalDestinationCodeB of the copper pair in Use
type: string
example: '228'
copperPairInUseTalSequenceNumber:
description: TalSequenceNumber of the copper pair in Use
type: string
example: FXP00WZTRH
hardwareIdType:
description: 'HardwareId to identify the line: type'
type: string
example: OntSerialNumber
hardwareIdValue:
description: 'HardwareId to identify the line: value'
type: string
example: 53674F3DC03FD37C
aggregatorProductOffering:
description: Name of pre product
type: string
example: n/a
aggregatorNGA:
description: Seller name of pre product
type: string
example: n/a
aggregatorOrderAction:
description: Order category of pre product
type: string
example: n/a
aggregatorOrderId:
description: Order id of pre product
type: string
example: n/a
Extensible:
description: Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
type: object
properties:
'@type':
description: When sub-classing, this defines the sub-class Extensible name
type: string
example: ''
'@baseType':
description: When sub-classing, this defines the super-class
type: string
example: ''
'@schemaLocation':
description: A URI to a JSON-Schema file that defines additional attributes and relationships
type: string
example: ''
discriminator:
propertyName: '@type'
required:
- '@type'
Entity:
description: Base entity schema for use in TMForum Open-APIs.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
id:
description: Unique identifier
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
href:
description: Hyperlink reference
type: string
format: uri
example: https://api.example.org/resource/id
ContactMedium:
description: Indicates the contact medium that could be used to contact the party.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
contactMediumIdentifier:
description: Identifier for this contact medium.
type: string
example: '123'
contactType:
description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used.
type: string
example: personal email
preferred:
description: If true, indicates that is the preferred contact medium
type: boolean
example: true
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
PhoneContactMedium: '#/components/schemas/PhoneContactMedium'
EmailContactMedium: '#/components/schemas/EmailContactMedium'
PostalAddressContactMedium: '#/components/schemas/PostalAddressContactMedium'
PhoneContactMedium:
description: Describes a phone number that could be used to contact a party (an individual or an organization).
allOf:
- $ref: '#/components/schemas/ContactMedium'
- type: object
properties:
phoneNumber:
description: The phone number of the contact
type: string
example: +49 30 1234567
EmailContactMedium:
description: Describes a email that could be used to contact a party (an individual or an organization).
allOf:
- $ref: '#/components/schemas/ContactMedium'
- type: object
properties:
emailAddress:
description: Full email address in standard format
type: string
example: info@example.net
PostalAddressContactMedium:
description: Describes a email that could be used to contact a party (an individual or an organization).
allOf:
- $ref: '#/components/schemas/ContactMedium'
- type: object
properties:
city:
description: Full city name
type: string
example: Berlin
country:
description: Country that the address is in (ISO-3166-1 ALPHA-2)
type: string
example: DE
locality:
description: Locality
type: string
example: ''
postcode:
description: Postcode
type: string
example: '10117'
streetName:
description: StreetName
type: string
example: Reinhardtstr.
streetNr:
description: StreetNr
type: string
example: '31'
streetNrSuffix:
description: StreetNrSuffix
type: string
example: a
TimePeriod:
description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
type: object
properties:
startDateTime:
description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
endDateTime:
description: End of the time period, using IETC-RFC-3339 format
type: string
format: date-time
example: '2025-12-24T19:30:00+01:00'
ExternalIdentifier:
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.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
id:
description: Unique identifier
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
externalIdentifierType:
description: Type of the identification, typically would be the type of the entity within the external system
type: string
example: ProductOrder
owner:
description: Name of the external system that owns the entity.
type: string
example: AcmeCommerce
Characteristic:
description: Describes a given characteristic of an object or entity through a name/value pair.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
id:
description: Unique identifier of the characteristic
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
name:
description: Name of the characteristic
type: string
example: characteristic name
valueType:
description: Data type of the value of the characteristic
type: string
example: string
discriminator:
propertyName: '@type'
mapping:
Characteristic: '#/components/schemas/Characteristic'
StringCharacteristic: '#/components/schemas/StringCharacteristic'
StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic'
ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic'
ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic'
NumberCharacteristic: '#/components/schemas/NumberCharacteristic'
NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic'
IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic'
IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic'
BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic'
BooleanArrayCharacteristic: '#/components/schemas/BooleanArrayCharacteristic'
StringCharacteristic:
description: A characteristic which value is a String.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
required:
- value
properties:
value:
description: Value of the characteristic
type: string
example: Lorem ipsum dolor
StringArrayCharacteristic:
description: A characteristic which value is a String.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
properties:
value:
description: Value of the characteristic
type: array
items:
type: string
example: []
ObjectCharacteristic:
description: A characteristic which value is an Object.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
required:
- value
properties:
value:
description: Value of the characteristic
type: object
ObjectArrayCharacteristic:
description: A characteristic which value is an Object.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
properties:
value:
description: Value of the characteristic
type: array
items:
type: object
example: []
NumberCharacteristic:
description: A characteristic which value is a Number.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
required:
- value
properties:
value:
description: Value of the characteristic
type: number
example: 1
NumberArrayCharacteristic:
description: A characteristic which value is a Number.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
properties:
value:
description: Value of the characteristic
type: array
items:
type: number
example: []
IntegerCharacteristic:
description: A characteristic which value is an Integer.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
required:
- value
properties:
value:
description: Value of the characteristic
type: integer
example: 1
IntegerArrayCharacteristic:
description: A characteristic which value is an Integer.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
properties:
value:
description: Value of the characteristic
type: array
items:
type: integer
example: []
BooleanCharacteristic:
description: A characteristic which value is a Boolean.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
required:
- value
properties:
value:
description: Value of the characteristic
type: boolean
example: true
BooleanArrayCharacteristic:
description: A characteristic which value is a Boolean.
allOf:
- $ref: '#/components/schemas/Characteristic'
- type: object
properties:
value:
description: Value of the characteristic
type: array
items:
type: boolean
example: []
Party:
description: Generic Party structure used to define commonalities between sub concepts of Individual and Organization.
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
properties:
contactMedium:
description: List of means for contacting the party, e.g. mobile phone, email address
type: array
items:
$ref: '#/components/schemas/ContactMedium'
example: []
externalReference:
description: List of identifiers of the Party in an external system, for example when party information is imported from a commerce system
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
example: []
businessId:
description: A business relevant identifier when different from the technical identifier documented with the .id property
type: string
example: '1234'
partyCharacteristic:
description: List of additional characteristics that a Party can take on.
type: array
items:
$ref: '#/components/schemas/Characteristic'
example: []
Individual:
description: Individual 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.
allOf:
- $ref: '#/components/schemas/Party'
- type: object
properties:
familyName:
description: Contains the non-chosen or inherited name. Also known as last name in the Western context
type: string
example: Muster
salutation:
description: Standard wording used to address an individual
type: string
example: Ms
givenName:
description: First name of the individual
type: string
example: Melanie
title:
description: Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ...
type: string
example: Dr.
Organization:
description: 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.
allOf:
- $ref: '#/components/schemas/Party'
- type: object
properties:
name:
description: Organization name (department name for example)
type: string
example: Acme Corp.
EntityRef:
description: Entity reference schema to be use for all entityRef class.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- id
properties:
id:
description: Identifier of the referred entity.
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
href:
description: Hyperlink reference
type: string
format: uri
example: https://api.example.org/resource/id
name:
description: Name of the referred entity.
type: string
example: EntityName
'@referredType':
description: The actual type of the target instance when needed for disambiguation.
type: string
example: ''
PartyRef:
description: Party reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
PartyRoleRef:
description: Party role reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
AccountRef:
description: Account reference. A account may be a party account or a financial account.
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
properties:
description:
description: Detailed description of the account
type: string
example: lorem ipsum dolor
AgreementRef:
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.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
PartyOrPartyRole:
description: A Party or PartyRole or Ref
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/Individual'
- $ref: '#/components/schemas/Organization'
- $ref: '#/components/schemas/PartyRef'
- $ref: '#/components/schemas/PartyRoleRef'
- $ref: '#/components/schemas/PartyRole'
RelatedPartyOrPartyRole:
description: RelatedParty reference. A related party defines party or party role or its reference, linked to a specific entity
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- role
- partyOrPartyRole
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
example: ''
partyOrPartyRole:
$ref: '#/components/schemas/PartyOrPartyRole'
PartyRole:
description: The part played by a party in a given context.
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
required:
- name
- engagedParty
properties:
businessId:
description: A business relevant identifier when different from the technical identifier documented with the .id property
type: string
example: '1234'
name:
description: A word, term, or phrase by which the PartyRole is known and distinguished from other PartyRoles. It's the name of the PartyRole unique entity.
type: string
example: PartyRoleName
description:
description: A description of the PartyRole.
type: string
example: Lorem ipsum dolor
role:
description: Role played by the engagedParty in this context. As role is defined by partyRoleSpecification, this role attribute can be used to precise the role defined by partyRoleSpecification, or it can be used to define the role in case there is no partyRoleSpecification.
type: string
example: ''
engagedParty:
$ref: '#/components/schemas/PartyRef'
characteristic:
description: Describes the characteristic of a party role.
type: array
items:
$ref: '#/components/schemas/Characteristic'
example: []
account:
description: Account
type: array
items:
$ref: '#/components/schemas/AccountRef'
example: []
agreement:
description: Agreement
type: array
items:
$ref: '#/components/schemas/AgreementRef'
example: []
contactMedium:
description: Contact medium
type: array
items:
$ref: '#/components/schemas/ContactMedium'
example: []
relatedParty:
description: Related party
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
status:
description: Used to track the lifecycle status of the party role.
type: string
example: ''
statusReason:
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.
type: string
example: ''
validFor:
$ref: '#/components/schemas/TimePeriod'
Agreement:
description: 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/Entity'
- type: object
required:
- agreementType
properties:
name:
description: A human-readable name for the agreement
type: string
example: contract no. 42
engagedParty:
description: Engaged party
type: array
items:
$ref: '#/components/schemas/PartyOrPartyRole'
example: []
relatedParty:
description: Related party
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
businessId:
description: A business relevant identifier when different from the technical identifier documented with the .id property
type: string
example: '1234'
agreementType:
description: Type of the agreement (e.g. witaContract, ServiceContractCustomer, ServiceContractOrderer, SingleContract, PreAgreement, witaContract,...)
type: string
example: ServiceContractOrderer
AgreementRefOrValue:
description: Agreement reference or value
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/Agreement'
- $ref: '#/components/schemas/AgreementRef'
Note:
description: Extra information about a given entity
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
required:
- text
properties:
author:
description: Author of the note
type: string
example: jarvis
date:
description: Date of the note
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
text:
description: Text of the note
type: string
example: Lorem ipsum dolor
Quantity:
description: An amount in a given unit
type: object
properties:
amount:
description: Numeric value in a given unit
type: number
format: float
example: 20
default: 1
units:
description: Unit
type: string
example: MBit/s
Duration:
description: A time interval in a given unit of time
type: object
properties:
amount:
description: Time interval (number of seconds, minutes, hours, etc.)
type: integer
example: 60
units:
description: Unit of time (seconds, minutes, hours, etc.)
type: string
example: seconds
Place:
description: Place value (base class).
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
properties:
externalIdentifier:
type: array
description: Collection of external identifiers
items:
$ref: '#/components/schemas/ExternalIdentifier'
GeographicSubAddress:
description: |-
Representation of a GeographicSubAddress
It is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building.
allOf:
- $ref: '#/components/schemas/Place'
- type: object
properties:
buildingName:
description: Allows for buildings that have well-known names
type: string
example: Hinterhaus
buildingComplement:
description: Additional designation for completing the building name
type: string
example: n/a
GeographicAddress:
description: |-
Structured textual way of describing how to find a Property in an urban area (country properties are often defined differently).
Note : Address corresponds to SID UrbanPropertyAddress
allOf:
- $ref: '#/components/schemas/Place'
- type: object
properties:
city:
description: City that the address is in
type: string
example: Berlin
country:
description: Country that the address is in (ISO-3166-1 ALPHA-2)
type: string
example: DE
locality:
description: An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi rural in nature. [ANZLIC-STREET], or a suburb, a bounded locality within a city, town or shire principally of urban character [ANZLICSTREET]
type: string
example: ''
postcode:
description: descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also know as zipcode)
type: string
example: '10117'
streetName:
description: Name of the street or other street type
type: string
example: Reinhardtstr.
streetNr:
description: Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses
type: string
example: '31'
streetNrSuffix:
description: the first street number suffix
type: string
example: a
geographicSubAddress:
description: Geographic sub address
type: array
items:
$ref: '#/components/schemas/GeographicSubAddress'
example: []
GeographicSite:
description: Geographic site
allOf:
- $ref: '#/components/schemas/Place'
- type: object
properties:
code:
description: 'A code that may be used for some addressing schemes eg: [ANSI T1.253-1999]'
type: string
example: ''
creationDate:
description: Date and time when the GeographicSite was created
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
description:
description: Text describing additional information regarding the site
type: string
example: Lorem ipsum dolor
place:
description: Place
type: array
items:
$ref: '#/components/schemas/Place'
example: []
geographicSiteCharacteristic:
description: Geographic site characteristics
type: array
items:
$ref: '#/components/schemas/Characteristic'
example: []
status:
description: The condition of the GeographicSite, such as planned, underConstruction, cancelled, active, inactive, former
type: string
example: active
PlaceRef:
description: Place reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
PlaceRefOrValue:
description: A place ref or value
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/GeographicAddress'
- $ref: '#/components/schemas/GeographicSite'
- $ref: '#/components/schemas/PlaceRef'
RelatedPlaceRefOrValue:
description: Entity reference. The polymorphic attributes @type, @schemaLocation & @referredType are related to the RelatedPlace entity and not the RelatedPlaceRefOrValue class itself
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- role
- place
properties:
role:
description: Role played by the related entity
type: string
example: ''
place:
$ref: '#/components/schemas/PlaceRefOrValue'
TargetProductSchema:
description: The reference object to the schema and type of target product which is described by product specification
type: object
properties:
'@schemaLocation':
description: This field provides a link to the schema describing the target product
type: string
example: https://schemas.example.com/example/schema
'@type':
description: Class type of the target product
type: string
example: ''
required:
- '@schemaLocation'
- '@type'
ProductSpecificationRef:
description: 'Product specification reference: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.'
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
properties:
version:
description: Version of the product specification
type: string
example: '1.0'
targetProductSchema:
$ref: '#/components/schemas/TargetProductSchema'
ProductOffering:
description: Represents entities that are orderable from the provider of the catalog, this resource includes pricing information.
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
properties:
description:
description: Description of the productOffering
type: string
example: Lorem ipsum dolor
version:
description: ProductOffering version
type: string
example: '1.0'
lifecycleStatus:
description: Used to indicate the current lifecycle status
type: string
example: created
name:
description: Name of the productOffering
type: string
example: product offering name
productSpecification:
description: A ProductSpecification is a detailed description of a tangible or intangible object made available externally in the form of a ProductOffering to customers or other parties playing a party role.
$ref: '#/components/schemas/ProductSpecificationRef'
ProductOfferingRef:
description: ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
ProductOfferingRefOrValue:
description: The polymorphic attributes @type, @schemaLocation & @referredType are related to the Resource entity and not the ProductOfferingRefOrValue class itself
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/ProductOffering'
- $ref: '#/components/schemas/ProductOfferingRef'
TimeSlot:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- validFor
properties:
id:
description: Unique identifier of the TimeSlot
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
href:
description: Reference of the TimeSlot
type: string
example: https://api.example.org/timeslot/id
relatedParty:
description: RelatedParty reference. A related party defines party or party role linked to a specific entity.
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
validFor:
description: Start date and end date of the timeSlot
$ref: '#/components/schemas/TimePeriod'
AppointmentRef:
description: Appointment reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
AttachmentRef:
description: Attachment reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
Attachment:
description: Complements the description of an element (for instance a product) through video, pictures...
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
properties:
attachmentType:
description: Attachment type such as video, picture
type: string
example: video
content:
description: The actual contents of the attachment object, if embedded, encoded as base64
example: ''
format: base64
type: string
description:
description: A narrative text describing the content of the attachment
type: string
example: Photograph of the Product
mimeType:
description: Attachment mime type such as extension file for video, picture and document
type: string
example: image/AVIF
name:
description: The name of the attachment
type: string
example: attachment.file
url:
description: Uniform Resource Locator, is a web page address (a subset of URI)
type: string
format: uri
example: https://api.example.org/content/4aafacbd-11ff-4dc8-b445-305f2215715f
size:
description: The size of the attachment.
$ref: '#/components/schemas/Quantity'
validFor:
description: The period of time for which the attachment is valid
$ref: '#/components/schemas/TimePeriod'
AttachmentRefOrValue:
description: Attachment reference or value
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/AttachmentRef'
- $ref: '#/components/schemas/Attachment'
AppointmentStateType:
description: |-
Valid values for the lifecycle status of the appointment are:
- *initialized*: Appointment initialized
- *confirmed*: Appointment confirmed
- *cancelled*: Appointment cancelled
- *completed*: Appointment completed
- *failed*: Appointment failed
type: string
enum:
- initialized
- confirmed
- cancelled
- completed
- failed
Appointment:
description: An Appointment is an arrangement to do something or meet someone at a particular time, at a place (for face to face appointment) or in a contact medium (for phone appointment).
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
required:
- validFor
properties:
category:
description: 'Business category : intervention for example or to be more precise after SalesIntervention, orderDeliveryIntervention,...'
type: string
example: intervention
creationDate:
description: Appointment creation date
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
description:
description: Short free text describing the appointment
type: string
example: Lorem ipsum dolor
externalId:
description: External reference known by the customer
type: string
example: '1234'
lastUpdate:
description: Date of last appointment update
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
attachment:
description: Attachment
type: array
items:
$ref: '#/components/schemas/AttachmentRefOrValue'
example: []
contactMedium:
description: Contact medium
type: array
items:
$ref: '#/components/schemas/ContactMedium'
example: []
note:
description: Note
type: array
items:
$ref: '#/components/schemas/Note'
example: []
relatedParty:
description: Related party
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole'
example: []
relatedPlace:
description: Related place defines (by reference or value) the place where the appointment will take place.
$ref: '#/components/schemas/RelatedPlaceRefOrValue'
status:
$ref: '#/components/schemas/AppointmentStateType'
validFor:
$ref: '#/components/schemas/TimePeriod'
AppointmentRefOrValue:
description: Appointment reference and value
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/AppointmentRef'
- $ref: '#/components/schemas/Appointment'
Message:
description: A message described as a combination of a text and a code with additional info where required.
type: object
properties:
code:
description: Predefined code corresponding to the message
type: string
example: '00'
text:
description: Predefined text describing the message corresponding to the code
type: string
example: Lorem ipsum dolor
additionalInformation:
description: additional textual information for the message
type: string
example: Lorem ipsum dolor
messageSource:
description: Predefined text describing the message corresponding to the code (e.g. Related)
type: string
example: Related
StateChange:
description: Holds the state notification message and associated date the state changed, populated by the server
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- stateChangeDate
- state
properties:
stateChangeDate:
description: The date and time the state changed.
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
stateChangeMessage:
description: Message for the state change described as a combination of a text and a code.
type: array
items:
$ref: '#/components/schemas/Message'
example: []
state:
description: The state of the API resource
type: string
example: ''
JeopardyAlert:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: |-
A JeopardyAlert represents a predicted exception during a process that may cause a risk
to complete successfully the process.
properties:
id:
description: Identifier of the JeopardyAlert
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
alertDate:
description: A date time( DateTime). The date that the alert issued
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
name:
description: A string used to give a name to the jeopardy alert
type: string
example: alert name
jeopardyAlertMessage:
description: Text and code that represents the message of the jeopardy alert
type: array
items:
$ref: '#/components/schemas/Message'
example: []
estimatedAlertEndDate:
description: A date time(DateTime). The estimated date of the alert ending
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
exception:
description: The exception associated with this jeopardy alert
type: string
discriminator:
propertyName: '@type'
mapping:
JeopardyAlert: '#/components/schemas/JeopardyAlert'
Milestone:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: |-
Milestone represents an action or event marking a significant change or stage in a
process like an order process.
properties:
id:
description: Identifier of the Milestone
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
milestoneDate:
description: A date time( DateTime). The date that the milestone happens
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
name:
description: A string used to give a name to the milestone
type: string
example: milestone name
milestoneMessage:
description: Text and code that represents the message of the milestone
type: array
items:
$ref: '#/components/schemas/Message'
example: []
relatedState:
description: |-
Documents the state of the related API Resource at the time of the
Milestone
type: string
example: active
discriminator:
propertyName: '@type'
mapping:
Milestone: '#/components/schemas/Milestone'
ErrorMessage:
description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- code
- reason
properties:
code:
description: Application relevant detail, defined in the API or a common list.
type: string
example: '0995'
reason:
description: Explanation of the reason for the error which can be shown to a client user.
type: string
example: human error
message:
description: More details and corrective actions related to the error which can be shown to a client user.
type: string
example: Datenstruktur unzulässig.
status:
description: HTTP Error code extension
type: string
example: not found
referenceError:
description: URI of documentation describing the error.
type: string
format: uri
example: https://api.example.org/error/id
example:
'@type': ErrorMessage
code: '0995'
reason: human error
message: Datenstruktur unzulässig.
status: not found
referenceError: https://api.example.org/error/id
Extensible_FVO:
description: Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
type: object
properties:
'@type':
description: When sub-classing, this defines the sub-class Extensible name
type: string
example: ''
'@baseType':
description: When sub-classing, this defines the super-class
type: string
example: ''
'@schemaLocation':
description: A URI to a JSON-Schema file that defines additional attributes and relationships
type: string
example: ''
discriminator:
propertyName: '@type'
required:
- '@type'
TaskStateType:
description: |-
Possible values for the state of a task are:
- *acknowledged*: The acknowledged state is used if a task resource has been received and has passed message and basic business validations.
- *rejected*: The task has been rejected during validation or processing.
- *inProgress*: The InProgress state is used while the task is being processed.
- *done*: The task has been completed and a result is available.
type: string
enum:
- acknowledged
- rejected
- inProgress
- done
TaskEntity:
description: Base schema for task resource entities
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
properties:
state:
$ref: '#/components/schemas/TaskStateType'
requestDate:
description: Date when the task resource was created
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
requestPostedDate:
description: Date when the request was posted
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
entity:
$ref: '#/components/schemas/EntityRef'
required:
- state
- entity
- requestDate
- requestPostedDate
Entity_FVO:
description: Base entity schema for use in TMForum Open-APIs.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
id:
description: Unique identifier
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
TaskEntity_FVO:
description: |-
Base schema for task resource FVO entities
Skipped properties: state, requestDate
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- type: object
properties:
requestPostedDate:
description: Date when the request was posted
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
entity:
$ref: '#/components/schemas/EntityRef'
required:
- entity
- requestPostedDate
Event:
description: event with common attributes.
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
properties:
eventId:
description: The identifier of the notification.
type: string
example: 2d7ed5fd-9f62-4211-bc84-357f5f7b80f5
eventTime:
description: Time of the event occurrence.
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
eventType:
description: The type of the notification.
type: string
example: ''
description:
description: An explanatory of the event.
type: string
example: Lorem ipsum dolor
timeOccurred:
description: The time the event occurred.
type: string
format: date-time
example: '2023-01-01T08:00:00+01:00'
source:
description: Source Entity described by EntityRef
$ref: '#/components/schemas/EntityRef'
reportingSystem:
description: Reporting System described by EntityRef
$ref: '#/components/schemas/EntityRef'
required:
- eventId
- eventTime
- eventType
- event
FieldPath:
description: Field path
type: object
properties:
path:
description: Path of updated attribute
type: string
example: /productOrderItem/0/product/terminationDate
typeOfChange:
description: Type of change
type: string
example: add
required:
- path
AttributeValueChangeEvent:
description: Attribute value change event
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
fieldPath:
description: Field path
type: array
items:
$ref: '#/components/schemas/FieldPath'
example: []
examples:
CreateProductOrder_request:
description: POST ProductOrder Request Example
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrder_FVO
category: new
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
billingAccount:
'@type': BillingAccountRef
id: '5793126789'
note:
- '@type': InstallationInstruction
text: zweimal klingeln
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
additionalOrderInformation:
campaignIdentifier:
- PromotionFiber
projectIdentifier: AB1234
couplingIdentifier: QW567
orderBindingId: AK45678
orderBindingNumberOfOrders: 5
hardwareIdType: OntSerialNumber
hardwareIdValue: '1234567890'
CreateCancelProductOrder_request:
description: POST CancelProductOrder Request Example
value:
$schema: '##SCHEMA_PATH##'
'@type': CancelProductOrder_FVO
requestPostedDate: '2022-05-11T10:30:00+02:00'
entity:
'@type': ProductOrderRef
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
CreateInflightChangeProductOrder_request:
description: POST InflightChangeProductOrder Request Example
value:
$schema: '##SCHEMA_PATH##'
'@type': InflightChangeProductOrder_FVO
requestPostedDate: '2022-05-11T10:35:00+02:00'
entity:
'@type': ProductOrderRef
id: 596d7fa0-981f-4b98-bcf5-e9b2955776f4
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/596d7fa0-981f-4b98-bcf5-e9b2955776f4
category:
- respondProviderChange
providerChangeInfo:
'@type': ProviderChangeInfo
approval: false
responseMessage:
code: KVE
text: Vorabstimmungs-ID fehlerhaft
ProductOrderAttributeValueChangeEvent_request:
description: Message example for ProductOrderAttributeValueChangeEvent event
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrderAttributeValueChangeEvent
eventId: bc026dc4-f8ac-4d59-8baf-e252cb73c6a6
eventTime: '2022-05-11T10:30:30+02:00'
eventType: ProductOrderAttributeValueChangeEvent
fieldPath:
- path: /earliestOrderRetry
typeOfChange: add
- path: /productOrderItem/0/alternateProductOffering
typeOfChange: add
- path: /productOrderItem/0/product/relatedPlace/-
typeOfChange: add
event:
productOrder:
'@type': ProductOrder
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
category: new
creationDate: '2022-05-11T10:30:30+02:00'
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
creationDate: '2022-05-11T10:30:30+02:00'
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
- '@type': RelatedPlaceRefOrValue
role: alternateAddress
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: b
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
alternateProductOffering:
'@type': ProductOffering
name: FTTH L2 PON 1500 1000
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
state: acknowledged
stateChangeDate: '2022-05-11T10:30:00+02:00'
earliestOrderRetry: '2023-01-16T10:00:00+01:00'
additionalOrderInformation:
campaignIdentifier:
- PromotionFiber
projectIdentifier: AB1234
couplingIdentifier: QW567
orderBindingId: AK45678
orderBindingNumberOfOrders: 5
hardwareIdType: OntSerialNumber
hardwareIdValue: '1234567890'
ProductOrderStateChangeEvent_request:
description: Message example for ProductOrderStateChangeEvent event
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrderStateChangeEvent
eventId: d1e29549-97d5-48f6-9b34-fe9ed626cb6e
eventTime: '2022-05-11T10:31:00+02:00'
eventType: ProductOrderStateChangeEvent
event:
productOrder:
'@type': ProductOrder
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
category: new
creationDate: '2022-05-11T10:30:30+02:00'
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
creationDate: '2022-05-11T10:30:30+02:00'
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
- '@type': RelatedPartyOrPartyRole
role: orderManagementSellerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221789456'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878787878'
- '@type': EmailContactMedium
contactType: email
emailAddress: l.bach@example.net
familyName: Bach
salutation: Frau
givenName: Lisa
state: accepted
stateChangeDate: '2022-05-11T10:31:00+02:00'
stateChangeMessage:
- code: '0000'
text: Keine Änderung zum Auftrag
stateChangeHistory:
- '@type': StateChange
stateChangeDate: '2022-05-11T10:30:00+02:00'
state: acknowledged
additionalOrderInformation:
campaignIdentifier:
- PromotionFiber
projectIdentifier: AB1234
couplingIdentifier: QW567
orderBindingId: AK45678
orderBindingNumberOfOrders: 5
hardwareIdType: OntSerialNumber
hardwareIdValue: '1234567890'
ProductOrderMilestoneEvent_request:
description: Message example for ProductOrderMilestoneEvent event
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrderMilestoneEvent
eventId: c4477492-8895-47ff-ae3b-34eaad0935a8
eventTime: '2022-05-25T10:32:00+02:00'
eventType: ProductOrderMilestoneEvent
event:
productOrder:
'@type': ProductOrder
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
category: new
expectedCompletionDate: '2022-12-01T12:00:00+01:00'
creationDate: '2022-05-11T10:30:30+02:00'
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
- '@type': Agreement
name: singleContract
businessId: '3091231119'
agreementType: singleContract
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
id: 922ebf01-e930-47a0-842e-059d1f188a15
href: https://api.example.org/tmf-api/productInventoryManagement/v5/product/922ebf01-e930-47a0-842e-059d1f188a15
creationDate: '2022-05-11T10:30:30+02:00'
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
lineID: DEU.DTAG.FTYLIQ7PFT
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
endUserAppointmentIsNecessary: true
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
appointment:
'@type': Appointment
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
- '@type': ProductOrderItem
id: '2'
action: add
productOffering:
'@type': ProductOffering
name: FB Infrastruktur;Connected;MFH
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
- '@type': RelatedPartyOrPartyRole
role: orderManagementSellerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221789456'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878787878'
- '@type': EmailContactMedium
contactType: email
emailAddress: l.bach@example.net
familyName: Bach
salutation: Frau
givenName: Lisa
state: inProgress
stateChangeDate: '2022-05-20T10:39:00+02:00'
stateChangeMessage:
- code: '0000'
text: Keine Änderung zum Auftrag
stateChangeHistory:
- '@type': StateChange
stateChangeDate: '2022-05-11T10:30:00+02:00'
state: acknowledged
- '@type': StateChange
stateChangeDate: '2022-05-11T10:31:00+02:00'
stateChangeMessage:
- code: '0000'
text: Keine Änderung zum Auftrag
state: accepted
productOrderMilestone:
- '@type': ProductOrderMilestone
milestoneDate: '2022-05-25T10:32:00+02:00'
name: intermediateMessage
milestoneMessage:
- code: '0073'
text: Information zum Auftrag.
additionalOrderInformation:
aggregatorProductOffering: FTTH-2.0-L3-BSA
aggregatorNGA: DTAG
aggregatorOrderAction: NEU
aggregatorOrderId: AP0***8
ProductOrderJeopardyAlertEvent_request:
description: Message example for ProductOrderJeopardyAlertEvent event
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrderJeopardyAlertEvent
eventId: 50c1005e-eccb-4d3a-ab9c-8427ad9f0980
eventTime: '2022-05-20T10:41:00+02:00'
eventType: ProductOrderJeopardyAlertEvent
event:
productOrder:
'@type': ProductOrder
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
category: new
expectedCompletionDate: '2022-12-01T12:00:00+01:00'
creationDate: '2022-05-11T10:30:30+02:00'
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
- '@type': Agreement
name: singleContract
businessId: '3091231119'
agreementType: singleContract
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
id: 922ebf01-e930-47a0-842e-059d1f188a15
href: https://api.example.org/tmf-api/productInventoryManagement/v5/product/922ebf01-e930-47a0-842e-059d1f188a15
creationDate: '2022-05-11T10:30:30+02:00'
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
lineID: DEU.DTAG.FTYLIQ7PFT
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
endUserAppointmentIsNecessary: true
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
appointment:
'@type': Appointment
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
- '@type': ProductOrderItem
id: '2'
action: add
productOffering:
'@type': ProductOffering
name: FB Infrastruktur;Connected;MFH
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
- '@type': RelatedPartyOrPartyRole
role: orderManagementSellerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221789456'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878787878'
- '@type': EmailContactMedium
contactType: email
emailAddress: l.bach@example.net
familyName: Bach
salutation: Frau
givenName: Lisa
state: pending
stateChangeDate: '2022-05-20T10:40:00+02:00'
stateChangeMessage:
- code: '6000'
text: Endkunde hat Herstellung zurückgestellt/verweigert.
stateChangeHistory:
- '@type': StateChange
stateChangeDate: '2022-05-11T10:30:00+02:00'
state: acknowledged
- '@type': StateChange
stateChangeDate: '2022-05-11T10:31:00+02:00'
stateChangeMessage:
- code: '0000'
text: Keine Änderung zum Auftrag
state: accepted
- '@type': StateChange
stateChangeDate: '2022-05-20T10:39:00+02:00'
stateChangeMessage:
- code: '0000'
text: Keine Änderung zum Auftrag
state: inProgress
productOrderJeopardyAlert:
- '@type': ProductOrderJeopardyAlert
alertDate: '2022-05-20T10:41:00+02:00'
name: reminder
jeopardyAlertMessage:
- code: '6000'
text: Endkunde hat Herstellung zurückgestellt/verweigert.
additionalOrderInformation:
campaignIdentifier:
- PromotionFiber
projectIdentifier: AB1234
couplingIdentifier: QW567
orderBindingId: AK45678
orderBindingNumberOfOrders: 5
hardwareIdType: OntSerialNumber
hardwareIdValue: '1234567890'
ProductOrderInformationRequiredEvent_request:
description: Message example for ProductOrderInformationRequiredEvent event
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrderInformationRequiredEvent
eventId: 497da45b-e91c-4f63-875f-492fdc3e25da
eventTime: '2022-05-20T10:41:00+02:00'
eventType: ProductOrderInformationRequiredEvent
fieldPath:
- path: /requestedCompletionDate
typeOfChange: replace
- path: /productOrderItem.requestedTimeSlot.validFor.startDateTime
typeOfChange: replace
- path: /productOrderItem.requestedTimeSlot.validFor.endDateTime
typeOfChange: replace
event:
productOrder:
'@type': ProductOrder
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
category: new
expectedCompletionDate: '2022-12-01T12:00:00+01:00'
creationDate: '2022-05-11T10:30:30+02:00'
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
- '@type': Agreement
name: singleContract
businessId: '3091231119'
agreementType: singleContract
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
id: 922ebf01-e930-47a0-842e-059d1f188a15
href: https://api.example.org/tmf-api/productInventoryManagement/v5/product/922ebf01-e930-47a0-842e-059d1f188a15
creationDate: '2022-05-11T10:30:30+02:00'
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
lineID: DEU.DTAG.FTYLIQ7PFT
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
endUserAppointmentIsNecessary: true
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
appointment:
'@type': Appointment
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
- '@type': ProductOrderItem
id: '2'
action: add
productOffering:
'@type': ProductOffering
name: FB Infrastruktur;Connected;MFH
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
- '@type': RelatedPartyOrPartyRole
role: orderManagementSellerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221789456'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878787878'
- '@type': EmailContactMedium
contactType: email
emailAddress: l.bach@example.net
familyName: Bach
salutation: Frau
givenName: Lisa
state: pending
stateChangeDate: '2022-05-20T10:40:00+02:00'
stateChangeMessage:
- code: '6000'
text: Endkunde hat Herstellung zurückgestellt/verweigert.
stateChangeHistory:
- '@type': StateChange
stateChangeDate: '2022-05-11T10:30:00+02:00'
state: acknowledged
- '@type': StateChange
stateChangeDate: '2022-05-11T10:31:00+02:00'
stateChangeMessage:
- code: '0000'
text: Keine Änderung zum Auftrag
state: accepted
- '@type': StateChange
stateChangeDate: '2022-05-20T10:39:00+02:00'
stateChangeMessage:
- code: '0000'
text: Keine Änderung zum Auftrag
state: inProgress
additionalOrderInformation:
campaignIdentifier:
- PromotionFiber
projectIdentifier: AB1234
couplingIdentifier: QW567
orderBindingId: AK45678
orderBindingNumberOfOrders: 5
hardwareIdType: OntSerialNumber
hardwareIdValue: '1234567890'
CancelProductOrderStateChangeEvent_request:
description: Message example for CancelProductOrderStateChangeEvent event
value:
$schema: '##SCHEMA_PATH##'
'@type': CancelProductOrderStateChangeEvent
eventId: 4899ae3f-36c5-434a-af2b-dd75f04511bb
eventTime: '2022-05-11T11:25:00+02:00'
eventType: CancelProductOrderStateChangeEvent
event:
cancelProductOrder:
'@type': CancelProductOrder
id: 2fd01b2b-9110-41ed-8efd-014d7e8ee158
href: https://api.example.org/tmf-api/productOrderingManagement/v5/cancelProductOrder/2fd01b2b-9110-41ed-8efd-014d7e8ee158
state: inProgress
requestDate: '2022-05-11T11:25:00+02:00'
requestPostedDate: '2022-05-11T10:30:00+02:00'
entity:
'@type': ProductOrderRef
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
stateChangeDate: '2022-05-11T11:25:00+02:00'
stateChangeMessage:
- code: code
text: inProgress_Message
stateChangeHistory:
- '@type': StateChange
stateChangeDate: '2022-05-11T11:25:00+02:00'
state: acknowledged
InflightChangeProductOrderStateChangeEvent_request:
description: Message example for InflightChangeProductOrderStateChangeEvent event
value:
$schema: '##SCHEMA_PATH##'
'@type': InflightChangeProductOrderStateChangeEvent
eventId: e25523f1-a75d-4e72-b05a-3d0d7dca5862
eventTime: '2022-05-11T10:36:00+02:00'
eventType: InflightChangeProductOrderStateChangeEvent
event:
inflightChangeProductOrder:
'@type': InflightChangeProductOrder
id: 892cfa45-fca3-488d-8a7c-2883923f820e
href: https://api.example.org/tmf-api/productOrderingManagement/v5/inflightChangeProductOrder/892cfa45-fca3-488d-8a7c-2883923f820e
state: inProgress
requestDate: '2022-05-11T10:35:00+02:00'
requestPostedDate: '2022-05-11T10:35:00+02:00'
entity:
'@type': ProductOrderRef
id: 596d7fa0-981f-4b98-bcf5-e9b2955776f4
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/596d7fa0-981f-4b98-bcf5-e9b2955776f4
category:
- respondProviderChange
stateChangeDate: '2022-05-11T10:36:00+02:00'
stateChangeMessage:
- code: code
text: inProgress_Message
stateChangeHistory:
- '@type': StateChange
stateChangeDate: '2022-05-11T10:35:00+02:00'
state: acknowledged
providerChangeInfo:
'@type': ProviderChangeInfo
approval: true
CreateProductOrder_response:
description: Example of created ProductOrder
value:
$schema: '##SCHEMA_PATH##'
'@type': ProductOrder
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
category: new
creationDate: '2022-05-11T10:30:30+02:00'
orderPostedDate: '2022-05-11T10:30:00+02:00'
requestedCompletionDate: '2022-12-01T12:00:00+01:00'
agreement:
- '@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': Agreement
name: providerChangeAgreement
businessId: DEU.VFD.V012345678
agreementType: providerChangeAgreement
externalId:
- '@type': ExternalIdentifier
id: '1000111'
externalIdentifierType: externalOrderId
owner: DEU.VFD
productOrderItem:
- '@type': ProductOrderItem
id: '1'
action: add
product:
'@type': BitstreamAccessProduct
creationDate: '2022-05-11T10:30:30+02:00'
relatedPlace:
- '@type': RelatedPlaceRefOrValue
role: locationA
place:
'@type': GeographicAddress
city: Rheinhausen
country: DE
locality: Nordstadt
postcode: '59055'
streetName: Biberweg
streetNr: '2'
streetNrSuffix: a
geographicSubAddress:
- '@type': GeographicSubAddress
buildingName: Einfamilienhaus
networkTerminationUnitLocation: Flur 3.OG
homeId: a12d5a4545
productOffering:
'@type': ProductOffering
name: FTTH 250000
requestedTimeSlot:
'@type': TimeSlot
validFor:
startDateTime: '2022-12-01T08:00:00+01:00'
endDateTime: '2022-12-01T12:00:00+01:00'
relatedParty:
- '@type': RelatedPartyOrPartyRole
role: orderManagementBuyerContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221456789'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917754545454'
- '@type': EmailContactMedium
contactType: email
emailAddress: j.kirk@example.net
familyName: Kirk
salutation: Herr
givenName: James T.
title: Captain
- '@type': RelatedPartyOrPartyRole
role: installationContact
partyOrPartyRole:
'@type': Individual
contactMedium:
- '@type': PhoneContactMedium
contactType: fixed
phoneNumber: '+49221145155'
- '@type': PhoneContactMedium
contactType: mobile
phoneNumber: '+4917878878788'
- '@type': EmailContactMedium
contactType: email
emailAddress: a.fischer@example.net
familyName: Fischer
salutation: Herr
givenName: Alexander
- '@type': RelatedPartyOrPartyRole
role: locationAContact
partyOrPartyRole:
'@type': Individual
familyName: Müller
salutation: Herr
givenName: Maximilian
state: acknowledged
stateChangeDate: '2022-05-11T10:30:00+02:00'
additionalOrderInformation:
campaignIdentifier:
- PromotionFiber
projectIdentifier: AB1234
couplingIdentifier: QW567
orderBindingId: AK45678
orderBindingNumberOfOrders: 5
hardwareIdType: OntSerialNumber
hardwareIdValue: '1234567890'
CancelProductOrder_response:
description: Example of created CancelProductOrder
value:
$schema: '##SCHEMA_PATH##'
'@type': CancelProductOrder
id: 2fd01b2b-9110-41ed-8efd-014d7e8ee158
href: https://api.example.org/tmf-api/productOrderingManagement/v5/cancelProductOrder/2fd01b2b-9110-41ed-8efd-014d7e8ee158
state: acknowledged
requestDate: '2022-05-11T11:25:00+02:00'
requestPostedDate: '2022-05-11T10:30:00+02:00'
entity:
'@type': ProductOrderRef
id: 388a4963-f168-4603-99e8-477200099d91
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/388a4963-f168-4603-99e8-477200099d91
stateChangeDate: '2022-05-11T11:25:00+02:00'
InflightChangeProductOrder_response:
description: Example of created InflightChangeProductOrder
value:
$schema: '##SCHEMA_PATH##'
'@type': InflightChangeProductOrder
id: 892cfa45-fca3-488d-8a7c-2883923f820e
href: https://api.example.org/tmf-api/productOrderingManagement/v5/inflightChangeProductOrder/892cfa45-fca3-488d-8a7c-2883923f820e
state: acknowledged
requestDate: '2022-05-11T10:35:00+02:00'
requestPostedDate: '2022-05-11T10:35:00+02:00'
entity:
'@type': ProductOrderRef
id: 596d7fa0-981f-4b98-bcf5-e9b2955776f4
href: https://api.example.org/tmf-api/productOrderingManagement/v5/productOrder/596d7fa0-981f-4b98-bcf5-e9b2955776f4
category:
- respondProviderChange
stateChangeDate: '2022-05-11T10:35:00+02:00'
providerChangeInfo:
'@type': ProviderChangeInfo
approval: true
requestBodies:
ProductOrder_FVO:
description: The ProductOrder to be created
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrder_FVO'
examples:
CreateProductOrder:
$ref: '#/components/examples/CreateProductOrder_request'
required: true
CancelProductOrder_FVO:
description: The CancelProductOrder to be created
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CancelProductOrder_FVO'
examples:
CreateCancelProductOrder:
$ref: '#/components/examples/CreateCancelProductOrder_request'
required: true
InflightChangeProductOrder_FVO:
description: The InflightChangeProductOrder to be created
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/InflightChangeProductOrder_FVO'
examples:
CreateInflightChangeProductOrder:
$ref: '#/components/examples/CreateInflightChangeProductOrder_request'
required: true
ProductOrderCreateEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrderCreateEvent'
ProductOrderAttributeValueChangeEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrderAttributeValueChangeEvent'
examples:
ProductOrderAttributeValueChangeEvent:
$ref: '#/components/examples/ProductOrderAttributeValueChangeEvent_request'
ProductOrderStateChangeEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrderStateChangeEvent'
examples:
ProductOrderStateChangeEvent:
$ref: '#/components/examples/ProductOrderStateChangeEvent_request'
ProductOrderMilestoneEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrderMilestoneEvent'
examples:
ProductOrderMilestoneEvent:
$ref: '#/components/examples/ProductOrderMilestoneEvent_request'
ProductOrderJeopardyAlertEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrderJeopardyAlertEvent'
examples:
ProductOrderJeopardyAlertEvent:
$ref: '#/components/examples/ProductOrderJeopardyAlertEvent_request'
ProductOrderInformationRequiredEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrderInformationRequiredEvent'
examples:
ProductOrderInformationRequiredEvent:
$ref: '#/components/examples/ProductOrderInformationRequiredEvent_request'
CancelProductOrderStateChangeEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CancelProductOrderStateChangeEvent'
examples:
CancelProductOrderStateChangeEvent:
$ref: '#/components/examples/CancelProductOrderStateChangeEvent_request'
InflightChangeProductOrderStateChangeEvent:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/InflightChangeProductOrderStateChangeEvent'
examples:
InflightChangeProductOrderStateChangeEvent:
$ref: '#/components/examples/InflightChangeProductOrderStateChangeEvent_request'
responses:
'202':
description: Accepted
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'405':
description: Method Not allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'406':
description: Not Acceptable
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'429':
description: Too Many Requests
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ErrorMessage'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'501':
description: Not Implemented
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
200ProductOrderArray:
description: Success
headers:
X-Total-Count:
$ref: '#/components/headers/X-Total-Count'
X-Result-Count:
$ref: '#/components/headers/X-Result-Count'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ProductOrder'
200ProductOrder:
description: Success
headers:
X-Total-Count:
$ref: '#/components/headers/X-Total-Count'
X-Result-Count:
$ref: '#/components/headers/X-Result-Count'
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrder'
examples:
retrieveProductOrder:
$ref: '#/components/examples/CreateProductOrder_response'
201ProductOrder:
description: Created
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/ProductOrder'
examples:
retrieveProductOrder:
$ref: '#/components/examples/CreateProductOrder_response'
200CancelProductOrderArray:
description: Success
headers:
X-Total-Count:
$ref: '#/components/headers/X-Total-Count'
X-Result-Count:
$ref: '#/components/headers/X-Result-Count'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CancelProductOrder'
200CancelProductOrder:
description: Success
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CancelProductOrder'
examples:
retrieveProductOrder:
$ref: '#/components/examples/CancelProductOrder_response'
201CancelProductOrder:
description: Created
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/CancelProductOrder'
examples:
retrieveProductOrder:
$ref: '#/components/examples/CancelProductOrder_response'
200InflightChangeProductOrderArray:
description: Success
headers:
X-Total-Count:
$ref: '#/components/headers/X-Total-Count'
X-Result-Count:
$ref: '#/components/headers/X-Result-Count'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InflightChangeProductOrder'
201InflightChangeProductOrder:
description: Created
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/InflightChangeProductOrder'
examples:
retrieveProductOrder:
$ref: '#/components/examples/InflightChangeProductOrder_response'
200InflightChangeProductOrder:
description: Success
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/InflightChangeProductOrder'
examples:
retrieveProductOrder:
$ref: '#/components/examples/InflightChangeProductOrder_response'
DefaultError:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
204Notified:
description: Notified
securitySchemes:
OAuth2ClientCredentials:
type: oauth2
description: See https://oauth.net/2/grant-types/client-credentials/
flows:
clientCredentials:
tokenUrl: https://auth.example.org/oauth2/token/
scopes:
read: read objects
write: write objects
parameters:
Fields:
name: fields
in: query
description: Comma-separated properties to be provided in response
schema:
type: string
Offset:
name: offset
in: query
description: Requested index for start of resources to be provided in response
schema:
type: integer
Limit:
name: limit
in: query
description: Requested number of resources to be provided in response
schema:
type: integer
Id:
name: id
required: true
schema:
type: string
in: path
description: Identifier of the API Resource
headers:
X-Total-Count:
description: Total number of items matching criteria
schema:
type: integer
X-Result-Count:
description: Actual number of items returned in the response body
schema:
type: integer