openapi: 3.1.0
info:
title: FIT Appointment Management
description: "An Appointment is an arrangement to do something or meet someone at a particular time and place. It is previously made during an interaction or may be necessary to solve a customer problem or to deliver a product order item. The appointment API goal is to manage an appointment with all the necessary characteristics. First, the API consists in searching free time slots based on given parameters.\n\n#### TMF API Reference\n TMF 646 - Appointment v4.0.0\t(01-Jul-2021)\n\n#### FIT Adaptations\n Appointment: PATCH & DELETE are not used for FIT\n\n SearchTimeSlot: PATCH & DELETE are not used for FIT\n\n#### Sources\n The source API definition can be found at [fit-tmf646.yaml](https://bitbucket.org/fit-api/fit-api/src/tmf646_v1.0.0/tmf646/oas/fit-tmf646.yaml)"
version: '1.0.0'
servers:
- url: https://api.example.com/tmf-api/appointmentManagement/v5
- url: http://localhost:8080/tmf-api/appointmentManagement/v5
security:
- OAuth2ClientCredentials:
- read
- write
tags:
- name: appointment
- name: searchTimeSlot
- name: notification listeners (client side)
paths:
/appointment:
get:
operationId: listAppointment
summary: List or find Appointment objects
description: This operation list or find Appointment entities
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/200AppointmentArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- read
tags:
- appointment
post:
operationId: createAppointment
summary: Creates a Appointment
description: This operation creates a Appointment entity.
parameters:
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/Appointment_FVO'
responses:
'201':
$ref: '#/components/responses/201Appointment'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- write
tags:
- appointment
/appointment/{id}:
get:
operationId: retrieveAppointment
summary: Retrieves a Appointment by ID
description: This operation retrieves a Appointment entity. Attribute selection is enabled for all first level attributes.
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200Appointment_Get'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- read
tags:
- appointment
/searchTimeSlot:
get:
operationId: listSearchTimeSlot
summary: List or find SearchTimeSlot objects
description: This operation list or find SearchTimeSlot entities
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/200SearchTimeSlotArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- read
tags:
- searchTimeSlot
post:
operationId: createSearchTimeSlot
summary: Creates a SearchTimeSlot
description: This operation creates a SearchTimeSlot entity.
parameters:
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/SearchTimeSlot_FVO'
responses:
'201':
$ref: '#/components/responses/201SearchTimeSlot'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- write
tags:
- searchTimeSlot
/searchTimeSlot/{id}:
get:
operationId: retrieveSearchTimeSlot
summary: Retrieves a SearchTimeSlot by ID
description: This operation retrieves a SearchTimeSlot entity. Attribute selection is enabled for all first level attributes.
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200SearchTimeSlot_Get'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
security:
- OAuth2ClientCredentials:
- read
tags:
- searchTimeSlot
/listener/appointmentCreateEvent:
post:
operationId: listenToAppointmentCreateEvent
summary: Client listener for entity AppointmentCreateEvent
description: Example of a client listener for receiving the notification AppointmentCreateEvent
requestBody:
$ref: '#/components/requestBodies/AppointmentCreateEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listeners (client side)
/listener/appointmentAttributeValueChangeEvent:
post:
operationId: listenToAppointmentAttributeValueChangeEvent
summary: Client listener for entity AppointmentAttributeValueChangeEvent
description: Example of a client listener for receiving the notification AppointmentAttributeValueChangeEvent
requestBody:
$ref: '#/components/requestBodies/AppointmentAttributeValueChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listeners (client side)
/listener/appointmentStateChangeEvent:
post:
operationId: listenToAppointmentStateChangeEvent
summary: Client listener for entity AppointmentStateChangeEvent
description: Example of a client listener for receiving the notification AppointmentStateChangeEvent
requestBody:
$ref: '#/components/requestBodies/AppointmentStateChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listeners (client side)
/listener/appointmentDeleteEvent:
post:
operationId: listenToAppointmentDeleteEvent
summary: Client listener for entity AppointmentDeleteEvent
description: Example of a client listener for receiving the notification AppointmentDeleteEvent
requestBody:
$ref: '#/components/requestBodies/AppointmentDeleteEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listeners (client side)
/listener/searchTimeSlotAttributeValueChangeEvent:
post:
operationId: listenToSearchTimeSlotAttributeValueChangeEvent
summary: Client listener for entity SearchTimeSlotAttributeValueChangeEvent
description: Example of a client listener for receiving the notification SearchTimeSlotAttributeValueChangeEvent
requestBody:
$ref: '#/components/requestBodies/SearchTimeSlotAttributeValueChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listeners (client side)
/listener/searchTimeSlotStateChangeEvent:
post:
operationId: listenToSearchTimeSlotStateChangeEvent
summary: Client listener for entity SearchTimeSlotStateChangeEvent
description: Example of a client listener for receiving the notification SearchTimeSlotStateChangeEvent
requestBody:
$ref: '#/components/requestBodies/SearchTimeSlotStateChangeEvent'
responses:
'204':
$ref: '#/components/responses/204Notified'
default:
$ref: '#/components/responses/DefaultError'
tags:
- notification listeners (client side)
components:
schemas:
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).
type: object
properties:
category:
description: 'Business category : intervention for example or to be more precise after SalesIntervention, orderDeliveryIntervention,...'
type: string
creationDate:
description: Appointment creation date
type: string
format: date-time
description:
description: Short free text describing the appointment
type: string
externalId:
type: string
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
lastUpdate:
description: Date of last appointment update
type: string
format: date-time
attachment:
type: array
items:
$ref: '#/components/schemas/AttachmentRefOrValue'
note:
type: array
items:
$ref: '#/components/schemas/Note'
relatedEntity:
type: array
items:
$ref: '#/components/schemas/AppointmentRelatedEntityRefOrValue'
status:
$ref: '#/components/schemas/AppointmentStatusType'
validFor:
$ref: '#/components/schemas/TimePeriod'
allOf:
- $ref: '#/components/schemas/Entity'
discriminator:
propertyName: '@type'
mapping:
Appointment: '#/components/schemas/Appointment'
required:
- validFor
Appointment_FVO:
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).
Skipped properties: id,href,status,creationDate,lastUpdate
type: object
properties:
category:
description: 'Business category : intervention for example or to be more precise after SalesIntervention, orderDeliveryIntervention,...'
type: string
description:
description: Short free text describing the appointment
type: string
externalId:
type: string
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
attachment:
type: array
items:
$ref: '#/components/schemas/AttachmentRefOrValue'
note:
type: array
items:
$ref: '#/components/schemas/Note'
relatedEntity:
type: array
items:
$ref: '#/components/schemas/AppointmentRelatedEntityRefOrValue'
validFor:
$ref: '#/components/schemas/TimePeriod'
allOf:
- $ref: '#/components/schemas/Entity'
discriminator:
propertyName: '@type'
mapping:
Appointment_FVO: '#/components/schemas/Appointment_FVO'
required:
- validFor
AppointmentStatusType:
description: Valid values for the lifecycle state of the appointment
type: string
enum:
- initialized
- confirmed
- cancelled
- completed
- failed
SearchTimeSlot:
description: This task resource is used to retrieve available time slots. One of this available time slot is after used to create or reschedule an appointment
type: object
properties:
appointmentCategory:
description: defines the category of appointment time slots are searched for
type: string
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
requestDate:
description: Date when the search time slot was requested
type: string
format: date-time
requestPostedDate:
description: Date when the request was posted
type: string
format: date-time
searchResult:
description: Result of the search time slot (success or fail for example)
type: string
state:
$ref: '#/components/schemas/TaskStateType'
stateChangeDate:
description: The date and time the state changed.
type: string
format: date-time
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:
type: array
items:
$ref: '#/components/schemas/StateChange'
availableTimeSlot:
type: array
items:
$ref: '#/components/schemas/TimeSlot'
relatedEntity:
type: array
items:
$ref: '#/components/schemas/SearchTimeSlotRelatedEntityRefOrValue'
requestedTimeSlot:
type: array
items:
$ref: '#/components/schemas/TimeSlot'
allOf:
- $ref: '#/components/schemas/Entity'
discriminator:
propertyName: '@type'
mapping:
SearchTimeSlot: '#/components/schemas/SearchTimeSlot'
SearchTimeSlot_FVO:
description: |-
This task resource is used to retrieve available time slots. One of this available time slot is after used to create or reschedule an appointment
Skipped properties: id,href,searchResult,availableTimeSlot,requestPostedDate,state,stateChangeDate,stateChangeMessage,stateChangeHistory
type: object
properties:
appointmentCategory:
description: defines the category of appointment time slots are searched for
type: string
externalIdentifier:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
requestDate:
description: Date when the search time slot was requested
type: string
format: date-time
relatedEntity:
type: array
items:
$ref: '#/components/schemas/SearchTimeSlotRelatedEntityRefOrValue'
requestedTimeSlot:
type: array
items:
$ref: '#/components/schemas/TimeSlot'
allOf:
- $ref: '#/components/schemas/Entity'
discriminator:
propertyName: '@type'
mapping:
SearchTimeSlot_FVO: '#/components/schemas/SearchTimeSlot_FVO'
AppointmentCreateEvent:
description: The notification data structure
type: object
properties:
event:
$ref: '#/components/schemas/AppointmentCreateEventPayload'
allOf:
- $ref: '#/components/schemas/Event'
discriminator:
propertyName: '@type'
mapping:
AppointmentCreateEvent: '#/components/schemas/AppointmentCreateEvent'
AppointmentCreateEventPayload:
description: The event data structure
type: object
properties:
appointment:
$ref: '#/components/schemas/Appointment'
AppointmentAttributeValueChangeEvent:
description: The notification data structure
type: object
properties:
event:
$ref: '#/components/schemas/AppointmentAttributeValueChangeEventPayload'
allOf:
- $ref: '#/components/schemas/Event'
discriminator:
propertyName: '@type'
mapping:
AppointmentAttributeValueChangeEvent: '#/components/schemas/AppointmentAttributeValueChangeEvent'
AppointmentAttributeValueChangeEventPayload:
description: The event data structure
type: object
properties:
appointment:
$ref: '#/components/schemas/Appointment'
AppointmentStateChangeEvent:
description: The notification data structure
type: object
properties:
event:
$ref: '#/components/schemas/AppointmentStateChangeEventPayload'
allOf:
- $ref: '#/components/schemas/Event'
discriminator:
propertyName: '@type'
mapping:
AppointmentStateChangeEvent: '#/components/schemas/AppointmentStateChangeEvent'
AppointmentStateChangeEventPayload:
description: The event data structure
type: object
properties:
appointment:
$ref: '#/components/schemas/Appointment'
AppointmentDeleteEvent:
description: The notification data structure
type: object
properties:
event:
$ref: '#/components/schemas/AppointmentDeleteEventPayload'
allOf:
- $ref: '#/components/schemas/Event'
discriminator:
propertyName: '@type'
mapping:
AppointmentDeleteEvent: '#/components/schemas/AppointmentDeleteEvent'
AppointmentDeleteEventPayload:
description: The event data structure
type: object
properties:
appointment:
$ref: '#/components/schemas/Appointment'
SearchTimeSlotAttributeValueChangeEvent:
description: The notification data structure
type: object
properties:
event:
$ref: '#/components/schemas/SearchTimeSlotAttributeValueChangeEventPayload'
allOf:
- $ref: '#/components/schemas/Event'
discriminator:
propertyName: '@type'
mapping:
SearchTimeSlotAttributeValueChangeEvent: '#/components/schemas/SearchTimeSlotAttributeValueChangeEvent'
SearchTimeSlotAttributeValueChangeEventPayload:
description: The event data structure
type: object
properties:
searchTimeSlot:
$ref: '#/components/schemas/SearchTimeSlot'
SearchTimeSlotStateChangeEvent:
description: The notification data structure
type: object
properties:
event:
$ref: '#/components/schemas/SearchTimeSlotStateChangeEventPayload'
allOf:
- $ref: '#/components/schemas/Event'
discriminator:
propertyName: '@type'
mapping:
SearchTimeSlotStateChangeEvent: '#/components/schemas/SearchTimeSlotStateChangeEvent'
SearchTimeSlotStateChangeEventPayload:
description: The event data structure
type: object
properties:
searchTimeSlot:
$ref: '#/components/schemas/SearchTimeSlot'
AppointmentRelatedEntityRefOrValue:
description: A reference to an entity, where the type of the entity is not known in advance. A related entity defines a entity described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Entity and not the RelatedEntityRefOrValue class itself. Related entities are differentiated by role (e.g., affectedProduct, troubleTicket, searchTimeSlot, availableTimeSlot, buyerServiceContract, ordererServiceContract, singleContract, productOrder). The role-to-entity mapping is documented but not enforced in the schema.
type: object
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- role
- entity
properties:
role:
description: Role played by the related entity
type: string
entity:
$ref: '#/components/schemas/AppointmentEntityRefOrValue'
AppointmentEntityRefOrValue:
description: An entity ref or value (Appointment)
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/Agreement'
- $ref: '#/components/schemas/ProductRef'
- $ref: '#/components/schemas/TroubleTicketRef'
- $ref: '#/components/schemas/SearchTimeslotRef'
- $ref: '#/components/schemas/AvailableTimeslotRef'
- $ref: '#/components/schemas/ProductOrderRef'
SearchTimeSlotRelatedEntityRefOrValue:
description: A reference to an entity, where the type of the entity is not known in advance. A related entity defines a entity described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Entity and not the RelatedEntityRefOrValue class itself. Related entities are differentiated by role (e.g., affectedProduct, troubleTicket, buyerServiceContract, ordererServiceContract, optionalServices, affectedQualification, affectedQualificationItem, affectedProductOrder). The role-to-entity mapping is documented but not enforced in the schema.
type: object
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- role
- entity
properties:
role:
description: Role played by the related entity
type: string
entity:
$ref: '#/components/schemas/SearchTimeSlotEntityRefOrValue'
SearchTimeSlotEntityRefOrValue:
description: An entity ref or value (SearchTimeSlot)
type: object
discriminator:
propertyName: '@type'
oneOf:
- $ref: '#/components/schemas/ProductOffering'
- $ref: '#/components/schemas/Agreement'
- $ref: '#/components/schemas/ProductRef'
- $ref: '#/components/schemas/TroubleTicketRef'
- $ref: '#/components/schemas/QueryProductOfferingQualificationRef'
- $ref: '#/components/schemas/QueryProductOfferingQualificationItemRef'
- $ref: '#/components/schemas/ProductOrderRef'
SearchTimeslotRef:
description: SearchTimeslot reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
AvailableTimeslotRef:
description: AvailableTimeslot reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
QueryProductOfferingQualificationRef:
description: QueryProductOfferingQualification reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
QueryProductOfferingQualificationItemRef:
description: QueryProductOfferingQualificationItem reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
ProductOrderRef:
description: ProductOrder reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
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
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
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: ''
AttachmentRef:
description: Attachment reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
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
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'
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'
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
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
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.
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
ProductRef:
description: Product reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
TroubleTicketRef:
description: TroubleTicket reference.
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
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
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
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: ''
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'
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'
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
examples:
EntstoerungVorSearchTimeSlotRequest:
description: POST SearchTimeSlot Example - Entstoerung vor Beauftragung (Use Case 1)
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot_FVO
appointmentCategory: beforeFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungNachSearchTimeSlotRequest:
description: POST SearchTimeSlot Example - Entstoerung nach Beauftragung (Use Case 2)
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot_FVO
appointmentCategory: duringFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungVorSearchTimeSlotRequest:
description: POST SearchTimeSlot Example - Bereitstellung vor Beauftragung (Use Case 3)
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot_FVO
appointmentCategory: beforeProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualification
entity:
'@type': QueryProductOfferingQualificationRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': QueryProductOfferingQualification
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualificationItem
entity:
'@type': QueryProductOfferingQualificationItemRef
id: '1'
'@referredType': QueryProductOfferingQualificationItem
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungNachSearchTimeSlotRequest:
description: POST SearchTimeSlot Example - Bereitstellung nach Beauftragung (Use Case 4)
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot_FVO
appointmentCategory: duringProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProductOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungVorSearchTimeSlotCreatedAcknowledged:
description: 201 Created (acknowledged) - Use Case 1
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: acknowledged
stateChangeDate: '2024-02-01T10:30:15+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungNachSearchTimeSlotCreatedAcknowledged:
description: 201 Created (acknowledged) - Use Case 2
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: acknowledged
stateChangeDate: '2024-02-01T10:30:15+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungVorSearchTimeSlotCreatedAcknowledged:
description: 201 Created (acknowledged) - Use Case 3
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: acknowledged
stateChangeDate: '2024-02-01T10:30:15+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualification
entity:
'@type': QueryProductOfferingQualificationRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': QueryProductOfferingQualification
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualificationItem
entity:
'@type': QueryProductOfferingQualificationItemRef
id: '1'
'@referredType': QueryProductOfferingQualificationItem
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungNachSearchTimeSlotCreatedAcknowledged:
description: 201 Created (acknowledged) - Use Case 4
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: acknowledged
stateChangeDate: '2024-02-01T10:30:15+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProductOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungVorAppointmentRequest:
description: POST Appointment Example - Entstoerung vor Beauftragung (Use Case 1)
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment_FVO
category: beforeFaultTicket
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
EntstoerungNachAppointmentRequest:
description: POST Appointment Example - Entstoerung nach Beauftragung (Use Case 2)
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment_FVO
category: duringFaultTicket
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
BereitstellungVorAppointmentRequest:
description: POST Appointment Example - Bereitstellung vor Beauftragung (Use Case 3)
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment_FVO
category: beforeProductOrder
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
BereitstellungNachAppointmentRequest:
description: POST Appointment Example - Bereitstellung nach Beauftragung (Use Case 4)
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment_FVO
category: duringProductOrder
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: productOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
EntstoerungVorAppointmentCreatedInitialized:
description: 201 Created (initialized) - Use Case 1
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: beforeFaultTicket
lastUpdate: '2024-02-01T10:59:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: initialized
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
EntstoerungNachAppointmentCreatedInitialized:
description: 201 Created (initialized) - Use Case 2
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: duringFaultTicket
lastUpdate: '2024-02-01T10:59:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: initialized
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
BereitstellungVorAppointmentCreatedInitialized:
description: 201 Created (initialized) - Use Case 3
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: beforeProductOrder
lastUpdate: '2024-02-01T10:59:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: initialized
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
BereitstellungNachAppointmentCreatedInitialized:
description: 201 Created (initialized) - Use Case 4
value:
$schema: '##SCHEMA_PATH##'
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: duringProductOrder
lastUpdate: '2024-02-01T10:59:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: productOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: initialized
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
EntstoerungVorSearchTimeSlotStateChangeInProgressEvent:
description: SearchTimeSlotStateChangeEvent (inProgress) - Use Case 1
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: entstoerung-vor-3-searchtimeslot-state-change-in-progress
eventTime: '2024-02-01T10:31:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungVorSearchTimeSlotStateChangeDoneEvent:
description: SearchTimeSlotStateChangeEvent (done) - Use Case 1
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: entstoerung-vor-5-searchtimeslot-state-change-done
eventTime: '2024-02-01T10:32:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: done
stateChangeDate: '2024-02-01T10:32:00+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungNachSearchTimeSlotStateChangeInProgressEvent:
description: SearchTimeSlotStateChangeEvent (inProgress) - Use Case 2
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: entstoerung-nach-3-searchtimeslot-state-change-in-progress
eventTime: '2024-02-01T10:31:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungNachSearchTimeSlotStateChangeDoneEvent:
description: SearchTimeSlotStateChangeEvent (done) - Use Case 2
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: entstoerung-nach-5-searchtimeslot-state-change-done
eventTime: '2024-02-01T10:32:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: done
stateChangeDate: '2024-02-01T10:32:00+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungVorSearchTimeSlotStateChangeInProgressEvent:
description: SearchTimeSlotStateChangeEvent (inProgress) - Use Case 3
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: bereitstellung-vor-3-searchtimeslot-state-change-in-progress
eventTime: '2024-02-01T10:31:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualification
entity:
'@type': QueryProductOfferingQualificationRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': QueryProductOfferingQualification
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualificationItem
entity:
'@type': QueryProductOfferingQualificationItemRef
id: '1'
'@referredType': QueryProductOfferingQualificationItem
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungVorSearchTimeSlotStateChangeDoneEvent:
description: SearchTimeSlotStateChangeEvent (done) - Use Case 3
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: bereitstellung-vor-5-searchtimeslot-state-change-done
eventTime: '2024-02-01T10:32:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: done
stateChangeDate: '2024-02-01T10:32:00+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualification
entity:
'@type': QueryProductOfferingQualificationRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': QueryProductOfferingQualification
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualificationItem
entity:
'@type': QueryProductOfferingQualificationItemRef
id: '1'
'@referredType': QueryProductOfferingQualificationItem
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungNachSearchTimeSlotStateChangeInProgressEvent:
description: SearchTimeSlotStateChangeEvent (inProgress) - Use Case 4
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: bereitstellung-nach-3-searchtimeslot-state-change-in-progress
eventTime: '2024-02-01T10:31:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProductOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungNachSearchTimeSlotStateChangeDoneEvent:
description: SearchTimeSlotStateChangeEvent (done) - Use Case 4
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotStateChangeEvent
eventId: bereitstellung-nach-5-searchtimeslot-state-change-done
eventTime: '2024-02-01T10:32:00+01:00'
eventType: SearchTimeSlotStateChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: done
stateChangeDate: '2024-02-01T10:32:00+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProductOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungVorSearchTimeSlotAttributeValueChangeEvent:
description: SearchTimeSlotAttributeValueChangeEvent - Use Case 1
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotAttributeValueChangeEvent
eventId: entstoerung-vor-4-searchtimeslot-attribute-value-change
eventTime: '2024-02-01T10:31:30+01:00'
eventType: SearchTimeSlotAttributeValueChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:30+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungNachSearchTimeSlotAttributeValueChangeEvent:
description: SearchTimeSlotAttributeValueChangeEvent - Use Case 2
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotAttributeValueChangeEvent
eventId: entstoerung-nach-4-searchtimeslot-attribute-value-change
eventTime: '2024-02-01T10:31:30+01:00'
eventType: SearchTimeSlotAttributeValueChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringFaultTicket
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:30+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Entstoerung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungVorSearchTimeSlotAttributeValueChangeEvent:
description: SearchTimeSlotAttributeValueChangeEvent - Use Case 3
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotAttributeValueChangeEvent
eventId: bereitstellung-vor-4-searchtimeslot-attribute-value-change
eventTime: '2024-02-01T10:31:30+01:00'
eventType: SearchTimeSlotAttributeValueChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: beforeProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:30+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualification
entity:
'@type': QueryProductOfferingQualificationRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': QueryProductOfferingQualification
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedQualificationItem
entity:
'@type': QueryProductOfferingQualificationItemRef
id: '1'
'@referredType': QueryProductOfferingQualificationItem
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
BereitstellungNachSearchTimeSlotAttributeValueChangeEvent:
description: SearchTimeSlotAttributeValueChangeEvent - Use Case 4
value:
$schema: '##SCHEMA_PATH##'
'@type': SearchTimeSlotAttributeValueChangeEvent
eventId: bereitstellung-nach-4-searchtimeslot-attribute-value-change
eventTime: '2024-02-01T10:31:30+01:00'
eventType: SearchTimeSlotAttributeValueChangeEvent
event:
searchTimeSlot:
'@type': SearchTimeSlot
id: 158ecded-6aca-4f83-a54e-f35cc53be128
href: https://api.example.com/searchTimeSlot/158ecded-6aca-4f83-a54e-f35cc53be128
appointmentCategory: duringProductOrder
requestDate: '2024-02-01T10:30:00+01:00'
requestPostedDate: '2024-02-01T10:30:30+01:00'
state: inProgress
stateChangeDate: '2024-02-01T10:31:30+01:00'
availableTimeSlot:
- '@type': TimeSlot
id: e2cd000f-4731-4036-b481-d70d7617c70e
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
- '@type': TimeSlot
id: 321e0c9d-1112-41ac-9251-45fe542f92
validFor:
startDateTime: '2024-02-03T08:00:00+01:00'
endDateTime: '2024-02-03T12:00:00+01:00'
relatedEntity:
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: affectedProductOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': SearchTimeSlotRelatedEntityRefOrValue
role: optionalServices
entity:
'@type': ProductOffering
name: Ganzheitliche Bereitstellung
requestedTimeSlot:
- '@type': TimeSlot
validFor:
startDateTime: '2024-02-02T08:00:00+01:00'
endDateTime: '2024-02-02T12:00:00+01:00'
EntstoerungVorAppointmentStateChangeConfirmedEvent:
description: AppointmentStateChangeEvent (confirmed) - Use Case 1
value:
$schema: '##SCHEMA_PATH##'
'@type': AppointmentStateChangeEvent
eventId: entstoerung-vor-8-appointment-state-change-confirmed
eventTime: '2024-02-01T11:00:00+01:00'
eventType: AppointmentStateChangeEvent
event:
appointment:
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: beforeFaultTicket
lastUpdate: '2024-02-01T11:00:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: affectedProduct
entity:
'@type': ProductRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': Product
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: confirmed
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
EntstoerungNachAppointmentStateChangeConfirmedEvent:
description: AppointmentStateChangeEvent (confirmed) - Use Case 2
value:
$schema: '##SCHEMA_PATH##'
'@type': AppointmentStateChangeEvent
eventId: entstoerung-nach-8-appointment-state-change-confirmed
eventTime: '2024-02-01T11:00:00+01:00'
eventType: AppointmentStateChangeEvent
event:
appointment:
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: duringFaultTicket
lastUpdate: '2024-02-01T11:00:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: confirmed
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
BereitstellungVorAppointmentStateChangeConfirmedEvent:
description: AppointmentStateChangeEvent (confirmed) - Use Case 3
value:
$schema: '##SCHEMA_PATH##'
'@type': AppointmentStateChangeEvent
eventId: bereitstellung-vor-8-appointment-state-change-confirmed
eventTime: '2024-02-01T11:00:00+01:00'
eventType: AppointmentStateChangeEvent
event:
appointment:
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: beforeProductOrder
lastUpdate: '2024-02-01T11:00:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: troubleTicket
entity:
'@type': TroubleTicketRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': TroubleTicket
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: confirmed
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
BereitstellungNachAppointmentStateChangeConfirmedEvent:
description: AppointmentStateChangeEvent (confirmed) - Use Case 4
value:
$schema: '##SCHEMA_PATH##'
'@type': AppointmentStateChangeEvent
eventId: bereitstellung-nach-8-appointment-state-change-confirmed
eventTime: '2024-02-01T11:00:00+01:00'
eventType: AppointmentStateChangeEvent
event:
appointment:
'@type': Appointment
id: 6c792dbc-abad-464d-843b-42cd7444edeb
href: https://api.example.com/appointment/6c792dbc-abad-464d-843b-42cd7444edeb
category: duringProductOrder
lastUpdate: '2024-02-01T11:00:00+01:00'
relatedEntity:
- '@type': AppointmentRelatedEntityRefOrValue
role: buyerServiceContract
entity:
'@type': Agreement
name: buyerServiceContract
engagedParty:
- '@type': Organization
businessId: '500011'
businessId: '500012'
agreementType: buyerServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: ordererServiceContract
entity:
'@type': Agreement
name: ordererServiceContract
engagedParty:
- '@type': Organization
businessId: '500014'
businessId: '500013'
agreementType: ordererServiceContract
- '@type': AppointmentRelatedEntityRefOrValue
role: singleContract
entity:
'@type': Agreement
name: singleContract
businessId: '555001'
agreementType: singleContract
- '@type': AppointmentRelatedEntityRefOrValue
role: productOrder
entity:
'@type': ProductOrderRef
id: 922ebf01-e930-47a0-842e-059d1f188a15
'@referredType': ProductOrder
- '@type': AppointmentRelatedEntityRefOrValue
role: searchTimeSlot
entity:
'@type': SearchTimeslotRef
id: 158ecded-6aca-4f83-a54e-f35cc53be128
'@referredType': SearchTimeslot
- '@type': AppointmentRelatedEntityRefOrValue
role: availableTimeSlot
entity:
'@type': AvailableTimeslotRef
id: 321e0c9d-1112-41ac-9251-45fe542f92
'@referredType': AvailableTimeslot
status: confirmed
validFor:
startDateTime: '2024-02-02T14:00:00+01:00'
endDateTime: '2024-02-02T15:00:00+01:00'
requestBodies:
Appointment_FVO:
description: The Appointment to be created
content:
application/json:
schema:
$ref: '#/components/schemas/Appointment_FVO'
examples:
EntstoerungVorAppointmentRequest:
$ref: '#/components/examples/EntstoerungVorAppointmentRequest'
EntstoerungNachAppointmentRequest:
$ref: '#/components/examples/EntstoerungNachAppointmentRequest'
BereitstellungVorAppointmentRequest:
$ref: '#/components/examples/BereitstellungVorAppointmentRequest'
BereitstellungNachAppointmentRequest:
$ref: '#/components/examples/BereitstellungNachAppointmentRequest'
required: true
SearchTimeSlot_FVO:
description: The SearchTimeSlot to be created
content:
application/json:
schema:
$ref: '#/components/schemas/SearchTimeSlot_FVO'
examples:
EntstoerungVorSearchTimeSlotRequest:
$ref: '#/components/examples/EntstoerungVorSearchTimeSlotRequest'
EntstoerungNachSearchTimeSlotRequest:
$ref: '#/components/examples/EntstoerungNachSearchTimeSlotRequest'
BereitstellungVorSearchTimeSlotRequest:
$ref: '#/components/examples/BereitstellungVorSearchTimeSlotRequest'
BereitstellungNachSearchTimeSlotRequest:
$ref: '#/components/examples/BereitstellungNachSearchTimeSlotRequest'
required: true
AppointmentStateChangeEvent:
description: Appointment stateChange Event payload
content:
application/json:
schema:
$ref: '#/components/schemas/AppointmentStateChangeEvent'
examples:
EntstoerungVorAppointmentStateChangeConfirmed:
$ref: '#/components/examples/EntstoerungVorAppointmentStateChangeConfirmedEvent'
EntstoerungNachAppointmentStateChangeConfirmed:
$ref: '#/components/examples/EntstoerungNachAppointmentStateChangeConfirmedEvent'
BereitstellungVorAppointmentStateChangeConfirmed:
$ref: '#/components/examples/BereitstellungVorAppointmentStateChangeConfirmedEvent'
BereitstellungNachAppointmentStateChangeConfirmed:
$ref: '#/components/examples/BereitstellungNachAppointmentStateChangeConfirmedEvent'
required: true
AppointmentCreateEvent:
description: Appointment Create Event payload
content:
application/json:
schema:
$ref: '#/components/schemas/AppointmentCreateEvent'
required: true
AppointmentAttributeValueChangeEvent:
description: Appointment attributeValueChange Event payload
content:
application/json:
schema:
$ref: '#/components/schemas/AppointmentAttributeValueChangeEvent'
required: true
AppointmentDeleteEvent:
description: Appointment delete Event payload
content:
application/json:
schema:
$ref: '#/components/schemas/AppointmentDeleteEvent'
required: true
SearchTimeSlotStateChangeEvent:
description: SearchTimeSlot stateChange Event payload
content:
application/json:
schema:
$ref: '#/components/schemas/SearchTimeSlotStateChangeEvent'
examples:
EntstoerungVorSearchTimeSlotStateChangeInProgress:
$ref: '#/components/examples/EntstoerungVorSearchTimeSlotStateChangeInProgressEvent'
EntstoerungVorSearchTimeSlotStateChangeDone:
$ref: '#/components/examples/EntstoerungVorSearchTimeSlotStateChangeDoneEvent'
EntstoerungNachSearchTimeSlotStateChangeInProgress:
$ref: '#/components/examples/EntstoerungNachSearchTimeSlotStateChangeInProgressEvent'
EntstoerungNachSearchTimeSlotStateChangeDone:
$ref: '#/components/examples/EntstoerungNachSearchTimeSlotStateChangeDoneEvent'
BereitstellungVorSearchTimeSlotStateChangeInProgress:
$ref: '#/components/examples/BereitstellungVorSearchTimeSlotStateChangeInProgressEvent'
BereitstellungVorSearchTimeSlotStateChangeDone:
$ref: '#/components/examples/BereitstellungVorSearchTimeSlotStateChangeDoneEvent'
BereitstellungNachSearchTimeSlotStateChangeInProgress:
$ref: '#/components/examples/BereitstellungNachSearchTimeSlotStateChangeInProgressEvent'
BereitstellungNachSearchTimeSlotStateChangeDone:
$ref: '#/components/examples/BereitstellungNachSearchTimeSlotStateChangeDoneEvent'
required: true
SearchTimeSlotAttributeValueChangeEvent:
description: Appointment attributeValueChange Event payload
content:
application/json:
schema:
$ref: '#/components/schemas/SearchTimeSlotAttributeValueChangeEvent'
examples:
EntstoerungVorSearchTimeSlotAttributeValueChange:
$ref: '#/components/examples/EntstoerungVorSearchTimeSlotAttributeValueChangeEvent'
EntstoerungNachSearchTimeSlotAttributeValueChange:
$ref: '#/components/examples/EntstoerungNachSearchTimeSlotAttributeValueChangeEvent'
BereitstellungVorSearchTimeSlotAttributeValueChange:
$ref: '#/components/examples/BereitstellungVorSearchTimeSlotAttributeValueChangeEvent'
BereitstellungNachSearchTimeSlotAttributeValueChange:
$ref: '#/components/examples/BereitstellungNachSearchTimeSlotAttributeValueChangeEvent'
required: true
responses:
'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'
'409':
description: Conflict
content:
application/json:
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'
200AppointmentArray:
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/Appointment'
201Appointment:
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Appointment'
examples:
EntstoerungVorCreated:
$ref: '#/components/examples/EntstoerungVorAppointmentCreatedInitialized'
EntstoerungNachCreated:
$ref: '#/components/examples/EntstoerungNachAppointmentCreatedInitialized'
BereitstellungVorCreated:
$ref: '#/components/examples/BereitstellungVorAppointmentCreatedInitialized'
BereitstellungNachCreated:
$ref: '#/components/examples/BereitstellungNachAppointmentCreatedInitialized'
200Appointment_Get:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/Appointment'
200SearchTimeSlotArray:
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/SearchTimeSlot'
201SearchTimeSlot:
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/SearchTimeSlot'
examples:
EntstoerungVorCreated:
$ref: '#/components/examples/EntstoerungVorSearchTimeSlotCreatedAcknowledged'
EntstoerungNachCreated:
$ref: '#/components/examples/EntstoerungNachSearchTimeSlotCreatedAcknowledged'
BereitstellungVorCreated:
$ref: '#/components/examples/BereitstellungVorSearchTimeSlotCreatedAcknowledged'
BereitstellungNachCreated:
$ref: '#/components/examples/BereitstellungNachSearchTimeSlotCreatedAcknowledged'
200SearchTimeSlot_Get:
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SearchTimeSlot'
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