-- YML module extracted from ITU-T Q.819 (01/2022)
openapi: 3.0.0
info:
title: ITU-T_HeartbeatService
description: ''This is the formal definition of the ITU-T Heartbeat Service.''
termsOfService: https://www.itu.int/en/ITU-T/about/Pages/default.aspx
contact:
email: zlwang@bupt.edu.cn
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.0
externalDocs:
description: See Recommendation ITU-T Q.819
url: https://www.itu.int/itu-t/recommendations/index.aspx?ser=X
servers:
- url: https://www.itu.int/sg2/rest/HeartbeatService/v1.0.0
- url: http://www.itu.int/sg2/rest/HeartbeatService/v1.0.0
tags:
- name: HeartbeatService
description: All APIs realted to the ITU-T Heartbeat Service
externalDocs:
description: Find out more
url: https://www.itu.int/itu-t/recommendations/index.aspx?ser=X
paths:
/HeartbeatService/{subscriptionId}:
parameters:
- name: subscriptionId
in: path
description: "The unique Identifier of the notification Subscription"
required: true
schema:
type: string
get:
tags:
- HeartbeatService
summary: "Get Heartbeat Service Information"
description: "get the list of Identifiers of all the existing Notification Subscriptions"
operationId: "getHeartbeatAttributes"
responses:
200:
description: "The attribute value list of the specified MO is retrieved successfully"
content:
application/json:
schema:
$ref: "#/components/schemas/HeartbeatInfo"
404:
description: "Specified Subscription Not found"
content: {}
500:
description: "Internal Server Error"
content: {}
patch:
tags:
- HeartbeatService
summary: "Modify Heartbeat service attributes"
description: "modify the attribute of a heartbeat sevice attributes."
operationId: "modifyHeartbeatService"
requestBody:
description: "The input parameters of the modifySuscription operation"
content:
application/json:
schema:
$ref: ''#/components/schemas/ModifyHeartbeatServiceRequest''
required: true
responses:
200:
description: "The specified Subscription is modified successfullly, and the modified Suscription information is returned"
content:
application/json:
schema:
$ref: ''#/components/schemas/SubscriptionInfo''
400:
description: "Parameter Error occurred in the modifyHeartbeatService operation"
content:
application/json:
schema:
$ref: ''#/components/schemas/ErrorInfo''
404:
description: "Specified Subscription does not exist"
content: {}
405:
description: "Method Not Allowed, the specified Subscription cannot be modified"
content: {}
500:
description: "Internal Server Error"
content: {}
components:
schemas:
NotificationType:
type: string
enum:
- objectCreation
- objectDeletion
- attributeValueChange
- stateChange
- communicationAlarm
- environmentalAlarm
- equipmentAlarm
- processingErrorAlarm
- qualityOfServiceAlarm
- integrityViolation
- operationalViolation
- physicalViolation
- securityViolation
- timeDomainViolation
- relationshipChange
- heartbeat
ErrorInfo:
type: object
properties:
code:
type: string
enum:
- invalidObjectInstance
- noSuchObjectClass
- noSuchAttribute
- invalidAttributeValue
- missingAttributeValue
- notFound
- cannotBeDeleted
message:
type: string
required:
- code
SubscriptionInfo:
type: object
properties:
subscriptionId:
type: string
managerId:
#the identifier of manager of this notification subscription
type: string
notificationTypeList:
#empty list means subscribing all notification types.
type: array
items:
$ref: ''#/components/schemas/NotificationType''
filteringCriteria:
#optional
type: string
destination:
#URI of the notification subscriber
type: string
format: uri
subscriptionStatus:
#Whether the subscription is suspended or resumed
type: string
enum:
- suspended
- resumed
required:
- subcriptionId
- managerId
- destination
- subscriptionState
HeartbeatInfo:
type: object
properties:
systemLabel:
type: string
format: uri
period:
type: integer
format: unitsInSeconds
required:
- systemLabel
- period
ModifyHeartbeatServiceRequest:
type: object
properties:
systemLabel:
type: string
format: uri
period:
type: integer
format: unitsInSeconds
HeartbeatNotificationBody:
type: object
properties:
systemLabel:
type: string
format: uri
period:
type: integer
format: unitsInSeconds
timeStamp:
type: string
format: date-time