-- 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