diff --git a/MEC021_AppMobilityService.json b/MEC021_AppMobilityService.json index d0d078c7b63cd1589b2b0493114d1e51def07145..8459765747ac69909caf8631bb2d1377aecce5dd 100644 --- a/MEC021_AppMobilityService.json +++ b/MEC021_AppMobilityService.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "ETSI GS MEC 021 Application Mobility Service API", - "version": "2.1.1", + "version": "2.2.1", "description": "ETSI GS MEC 021 Application Mobility Service API described using OpenAPI.", "license": { "name": "BSD-3-Clause", @@ -15,8 +15,8 @@ } }, "externalDocs": { - "description": "ETSI GS MEC 021 Application Mobility Service API, v2.1.1", - "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf" + "description": "ETSI GS MEC 021 Application Mobility Service API, v2.2.1", + "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.02.01_60/gs_mec021v020201p.pdf" }, "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema", "servers": [ @@ -41,6 +41,10 @@ { "name": "subscriptions", "description": "Subscription for Application Mobility Service" + }, + { + "name": "notifications", + "description": "Notification for Application Mobility Service" } ], "paths": { @@ -56,7 +60,7 @@ { "name": "filter", "in": "query", - "description": "Attribute-based filtering parameters according to ETSI GS MEC 011", + "description": "Attribute-based filtering parameters according to ETSI GS MEC 009", "style": "form", "explode": true, "schema": { @@ -76,7 +80,7 @@ { "name": "fields", "in": "query", - "description": "Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011", + "description": "Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 009", "style": "form", "explode": true, "schema": { @@ -86,7 +90,7 @@ { "name": "exclude_fields", "in": "query", - "description": "Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011", + "description": "Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 009", "style": "form", "explode": true, "schema": { @@ -111,7 +115,6 @@ "content": { "application/json": { "schema": { - "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/AdjacentAppInstanceInfo" @@ -1408,6 +1411,101 @@ "deprecated": false }, "parameters": [] + }, + "/uri_provided_by_subscriber": { + "post": { + "tags": [ + "notifications" + ], + "summary": "delivers a notification from the AMS resource to the subscriber", + "description": "delivers a notification from the AMS resource to the subscriber", + "operationId": "notificationPOST", + "parameters": [], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/MobilityProcedureNotification" + }, + { + "$ref": "#/components/schemas/AdjacentAppInfoNotification" + }, + { + "$ref": "#/components/schemas/ExpiryNotification" + } + ], + "contentMediaType": "application/json" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "The notification was delivered successfully. The response body shall be empty.", + "headers": {}, + "content": {} + }, + "401": { + "description": "It is used when the client did not submit credentials.'", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "operation is not allowed given the current status of the resource.'", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Used when a client provided a URI that cannot be mapped to a valid resource URI.'", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "406": { + "description": "Used to indicate that the server cannot provide the any of the content formats supported by the client.'", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "429": { + "description": "Used when a rate limiter has triggered.'", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } } }, "components": { @@ -1448,10 +1546,18 @@ "$ref": "#/components/schemas/AdjacentAppInfoSubscription.links" }, "callbackReference": { - "type": "string", + "type": "uri", "description": "URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response." }, + "requestTestNotification": { + "type": "boolean", + "description": "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, specified in ETSI GS MEC 009, as described in clause 6.12a." + }, + "websockNotifConfig": { + "$ref": "#/components/schemas/WebsockNotifConfig" + }, "expiryDeadline": { + "description": "Identifies a boundary after which the subscription will expire.", "$ref": "#/components/schemas/TimeStamp" }, "filterCriteria": { @@ -1481,7 +1587,6 @@ "description": "Identifier of the application descriptor." }, "appInstanceCommLink": { - "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/CommunicationInterface" @@ -1494,6 +1599,10 @@ }, "mecHostInformation": { "$ref": "#/components/schemas/MECHostInformation" + }, + "registeredInstanceId": { + "type": "string", + "description": "dentifier of the application instance that registers to the AMS, which is instantiated from the application descriptor identified by the attribute \"appDId\"." } } }, @@ -1558,10 +1667,9 @@ "properties": { "appInstanceId": { "type": "string", - "description": "Identifier of the application instance that registers the application mobility service." + "description": "Identifier of the application instance that registers the Application Mobility Service." }, "associateId": { - "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/AssociateId" @@ -1569,7 +1677,6 @@ "description": "0 to N identifiers to associate the information for specific UE(s) and flow(s)." }, "mobilityStatus": { - "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/MobilityStatus" @@ -1579,10 +1686,22 @@ }, "description": "List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response." }, + "WebsockNotifConfig": { + "type": "object", + "properties": { + "websocketUri": { + "description": "Set by AMS to indicate to the service consumer the Websocket URI to be used for delivering notifications.", + "type": "uri" + }, + "requestWebsocketUri": { + "type": "boolean", + "description": "Set to true by the service consumer to indicate that Websocket delivery is requested." + } + } + }, "MobilityProcedureSubscription": { "title": "MobilityProcedureSubscription", "required": [ - "callbackReference", "filterCriteria", "subscriptionType" ], @@ -1592,10 +1711,19 @@ "$ref": "#/components/schemas/MobilityProcedureSubscription.links" }, "callbackReference": { - "type": "string", + "type": "uri", "description": "URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response." }, + "requestTestNotification": { + "type": "boolean", + "description": "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, specified in ETSI GS MEC 009, as described in clause 6.12a." + }, + "websockNotifConfig": { + "description": "Provides details to negotiate and signal the use of a Websocket connection between AMS and the service consumer for notifications.", + "$ref": "#/components/schemas/WebsockNotifConfig" + }, "expiryDeadline": { + "description": "Identifies a boundary after which the subscription will expire.", "$ref": "#/components/schemas/TimeStamp" }, "filterCriteria": { @@ -1611,6 +1739,161 @@ } } }, + "MobilityProcedureNotification": { + "title": "MobilityProcedureNotification", + "required": [ + "notificationType", + "associateId", + "mobilityStatus", + "links" + ], + "properties": { + "notificationType": { + "type": "string", + "description": "Shall be set to \"MobilityProcedureNotification\"." + }, + "timeStamp": { + "description": "Date and time of the generation of the notification", + "$ref": "#/components/schemas/TimeStamp" + }, + "associateId": { + "type": "array", + "description": "1 to N identifiers to associate the information for specific", + "items": { + "$ref": "#/components/schemas/AssociateId" + } + }, + "mobilityStatus": { + "description": "Indicate the status of the UE mobility. Values are defined as following 1 = INTERHOST_MOVEOUT_TRIGGERED. 2 = INTERHOST_MOVEOUT_COMPLETED. 3 = INTERHOST_MOVEOUT_FAILED. Other values are reserved.", + "$ref": "#/components/schemas/MobilityStatus" + }, + "targetAppInfo": { + "type": "object", + "required": [ + "appInstanceId" + ], + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifiers of the target application instance." + }, + "commInterface": { + "description": "If present, it specifies the communication interface of the application instance.", + "$ref": "#/components/schemas/CommunicationInterface" + } + } + }, + "_links": { + "$ref": "#/components/schemas/LinkType" + } + } + }, + "AdjacentAppInfoNotification": { + "title": "AdjacentAppInfoNotification", + "required": [ + "notificationType", + "_links" + ], + "properties": { + "notificationType": { + "type": "string", + "description": "Shall be set to \"AdjacentAppInfoNotification\"." + }, + "timeStamp": { + "description": "Date and time of the generation of the notification", + "$ref": "#/components/schemas/TimeStamp" + }, + "associateId": { + "type": "array", + "description": "1 to N identifiers to associate the information for specific", + "items": { + "$ref": "#/components/schemas/AssociateId" + } + }, + "adjacentAppInfo": { + "type": "object", + "required": [ + "appInstanceId", + "commInterface" + ], + "properties": { + "appInstanceId": { + "type": "string", + "description": "Identifier of the adjacent application instance." + }, + "commInterface": { + "type": "array", + "description": "If present, it represents the communication interface(s) information of the application instance.", + "items": { + "$ref": "#/components/schemas/CommunicationInterface" + } + } + } + }, + "_links": { + "$ref": "#/components/schemas/LinkType" + } + } + }, + "ExpiryNotification": { + "title": "ExpiryNotification", + "required": [ + "notificationType", + "_links", + "expiryDeadline" + ], + "properties": { + "notificationType": { + "type": "string", + "description": "Shall be set to \"ExpiryNotification\"." + }, + "timeStamp": { + "description": "Date and time of the generation of the notification", + "$ref": "#/components/schemas/TimeStamp" + }, + "_links": { + "type": "object", + "required": [ + "subscription" + ], + "properties": { + "subscription": { + "$ref": "#/components/schemas/LinkType" + } + } + }, + "expiryDeadline": { + "description": "The boundary value setting in the subscription request.", + "$ref": "#/components/schemas/TimeStamp" + } + } + }, + "TestNotification": { + "title": "TestNotification", + "required": [ + "notificationType", + "_links" + ], + "properties": { + "notificationType": { + "type": "string", + "description": "Shall be set to \"TestNotification\"." + }, + "_links": { + "type": "object", + "description": "Hyperlink related to the resource.", + "required": [ + "subscription" + ], + "properties": { + "subscription": { + "description": "URI identifying the subscription for the test notification.", + "$ref": "#/components/schemas/LinkType" + } + } + } + } + }, "MobilityStatus": { "title": "MobilityStatus", "enum": [ @@ -1648,11 +1931,11 @@ "properties": { "appInstanceId": { "type": "string", - "description": "If present, it represents the identifier of the application instance registering the application mobility service." + "description": "If present, it represents the identifier of the application instance registering the Application Mobility Service." }, "mepId": { "type": "string", - "description": "If present, it represents the identifier of the MEC platform registering the application mobility service." + "description": "If present, it represents the identifier of the MEC platform registering the Application Mobility Service." } }, "description": "The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID." @@ -1669,16 +1952,15 @@ "description": "The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise." }, "deviceInformation": { - "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/RegistrationInfo.deviceInformation" }, - "description": "If present, it specifies the device served by the application instance which is registering the application mobility service." + "description": "If present, it specifies the device served by the application instance which is registering is registering the Application Mobility Service." }, "expiryTime": { "type": "integer", - "description": "If present, it indicates the time of application mobility service expiration from the time of registration accepted.The value \"0\" means infinite time, i.e. no expiration.The unit of expiry time is one second.", + "description": "If present, it indicates the time of Application Mobility Service expiration from the time of registration accepted.The value \"0\" means infinite time, i.e. no expiration.The unit of expiry time is one second.", "contentEncoding": "int32" }, "serviceConsumerId": { @@ -1688,16 +1970,24 @@ }, "SubscriptionLinkList.links": { "title": "SubscriptionLinkList.links", + "description": "List of hyperlinks related to the resource.", "required": [ "self" ], "type": "object", "properties": { "self": { - "$ref": "#/components/schemas/LinkType" + "$ref": "#/components/schemas/LinkType", + "description": "URI of this resource." + }, + "subscription": { + "type": "array", + "description": "The service consumer’s subscriptions.", + "items": { + "$ref": "#/components/schemas/SubscriptionLinkList.subscription" + } } - }, - "description": "List of hyperlinks related to the resource." + } }, "SubscriptionLinkList.subscription": { "title": "SubscriptionLinkList.subscription", @@ -1712,6 +2002,7 @@ "description": "The URI referring to the subscription." }, "subscriptionType": { + "description": null, "$ref": "#/components/schemas/subscriptionType" } } @@ -1724,15 +2015,8 @@ "type": "object", "properties": { "_links": { - "$ref": "#/components/schemas/SubscriptionLinkList.links" - }, - "subscription": { - "minItems": 0, - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriptionLinkList.subscription" - }, - "description": "A link to a subscription." + "$ref": "#/components/schemas/SubscriptionLinkList.links", + "description": "Hyperlinks related to the resource." } } }, @@ -1813,6 +2097,12 @@ }, "description": "'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC'" }, + "KeyValuePairs": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, "MECHostInformation": { "title": "MECHostInformation", "required": [ @@ -1825,11 +2115,10 @@ "description": "Human-readable name of MEC host." }, "hostId": { - "type": "object", - "description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'" + "description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'", + "$ref": "#/components/schemas/KeyValuePairs" } - }, - "description": "'The data type represents the parameters of MEC host information.'" + } }, "ProblemDetails": { "title": "ProblemDetails", diff --git a/MEC021_AppMobilityService.yaml b/MEC021_AppMobilityService.yaml index 20e6e2b208357a51d8d57e19a8cae87675661bb8..1af920c5e36144ae2c9505d61739425255372d6a 100644 --- a/MEC021_AppMobilityService.yaml +++ b/MEC021_AppMobilityService.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: ETSI GS MEC 021 Application Mobility Service API - version: '2.1.1' + version: '2.2.1' description: ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. license: name: BSD-3-Clause @@ -11,8 +11,8 @@ info: url: https://forge.etsi.org/rep/mec/gs021-amsi-api email: cti_support@etsi.org externalDocs: - description: ETSI GS MEC 021 Application Mobility Service API, v2.1.1 - url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf + description: ETSI GS MEC 021 Application Mobility Service API, v2.2.1 + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.02.01_60/gs_mec021v020201p.pdf jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema servers: @@ -27,6 +27,8 @@ tags: description: Application Mobility Services Deregister task - name: subscriptions description: Subscription for Application Mobility Service +- name: notifications + description: Notification for Application Mobility Service paths: @@ -40,7 +42,7 @@ paths: parameters: - name: filter in: query - description: Attribute-based filtering parameters according to ETSI GS MEC 011 + description: Attribute-based filtering parameters according to ETSI GS MEC 009 style: form explode: true schema: @@ -54,14 +56,14 @@ paths: type: string - name: fields in: query - description: Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011 + description: Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 009 style: form explode: true schema: type: string - name: exclude_fields in: query - description: Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011 + description: Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 009 style: form explode: true schema: @@ -80,7 +82,6 @@ paths: content: application/json: schema: - minItems: 0 type: array items: $ref: '#/components/schemas/AdjacentAppInstanceInfo' @@ -915,6 +916,67 @@ paths: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] + + /uri_provided_by_subscriber: + post: + tags: + - notifications + summary: delivers a notification from the AMS resource to the subscriber + description: delivers a notification from the AMS resource to the subscriber + operationId: notificationPOST + parameters: [] + requestBody: + description: '' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/MobilityProcedureNotification' + - $ref: '#/components/schemas/AdjacentAppInfoNotification' + - $ref: '#/components/schemas/ExpiryNotification' + contentMediaType: application/json + required: true + responses: + '204': + description: The notification was delivered successfully. The response body shall be empty. + headers: {} + content: {} + '401': + description: It is used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '403': + description: operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: Used when a client provided a URI that cannot be mapped to a valid resource URI.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '406': + description: Used to indicate that the server cannot provide the any of the content formats supported by the client.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '429': + description: Used when a rate limiter has triggered.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + components: schemas: AdjacentAppInfoSubscription.links: @@ -944,9 +1006,15 @@ components: _links: $ref: '#/components/schemas/AdjacentAppInfoSubscription.links' callbackReference: - type: string + type: uri description: URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. + requestTestNotification: + type: boolean + description: Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, specified in ETSI GS MEC 009, as described in clause 6.12a. + websockNotifConfig: + $ref: '#/components/schemas/WebsockNotifConfig' expiryDeadline: + description: Identifies a boundary after which the subscription will expire. $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/AdjacentAppInfoSubscription.filterCriteria' @@ -968,7 +1036,6 @@ components: type: string description: Identifier of the application descriptor. appInstanceCommLink: - minItems: 1 type: array items: $ref: '#/components/schemas/CommunicationInterface' @@ -978,6 +1045,9 @@ components: description: Identifier of the application instance. mecHostInformation: $ref: '#/components/schemas/MECHostInformation' + registeredInstanceId: + type: string + description: dentifier of the application instance that registers to the AMS, which is instantiated from the application descriptor identified by the attribute "appDId". AppMobilityServiceLevel: title: AppMobilityServiceLevel enum: @@ -1023,24 +1093,32 @@ components: properties: appInstanceId: type: string - description: Identifier of the application instance that registers the application mobility service. + description: Identifier of the application instance that registers the Application Mobility Service. associateId: - minItems: 0 type: array items: $ref: '#/components/schemas/AssociateId' description: 0 to N identifiers to associate the information for specific UE(s) and flow(s). mobilityStatus: - minItems: 0 type: array items: $ref: '#/components/schemas/MobilityStatus' description: In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response. description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response. + + WebsockNotifConfig: + type: object + properties: + websocketUri: + description: Set by AMS to indicate to the service consumer the Websocket URI to be used for delivering notifications. + type: uri + requestWebsocketUri: + type: boolean + description: Set to true by the service consumer to indicate that Websocket delivery is requested. + MobilityProcedureSubscription: title: MobilityProcedureSubscription required: - - callbackReference - filterCriteria - subscriptionType type: object @@ -1048,9 +1126,16 @@ components: _links: $ref: '#/components/schemas/MobilityProcedureSubscription.links' callbackReference: - type: string + type: uri description: URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. + requestTestNotification: + type: boolean + description: Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, specified in ETSI GS MEC 009, as described in clause 6.12a. + websockNotifConfig: + description: Provides details to negotiate and signal the use of a Websocket connection between AMS and the service consumer for notifications. + $ref: '#/components/schemas/WebsockNotifConfig' expiryDeadline: + description: Identifies a boundary after which the subscription will expire. $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/MobilityProcedureSubscription.filterCriteria' @@ -1060,6 +1145,118 @@ components: description: Shall be set to "MobilityProcedureSubscription". examples: - MobilityProcedureSubscription + MobilityProcedureNotification: + title: MobilityProcedureNotification + required: + - notificationType + - associateId + - mobilityStatus + - links + properties: + notificationType: + type: string + description: Shall be set to "MobilityProcedureNotification". + timeStamp: + description: Date and time of the generation of the notification + $ref: '#/components/schemas/TimeStamp' + associateId: + type: array + description: 1 to N identifiers to associate the information for specific + items: + $ref: '#/components/schemas/AssociateId' + mobilityStatus: + description: Indicate the status of the UE mobility. Values are defined as following 1 = INTERHOST_MOVEOUT_TRIGGERED. 2 = INTERHOST_MOVEOUT_COMPLETED. 3 = INTERHOST_MOVEOUT_FAILED. Other values are reserved. + $ref: '#/components/schemas/MobilityStatus' + targetAppInfo: + type: object + required: + - appInstanceId + properties: + appInstanceId: + type: string + description: Identifiers of the target application instance. + commInterface: + description: If present, it specifies the communication interface of the application instance. + $ref: '#/components/schemas/CommunicationInterface' + _links: + $ref: '#/components/schemas/LinkType' + + AdjacentAppInfoNotification: + title: AdjacentAppInfoNotification + required: + - notificationType + - _links + properties: + notificationType: + type: string + description: Shall be set to "AdjacentAppInfoNotification". + timeStamp: + description: Date and time of the generation of the notification + $ref: '#/components/schemas/TimeStamp' + associateId: + type: array + description: 1 to N identifiers to associate the information for specific + items: + $ref: '#/components/schemas/AssociateId' + adjacentAppInfo: + type: object + required: + - appInstanceId + - commInterface + properties: + appInstanceId: + type: string + description: Identifier of the adjacent application instance. + commInterface: + type: array + description: If present, it represents the communication interface(s) information of the application instance. + items: + $ref: '#/components/schemas/CommunicationInterface' + _links: + $ref: '#/components/schemas/LinkType' + + ExpiryNotification: + title: ExpiryNotification + required: + - notificationType + - _links + - expiryDeadline + properties: + notificationType: + type: string + description: Shall be set to "ExpiryNotification". + timeStamp: + description: Date and time of the generation of the notification + $ref: '#/components/schemas/TimeStamp' + _links: + type: object + required: + - subscription + properties: + subscription: + $ref: '#/components/schemas/LinkType' + + expiryDeadline: + description: The boundary value setting in the subscription request. + $ref: '#/components/schemas/TimeStamp' + TestNotification: + title: TestNotification + required: + - notificationType + - _links + properties: + notificationType: + type: string + description: Shall be set to "TestNotification". + _links: + type: object + description: Hyperlink related to the resource. + required: + - subscription + properties: + subscription: + description: URI identifying the subscription for the test notification. + $ref: '#/components/schemas/LinkType' MobilityStatus: title: MobilityStatus enum: @@ -1088,10 +1285,10 @@ components: properties: appInstanceId: type: string - description: If present, it represents the identifier of the application instance registering the application mobility service. + description: If present, it represents the identifier of the application instance registering the Application Mobility Service. mepId: type: string - description: If present, it represents the identifier of the MEC platform registering the application mobility service. + description: If present, it represents the identifier of the MEC platform registering the Application Mobility Service. description: The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID. RegistrationInfo: title: RegistrationInfo @@ -1103,26 +1300,31 @@ components: type: string description: The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise. deviceInformation: - minItems: 0 type: array items: $ref: '#/components/schemas/RegistrationInfo.deviceInformation' - description: If present, it specifies the device served by the application instance which is registering the application mobility service. + description: If present, it specifies the device served by the application instance which is registering is registering the Application Mobility Service. expiryTime: type: integer - description: If present, it indicates the time of application mobility service expiration from the time of registration accepted.The value "0" means infinite time, i.e. no expiration.The unit of expiry time is one second. + description: If present, it indicates the time of Application Mobility Service expiration from the time of registration accepted.The value "0" means infinite time, i.e. no expiration.The unit of expiry time is one second. contentEncoding: int32 serviceConsumerId: $ref: '#/components/schemas/RegistrationInfo.serviceConsumerId' SubscriptionLinkList.links: title: SubscriptionLinkList.links + description: List of hyperlinks related to the resource. required: - self type: object properties: self: - $ref: '#/components/schemas/LinkType' - description: List of hyperlinks related to the resource. + $ref: '#/components/schemas/LinkType' + description: URI of this resource. + subscription: + type: array + description: The service consumer’s subscriptions. + items: + $ref: '#/components/schemas/SubscriptionLinkList.subscription' SubscriptionLinkList.subscription: title: SubscriptionLinkList.subscription required: @@ -1134,7 +1336,9 @@ components: type: string description: The URI referring to the subscription. subscriptionType: + description: $ref: '#/components/schemas/subscriptionType' + SubscriptionLinkList: title: SubscriptionLinkList required: @@ -1143,12 +1347,8 @@ components: properties: _links: $ref: '#/components/schemas/SubscriptionLinkList.links' - subscription: - minItems: 0 - type: array - items: - $ref: '#/components/schemas/SubscriptionLinkList.subscription' - description: A link to a subscription. + description: Hyperlinks related to the resource. + contextTransferState: title: contextTransferState enum: @@ -1206,6 +1406,12 @@ components: description: "'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'" contentEncoding: int32 description: "'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC'" + + KeyValuePairs: + type: object + additionalProperties: + type: object + MECHostInformation: title: MECHostInformation required: @@ -1216,9 +1422,10 @@ components: type: string description: Human-readable name of MEC host. hostId: - type: object description: "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'" - description: "'The data type represents the parameters of MEC host information.'" + $ref: '#/components/schemas/KeyValuePairs' + + ProblemDetails: title: ProblemDetails type: object