diff --git a/config/api/app-support.yaml b/config/api/app-support.yaml index f19f1c90430a3f848ed00b35359c91c644cd7440..5f57139e6bca03316c625c07d8057bd4b3bab3a2 100644 --- a/config/api/app-support.yaml +++ b/config/api/app-support.yaml @@ -1,16 +1,14 @@ -openapi: 3.0.0 -servers: - - url: 'https://localhost/sandboxname/mec_app_support/v1' +openapi: 3.0.2 info: title: AdvantEDGE MEC Application Support API - version: 2.2.1 - description: - "MEC Application Support Service is AdvantEDGE's implementation of - [ETSI MEC ISG MEC011 Application Enablement API](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf) -

[Copyright (c) ETSI 2017](https://forge.etsi.org/etsi-forge-copyright-notice.txt) -

**Micro-service**
[meep-app-enablement](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-app-enablement/server/app-support) -

**Type & Usage**
Edge Service used by edge applications that want to get information about applications in the network -

**Note**
AdvantEDGE supports a selected subset of Application Support API endpoints (see below)." + version: 3.1.1 + description: "MEC Application Support Service is AdvantEDGE's implementation of\ + \ [ETSI MEC ISG MEC011 Application Enablement API](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf)\ + \

[Copyright (c) ETSI 2024](https://forge.etsi.org/etsi-forge-copyright-notice.txt)\ + \

**Micro-service**
[meep-app-enablement](https://github.com/InterDigitalInc/AdvantEDGE/tree/master/go-apps/meep-app-enablement/server/app-support)\ + \

**Type & Usage**
Edge Service used by edge applications that want to get\ + \ information about applications in the network

**Note**
AdvantEDGE supports\ + \ a selected subset of Application Support API endpoints (see below)." license: name: Apache 2.0 url: 'https://github.com/InterDigitalInc/AdvantEDGE/blob/master/LICENSE' @@ -18,73 +16,123 @@ info: name: InterDigital AdvantEDGE Support email: AdvantEDGE@InterDigital.com externalDocs: - description: 'ETSI GS MEC011 Application Enablement API, V2.2.1' + description: 'ETSI GS MEC011 Application Enablement API, V3.1.1' url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf -security: - - {} + https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf +servers: + - url: 'http://localhost/sandboxname/mec_app_support/v2' + variables: {} + - url: 'https://localhost/sandboxname/mec_app_support/v2' + variables: {} tags: - name: mec_app_support - name: unsupported - name: callbacks +servers: + - url: 'https://localhost/sandboxname/mec_app_support/v2' + variables: {} paths: /applications/{appInstanceId}/traffic_rules: get: tags: - unsupported - description: - This method retrieves information about all the traffic rules associated - with a MEC application instance. + summary: Retrieve information about a list of mecTrafficRule resources for an application instance + description: >- + This method retrieves information about all the traffic rules associated with a MEC application instance. operationId: ApplicationsTrafficRules_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing an array of the + TrafficRules is returned. + headers: {} content: application/json: schema: type: array - example: - - trafficRuleId: TrafficRule123 - serName: ExampleService - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - - 192.127.4.100/32 - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface0: null - interfaceType: IP - dstIpAddress: 20.1.1.1 - - dstInterface1: null - interfaceType: IP - dstIpAddress: 20.1.1.2 - state: ACTIVE items: $ref: '#/components/schemas/TrafficRule' - x-content-type: application/json + description: '' + example: + - - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.1 + state: ACTIVE + example: + TrafficRules: + value: + - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.1 + state: ACTIVE + - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.104/32 + - 192.127.4.105/32 + dstAddress: + - 192.127.4.106/32 + - 192.127.4.107/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.2 + state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -94,17 +142,18 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -113,23 +162,23 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/traffic_rules/{trafficRuleId}: get: tags: - unsupported - description: - This method retrieves information about all the traffic rules associated - with a MEC application instance. + summary: Retrieve information about a mecTrafficRule resource + description: >- + This method retrieves information about all the traffic rules associated with a MEC application instance. operationId: ApplicationsTrafficRule_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: trafficRuleId @@ -137,14 +186,13 @@ paths: description: Represents a traffic rule. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing the TrafficRules is returned. + headers: {} content: application/json: schema: @@ -153,27 +201,30 @@ paths: TrafficRule: value: trafficRuleId: TrafficRule123 - serName: ExampleService filterType: FLOW priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - - dstInterface0: null + - dstInterface: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -183,17 +234,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -202,22 +253,22 @@ paths: schema: type: object description: Empty schema + deprecated: false put: tags: - unsupported - description: - This method retrieves information about all the traffic rules associated - with a MEC application instance. + summary: Update the information about a mecTrafficRule resource + description: >- + This method retrieves information about all the traffic rules associated with a MEC application instance. operationId: ApplicationsTrafficRule_PUT parameters: - name: appInstanceId in: path - description: + description: >- Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: trafficRuleId @@ -225,11 +276,11 @@ paths: description: Represents a traffic rule. required: true style: simple - explode: false schema: type: string requestBody: - description: One or more updated attributes that are allowed to be changed + description: >- + One or more updated attributes that are allowed to be changed are included in the TrafficRule data structure in the message content of the request. content: application/json: schema: @@ -237,9 +288,9 @@ paths: required: true responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing data type describing the updated TrafficRule is returned. + headers: {} content: application/json: schema: @@ -253,22 +304,26 @@ paths: priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - dstInterface0: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -278,17 +333,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -298,9 +353,9 @@ paths: type: object description: Empty schema '412': - description: - Precondition Failed. It is used when a condition has failed - during conditional requests, e.g. when using ETags to avoid write conflicts. + description: >- + Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + headers: {} content: application/problem+json: schema: @@ -309,48 +364,69 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/dns_rules: get: tags: - unsupported - description: - This method retrieves information about all the DNS rules associated - with a MEC application instance. + summary: Retrieve information about a list of mecDnsRule resources for an application instance + description: >- + This method retrieves information about all the DNS rules associated with a MEC application instance. operationId: ApplicationsDnsRules_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing an array of the DnsRules is returned. + headers: {} content: application/json: schema: type: array - example: - - dnsRuleId: DnsRule1 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.3 - ttl: 300 - state: ACTIVE items: $ref: '#/components/schemas/DnsRule' - x-content-type: application/json + description: '' + example: + - - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE + example: + DnsRules: + value: + - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -360,17 +436,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -379,23 +455,23 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/dns_rules/{dnsRuleId}: get: tags: - unsupported - description: - This method retrieves information about a DNS rule associated with - a MEC application instance. + summary: Retrieve information about a mecDnsRule resource + description: >- + This method retrieves information about a DNS rule associated with a MEC application instance. operationId: ApplicationsDnsRule_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: dnsRuleId @@ -403,14 +479,13 @@ paths: description: Represents a DNS rule. required: true style: simple - explode: false schema: type: string responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing the DnsRules is returned. + headers: {} content: application/json: schema: @@ -425,9 +500,9 @@ paths: ttl: 300 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -437,17 +512,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -456,20 +531,20 @@ paths: schema: type: object description: Empty schema + deprecated: false put: tags: - unsupported - description: This method activates, de-activates or updates a traffic rule. + summary: Update the information about a mecDnsRule resource + description: 'This method activates, de-activates or updates a traffic rule.' operationId: ApplicationsDnsRule_PUT parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: dnsRuleId @@ -477,11 +552,10 @@ paths: description: Represents a DNS rule. required: true style: simple - explode: false schema: type: string requestBody: - description: The updated state is included in the entity body of the request. + description: The updated "state" is included in the message content of the request. content: application/json: schema: @@ -489,14 +563,14 @@ paths: required: true responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + Upon success, a response message content containing data type describing the updated DnsRule is returned. + headers: {} content: application/json: schema: $ref: '#/components/schemas/DnsRule' - example: + examples: DnsRule: value: dnsRuleId: DnsRule1 @@ -506,9 +580,9 @@ paths: ttl: 300 state: ACTIVE '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -518,17 +592,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -538,9 +612,9 @@ paths: type: object description: Empty schema '412': - description: - Precondition Failed. It is used when a condition has failed - during conditional requests, e.g. when using ETags to avoid write conflicts. + description: >- + Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + headers: {} content: application/problem+json: schema: @@ -549,39 +623,38 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/subscriptions: get: tags: - mec_app_support - description: - The GET method may be used to request information about all subscriptions - for this requestor. Upon success, the response contains entity body with all - the subscriptions for the requestor. + summary: Retrieve information about a list of mecAppSupportSubscription resources for this subscriber + description: >- + The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains message content with all the subscriptions for the requestor. operationId: ApplicationsSubscriptions_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string responses: '200': - description: - Upon success, a response body containing the list of links - to the requested subscriptions is returned. + description: >- + Upon success, a response message content containing the list of links to the requested subscriptions is returned. + headers: {} content: application/json: schema: $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -591,17 +664,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -610,29 +683,26 @@ paths: schema: type: object description: Empty schema + deprecated: false post: tags: - mec_app_support - description: - The POST method may be used to create a new subscription. One example - use case is to create a new subscription to the MEC service availability notifications. - Upon success, the response contains entity body describing the created subscription. + summary: Create a mecAppSupportSubscription resource + description: >- + The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains message content describing the created subscription. operationId: ApplicationsSubscriptions_POST parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string requestBody: - description: - Entity body in the request contains a subscription to the MEC - application termination notifications that is to be created. + description: >- + Message content in the request contains a subscription to the MEC application termination notifications that is to be created. content: application/json: schema: @@ -640,24 +710,24 @@ paths: required: true responses: '201': - description: - Entity body in the request contains a subscription to the MEC - service availability notifications that is to be created. + description: >- + Entity body in the request contains a subscription to the MEC service availability notifications that is to be created. headers: location: description: The resource URI of the created resource - style: simple - schema: - type: string - format: uri + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -667,17 +737,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -686,65 +756,62 @@ paths: schema: type: object description: Empty schema + deprecated: false callbacks: AppTerminationNotification: '{$request.body#/callbackUri}': post: + description: >- + Represents the information that the MEP notifies the subscribed application instance about the corresponding application instance termination/stop' + operationId: AppTerminationNotification_POST tags: - callbacks - description: - Represents the information that the MEP notifies the subscribed - application instance about the corresponding application instance - termination/stop' - operationId: AppTerminationNotification_POST + summary: Create callback requestBody: $ref: '#/components/requestBodies/AppTerminationNotification' responses: '200': - description: - Expected responses from callback consumer, if it accepts - the callback + description: >- + Expected responses from callback consumer, if it accepts the callback + parameters: [] /applications/{appInstanceId}/subscriptions/{subscriptionId}: get: tags: - mec_app_support - description: - The GET method requests information about a subscription for this - requestor. Upon success, the response contains entity body with the subscription - for the requestor. + summary: Retrieve information about a mecAppSupportSubscription resource for this subscriber + description: >- + The GET method requests information about a subscription for this requestor. Upon success, the response contains message content with the subscription for the requestor. operationId: ApplicationsSubscription_GET parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: subscriptionId in: path - description: Represents a subscription to the notifications from the MEC platform. + description: >- + Represents a subscription to the notifications from the MEC platform. required: true style: simple - explode: false schema: type: string responses: '200': - description: - Upon success, a response body containing the requested subscription - is returned. + description: >- + Upon success, a response message content containing the requested subscription is returned. + headers: {} content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -754,17 +821,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -773,49 +840,49 @@ paths: schema: type: object description: Empty schema + deprecated: false delete: tags: - mec_app_support - description: - This method deletes a mecAppSuptApiSubscription. This method is - typically used in "Unsubscribing from service availability event notifications" - procedure. + summary: Delete a mecAppSupportSubscription resource + description: >- + This method deletes a mecAppSuptApiSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure. operationId: ApplicationsSubscription_DELETE parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string - name: subscriptionId in: path - description: Represents a subscription to the notifications from the MEC platform. + description: >- + Represents a subscription to the notifications from the MEC platform. required: true style: simple - explode: false schema: type: string responses: '204': description: No Content + headers: {} content: {} '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -824,26 +891,28 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/confirm_termination: post: tags: - mec_app_support - description: - This method is used to confirm the application level termination of - an application instance. + summary: Confirm the application level termination of an App instance + description: >- + This method is used to confirm the application level termination of an application instance. operationId: ApplicationsConfirmTermination_POST parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string requestBody: + description: >- + Message content in the request contains the operational action the application instance is responding to. content: application/json: schema: @@ -851,12 +920,14 @@ paths: required: false responses: '204': - description: No Content + description: >- + No Content. The request is acknowledged. The response message content shall be empty. + headers: {} content: {} '401': - description: - Unauthorized. It is used when the client did not submit the - appropriate credentials. + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} content: application/problem+json: schema: @@ -866,17 +937,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -886,10 +957,9 @@ paths: type: object description: Empty schema '409': - description: - Conflict. The operation cannot be executed currently, due to - a conflict with the state of the resource. Typically, this is because - the application instance resource is in NOT_INSTANTIATED state. + description: >- + Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + headers: {} content: application/problem+json: schema: @@ -900,6 +970,7 @@ paths: description: Empty schema '429': description: Too Many Requests. It is used when a rate limiter has triggered. + headers: {} content: application/problem+json: schema: @@ -908,38 +979,42 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /applications/{appInstanceId}/confirm_ready: post: tags: - mec_app_support - description: - 'This method may be used by the MEC application instance to notify - the MEC platform that it is up and running. ' + summary: Confirm the application instance is up and running + description: >- + This method may be used by the MEC application instance to notify the MEC platform that it is up and running. operationId: ApplicationsConfirmReady_POST parameters: - name: appInstanceId in: path - description: - Represents a MEC application instance. Note that the appInstanceId - is allocated by the MEC platform manager. + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. required: true style: simple - explode: false schema: type: string requestBody: + description: >- + Message content in the request contains the indication that the application instance is up and running. content: application/json: schema: $ref: '#/components/schemas/AppReadyConfirmation' + required: false responses: '204': description: No Content + headers: {} content: {} '401': - description: - Unauthorized. It is used when the client did not submit the - appropriate credentials. + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} content: application/problem+json: schema: @@ -949,17 +1024,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -969,10 +1044,9 @@ paths: type: object description: Empty schema '409': - description: - Conflict. The operation cannot be executed currently, due to - a conflict with the state of the resource. Typically, this is because - the application instance resource is in NOT_INSTANTIATED state. + description: >- + Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + headers: {} content: application/problem+json: schema: @@ -983,6 +1057,286 @@ paths: description: Empty schema '429': description: Too Many Requests. It is used when a rate limiter has triggered. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + parameters: [] + /registrations: + post: + tags: + - mec_app_support + summary: Register the MEC application instance to the MEC platform + description: >- + The POST method may be used by the MEC application instance to request its registration to the MEC platform. + operationId: ApplicationsRegistrations_POST + parameters: [] + requestBody: + description: >- + The message content in the request contains the profile of the MEC application instance, calling the MEC platform to register the MEC application instance. + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + required: false + responses: + '201': + description: >- + Indicates successful resource creation for registration of the MEC application instance to the MEC platform. + headers: + location: + description: The resource URI of the created resource + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '401': + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + parameters: [] + /registrations/{appInstanceId}: + get: + tags: + - mec_app_support + summary: Retrieve information about the MEC application instance registration to the MEC platform + description: >- + The GET method may be used by the MEC application instance to retrieve information about the existing MEC application instance registration to the MEC platform. + operationId: ApplicationsRegistration_GET + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + responses: + '200': + description: >- + Upon success, a response message content containing the requested subscription is returned. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + put: + tags: + - mec_app_support + summary: Update the existing registration of that MEC application instance to the MEC platform + description: >- + The PUT method may be used by the MEC application instance to update its registration to the MEC platform. + operationId: ApplicationsRegistration_PUT + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: >- + Message content in the request contains the profile of the application, calling the MEC platform to update the existing MEC application instance registration. + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + required: true + responses: + '204': + description: No Content + headers: {} + content: {} + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '401': + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + delete: + tags: + - mec_app_support + summary: Request deregistration of the application instance from the MEC platform + description: >- + The DELETE method is used to cancel the existing MEC application instance registration. + operationId: ApplicationsRegistration_DELETE + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + responses: + '204': + description: No Content + headers: {} + content: {} + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '401': + description: >- + Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + '403': + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -991,28 +1345,30 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /timing/timing_caps: get: tags: - mec_app_support - description: - This method retrieves the information of the platform's timing - capabilities which corresponds to the timing capabilities query + summary: Retrieve information about the mecTimingCaps resource + description: >- + This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query operationId: TimingCaps_GET parameters: [] responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message content contains a representation of the resource. + headers: {} content: application/json: schema: $ref: '#/components/schemas/TimingCaps' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -1022,17 +1378,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -1041,28 +1397,30 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] /timing/current_time: get: tags: - mec_app_support - description: - This method retrieves the information of the platform's current - time which corresponds to the get platform time procedure + summary: Retrieve information about the mecCurrentTime resource + description: >- + This method retrieves the information of the platform's current time which corresponds to the get platform time procedure operationId: TimingCurrentTime_GET parameters: [] responses: '200': - description: - It is used to indicate nonspecific success. The response body - contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message content contains a representation of the resource. + headers: {} content: application/json: schema: $ref: '#/components/schemas/CurrentTime' '400': - description: - Bad Request. It is used to indicate that incorrect parameters - were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} content: application/problem+json: schema: @@ -1072,17 +1430,17 @@ paths: type: object description: Empty schema '403': - description: - Forbidden. The operation is not allowed given the current status - of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of the resource. + headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: - Not Found. It is used when a client provided a URI that cannot - be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} content: application/problem+json: schema: @@ -1091,6 +1449,8 @@ paths: schema: type: object description: Empty schema + deprecated: false + parameters: [] components: schemas: AppReadyConfirmation: @@ -1101,27 +1461,106 @@ components: properties: indication: type: string - enum: - - READY description: Indication about the MEC application instance. - description: - This type represents the information that the MEC application instance - indicates to the MEC platform that it is up and running. - AppTerminationConfirmation: - title: AppTerminationConfirmation + example: + READY + description: >- + This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running. + AppInfo: + title: AppInfo required: - - operationAction + - appName type: object properties: - operationAction: - $ref: '#/components/schemas/OperationActionType' - description: - This type represents the information that the MEC application instance - provides to the MEC platform when informing it that the application has completed - its application level related terminate/stop actions, e.g. retention of application - state in the case of stop. - AppTerminationNotification.Links: - title: AppTerminationNotification.Links + appName: + title: appName + type: string + description: >- + Name of the application. It shall be consistent with the appName in the AppD, if an AppD is available. + example: + appName + appProvider: + title: appProvider + type: string + description: >- + Provider of the application. It shall be consistent with the appProvider in the AppD, if an AppD is available. See note 1. + example: + appProvider1 + appCategory: + $ref: '#/components/schemas/CategoryRef' + appDId: + title: appDId + type: string + description: >- + The application descriptor identifier. It is managed by the application provider to identify the application descriptor in a globally unique way. Shall be present if the application instance is instantiated by the MEC Management. + example: + TODO + appInstanceId: + title: appInstanceId + type: string + description: >- + Identifier of the application instance. Shall be present if the application instance is instantiated by the MEC Management. + example: + ID1 + endpoint: + oneOf: + - $ref: '#/components/schemas/EndPointInfoUris' + - $ref: '#/components/schemas/EndPointInfoFqdn' + - $ref: '#/components/schemas/EndPointInfoAddresses' + - $ref: '#/components/schemas/EndPointInfoAlternative' + description: This type represents information about a transport endpoint + x-etsi-notes: "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." + appServiceRequired: + title: appServiceRequired + type: array + items: + $ref: '#/components/schemas/ServiceDependency' + description: >- + Describes services a MEC application requires to run. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + appServiceOptional: + title: appServiceOptional + type: array + items: + $ref: '#/components/schemas/ServiceDependency' + description: >- + Describes services a MEC application may use if available. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + appFeatureRequired: + title: appFeatureRequired + type: array + items: + $ref: '#/components/schemas/FeatureDependency' + description: >- + Describes features a MEC application requires to run. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + appFeatureOptional: + title: appFeatureOptional + type: array + items: + $ref: '#/components/schemas/FeatureDependency' + description: >- + Describes features a MEC application may use if available. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + isInsByMec: + type: boolean + description: >- + Indicate whether the application instance is instantiated by the MEC Management. Default to FALSE if absent. + example: + false + appProfile: + $ref: '#/components/schemas/AppProfile' + description: >- + This type represents the information provided by the MEC application instance as part of the "application registration request" and "application registration update" messages. + x-etsi-notes: "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." + AppTerminationConfirmation: + title: AppTerminationConfirmation + required: + - operationAction + type: object + properties: + operationAction: + $ref: '#/components/schemas/OperationActionType' + description: >- + This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop. + AppTerminationNotificationLinks: + title: AppTerminationNotificationLinks required: - subscription type: object @@ -1129,106 +1568,95 @@ components: subscription: $ref: '#/components/schemas/LinkType' confirmTermination: - $ref: '#/components/schemas/LinkType' + $ref: '#/components/schemas/LinkTypeConfirmTermination' description: Object containing hyperlinks related to the resource. AppTerminationNotification: title: AppTerminationNotification required: - - _links - - maxGracefulTimeout - notificationType - operationAction + - maxGracefulTimeout + - _links type: object properties: notificationType: type: string description: Shall be set to AppTerminationNotification. - example: '["AppTerminationNotification"]' + example: + - AppTerminationNotification operationAction: $ref: '#/components/schemas/OperationActionType' maxGracefulTimeout: type: integer - description: - Maximum timeout value in seconds for graceful termination or - graceful stop of an application instance. + description: >- + Maximum timeout value in seconds for graceful termination or graceful stop of an application instance. + example: + - 10 _links: - $ref: '#/components/schemas/AppTerminationNotification.Links' - description: - This type represents the information that the MEC platform notifies - the subscribed application instance about the corresponding application instance - termination/stop. + $ref: '#/components/schemas/AppTerminationNotificationLinks' + description: >- + This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. AppTerminationNotificationSubscription: title: AppTerminationNotificationSubscription required: + - subscriptionType + - callbackReference - _links - appInstanceId - - callbackReference - - subscriptionType type: object properties: subscriptionType: type: string description: Shall be set to AppTerminationNotificationSubscription. - example: '["AppTerminationNotificationSubscription"]' + example: + AppTerminationNotificationSubscription callbackReference: type: string - description: - URI selected by the MEC application instance to receive notifications - on the subscribed MEC application instance management information. This - shall be included in both the request and the response. + description: >- + URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response. _links: $ref: '#/components/schemas/Self' appInstanceId: type: string description: It is used as the filtering criterion for the subscribed events. - example: '["ID1"]' - description: - This type represents the information that the MEC platform notifies - the subscribed application instance about the corresponding application instance - termination/stop. - example: - appInstanceId: '["ID1"]' - subscriptionType: '["AppTerminationNotificationSubscription"]' - _links: - self: - href: '["/mecAppSuptApi/example"]' - callbackReference: callbackReference + example: + ID1 + description: >- + This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. CurrentTime: title: CurrentTime required: - - nanoSeconds - seconds + - nanoSeconds - timeSourceStatus type: object properties: seconds: type: integer - description: - The seconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: >- + The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 1577836800 nanoSeconds: type: integer - description: - The nanoseconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: >- + The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 0 timeSourceStatus: $ref: '#/components/schemas/TimeSourceStatus' - description: - This type represents the information provided by the MEC platform - in response to the Get Platform Time Request message. - example: - seconds: 0 - nanoSeconds: 6 - timeSourceStatus: '["TRACEABLE"]' - DestinationInterface.InterfaceType: - title: DestinationInterface.InterfaceType - type: string - description: Type of the interface - example: '["TUNNEL"]' + description: >- + This type represents the information provided by the MEC platform in response to the Get Platform Time Request message. + DestinationInterfaceInterfaceType: + title: DestinationInterfaceInterfaceType enum: - TUNNEL - MAC - IP + type: string + description: Type of the interface + example: + - TUNNEL DestinationInterface: title: DestinationInterface required: @@ -1236,88 +1664,78 @@ components: type: object properties: interfaceType: - $ref: '#/components/schemas/DestinationInterface.InterfaceType' + $ref: '#/components/schemas/DestinationInterfaceInterfaceType' tunnelInfo: $ref: '#/components/schemas/TunnelInfo' srcMacAddress: type: string description: Source address identifies the MAC address of the interface - example: '["02-00-00-00-00-00"]' + example: + - 02-00-00-00-00-00 dstMacAddress: type: string description: Source address identifies the MAC address of the interface - example: '["02-00-00-00-00-00"]' + example: + - 02-00-00-00-00-00 dstIpAddress: type: string description: IP address of the remote destination - example: '["192.0.2.0"]' - description: - This type represents the destination interface. If the action is - FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall - be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, - two values shall be provided. If the action is DROP, no value shall be provided. - example: - interfaceType: '["TUNNEL"]' - dstIpAddress: '["192.0.2.0"]' - srcMacAddress: '["02-00-00-00-00-00"]' - tunnelInfo: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' - dstMacAddress: '["02-00-00-00-00-00"]' - DnsRule.IpAddressType: - title: DnsRule.IpAddressType - type: string - description: IP address type - example: '["IP_V6"]' + example: + - 192.0.2.0 + description: >- + This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided. + DnsRuleIpAddressType: + title: DnsRuleIpAddressType enum: - IP_V6 - IP_V4 - DnsRule.State: - title: DnsRule.State type: string - description: DNS rule state. This attribute may be updated using HTTP PUT method - example: '["ACTIVE"]' + description: IP address type + example: + - IP_V6 + DnsRuleState: + title: DnsRuleState enum: - ACTIVE - INACTIVE + type: string + description: DNS rule state. This attribute may be updated using HTTP PUT method + example: + - ACTIVE DnsRule: title: DnsRule required: - dnsRuleId - domainName - - ipAddress - ipAddressType + - ipAddress - state type: object properties: dnsRuleId: type: string description: Identifies the DNS Rule - example: '["dnsRule1"]' + example: + - dnsRule1 domainName: type: string description: FQDN resolved by the DNS rule - example: '["www.example.com"]' + example: + - www.example.com ipAddressType: - $ref: '#/components/schemas/DnsRule.IpAddressType' + $ref: '#/components/schemas/DnsRuleIpAddressType' ipAddress: type: string description: IP address associated with the FQDN resolved by the DNS rule - example: '["192.0.2.0"]' + example: + - 192.0.2.0 ttl: type: integer description: Time to live value state: - $ref: '#/components/schemas/DnsRule.State' + $ref: '#/components/schemas/DnsRuleState' description: This type represents the general information of a DNS rule. - example: - domainName: '["www.example.com"]' - ipAddress: '["192.0.2.0"]' - dnsRuleId: '["dnsRule1"]' - state: '["ACTIVE"]' - ttl: 0 - ipAddressType: '["IP_V6"]' + x-etsi-notes: "NOTE:\tIf no ttl value is provided, the DnsRule shall not expire." LinkType: title: LinkType type: object @@ -1325,14 +1743,24 @@ components: href: type: string description: URI referring to a resource - example: '["/mecAppSuptApi/example"]' - description: - This type represents a type of link and may be referenced from - data structures - example: - href: '["/mecAppSuptApi/example"]' - MecAppSuptApiSubscriptionLinkList.Links: - title: MecAppSuptApiSubscriptionLinkList.Links + example: + /mecAppSuptApi/example + description: >- + This type represents a type of link and may be referenced from data + structures + LinkTypeConfirmTermination: + title: LinkTypeConfirmTermination + type: object + properties: + href: + type: string + description: URI referring to a resource + example: + - /mecAppSuptApi/example + description: >- + Link to the task resource where to confirm termination in case the application is ready to be terminated before expiry of the timeout. + MecAppSuptApiSubscriptionLinkListLinks: + title: MecAppSuptApiSubscriptionLinkListLinks required: - self type: object @@ -1341,20 +1769,12 @@ components: $ref: '#/components/schemas/LinkType' subscriptions: type: array - description: The MEC application instance's subscriptions items: - $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription' - description: Self-referring URI. - example: - subscriptions: - - rel: rel - href: '["/mecAppSuptApi/example"]' - - rel: rel - href: '["/mecAppSuptApi/example"]' - self: - href: '["/mecAppSuptApi/example"]' - MecAppSuptApiSubscriptionLinkList.Subscription: - title: MecAppSuptApiSubscriptionLinkList.Subscription + $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkListSubscription' + description: The MEC application instance's subscriptions + description: Object containing hyperlinks related to the resource. + MecAppSuptApiSubscriptionLinkListSubscription: + title: MecAppSuptApiSubscriptionLinkListSubscription required: - href - subscriptionType @@ -1363,14 +1783,12 @@ components: href: type: string description: URI referring to a resource - example: '["/mecAppSuptApi/example"]' + example: + - /mecAppSuptApi/example subscriptionType: type: string - description: The values shall be set to AppTerminationNotificationSubscription. + description: Type of the subscription. The values are as defined in the "subscriptionType" attribute for each different Mp1 event subscription data type. description: A link to a subscription. - example: - subscriptionType: subscriptionType - href: '["/mecAppSuptApi/example"]' MecAppSuptApiSubscriptionLinkList: title: MecAppSuptApiSubscriptionLinkList required: @@ -1378,56 +1796,40 @@ components: type: object properties: _links: - $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links' - description: - This type represents a list of links related to currently existing - subscriptions for a MEC application instance. This information is returned - when sending a request to receive current subscriptions. - example: - _links: - subscriptions: - - rel: rel - href: '["/mecAppSuptApi/example"]' - - rel: rel - href: '["/mecAppSuptApi/example"]' - self: - href: '["/mecAppSuptApi/example"]' + $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkListLinks' + description: >- + This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions. OperationActionType: title: OperationActionType - type: string - description: Operation that is being performed on the MEC application instance. - example: '["TERMINATING"]' enum: - STOPPING - TERMINATING + type: string + description: Operation that is being performed on the MEC application instance. + example: + - TERMINATING ProblemDetails: title: ProblemDetails - required: - - status - - detail type: object properties: type: type: string - description: - A URI reference according to IETF RFC 3986 that identifies - the problem type + description: >- + A URI reference according to IETF RFC 3986 that identifies the problem type title: type: string - description: A short, human-readable summary of the problem type + description: 'A short, human-readable summary of the problem type' status: type: integer description: The HTTP status code for this occurrence of the problem detail: type: string - description: - A human-readable explanation specific to this occurrence of - the problem + description: >- + A human-readable explanation specific to this occurrence of the problem instance: type: string - description: - A URI reference that identifies the specific occurrence of - the problem + description: >- + A URI reference that identifies the specific occurrence of the problem Self: title: Self required: @@ -1437,283 +1839,210 @@ components: self: $ref: '#/components/schemas/LinkType' description: Self-referring URI. - example: - self: - href: '["/mecAppSuptApi/example"]' - TimingCaps.NtpServers.AuthenticationOption: - title: TimingCaps.NtpServers.AuthenticationOption - type: string - description: NTP authentication option - example: '["NONE"]' + TimingCapsNtpServersAuthenticationOption: + title: TimingCapsNtpServersAuthenticationOption enum: - NONE - SYMMETRIC_KEY - AUTO_KEY - TimingCaps.NtpServers.NtpServerAddrType: - title: TimingCaps.NtpServers.NtpServerAddrType type: string - description: Address type of NTP server - example: '["IP_ADDRESS"]' + description: NTP authentication option + example: + - NONE + TimingCapsNtpServersNtpServerAddrType: + title: TimingCapsNtpServersNtpServerAddrType enum: - IP_ADDRESS - DNS_NAME - TimingCaps.NtpServers: - title: TimingCaps.NtpServers + type: string + description: Address type of NTP server + example: + - IP_ADDRESS + TimingCapsNtpServers: + title: TimingCapsNtpServers required: - - authenticationKeyNum - - authenticationOption - - localPriority - - maxPollingInterval - - minPollingInterval - - ntpServerAddr - ntpServerAddrType + - ntpServerAddr + - minPollingInterval + - maxPollingInterval + - localPriority + - authenticationOption type: object properties: ntpServerAddrType: - $ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType' + $ref: '#/components/schemas/TimingCapsNtpServersNtpServerAddrType' ntpServerAddr: type: string description: NTP server address - example: '["192.0.2.0"]' + example: + - 192.0.2.0 minPollingInterval: type: integer - description: - Minimum poll interval for NTP messages, in seconds as a power - of two. Range 3 to 17 + description: >- + Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + example: + - 3 maxPollingInterval: type: integer - description: - Maximum poll interval for NTP messages, in seconds as a power - of two. Range 3 to 17 + description: >- + Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + example: + - 17 localPriority: type: integer description: NTP server local priority + example: + - 1 authenticationOption: - $ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationOption' + $ref: '#/components/schemas/TimingCapsNtpServersAuthenticationOption' authenticationKeyNum: type: integer - description: Authentication key number + description: >- + Authentication key number. This configuration is valid and shall be present if authenticationOption is set to SYMMETRIC_KEY + example: + - 1 description: NTP server detail. - example: - ntpServerAddr: '["192.0.2.0"]' - maxPollingInterval: 5 - authenticationKeyNum: 2 - localPriority: 5 - authenticationOption: '["NONE"]' - ntpServerAddrType: '["IP_ADDRESS"]' - minPollingInterval: 1 TimingCaps_PtpMasters: title: TimingCaps_PtpMasters required: - - delayReqMaxRate - ptpMasterIpAddress - ptpMasterLocalPriority + - delayReqMaxRate type: object properties: ptpMasterIpAddress: type: string description: PTP Server (referred to as "master" in IEEE 1588-2019) IP Address - example: '["192.0.2.0"]' + example: + - 192.0.2.0 ptpMasterLocalPriority: type: integer - description: - PTP Server (referred to as "master" in IEEE 1588-2019 ) local - priority + description: >- + PTP Server (referred to as "master" in IEEE 1588-2019 ) local priority + example: + - 1 delayReqMaxRate: type: integer - description: - Acceptable maximum rate of the Delay_Req messages in packets - per second + description: >- + Acceptable maximum rate of the Delay_Req messages in packets per second + example: + - 10 description: NTP server detail. - example: - ptpMasterLocalPriority: 7 - ptpMasterIpAddress: '["192.0.2.0"]' - delayReqMaxRate: 9 - TimingCaps.TimeStamp: - title: TimingCaps.TimeStamp + TimingCapsTimeStamp: + title: TimingCapsTimeStamp required: - - nanoSeconds - seconds + - nanoSeconds type: object properties: seconds: type: integer - description: - The seconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: >- + The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 1577836800 nanoSeconds: type: integer - description: - The nanoseconds part of the time. Time is defined as Unix-time - since January 1, 1970, 00:00:00 UTC + description: >- + The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + example: + - 0 description: time - example: - seconds: 0 - nanoSeconds: 6 TimingCaps: title: TimingCaps type: object properties: timeStamp: - $ref: '#/components/schemas/TimingCaps.TimeStamp' + $ref: '#/components/schemas/TimingCapsTimeStamp' ntpServers: type: array - description: Available NTP servers items: - $ref: '#/components/schemas/TimingCaps.NtpServers' + $ref: '#/components/schemas/TimingCapsNtpServers' + description: Available NTP servers ptpMasters: type: array - description: - Number of available PTP Servers (referred to as "masters" in - IEEE 1588-2019) items: $ref: '#/components/schemas/TimingCaps_PtpMasters' - description: - This type represents the information provided by the MEC platform - in response to the Timing capabilities Query message. - example: - timeStamp: - seconds: 0 - nanoSeconds: 6 - ntpServers: - - ntpServerAddr: '["192.0.2.0"]' - maxPollingInterval: 5 - authenticationKeyNum: 2 - localPriority: 5 - authenticationOption: '["NONE"]' - ntpServerAddrType: '["IP_ADDRESS"]' - minPollingInterval: 1 - - ntpServerAddr: '["192.0.2.0"]' - maxPollingInterval: 5 - authenticationKeyNum: 2 - localPriority: 5 - authenticationOption: '["NONE"]' - ntpServerAddrType: '["IP_ADDRESS"]' - minPollingInterval: 1 - ptpMasters: - - ptpMasterLocalPriority: 7 - ptpMasterIpAddress: '["192.0.2.0"]' - delayReqMaxRate: 9 - - ptpMasterLocalPriority: 7 - ptpMasterIpAddress: '["192.0.2.0"]' - delayReqMaxRate: 9 + description: >- + Number of available PTP Servers (referred to as "masters" in IEEE 1588-2019) + description: >- + This type represents the information provided by the MEC platform in response to the Timing capabilities Query message. TrafficFilter: title: TrafficFilter type: object properties: srcAddress: type: array - description: - An IP address or a range of IP address. For IPv4, the IP address - could be an IP address plus mask, or an individual IP address, or a range - of IP addresses. For IPv6, the IP address could be an IP prefix, or a - range of IP prefixes. items: type: string + description: >- + An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. dstAddress: type: array - description: - An IP address or a range of IP address. For IPv4, the IP address - could be an IP address plus mask, or an individual IP address, or a range - of IP addresses. For IPv6, the IP address could be an IP prefix, or a - range of IP prefixes. items: type: string + description: >- + An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. srcPort: type: array - description: A port or a range of ports items: type: string + description: A port or a range of ports dstPort: type: array - description: A port or a range of ports items: type: string + description: A port or a range of ports protocol: type: array - description: Specify the protocol of the traffic filter items: type: string - token: + description: Specify the protocol of the traffic filter + tag: type: array - description: Used for token based traffic rule items: type: string + description: Used for tag based traffic rule srcTunnelAddress: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule tgtTunnelAddress: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule srcTunnelPort: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule dstTunnelPort: type: array - description: Used for GTP tunnel based traffic rule items: type: string + description: Used for GTP tunnel based traffic rule qCI: type: integer - description: - Used to match all packets that have the same Quality Class - Indicator (QCI). + description: >- + Used to match all packets that have the same Quality Class Indicator (QCI). + example: + - 1 dSCP: type: integer - description: - Used to match all IPv4 packets that have the same Differentiated - Services Code Point (DSCP) + description: >- + Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP) + example: + - 0 tC: type: integer description: Used to match all IPv6 packets that have the same Traffic Class. + example: + - 1 description: This type represents the traffic filter. - example: - srcTunnelPort: - - srcTunnelPort - - srcTunnelPort - dstAddress: - - dstAddress - - dstAddress - srcAddress: - - srcAddress - - srcAddress - srcPort: - - srcPort - - srcPort - token: - - token - - token - tC: 5 - protocol: - - protocol - - protocol - dstTunnelPort: - - dstTunnelPort - - dstTunnelPort - dSCP: 1 - dstPort: - - dstPort - - dstPort - qCI: 6 - srcTunnelAddress: - - srcTunnelAddress - - srcTunnelAddress - tgtTunnelAddress: - - tgtTunnelAddress - - tgtTunnelAddress - TrafficRule.Action: - title: TrafficRule.Action - type: string - description: - The action of the MEC host data plane when a packet matches the - trafficFilter - example: '["DROP"]' + TrafficRuleAction: + title: TrafficRuleAction enum: - DROP - FORWARD_DECAPSULATED @@ -1721,162 +2050,80 @@ components: - PASSTHROUGH - DUPLICATE_DECAPSULATED - DUPLICATE_ENCAPSULATED - TrafficRule.FilterType: - title: TrafficRule.FilterType type: string - description: - Definition of filter per FLOW or PACKET. If flow the filter match - UE->EPC packet and the reverse packet is handled in the same context - example: '["FLOW"]' + description: >- + The action of the MEC host data plane when a packet matches the trafficFilter + example: + - DROP + TrafficRuleFilterType: + title: TrafficRuleFilterType enum: - FLOW - PACKET - TrafficRule.State: - title: TrafficRule.State type: string - description: - Contains the traffic rule state. This attribute may be updated - using HTTP PUT method - example: '["ACTIVE"]' + description: >- + Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context + example: + - FLOW + TrafficRuleState: + title: TrafficRuleState enum: - ACTIVE - INACTIVE + type: string + description: >- + Contains the traffic rule state. This attribute may be updated using HTTP PUT method + example: + - ACTIVE TrafficRule: title: TrafficRule required: - - action + - trafficRuleId - filterType - priority - - state - trafficFilter - - trafficRuleId + - action + - state type: object properties: trafficRuleId: type: string description: Identify the traffic rule. - example: '["TrafficRule1"]' + example: + - TrafficRule1 filterType: - $ref: '#/components/schemas/TrafficRule.FilterType' + $ref: '#/components/schemas/TrafficRuleFilterType' priority: type: integer - description: - Priority of this traffic rule within the range 0 to 255. If - traffic rules conflict, the one with higher priority take precedence. - Value indicates the priority in descending order, i.e. with 0 as the highest - priority and 255 as the lowest priority. + description: >- + Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority. + example: + - 1 trafficFilter: type: array items: $ref: '#/components/schemas/TrafficFilter' + description: '' action: - $ref: '#/components/schemas/TrafficRule.Action' + $ref: '#/components/schemas/TrafficRuleAction' dstInterface: - maxItems: 2 type: array items: $ref: '#/components/schemas/DestinationInterface' + maxItems: 2 state: - $ref: '#/components/schemas/TrafficRule.State' + $ref: '#/components/schemas/TrafficRuleState' description: This type represents the general information of a traffic rule. - example: - action: '["DROP"]' - trafficRuleId: '["TrafficRule1"]' - dstInterface: - - interfaceType: '["TUNNEL"]' - dstIpAddress: '["192.0.2.0"]' - srcMacAddress: '["02-00-00-00-00-00"]' - tunnelInfo: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' - dstMacAddress: '["02-00-00-00-00-00"]' - - interfaceType: '["TUNNEL"]' - dstIpAddress: '["192.0.2.0"]' - srcMacAddress: '["02-00-00-00-00-00"]' - tunnelInfo: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' - dstMacAddress: '["02-00-00-00-00-00"]' - state: '["ACTIVE"]' - filterType: '["FLOW"]' - priority: 0 - trafficFilter: - - srcTunnelPort: - - srcTunnelPort - - srcTunnelPort - dstAddress: - - dstAddress - - dstAddress - srcAddress: - - srcAddress - - srcAddress - srcPort: - - srcPort - - srcPort - token: - - token - - token - tC: 5 - protocol: - - protocol - - protocol - dstTunnelPort: - - dstTunnelPort - - dstTunnelPort - dSCP: 1 - dstPort: - - dstPort - - dstPort - qCI: 6 - srcTunnelAddress: - - srcTunnelAddress - - srcTunnelAddress - tgtTunnelAddress: - - tgtTunnelAddress - - tgtTunnelAddress - - srcTunnelPort: - - srcTunnelPort - - srcTunnelPort - dstAddress: - - dstAddress - - dstAddress - srcAddress: - - srcAddress - - srcAddress - srcPort: - - srcPort - - srcPort - token: - - token - - token - tC: 5 - protocol: - - protocol - - protocol - dstTunnelPort: - - dstTunnelPort - - dstTunnelPort - dSCP: 1 - dstPort: - - dstPort - - dstPort - qCI: 6 - srcTunnelAddress: - - srcTunnelAddress - - srcTunnelAddress - tgtTunnelAddress: - - tgtTunnelAddress - - tgtTunnelAddress - TunnelInfo.TunnelType: - title: TunnelInfo.TunnelType - type: string - description: This type represents the tunnel information. - example: '["GTP_U"]' + x-etsi-notes: "NOTE 1:\tValue indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.\nNOTE 2:\tSome applications (like inline/tap) require two interfaces. The first interface in the case of inline/tap is on the client (e.g. UE) side and the second on the core network (e.g. EPC) side." + TunnelInfoTunnelType: + title: TunnelInfoTunnelType enum: - GTP_U - GRE + type: string + description: This type represents the tunnel information. + example: + - GTP_U TunnelInfo: title: TunnelInfo required: @@ -1884,35 +2131,358 @@ components: type: object properties: tunnelType: - $ref: '#/components/schemas/TunnelInfo.TunnelType' + $ref: '#/components/schemas/TunnelInfoTunnelType' tunnelDstAddress: type: string description: Destination address of the tunnel - example: '["?"]' + example: + - '192.127.4.100/32' tunnelSrcAddress: type: string description: Source address of the tunnel - example: '["?"]' + example: + - '192.127.4.101/32' description: This type represents the tunnel information. - example: - tunnelSrcAddress: '["?"]' - tunnelType: '["GTP_U"]' - tunnelDstAddress: '["?"]' TimeSourceStatus: title: TimeSourceStatus - type: string - description: - Platform Time Source status. 1 = TRACEABLE - time source is locked - to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the - UTC time source - example: '["TRACEABLE"]' enum: - TRACEABLE - NONTRACEABLE + type: string + description: >- + Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source + example: + - TRACEABLE + CategoryRef: + title: CategoryRef + required: + - href + - id + - name + - version + type: object + properties: + href: + type: string + description: Reference of the catalogue + example: + /example/catalogue1 + id: + type: string + description: Unique identifier of the category + example: + id12345 + name: + type: string + description: >- + Name of the category, example values include RNI, Location & Bandwidth Management + example: + RNI + version: + type: string + description: Category version + example: + version1 + description: This type represents the category reference + EndPointInfoAddress: + title: EndPointInfoAddress + required: + - host + - port + type: object + properties: + host: + type: string + description: Host portion of the address + example: + - 192.0.2.0 + port: + type: integer + description: Port portion of the address + example: + - 8080 + description: A IP address and port pair + EndPointInfoAddresses: + title: EndPointInfoAddresses + required: + - addresses + type: object + properties: + addresses: + type: array + items: + $ref: '#/components/schemas/EndPointInfoAddress' + description: >- + Entry point information of the service as one or more pairs of IP address and port. See note. + description: This type represents information about a transport endpoint. + EndPointInfoAlternative: + title: EndPointInfoAlternative + required: + - alternative + type: object + properties: + alternative: + type: object + description: >- + Entry point information of the service in a format defined by an implementation, or in an external specification. See note. + description: This type represents information about a transport endpoint. + EndPointInfoUris: + title: EndPointInfoUris + required: + - uris + type: object + properties: + uris: + type: array + items: + type: string + description: >- + Entry point information of the service as string, formatted according to URI syntax + description: This type represents information about a transport endpoint. + EndPointInfoFqdn: + title: EndPointInfoFqdn + required: + - fqdn + type: object + properties: + fqdn: + type: array + items: + type: string + description: Fully Qualified Domain Name of the service. See note. + description: 'This type represents information about a transport endpoint. ' + ServiceDependency: + properties: + requestedPermissions: + description: >- + Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4]. The format of this attribute is left for the data model design stage. + minItems: 0 + type: array + serCategory: + $ref: '#/components/schemas/CategoryRef' + serName: + description: 'The name of the service, for example, RNIS, LocationService, etc.' + type: string + serTransportDependencies: + description: >- + Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note. + items: + $ref: '#/components/schemas/TransportDependency' + minItems: 0 + type: array + version: + description: The version of the service. + type: string + required: + - serName + - version + type: object + x-etsi-notes: "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application." + TransportDependency: + properties: + labels: + description: >- + Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table. + items: + type: string + minItems: 1 + type: array + serializers: + description: >- + Information about the serializers in this transport binding, as defined in the SerializerType type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport. + items: + $ref: '#/components/schemas/SerializerType' + minItems: 1 + type: array + transport: + $ref: '#/components/schemas/TransportDescriptor' + required: + - transport + - serializers + - labels + type: object + TransportDescriptor: + properties: + protocol: + description: >- + The name of the protocol used. Shall be set to "HTTP" for a REST API. + type: string + security: + $ref: '#/components/schemas/SecurityInfo' + type: + $ref: '#/components/schemas/TransportType' + version: + description: The version of the protocol used. + type: string + required: + - type + - protocol + - version + - security + type: object + SerializerType: + title: SerializerType + enum: + - JSON + - XML + - PROTOBUF3 + type: string + description: The enumeration represents types of serializers + example: + JSON + SecurityInfo: + title: SecurityInfo + type: object + properties: + oAuth2Info: + $ref: '#/components/schemas/SecurityInfoOAuth2Info' + description: This type represents security information related to a transport + SecurityInfoOAuth2Info: + title: SecurityInfoOAuth2Info + required: + - grantTypes + - tokenEndpoint + type: object + properties: + grantTypes: + maxItems: 4 + minItems: 1 + type: array + items: + $ref: '#/components/schemas/SecurityInfoOAuth2InfoGrantType' + description: List of supported OAuth 2.0 grant types. + tokenEndpoint: + type: string + description: The token endpoint + example: + /mecSerMgmtApi/security/TokenEndPoint + description: Parameters related to use of OAuth 2.0 + SecurityInfoOAuth2InfoGrantType: + title: SecurityInfoOAuth2InfoGrantType + enum: + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS + type: string + description: OAuth 2.0 grant type + example: + OAUTH2_CLIENT_CREDENTIALS + TransportType: + title: TransportType + enum: + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + type: string + description: The enumeration TransportType represents types of transports + example: + REST_HTTP + FeatureDependency: + properties: + featureName: + description: 'The name of the feature, for example, UserApps, UEIdentity, etc.' + type: string + version: + description: The version of the feature. + type: string + required: + - featureName + - version + type: object + AppProfile: + type: object + required: + - easId + - endPt + - acIds + - scheds + - permLvl + - easFeats + - svcContSupp + - appLocs + properties: + easId: + description: The identifier of the EAS + type: string + example: + appName + endPt: + description: The version of the feature. + oneOf: + - $ref: '#/components/schemas/EndPointInfoUris' + - $ref: '#/components/schemas/EndPointInfoFqdn' + - $ref: '#/components/schemas/EndPointInfoAddresses' + - $ref: '#/components/schemas/EndPointInfoAlternative' + acIds: + type: array + items: + type: string + minItems: 1 + description: Identities of the Application Clients that can be served by the EAS + provId: + type: string + description: Identifier of the ASP that provides the EAS. + example: + appProvider1 + type: + description: The category or type of EAS. + type: string + scheds: + type: array + items: + type: string + minItems: 1 + description: The availability schedule of the EAS. + svcArea: + type: string + description: >- + The list of geographical and topological areas that the EAS serves. ACs in the UE that are outside the area will not be served. + svcKpi: + type: string + description: Service characteristics provided by the EAS. + permLvl: + type: array + items: + type: string + minItems: 1 + description: level of service permissions supported by the EAS. + easFeats: + type: array + items: + type: string + minItems: 1 + description: Service features supported by the EAS. + svcContSupp: + type: array + items: + type: string + minItems: 1 + description: The ACR scenarios supported by the EAS for service continuity. + appLocs: + type: array + items: + type: string + minItems: 1 + description: >- + List of DNAI(s) and the N6 traffic information associated with the EAS. + avlRep: + type: integer + description: >- + The period indicating to the EES, how often the EES needs to check the EAS's availability after a successful registration. + example: + 1577836800 + status: + type: string + description: 'EAS status information. ' requestBodies: AppTerminationNotification: content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotification' - required: true + required: true \ No newline at end of file diff --git a/config/api/dai-api.yaml b/config/api/dai-api.yaml index c7ca5ddec691958b8e6d326e7e62ce9f184bb27a..4fde5cc3c83384556fc4964cbc7bde9d471e5f12 100644 --- a/config/api/dai-api.yaml +++ b/config/api/dai-api.yaml @@ -382,9 +382,9 @@ paths: maxGracefulTimeout: 10 _links: subscription: - href: http://mec011Server.example.com/mec_app_support/v1/applications/appId1234/subscriptions/sub123 + href: http://mec011Server.example.com/mec_app_support/v2/applications/appId1234/subscriptions/sub123 confirmTermination: - href: http://mec011Server.example.com/mec_app_support/v1/confirm_termination + href: http://mec011Server.example.com/mec_app_support/v2/confirm_termination required: true responses: "204": diff --git a/config/api/loc-serv-api.yaml b/config/api/loc-serv-api.yaml index 11ab0e156b203c9a0cafc0ba0a2aa0405450748e..3f4914a91a7b623335b0a69f75eebe5897aee2a5 100644 --- a/config/api/loc-serv-api.yaml +++ b/config/api/loc-serv-api.yaml @@ -3,18 +3,18 @@ info: contact: url: https://forge.etsi.org/rep/mec/gs013-location-api title: ETSI GS MEC 013 - Location API - version: 2.2.1 + version: 3.1.1 description: | 'The ETSI MEC ISG MEC013 Location API described using OpenAPI. -

**Note**
MEC Sandbox supports all Location API endpoints; complete details on Location API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.02.01_60/gs_mec013v020201p.pdf)' +

**Note**
MEC Sandbox supports all Location API endpoints; complete details on Location API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/03.01.01_60/gs_mec013v030101p.pdf)' license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' externalDocs: - description: ETSI MEC013 V2.2.1 Location API - url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/02.02.01_60/gs_mec013v020201p.pdf' + description: ETSI MEC013 V3.1.1 Location API + url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/013/03.01.01_60/gs_mec013v030101p.pdf' servers: - - url: 'https://localhost/sandboxname/location/v2' + - url: 'https://localhost/sandboxname/location/v3' tags: - name: 'location' paths: @@ -22,11 +22,10 @@ paths: get: tags: - 'location' - summary: 'UE Distance Lookup of a specific UE' - description: 'UE Distance Lookup between terminals or a terminal and a location' + summary: 'Retrieves distance information between a user and a location or between two users' + description: 'The GET method is used to query information about distance from a user to a location or between two users.' operationId: distanceGET parameters: - - $ref: '#/components/parameters/Query.Requester' - $ref: '#/components/parameters/Query.AddressMandatory' - $ref: '#/components/parameters/Query.Latitude' - $ref: '#/components/parameters/Query.Longitude' @@ -57,8 +56,8 @@ paths: get: tags: - 'location' - summary: 'UE Location Lookup of a specific UE or group of UEs' - description: 'UE Location Lookup of a specific UE or group of UEs' + summary: 'Retrieves location information for specific UE (User Equipment) or group of UEs (User Equipments)' + description: 'The GET method is used to query location information about a specific UE (User Equipment) or a group of UEs (User Equipments) .' operationId: usersGET parameters: - $ref: '#/components/parameters/Query.ZoneId' @@ -91,9 +90,11 @@ paths: get: tags: - 'location' - summary: 'Zones information Lookup' - description: 'Used to get a list of identifiers for zones authorized for use by the application.' + summary: 'Retrieves information about one or more specific zones or a list of zones.' + description: 'The GET method is used to query the information about one or more specific zones or a list of zones.' operationId: zonesGET + parameters: + - $ref: '#/components/parameters/Query.ZoneId_' responses: '200': description: 'Successful response to zones request' @@ -121,8 +122,8 @@ paths: get: tags: - 'location' - summary: 'Zones information Lookup' - description: 'Used to get the information for an authorized zone for use by the application.' + summary: 'Retrieves detailed information about a specific zone by its zoneId' + description: The GET method is used to query the information about a specific zone' operationId: zonesGetById parameters: - $ref: '#/components/parameters/Path.ZoneId' @@ -153,12 +154,12 @@ paths: get: tags: - 'location' - summary: 'Radio Node Location Lookup' - description: 'Radio Node Location Lookup to retrieve a list of radio nodes associated to a zone.' + summary: 'Retrieves information about specific access points or a list of access points under a given zoneId' + description: 'The GET method is used to query the information about a specific access point or a list of access points under a zone' operationId: apGET parameters: - $ref: '#/components/parameters/Path.ZoneId' - - $ref: '#/components/parameters/Query.InterestRealm' + - $ref: '#/components/parameters/Query.AccessPointId' responses: '200': description: 'Successful response to an access point Id request' @@ -186,8 +187,8 @@ paths: get: tags: - 'location' - summary: 'Radio Node Location Lookup' - description: 'Radio Node Location Lookup to retrieve a radio node associated to a zone.' + summary: 'Retrieves detailed information about a specific access point under a given zoneId' + description: 'The GET method is used to query the information about a specific access point under a zone.' operationId: apByIdGET parameters: - $ref: '#/components/parameters/Path.ZoneId' @@ -215,16 +216,24 @@ paths: '429': $ref: '#/components/responses/429' x-swagger-router-controller: 'queries' - /subscriptions/area/circle: + /subscriptions/area: get: tags: - - 'location' - summary: 'Retrieves all active subscriptions to area change notifications' - description: 'This operation is used for retrieving all active subscriptions to area change notifications.' - operationId: areaCircleSubListGET + - 'location' + summary: 'Retrieves information about the subscriptions for this requestor.' + description: 'The GET method is used to request information about the subscriptions for this requestor.' + operationId: areaSubListGET + parameters: + - name: subscription_type + in: query + description: Filter subscriptions by type + schema: + type: string + enum: [Event] + required: false responses: '200': - description: 'Response to retrieve area subscriptions' + description: "Upon success, a response body containing the list of links to requestor's subscriptions is returned." content: application/json: schema: @@ -234,47 +243,104 @@ paths: properties: notificationSubscriptionList: $ref: '#/components/schemas/NotificationSubscriptionList' + example: + notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/area/subscription123' + subscriptionType: 'UserAreaSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/area' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' post: tags: - - 'location' - summary: 'Creates a subscription for area change notification' - description: 'Creates a subscription to the Location Service for an area change notification.' - operationId: areaCircleSubPOST + - 'location' + summary: 'Creates subscription to area notifications.' + description: 'The POST method is used to create a new subscription to area notifications.' + operationId: areaSubPOST requestBody: - description: 'Subscription to be created' required: true content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' - example: - circleNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-area-circle/some-id' - address: - - '10.100.0.4' - checkImmediate: true - enteringLeavingCriteria: 'Entering' - frequency: 1 - latitude: 43.748993 - longitude: 7.437573 - radius: 200 - trackingAccuracy: 10 + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + requestTestNotification : true + callbackReference: 'http://my.callback.com/user_area_notification/some-id' + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + locationEventCriteria: + - ENTERING_AREA_EVENT + trackingAccuracy: 10 + reportingLocationReq: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clause 6.3.8: + - UserAreaSubscription responses: '201': - description: 'Successful subscription' + description: 'Indicates successful resource creation, where the resource URI shall be returned in the HTTP Location header field.' content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'userAreaSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/user_area_notification/some-id' + requestTestNotification: true + _links: + self: + href: http://meAppServer.example.com/location/v2/subscriptions/area/subscription123 + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + trackingAccuracy: 10 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + '400': $ref: '#/components/responses/400' '401': @@ -285,15 +351,17 @@ paths: $ref: '#/components/responses/404' '406': $ref: '#/components/responses/406' + '415': + $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' callbacks: notification: - '{$request.body#/circleNotificationSubscription.callbackReference.notifyURL}': + '{$request.body#/userAreaSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' description: 'Notification from Location service, content based on subscription type' - operationId: circleNotificationPOST + operationId: areaNotificationPOST requestBody: description: 'Subscription notification' required: true @@ -302,33 +370,67 @@ paths: schema: type: object properties: - subscriptionNotification: - $ref: '#/components/schemas/SubscriptionNotification' + userAreaNotification: + $ref: '#/components/schemas/UserAreaNotification' + example: + userAreaNotification: + notificationType: 'UserAreaNotification' + timestamp: + seconds: 1673507343 + nanoSeconds": 0 + address: 'acr:10.0.0.1' + userLocationEvent: 'ENTERING_AREA_EVENT' + _links: + subscription: + href: http://meAppServer.example.com/location/v2/subscriptions/area/subscription123 responses: '204': $ref: '#/components/responses/204' x-swagger-router-controller: 'subscriptions' - /subscriptions/area/circle/{subscriptionId}: + /subscriptions/area/{subscriptionId}: get: tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: areaCircleSubGET + - 'location' + summary: 'Retrieves information about a specific subscription using its subscription ID' + description: 'The GET method is used to retrieve information about this subscription.' + operationId: areaSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific zone subscription is returned.' content: application/json: schema: type: object required: - - circleNotificationSubscription + - userAreaSubscription properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/area_notification/some-id' + requestTestNotification: true + _links: + self: + href: http://meAppServer.example.com/location/v2/subscriptions/area/subscription123 + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + trackingAccuracy: 10 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1973507343 + nanoSeconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -344,48 +446,78 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: areaCircleSubPUT + - 'location' + summary: 'Updates an existing subscription with new data, replacing the current subscription details.' + description: 'The PUT method is used to update the existing subscription. PUT method in this case has "replace" semantics.' + operationId: areaSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' - example: - circleNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-area-circle/some-id' - address: - - '10.100.0.4' - checkImmediate: true - enteringLeavingCriteria: 'Entering' - frequency: 1 - latitude: 43.748993 - longitude: 7.437573 - radius: 200 - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/area/circle/subscription123" - trackingAccuracy: 10 + userAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/user_area_notification/some-id' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/area/subscription123" + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + trackingAccuracy: 10 + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clause 6.3.8: + - UserAreaSubscription + parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned.' content: application/json: schema: type: object properties: - circleNotificationSubscription: - $ref: '#/components/schemas/CircleNotificationSubscription' + UserAreaSubscription: + $ref: '#/components/schemas/UserAreaSubscription' + example: + userAreaSubscription: + subscriptionType: 'UserAreaSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/area_notification/some-id' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/users/subscription123" + areaDefine: + shape: 1 + points: + - latitude: 43.748993 + longitude: 7.437573 + radius: 200 + addressList: + - 10.100.0.4 + trackingAccuracy: 10 + expiryDeadline: + seconds: 1973507343 + nanoSeconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -405,10 +537,10 @@ paths: x-swagger-router-controller: 'subscriptions' delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: areaCircleSubDELETE + - 'location' + summary: 'Cancels the existing subscription, deleting the resource representing the subscription' + description: 'The DELETE method is used to cancel the existing subscription.' + operationId: areaSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: @@ -426,13 +558,13 @@ paths: /subscriptions/distance: get: tags: - - 'location' + - 'location' summary: 'Retrieves all active subscriptions to distance change notifications' description: 'This operation is used for retrieving all active subscriptions to a distance change notifications.' operationId: distanceSubListGET responses: '200': - description: 'Response to retrieve area subscriptions' + description: "Upon success, a response body containing the list of links to requestor's subscriptions is returned." content: application/json: schema: @@ -442,38 +574,54 @@ paths: properties: notificationSubscriptionList: $ref: '#/components/schemas/NotificationSubscriptionList' + example: + - notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/distance/subscription123' + subscriptionType: 'UserDistanceSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/distance' post: tags: - - 'location' + - 'location' summary: 'Creates a subscription for distance change notification' - description: 'Creates a subscription to the Location Service for a distance change notification.' + description: 'The POST method is used to create a new subscription to user distance notifications.' operationId: distanceSubPOST requestBody: - description: 'Subscription to be created' required: true content: application/json: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' - example: - distanceNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-distance/some-id' - monitoredAddress: - - '10.10.0.1' - - '10.1.0.1' - checkImmediate: true - criteria: 'AllWithinDistance' - distance: 100 - frequency: 10 - referenceAddress: - - '10.100.0.1' - trackingAccuracy: 10 + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/distance_notification/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the user + distance subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.9: + - UserDistanceSubscription. responses: '201': description: 'Successful subscription' @@ -482,8 +630,29 @@ paths: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/user-distance/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -494,50 +663,94 @@ paths: $ref: '#/components/responses/404' '406': $ref: '#/components/responses/406' + '415': + $ref: '#/components/responses/415' + '422': + $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' callbacks: notification: - '{$request.body#/distanceNotificationSubscription.callbackReference.notifyURL}': + '{$request.body#/userDistanceSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' - description: 'Notification from Location service, content based on subscription type' + description: 'Notification from Location service, content based user distance subscription type' operationId: distanceNotificationPOST requestBody: - description: 'Subscription notification' + description: 'User Distance Notification' required: true content: application/json: schema: type: object properties: - subscriptionNotification: - $ref: '#/components/schemas/SubscriptionNotification' + userDistanceNotification: + $ref: '#/components/schemas/UserDistanceNotification' + example: + userDistanceNotification: + notificationType: 'UserDistanceNotification' + timestamp: + seconds: 1673507343 + nanoSeconds": 0 + monitoredUsers: + - user: + address: 'acr:10.0.0.1' + accessPointId: '001010000000000000000000000000001' + zoneId: 'zone01' + timestamp: + seconds: 1673507343 + nanoSeconds": 0 + resourceURL: 'http://meAppServer.example.com/location/v3/queries/users' + distanceEvent: 'AllWithinDistance' + _links: + subscription: + href: 'http://meAppServer.example.com/location/v3/subscriptions/distance/subscription123' responses: '204': $ref: '#/components/responses/204' - x-swagger-router-controller: "subscriptions" + x-swagger-router-controller: 'subscriptions' /subscriptions/distance/{subscriptionId}: get: tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' + - 'location' + summary: 'Retrieve user distance subscription information using its subscription ID' + description: 'The GET method is used to retrieve information about user distance subscription subscription.' operationId: distanceSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific distance event subscription is returned.' content: application/json: schema: type: object required: - - distanceNotificationSubscription + - UserDistanceSubscription properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + callbackReference: 'http://my.callback.com/user-distance/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -553,49 +766,84 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' + - 'location' + summary: 'Updates a user distance subscription information with new data, replacing the current subscription details' + description: 'The PUT method is used to update the existing user distance subscription.' operationId: distanceSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' - example: - distanceNotificationSubscription: - clientCorrelator: '0123' - callbackReference: - callbackData: '1234' - notifyURL: 'http://my.callback.com/location-distance/some-id' - monitoredAddress: - - '10.10.0.1' - - '10.1.0.1' - checkImmediate: true - criteria: 'AllWithinDistance' - distance: 100 - frequency: 10 - referenceAddress: - - '10.100.0.1' - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/distance/subscription123" - trackingAccuracy: 10 + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/distance/subscription123" + callbackReference: 'http://my.callback.com/distance_notification/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the user + distance subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.9: + - UserDistanceSubscription. parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned.' content: application/json: schema: type: object properties: - distanceNotificationSubscription: - $ref: '#/components/schemas/DistanceNotificationSubscription' + userDistanceSubscription: + $ref: '#/components/schemas/UserDistanceSubscription' + example: + userDistanceSubscription: + subscriptionType: 'UserDistanceSubscription' + clientCorrelator: '0123' + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/distance/subscription123" + callbackReference: 'http://my.callback.com/user-distance/some-id' + referenceAddress: + - '10.10.0.1' + monitoredAddress: + - '10.100.0.1' + distance: 100 + trackingAccuracy: 10 + requestTestNotification: true + criteria: 'AllWithinDistance' + checkImmediate: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -615,9 +863,9 @@ paths: x-swagger-router-controller: 'subscriptions' delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' + - 'location' + summary: 'Cancels the existing subscription, deleting the resource representing the subscription.' + description: 'The DELETE method is used to cancel the existing subscription.' operationId: distanceSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' @@ -633,51 +881,115 @@ paths: '429': $ref: '#/components/responses/429' x-swagger-router-controller: 'subscriptions' - /subscriptions/periodic: + /subscriptions/users: get: tags: - - 'location' - summary: 'Retrieves all active subscriptions to periodic notifications' - description: 'This operation is used for retrieving all active subscriptions to periodic notifications.' - operationId: periodicSubListGET + - 'location' + summary: 'Retrieves information about the subscriptions for the requestor' + description: 'The GET method is used to request information about the subscriptions for this requestor. Upon success, the response contains entity body with the list of links to the subscriptions that are present for the requestor.' + operationId: userSubListGET + parameters: + - name: subscription_type + in: query + description: Filter subscriptions by type + schema: + type: string + enum: [event, periodic] + required: false + - name: address + in: query + description: Address of the user + schema: + type: string + required: false responses: '200': - description: 'Response to retrieve area subscriptions' + description: 'Response to retrieve user tracking subscriptions' content: application/json: schema: - type: object - required: - - notificationSubscriptionList - properties: - notificationSubscriptionList: - $ref: '#/components/schemas/NotificationSubscriptionList' + $ref: '#/components/schemas/NotificationSubscriptionList' + example: + - notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/users/subscription123' + subscriptionType: 'UserLocationEventSubscription' + - href: 'http://meAppServer.example.com/location/v2/subscriptions/users/subscription456' + subscriptionType: 'UserLocationPeriodicSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/users' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' post: tags: - - 'location' - summary: 'Creates a subscription for periodic notification' - description: 'Creates a subscription to the Location Service for a periodic notification.' - operationId: periodicSubPOST + - 'location' + summary: 'Create subscription to UE location notification.' + description: 'The POST method is used to create a new subscription to UE location notifications. Upon success, the response contains entity body describing the created subscription.' + operationId: userSubPOST requestBody: - description: Subscription to be created required: true content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + subscriptionType: 'UserLocationEventSubscription' + clientCorrelator: "0123" + callbackReference: 'http://my.callback.com/user-location-event-notification/some-id' + address: '10.100.0.1' + requestTestNotification: true + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + locationEventCriteria: + - ENTERING_AREA_EVENT + description: | + The entity body in the request contains the data type of the specific UE location event subscription that is to be created. The available data types are: + - UserLocationEventSubscription + - UserLocationPeriodicSubscription responses: '201': - description: 'Successful subscription' + description: 'Indicates successful subscription creation.' content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/distance/subscription123" + subscriptionType: 'UserLocationEventSubscription' + clientCorrelator: "0123" + callbackReference: 'http://my.callback.com/user-location-event-notification/some-id' + address: '10.100.0.1' + requestTestNotification: true + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + locationEventCriteria: + - ENTERING_AREA_EVENT '400': $ref: '#/components/responses/400' '401': @@ -690,48 +1002,74 @@ paths: $ref: '#/components/responses/406' '429': $ref: '#/components/responses/429' + callbacks: notification: - '{$request.body#/periodicNotificationSubscription.callbackReference.notifyURL}': + '{$request.body#/userLocationEventSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' description: 'Notification from Location service, content based on subscription type' - operationId: periodicNotificationPOST + operationId: userNotificationPOST requestBody: - description: 'Subscription notification' + description: 'User LocationEvent Notification' required: true content: application/json: schema: type: object properties: - subscriptionNotification: - $ref: '#/components/schemas/SubscriptionNotification' + userLocationEventNotification: + $ref: '#/components/schemas/UserLocationEventNotification' + userLocationPeriodicNotification: + $ref: '#/components/schemas/UserLocationPeriodicNotification' + example: + userLocationEventNotification: + notificationType: 'UserLocationEventNotification' + timestamp: + seconds: 1673507343 + nanoseconds: 0 + address: 'acr:10.0.0.1' + userLocationEvent: 'ENTERING_AREA_EVENT' + zoneId: 'zone01' + accessPointId: '001010000000000000000000000000001' + _links: + subscription: + href: "http://meAppServer.example.com/location/v3/subscriptions/user/subscription123" responses: '204': $ref: '#/components/responses/204' x-swagger-router-controller: 'subscriptions' - /subscriptions/periodic/{subscriptionId}: + + /subscriptions/users/{subscriptionId}: get: tags: - - 'location' + - 'location' summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: periodicSubGET + description: 'The GET method is used to retrieve information about this subscription. Upon success, the response contains entity body with the data type describing the subscription. ' + operationId: userSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific Location event subscription is returned.' content: application/json: schema: type: object required: - - periodicNotificationSubscription + - UserLocationEventSubscription properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + - userLocationEventSubscription: + subscriptionType: 'UserLocationEventSubscription' + callbackReference: 'http://my.callback.com/user-location-notification/some-id' + address: 'acr:10.0.0.1' + locationEventCriteria: + - ENTERING_AREA_EVENT '400': $ref: '#/components/responses/400' '401': @@ -747,32 +1085,61 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' + - 'location' summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: periodicSubPUT + description: 'The PUT method is used to update the existing subscription. PUT method in this case has "replace" semantics. Upon successful operation, the target resource is updated with new Data Type received within the message body of the PUT request.' + operationId: userSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/users/subscription123" + address: "10.100.0.1" + callbackReference: "http://my.callback.com/user-location-event-notification/some-id" + locationEventCriteria: + - "ENTERING_AREA_EVENT" + requestTestNotification: true + expiryDeadline: + seconds: 1973507343 + nanoSeconds: 0 + subscriptionType: "UserLocationEventSubscription" + description: | + The entity body in the request contains the data type of the specific UE location event subscription that is to be created. The available data types are: + - UserLocationEventSubscription + - UserLocationPeriodicSubscription + parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned. ' content: application/json: schema: type: object properties: - periodicNotificationSubscription: - $ref: '#/components/schemas/PeriodicNotificationSubscription' + userLocationEventSubscription: + $ref: '#/components/schemas/UserLocationEventSubscription' + userLocationPeriodicSubscription: + $ref: '#/components/schemas/UserLocationPeriodicSubscription' + example: + userLocationEventSubscription: + subscriptionType: 'UserLocationEventSubscription' + callbackReference: 'http://my.callback.com/user-location-notification/some-id' + address: 'acr:10.0.0.1' + locationEventCriteria: + - ENTERING_AREA_EVENT '400': $ref: '#/components/responses/400' '401': @@ -789,13 +1156,14 @@ paths: $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' - x-swagger-router-controller: "subscriptions" + x-swagger-router-controller: 'subscriptions' + delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: periodicSubDELETE + - 'location' + summary: 'Delete a subscription' + description: 'The DELETE method is used to cancel the existing subscription. Cancellation can be made by deleting the resource that represents existing subscription.' + operationId: userSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: @@ -810,16 +1178,31 @@ paths: '429': $ref: '#/components/responses/429' x-swagger-router-controller: 'subscriptions' - /subscriptions/userTracking: + + /subscriptions/zones: get: tags: - - 'location' - summary: 'Retrieves all active subscriptions to user tracking notifications' - description: 'This operation is used for retrieving all active subscriptions to user tracking notifications.' - operationId: userTrackingSubListGET + - 'location' + summary: 'Retrieves all active subscriptions to zone notifications' + description: 'This operation is used for retrieving all active subscriptions to zone notifications.' + operationId: zoneSubListGET + parameters: + - name: subscription_type + in: query + description: Filter subscriptions by type + schema: + type: string + enum: [event, status] + required: false + - name: zoneId + in: query + description: The identity of the zone. + schema: + type: string + required: false responses: '200': - description: "Response to retrieve user tracking subscriptions" + description: "Upon success, a response body containing the list of links to requestor's subscriptions is returned." content: application/json: schema: @@ -829,49 +1212,83 @@ paths: properties: notificationSubscriptionList: $ref: '#/components/schemas/NotificationSubscriptionList' + example: + - notificationSubscriptionList: + subscription: + - href: 'http://meAppServer.example.com/location/v2/subscriptions/zones/subscription123' + subscriptionType: 'ZoneLocationEventSubscription' + - href: 'http://meAppServer.example.com/location/v2/subscriptions/zones/subscription456' + subscriptionType: 'ZoneStatusSubscription' + resourceURL: + href: 'http://meAppServer.example.com/location/v2/subscriptions/zones' post: tags: - - 'location' - summary: 'Creates a subscription for user tracking notification' - description: 'Creates a subscription to the Location Service for user tracking change notification.' - operationId: userTrackingSubPOST + - 'location' + summary: 'Creates a subscription to zone notifications' + description: 'The POST method is used to create a new subscription to zone notifications.' + operationId: zoneSubPOST requestBody: - description: 'Subscription to be created' required: true content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' example: - userTrackingSubscription: + zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-location-event-notification/some-id' + zoneId: 'zone01' clientCorrelator: "0123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + addressList: + - 10.100.0.1 + - 10.10.0.1 + - 10.10.0.4 + - 10.100.0.2 + - 10.100.0.3 + requestTestNotification: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.6 and 6.3.7: + - ZoneLocationEventSubscription. + - ZoneStatusSubscription. responses: '201': - description: 'Successful subscription' + description: 'Indicates successful resource creation' content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' example: - userTrackingSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/userTracking/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + - zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: + notifyURL: 'http://my.callback.com/location_notifications/some-id' + zoneId: 'zone01' + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 '400': $ref: '#/components/responses/400' '401': @@ -882,15 +1299,19 @@ paths: $ref: '#/components/responses/404' '406': $ref: '#/components/responses/406' + '415': + $ref: '#/components/responses/415' + '422': + $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' callbacks: notification: - '{$request.body#/userTrackingSubscription.callbackReference.notifyURL}': + '{$request.body#/zoneLocationEventSubscription.callbackReference}': post: summary: 'Callback POST used to send a notification' description: 'Notification from Location service, content based on subscription type' - operationId: userTrackingNotificationPOST + operationId: zoneNotificationPOST requestBody: description: 'Subscription notification' required: true @@ -899,33 +1320,60 @@ paths: schema: type: object properties: - zonalPresenceNotification: - $ref: '#/components/schemas/ZonalPresenceNotification' + zoneLocationEventNotification: + $ref: '#/components/schemas/ZoneLocationEventNotification' + zoneStatusNotification: + $ref: '#/components/schemas/ZoneStatusNotification' + example: + - zoneLocationEventNotification: + notificationType: 'ZoneLocationEventNotification' + timestamp: + seconds: 1673507343 + nanoseconds: 0 + address: 'acr:10.0.0.1' + zoneId: 'zone01' + _links: + subscription: + href: "http://meAppServer.example.com/location/v3/subscriptions/zone/subscription123" responses: '204': $ref: '#/components/responses/204' x-swagger-router-controller: 'subscriptions' - /subscriptions/userTracking/{subscriptionId}: + + /subscriptions/zones/{subscriptionId}: get: tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: userTrackingSubGET + - 'location' + summary: 'Retrieve zone subscription information' + description: 'The GET method is used to retrieve information about zone subscription. ' + operationId: zoneSubGET parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Subscription information regarding subscription notifications' + description: 'Upon success, a response body containing data type describing the specific zone subscription is returned.' content: application/json: schema: type: object required: - - userTrackingSubscription + - zoneLocationEventSubscription + - zoneStatusSubscription properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' + example: + - zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-notification/some-id' + zoneId: 'zone01' + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline": + seconds: 1977836800 + nanoseconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -941,50 +1389,77 @@ paths: x-swagger-router-controller: 'subscriptions' put: tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: userTrackingSubPUT + - 'location' + summary: 'Updates a zone subscription information' + description: 'The PUT method is used to update the existing zone subscription.' + operationId: zoneSubPUT requestBody: - description: 'Subscription to be modified' required: true content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' example: - userTrackingSubscription: + zoneLocationEventSubscription: + _links: + self: + href: http://[hostIP]/sbox-xyz123/location/v3/subscriptions/users/subscription123" + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-location-event-notification/some-id' + zoneId: 'zone01' clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/userTracking/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + addressList: + - 10.100.0.1 + - 10.10.0.1 + - 10.10.0.4 + - 10.100.0.2 + - 10.100.0.3 + requestTestNotification: true + reportingCtrl: + maximumCount: 150 + maximumFrequency: 0 + minimumInterval: 5 + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline: + seconds: 1977836800 + nanoseconds: 0 + description: | + The entity body in the request contains data type of the specific UE + location event subscription that is to be created, where the data type + options are listed below and defined in clauses 6.3.6 and 6.3.7: + - ZoneLocationEventSubscription. + - ZoneStatusSubscription. + parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: '200': - description: 'Successful subscription to response to subscription notifications' + description: 'Upon success, a response body containing data type describing the updated subscription is returned.' content: application/json: schema: type: object properties: - userTrackingSubscription: - $ref: '#/components/schemas/UserTrackingSubscription' - example: - userTrackingSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/userTracking/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-user-tracking/some-id" - address: "10.100.0.1" - userEventCriteria: - - "Entering" + zoneLocationEventSubscription: + $ref: '#/components/schemas/ZoneLocationEventSubscription' + zoneStatusSubscription: + $ref: '#/components/schemas/ZoneStatusSubscription' + example: + - zoneLocationEventSubscription: + subscriptionType: 'ZoneLocationEventSubscription' + callbackReference: 'http://my.callback.com/zone-notification/some-id' + zoneId: 'zone01' + locationEventCriteria: + - ENTERING_AREA_EVENT + expiryDeadline": + seconds: 1977836800 + nanoseconds": 0 '400': $ref: '#/components/responses/400' '401': @@ -1004,434 +1479,10 @@ paths: x-swagger-router-controller: 'subscriptions' delete: tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: userTrackingSubDELETE - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '204': - $ref: '#/components/responses/204' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zonalTraffic: - get: - tags: - - 'location' - summary: 'Retrieves all active subscriptions to zonal traffic notifications' - description: 'This operation is used for retrieving all active subscriptions to zonal traffic change notifications.' - operationId: zonalTrafficSubListGET - responses: - '200': - description: 'Response to retrieve zonal traffic subscriptions' - content: - application/json: - schema: - type: object - required: - - notificationSubscriptionList - properties: - notificationSubscriptionList: - $ref: '#/components/schemas/NotificationSubscriptionList' - post: - tags: - - 'location' - summary: 'Creates a subscription for zonal traffic notification' - description: 'Creates a subscription to the Location Service for zonal traffic change notification.' - operationId: zonalTrafficSubPOST - requestBody: - description: 'Subscription to be created' - required: true - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - responses: - '201': - description: 'Successful subscription' - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zonalTraffic/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - callbacks: - notification: - '{$request.body#/zonalTrafficSubscription.callbackReference.notifyURL}': - post: - summary: 'Callback POST used to send a notification' - description: 'Notification from Location service, content based on subscription type' - operationId: zonalTrafficNotificationPOST - requestBody: - description: 'Subscription notification' - required: true - content: - application/json: - schema: - type: object - properties: - zonalPresenceNotification: - $ref: '#/components/schemas/ZonalPresenceNotification' - responses: - '204': - $ref: '#/components/responses/204' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zonalTraffic/{subscriptionId}: - get: - tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: zonalTrafficSubGET - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Subscription information regarding subscription notifications' - content: - application/json: - schema: - type: object - required: - - zonalTrafficSubscription - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: "subscriptions" - put: - tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: zonalTrafficSubPUT - requestBody: - description: 'Subscription to be modified' - required: true - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zonalTraffic/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Successful subscription to response to subscription notifications' - content: - application/json: - schema: - type: object - properties: - zonalTrafficSubscription: - $ref: '#/components/schemas/ZonalTrafficSubscription' - example: - zonalTrafficSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zonalTraffic/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-traffic/some-id" - zoneId: "zone01" - userEventCriteria: - - "Entering" - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '412': - $ref: '#/components/responses/412' - '422': - $ref: '#/components/responses/422' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - delete: - tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: zonalTrafficSubDELETE - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '204': - $ref: '#/components/responses/204' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zoneStatus: - get: - tags: - - 'location' - summary: 'Retrieves all active subscriptions to zone status notifications' - description: 'This operation is used for retrieving all active subscriptions to zone status change notifications.' - operationId: zoneStatusSubListGET - responses: - '200': - description: 'Response to retrieve zone status subscriptions' - content: - application/json: - schema: - type: object - required: - - notificationSubscriptionList - properties: - notificationSubscriptionList: - $ref: '#/components/schemas/NotificationSubscriptionList' - post: - tags: - - 'location' - summary: 'Creates a subscription for zone status notification' - description: 'Creates a subscription to the Location Service for zone status change notification.' - operationId: zoneStatusSubPOST - requestBody: - description: 'Subscription to be created' - required: true - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - responses: - '201': - description: 'Successful subscription' - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zoneStatus/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - callbacks: - notification: - '{$request.body#/zoneStatusSubscription.callbackReference.notifyURL}': - post: - summary: 'Callback POST used to send a notification' - description: 'Notification from Location service, content based on subscription type' - operationId: zoneStatusNotificationPOST - requestBody: - description: 'Subscription notification' - required: true - content: - application/json: - schema: - type: object - properties: - zoneStatusNotification: - $ref: '#/components/schemas/ZoneStatusNotification' - responses: - '204': - $ref: '#/components/responses/204' - x-swagger-router-controller: 'subscriptions' - /subscriptions/zoneStatus/{subscriptionId}: - get: - tags: - - 'location' - summary: 'Retrieve subscription information' - description: 'Get subscription information.' - operationId: zoneStatusSubGET - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Subscription information regarding subscription notifications' - content: - application/json: - schema: - type: object - required: - - zoneStatusSubscription - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: "subscriptions" - put: - tags: - - 'location' - summary: 'Updates a subscription information' - description: 'Updates a subscription.' - operationId: zoneStatusSubPUT - requestBody: - description: 'Subscription to be modified' - required: true - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zoneStatus/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - parameters: - - $ref: '#/components/parameters/Path.SubscrId' - responses: - '200': - description: 'Successful subscription to response to subscription notifications' - content: - application/json: - schema: - type: object - properties: - zoneStatusSubscription: - $ref: '#/components/schemas/ZoneStatusSubscription' - example: - zoneStatusSubscription: - clientCorrelator: "0123" - resourceURL: "http://[hostIP]/sbox-xyz123/location/v2/subscriptions/zoneStatus/subscription123" - callbackReference: - notifyURL: "http://my.callback.com/location-zonal-status/some-id" - zoneId: "zone01" - numberOfUsersZoneThreshold: 3 - operationStatus: ["Serviceable"] - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '412': - $ref: '#/components/responses/412' - '422': - $ref: '#/components/responses/422' - '429': - $ref: '#/components/responses/429' - x-swagger-router-controller: 'subscriptions' - delete: - tags: - - 'location' - summary: 'Cancel a subscription' - description: 'Method to delete a subscription.' - operationId: zoneStatusSubDELETE + - 'location' + summary: 'Cancel a zone subscription' + description: 'The DELETE method is used to cancel the existing zone subscription.' + operationId: zoneSubDELETE parameters: - $ref: '#/components/parameters/Path.SubscrId' responses: @@ -1542,6 +1593,16 @@ components: type: string format: uri x-exportParamName: SubscriptionId + Query.ZoneId: + name: zoneId + in: query + description: Identifier of zone + required: false + schema: + type: array + items: + type: string + x-exportParamName: ZoneId Path.ZoneId: name: zoneId in: path @@ -1606,15 +1667,15 @@ components: type: number format: float x-exportParamName: Longitude - Query.Requester: - name: requester - in: query - description: Entity that is requesting the information - required: false - schema: - type: string - x-exportParamName: Requester - Query.ZoneId: + # Query.Requester: + # name: requester + # in: query + # description: Entity that is requesting the information + # required: false + # schema: + # type: string + # x-exportParamName: Requester + Query.ZoneId_: name: zoneId in: query description: Identifier of zone @@ -1660,11 +1721,11 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: dateTimeStamp required: - - accessPointId - - connectionType - - operationStatus - - numberOfUsers - - resourceURL + - accessPointId + - connectionType + - operationStatus + - numberOfUsers + - resourceURL type: object AccessPointList: description: A type containing list of access points. @@ -1687,117 +1748,311 @@ components: x-etsi-mec-cardinality: 1 x-etsi-mec-origin-type: string required: - - zoneId - - resourceURL + - zoneId + - resourceURL type: object - CallbackReference: + + UserLocationPeriodicSubscription: properties: - callbackData: - description: Data the application can register with the server when subscribing to notifications, and that are passed back unchanged in each of the related notifications. These data can be used by the application in the processing of the notification, e.g. for correlation purposes. + _links: + $ref: '#/components/schemas/_links' + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI) to monitor." + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + callbackReference: + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - notificationFormat: - $ref: '#/components/schemas/NotificationFormat' - notifyURL: - description: Notify Callback URL + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the UE Location Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + periodicEventInfo: + description': Information for periodic event reporting. See note 3. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': PeriodicEventInfo + $ref: '#/components/schemas/PeriodicEventInfo' + requestTestNotification: + description: Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009 [4], clause 6.12a. + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserLocationPeriodicSubscription". type: string x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: String + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' required: - - notifyURL + - subscriptionType + - address + - periodicEventInfo type: object - CircleNotificationSubscription: - description: A type containing data for notifications, when the area is defined as a circle. + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it.\nNOTE 3:\tAs specified in [17], clause 6.1.6.2.24." + x-etsi-ref: 6.3.5 + + UserLocationPeriodicNotification: properties: + _links: + $ref: '#/components/schemas/_links' + accessPointId: + description: "The identity of the access point that the user is currently within. \nSee note 2." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String address: - description: Address of terminals to monitor (e.g. "sip" URI, "tel" URI, "acr" URI) - items: - type: string - type: array - x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: anyURI - callbackReference: - $ref: '#/components/schemas/CallbackReference' - checkImmediate: - description: Check location immediately after establishing notification. - type: boolean - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: boolean - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - count: - description: Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0. - type: integer + x-etsi-mec-origin-type: Uri + civicInfo: + description': Contextual information of a user location (e.g. aisle, floor, room number, etc.). See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': CivicAddress + $ref: '#/components/schemas/CivicAddress' + isFinalNotification: + description: Shall be set to true if it is a final notification. + type: boolean x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - duration: - description: "Period of time (in seconds) notifications are provided for. If set to \u201C0\u201D (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications." - type: integer + x-etsi-mec-origin-type: Boolean + locationInfo: + description': The geographical coordinates where the user is. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': LocationInfo + $ref: '#/components/schemas/LocationInfo' + notificationType: + description: Shall be set to "UserLocationPeriodicNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + relativeLocationInfo: + description': The relative location in a reference system. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': RelativeLocationInfo + $ref: '#/components/schemas/RelativeLocationInfo' + result: + description': The result of Localization. See note 3. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': NotificationResult + $ref: '#/components/schemas/NotificationResult' + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + zoneId: + description: "The identity of the zone that the user is currently within. \nSee note 2." + type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - enteringLeavingCriteria: - $ref: '#/components/schemas/EnteringLeavingCriteria' - frequency: - description: Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications). - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - latitude: - description: Latitude of center point. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - link: - description: Link to other resources that are in relationship with the resource. + x-etsi-mec-origin-type: String + required: + - notificationType + - result + - _links + type: object + x-etsi-notes: "NOTE 1:\tAs specified in [17], clause 6.1.6.2.14.\nNOTE 2:\tAs specified in [5], clause 5.2.2.7.\nNOTE 3:\tIf the result is SUCCESS, at least one of locationInfo, civicInfo and relativeLocationInfo shall be present." + x-etsi-ref: 6.4.5 + + + UserLocationEventNotification: + properties: + accessPointId: + description: "The identity of the access point.\nFor the events of \"ENTERING_AREA_EVENT\", it indicates the access point that the user is currently within. \nFor the event of \"LEAVING_AREA_EVENT\", it indicates the access point that the user used to be within.\nSee note 2." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + civicInfo: + description': Contextual information of a user location (e.g. aisle, floor, room number, etc.). See note 1. See note 3. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': CivicAddress + $ref: '#/components/schemas/CivicAddress' + locationInfo: + description': The geographical coordinates where the user is. See note 3. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': LocationInfo + $ref: '#/components/schemas/LocationInfo' + notificationType: + description: Shall be set to "UserLocationEventNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + relativeLocationInfo: + description': The relative location in a reference system. See note 3. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': RelativeLocationInfo + $ref: '#/components/schemas/RelativeLocationInfo' + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + userLocationEvent: + description': The specific event triggering this notification, e.g. "ENTERING_AREA_EVENT", "LEAVING_AREA_EVENT".. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': LocationEventType + $ref: '#/components/schemas/LocationEventType' + zoneId: + description: "The identity of the zone. \nFor the events of \"ENTERING_AREA_EVENT\", it is the zone that the user is currently within. \nFor the event of \"LEAVING_AREA_EVENT\", it is the zone that the user used to be within.\nSee note 2." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + required: + - notificationType + - userLocationEvent + - _links + type: object + x-etsi-notes: "NOTE 1:\tAs specified in [17], clause 6.1.6.2.14.\nNOTE 2:\tAs specified in [5], clause 5.2.2.7.\nNOTE 3:\tAt least one of these attributes shall be present only when reportingLocationReq is set to TRUE in the UserLocationEventSubscription." + x-etsi-ref: 6.4.4 + + ZoneLocationEventSubscription: + properties: + _links: + $ref: '#/components/schemas/_links' + addressList: + description: List of the users to be monitored. If not present, all the users need to be monitored. items: - $ref: '#/components/schemas/Link' + type: string + minItems: 0 type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - longitude: - description: Longitude of center point. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - radius: - description: Radius circle around center point in meters. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - requester: - description: Identifies the entity that is requesting the information (e.g. "sip" URI, "tel" URI, "acr" URI) + x-etsi-mec-origin-type: Array(Uri) + callbackReference: + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - resourceURL: - description: Self referring URL + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - trackingAccuracy: - description: Number of meters of acceptable error in tracking distance. - format: float - type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the Zone Location Event Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + locationEventCriteria: + description: 'List of user event values to generate notifications for. ' + items: + $ref: '#/components/schemas/LocationEventType' + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Array(LocationEventType) + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "ZoneLocationEventSubscription". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' + zoneId: + description: Identifier of zone (e.g. zone001) to monitor. + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - subscriptionType + - zoneId + type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it." + x-etsi-ref: 6.3.6 + + UserLocationEventSubscription: + properties: + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI) to monitor." + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + callbackReference: + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the UE Location Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + locationEventCriteria: + description: 'List of user event values to generate notifications for (these apply to address specified). ' + items: + $ref: '#/components/schemas/LocationEventType' + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Array(LocationEventType) + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserLocationEventSubscription". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + userEventPara: + description': Requirements for user event reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': UserEventPara + $ref: '#/components/schemas/UserEventPara' + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' required: - - callbackReference + - subscriptionType - address - - latitude - - longitude - - radius - - trackingAccuracy - - enteringLeavingCriteria - - checkImmediate - - frequency type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it." + x-etsi-ref: 6.3.4 + ConnectionType: description: The connection type for the access point enum: @@ -1819,109 +2074,325 @@ components: - AllBeyondDistance - AnyBeyondDistance type: string - DistanceNotificationSubscription: - description: A type containing data for distance subscription, with reference to other devices. + _links: + description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. properties: + self: + $ref: '#/components/schemas/LinkType' + required: + - self + type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + LinkType: + properties: + href: + description: URI referring to a resource. + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + required: + - href + type: object + x-etsi-ref: 6.7.2 + UserDistanceNotification: + properties: + _links: + $ref: '#/components/schemas/_links' + distanceEvent: + description: Indicates the distance event triggering the notification. See note. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': DistanceCriteria + $ref: '#/components/schemas/DistanceCriteria' + monitoredUsers: + description: Indicates the location information related to monitored users. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': UserList + $ref: '#/components/schemas/UserList' + notificationType: + description: Shall be set to "UserDistanceNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + timeStamp: + description: Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + required: + - notificationType + - monitoredUsers + - distanceEvent + - _links + type: object + x-etsi-notes: "NOTE:\tAs specified in [6], clause 5.2.3.2." + x-etsi-ref: 6.4.9 + + UserDistanceSubscription: + properties: + _links: + $ref: '#/components/schemas/_links' callbackReference: - $ref: '#/components/schemas/CallbackReference' + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri checkImmediate: description: Check location immediately after establishing notification. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': Bool type: boolean - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: boolean clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - count: - description: Maximum number of notifications per individual address. For no maximum, either do not include this element or specify a value of zero. Default value is 0. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int + x-etsi-mec-origin-type: String criteria: + description': "Indicates whether the notification should occur when the geographical relationship between monitored and referenced users\u2019 changes. See note 3." + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': DistanceCriteria $ref: '#/components/schemas/DistanceCriteria' distance: - description: Distance between devices that shall be monitored. + description: Distance between users that shall be monitored. The unit is meter. format: float type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float - duration: - description: "Period of time (in seconds) notifications are provided for. If set to \u201C0\u201D (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications." - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - frequency: - description: Maximum frequency (in seconds) of notifications per subscription (can also be considered minimum time between notifications). - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - link: - description: Link to other resources that are in relationship with the resource. - items: - $ref: '#/components/schemas/Link' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + expiryDeadline: + description': The expiration time of the subscription determined by the UE Distance Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' monitoredAddress: - description: Contains addresses of devices to monitor (e.g., 'sip' URI, 'tel' URI, 'acr' URI) + description: "Contains addresses of users to monitor (e.g., \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI). Reference to a group could be provided here if supported by implementation.\nIf the ReferenceAddress is specified, then the distance between each monitored user and reference user(s) will be monitored.\nIf the ReferenceAddress is not present, then the distance between each pair of the monitored users will be monitored. Note that in that case there shall be at least two addresses specified here." items: type: string + minItems: 1 type: array x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: Array(Uri) referenceAddress: - description: Indicates address of each device that will be used as reference devices from which the distances towards monitored devices indicated in the Addresses will be monitored (e.g., 'sip' URI, 'tel' URI, 'acr' URI) + description: "If specified, indicates address of each user that will be used as reference users from which the distances towards monitored users indicated in the Addresses will be monitored (e.g., \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI). Reference to a group could be provided here if supported by implementation." items: type: string + minItems: 0 type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: anyURI - requester: - description: Identifies the entity that is requesting the information (e.g. "sip" URI, "tel" URI, "acr" URI) - type: string + x-etsi-mec-origin-type: Array(Uri) + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - resourceURL: - description: Self referring URL + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserDistanceSubscription". type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String trackingAccuracy: description: Number of meters of acceptable error in tracking distance. format: float type: number - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: float + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' required: - - callbackReference + - subscriptionType - monitoredAddress - distance - trackingAccuracy - criteria - checkImmediate - - frequency type: object - EnteringLeavingCriteria: - enum: - - Entering - - Leaving - type: string - Link: - description: Link to other resources + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it.\nNOTE 3:\tAs specified in [6], clause 5.2.3.2." + x-etsi-ref: 6.3.9 + CivicAddress: + description: Indicates a Civic address + type: object + required: + - country properties: - href: - description: URI - format: anyURI + country: + description: The two-letter ISO 3166 country code in capital ASCII letters, e.g., DE or US type: string - rel: - description: Describes the relationship between the URI and the resource. + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: String + A1: + description: National subdivisions (state, canton, region, province, prefecture) type: string - required: - - rel - - href - type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A2: + description: County, parish, gun (JP), district (IN) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A3: + description: City, township, shi (JP) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A4: + description: City division, borough, city district, ward, chou (JP) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A5: + description: Neighbourhood, block + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + A6: + description: Group of streets below the neighbourhood level + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PRD: + description: Leading street direction + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + POD: + description: Trailing street suffix + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + STS: + description: Street suffix or type + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + HNO: + description: House number + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + HNS: + description: House number suffix + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + LMK: + description: Landmark or vanity address + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + LOC: + description: Additional location information + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + NAM: + description: Name (residence and office occupant) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PC: + description: Postal/zip code + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + BLD: + description: Building (structure) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + UNIT: + description: Unit (apartment, suite) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + FLR: + description: Floor + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + ROOM: + description: Room + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PLC: + description: Place-type + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PCN: + description: Postal community name + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + POBOX: + description: Post office box (P.O. box) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + ADDCODE: + description: Additional code + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + SEAT: + description: Seat (desk, cubicle, workstation) + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RD: + description: Primary road or street + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RDSEC: + description: Road clause + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RDBR: + description: Road branch + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + RDSUBBR: + description: Road sub-branch + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + PRM: + description: Road pre-modifier + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + POM: + description: Road post-modifier + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + usageRules: + description: When present, this IE shall carry the value of "usagerules" Element of the PIDL-LO XML document, with UTF-8 encoding. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + method: + description: When present, this IE shall contain the method token, carried by the "method" Element of the PIDLLO XML document. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + providedBy: + description: When present, this IE shall carry the value of "provided-by" Element of the PIDL-LO XML document, with UTF-8 encoding. + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String LocationInfo: properties: accuracy: @@ -2034,145 +2505,239 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: UnsignedInt required: - - velocityType - - bearing - - horizontalSpeed + - velocityType + - bearing + - horizontalSpeed type: object x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) + required: + - latitude + - longitude + - shape + type: object + x-etsi-ref: 6.5.3 + + Point: + properties: + latitude: + description: "Location latitude, expressed in the range -90\xB0 to +90\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + longitude: + description: "Location longitude, expressed in the range -180\xB0 to +180\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float required: - latitude - longitude - - shape type: object - x-etsi-ref: 6.5.3 - NotificationFormat: - enum: - - XML - - JSON - type: string - NotificationSubscriptionList: + x-etsi-ref: 6.5.8 + + AreaInfo: properties: - circleNotificationSubscription: - description: Collection of CircleNotificationSubscription elements, see note 2. + points: + description: Shall include one point if the shape is CIRCLE. Shall include 3-15 points if the shape is POLYGON. items: - $ref: '#/components/schemas/CircleNotificationSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: CircleNotificationSubscription - distanceNotificationSubscription: - description: Collection of DistanceNotificationSubscription elements, see note 2. - items: - $ref: '#/components/schemas/DistanceNotificationSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: DistanceNotificationSubscription - periodicNotificationSubscription: - description: Collection of PeriodicNotificationSubscription elements, see note 2. - items: - $ref: '#/components/schemas/PeriodicNotificationSubscription' - minItems: 0 + $ref: '#/components/schemas/Point' + minItems: 1 type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: PeriodicNotificationSubscription - resourceURL: - description: Self-referring URL, see note 1. + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Array(Point) + radius: + description: Shall be present if the shape is CIRCLE. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + shape: + description: 'The shape of the area monitored: + 1 = CIRCLE. + 2 = POLYGON' + enum: + - 1 + - 2 + type: integer + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Enum(inlined) + required: + - shape + - points + type: object + x-etsi-ref: 6.5.7 + UserAreaNotification: + properties: + _links: + $ref: '#/components/schemas/_links' + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." format: uri type: string x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: AnyURI - userTrackingSubscription: - description: Collection of UserTrackingSubscription elements, see note 1. - items: - $ref: '#/components/schemas/UserTrackingSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: UserTrackingSubscription - zonalTrafficSubscription: - description: Collection of ZonalTrafficSubscription elements, see note 1. - items: - $ref: '#/components/schemas/ZonalTrafficSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: ZonalTrafficSubscription - zoneStatusSubscription: - description: Collection of ZoneStatusSubscription elements, see note 1. - items: - $ref: '#/components/schemas/ZoneStatusSubscription' - minItems: 0 - type: array - x-etsi-mec-cardinality: 0.. N - x-etsi-mec-origin-type: ZoneStatusSubscription + x-etsi-mec-origin-type: Uri + civicInfo: + description': Contextual information of a user location (e.g. aisle, floor, room number, etc.). See note 1. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': CivicAddress + $ref: '#/components/schemas/CivicAddress' + locationInfo: + description': The geographical coordinates where the user is. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': LocationInfo + $ref: '#/components/schemas/LocationInfo' + notificationType: + description: Shall be set to "UserAreaNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + relativeLocationInfo: + description': The relative location in a reference system. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': RelativeLocationInfo + $ref: '#/components/schemas/RelativeLocationInfo' + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + userLocationEvent: + description': The specific event triggering this notification, e.g. "ENTERING_AREA_EVENT", "LEAVING_AREA_EVENT". + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': LocationEventType + $ref: '#/components/schemas/LocationEventType' required: - - resourceURL + - notificationType + - address + - userLocationEvent + - _links type: object - x-etsi-notes: "NOTE 1:\tAs specified in [5], clause 5.2.2.8.\nNOTE 2: \tAs specified in [6], clause 5.2.2.7." - x-etsi-ref: 6.3.3 - OperationStatus: - enum: - - Serviceable - - Unserviceable - - Unknown - type: string - PeriodicNotificationSubscription: - description: A type containing data for periodic subscription. + x-etsi-notes: "NOTE 1:\tAs specified in [17], clause 6.1.6.2.14.\nNOTE 2:\tAt least one of these attributes shall be present only when reportingLocationReq is set to TRUE in the UserAreaSubscription." + x-etsi-ref: 6.4.8 + + UserAreaSubscription: properties: - address: - description: Address of terminals to monitor (e.g. "sip" URI, "tel" URI, "acr" URI) + _links: + $ref: '#/components/schemas/_links' + addressList: + description: 'List of the users to be monitored. ' items: type: string + minItems: 1 type: array x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: Array(Uri) + areaDefine: + description': The parameters describing the area to subscribe. + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': AreaInfo + $ref: '#/components/schemas/AreaInfo' callbackReference: - $ref: '#/components/schemas/CallbackReference' - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - duration: - description: "Period of time (in seconds) notifications are provided for. If set to \u201C0\u201D (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications." - type: integer + x-etsi-mec-origin-type: Uri + clientCorrelator: + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. + type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: int - frequency: - description: Maximum frequency (in seconds) of notifications (can also be considered minimum time between notifications) per subscription. - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - link: - description: Link to other resources that are in relationship with the resource. + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the UE Area Subscribe Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + locationEventCriteria: + description: 'List of user event values to generate notifications for (these apply to address specified). ' items: - $ref: '#/components/schemas/Link' + $ref: '#/components/schemas/LocationEventType' + minItems: 0 type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - requestedAccuracy: - description: Accuracy of the provided distance in meters. - type: integer - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: int - requester: - description: Identifies the entity that is requesting the information (e.g. "sip" URI, "tel" URI, "acr" URI) - type: string + x-etsi-mec-origin-type: Array(LocationEventType) + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + reportingLocationReq: + description: This IE shall be set to true if a location estimate is required for each event report. + type: boolean x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: boolean + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "UserAreaSubscription". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + trackingAccuracy: + description: Number of meters of acceptable error. + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' + required: + - subscriptionType + - areaDefine + - addressList + - trackingAccuracy + type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it." + x-etsi-ref: 6.3.8 + + NotificationSubscriptionList: + description: This type contains a list of subscriptions. + properties: resourceURL: - description: Self referring URL + $ref: '#/components/schemas/LinkType' + subscription: + items: + $ref: '#/components/schemas/Subscription' + type: array + required: + - resourceURL + type: object + x-etsi-ref: 6.3.3 + Subscription: + description: '' + minItems: 0 + properties: + href: + description: The URI referring to the subscription. + format: uri type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + subscriptionType: + description: "Type of the subscription. The string shall be set according to the \"subscriptionType\" attribute of the associated subscription data type defined in clauses\_6.3.4, 6.3.5, 6.3.6, 6.3.7 6.3.8 and 6.3.9:\n\"UserLocationEventSubscription\"\n\"UserLocationPeriodicSubscription\"\n\"ZoneLocationEventSubscription\"\n\"ZoneStatusSubscription\"\n\"UserAreaSubscription\"\n\"UserDistanceSubscription\"" + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String required: - - callbackReference - - address - - requestedAccuracy - - frequency + - href + - subscriptionType type: object + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Structure (inlined) + OperationStatus: + enum: + - Serviceable + - Unserviceable + - Unknown + type: string ProblemDetails: properties: detail: @@ -2226,51 +2791,18 @@ components: type: string x-etsi-mec-cardinality: 1 x-etsi-mec-origin-type: string - variables: - description: Variables to substitute into text string - items: - type: string - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: string - required: - - messageId - - text - type: object - SubscriptionNotification: - description: A type containing the notification subscription. - properties: - callbackData: - description: CallbackData if passed by the application in the receiptRequest element during the associated subscription operation - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - distanceCriteria: - $ref: '#/components/schemas/DistanceCriteria' - enteringLeavingCriteria: - $ref: '#/components/schemas/EnteringLeavingCriteria' - isFinalNotification: - description: Set to true if it is a final notification about location change. - type: boolean - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: boolean - link: - description: Link to other resources that are in relationship with the resource. + variables: + description: Variables to substitute into text string items: - $ref: '#/components/schemas/Link' + type: string type: array x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - terminalLocation: - description: Collection of the terminal locations. - items: - $ref: '#/components/schemas/TerminalLocation' - type: array - x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: TerminalLocation + x-etsi-mec-origin-type: string required: - - terminalLocation + - messageId + - text type: object + TerminalDistance: description: A type containing information about the distance from a terminal to a location or between two terminals, in addition the accuracy and a timestamp of the information are provided. properties: @@ -2307,6 +2839,190 @@ components: - address - locationRetrievalStatus type: object + + UserEventPara: + properties: + accessPointList: + description: One or more access points forming a monitoring area that could be any shape. See note 1. + items: + type: string + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Array(String) + occurrenceInfo: + description': One time only report indication. See note 2. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': OccurrenceInfo + $ref: '#/components/schemas/OccurrenceInfo' + reportingLocationReq: + description: This IE shall be set to true if a location estimate is required for each event report. + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: boolean + zoneId: + description: "Identifier of zone (e.g. zone001) to monitor. See note\_1." + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + type: object + x-etsi-notes: "NOTE 1:\tOnly one of accessPointList and zoneId may be present.\nNOTE 2:\tAs specified in [17], clause 6.1.6.3.16." + x-etsi-ref: 6.5.5 + OccurrenceInfo: + description: The enumeration OccurrenceInfo indicates whether event reporting is one time. + enum: + - ONE_TIME_EVENT + - MULTIPLE_TIME_EVENT + type: string + + WebsockNotifConfig: + properties: + requestWebsocketUri: + description: Set to true by the service consumer to indicate that Websocket delivery is requested. + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + websocketUri: + description: Set by location server to indicate to the service consumer the Websocket URI to be used for delivering notifications. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + type: object + x-etsi-ref: 6.5.4 + + PeriodicEventInfo: + description: "NOTE: reportingAmount x reportingInterval shall not exceed 8639999 (99 days, 23 hours, 59 minutes and 59 seconds) + for compatibility with OMA MLP and RLP." + type: object + required: + - reportingAmount + - reportingInterval + properties: + reportingAmount: + description: Number of event reports + type: number + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: ReportingAmount + reportingInterval: + description: Interval of event reports + type: number + x-etsi-mec-cardinality: 1 + x-etsi-mec-origin-type: reportingInterval + + RelativeLocationInfo: + properties: + X: + description: 'Indicates the value (in the unit of meters) on x-axis of the relative location in the Cartesian system. + Positive value represents easting from origin.' + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + Y: + description: 'Indicates the value (in the unit of meters) on y-axis of the relative location in the Cartesian system. + Positive value represents northing from origin.' + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + Z: + description: 'Indicates the value (in the unit of meters) on z-axis of the relative location in the Cartesian system for a 3DPoint. + Positive value represents height above origin.' + format: float + type: number + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Float + mapInfo: + $ref: '#/components/schemas/MapInfo' + required: + - mapInfo + - 'X' + - 'Y' + type: object + x-etsi-ref: 6.2.3 + + + MapInfo: + properties: + ancillaryMapInfo: + description: Ancillary map information may be used to convert coordinates between different coordinate systems. + type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Not_specified + mapId: + description: 'Indicates the ID of the map. ' + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + origin: + $ref: '#/components/schemas/Origin' + required: + - mapId + type: object + x-etsi-ref: 6.2.4 + + Origin: + description: Indicates the location of the map origin in the local Cartesian coordinate system. + properties: + altitude: + description: Location altitude relative to the WGS84 ellipsoid surface. + format: float + type: number + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Float + latitude: + description: "Location latitude, expressed in the range -90\xB0 to +90\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + longitude: + description: "Location longitude, expressed in the range -180\xB0 to +180\xB0." + format: float + type: number + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Float + required: + - latitude + - longitude + type: object + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure(inlined) + NotificationResult: + description: This enumeration represents the result of a localization associated with a notification + enum: + - SUCCESS + - ABNORMAL + type: string + + ReportingCtrl: + properties: + maximumCount: + description: Maximum number of notifications. For no maximum, either do not include this element or specify a value of zero. Default value is 0. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + maximumFrequency: + description: Maximum frequency (in seconds) of notifications per subscription. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + minimumInterval: + description: Minimum interval between reports in case frequently reporting. Unit is second. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + type: object + x-etsi-ref: 6.5.6 + + LocationEventType: + description: This type represents specified event types for UE location report. + enum: + - ENTERING_AREA_EVENT + - LEAVING_AREA_EVENT + type: string + TimeStamp: properties: nanoSeconds: @@ -2328,12 +3044,6 @@ components: - nanoSeconds type: object x-etsi-ref: 6.5.2 - UserEventType: - enum: - - Entering - - Leaving - - Transferring - type: string UserInfo: properties: accessPointId: @@ -2359,6 +3069,8 @@ components: x-etsi-mec-origin-type: String locationInfo: $ref: '#/components/schemas/LocationInfo' + civicInfo: + $ref: '#/components/schemas/CivicAddress' resourceURL: description: Self-referring URL, see note 1. type: string @@ -2398,131 +3110,6 @@ components: required: - resourceURL type: object - UserTrackingSubscription: - description: A type containing user tracking subscription. - properties: - address: - description: Address of user (e.g. "sip" URI, "tel" URI, "acr" URI) to monitor - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: anyURI - callbackReference: - $ref: '#/components/schemas/CallbackReference' - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - resourceURL: - description: Self referring URL - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - userEventCriteria: - description: List of user event values to generate notifications for (these apply to address specified). If this element is missing, a notification is requested to be generated for any change in user event. - items: - $ref: '#/components/schemas/UserEventType' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: UserEventType - required: - - callbackReference - - address - type: object - ZonalPresenceNotification: - description: A type containing zonal presence notification - properties: - address: - description: Address of user (e.g. "sip" URI, "tel" URI, "acr" URI) to monitor - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: anyURI - callbackData: - description: CallBackData if passed by the application during the associated ZonalTrafficSubscription and UserTrackingSubscription operation. See [REST_NetAPI_Common]. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - currentAccessPointId: - description: Identifier of access point. - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string - interestRealm: - description: Interest realm of access point (e.g. geographical area, a type of industry etc.). - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - link: - description: Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification - items: - $ref: '#/components/schemas/Link' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - previousAccessPointId: - description: Identifier of access point. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - timestamp: - $ref: '#/components/schemas/TimeStamp' - userEventType: - $ref: '#/components/schemas/UserEventType' - zoneId: - description: Identifier of zone - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string - required: - - zoneId - - address - - userEventType - - currentAccessPointId - - timestamp - type: object - ZonalTrafficSubscription: - description: A type containing zonal traffic subscription - properties: - callbackReference: - $ref: '#/components/schemas/CallbackReference' - clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - duration: - description: Period (in seconds) of time notifications are provided for. If set to "0" (zero), a default duration time, which is specified by the service policy, will be used. If the parameter is omitted, the notifications will continue until the maximum duration time, which is specified by the service policy, unless the notifications are stopped by deletion of subscription for notifications. This element MAY be given by the client during resource creation in order to signal the desired lifetime of the subscription. The server MUST return in this element the period of time for which the subscription will still be valid. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt - interestRealm: - description: Interest realm of access point (e.g. geographical area, a type of industry etc.). - items: - type: string - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: string - resourceURL: - description: Self referring URL - type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI - userEventCriteria: - description: List of user event values to generate notifications for (these apply to zone identifier or all interest realms within zone identifier specified). If this element is missing, a notification is requested to be generated for any change in user event. - items: - $ref: '#/components/schemas/UserEventType' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: UserEventType - zoneId: - description: Identifier of zone - type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string - required: - - callbackReference - - zoneId - type: object ZoneInfo: description: A type containing zone information. properties: @@ -2574,87 +3161,172 @@ components: required: - resourceURL type: object + ZoneLocationEventNotification: + properties: + _links: + $ref: '#/components/schemas/_links' + address: + description: "Address of user (e.g. \u2018sip\u2019 URI, \u2018tel\u2019 URI, \u2018acr\u2019 URI)." + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Uri + notificationType: + description: Shall be set to "ZoneLocationEventNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + userLocationEvent: + description': The specific event triggering this notification, e.g. "ENTERING_AREA_EVENT","LEAVING_AREA_EVENT". + x-etsi-mec-cardinality': '1' + x-etsi-mec-origin-type': LocationEventType + $ref: '#/components/schemas/LocationEventType' + zoneId: + description: 'The identity of the zone. ' + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - notificationType + - address + - userLocationEvent + - zoneId + - _links + type: object + x-etsi-ref: 6.4.6 + ZoneStatusNotification: - description: A type containing zone status notification. properties: + _links: + $ref: '#/components/schemas/_links' accessPointId: - description: Identifier of an access point. + description: Identifier of an access point (e.g. ap01). Shall be included when userNumEvent related with access point or operationStatus is included. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - callbackData: - description: CallBackData if passed by the application during the associated ZoneStatusSubscription operation. See [REST_NetAPI_Common]. + x-etsi-mec-origin-type: String + notificationType: + description: Shall be set to "ZoneStatusNotification". type: string - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - link: - description: Link to other resources that are in relationship with this notification. The server SHOULD include a link to the related subscription. No other links are required or suggested by this specification - items: - $ref: '#/components/schemas/Link' - type: array - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Link - numberOfUsersInAP: - description: This element shall be present when ZoneStatusSubscription includes numberOfUsersAPThreshold element and the number of users in an access point exceeds the threshold defined in the subscription. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt - numberOfUsersInZone: - description: This element shall be present when ZoneStatusSubscription includes numberOfUsersZoneThreshold element and the number of users in a zone exceeds the threshold defined in this subscription. - type: integer - x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String operationStatus: + description': Shall be present when ZoneStatusSubscription includes operationStatus and the operation status value of an access point meets Serviceable or Unserviceable or Unknown defined in the subscription. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': OperationStatus $ref: '#/components/schemas/OperationStatus' - timestamp: + timeStamp: + description': Time stamp. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' + userNumEvent: + description: 'Shall be present when ZoneStatusSubscription includes upperNumberOfUsersZoneThreshold, lowerNumberOfUsersZoneThreshold, upperNumberOfUsersAPThreshold or lowerNumberOfUsersAPThreshold, and the number of users in a zone or an access point crosses the threshold defined in the subscription: + 1 = OVER_ZONE_UPPER_THD. + 2 = UNDER_ZONE_LOWER_THD. + 3 = OVER_AP_UPPER_THD. + 4 = UNDER_AP_LOWER_THD.' + enum: + - 1 + - 2 + - 3 + - 4 + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Enum(inlined) zoneId: - description: Identifier of zone + description: 'The identity of the zone. ' type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String required: + - notificationType - zoneId - - timestamp + - _links type: object + x-etsi-notes: "NOTE:\tAs specified in [5], clause 5.2.3.2." + x-etsi-ref: 6.4.7 + ZoneStatusSubscription: - description: A type containing zone status subscription. properties: + _links: + $ref: '#/components/schemas/_links' callbackReference: - $ref: '#/components/schemas/CallbackReference' + description: URI exposed by the client on which to receive notifications via HTTP. See note 1. + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri clientCorrelator: - description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. + description: A correlator that the client can use to tag this particular resource representation during a request to create a resource on the server. See note 2. type: string x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: string - numberOfUsersAPThreshold: - description: Threshold number of users in an access point which if crossed shall cause a notification + x-etsi-mec-origin-type: String + expiryDeadline: + description': The expiration time of the subscription determined by the Zone Status Service. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + lowerNumberOfUsersAPThreshold: + description: Threshold number of users in an access point which if crossed downward shall cause a notification type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt - numberOfUsersZoneThreshold: - description: Threshold number of users in a zone which if crossed shall cause a notification + x-etsi-mec-origin-type: UnsignedInt + lowerNumberOfUsersZoneThreshold: + description: Threshold number of users in a zone which if crossed downward shall cause a notification type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: unsignedInt + x-etsi-mec-origin-type: UnsignedInt operationStatus: - description: List of operation status values to generate notifications for (these apply to all access points within a zone). + description: List of operation status values to generate notifications for (these apply to all access points within a zone). See note 3. items: $ref: '#/components/schemas/OperationStatus' + minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: OperationStatus - resourceURL: - description: Self referring URL + reportingCtrl: + description': Provides parameters that ctrl the reporting. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': ReportingCtrl + $ref: '#/components/schemas/ReportingCtrl' + requestTestNotification: + description: "Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS\_MEC 009 [4], clause 6.12a." + type: boolean + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + description: Shall be set to "ZoneStatusSubscription". type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + upperNumberOfUsersAPThreshold: + description: Threshold number of users in an access point which if crossed upward shall cause a notification. + type: integer x-etsi-mec-cardinality: 0..1 - x-etsi-mec-origin-type: anyURI + x-etsi-mec-origin-type: UnsignedInt + upperNumberOfUsersZoneThreshold: + description: Threshold number of users in a zone which if crossed upward shall cause a notification. + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: UnsignedInt + websockNotifConfig: + description': Provides details to negotiate and signal the use of a Websocket connection between the location server and the service consumer for notifications. See note 1. + x-etsi-mec-cardinality': 0..1 + x-etsi-mec-origin-type': WebsockNotifConfig + $ref: '#/components/schemas/WebsockNotifConfig' zoneId: - description: Identifier of zone + description: Identifier of zone (e.g. zone001) to monitor. type: string - x-etsi-mec-cardinality: 1 - x-etsi-mec-origin-type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String required: - - callbackReference + - subscriptionType - zoneId type: object + x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to location server to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009 [4], clause 6.12a.\nNOTE 2:\tThis allows the client to recover from communication failures during resource creation and therefore avoids duplicate subscription creation in such situations. In case the element is present, the server shall not alter its value, and shall provide it as part of the representation of this resource. In case the element is not present, the server shall not generate it.\nNOTE 3:\tAs specified in [5], clause 5.2.3.2." + x-etsi-ref: 6.3.7 diff --git a/config/api/service-mgmt.yaml b/config/api/service-mgmt.yaml index dcd5f19f3fa955cdbb8f7c960e4691f44c6a737a..d6be98274583faca23c2f6a06f04f972ac677133 100644 --- a/config/api/service-mgmt.yaml +++ b/config/api/service-mgmt.yaml @@ -1,685 +1,1828 @@ openapi: 3.0.0 -servers: - - url: 'https://localhost/sandboxname/mec_service_mgmt/v1' info: title: MEC Service Management API - version: 2.2.1 - description: - 'The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI. -

**Note**
MEC Sandbox supports all Service Management API endpoints; complete details on Service Management API can be found on [ETSI Forge](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf).' - license: - name: BSD-3-Clause - url: 'https://forge.etsi.org/legal-matters' + description: The ETSI MEC ISG MEC011 MEC Service Management API described using + OpenAPI contact: email: cti_support@etsi.org + license: + name: BSD-3-Clause + url: https://forge.etsi.org/legal-matters + version: 3.1.1 externalDocs: - description: 'ETSI GS MEC011 Application Enablement API, V2.2.1' - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf + description: "ETSI GS MEC011 Application Enablement API, V3.1.1" + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf +servers: +- url: http://localhost/sandboxname/mec_service_mgmt/v1 +- url: https://localhost/sandboxname/mec_service_mgmt/v1 tags: - - name: mec_service_mgmt +- name: appSubscriptions +- name: appServices +- name: services +- name: transports +- name: callbacks +- name: individualMECservice paths: - '/services': + /applications/{appInstanceId}/subscriptions: get: - description: >- - This method retrieves information about a list of mecService resources. - This method is typically used in "service availability query" procedure - operationId: Services_GET tags: - - mec_service_mgmt + - appSubscriptions + summary: Get subscriptions + description: "The GET method may be used to request information about all subscriptions\ + \ for this requestor. Upon success, the response contains entity body with\ + \ all the subscriptions for the requestor." + operationId: ApplicationsSubscriptions_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + responses: + "200": + description: "Upon success, a response message content containing the list\ + \ of links to the requested subscriptions is returned." + content: + application/json: + schema: + $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList' + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + post: + tags: + - appSubscriptions + summary: Create subscription + description: "The POST method may be used to create a new subscription. One\ + \ example use case is to create a new subscription to the MEC service availability\ + \ notifications. Upon success, the response contains entity body describing\ + \ the created subscription." + operationId: ApplicationsSubscriptions_POST parameters: - - $ref: '#/components/parameters/Query.SerInstanceId' - - $ref: '#/components/parameters/Query.SerName' - - $ref: '#/components/parameters/Query.SerCategoryId' - - $ref: '#/components/parameters/Query.ConsumedLocalOnly' - - $ref: '#/components/parameters/Query.IsLocal' - - $ref: '#/components/parameters/Query.LocalityType' + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + requestBody: + description: Message content in the request contains a subscription to the + MEC application termination notifications that is to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + required: true responses: - '200': - $ref: '#/components/responses/Services200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '414': - $ref: '#/components/responses/414' - '/services/{serviceId}': - parameters: - - $ref: '#/components/parameters/Path.ServiceId' + "201": + description: Entity body in the request contains a subscription to the MEC + service availability notifications that is to be created. + headers: + location: + description: The resource URI of the created resource + style: simple + explode: false + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + callbacks: + ServiceAvailailityNotification: + '{$request.body#/callbackReference}': + post: + tags: + - callbacks + summary: Create callback + description: |- + 'Represents the service availability information that is used in the following cases + when the MEC platform announces the newly available + services to the authorized relevant MEC applications (e.g. the applications that indicate the services as "optional" or "required") that are subscribed to the corresponding service availability notifications when the MEC platform notifies the authorized relevant applications that are subscribed to the corresponding service availability notifications about the service availability changes.' + operationId: ServiceAvailabilityNotification_POST + requestBody: + $ref: '#/components/requestBodies/ServiceAvailabilityNotification' + responses: + "200": + description: "Expected responses from callback consumer, if it accepts\ + \ the callback" + deprecated: false + /applications/{appInstanceId}/subscriptions/{subscriptionId}: get: - description: >- - This method retrieves information about a mecService resource. This - method is typically used in "service availability query" procedure - operationId: ServicesServiceId_GET tags: - - mec_service_mgmt + - appSubscriptions + summary: Get subscription + description: "The GET method requests information about a subscription for this\ + \ requestor. Upon success, the response contains message content with the\ + \ subscription for the requestor." + operationId: ApplicationsSubscription_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string responses: - '200': - $ref: '#/components/responses/ServicesServiceId200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '/applications/{appInstanceId}/services': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + "200": + description: "Upon success, a response message content containing the requested\ + \ subscription is returned." + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + delete: + tags: + - appSubscriptions + summary: delete subscription + description: This method deletes a mecSrvMgmtSubscription. This method is typically + used in "Unsubscribing from service availability event notifications" procedure. + operationId: ApplicationsSubscription_DELETE + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + explode: false + schema: + type: string + responses: + "204": + description: No Content + content: {} + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /applications/{appInstanceId}/services: get: - description: >- - This method retrieves information about a list of mecService resources. + tags: + - appServices + summary: get services + description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure operationId: AppServices_GET - tags: - - mec_service_mgmt parameters: - - $ref: '#/components/parameters/Query.SerInstanceId' - - $ref: '#/components/parameters/Query.SerName' - - $ref: '#/components/parameters/Query.SerCategoryId' - - $ref: '#/components/parameters/Query.ConsumedLocalOnly' - - $ref: '#/components/parameters/Query.IsLocal' - - $ref: '#/components/parameters/Query.LocalityType' + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: ser_instance_id + in: query + description: A MEC application instance may use multiple ser_instance_ids + as an input parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or + none of them shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: A MEC application instance may use multiple ser_names as an input + parameter to query the availability of a list of MEC service instances. + Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them + shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: A MEC application instance may use ser_category_id as an input + parameter to query the availability of a list of MEC service instances in + a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" + or none of them shall be present. + required: false + style: form + explode: true + schema: + type: string + - name: consumed_local_only + in: query + description: Indicate whether the service can only be consumed by the MEC applications + located in the same locality (as defined by scopeOfLocality) as this service + instance. + required: false + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + required: false + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: A MEC application instance may use scope_of_locality as an input parameter + to query the availability of a list of MEC service instances with a certain + scope of locality. + required: false + style: form + explode: true + schema: + type: string responses: - '200': - $ref: '#/components/responses/Services200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '414': - $ref: '#/components/responses/414' + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + type: array + example: + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + items: + $ref: '#/components/schemas/ServiceInfo' + x-content-type: application/json + example: + ServiceInfoList: + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "414": + description: It is used to indicate that the server is refusing to process + the request because the request URI is longer than the server is willing + or able to process. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false post: - description: >- - This method is used to create a mecService resource. This method is - typically used in "service availability update and new service - registration" procedure - operationId: AppServices_POST tags: - - mec_service_mgmt - responses: - '201': - $ref: '#/components/responses/Services201' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' + - appServices + summary: create service + description: This method is used to create a mecService resource. This method + is typically used in "service availability update and new service registration" + procedure + operationId: AppServices_POST + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string requestBody: - $ref: '#/components/requestBodies/ServicesPost' - '/applications/{appInstanceId}/services/{serviceId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.ServiceId' + description: New ServiceInfo with updated "state" is included as entity body + of the request + content: + application/json: + schema: + $ref: '#/components/schemas/appInstanceId_services_body' + required: true + responses: + "201": + description: "Upon success, the HTTP response shall include a Location HTTP\ + \ header that contains the resource URI of the created resource." + headers: + location: + description: The resource URI of the created resource + style: simple + explode: false + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /applications/{appInstanceId}/services/{serviceId}: get: - description: >- - This method retrieves information about a mecService resource. This - method is typically used in "service availability query" procedure - operationId: AppServicesServiceId_GET tags: - - mec_service_mgmt + - appServices + summary: get service + description: This method retrieves information about a mecService resource. + This method is typically used in "service availability query" procedure + operationId: AppServicesServiceId_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance (see note). + required: true + style: simple + explode: false + schema: + type: string responses: - '200': - $ref: '#/components/responses/ServicesServiceId200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false put: + tags: + - appServices + summary: update service description: This method updates the information about a mecService resource operationId: AppServicesServiceId_PUT - tags: - - mec_service_mgmt - responses: - '200': - $ref: '#/components/responses/ServicesServiceId200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '412': - $ref: '#/components/responses/412' + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + explode: false + schema: + type: string requestBody: - $ref: '#/components/requestBodies/ServicesServiceId' + description: New ServiceInfo with updated "state" is included as entity body + of the request + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + required: true + responses: + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "412": + description: "Precondition Failed. It is used when a condition has failed\ + \ during conditional requests, e.g. when using ETags to avoid write conflicts." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false delete: - description: >- - This method deletes a mecService resource. This method is typically used in the service deregistration procedure. - operationId: AppServicesServiceId_DELETE tags: - - mec_service_mgmt + - appServices + summary: delete service + description: 'This method deletes a mecService resource. This method is typically + used in the service deregistration procedure. ' + operationId: AppServicesServiceId_DELETE + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + explode: false + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + explode: false + schema: + type: string responses: - '204': + "204": description: No Content - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '/applications/{appInstanceId}/subscriptions': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + content: {} + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /services: get: - description: >- - The GET method may be used to request information about all - subscriptions for this requestor. Upon success, the response contains - entity body with all the subscriptions for the requestor. - operationId: ApplicationsSubscriptions_GET tags: - - mec_service_mgmt + - services + summary: get services + description: This method retrieves information about a list of mecService resources. + This method is typically used in "service availability query" procedure + operationId: Services_GET + parameters: + - name: ser_instance_id + in: query + description: A MEC application instance may use multiple ser_instance_ids + as an input parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or + none of them shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: A MEC application instance may use multiple ser_names as an input + parameter to query the availability of a list of MEC service instances. + Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them + shall be present. + required: false + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: A MEC application instance may use ser_category_id as an input + parameter to query the availability of a list of MEC service instances in + a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" + or none of them shall be present. + required: false + style: form + explode: true + schema: + type: string + - name: consumed_local_only + in: query + description: Indicate whether the service can only be consumed by the MEC applications + located in the same locality (as defined by scopeOfLocality) as this service + instance. + required: false + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + required: false + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: A MEC application instance may use scope_of_locality as an input parameter + to query the availability of a list of MEC service instances with a certain + scope of locality. + required: false + style: form + explode: true + schema: + type: string responses: - '200': - $ref: '#/components/responses/ApplicationsSubscriptions200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - post: - description: >- - The POST method may be used to create a new subscription. One example - use case is to create a new subscription to the MEC service - availability notifications. Upon success, the response contains entity - body describing the created subscription. - operationId: ApplicationsSubscriptions_POST + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + type: array + example: + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + items: + $ref: '#/components/schemas/ServiceInfo' + x-content-type: application/json + example: + ServiceInfoList: + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "414": + description: It is used to indicate that the server is refusing to process + the request because the request URI is longer than the server is willing + or able to process. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /services/{serviceId}: + get: tags: - - mec_service_mgmt + - services + summary: get service + description: This method retrieves information about a mecService resource. + This method is typically used in "service availability query" procedure + operationId: ServicesServiceId_GET + parameters: + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + explode: false + schema: + type: string + x-etsi-notes: "NOTE:\t serviceId corresponds to serInstanceId" responses: - '201': - $ref: '#/components/responses/ApplicationsSubscriptions201' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - requestBody: - $ref: '#/components/requestBodies/ApplicationsSubscriptions' - callbacks: - serviceAvailabilityNotification: - $ref: '#/components/callbacks/ServiceAvailabilityNotification' - '/applications/{appInstanceId}/subscriptions/{subscriptionId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.SubscriptionId' + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + example: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: "2.0" + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /transports: get: - description: >- - The GET method requests information about a subscription for this - requestor. Upon success, the response contains entity body with the - subscription for the requestor. - operationId: ApplicationsSubscription_GET tags: - - mec_service_mgmt + - transports + summary: Get transports + description: This method retrieves information about a list of available transports. + This method is typically used by a service-producing application to discover + transports provided by the MEC platform in the "transport information query" + procedure + operationId: Transports_GET + parameters: [] responses: - '200': - $ref: '#/components/responses/ApplicationsSubscription200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - delete: - description: >- - This method deletes a mecSrvMgmtSubscription. This method is typically used - in "Unsubscribing from service availability event notifications" - procedure. - operationId: ApplicationsSubscription_DELETE + "200": + description: It is used to indicate nonspecific success. The response messages + content contains a representation of the resource. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TransportInfo' + x-content-type: application/json + "400": + description: Bad Request. It is used to indicate that incorrect parameters + were passed to the request. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + "403": + description: Forbidden. The operation is not allowed given the current status + of the resource. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: Not Found. It is used when a client provided a URI that cannot + be mapped to a valid resource URI. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + deprecated: false + /resource_uri_allocated_by_MEC_platform: + get: tags: - - mec_service_mgmt + - individualMECservice + summary: get mecServiceLiveness + description: This method retrieves information about an "Individual mecServiceLiveness" + resource + operationId: get_individual_MEC_service responses: - '204': - description: No Content - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '/transports': - get: - description: >- - This method retrieves information about a list of available transports. - This method is typically used by a service-producing application to - discover transports provided by the MEC platform in the - "transport information query" procedure - operationId: Transports_GET + "200": + description: It is used to indicate nonspecific success. The response message + content contains a representation of the resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceLivenessInfo' + "400": + description: "It is used to indicate that incorrect parameters were passed\ + \ to the request. In the returned ProblemDetails structure, the \"detail\"\ + \ attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" attribute + of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "It is used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI. In the returned ProblemDetails structure, the\ + \ \"detail\" attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + patch: tags: - - mec_service_mgmt + - individualMECservice + summary: Update mecServiceLiveness + description: This method updates a resource on top of the existing resource + state with partial changes described by the client. + operationId: patch_individual_MEC_service + requestBody: + description: It contains an update of the liveness state. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceLivenessUpdate' + required: true responses: - '200': - $ref: '#/components/responses/Transports200' - '400': - $ref: '#/components/responses/400' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' + "200": + description: "Upon success, a response message content is returned containing\ + \ the updated liveness interval value of the service Instance." + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceLivenessInfo' + "204": + description: Successful response sent when there is no need to provide a + new liveness interval value to the service Instance. + content: {} + "400": + description: "It is used to indicate that incorrect parameters were passed\ + \ to the request. In the returned ProblemDetails structure, the \"detail\"\ + \ attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" attribute + of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "It is used when a client provided a URI that cannot be mapped\ + \ to a valid resource URI. In the returned ProblemDetails structure, the\ + \ \"detail\" attribute should convey more information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "409": + description: The operation is not allowed due to a conflict with the state + of the resource. The MEC platform shall respond with this code if the + service instance is in "INACTIVE" state. More information shall be provided + in the "detail" attribute of the "ProblemDetails" structure. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "It is used when a condition has failed during conditional\ + \ requests, e.g. when using ETags to avoid write conflicts. In the returned\ + \ ProblemDetails structure, the \"detail\" attribute should convey more\ + \ information about the error." + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' components: schemas: CategoryRef: - description: This type represents the category reference - type: object + title: CategoryRef required: - - href - - id - - name - - version + - href + - id + - name + - version + type: object properties: href: - description: Reference of the catalogue type: string - format: uri + description: Reference of the catalogue + example: "[\"/example/catalogue1\"]" id: - description: Unique identifier of the category type: string + description: Unique identifier of the category + example: "[\"id12345\"]" name: - description: Name of the category, example values include RNI, Location & Bandwidth Management type: string + description: "Name of the category, example values include RNI, Location\ + \ & Bandwidth Management" + example: "[\"RNI\"]" version: - description: Category version type: string - CategoryRefs: - description: Categories of services about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/CategoryRef' - EndPointInfoAddresses: - description: >- - Entry point information of the service as one or more pairs of IP - address and port + description: Category version + example: "[\"version1\"]" + description: This type represents the category reference + example: + name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + EndPointInfo.Address: + title: EndPointInfo.Address + required: + - host + - port type: object + properties: + host: + type: string + description: Host portion of the address + example: "[\"192.0.2.0\"]" + port: + type: integer + description: Port portion of the address + description: A IP address and port pair + EndPointInfo.Addresses: + title: EndPointInfo.Addresses required: - - addresses + - addresses + type: object properties: addresses: type: array - minItems: 0 + description: Entry point information of the service as one or more pairs + of IP address and port. See note. items: - description: A IP address and port pair - type: object - required: - - host - - port - properties: - host: - description: Host portion of the address - type: string - port: - description: Port portion of the address - type: integer - format: uint32 - EndPointInfoAlternative: - description: >- - Entry point information of the service in a format defined by an - implementation, or in an external specification. - type: object + $ref: '#/components/schemas/EndPointInfo.Address' + description: This type represents information about a transport endpoint. + EndPointInfo.Alternative: + title: EndPointInfo.Alternative required: - - alternative + - alternative + type: object properties: alternative: type: object - EndPointInfoUris: - description: >- - Entry point information of the service as string, formatted according to - URI syntax - type: object + description: "Entry point information of the service in a format defined\ + \ by an implementation, or in an external specification. See note." + description: This type represents information about a transport endpoint. + EndPointInfo.Uris: + title: EndPointInfo.Uris required: - - uris + - uris + type: object properties: uris: type: array - minItems: 0 + description: "Entry point information of the service as string, formatted\ + \ according to URI syntax" + items: + type: string + description: This type represents information about a transport endpoint. + EndPointInfo.Fqdn: + title: EndPointInfo.Fqdn + required: + - fqdn + type: object + properties: + fqdn: + type: array + description: Fully Qualified Domain Name of the service. See note. items: - description: Entry point information of the service type: string - format: uri + description: 'This type represents information about a transport endpoint. ' LinkType: - description: This type represents a type of link and may be referenced from data structures + title: LinkType type: object properties: href: - description: URI referring to a resource type: string - format: uri - example: '/mecSerMgmtApi/example' - SubscriptionLinkList: - description: >- - This type represents a list of links related to currently existing - subscriptions for a MEC application instance. This information - is returned when sending a request to receive current subscriptions. + description: URI referring to a resource + example: "[\"/mecSerMgmtApi/example\"]" + description: This type represents a type of link and may be referenced from + data structures + example: + href: "[\"/mecSerMgmtApi/example\"]" + MecServiceMgmtApiSubscriptionLinkList.Links: + title: MecServiceMgmtApiSubscriptionLinkList.Links + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + subscriptions: + type: array + description: The MEC application instance's subscriptions + items: + $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription' + description: Self-referring URI. + example: + subscriptions: + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + self: + href: "[\"/mecSerMgmtApi/example\"]" + MecServiceMgmtApiSubscriptionLinkList.Subscription: + title: MecServiceMgmtApiSubscriptionLinkList.Subscription + required: + - href + - rel type: object + properties: + href: + type: string + description: URI referring to a resource + example: "[\"/mecSerMgmtApi/example\"]" + rel: + type: string + description: The value shall be se to SerAvailabilityNotificationSubscription. + description: A link to a subscription. + example: + rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + MecServiceMgmtApiSubscriptionLinkList: + title: MecServiceMgmtApiSubscriptionLinkList required: - - _links + - _links + type: object properties: _links: - description: Self-referring URI. - type: object - required: - - self - properties: - self: - $ref: '#/components/schemas/LinkType' - subscriptions: - description: The MEC application instance's subscriptions - type: array - items: - description: A link to a subscription. - type: object - required: - - href - - subscriptionType - properties: - href: - description: URI referring to a resource - type: string - format: uri - subscriptionType: - description: >- - Type of the subscription. The values are as defined in - the "subscriptionType" attribute for each different Mp1 - event subscription data type. - type: string + $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Links' + description: This type represents a list of links related to currently existing + subscriptions for a MEC application instance. This information is returned + when sending a request to receive current subscriptions. + example: + _links: + subscriptions: + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + - rel: rel + href: "[\"/mecSerMgmtApi/example\"]" + self: + href: "[\"/mecSerMgmtApi/example\"]" ProblemDetails: + title: ProblemDetails type: object properties: type: type: string - format: uri - description: >- - A URI reference according to IETF RFC 3986 that identifies the problem - type + description: A URI reference according to IETF RFC 3986 that identifies + the problem type title: type: string - description: 'A short, human-readable summary of the problem type' + description: "A short, human-readable summary of the problem type" status: type: integer - format: uint32 description: The HTTP status code for this occurrence of the problem detail: type: string - description: A human-readable explanation specific to this occurrence of the problem + description: A human-readable explanation specific to this occurrence of + the problem instance: type: string - format: uri - description: A URI reference that identifies the specific occurrence of the problem - required: - - status - - detail - GrantType: - description: OAuth 2.0 grant type + description: A URI reference that identifies the specific occurrence of + the problem + SecurityInfo.OAuth2Info.GrantType: + title: SecurityInfo.OAuth2Info.GrantType type: string + description: OAuth 2.0 grant type + example: "[\"OAUTH2_CLIENT_CREDENTIALS\"]" enum: - - OAUTH2_AUTHORIZATION_CODE - - OAUTH2_IMPLICIT_GRANT - - OAUTH2_RESOURCE_OWNER - - OAUTH2_CLIENT_CREDENTIALS - example: 'OAUTH2_CLIENT_CREDENTIALS' - OAuth2Info: - description: Parameters related to use of OAuth 2.0 - type: object + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS + SecurityInfo.OAuth2Info: + title: SecurityInfo.OAuth2Info required: - - grantTypes - - tokenEndpoint + - grantTypes + - tokenEndpoint + type: object properties: grantTypes: - description: >- - List of supported OAuth 2.0 grant types. - type: array - minItems: 1 maxItems: 4 + minItems: 1 + type: array + description: List of supported OAuth 2.0 grant types. items: - $ref: '#/components/schemas/GrantType' + $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType' tokenEndpoint: - description: The token endpoint type: string - format: uri + description: The token endpoint + example: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + description: Parameters related to use of OAuth 2.0 + example: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" SecurityInfo: - description: This type represents security information related to a transport + title: SecurityInfo type: object properties: oAuth2Info: - $ref: '#/components/schemas/OAuth2Info' + $ref: '#/components/schemas/SecurityInfo.OAuth2Info' + description: This type represents security information related to a transport + example: + oAuth2Info: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" Self: - description: Self-referring URI. - type: object + title: Self required: - - self + - self + type: object properties: self: $ref: '#/components/schemas/LinkType' - readOnly: true + description: Self-referring URI. + example: + self: + href: "[\"/mecSerMgmtApi/example\"]" SerAvailabilityNotificationSubscription: - description: >- - This type represents a subscription to the notifications from the - MEC platform regarding the availability of a MEC service or a - list of MEC services. - type: object + title: SerAvailabilityNotificationSubscription required: - - subscriptionType - - callbackReference + - _links + - callbackReference + - subscriptionType + type: object properties: subscriptionType: - description: Shall be set to SerAvailabilityNotificationSubscription. type: string + description: Shall be set to SerAvailabilityNotificationSubscription. + example: "[\"SerAvailabilityNotificationSubscription\"]" callbackReference: - description: >- - URI selected by the MEC application instance to receive - notifications on the subscribed MEC service availability - information. This shall be included in both the request and the - response. type: string - format: uri + description: URI selected by the MEC application instance to receive notifications + on the subscribed MEC service availability information. This shall be + included in both the request and the response. _links: $ref: '#/components/schemas/Self' filteringCriteria: - description: >- - Filtering criteria to match services for which events are requested to be reported. - If absent, matches all services. All child attributes are combined with the logical - "AND" operation. - type: object - not: - required: [serInstanceIds, serNames, serCategories] - properties: - serInstanceIds: - $ref: '#/components/schemas/SerInstanceIds' - serNames: - $ref: '#/components/schemas/SerNames' - serCategories: - $ref: '#/components/schemas/CategoryRefs' - states: - $ref: '#/components/schemas/ServiceStates' - isLocal: - description: >- - Indicate whether the service is located in the same locality (as defined - by scopeOfLocality) as the consuming MEC application. - type: boolean - ServiceAvailabilityNotification: - description: >- - This type represents the service availability information. + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria' + example: + filteringCriteria: + serNames: + - serNames + - serNames + serInstanceIds: + - serInstanceIds + - serInstanceIds + serCategories: + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + states: + - "[\"ACTIVE\"]" + - "[\"ACTIVE\"]" + isLocal: false + subscriptionType: "[\"SerAvailabilityNotificationSubscription\"]" + _links: + self: + href: "[\"/mecSerMgmtApi/example\"]" + callbackReference: callbackReference + x-etsi-notes: "NOTE:\tThe attributes \"serInstanceIds\", \"serNames\" and \"\ + serCategories\" provide mutually-exclusive alternatives to define a set of\ + \ services. Only one of them may be present." + SerAvailabilityNotificationSubscription.FilteringCriteria: + title: SerAvailabilityNotificationSubscription.FilteringCriteria type: object + properties: + serInstanceIds: + type: array + description: Identifiers of service instances about which to report events. + items: + type: string + serNames: + type: array + description: Names of services about which to report events. + items: + type: string + serCategories: + type: array + description: Categories of services about which to report events. + items: + $ref: '#/components/schemas/CategoryRef' + states: + type: array + description: "States of the services about which to report events. If the\ + \ event is a state change, this filter represents the state after the\ + \ change." + items: + $ref: '#/components/schemas/ServiceState' + isLocal: + type: boolean + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + example: false + description: "Filtering criteria to match services for which events are requested\ + \ to be reported. If absent, matches all services. All child attributes are\ + \ combined with the logical \"AND\" operation." + example: + serNames: + - serNames + - serNames + serInstanceIds: + - serInstanceIds + - serInstanceIds + serCategories: + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + - name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + states: + - "[\"ACTIVE\"]" + - "[\"ACTIVE\"]" + isLocal: false + ServiceAvailabilityNotification: + title: ServiceAvailabilityNotification required: - - notificationType - - serviceReferences - - _links + - _links + - notificationType + - serviceReferences + type: object properties: notificationType: - description: Shall be set to SerAvailabilityNotification. type: string + description: Shall be set to SerAvailabilityNotificationSubscription. + example: "[\"SerAvailabilityNotificationSubscription\"]" serviceReferences: type: array items: - description: List of links to services whose availability has changed. - type: object - required: - - serName - - serInstanceId - - state - - changeType - properties: - link: - $ref: '#/components/schemas/LinkType' - serName: - $ref: '#/components/schemas/SerName' - serInstanceId: - $ref: '#/components/schemas/SerInstanceId' - state: - $ref: '#/components/schemas/ServiceState' - changeType: - description: >- - Type of the change. Valid values: - ADDED: The service was newly added. - REMOVED: The service was removed. - STATE_CHANGED: Only the state of the service was changed. - ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state. - type: string - enum: - - ADDED - - REMOVED - - STATE_CHANGED - - ATTRIBUTES_CHANGED + $ref: '#/components/schemas/ServiceAvailabilityNotification.ServiceReferences' _links: $ref: '#/components/schemas/Subscription' + description: This type represents the service availability information. + ServiceAvailabilityNotification.ServiceReferences: + title: ServiceAvailabilityNotification.ServiceReferences + required: + - changeType + - serInstanceId + - serName + - state + type: object + properties: + link: + $ref: '#/components/schemas/LinkType' + serName: + type: string + description: The name of the service. This is how the service producing + MEC application identifies the service instance it produces. + example: "[\"ExampleService\"]" + serInstanceId: + type: string + description: Identifier of the service instance assigned by the MEC platform. + example: "[\"ServiceInstance123\"]" + state: + $ref: '#/components/schemas/ServiceState' + changeType: + $ref: '#/components/schemas/ServiceAvailabilityNotification.ChangeType' + description: List of links to services whose availability has changed. + ServiceAvailabilityNotification.ChangeType: + title: ServiceAvailabilityNotification.ChangeType + type: string + description: "Type of the change. Valid values:\n 1. ADDED: The service was\ + \ newly added.\n 2. REMOVED: The service was removed.\n 3. STATE_CHANGED:\ + \ Only the state of the service was changed. \n 4. ATTRIBUTES_CHANGED: At\ + \ least one attribute of the service other than state was changed. The change\ + \ may or may not include changing the state." + example: "[\"ADDED\"]" + enum: + - ADDED + - REMOVED + - STATE_CHANGED + - ATTRIBUTES_CHANGED SerializerType: - description: The enumeration represents types of serializers + title: SerializerType type: string + description: The enumeration represents types of serializers + example: "[\"JSON\"]" enum: - - JSON - - XML - - PROTOBUF3 + - JSON + - XML + - PROTOBUF3 LocalityType: - description: The scope of locality as expressed by "consumedLocalOnly" and "isLocal". If absent, defaults to MEC_HOST + title: LocalityType type: string + description: "The scope of locality as expressed by \"consumedLocalOnly\" and\ + \ \"isLocal\". If absent, defaults to MEC_HOST" + example: "[\"MEC_SYSTEM\"]" enum: - - MEC_SYSTEM - - MEC_HOST - - NFVI_POP - - ZONE - - ZONE_GROUP - - NFVI_NODE + - MEC_SYSTEM + - MEC_HOST + - NFVI_POP + - ZONE + - ZONE_GROUP + - NFVI_NODE ServiceState: - description: This enumeration defines the possible states of a service. + title: ServiceState type: string + description: This enumeration defines the possible states of a service. + example: "[\"ACTIVE\"]" enum: - - ACTIVE - - INACTIVE - - SUSPENDED - ServiceStates: - description: >- - States of the services about which to report events. If the event is - a state change, this filter represents the state after the change. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceState' - SerInstanceId: - description: >- - Identifier of the service instance assigned by the MEC platform. - type: string - readOnly: true - SerInstanceIds: - description: Identifiers of service instances about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/SerInstanceId' - SerName: - description: >- - The name of the service. This is how the service producing MEC - application identifies the service instance it produces. - type: string - SerNames: - description: Names of services about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/SerName' - ServiceInfoPost: - description: This type represents the general information of a MEC service. - type: object - required: - - serName - - version - - state - - serializer - oneOf: - - required: [transportId] - - required: [transportInfo] - properties: - serInstanceId: - $ref: '#/components/schemas/SerInstanceId' - serName: - $ref: '#/components/schemas/SerName' - serCategory: - $ref: '#/components/schemas/CategoryRef' - version: - description: Service version - type: string - state: - $ref: '#/components/schemas/ServiceState' - transportId: - description: >- - Identifier of the platform-provided transport to be used by the service. - Valid identifiers may be obtained using the "Transport information - query" procedure. May be present in POST requests to signal the use of a - platform-provided transport for the service, and shall be absent - otherwise. - type: string - writeOnly: true - transportInfo: - $ref: '#/components/schemas/TransportInfo' - serializer: - $ref: '#/components/schemas/SerializerType' - scopeOfLocality: - $ref: '#/components/schemas/LocalityType' - consumedLocalOnly: - description: >- - Indicate whether the service can only be consumed by the MEC applications - located in the same locality (as defined by scopeOfLocality) as this - service instance. - type: boolean - isLocal: - description: >- - Indicate whether the service is located in the same locality (as defined - by scopeOfLocality) as the consuming MEC application. - type: boolean + - ACTIVE + - INACTIVE + - SUSPENDED ServiceInfo: - description: This type represents the general information of a MEC service. - type: object + title: ServiceInfo required: - - serName - - version - - state - - transportInfo - - serializer - - _links + - serName + - serializer + - state + - transportInfo + - version + type: object properties: serInstanceId: - $ref: '#/components/schemas/SerInstanceId' + type: string + description: Identifier of the service instance assigned by the MEC platform. + example: "[\"ServiceInstance123\"]" serName: - $ref: '#/components/schemas/SerName' + type: string + description: The name of the service. This is how the service producing + MEC application identifies the service instance it produces. + example: "[\"ExampleService\"]" serCategory: $ref: '#/components/schemas/CategoryRef' version: - description: Service version type: string + description: Service version + example: "[\"ServiceVersion1\"]" state: $ref: '#/components/schemas/ServiceState' transportId: type: string - description: > - Identifier of the platform-provided transport to be used by - the service. Valid identifiers may be obtained using the - "Transport information query" procedure. May be present - in POST requests to signal the use of a platform-provided - transport for the service, and shall be absent otherwise. - See note 2. + description: "Identifier of the platform-provided transport to be used by\ + \ the service. Valid identifiers may be obtained using the \"Transport\ + \ information query\" procedure. May be present in POST requests to signal\ + \ the use of a platform-provided transport for the service, and shall\ + \ be absent otherwise. See note 2." + example: "[\"transportId1\"]" transportInfo: $ref: '#/components/schemas/TransportInfo' serializer: @@ -687,559 +1830,235 @@ components: scopeOfLocality: $ref: '#/components/schemas/LocalityType' consumedLocalOnly: - description: >- - Indicate whether the service can only be consumed by the MEC applications - located in the same locality (as defined by scopeOfLocality) as this - service instance. type: boolean + description: Indicate whether the service can only be consumed by the MEC + applications located in the same locality (as defined by scopeOfLocality) + as this service instance. + example: false isLocal: - description: >- - Indicate whether the service is located in the same locality (as defined - by scopeOfLocality) as the consuming MEC application. type: boolean + description: Indicate whether the service is located in the same locality + (as defined by scopeOfLocality) as the consuming MEC application. + example: false livenessInterval: type: integer - description: - Interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3). - If the service-producing application supports sending "heartbeat" messages, it shall include this attribute in the registration request. In this case, the application shall either set the value of this attribute to zero or shall use this attribute to propose a non-zero positive value for the liveness interval. - If the application has provided this attribute in the request and the MEC platform requires "heartbeat" messages, the MEC platform shall return this attribute value in the HTTP responses. The MEC platform may use the value proposed in the request or may choose a different value. - If the MEC platform does not require "heartbeat" messages for this service instance it shall omit the attribute in responses. + description: "Interval (in seconds) between two consecutive \"heartbeat\"\ + \ messages (see clause 8.2.10.3.3). If the service-producing application\ + \ supports sending \"heartbeat\" messages, it shall include this attribute\ + \ in the registration request. In this case, the application shall either\ + \ set the value of this attribute to zero or shall use this attribute\ + \ to propose a non-zero positive value for the liveness interval. If the\ + \ application has provided this attribute in the request and the MEC platform\ + \ requires \"heartbeat\" messages, the MEC platform shall return this\ + \ attribute value in the HTTP responses. The MEC platform may use the\ + \ value proposed in the request or may choose a different value. If the\ + \ MEC platform does not require \"heartbeat\" messages for this service\ + \ instance it shall omit the attribute in responses." _links: - type: object - required: - - self - properties: - self: - $ref: '#/components/schemas/LinkType' - liveness: - $ref: '#/components/schemas/LinkType' + $ref: '#/components/schemas/ServiceInfo__links' + description: This type represents the general information of a MEC service. example: - serInstanceId: 'rnisInstance1' - serName: 'myRnis' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'v2' - version: '2.2.1' - state: 'ACTIVE' + scopeOfLocality: "[\"MEC_SYSTEM\"]" transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - uris: - - 'https://my.callback.com/sandboxname/rni/v2/' - serializer: 'JSON' - scopeOfLocality: 'MEC_SYSTEM' + implSpecificInfo: implSpecificInfo + protocol: "[\"HTTP\"]" + endpoint: "" + security: + oAuth2Info: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + name: "[\"REST\"]" + description: "[\"REST API\"]" + id: "[\"TransId12345\"]" + type: "[\"REST_HTTP\"]" + version: "[\"2.0\"]" + transportId: "[\"transportId1\"]" + _links: + liveness: null + self: + href: "[\"/mecSerMgmtApi/example\"]" + serializer: "[\"JSON\"]" + consumedLocalOnly: false + version: "[\"ServiceVersion1\"]" + serInstanceId: "[\"ServiceInstance123\"]" + isLocal: false + serCategory: + name: "[\"RNI\"]" + href: "[\"/example/catalogue1\"]" + id: "[\"id12345\"]" + version: "[\"version1\"]" + livenessInterval: 0 + serName: "[\"ExampleService\"]" + state: "[\"ACTIVE\"]" + x-etsi-notes: "NOTE 1:\tThe service category may be included in the application\ + \ descriptor. It may be allocated by the operator or by the application developer.\n\ + NOTE 2:\tEither transportId or transportInfo but not both shall be present\ + \ in POST requests.\nNOTE 3:\tValues NFVI_POP, ZONE and NFVI_NODE are used\ + \ when the service instance is deployed as a VNF.\nNOTE 4:\tThe isLocal is\ + \ used only in service availability query response and service availability\ + \ subscription/notification messages.\nNOTE 5:\tValue ZONE_GROUP can be used\ + \ when the service instance is deployed as a VNF.\nNOTE 6:\tRegarding the\ + \ value MEC_SYSTEM, if the service is running on the same MEC system as the\ + \ MEC app, then it will be local to it." ServiceLivenessInfo: - type: object required: - - state - - timeStamp - - interval + - interval + - state + - timeStamp + type: object properties: state: $ref: '#/components/schemas/ServiceState' timeStamp: - type: object - description: The time when the last "heartbeat" message was received by MEC platform - required: - - seconds - - nanoSeconds - properties: - seconds: - type: integer - nanoSeconds: - type: integer + $ref: '#/components/schemas/ServiceLivenessInfo_timeStamp' interval: type: integer - description: The interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3) that MEC platform has determined. + description: The interval (in seconds) between two consecutive "heartbeat" + messages (see clause 8.2.10.3.3) that MEC platform has determined. + example: + timeStamp: + seconds: 0 + nanoSeconds: 6 + interval: 1 + state: "[\"ACTIVE\"]" ServiceLivenessUpdate: - type: object required: - - state + - state + type: object properties: state: $ref: '#/components/schemas/ServiceState' Subscription: - description: A link to the related subscription - type: object + title: Subscription required: - - subscription + - subscription + type: object properties: subscription: $ref: '#/components/schemas/LinkType' + description: A link to the related subscription TransportInfo: - description: This type represents the general information of a MEC service. - type: object + title: TransportInfo required: - - id - - name - - type - - protocol - - version - - endpoint - - security + - endpoint + - id + - name + - protocol + - security + - type + - version + type: object properties: id: - description: The identifier of this transport type: string + description: The identifier of this transport + example: "[\"TransId12345\"]" name: - description: The name of this transport type: string + description: The name of this transport + example: "[\"REST\"]" description: - description: Human-readable description of this transport type: string + description: Human-readable description of this transport + example: "[\"REST API\"]" type: $ref: '#/components/schemas/TransportType' protocol: - description: The name of the protocol used. Shall be set to HTTP for a REST API. type: string + description: The name of the protocol used. Shall be set to HTTP for a REST + API. + example: "[\"HTTP\"]" version: - description: The version of the protocol used type: string + description: The version of the protocol used + example: "[\"2.0\"]" endpoint: description: This type represents information about a transport endpoint - type: object oneOf: - - $ref: '#/components/schemas/EndPointInfoUris' - - $ref: '#/components/schemas/EndPointInfoAddresses' - - $ref: '#/components/schemas/EndPointInfoAlternative' + - $ref: '#/components/schemas/EndPointInfo.Uris' + - $ref: '#/components/schemas/EndPointInfo.Fqdn' + - $ref: '#/components/schemas/EndPointInfo.Addresses' + - $ref: '#/components/schemas/EndPointInfo.Alternative' + x-etsi-notes: "NOTE:\tExactly one of \"uris\", \"fqdn\", \"addresses\" or\ + \ \"alternative\" shall be present." security: $ref: '#/components/schemas/SecurityInfo' implSpecificInfo: + type: string description: Additional implementation specific details of the transport - type: object + description: This type represents the general information of a MEC service. + example: + implSpecificInfo: implSpecificInfo + protocol: "[\"HTTP\"]" + endpoint: "" + security: + oAuth2Info: + tokenEndpoint: "[\"/mecSerMgmtApi/security/TokenEndPoint\"]" + grantTypes: + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + - "[\"OAUTH2_CLIENT_CREDENTIALS\"]" + name: "[\"REST\"]" + description: "[\"REST API\"]" + id: "[\"TransId12345\"]" + type: "[\"REST_HTTP\"]" + version: "[\"2.0\"]" TransportType: - description: The enumeration TransportType represents types of transports + title: TransportType type: string + description: The enumeration TransportType represents types of transports + example: "[\"REST_HTTP\"]" enum: - - REST_HTTP - - MB_TOPIC_BASED - - MB_ROUTING - - MB_PUBSUB - - RPC - - RPC_STREAMING - - WEBSOCKET - parameters: - Path.AppInstanceId: - name: appInstanceId - description: >- - Represents a MEC application instance. Note that the - appInstanceId is allocated by the MEC platform manager. - in: path - required: true - schema: - type: string - Path.SubscriptionId: - name: subscriptionId - description: >- - Represents a subscription to the notifications from the MEC - platform. - in: path - required: true - schema: - type: string - Path.ServiceId: - name: serviceId - description: Represents a MEC service instance. - in: path - required: true - schema: - type: string - Query.SerCategoryId: - name: ser_category_id - description: >- - A MEC application instance may use ser_category_id as an input - parameter to query the availability of a list of MEC service - instances in a serCategory. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: string - Query.SerInstanceId: - name: ser_instance_id - description: >- - A MEC application instance may use multiple ser_instance_ids as - an input parameter to query the availability of a list of MEC - service instances. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: array - items: - type: string - Query.SerName: - name: ser_name - description: >- - A MEC application instance may use multiple ser_names as an - input parameter to query the availability of a list of MEC - service instances. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: array - items: - type: string - Query.LocalityType: - name: scope_of_locality - description: >- - A MEC application instance may use scope_of_locality as an input - parameter to query the availability of a list of MEC service instances - with a certain scope of locality. - in: query - required: false - schema: - type: string - Query.IsLocal: - name: is_local - description: >- - Indicate whether the service is located in the same locality (as - defined by scopeOfLocality) as the consuming MEC application. - in: query - required: false - schema: - type: boolean - Query.ConsumedLocalOnly: - name: consumed_local_only - description: >- - Indicate whether the service can only be consumed by the MEC - applications located in the same locality (as defined by - scopeOfLocality) as this service instance. - in: query - required: false - schema: - type: boolean - responses: - ApplicationsSubscriptions200: - description: >- - Upon success, a response body containing the list of links to the - requested subscriptions is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriptionLinkList' - links: - getIndividualmecSerMgmtApiSubscriptionLinkList: - $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscriptionLinkList' - delIndividualmecSerMgmtApiSubscriptionLinkList: - $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscriptionLinkList' - ApplicationsSubscriptions201: - description: >- - Entity body in the request contains a subscription to the MEC - service availability notifications that is to be created. - headers: - location: - description: The resource URI of the created resource - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - links: - getIndividualmecSerMgmtApiSubscription: - $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscription' - delIndividualmecSerMgmtApiSubscription: - $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscription' - ApplicationsSubscription200: - description: >- - Upon success, a response body containing the requested subscription - is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - Services200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceInfo' - links: - getIndividualmecService: - $ref: '#/components/links/GetIndividualmecService' - putIndividualmecService: - $ref: '#/components/links/PutIndividualmecService' - Services201: - description: >- - Upon success, the HTTP response shall include a Location HTTP header - that contains the resource URI of the created resource. - headers: - location: - description: The resource URI of the created resource - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - links: - getIndividualmecService: - $ref: '#/components/links/GetIndividualmecService' - putIndividualmecService: - $ref: '#/components/links/PutIndividualmecService' - ServicesServiceId200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - Transports200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/TransportInfo' - links: - getTransportInfo: - $ref: '#/components/links/GetTransportInfo' - 400: - description: >- - Bad Request. - It is used to indicate that incorrect parameters were passed to the request. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 401: - description: >- - Unauthorized. - It is used when the client did not submit the appropriate credentials. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 403: - description: >- - Forbidden. - The operation is not allowed given the current status of the resource. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 404: - description: >- - Not Found. - It is used when a client provided a URI that cannot be mapped - to a valid resource URI. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 409: - description: >- - Conflict. - The operation cannot be executed currently, due to a conflict with - the state of the resource. Typically, this is because the application - instance resource is in NOT_INSTANTIATED state. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 412: - description: >- - Precondition Failed. - It is used when a condition has failed during conditional requests, - e.g. when using ETags to avoid write conflicts. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 414: - description: >- - It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - 429: - description: >- - Too Many Requests. - It is used when a rate limiter has triggered. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + appInstanceId_services_body: + description: New ServiceInfo with updated "state" is included as entity body + of the request + oneOf: + - type: object + - type: object + ServiceInfo__links: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + liveness: + $ref: '#/components/schemas/LinkType' + example: + liveness: null + self: + href: "[\"/mecSerMgmtApi/example\"]" + ServiceLivenessInfo_timeStamp: + required: + - nanoSeconds + - seconds + type: object + properties: + seconds: + type: integer + nanoSeconds: + type: integer + description: The time when the last "heartbeat" message was received by MEC + platform + example: + seconds: 0 + nanoSeconds: 6 requestBodies: - ApplicationsSubscriptions: - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - example: - subscriptionType: 'SerAvailabilityNotificationSubscription' - callbackReference: 'http://my.callback.com/mec_service_mgmt_ser_availabilities/some-id' - filteringCriteria: - serNames: - - 'myRnis' - states: - - 'ACTIVE' - - 'INACTIVE' - isLocal: true - description: >- - Entity body in the request contains a subscription to the MEC - application termination notifications that is to be created. - required: true - Services: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true - ServicesPost: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfoPost' - example: - serName: 'myRnis' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'v2' - version: '2.2.1' - state: 'ACTIVE' - transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - uris: - - 'https://my.callback.com/sandboxname/rni/v2/' - serializer: 'JSON' - scopeOfLocality: 'MEC_SYSTEM' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true - ServicesServiceId: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true ServiceAvailabilityNotification: content: application/json: schema: $ref: '#/components/schemas/ServiceAvailabilityNotification' required: true - callbacks: - ServiceAvailabilityNotification: - '{$request.body#/callbackReference}': - post: - description: >- - 'Represents the service availability information that - is used in the following cases - - when the MEC platform announces the newly available - services to the authorized relevant MEC applications (e.g. - the applications that indicate the services as "optional" - or "required") that are subscribed to the corresponding - service availability notifications - - when the MEC platform notifies the authorized relevant - applications that are subscribed to the corresponding - service availability notifications about the service availability changes.' - operationId: Sm_ServiceAvailabilityNotification_POST - tags: - - callbacks - requestBody: - $ref: '#/components/requestBodies/ServiceAvailabilityNotification' - responses: - '200': - description: Expected responses from callback consumer, if it accepts the callback - links: - GetIndividualmecService: - operationId: Sm_ServicesServiceId_GET - description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `GET /services/{serviceId}` - parameters: - serviceId: '$response.body#/serviceId' - PutIndividualmecService: - operationId: Sm_ServicesServiceId_PUT - description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `PUT /services/{serviceId}` - parameters: - serviceId: '$response.body#/serviceId' - GetTransportInfo: - operationId: Sm_AppServices_POST - description: The `id` value returned in the response can be used as the `transportId` parameter in `POST /applications/{appInstanceId}/services`. The first transport is provided as the link as wildcards are not supported - parameters: - transportId: '$response.body#/0/id' - GetIndividualmecSerMgmtApiSubscription: - operationId: Sm_ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/.*\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecSerMgmtApiSubscription: - operationId: Sm_ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - GetIndividualmecSerMgmtApiSubscriptionLinkList: - operationId: Sm_ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecSerMgmtApiSubscriptionLinkList: - operationId: Sm_ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - examples: - ServiceInfo: - value: - serInstanceId: 'rnisInstance1' - serName: 'myRnis' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'v2' - version: '2.2.1' - state: 'ACTIVE' - transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - uris: - - 'https://my.callback.com/sandboxname/rni/v2/' - serializer: 'JSON' - scopeOfLocality: 'MEC_SYSTEM' diff --git a/config/api/vis-api.yaml b/config/api/vis-api.yaml index d7f12eaefb54ef3ba7e9d346a9b49678c19fcc8c..ee205998d9ef551d23862eb2c030d92d47b69c69 100644 --- a/config/api/vis-api.yaml +++ b/config/api/vis-api.yaml @@ -1,1221 +1,1623 @@ openapi: 3.0.0 info: + title: ETSI GS MEC 030 V2X Information Services API + description: ETSI GS MEC 030 V2X Information Services API described using OpenAPI. contact: - url: 'https://forge.etsi.org/rep/mec/gs030-vis-api' - title: ETSI GS MEC 030 - V2X Information API - version: 2.2.1 - description: - 'The ETSI MEC ISG MEC030 V2X Information API described using OpenAPI -

**Note**
MEC Sandbox supports all VIS API endpoints; complete details on the VIS API can be found on [ETSI Forge](http://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/02.02.01_60/gs_mec030v020201p.pdf).' + name: ETSI Forge + url: https://forge.etsi.org/rep/mec/gs030-vis-api + email: cti_support@etsi.org license: name: BSD-3-Clause - url: 'https://forge.etsi.org/legal-matters' + url: https://forge.etsi.org/legal-matters + version: 3.2.2 externalDocs: - description: ETSI MEC030 V2.2.1 V2X Information API - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/02.02.01_60/gs_mec030v020201p.pdf + description: "ETSI GS MEC 030 V2X Information Services API, v3.1.1" + url: https://www.https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/03.02.01_60/ servers: - - url: 'https://localhost/sandboxname/vis/v2' +- url: https://localhost/sandboxname/vis/v2 tags: - - name: v2xi - - name: unsupported - +- name: queries + description: Queries +- name: subscription + description: Subscription +- name: QoS +- name: V2X_msg paths: /queries/uu_unicast_provisioning_info: get: tags: - - 'v2xi' - summary: 'Used to query provisioning information for V2X communication over Uu unicast.' - description: 'Used to query provisioning information for V2X communication over Uu unicast.' + - queries + summary: Used to query provisioning information for V2X communication over Uu + unicast. + description: Used to query provisioning information for V2X communication over + Uu unicast. operationId: prov_info_uu_unicastGET parameters: - - in: query - name: location_info - schema: - type: string - required: true - description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area' - + - name: location_info + in: query + description: Comma separated list of locations to identify a cell of a base + station or a particular geographical area + required: true + style: form + explode: true + schema: + type: string responses: - '200': + "200": description: 'A response body containing the Uu unicast provisioning information. ' content: application/json: schema: $ref: '#/components/schemas/UuUnicastProvisioningInfo' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /queries/uu_mbms_provisioning_info: get: tags: - - 'unsupported' - summary: 'retrieve information required for V2X communication over Uu MBMS.' - description: 'retrieve information required for V2X communication over Uu MBMS.' + - queries + summary: retrieve information required for V2X communication over Uu MBMS. + description: retrieve information required for V2X communication over Uu MBMS. operationId: prov_info_uu_mbmsGET parameters: - - in: query - name: location_info - schema: - type: string - required: true - description: 'omma separated list of locations to identify a cell of a base station or a particular geographical area' - + - name: location_info + in: query + description: omma separated list of locations to identify a cell of a base + station or a particular geographical area + required: true + style: form + explode: true + schema: + type: string responses: - '200': + "200": description: 'A response body containing the Uu unicast provisioning information. ' content: application/json: schema: $ref: '#/components/schemas/UuMbmsProvisioningInfo' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /queries/pc5_provisioning_info: get: tags: - - 'unsupported' - summary: 'Query provisioning information for V2X communication over PC5.' - description: 'Query provisioning information for V2X communication over PC5.' + - queries + summary: Query provisioning information for V2X communication over PC5. + description: Query provisioning information for V2X communication over PC5. operationId: prov_infoGET parameters: - - in: query - name: location_info - schema: - type: string - required: true - description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area' + - name: location_info + in: query + description: Comma separated list of locations to identify a cell of a base + station or a particular geographical area + required: true + style: form + explode: true + schema: + type: string responses: - '200': - description: 'A response body containing the PC5 provisioning information is returned.' + "200": + description: A response body containing the PC5 provisioning information + is returned. content: application/json: schema: $ref: '#/components/schemas/Pc5ProvisioningInfo' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + /provide_v2x_msg_distribution_server_info: + post: + tags: + - V2X_msg + summary: Request the information about available V2X Message Distribution Servers + that can be supported by the service consumer. + description: Request the information about available V2X Message Distribution + Servers that can be supported by the service consumer (e.g. a MEC application). + operationId: v2xMsg_distributionServerPost + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/V2xMsgDistributionServerInfo' + required: true + responses: + "200": + description: The response body shall contain the connection information + of the V2X Message Distribution Servers that the service consumer can + use for direct connection. + content: + application/json: + schema: + $ref: '#/components/schemas/V2xMsgDistributionServerInfo' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /provide_predicted_qos: post: tags: - - 'v2xi' - summary: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.' - description: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.' + - QoS + summary: Request the predicted QoS correspondent to potential routes of a vehicular + UE. + description: Request the predicted QoS correspondent to potential routes of + a vehicular UE. operationId: predicted_qosPOST requestBody: - required: true content: application/json: schema: $ref: '#/components/schemas/PredictedQos' + required: true responses: - '200': - description: 'The response body shall contain the predicted QoS corresponding to potential routes of a vehicular UE' + "200": + description: The response body shall contain the predicted QoS corresponding + to potential routes of a vehicular UE content: application/json: schema: $ref: '#/components/schemas/PredictedQos' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /publish_v2x_message: post: tags: - - 'v2xi' - summary: 'Used to publish a V2X message.' - description: 'Used to publish a V2X message.' + - V2X_msg + summary: Used to publish a V2X message. + description: Used to publish a V2X message. operationId: v2x_messagePOST requestBody: - required: true content: application/json: schema: $ref: '#/components/schemas/V2xMsgPublication' - example: - msgContent: 'Hello World' - msgEncodeFormat: 'base64' - msgType: 1 - stdOrganization: 'ETSI' + required: true responses: - '204': - $ref: '#/components/responses/204' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "204": + description: No Content + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' /subscriptions: get: tags: - - 'v2xi' - summary: 'Request information about the subscriptions for this requestor.' - description: 'Request information about the subscriptions for this requestor.' + - subscription + summary: Request information about the subscriptions for this requestor. + description: Request information about the subscriptions for this requestor. operationId: subGET parameters: - - in: query - name: subscription_type - description: 'Query parameter to filter on a specific subscription type. Permitted values: prov_chg_uu_uni: provisioning information change for V2X communication over Uuunicast prov_chg_uu_mbms: provisioning information change for V2X communication over Uu MBMS prov_chg_uu_pc5: provisioning information change for V2X communication over PC5. v2x_msg: V2X interoperability message' - schema: - type: string - required: false + - name: subscription_type + in: query + description: "Query parameter to filter on a specific subscription type. Permitted\ + \ values: prov_chg_uu_uni: provisioning information change for V2X communication\ + \ over Uuunicast. prov_chg_uu_mbms: provisioning information change for\ + \ V2X communication over Uu MBMS. prov_chg_uu_pc5: provisioning information\ + \ change for V2X communication over PC5. v2x_msg: V2X interoperability message.\ + \ pred_qos: information on the predicted QoS" + required: false + style: form + explode: true + schema: + type: string responses: - '200': - description: 'A response body containing the list of links to requestor subscriptions is returned.' + "200": + description: A response body containing the list of links to requestor subscriptions + is returned. content: application/json: schema: $ref: '#/components/schemas/SubscriptionLinkList' - example: - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions' - subscription: - - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - subscriptionType: V2xMsgSubscription - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' post: tags: - - 'v2xi' + - subscription summary: ' create a new subscription to VIS notifications.' description: ' create a new subscription to VIS notifications.' operationId: subPOST requestBody: - required: true content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 1 - - 2 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 + $ref: '#/components/schemas/subscriptions_body' + required: true responses: - '201': - description: 'In the returned NotificationSubscription structure, the created subscription is described using the appropriate data type.' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 1 - - 2 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '415': - $ref: '#/components/responses/415' - '422': - $ref: '#/components/responses/422' - '429': - $ref: '#/components/responses/429' - + "201": + description: "In the returned NotificationSubscription structure, the created\ + \ subscription is described using the appropriate data type." + content: + application/json: + schema: + $ref: '#/components/schemas/subscriptions_body' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "415": + description: "Unsupported Media Type : used to indicate that the server\ + \ or the client does not support the content type of the entity body." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "422": + description: "Unprocessable Entity : used to indicate that the server understands\ + \ the content type of the request entity and that the syntax of the request\ + \ entity is correct but that the server is unable to process the contained\ + \ instructions. This error condition can occur if an JSON request body\ + \ is syntactically correct but semantically incorrect, for example if\ + \ the target area for the request is considered too large. This error\ + \ condition can also occur if the capabilities required by the request\ + \ are not supported." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' callbacks: notification: '{$request.body#/callbackReference}': post: - summary: 'Callback POST used to send a notification' - description: 'A notification from VIS.' + summary: Callback POST used to send a notification + description: A notification from VIS. operationId: notificationPOST requestBody: description: Subscription notification - required: true content: application/json: schema: oneOf: - - $ref: '#/components/schemas/ProvChgUuUniNotification' - - $ref: '#/components/schemas/ProvChgUuMbmsNotification' - - $ref: '#/components/schemas/ProvChgPc5Notification' - - $ref: '#/components/schemas/V2xMsgNotification' + - $ref: '#/components/schemas/ProvChgUuUniNotification' + - $ref: '#/components/schemas/ProvChgUuMbmsNotification' + - $ref: '#/components/schemas/ProvChgPc5Notification' + - $ref: '#/components/schemas/V2xMsgNotification' + required: true responses: - '204': - $ref: '#/components/responses/204' - + "204": + description: No Content /subscriptions/{subscriptionId}: - parameters: - - in: path - name: subscriptionId - description: 'Refers to created subscription, where the VIS API allocates a unique resource name for this subscription' - schema: - type: string - required: true - get: tags: - - 'v2xi' - summary: 'Retrieve information about this subscription.' - description: 'Retrieve information about this subscription.' + - subscription + summary: Retrieve information about this subscription. + description: Retrieve information about this subscription. operationId: individualSubscriptionGET - + parameters: + - name: subscriptionId + in: path + description: "Refers to created subscription, where the VIS API allocates\ + \ a unique resource name for this subscription" + required: true + style: simple + explode: false + schema: + type: string responses: - '200': - description: 'A response body containing the data type describing the specific RNI event subscription is returned' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 1 - - 2 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - + "200": + description: A response body containing the data type describing the specific + RNI event subscription is returned + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' put: tags: - - 'v2xi' - summary: 'Used to update the existing subscription.' - description: 'Used to update the existing subscription.' + - subscription + summary: Used to update the existing subscription. + description: Used to update the existing subscription. operationId: individualSubscriptionPUT - requestBody: + parameters: + - name: subscriptionId + in: path + description: "Refers to created subscription, where the VIS API allocates\ + \ a unique resource name for this subscription" required: true + style: simple + explode: false + schema: + type: string + requestBody: content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 3 - - 4 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - responses: - '200': - description: 'A response body containing data type describing the updated subscription is returned' - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/ProvChgUuUniSubscription' - - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' - - $ref: '#/components/schemas/ProvChgPc5Subscription' - - $ref: '#/components/schemas/V2xMsgSubscription' - example: - example: - subscriptionType: V2xMsgSubscription - callbackReference: 'http://my.callback.com/vis-v2x-msg/some-id' - _links: - self: - href: 'http://meAppServer.example.com/vis/v2/subscriptions/123' - filterCriteria: - stdOrganization: 'ETSI' - msgType: - - 3 - - 4 - expiryDeadline: - seconds: 1977836800 - nanoseconds: 0 - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - - '403': - $ref: '#/components/responses/403' - - '404': - $ref: '#/components/responses/404' - - '406': - $ref: '#/components/responses/406' - - '412': - $ref: '#/components/responses/412' - - '422': - $ref: '#/components/responses/422' - - '429': - $ref: '#/components/responses/429' - delete: - tags: - - 'v2xi' - summary: 'Used to cancel the existing subscription.' - description: 'Used to cancel the existing subscription.' - operationId: individualSubscriptionDELETE + $ref: '#/components/schemas/subscriptions_subscriptionId_body' + required: true responses: - '204': - $ref: '#/components/responses/204' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '429': - $ref: '#/components/responses/429' - - # /notifitication_end_point_provided_by_client - #post: - -components: - schemas: - CellId: - properties: - cellId: - description: E-UTRAN Cell Identity as a bit string (size (28)). - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: String - required: - - cellId - type: object - x-etsi-ref: 6.6.2 - Earfcn: - properties: - earfcn: - description: E-UTRA Absolute Radio Frequency Channel Number, range (0... 65535) - type: integer - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Integer + "200": + description: A response body containing data type describing the updated + subscription is returned + content: + application/json: + schema: + $ref: '#/components/schemas/subscriptions_subscriptionId_body' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "412": + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts\ + \ when using PUT" + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "422": + description: "Unprocessable Entity : used to indicate that the server understands\ + \ the content type of the request entity and that the syntax of the request\ + \ entity is correct but that the server is unable to process the contained\ + \ instructions. This error condition can occur if an JSON request body\ + \ is syntactically correct but semantically incorrect, for example if\ + \ the target area for the request is considered too large. This error\ + \ condition can also occur if the capabilities required by the request\ + \ are not supported." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + delete: + tags: + - subscription + summary: Used to cancel the existing subscription. + description: Used to cancel the existing subscription. + operationId: individualSubscriptionDELETE + parameters: + - name: subscriptionId + in: path + description: "Refers to created subscription, where the VIS API allocates\ + \ a unique resource name for this subscription" + required: true + style: simple + explode: false + schema: + type: string + responses: + "204": + description: No Content + "401": + description: "Unauthorized : used when the client did not submit credentials." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "404": + description: "Not Found : used when a client provided a URI that cannot\ + \ be mapped to a valid resource URI." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' +components: + schemas: + CellId: + required: + - cellId + type: object + properties: + cellId: + type: string + description: E-UTRAN Cell Identity as a bit string (size (28)). + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + example: + cellId: cellId + x-etsi-ref: 6.6.2 + Earfcn: required: - - earfcn + - earfcn type: object + properties: + earfcn: + type: integer + description: "E-UTRA Absolute Radio Frequency Channel Number, range (0...\ + \ 65535)" + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Integer + example: + earfcn: 1 x-etsi-ref: 6.6.3 Ecgi: + required: + - cellId + - plmn + type: object properties: cellId: - # description': The E-UTRAN Cell Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': CellId $ref: '#/components/schemas/CellId' plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' - required: - - plmn - - cellId - type: object + example: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.5.5 FddInfo: + required: + - dlEarfcn + - dlTransmissionBandwidth + - ulEarfcn + - ulTransmissionBandwidth + type: object properties: dlEarfcn: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Earfcn $ref: '#/components/schemas/Earfcn' dlTransmissionBandwidth: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TransmissionBandwidth $ref: '#/components/schemas/TransmissionBandwidth' ulEarfcn: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Earfcn $ref: '#/components/schemas/Earfcn' ulTransmissionBandwidth: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TransmissionBandwidth $ref: '#/components/schemas/TransmissionBandwidth' - required: - - ulEarfcn - - dlEarfcn - - ulTransmissionBandwidth - - dlTransmissionBandwidth - type: object + example: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null x-etsi-ref: 6.5.6 links: - description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. + required: + - self + type: object properties: self: - # description': Self-referring URI. The URI shall be unique within the VIS API as it acts as an ID for the subscription. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType $ref: '#/components/schemas/LinkType' - required: - - self - type: object + description: Hyperlink related to the resource. This shall be only included + in the HTTP responses and in HTTP PUT requests. x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) LinkType: + required: + - href + type: object properties: href: + type: string description: URI referring to a resource format: uri - type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uri - required: - - href - type: object + example: + href: http://example.com/aeiou x-etsi-ref: 6.5.13 LocationInfo: + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier of the serving cell. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' geoArea: $ref: '#/components/schemas/LocationInfo.geoArea' - type: object + example: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-notes: "NOTE:\tEither ecgi or geoArea shall be present, but not both." x-etsi-ref: 6.5.3 LocationInfo.geoArea: - description: Information of a geographical area. + required: + - latitude + - longitude + type: object properties: latitude: - description: 'Latitude (DATUM = WGS84) -90 to 90 in decimal degree format DDD.ddd' - format: float type: number - x-etsi-mec-cardinality: '1' + description: Latitude (DATUM = WGS84) -90 to 90 in decimal degree format + DDD.ddd + format: float + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Float longitude: - description: 'Longitude (DATUM = WGS84) -180 to 180 in decimal degree format DDD.ddd' - format: float type: number - x-etsi-mec-cardinality: '1' + description: Longitude (DATUM = WGS84) -180 to 180 in decimal degree format + DDD.ddd + format: float + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Float - required: - - latitude - - longitude - type: object + description: Information of a geographical area. + example: + latitude: 0.8008282 + longitude: 6.0274563 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) Pc5NeighbourCellInfo: + required: + - ecgi + - plmn + - siV2xConfig + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' siV2xConfig: - # description': V2X sidelink communication configuration, as defined in ETSI TS 136 331 [i.11]. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': SystemInformationBlockType21 (as defined in ETSI TS 136 331 [i.11]) $ref: '#/components/schemas/SystemInformationBlockType21' - required: - - plmn - - ecgi - - siV2xConfig - type: object + example: + plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.5.12 Pc5ProvisioningInfo: + required: + - proInfoPc5 + type: object properties: proInfoPc5: - type: array minItems: 1 + type: array items: $ref: '#/components/schemas/Pc5ProvisioningInfo.proInfoPc5' timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - proInfoPc5 - type: object + example: + timeStamp: + seconds: 7 + nanoSeconds: 2 + proInfoPc5: + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + dstLayer2Id: dstLayer2Id + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + dstLayer2Id: dstLayer2Id x-etsi-ref: 6.2.4 Pc5ProvisioningInfo.proInfoPc5: - description: The provisioning information per location as defined below. + required: + - dstLayer2Id + - locationInfo type: object properties: dstLayer2Id: - description: "For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS\_136\_321 [i.12].\nPLMN operators coordinate to make sure Destination Layer2 ID(s) for different V2X services are configured in a consistent manner." type: string - x-etsi-mec-cardinality: '1' + description: "For sidelink communication, the Destination Layer-2 ID is\ + \ set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS\_136\_\ + 321 [i.12].\nPLMN operators coordinate to make sure Destination Layer2\ + \ ID(s) for different V2X services are configured in a consistent manner." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5. - items: - $ref: '#/components/schemas/Pc5NeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over PC5. + items: + $ref: '#/components/schemas/Pc5NeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Pc5NeighbourCellInfo - required: - - locationInfo - - dstLayer2Id + description: The provisioning information per location as defined below. + example: + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - plmn: + mnc: mnc + mcc: mcc + siV2xConfig: {} + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + dstLayer2Id: dstLayer2Id x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: Structure (inlined) Plmn: + required: + - mcc + - mnc + type: object properties: mcc: - description: The Mobile Country Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Country Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String mnc: - description: The Mobile Network Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Network Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - mcc - - mnc - type: object + example: + mnc: mnc + mcc: mcc x-etsi-ref: 6.5.4 PredictedQos: + required: + - locationGranularity + - predictionTarget + - qos + type: object properties: locationGranularity: - description: Granularity of visited location. Measured in meters. type: string - x-etsi-mec-cardinality: '1' + description: Granularity of visited location. Measured in meters. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String + noticePeriod: + $ref: '#/components/schemas/TimeStamp' + predictionArea: + $ref: '#/components/schemas/PredictionArea' + predictionTarget: + type: string + description: "Indicates target of QoS prediction. Valid values:\n\n1.\t\ + SINGLE_UE_PREDICTION: \nThe predicted QoS is to be intended as journey-specific\ + \ for a requesting vehicular UE.\n\n2.\tE2E_APPLICATION_INSTANCE_PREDICTION:\n\ + The E2E user plane link between two V2X application instances, where one\ + \ instance relates to a single vehicular UE and the other instance to\ + \ an application instance within another network, i.e. either another\ + \ vehicular UE as in the V2N2V case, or an infrastructure element as in\ + \ the V2N2I case.\n\nShall only be included in the request.\n\n" + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum_inlined + qos: + $ref: '#/components/schemas/Qos' routes: - description: Information relating to the potential routes of a vehicular UE. - items: - $ref: '#/components/schemas/PredictedQos.routes' - minItems: 1 - required: - - routeInfo type: array - x-etsi-mec-cardinality: 1..N - x-etsi-mec-origin-type: Structure (inlined) + items: + $ref: '#/components/schemas/Routes' timeGranularity: - # description': Time granularity of visiting a location. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - locationGranularity - - routes - type: object - x-etsi-notes: "NOTE:\tThe data type of locationGranularity is a string which indicates the granularity of a visited location by means of latitudinal and longitudinal margins." - x-etsi-ref: 6.2.5 + example: + noticePeriod: + seconds: 7 + nanoSeconds: 2 + routes: + - routeInfo: + - location: null + time: null + - location: null + time: null + - routeInfo: + - location: null + time: null + - location: null + time: null + qos: + stream: + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + timeGranularity: null + locationGranularity: locationGranularity + predictionArea: + center: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + radius: radius + predictionTarget: SEE_DESCRIPTION + x-etsi-notes: "NOTE:\tThe data type of locationGranularity is a string which\ + \ indicates the granularity of a visited location by means of latitudinal\ + \ and longitudinal margins." + x-etsi-ref: 6.2.6 PredictedQos.routes: + minItems: 1 + type: object properties: routeInfo: - description: 'Information relating to a specific route. - - The first structure shall relate to the route origin and the last to the route destination. Intermediate waypoint locations may also be provided.' - items: - $ref: '#/components/schemas/PredictedQos.routes.routeInfo' - required: - - location minItems: 2 + required: + - location type: array + description: |- + Information relating to a specific route. + The first structure shall relate to the route origin and the last to the route destination. Intermediate waypoint locations may also be provided. + items: + $ref: '#/components/schemas/PredictedQos.routes.routeInfo' x-etsi-mec-cardinality: 2..N x-etsi-mec-origin-type: Structure (inlined) - type: object - minItems: 1 PredictedQos.routes.routeInfo: type: object properties: location: - # description': Vehicular UE location. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' rsrp: - description: - 'Reference Signal Received Power as defined in ETSI TS 136 214 [i.13]. - - Shall only be included in the response.' - format: uint8 type: integer + description: "Reference Signal Received Power as defined in ETSI TS 136\ + \ 214 [i.13].\nShall only be included in the response." + format: uint8 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint8 rsrq: - description: - 'Reference Signal Received Quality as defined in ETSI TS 136 214 [i.13]. - - Shall only be included in the response.' - format: uint8 type: integer + description: "Reference Signal Received Quality as defined in ETSI TS 136\ + \ 214 [i.13].\nShall only be included in the response." + format: uint8 x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint8 time: - # description': Estimated time at the location. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' ProblemDetails: + type: object properties: detail: - description: A human-readable explanation specific to this occurrence of the problem type: string + description: A human-readable explanation specific to this occurrence of + the problem x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String instance: - description: A URI reference that identifies the specific occurrence of the problem - format: uri type: string + description: A URI reference that identifies the specific occurrence of + the problem + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI status: + type: integer description: The HTTP status code for this occurrence of the problem format: uint32 - type: integer x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 title: - description: A short, human-readable summary of the problem type type: string + description: "A short, human-readable summary of the problem type" x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String type: - description: A URI reference according to IETF RFC 3986 that identifies the problem type - format: uri type: string + description: A URI reference according to IETF RFC 3986 that identifies + the problem type + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI - type: object ProvChgPc5Notification: + required: + - locationInfo + - notificationType + type: object properties: dstLayer2Id: - description: For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321 [i.12]. type: string + description: "For sidelink communication, the Destination Layer-2 ID is\ + \ set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321\ + \ [i.12]." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5. - items: - $ref: '#/components/schemas/Pc5NeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over PC5. + items: + $ref: '#/components/schemas/Pc5NeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Pc5NeighbourCellInfo notificationType: - description: Shall be set to "ProvChgPc5Notification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgPc5Notification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - notificationType - - locationInfo - type: object x-etsi-ref: 6.4.4 ProvChgPc5Subscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: $ref: '#/components/schemas/links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/ProvChgPc5Subscription.filterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "ProvChgPc5Subscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgPc5Subscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: 'NOTE: At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a.' + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE: At least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." x-etsi-ref: 6.3.4 ProvChgPc5Subscription.filterCriteria: - 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. + required: + - dstLayer2Id + - locationInfo + type: object properties: dstLayer2Id: - description: For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321 [i.12]. type: string - x-etsi-mec-cardinality: '1' + description: "For sidelink communication, the Destination Layer-2 ID is\ + \ set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321\ + \ [i.12]." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5. - items: - $ref: '#/components/schemas/Pc5NeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over PC5. + items: + $ref: '#/components/schemas/Pc5NeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Pc5NeighbourCellInfo - required: - - locationInfo - - dstLayer2Id - type: object - x-etsi-mec-cardinality: '1' + 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." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) ProvChgUuMbmsNotification: + required: + - locationInfo + - notificationType + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS. - items: - $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu MBMS. + items: + $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuMbmsNeighbourCellInfo notificationType: - description: Shall be set to "ProvChgUuMbmsNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuMbmsNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' v2xServerUsd: - # description': User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': V2xServerUsd $ref: '#/components/schemas/V2xServerUsd' - required: - - notificationType - - locationInfo - type: object x-etsi-ref: 6.4.3 ProvChgUuMbmsSubscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: $ref: '#/components/schemas/links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/ProvChgUuMbmsSubscription.filterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "ProvChgUuMbmsSubscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuMbmsSubscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." x-etsi-ref: 6.3.3 ProvChgUuMbmsSubscription.filterCriteria: - 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. + required: + - locationInfo + - v2xServerUsd + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS. - items: - $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu MBMS. + items: + $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuMbmsNeighbourCellInfo v2xServerUsd: - # description': User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xServerUsd $ref: '#/components/schemas/V2xServerUsd' - required: - - locationInfo - - v2xServerUsd - type: object - x-etsi-mec-cardinality: '1' + 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." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) ProvChgUuUniNotification: + required: + - locationInfo + - notificationType + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast. - items: - $ref: '#/components/schemas/UuUniNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu unicast. + items: + $ref: '#/components/schemas/UuUniNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuUniNeighbourCellInfo notificationType: - description: Shall be set to "ProvChgUuUniNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuUniNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' v2xApplicationServer: - # description': V2X Application Server address (consisting of IP address and UDP port) for unicast. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': V2xApplicationServer $ref: '#/components/schemas/V2xApplicationServer' - required: - - notificationType - - locationInfo - type: object x-etsi-ref: 6.4.2 ProvChgUuUniSubscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: $ref: '#/components/schemas/links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/ProvChgUuUniSubscription.filterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "ProvChgUuUniSubscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "ProvChgUuUniSubscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [i.1], clause 6.12a." x-etsi-ref: 6.3.2 ProvChgUuUniSubscription.filterCriteria: - 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. + required: + - locationInfo + - v2xApplicationServer + type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast. - items: - $ref: '#/components/schemas/UuUniNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu unicast. + items: + $ref: '#/components/schemas/UuUniNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuUniNeighbourCellInfo v2xApplicationServer: - # description': V2X Application Server address (consisting of IP address and UDP port) for unicast. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xApplicationServer $ref: '#/components/schemas/V2xApplicationServer' - required: - - locationInfo - - v2xApplicationServer - type: object - x-etsi-mec-cardinality: '1' + 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." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) SubscriptionLinkList: - properties: - _links: - $ref: '#/components/schemas/SubscriptionLinkList.links' required: - - _links + - _links type: object - x-etsi-ref: 6.3.6 + properties: + _links: + $ref: '#/components/schemas/_links2' + example: + _links: + subscriptions: + - subscriptionType: subscriptionType + href: http://example.com/aeiou + - subscriptionType: subscriptionType + href: http://example.com/aeiou + self: + href: http://example.com/aeiou + x-etsi-ref: 6.3.7 SystemInformationBlockType21: type: object TddInfo: + required: + - earfcn + - subframeAssignment + - transmissionBandwidth + type: object properties: earfcn: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Earfcn $ref: '#/components/schemas/Earfcn' subframeAssignment: - description: Uplink-downlink subframe configuration information. type: string - x-etsi-mec-cardinality: '1' + description: Uplink-downlink subframe configuration information. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String transmissionBandwidth: - # description': '' - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TransmissionBandwidth $ref: '#/components/schemas/TransmissionBandwidth' - required: - - earfcn - - transmissionBandwidth - - subframeAssignment - type: object + example: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null x-etsi-ref: 6.5.7 - SubscriptionLinkList.links: - description: List of hyperlinks related to the resource. - properties: - self: - # description': URI of this resource. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType - $ref: '#/components/schemas/LinkType' - subscriptions: - type: array - items: - $ref: '#/components/schemas/SubscriptionLinkList.links.subscriptions' + TestNotification: required: - - self + - _links + - notificationType type: object - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Structure (inlined) - SubscriptionLinkList.links.subscriptions: - description: The service consumer's subscriptions. - type: object - minItems: 0 - properties: - href: - description: The URI referring to the subscription. - format: uri - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: URI - subscriptionType: - description: Type of the subscription. The values are as defined in the "subscriptionType" attribute for each different V2X information event subscription data type. - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: String - required: - - href - - subscriptionType - x-etsi-mec-cardinality: 0..N - x-etsi-mec-origin-type: Structure (inlined) - TestNotification: properties: _links: - description: 'Hyperlink related to the resource. ' - properties: - subscription: - # description': URI identifying the subscription for the test notification. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType - $ref: '#/components/schemas/LinkType' - required: - - subscription - type: object - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Structure (inlined) + $ref: '#/components/schemas/TestNotification__links' notificationType: - description: Shall be set to "TestNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "TestNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - notificationType - - _links - type: object x-etsi-ref: 6.4.6 TimeStamp: + required: + - nanoSeconds + - seconds + type: object properties: nanoSeconds: - description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. - format: uint32 type: integer - x-etsi-mec-cardinality: '1' + description: "The nanoseconds part of the time. Time is defined as Unix-time\ + \ since January 1, 1970, 00:00:00 UTC." + format: uint32 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 seconds: - description: The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC. - format: uint32 type: integer - x-etsi-mec-cardinality: '1' + description: "The seconds part of the time. Time is defined as Unixtime\ + \ since January 1, 1970, 00:00:00 UTC." + format: uint32 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Uint32 - required: - - seconds - - nanoSeconds - type: object + example: + seconds: 7 + nanoSeconds: 2 x-etsi-ref: 6.5.2 TransmissionBandwidth: + required: + - transmissionBandwidth + type: object properties: transmissionBandwidth: $ref: '#/components/schemas/TransmissionBandwidth.transmissionBandwidth' - required: - - transmissionBandwidth - type: object + example: + transmissionBandwidth: 5 x-etsi-ref: 6.6.4 TransmissionBandwidth.transmissionBandwidth: + type: integer description: | 'Numeric value corresponding to the transmission bandwidth expressed in units of resource blocks as follows: @@ -1231,518 +1633,1474 @@ components: 6 = bw100 (100 resource blocks)' enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - x-etsi-mec-cardinality: '1' + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Enum UuMbmsNeighbourCellInfo: + required: + - ecgi + - fddInfo + - mbmsServiceAreaIdentity + - pci + - plmn + - tddInfo + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' fddInfo: - # description': Information for FDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': FddInfo $ref: '#/components/schemas/FddInfo' mbmsServiceAreaIdentity: + minItems: 1 + type: array description: Supported MBMS Service Area Identities in the cell. items: type: string - minItems: 1 - type: array x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: String pci: - description: Physical Cell Identifier. type: integer - x-etsi-mec-cardinality: '1' + description: Physical Cell Identifier. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Integer plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' tddInfo: - # description': Information for TDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TddInfo $ref: '#/components/schemas/TddInfo' - required: - - plmn - - ecgi - - pci - - fddInfo - - tddInfo + example: + fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: - mbmsServiceAreaIdentity - type: object + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.5.11 UuMbmsProvisioningInfo: + required: + - proInfoUuMbms + type: object properties: proInfoUuMbms: - type: array minItems: 1 + type: array items: $ref: '#/components/schemas/UuMbmsProvisioningInfo.proInfoUuMbms' timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - proInfoUuMbms - type: object + example: + timeStamp: + seconds: 7 + nanoSeconds: 2 + proInfoUuMbms: + - v2xServerUsd: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier + - serviceAreaIdentifier + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - v2xServerUsd: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier + - serviceAreaIdentifier + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-ref: 6.2.3 UuMbmsProvisioningInfo.proInfoUuMbms: - description: The provisioning information per location as defined below. + required: + - locationInfo + - v2xServerUsd type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS. - items: - $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu MBMS. + items: + $ref: '#/components/schemas/UuMbmsNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuMbmsNeighbourCellInfo v2xServerUsd: - # description': User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xServerUsd $ref: '#/components/schemas/V2xServerUsd' - required: - - locationInfo - - v2xServerUsd + description: The provisioning information per location as defined below. + example: + v2xServerUsd: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier + - serviceAreaIdentifier + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + mbmsServiceAreaIdentity: + - mbmsServiceAreaIdentity + - mbmsServiceAreaIdentity + pci: 0 + plmn: + mnc: mnc + mcc: mcc + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: Structure (inlined) UuUniNeighbourCellInfo: + required: + - ecgi + - fddInfo + - pci + - plmn + - tddInfo + type: object properties: ecgi: - # description': E-UTRAN CelI Global Identifier. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Ecgi $ref: '#/components/schemas/Ecgi' fddInfo: - # description': Information for FDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': FddInfo $ref: '#/components/schemas/FddInfo' pci: - description: Physical Cell Identifier. type: integer - x-etsi-mec-cardinality: '1' + description: Physical Cell Identifier. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Integer plmn: - # description': Public Land Mobile Network Identity. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': Plmn $ref: '#/components/schemas/Plmn' tddInfo: - # description': Information for TDD operation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TddInfo $ref: '#/components/schemas/TddInfo' - required: - - plmn - - ecgi - - pci - - fddInfo - - tddInfo - type: object + example: + fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null x-etsi-ref: 6.5.9 UuUnicastProvisioningInfo: + required: + - proInfoUuUnicast + type: object properties: proInfoUuUnicast: - type: array minItems: 1 + type: array items: $ref: '#/components/schemas/UuUnicastProvisioningInfo.proInfoUuUnicast' timeStamp: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - proInfoUuUnicast - type: object + example: + timeStamp: + seconds: 7 + nanoSeconds: 2 + proInfoUuUnicast: + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + v2xApplicationServer: + ipAddress: ipAddress + udpPort: udpPort + - locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + v2xApplicationServer: + ipAddress: ipAddress + udpPort: udpPort x-etsi-ref: 6.2.2 UuUnicastProvisioningInfo.proInfoUuUnicast: - description: The provisioning information per location as defined below. + required: + - locationInfo + - v2xApplicationServer type: object properties: locationInfo: - # description': Location information to identify a cell of a base station or a particular geographical area. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LocationInfo $ref: '#/components/schemas/LocationInfo' neighbourCellInfo: - description: The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast. - items: - $ref: '#/components/schemas/UuUniNeighbourCellInfo' minItems: 0 type: array + description: The information of the neighbour cells in a visiting PLMN that + support V2X communication over Uu unicast. + items: + $ref: '#/components/schemas/UuUniNeighbourCellInfo' x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: UuUniNeighbourCellInfo v2xApplicationServer: - # description': V2X Application Server address (consisting of IP address and UDP port) for unicast. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': V2xApplicationServer $ref: '#/components/schemas/V2xApplicationServer' - required: - - locationInfo - - v2xApplicationServer + description: The provisioning information per location as defined below. + example: + locationInfo: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + neighbourCellInfo: + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + - fddInfo: + dlEarfcn: + earfcn: 1 + ulEarfcn: null + dlTransmissionBandwidth: + transmissionBandwidth: 5 + ulTransmissionBandwidth: null + pci: 5 + plmn: null + tddInfo: + subframeAssignment: subframeAssignment + transmissionBandwidth: null + earfcn: null + ecgi: null + v2xApplicationServer: + ipAddress: ipAddress + udpPort: udpPort x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: Structure (inlined) V2xApplicationServer: + required: + - ipAddress + - udpPort + type: object properties: ipAddress: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String udpPort: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - ipAddress - - udpPort - type: object + example: + ipAddress: ipAddress + udpPort: udpPort x-etsi-ref: 6.5.8 V2xMsgNotification: + required: + - _links + - msgContent + - msgPropertiesValues + - msgRepresentationFormat + - notificationType + - timeStamp + type: object properties: _links: - $ref: '#/components/schemas/V2xMsgNotification.links' + $ref: '#/components/schemas/_links3' msgContent: - description: Published V2X message content. The format of the string is defined by the standardization organization indicated by the attribute stdOrganization. type: string - x-etsi-mec-cardinality: '1' + description: Published V2X message content. The format of the string is + defined by the standardization organization indicated by the attribute + stdOrganization of the msgPropertiesValues attribute. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgEncodeFormat: - description: The encode format of the V2X message, for example base64. + msgPropertiesValues: + $ref: '#/components/schemas/V2xMsgPropertiesValues' + msgRepresentationFormat: type: string - x-etsi-mec-cardinality: '1' + description: "The representation format of the binary V2X message, for example\ + \ base64 or hexadecimal representation." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgType: - $ref: '#/components/schemas/msgType' notificationType: - description: Shall be set to "V2xMsgNotification". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "V2xMsgNotification". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - stdOrganization: - description: "Standardization organization which defines the published V2X message type: \nETSI: European Telecommunications Standards Institute.\nSee note 1." - enum: - - ETSI - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Enum timeStamp: - # description': Date and time of the notification generation. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' - required: - - notificationType - - timeStamp - - stdOrganization - - msgType - - msgEncodeFormat - - msgContent - - _links - type: object - x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." x-etsi-ref: 6.4.5 V2xMsgNotification.links: - description: links to resources related to this notification. + required: + - subscription + type: object properties: subscription: - # description': A link to the related subscription. - # x-etsi-mec-cardinality': '1' - # x-etsi-mec-origin-type': LinkType $ref: '#/components/schemas/LinkType' - required: - - subscription - type: object - x-etsi-mec-cardinality: '1' + description: links to resources related to this notification. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) V2xMsgPublication: + required: + - msgContent + - msgPropertiesValues + - msgRepresentationFormat + type: object properties: msgContent: - description: Published V2X message content. Its format is defined by the standardization organization indicated by the attribute stdOrganization. type: string - x-etsi-mec-cardinality: '1' + description: Published V2X message content. Its format is defined by the + standardization organization indicated by the attribute stdOrganization + of the msgPropertiesValues attribute. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgEncodeFormat: - description: The encode format of the V2X message, for example base64. + msgPropertiesValues: + $ref: '#/components/schemas/V2xMsgPropertiesValues' + msgRepresentationFormat: type: string - x-etsi-mec-cardinality: '1' + description: "The representation format of the binary V2X message, for example\ + \ base64 or hexadecimal representation." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - msgType: - $ref: '#/components/schemas/msgType' - stdOrganization: - description: "Standardization organization which defines the published V2X message type:\nETSI: European Telecommunications Standards Institute. \nSee note 1." - enum: - - ETSI - type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: Enum - required: - - stdOrganization - - msgType - - msgEncodeFormat - - msgContent - type: object - x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." - x-etsi-ref: 6.2.6 + x-etsi-ref: 6.2.7 msgType: - description: | - Published V2X message type. Its value is defined by the standardization organization indicated by the attribute stdOrganization. See note 2. - − denm(1): Decentralized Environmental Notification Message (DENM) as specified in ETSI EN 302 637-3, - − cam(2): Cooperative Awareness Message (CAM) as specified in ETSI EN 302 637-2, - − poi(3): Point of Interest message as specified in ETSI TS 101 556-1, - − spatem(4): Signal Phase And Timing (SPAT) message as specified in SAE J2735 and in ETSI TS 103 301, - − mapem(5): MAP message as specified in SAE J2735 and in ETSI TS 103 301, - − ivim(6): In Vehicle Information (IVI) message as defined in ISO TS 19321, - − ev-rsr(7): Electric vehicle recharging spot reservation message, as defined in ETSI TS 101 556-3, - − tistpgtransaction(8): messages for Tyre Information System (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI TS 101 556-2, - − srem(9): Traffic light Signal Request Message as specified in ETSI TS 103 301, - − ssem(10): Traffic Light Signal Request Status Message as specified in ETSI TS 103 301. - − evcsn(11): Electrical Vehicle Charging Spot Notification message as specified in ETSI TS 101 556-1, - − saem(12): Services Announcement Extended Message as specified in ETSI TS 102 890-1, - − rtcmem(13): Radio Technical Commission for Maritime Services (RTCM) Message as specified in ETSI TS 103 301, - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 type: integer - x-etsi-mec-cardinality: '1' + description: "Published V2X message type. Its value is defined by the standardization\ + \ organization indicated by the attribute stdOrganization. See note 2.\n−\ + \ denm(1): Decentralized Environmental Notification Message (DENM) as specified\ + \ in ETSI EN 302 637-3,\n− cam(2): Cooperative Awareness Message (CAM) as\ + \ specified in ETSI EN 302 637-2,\n− poi(3): Point of Interest message as\ + \ specified in ETSI TS 101 556-1,\n− spatem(4): Signal Phase And Timing (SPAT)\ + \ message as specified in SAE J2735 and in ETSI TS 103 301,\n− mapem(5): MAP\ + \ message as specified in SAE J2735 and in ETSI TS 103 301,\n− ivim(6): In\ + \ Vehicle Information (IVI) message as defined in ISO TS 19321,\n− ev-rsr(7):\ + \ Electric vehicle recharging spot reservation message, as defined in ETSI\ + \ TS 101 556-3,\n− tistpgtransaction(8): messages for Tyre Information System\ + \ (TIS) and Tyre Pressure Gauge (TPG) interoperability, as specified in ETSI\ + \ TS 101 556-2,\n− srem(9): Traffic light Signal Request Message as specified\ + \ in ETSI TS 103 301,\n− ssem(10): Traffic Light Signal Request Status Message\ + \ as specified in ETSI TS 103 301.\n− evcsn(11): Electrical Vehicle Charging\ + \ Spot Notification message as specified in ETSI TS 101 556-1,\n− saem(12):\ + \ Services Announcement Extended Message as specified in ETSI TS 102 890-1,\n\ + − rtcmem(13): Radio Technical Commission for Maritime Services (RTCM) Message\ + \ as specified in ETSI TS 103 301,\n" + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Enum V2xMsgSubscription: + required: + - filterCriteria + - subscriptionType + type: object properties: _links: - $ref: '#/components/schemas/links' + $ref: '#/components/schemas/_links' callbackReference: - description: URI exposed by the client on which to receive notifications via HTTP. See note 1. - format: uri type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri expiryDeadline: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp $ref: '#/components/schemas/TimeStamp' filterCriteria: - $ref: '#/components/schemas/V2xMsgSubscription.filterCriteria' + $ref: '#/components/schemas/V2xMsgFilterCriteria' requestTestNotification: - description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC 009 [i.1], clause 6.12a.\nDefault: FALSE." type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS MEC 009 [9], clause 6.12a. \nDefault: FALSE." x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean subscriptionType: - description: Shall be set to "V2xMsgSubscription". type: string - x-etsi-mec-cardinality: '1' + description: Shall be set to "V2xMsgSubscription". + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String websockNotifConfig: - # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note 1. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': WebsockNotifConfig $ref: '#/components/schemas/WebsockNotifConfig' - required: - - subscriptionType - - filterCriteria - type: object - x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a.\nNOTE 2:\tOther standardization organizations could be added as needed.\nNOTE 3:\tThe V2X message types of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [9], clause 6.12a." x-etsi-ref: 6.3.5 V2xMsgSubscription.filterCriteria: - 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. + required: + - stdOrganization + type: object properties: msgType: - description: Subscribed V2X message type. Its value is defined by the standardization organization indicated by the attribute stdOrganization. See note 3. - items: - type: integer minItems: 0 type: array + description: Subscribed V2X message type. Its value is defined by the standardization + organization indicated by the attribute stdOrganization. See note 3. + items: + type: string x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Enum stdOrganization: - description: "Standardization organization which defines the subscribed V2X message type: \nETSI: European Telecommunications Standards Institute. \nSee note 2." - enum: - - ETSI type: string - x-etsi-mec-cardinality: '1' + description: "Standardization organization which defines the subscribed\ + \ V2X message type: \nETSI: European Telecommunications Standards Institute.\ + \ \nSee note 2." + enum: + - ETSI + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Enum - required: - - stdOrganization - type: object - x-etsi-mec-cardinality: '1' + 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." + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) V2xServerUsd: + required: + - sdpInfo + - serviceAreaIdentifier + - tmgi + type: object properties: sdpInfo: $ref: '#/components/schemas/V2xServerUsd.sdpInfo' serviceAreaIdentifier: - description: A list of service area identifier for the applicable MBMS broadcast area. - items: - type: string minItems: 1 type: array + description: A list of service area identifier for the applicable MBMS broadcast + area. + items: + type: string x-etsi-mec-cardinality: 1..N x-etsi-mec-origin-type: String tmgi: $ref: '#/components/schemas/V2xServerUsd.tmgi' - required: - - tmgi + example: + sdpInfo: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + tmgi: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + serviceAreaIdentifier: + - serviceAreaIdentifier - serviceAreaIdentifier - - sdpInfo - type: object x-etsi-ref: 6.5.10 V2xServerUsd.sdpInfo: - description: SDP with IP multicast address and port number used for V2X communication via MBMS. + required: + - ipMulticastAddress + - portNumber + type: object properties: ipMulticastAddress: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String portNumber: - description: '' type: string - x-etsi-mec-cardinality: '1' + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - ipMulticastAddress - - portNumber - type: object - x-etsi-mec-cardinality: '1' + description: SDP with IP multicast address and port number used for V2X communication + via MBMS. + example: + ipMulticastAddress: ipMulticastAddress + portNumber: portNumber + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: Structure (inlined) V2xServerUsd.tmgi: - description: Temporary Mobile Group Identity (TMGI), which is used within MBMS to uniquely identify Multicast and Broadcast bearer services. + required: + - mbmsServiceId + - mcc + - mnc + type: object properties: mbmsServiceId: - description: MBMS Service ID consisting of three octets. type: string - x-etsi-mec-cardinality: '1' + description: MBMS Service ID consisting of three octets. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String mcc: - description: The Mobile Country Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Country Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String mnc: - description: The Mobile Network Code part of PLMN Identity. type: string - x-etsi-mec-cardinality: '1' + description: The Mobile Network Code part of PLMN Identity. + x-etsi-mec-cardinality: "1" x-etsi-mec-origin-type: String - required: - - mbmsServiceId - - mcc - - mnc - type: object - x-etsi-mec-cardinality: '' + description: "Temporary Mobile Group Identity (TMGI), which is used within MBMS\ + \ to uniquely identify Multicast and Broadcast bearer services." + example: + mnc: mnc + mcc: mcc + mbmsServiceId: mbmsServiceId + x-etsi-mec-cardinality: "" x-etsi-mec-origin-type: Structure (inlined) WebsockNotifConfig: + type: object properties: requestWebsocketUri: - description: Set to TRUE by the service consumer to indicate that Websocket delivery is requested. type: boolean + description: Set to TRUE by the service consumer to indicate that Websocket + delivery is requested. x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean websocketUri: - description: Set by VIS to indicate to the service consumer the Websocket URI to be used for delivering notifications. + type: string + description: Set by VIS to indicate to the service consumer the Websocket + URI to be used for delivering notifications. format: uri + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uri + x-etsi-ref: 6.5.18 + V2xMsgDistributionServerInfo: + required: + - v2xMsgDistributionServer + type: object + properties: + locationInfo: + minItems: 0 + type: array + description: Location information to identify a particular geographical + area of interest to the service consumer for receiving V2X messages. + items: + $ref: '#/components/schemas/LocationInfo' + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: LocationInfo + v2xMsgDistributionServer: + minItems: 1 + type: array + description: Describes the information of the V2X Message Distribution Servers + supported by the service consumer for direct communication. + items: + $ref: '#/components/schemas/V2xMsgDistributionServer' + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: V2xMsgDistributionServer + example: + locationInfo: + - geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + - geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + v2xMsgDistributionServer: + - infoConnection: + port_number: 0 + ipAddress: ipAddress + infoProtocol: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + - infoConnection: + port_number: 0 + ipAddress: ipAddress + infoProtocol: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + x-etsi-ref: 6.2.5 + PredQosSubscription: + required: + - filterCriteria + - subscriptionType + type: object + properties: + _links: + $ref: '#/components/schemas/_links1' + callbackReference: type: string + description: URI exposed by the client on which to receive notifications + via HTTP. See note. + format: uri x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uri + expiryDeadline: + $ref: '#/components/schemas/TimeStamp' + filterCriteria: + $ref: '#/components/schemas/QosPredFilterCriteria' + requestTestNotification: + type: boolean + description: "Shall be set to TRUE by the service consumer to request a\ + \ test notification via HTTP on the callbackReference URI, as described\ + \ in ETSI GS MEC 009 [9], clause 6.12a. \nDefault: FALSE." + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Boolean + subscriptionType: + type: string + description: Shall be set to "PredQosSubscription". + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + websockNotifConfig: + $ref: '#/components/schemas/WebsockNotifConfig' + anyOf: + - oneOf: + - required: + - callbackReference + - required: + - websockNotifConfig + x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig\ + \ shall be provided by the service consumer. If both are provided, it is up\ + \ to VIS to choose an alternative and return only that alternative in the\ + \ response, as described in ETSI GS MEC 009 [9], clause 6.12a." + x-etsi-ref: 6.3.6 + V2xMsgPropertiesValues: + required: + - locationInfo + - msgProtocolVersion + - msgType + - stdOrganization type: object + properties: + locationInfo: + $ref: '#/components/schemas/LocationInfo' + msgProtocolVersion: + type: integer + description: "Protocol version of the V2X message (0..255),\nSee note 3." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Integer + msgType: + type: string + description: Published V2X message type. Its value is defined by the standardization + organization indicated by the attribute stdOrganization. See note 2. + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum + stdOrganization: + type: string + description: "Standardization organization which defines the published V2X\ + \ message type: \nETSI: European Telecommunications Standards Institute.\ + \ \nSee note 1." + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum + x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as\ + \ needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified\ + \ in ETSI TS 102 894-2 [6], clause A.114.\nNOTE 3:\tThe message protocol version\ + \ of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." x-etsi-ref: 6.5.14 + V2xMsgFilterCriteria: + required: + - stdOrganization + type: object + properties: + locationInfo: + minItems: 0 + type: array + description: Location information to identify a cell of a base station or + a particular geographical area to which the V2X message can be associated. + items: + $ref: '#/components/schemas/LocationInfo' + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: LocationInfo + msgProtocolVersion: + minItems: 0 + type: array + description: "Protocol version of the V2X message (0..255),\nSee note 3." + items: + type: integer + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Integer + msgType: + minItems: 0 + type: array + description: Published V2X message type. Its value is defined by the standardization + organization indicated by the attribute stdOrganization. See note 2. + items: + type: string + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Enum + stdOrganization: + type: string + description: "Standardization organization which defines the published V2X\ + \ message type: \nETSI: European Telecommunications Standards Institute.\ + \ \nSee note 1." + enum: + - SEE_DESCRIPTION + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Enum + x-etsi-notes: "NOTE 1:\tOther standardization organizations could be added as\ + \ needed.\nNOTE 2:\tThe V2X message types of ETSI shall be used as specified\ + \ in ETSI TS 102 894-2 [6], clause A.114.\nNOTE 3:\tThe message protocol version\ + \ of ETSI shall be used as specified in ETSI TS 102 894-2 [6], clause A.114." + x-etsi-ref: 6.5.15 + V2xMsgDistributionServer: + required: + - infoProtocol + type: object + properties: + infoConnection: + $ref: '#/components/schemas/InfoConnection' + infoProtocol: + $ref: '#/components/schemas/InfoProtocol' + example: + infoConnection: + port_number: 0 + ipAddress: ipAddress + infoProtocol: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + x-etsi-notes: "NOTE:\tOther application layer protocols (and versions thereof)\ + \ may be added as needed." + x-etsi-ref: 6.5.16 + InfoConnection: + required: + - ipAddress + - port_number + type: object + properties: + ipAddress: + type: string + description: IP address of the V2X Message Distribution Server. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + port_number: + type: integer + description: Port number of the V2X Message Distribution Server. + x-etsi-mec-cardinality': "1" + x-etsi-mec-origin-type': Integer (0..65535) + description: Connection information of the V2X Message Distribution Server the + service consumer can use for direct connection. Shall only be included in + the response. + example: + port_number: 0 + ipAddress: ipAddress + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + InfoProtocol: + required: + - msgProtocol + - protImplementation + type: object + properties: + msgProtocol: + minItems: 1 + type: array + description: "Numerical value corresponding to the application layer protocol\ + \ supported by the service consumer. For the msgProtocol, the following\ + \ values are currently defined (see note): 0 = MQTT v3.0.0 1 = MQTT v3.1.1\ + \ 2 = MQTT v5 3 = MQTT-SN 4 = AMQP 1.0" + items: + type: integer + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Enum + protImplementation: + type: string + description: "Implementation specifics of application layer protocol, e.g.\_\ + programming language." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: Specifics of the application layer protocol of V2X Message Distribution + Server. + example: + msgProtocol: + - 6 + - 6 + protImplementation: protImplementation + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + QosPredFilterCriteria: + type: object + properties: + streamId: + type: string + description: "The predicted QoS at the related time and vehicular UE location\ + \ is provided for a specific data stream. In case of 3GPP network, this\ + \ is mapped to a QoS flow. Stream needs to also contain the stream ID\ + \ which, in case of the 3GPP network, can be mapped on to the 5QI or QCI.\n\ + See note." + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + x-etsi-notes: "NOTE:\tOther identifiers could be added as needed." + x-etsi-ref: 6.5.17 + PredictionArea: + required: + - center + - radius + type: object + properties: + center: + $ref: '#/components/schemas/LocationInfo' + radius: + type: string + description: Radius of geographical area including the two ends of the user + plane link between two V2X application instances. Measured in meters. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: |- + Geographical area including the two ends of the user plane link between two V2X application instances. + It shall only be present when "predictionTarget" = "E2E_APPLICATION_INSTANCE_PREDICTION". + example: + center: + geoArea: + latitude: 0.8008282 + longitude: 6.0274563 + ecgi: + plmn: + mnc: mnc + mcc: mcc + cellId: + cellId: cellId + radius: radius + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + Qos: + required: + - stream + type: object + properties: + stream: + type: array + items: + $ref: '#/components/schemas/Stream' + description: Predicted QoS at the related time and vehicular UE location. Shall + only be included in the response. + example: + stream: + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + Stream: + minItems: 1 + required: + - qosKpi + type: object + properties: + qosKpi: + type: array + items: + $ref: '#/components/schemas/QosKpi' + description: "Predicted QoS at the related time and vehicular UE location for\ + \ the specific data stream. In case of 3GPP network, this is mapped to a QoS\ + \ flow. Stream needs to also contain the stream ID that, in case of the 3GPP\ + \ network, can be mapped on to the 5QI or QCI." + example: + qosKpi: + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + - kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Structure (inlined) + QosKpi: + minItems: 1 + required: + - kpiName + - kpiValue + type: object + properties: + confidence: + type: string + description: "Confidence of the prediction, as returned by the relevant\ + \ domain PF. The value and the measurement of the confidence depends on\ + \ the SLA. Shall only be included in the response." + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + kpiName: + type: string + description: "The name of the KPI (e.g. latency, UL bitrate, etc). It can\ + \ be included in the request and in the response." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + kpiValue: + type: string + description: "Information on the predicted value for the specific QoS KPI.\ + \ It can be in different forms, such as upper bound and lower bound, CDF,\ + \ actual value, etc. Shall only be included in the response." + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: This structure contains the prediction for a specific QoS KPI related + to a given data stream. + example: + kpiValue: kpiValue + confidence: confidence + kpiName: kpiName + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Structure (inlined) + Routes: + minItems: 0 + required: + - routeInfo + type: object + properties: + routeInfo: + type: array + items: + $ref: '#/components/schemas/RouteInfo' + description: Information relating to the potential routes of a vehicular UE. + Shall only be present when "predictionTarget" = "SINGLE_UE_PREDICTION". + example: + routeInfo: + - location: null + time: null + - location: null + time: null + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Structure (inlined) + RouteInfo: + minItems: 1 + required: + - location + type: object + properties: + location: + $ref: '#/components/schemas/LocationInfo' + time: + $ref: '#/components/schemas/TimeStamp' + description: |- + Information relating to a specific route. + The first structure shall relate to the route origin and the last to the route destination. Intermediate waypoint locations may also be provided. + example: + location: null + time: null + x-etsi-mec-cardinality: 1..N + x-etsi-mec-origin-type: Structure (inlined) + _links: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + description: Hyperlink related to the resource. This shall be only included + in the HTTP responses and in HTTP PUT requests. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + _links1: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + description: Hyperlink related to the resource. This shall be only included + in the HTTP responses and in HTTP PUT requests. + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Structure (inlined) + _links2: + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + subscriptions: + type: array + items: + $ref: '#/components/schemas/Subscriptions' + description: List of hyperlinks related to the resource. + example: + subscriptions: + - subscriptionType: subscriptionType + href: http://example.com/aeiou + - subscriptionType: subscriptionType + href: http://example.com/aeiou + self: + href: http://example.com/aeiou + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + _links3: + required: + - subscription + type: object + properties: + subscription: + $ref: '#/components/schemas/LinkType' + description: Links to resources related to this notification. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Structure (inlined) + Subscriptions: + minItems: 0 + required: + - href + - subscriptionType + type: object + properties: + href: + type: string + description: The URI referring to the subscription. + format: uri + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: Uri + subscriptionType: + type: string + description: Type of the subscription. The values are as defined in the + "subscriptionType" attribute for each different V2X information event + subscription data type. + x-etsi-mec-cardinality: "1" + x-etsi-mec-origin-type: String + description: The service consumer's subscriptions. + example: + subscriptionType: subscriptionType + href: http://example.com/aeiou + x-etsi-mec-cardinality: 0..N + x-etsi-mec-origin-type: Structure (inlined) + subscriptions_body: + oneOf: + - $ref: '#/components/schemas/ProvChgUuUniSubscription' + - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' + - $ref: '#/components/schemas/ProvChgPc5Subscription' + - $ref: '#/components/schemas/V2xMsgSubscription' + inline_response_200: + oneOf: + - $ref: '#/components/schemas/ProvChgUuUniSubscription' + - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' + - $ref: '#/components/schemas/ProvChgPc5Subscription' + - $ref: '#/components/schemas/V2xMsgSubscription' + - $ref: '#/components/schemas/PredQosSubscription' + subscriptions_subscriptionId_body: + oneOf: + - $ref: '#/components/schemas/ProvChgUuUniSubscription' + - $ref: '#/components/schemas/ProvChgUuMbmsSubscription' + - $ref: '#/components/schemas/ProvChgPc5Subscription' + - $ref: '#/components/schemas/V2xMsgSubscription' + - $ref: '#/components/schemas/PredQosSubscription' + TestNotification__links: + required: + - subscription + type: object + properties: + subscription: + $ref: '#/components/schemas/LinkType' + description: 'Hyperlink related to the resource. ' + ExpiryNotification: + properties: + _links: + description: Hyperlink related to the resource. + properties: + subscription: + $ref: '#/components/schemas/LinkType' + required: + - subscription + type: object + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Structure (inlined) + expiryDeadline: + $ref: '#/components/schemas/TimeStamp' + notificationType: + description: Shall be set to "ExpiryNotification". + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - notificationType + - _links + - expiryDeadline + type: object + x-etsi-ref: 6.4.4 responses: - '204': + "204": description: No Content - '206': + "206": description: Partial content - '400': - description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' + "400": + description: "Bad Request : used to indicate that incorrect parameters were\ + \ passed to the request." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '401': - description: 'Unauthorized : used when the client did not submit credentials.' + "401": + description: "Unauthorized : used when the client did not submit credentials." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '403': - description: 'Forbidden : operation is not allowed given the current status of the resource.' + "403": + description: "Forbidden : operation is not allowed given the current status\ + \ of the resource." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '404': - description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' + "404": + description: "Not Found : used when a client provided a URI that cannot be\ + \ mapped to a valid resource URI." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '406': - description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' + "406": + description: "Not Acceptable : used to indicate that the server cannot provide\ + \ the any of the content formats supported by the client." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '409': - description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource' + "409": + description: "Conflict : The operation cannot be executed currently, due to\ + \ a conflict with the state of the resource" content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '412': - description: 'Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT' + "412": + description: "Precondition failed : used when a condition has failed during\ + \ conditional requests, e.g. when using ETags to avoid write conflicts when\ + \ using PUT" content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '415': - description: 'Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.' + "415": + description: "Unsupported Media Type : used to indicate that the server or\ + \ the client does not support the content type of the entity body." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '422': - description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.' + "422": + description: "Unprocessable Entity : used to indicate that the server understands\ + \ the content type of the request entity and that the syntax of the request\ + \ entity is correct but that the server is unable to process the contained\ + \ instructions. This error condition can occur if an JSON request body is\ + \ syntactically correct but semantically incorrect, for example if the target\ + \ area for the request is considered too large. This error condition can also\ + \ occur if the capabilities required by the request are not supported." content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' - '429': - description: 'Too Many Requests : used when a rate limiter has triggered.' + "429": + description: "Too Many Requests : used when a rate limiter has triggered." content: application/json: schema: diff --git a/config/api/wais-api.yaml b/config/api/wais-api.yaml index 6414ea387b92acb2bcedc5632f68037d7e3c32b7..630ca695accb74ecad76a3d304b781e41e0436fd 100644 --- a/config/api/wais-api.yaml +++ b/config/api/wais-api.yaml @@ -3,18 +3,18 @@ info: contact: url: 'https://forge.etsi.org/rep/mec/gs028-wai-api' title: ETSI GS MEC 028 - WLAN Access Information API - version: 2.2.1 + version: 2.3.1 description: 'The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI -

**Note**
MEC Sandbox supports all WAI API endpoints and a limited set of subscription types; complete details on the WAI API can be found on [ETSI Forge](http://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf). -

Supported subscriptions types: -

- AssocStaSubscription' +

**Note**
MEC Sandbox supports all WAI API endpoints and a limited set of subscription types; complete details on the WAI API can be found on [ETSI Forge](http://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.03.01_60/gs_mec028v020301p.pdf). +

Supported subscriptions types: +

- AssocStaSubscription' license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' externalDocs: - description: ETSI MEC028 V2.2.1 WLAN Information API + description: ETSI MEC028 V2.3.1 WLAN Information API url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf + https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.03.01_60/gs_mec028v020301p.pdf servers: - url: 'https://localhost/sandboxname/wai/v2' tags: @@ -146,6 +146,9 @@ paths: example: subscriptionType: AssocStaSubscription callbackReference: 'http://meAppClient.example.com/wai/v2/notifications/1' + expiryDeadline: + seconds: 1977836800 + nanoSeconds: 0 apId: bssid: 005C0A0A0A0A notificationEvent: @@ -211,7 +214,7 @@ paths: responses: '204': $ref: '#/components/responses/204' - '/subscriptions/{subscriptionId}': + /subscriptions/{subscriptionId}: get: tags: - wai @@ -400,6 +403,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': @@ -418,7 +424,7 @@ paths: $ref: '#/components/responses/422' '429': $ref: '#/components/responses/429' - '/measurements/{measurementConfigId}': + /measurements/{measurementConfigId}: get: tags: - unsupported @@ -442,6 +448,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': @@ -477,6 +486,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} parameters: @@ -494,6 +506,9 @@ paths: href: 'http://meAppServer.example.com/wai/v2/measurements/123' staId: macId: 005C01111111 + ssid: + - myNetworkSsid + - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': @@ -844,7 +859,7 @@ components: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. properties: - self: + self: $ref: '#/components/schemas/LinkType' required: - self @@ -854,6 +869,8 @@ components: apId: $ref: '#/components/schemas/ApIdentity' callbackReference: + description: >- + URI exposed by the client on which to receive notifications type: string expiryDeadline: $ref: '#/components/schemas/TimeStamp' @@ -899,9 +916,8 @@ components: x-etsi-mec-origin-type: Uint8 requestTestNotification: description: >- - Set to TRUE by the service consumer to request a test notification - on the callbackReference URI to determine if it is reachable by the - WAIS for notifications. + Set to TRUE by the service consumer to request a test notification via HTTP + on the callbackReference URI. type: boolean x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean @@ -921,7 +937,7 @@ components: BeaconReport: properties: antennaId: - description: "The Antenna ID field contains the identifying number for the antenna(s) used for this measurement. Antenna ID is defined in section\_9.4.2.40 of IEEE 802.11-2016 [8]." + description: "The Antenna ID field contains the identifying number for the antenna(s) used for this measurement. Antenna ID is defined in clause\_9.4.2.40 of IEEE 802.11-2016 [8]." format: uint8 type: integer x-etsi-mec-cardinality: 0..1 @@ -966,7 +982,7 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 rcpi: - description: "RCPI indicates the received channel power of the Beacon, Measurement Pilot, or Probe Response frame, which is a logarithmic function of the received signal power, as defined in section\_9.4.2.38 of IEEE 802.11-2016 [8]." + description: "RCPI indicates the received channel power of the Beacon, Measurement Pilot, or Probe Response frame, which is a logarithmic function of the received signal power, as defined in clause\_9.4.2.38 of IEEE 802.11-2016 [8]." format: uint8 type: integer x-etsi-mec-cardinality: 0..1 @@ -974,7 +990,7 @@ components: reportedFrameInfo: $ref: '#/components/schemas/ReportedBeaconFrameInfo' rsni: - description: "RSNI indicates the received signal-to-noise indication for the Beacon, Measurement Pilot, or Probe Response frame, as described in section\_9.4.2.41 of IEEE 802.11-2016 [8]." + description: "RSNI indicates the received signal-to-noise indication for the Beacon, Measurement Pilot, or Probe Response frame, as described in clause\_9.4.2.41 of IEEE 802.11-2016 [8]." format: uint8 type: integer x-etsi-mec-cardinality: 0..1 @@ -1035,7 +1051,7 @@ components: x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: Uint8 threshold: - description: "The threshold subfield contains either the threshold value or the offset value to be used for conditional reporting.\n\nFor reportingCondition subfield with values 1 and 2, the threshold value is a logarithmic function of the received signal power, as defined in section\_9.4.2.38 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 3 and 4, the threshold value is a logarithmic function of the signal-to-noise ratio, as described in section\_9.4.2.41 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 5 to 10, the offset value is an 8-bit 2s complement integer in units of 0,5 dBm. The indicated reporting condition applies individually to each measured Beacon, Measurement Pilot, or Probe Response frame." + description: "The threshold subfield contains either the threshold value or the offset value to be used for conditional reporting.\n\nFor reportingCondition subfield with values 1 and 2, the threshold value is a logarithmic function of the received signal power, as defined in clause\_9.4.2.38 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 3 and 4, the threshold value is a logarithmic function of the signal-to-noise ratio, as described in clause\_9.4.2.41 of IEEE 802.11-2016 [8].\n\nFor reportingCondition subfield values 5 to 10, the offset value is an 8-bit 2s complement integer in units of 0,5 dBm. The indicated reporting condition applies individually to each measured Beacon, Measurement Pilot, or Probe Response frame." format: uint8 type: integer x-etsi-mec-cardinality: '1' @@ -1998,6 +2014,7 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) callbackReference: + description: URI exposed by the client on which to receive notifications. type: string expiryDeadline: $ref: '#/components/schemas/TimeStamp' @@ -2013,8 +2030,7 @@ components: requestTestNotification: description: >- Set to TRUE by the service consumer to request a test notification - on the callbackReference URI to determine if it is reachable by the - WAIS for notifications. + via HTTP on the callbackReference URI. type: boolean x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean @@ -2438,6 +2454,8 @@ components: x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) callbackReference: + description: >- + URI exposed by the client on which to receive notifications type: string expiryDeadline: $ref: '#/components/schemas/TimeStamp' @@ -2510,9 +2528,8 @@ components: x-etsi-mec-origin-type: Uint8 requestTestNotification: description: >- - Set to TRUE by the service consumer to request a test notification - on the callbackReference URI to determine if it is reachable by the - WAIS for notifications. + Set to TRUE by the service consumer to request a test notification via HTTP + on the callbackReference URI. type: boolean x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Boolean diff --git a/config/permissions.yaml b/config/permissions.yaml index 87c8286df5581208f2423ce4493d4a2fd6794c9a..59731f7f0bd68ee156f33287d85dee6f6b4045dd 100644 --- a/config/permissions.yaml +++ b/config/permissions.yaml @@ -186,7 +186,7 @@ services: #------------------------------ - name: 'meep-app-enablement' api: 'mec_app_support' - path: '/mec_app_support/v1' + path: '/mec_app_support/v2' sbox: true default: mode: 'allow' diff --git a/js-apps/frontend/src/js/util/scenario-utils.js b/js-apps/frontend/src/js/util/scenario-utils.js index adaccc49b01a8c285da4d779f118fd7f5db17d4d..769e565a2e5a115402e5e35f808ffb8bafd66d9a 100644 --- a/js-apps/frontend/src/js/util/scenario-utils.js +++ b/js-apps/frontend/src/js/util/scenario-utils.js @@ -618,7 +618,7 @@ export function parseEdgeApps(scenario) { mepName: pl.name, env: proc.environment, url: 'api/?urls.primaryName='+pl.name+'%20-%20MEC%20Application%20Support%20API', - path: pl.name+'/mec_app_support/v1', + path: pl.name+'/mec_app_support/v2', pseudoName: 'MEC Application Support (011) on ' + pl.name, dropDownName: 'MEC Application Support (011)', enabled: true, // always running