MEF Appointment Management Notification (Mef Lso Sonata Appointment Notification)
MEF Appointment Management Notification from MEF — 2 path(s) described in OpenAPI.
MEF Appointment Management Notification from MEF — 2 path(s) described in OpenAPI.
openapi: 3.0.1
info:
title: Appointment Management Notification
description: >
**This file forms part of Mplify 137.1**
**This API implements Business Requirements described in MEF 113.**
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.
List of supported use cases:
- Send Appointment Notification
Copyright 2025 Mplify Alliance and its contributors.
This file includes content based on the TM Forum Appointment Management API
(TMF646 v4.0.0) available at
https://github.com/tmforum-apis/TMF646_AppointmentManagement, which is
licensed by the TM Forum under the Apache License version 2.0. Such content
has been modified by the Mplify Alliance and its contributors.
version: 3.0.1
servers:
- url: 'https://{serverBase}/mefApi/sonata/appointmentNotification/v3/'
variables:
serverBase:
description: The base of Buyer's URL.
default: mplify.net
tags:
- name: Notification listeners
description: |
The Buyer's endpoint to send particular event types notifications to.
paths:
/listener/appointmentAttributeValueChangeEvent:
post:
tags:
- Notification listeners
summary: Client listener for entity appointmentAttributeValueChangeEvent
description: >-
Client listener for receiving the appointmentAttributeValueChangeEvent
notification
operationId: listenToAppointmentAttributeValueChangeEvent
parameters:
- name: buyerId
in: query
description: >-
The unique identifier of the organization that is acting as the
Buyer. MUST be specified in the request when the requester
represents more than one Buyer.
required: false
schema:
type: string
- name: sellerId
in: query
description: >-
The unique identifier of the organization that is acting as the
Seller. MUST be specified in the request when the responding entity
represents more than one Seller.
required: false
schema:
type: string
requestBody:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/AppointmentAttributeValueChangeEvent'
required: true
responses:
'204':
description:
'No Content (https://tools.ietf.org/html/rfc7231#section-6.3.5)'
'400':
description: Bad Request
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error400'
'401':
description: Unauthorized
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error403'
'500':
description: Internal Server Error
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error500'
/listener/appointmentStatusChangeEvent:
post:
tags:
- Notification listeners
summary: Client listener for entity appointmentStatusChangeEvent
description: >-
Client listener for receiving the appointmentStatusChangeEvent
notification
operationId: listenToAppointmentStatusChangeEvent
parameters:
- name: buyerId
in: query
description: >-
The unique identifier of the organization that is acting as the
Buyer. MUST be specified in the request when the requester
represents more than one Buyer.
required: false
schema:
type: string
- name: sellerId
in: query
description: >-
The unique identifier of the organization that is acting as the
Seller. MUST be specified in the request when the responding entity
represents more than one Seller.
required: false
schema:
type: string
requestBody:
description: The event data
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/AppointmentStatusChangeEvent'
required: true
responses:
'204':
description:
'No Content (https://tools.ietf.org/html/rfc7231#section-6.3.5)'
'400':
description: Bad Request
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error400'
'401':
description: Unauthorized
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error401'
'403':
description: Forbidden
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error403'
'500':
description: Internal Server Error
content:
application/json;charset=utf-8:
schema:
$ref: '#/components/schemas/Error500'
components:
schemas:
AppointmentAttributeValueChangeEvent:
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
eventType:
description: Indicates the type of the event.
type: string
enum:
- appointmentAttributeValueChangeEvent
event:
description: >
A reference to the object that is the source of the
notification.
$ref: '#/components/schemas/AppointmentAttributeValueChangeEventPayload'
required:
- event
- eventType
AppointmentAttributeValueChangeEventPayload:
description: The identifier of the Appointment is subject of this event.
type: object
properties:
id:
description: ID of the Appointment attributed by quoting system
type: string
href:
description: Hyperlink to access the Appointment
type: string
required:
- id
AppointmentStatusChangeEvent:
allOf:
- $ref: '#/components/schemas/Event'
- type: object
properties:
eventType:
description: Indicates the type of the event.
type: string
enum:
- appointmentStatusChangeEvent
event:
description: >
A reference to the object that is the source of the
notification.
$ref: '#/components/schemas/AppointmentStatusChangeEventPayload'
required:
- event
- eventType
AppointmentStatusChangeEventPayload:
description:
The identifier of the Product Offering being subject of this event.
type: object
properties:
id:
description: ID of the Product Offering attributed by the Seller
type: string
href:
description: Hyperlink to access the Product Offering
type: string
format: uri
status:
description: The current lifecycle status of the Product Offering.
$ref: '#/components/schemas/AppointmentStatusType'
required:
- id
- status
AppointmentStatusType:
description: |
Valid values for the lifecycle status of the appointment.
| status | MEF 113 name | Description |
| ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `confirmed` | SCHEDULED | The Buyer has negotiated and scheduled the Appointment with the Seller. |
| `inProgress` | IN_PROGRESS | The Appointment can no longer be cancelled (point of no return), this is up to the Seller's discretion. |
| `cancelled` | CANCELLED | The Appointment was cancelled by the Buyer or the Seller determined that an Appointment was not required. This is a terminal state. |
| `missed` | MISSED | The Appointment did not take place, because of a Seller related issue. For example, no Seller Technician was available on the date of the appointment |
| `failed` | FAILED | The Appointment did not take place, because of an issue with the Buy-er. For example, Seller Technician was unable to get to the Appointment due to an incorrect location or unable to get access to the Buyer`s site. This is a terminal state |
| `completed` | COMPLETED | The Appointment took place as scheduled. This is a terminal state. |
type: string
enum:
- confirmed
- inProgress
- cancelled
- missed
- failed
- completed
Error:
description: >
Standard Class used to describe API response error Not intended to be
used directly. The `code` in the HTTP header is used as a discriminator
for the type of error returned in runtime.
type: object
properties:
reason:
description: >-
Text that explains the reason for the error. This can be shown to a
client user.
type: string
maxLength: 255
message:
description: >-
Text that provides mode details and corrective actions related to
the error. This can be shown to a client user.
type: string
referenceError:
description: URL pointing to documentation describing the error
type: string
format: uri
required:
- reason
Error400:
description:
'Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)'
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
description: >-
One of the following error codes:
- missingQueryParameter: The URI is missing a required
query-string parameter
- missingQueryValue: The URI is missing a required query-string
parameter value
- invalidQuery: The query section of the URI is invalid.
- invalidBody: The request has an invalid body
$ref: '#/components/schemas/Error400Code'
required:
- code
Error400Code:
description: >-
One of the following error codes:
- missingQueryParameter: The URI is missing a required query-string
parameter
- missingQueryValue: The URI is missing a required query-string
parameter value
- invalidQuery: The query section of the URI is invalid.
- invalidBody: The request has an invalid body
type: string
enum:
- missingQueryParameter
- missingQueryValue
- invalidQuery
- invalidBody
Error401:
description:
'Unauthorized. (https://tools.ietf.org/html/rfc7235#section-3.1)'
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
description: >-
One of the following error codes:
- missingCredentials: No credentials provided.
- invalidCredentials: Provided credentials are invalid or
expired
$ref: '#/components/schemas/Error401Code'
required:
- code
Error401Code:
description: |-
One of the following error codes:
- missingCredentials: No credentials provided.
- invalidCredentials: Provided credentials are invalid or expired
type: string
enum:
- missingCredentials
- invalidCredentials
Error403:
description: >-
Forbidden. This code indicates that the server understood the request
but refuses to authorize it.
(https://tools.ietf.org/html/rfc7231#section-6.5.3)
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
description: |-
This code indicates that the server understood
the request but refuses to authorize it because
of one of the following error codes:
- accessDenied: Access denied
- forbiddenRequester: Forbidden requester
- tooManyUsers: Too many users
$ref: '#/components/schemas/Error403Code'
required:
- code
Error403Code:
description: |-
This code indicates that the server understood
the request but refuses to authorize it because
of one of the following error codes:
- accessDenied: Access denied
- forbiddenRequester: Forbidden requester
- tooManyUsers: Too many users
type: string
enum:
- accessDenied
- forbiddenRequester
- tooManyUsers
Error500:
description: >-
Internal Server Error.
(https://tools.ietf.org/html/rfc7231#section-6.6.1)
allOf:
- $ref: '#/components/schemas/Error'
- type: object
properties:
code:
description: >-
The following error code:
- internalError: Internal server error - the server encountered
an unexpected condition that prevented it from fulfilling the
request.
type: string
enum:
- internalError
required:
- code
Event:
description: >-
Event class is used to describe information structure used for
notification.
type: object
properties:
eventId:
description: Id of the event
type: string
eventTime:
description: Date-time when the event occurred
type: string
format: date-time
eventType:
description: The type of the notification.
type: string
event:
description: The event linked to the involved resource object
type: object
required:
- event
- eventId
- eventTime
- eventType