From 05e2c170485c260ee28e3cccc29cafc8865ccfb5 Mon Sep 17 00:00:00 2001 From: Elian Kraja Date: Thu, 28 May 2020 18:19:08 +0200 Subject: [PATCH] Updating from v2.0.9 to v2.1.1. Cause 8: MEC service management API --- SRV/APPSAQ/PlatAppServices.robot | 80 +++-- SRV/APPSAQ/environment/variables.txt | 17 +- SRV/APPSAQ/jsons/ServiceInfo.json | 42 +++ SRV/APPSAQ/jsons/ServiceInfoError.json | 42 +++ SRV/APPSAQ/jsons/ServiceInfoUpdated.json | 42 +++ SRV/APPSAQ/jsons/ServiceInfoUpdatedError.json | 42 +++ SRV/APPSAQ/schemas/ServiceInfo.schema.json | 271 +++++++++++++++++ .../schemas/ServiceInfoList.schema.json | 252 +++++++++++++++- SRV/APPSUB/PlatAppSubscriptions.robot | 2 +- .../AccessPointList.schema.v1.1.1.json | 128 ++++++++ SRV/SAQ/PlatServices.robot | 14 +- SRV/SAQ/schemas/ServiceInfo.schema.json | 271 +++++++++++++++++ SRV/SAQ/schemas/ServiceInfoList.schema.json | 275 ++++++++++++++++++ SRV/SRVSUB/PlatSrvSubscriptions.robot | 30 +- ...rAvailabilityNotificationSubscription.json | 9 + ...labilityNotificationSubscriptionError.json | 9 + ...rAvailabilityNotificationSubscription.json | 134 +++++++++ .../schemas/SubscriptionLink.schema.json | 54 ++++ .../schemas/SubscriptionLinkList.schema.json | 57 ++++ SRV/TRANS/PlatTransport.robot | 4 +- .../schemas/TransportInfoList.schema.json | 171 +++++++++++ ...otificationSubscription.schema.v1.1.1.json | 142 +++++++++ .../TerminalDistance.schema.v1.1.1.json | 32 ++ ...otificationSubscription.schema.v1.1.1.json | 147 ++++++++++ ...onalTrafficSubscription.schema.v1.1.1.json | 71 +++++ ...serTrackingSubscription.schema.v1.1.1.json | 77 +++++ ...otificationSubscription.schema.v1.1.1.json | 99 +++++++ 27 files changed, 2440 insertions(+), 74 deletions(-) create mode 100644 SRV/APPSAQ/jsons/ServiceInfoUpdatedError.json create mode 100644 SRV/RLOCLOOK/schemas/AccessPointList.schema.v1.1.1.json create mode 100644 SRV/SRVSUB/schemas/SubscriptionLink.schema.json create mode 100644 SRV/UEAREASUB/schemas/CircleNotificationSubscription.schema.v1.1.1.json create mode 100644 SRV/UEDISTLOOK/schemas/TerminalDistance.schema.v1.1.1.json create mode 100644 SRV/UEDISTSUB/schemas/DistanceNotificationSubscription.schema.v1.1.1.json create mode 100644 SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.v1.1.1.json create mode 100644 SRV/UELOCSUB/schemas/UserTrackingSubscription.schema.v1.1.1.json create mode 100644 SRV/UETRACKSUB/schemas/PeriodicNotificationSubscription.schema.v1.1.1.json diff --git a/SRV/APPSAQ/PlatAppServices.robot b/SRV/APPSAQ/PlatAppServices.robot index ed80ff1..49de49a 100644 --- a/SRV/APPSAQ/PlatAppServices.robot +++ b/SRV/APPSAQ/PlatAppServices.robot @@ -18,8 +18,8 @@ TC_MEC_SRV_APPSAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.6.3.1 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.6.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES @@ -33,7 +33,7 @@ TC_MEC_SRV_APPSAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.6.3.1 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.6.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES @@ -48,14 +48,14 @@ TC_MEC_SRV_APPSAQ_002_OK ... instances when a new service for a given application instance is registered ... ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.6.3.4 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Create new service ServiceInfo ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is ServiceInfo Check HTTP Response Header Contains Location -# Check Result Contains ${response['body']['ServiceInfo']} serName ${SERVICE_NAME} + Check Result Contains ${response['body']} serName ${NEW_SERVICE_NAME} TC_MEC_SRV_APPSAQ_002_BR @@ -63,8 +63,8 @@ TC_MEC_SRV_APPSAQ_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.6.3.4 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.6.3.4 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Create new service ServiceInfoError ${APP_INSTANCE_ID} @@ -76,8 +76,8 @@ TC_MEC_SRV_APPSAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.6.3.4 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.6.3.4 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Create new service ServiceInfo ${NON_EXISTENT_APP_INSTANCE_ID} @@ -89,14 +89,14 @@ TC_MEC_SRV_APPSAQ_003_OK ... Check that the IUT responds with the information on a specific service ... for a given application instance when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.7.3.1 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual service ${APP_INSTANCE_ID} ${SERVICE_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ServiceInfo - Check Result Contains ${response['body']['ServiceInfo']} serInstanceId ${SERVICE_ID} + Check Result Contains ${response['body']} serInstanceId ${SERVICE_ID} TC_MEC_SRV_APPSAQ_003_NF @@ -104,7 +104,7 @@ TC_MEC_SRV_APPSAQ_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.7.3.1 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} @@ -116,14 +116,14 @@ TC_MEC_SRV_APPSAQ_004_OK ... Check that the IUT updates a service information for a given ... application instance when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.7.3.2 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.2 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Update service ${APP_INSTANCE_ID} ${SERVICE_ID} ServiceInfoUpdated Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ServiceInfo - #Check Result Contains ${response['body']['ServiceInfo']} version ${SVC_NEW_VERSION} + Check Result Contains ${response['body']} version ${SVC_NEW_VERSION} TC_MEC_SRV_APPSAQ_004_BR @@ -131,8 +131,8 @@ TC_MEC_SRV_APPSAQ_004_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.7.3.2 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.2 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Update service ${APP_INSTANCE_ID} ${SERVICE_ID} ServiceInfoUpdatedError @@ -144,8 +144,8 @@ TC_MEC_SRV_APPSAQ_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.7.3.2 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.2 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Update service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} ServiceInfoUpdated @@ -157,14 +157,39 @@ TC_MEC_SRV_APPSAQ_004_PF ... Check that the IUT responds with an error when ... a request sent by a MEC Application doesn't comply with a required condition ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.7.3.2 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.2 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Update service with invalid etag ${APP_INSTANCE_ID} ${SERVICE_ID} ServiceInfoUpdated Check HTTP Response Status Code Is 412 +TC_MEC_SRV_APPSAQ_005_OK + [Documentation] + ... Check that the IUT executes the deletion of a service + ... for a given application instance when requested by a MEC Application + ... + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfo + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Remove individual service ${APP_INSTANCE_ID} ${SERVICE_ID} + Check HTTP Response Status Code Is 204 + + +TC_MEC_SRV_APPSAQ_005_NF + [Documentation] + ... Check that the IUT responds with an error when + ... a request for deletion of a unknown service is sent by a MEC Application + ... + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.7.3.1 + + [Tags] PIC_MEC_PLAT PIC_SERVICES + Remove individual service ${APP_INSTANCE_ID} ${NON_EXISTENT_SERVICE_ID} + Check HTTP Response Status Code Is 404 + + *** Keywords *** Get a list of mecService of an application instance with parameters @@ -211,7 +236,7 @@ Update service Set Headers {"Authorization":"${TOKEN}"} ${file}= Catenate SEPARATOR= jsons/ ${content} .json ${body}= Get File ${file} - Post ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services/${serviceId} ${body} + PUT ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services/${serviceId} ${body} ${output}= Output response Set Suite Variable ${response} ${output} @@ -223,6 +248,15 @@ Update service with invalid etag Update service ${appInstanceId} ${serviceId} ${content} +Remove individual service + [Arguments] ${appInstanceId} ${serviceName} + Set Headers {"Accept":"application/json"} + Set Headers {"Authorization":"${TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/applications/${appInstanceId}/services/${serviceName} + ${output}= Output response + Set Suite Variable ${response} ${output} + + # Check Plaform IUT notifies the MEC Application instances # [Documentation] # ... diff --git a/SRV/APPSAQ/environment/variables.txt b/SRV/APPSAQ/environment/variables.txt index fae67a3..5b218f8 100644 --- a/SRV/APPSAQ/environment/variables.txt +++ b/SRV/APPSAQ/environment/variables.txt @@ -18,17 +18,8 @@ ${SERVICE_ID} e0deee2b-6e50-4f33-ab09-8bf0585025d3 ${NON_EXISTENT_SERVICE_ID} NON_EXISTENT_SERVICE_ID ${INVALID_ETAG} INVALID_ETAG -# ${SUBSCRIPTION_TYPE} MobilityProcedureSubscription -# ${SUBSCRIPTION_ID} e0deee2b-6e50-4f33-ab09-8bf0585025d3 -# ${NON_EXISTENT_SUBSCRIPTION_ID} NON_EXISTENT_SUBSCRIPTION_ID -# ${NON_EXISTENT_APP_MOBILITY_SERVICE_ID} NON_EXISTENT_APP_MOBILITY_SERVICE_ID +## this parameter should be the same as in jsons/ServiceInfo.json on param serName +${NEW_SERVICE_NAME} NEW_SERVICE_NAME -# # Notifications variables -# ${MOCK_SERVER_JAR} ../../../bin/mockserver-netty-5.5.0-jar-with-dependencies.jar - -# ${callback_port} 9091 -# ${callback_uri} http://172.22.1.7:${callback_port} -# ${callback_endpoint} /amsi/subscriptions -# ${callback_endpoint_error} /subs_404 -# ${total_polling_time} 2 min -# ${polling_interval} 10 sec \ No newline at end of file +## this parameter should be the same as in jsons/ServiceInfoUpdated.json on param sversion +${SVC_NEW_VERSION} v2.0 \ No newline at end of file diff --git a/SRV/APPSAQ/jsons/ServiceInfo.json b/SRV/APPSAQ/jsons/ServiceInfo.json index e69de29..a7962fa 100644 --- a/SRV/APPSAQ/jsons/ServiceInfo.json +++ b/SRV/APPSAQ/jsons/ServiceInfo.json @@ -0,0 +1,42 @@ +{ + "serName": "NEW_SERVICE_NAME", + "version": "reprehenderit Ut non commodo", + "state": "INACTIVE", + "transportInfo": { + "id": "labore ut Excepteur sunt ipsum", + "name": "in minim enim", + "type": "MB_ROUTING", + "protocol": "veniam aliqua cillum in", + "version": "exercitation pariatur", + "endpoint": { + "addresses": [ + { + "host": "sint culpa laboris", + "port": 10968 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "https://RXjkuoqKaR.nskcJZJsyoIFJ0k86hJdxq.eTHEGqxAybM3DEZlUlYQpZ47s6RR+O9gyFrLbO92,9" + } + }, + "description": "dolor occaecat pariatur ex do" + }, + "serializer": "XML", + "serInstanceId": "cillum nostrud minim consectetur proident", + "serCategory": { + "href": "http://VWwswcAtAylGx.usasPjZ+bqQIHCMc7FfToVvk2M.SYAWYvSDKGSRL7Z.rxyfC0goFNZtoGJrlFc89,", + "id": "consectetur et eiusmod", + "name": "ea ipsum irure mollit et", + "version": "et" + }, + "scopeOfLocality": "ZONE", + "consumedLocalOnly": true, + "isLocal": false +} \ No newline at end of file diff --git a/SRV/APPSAQ/jsons/ServiceInfoError.json b/SRV/APPSAQ/jsons/ServiceInfoError.json index e69de29..672c8a0 100644 --- a/SRV/APPSAQ/jsons/ServiceInfoError.json +++ b/SRV/APPSAQ/jsons/ServiceInfoError.json @@ -0,0 +1,42 @@ +{ + "Name": "WRONG_PARAMETER_NAME", + "version": "reprehenderit Ut non commodo", + "state": "INACTIVE", + "transportInfo": { + "id": "labore ut Excepteur sunt ipsum", + "name": "in minim enim", + "type": "MB_ROUTING", + "protocol": "veniam aliqua cillum in", + "version": "exercitation pariatur", + "endpoint": { + "addresses": [ + { + "host": "sint culpa laboris", + "port": 10968 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "https://RXjkuoqKaR.nskcJZJsyoIFJ0k86hJdxq.eTHEGqxAybM3DEZlUlYQpZ47s6RR+O9gyFrLbO92,9" + } + }, + "description": "dolor occaecat pariatur ex do" + }, + "serializer": "XML", + "serInstanceId": "cillum nostrud minim consectetur proident", + "serCategory": { + "href": "http://VWwswcAtAylGx.usasPjZ+bqQIHCMc7FfToVvk2M.SYAWYvSDKGSRL7Z.rxyfC0goFNZtoGJrlFc89,", + "id": "consectetur et eiusmod", + "name": "ea ipsum irure mollit et", + "version": "et" + }, + "scopeOfLocality": "ZONE", + "consumedLocalOnly": true, + "isLocal": false +} \ No newline at end of file diff --git a/SRV/APPSAQ/jsons/ServiceInfoUpdated.json b/SRV/APPSAQ/jsons/ServiceInfoUpdated.json index e69de29..afee85a 100644 --- a/SRV/APPSAQ/jsons/ServiceInfoUpdated.json +++ b/SRV/APPSAQ/jsons/ServiceInfoUpdated.json @@ -0,0 +1,42 @@ +{ + "serName": "NEW_SERVICE_NAME", + "version": "v2.0", + "state": "INACTIVE", + "transportInfo": { + "id": "labore ut Excepteur sunt ipsum", + "name": "in minim enim", + "type": "MB_ROUTING", + "protocol": "veniam aliqua cillum in", + "version": "exercitation pariatur", + "endpoint": { + "addresses": [ + { + "host": "sint culpa laboris", + "port": 10968 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "https://RXjkuoqKaR.nskcJZJsyoIFJ0k86hJdxq.eTHEGqxAybM3DEZlUlYQpZ47s6RR+O9gyFrLbO92,9" + } + }, + "description": "dolor occaecat pariatur ex do" + }, + "serializer": "XML", + "serInstanceId": "cillum nostrud minim consectetur proident", + "serCategory": { + "href": "http://VWwswcAtAylGx.usasPjZ+bqQIHCMc7FfToVvk2M.SYAWYvSDKGSRL7Z.rxyfC0goFNZtoGJrlFc89,", + "id": "consectetur et eiusmod", + "name": "ea ipsum irure mollit et", + "version": "et" + }, + "scopeOfLocality": "ZONE", + "consumedLocalOnly": true, + "isLocal": false +} \ No newline at end of file diff --git a/SRV/APPSAQ/jsons/ServiceInfoUpdatedError.json b/SRV/APPSAQ/jsons/ServiceInfoUpdatedError.json new file mode 100644 index 0000000..6794471 --- /dev/null +++ b/SRV/APPSAQ/jsons/ServiceInfoUpdatedError.json @@ -0,0 +1,42 @@ +{ + "serName": "NEW_SERVICE_NAME", + "a_version": "v2.0", + "state": "INACTIVE", + "transportInfo": { + "id": "labore ut Excepteur sunt ipsum", + "name": "in minim enim", + "type": "MB_ROUTING", + "protocol": "veniam aliqua cillum in", + "version": "exercitation pariatur", + "endpoint": { + "addresses": [ + { + "host": "sint culpa laboris", + "port": 10968 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "https://RXjkuoqKaR.nskcJZJsyoIFJ0k86hJdxq.eTHEGqxAybM3DEZlUlYQpZ47s6RR+O9gyFrLbO92,9" + } + }, + "description": "dolor occaecat pariatur ex do" + }, + "serializer": "XML", + "serInstanceId": "cillum nostrud minim consectetur proident", + "serCategory": { + "href": "http://VWwswcAtAylGx.usasPjZ+bqQIHCMc7FfToVvk2M.SYAWYvSDKGSRL7Z.rxyfC0goFNZtoGJrlFc89,", + "id": "consectetur et eiusmod", + "name": "ea ipsum irure mollit et", + "version": "et" + }, + "scopeOfLocality": "ZONE", + "consumedLocalOnly": true, + "isLocal": false +} \ No newline at end of file diff --git a/SRV/APPSAQ/schemas/ServiceInfo.schema.json b/SRV/APPSAQ/schemas/ServiceInfo.schema.json index e69de29..50fbfe2 100644 --- a/SRV/APPSAQ/schemas/ServiceInfo.schema.json +++ b/SRV/APPSAQ/schemas/ServiceInfo.schema.json @@ -0,0 +1,271 @@ +{ + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "serName", + "version", + "state", + "transportInfo", + "serializer" + ], + "properties": { + "serInstanceId": { + "description": "Identifier of the service instance assigned by the MEC platform.", + "type": "string", + "readOnly": true, + "example": "ServiceInstance123" + }, + "serName": { + "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", + "type": "string", + "example": "ExampleService" + }, + "serCategory": { + "description": "This type represents the category reference", + "type": "object", + "required": [ + "href", + "id", + "name", + "version" + ], + "properties": { + "href": { + "description": "Reference of the catalogue", + "type": "string", + "format": "uri", + "example": "/example/catalogue1" + }, + "id": { + "description": "Unique identifier of the category", + "type": "string", + "example": "id12345" + }, + "name": { + "description": "Name of the category, example values include RNI, Location & Bandwidth Management", + "type": "string", + "example": "RNI" + }, + "version": { + "description": "Category version", + "type": "string", + "example": "version1" + } + } + }, + "version": { + "description": "Service version", + "type": "string", + "example": "ServiceVersion1" + }, + "state": { + "description": "This enumeration defines the possible states of a service.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "example": "ACTIVE" + }, + "transportInfo": { + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "id", + "name", + "type", + "protocol", + "version", + "endpoint", + "security" + ], + "properties": { + "id": { + "description": "The identifier of this transport", + "type": "string", + "example": "TransId12345" + }, + "name": { + "description": "The name of this transport", + "type": "string", + "example": "REST" + }, + "description": { + "description": "Human-readable description of this transport", + "type": "string", + "example": "REST API" + }, + "type": { + "description": "The enumeration TransportType represents types of transports", + "type": "string", + "enum": [ + "REST_HTTP", + "MB_TOPIC_BASED", + "MB_ROUTING", + "MB_PUBSUB", + "RPC", + "RPC_STREAMING", + "WEBSOCKET" + ], + "example": "REST_HTTP" + }, + "protocol": { + "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", + "type": "string", + "example": "HTTP" + }, + "version": { + "description": "The version of the protocol used", + "type": "string", + "example": "2.0" + }, + "endpoint": { + "description": "This type represents information about a transport endpoint", + "type": "object", + "oneOf": [{ + "description": "Entry point information of the service as string, formatted according to URI syntax", + "type": "object", + "required": [ + "uris" + ], + "properties": { + "uris": { + "type": "array", + "minItems": 0, + "items": { + "description": "Entry point information of the service", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/service/EntryPoint" + } + } + } + }, + { + "description": "Entry point information of the service as one or more pairs of IP address and port", + "type": "object", + "required": [ + "addresses" + ], + "properties": { + "addresses": { + "type": "array", + "minItems": 0, + "items": { + "description": "A IP address and port pair", + "type": "object", + "required": [ + "host", + "port" + ], + "properties": { + "host": { + "description": "Host portion of the address", + "type": "string", + "example": "192.0.2.0" + }, + "port": { + "description": "Port portion of the address", + "type": "integer", + "format": "uint32", + "example": 8080 + } + } + } + } + } + }, + { + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification.", + "type": "object", + "required": [ + "alternative" + ], + "properties": { + "alternative": { + "type": "object" + } + } + } + ] + }, + "security": { + "description": "This type represents security information related to a transport", + "type": "object", + "properties": { + "oAuth2Info": { + "description": "Parameters related to use of OAuth 2.0", + "required": [ + "grantTypes", + "tokenEndpoint" + ], + "properties": { + "grantTypes": { + "description": "List of supported OAuth 2.0 grant types.", + "type": "array", + "minItems": 1, + "maxItems": 4, + "items": { + "description": "OAuth 2.0 grant type", + "type": "string", + "enum": [ + "OAUTH2_AUTHORIZATION_CODE", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_RESOURCE_OWNER", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "example": "OAUTH2_CLIENT_CREDENTIALS" + } + }, + "tokenEndpoint": { + "description": "The token endpoint", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/security/TokenEndPoint" + } + }, + "type": "object" + } + } + }, + "implSpecificInfo": { + "description": "Additional implementation specific details of the transport", + "type": "object" + } + } + }, + "serializer": { + "description": "The enumeration represents types of serializers", + "type": "string", + "enum": [ + "JSON", + "XML", + "PROTOBUF3" + ], + "example": "JSON" + }, + "scopeOfLocality": { + "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", + "type": "string", + "enum": [ + "MEC_SYSTEM", + "MEC_HOST", + "NFVI_POP", + "ZONE", + "ZONE_GROUP", + "NFVI_NODE" + ], + "example": "MEC_SYSTEM" + }, + "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", + "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", + "example": true + } + } +} \ No newline at end of file diff --git a/SRV/APPSAQ/schemas/ServiceInfoList.schema.json b/SRV/APPSAQ/schemas/ServiceInfoList.schema.json index f8bd4fc..d9ddc80 100644 --- a/SRV/APPSAQ/schemas/ServiceInfoList.schema.json +++ b/SRV/APPSAQ/schemas/ServiceInfoList.schema.json @@ -1,9 +1,10 @@ { "type": "array", - "items": { + "objects": { + "description": "This type represents the general information of a MEC service.", "type": "object", "required": [ - "serInstanceId", + "serName", "version", "state", "transportInfo", @@ -11,39 +12,264 @@ ], "properties": { "serInstanceId": { - "type": "string" + "description": "Identifier of the service instance assigned by the MEC platform.", + "type": "string", + "readOnly": true, + "example": "ServiceInstance123" }, "serName": { - "type": "string" + "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", + "type": "string", + "example": "ExampleService" }, "serCategory": { - "type": "string" + "description": "This type represents the category reference", + "type": "object", + "required": [ + "href", + "id", + "name", + "version" + ], + "properties": { + "href": { + "description": "Reference of the catalogue", + "type": "string", + "format": "uri", + "example": "/example/catalogue1" + }, + "id": { + "description": "Unique identifier of the category", + "type": "string", + "example": "id12345" + }, + "name": { + "description": "Name of the category, example values include RNI, Location & Bandwidth Management", + "type": "string", + "example": "RNI" + }, + "version": { + "description": "Category version", + "type": "string", + "example": "version1" + } + } }, "version": { - "type": "string" + "description": "Service version", + "type": "string", + "example": "ServiceVersion1" }, "state": { + "description": "This enumeration defines the possible states of a service.", "type": "string", "enum": [ "ACTIVE", "INACTIVE" - ] + ], + "example": "ACTIVE" }, "transportInfo": { - "type": "string" + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "id", + "name", + "type", + "protocol", + "version", + "endpoint", + "security" + ], + "properties": { + "id": { + "description": "The identifier of this transport", + "type": "string", + "example": "TransId12345" + }, + "name": { + "description": "The name of this transport", + "type": "string", + "example": "REST" + }, + "description": { + "description": "Human-readable description of this transport", + "type": "string", + "example": "REST API" + }, + "type": { + "description": "The enumeration TransportType represents types of transports", + "type": "string", + "enum": [ + "REST_HTTP", + "MB_TOPIC_BASED", + "MB_ROUTING", + "MB_PUBSUB", + "RPC", + "RPC_STREAMING", + "WEBSOCKET" + ], + "example": "REST_HTTP" + }, + "protocol": { + "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", + "type": "string", + "example": "HTTP" + }, + "version": { + "description": "The version of the protocol used", + "type": "string", + "example": "2.0" + }, + "endpoint": { + "description": "This type represents information about a transport endpoint", + "type": "object", + "oneOf": [ + { + "description": "Entry point information of the service as string, formatted according to URI syntax", + "type": "object", + "required": [ + "uris" + ], + "properties": { + "uris": { + "type": "array", + "minItems": 0, + "items": { + "description": "Entry point information of the service", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/service/EntryPoint" + } + } + } + }, + { + "description": "Entry point information of the service as one or more pairs of IP address and port", + "type": "object", + "required": [ + "addresses" + ], + "properties": { + "addresses": { + "type": "array", + "minItems": 0, + "items": { + "description": "A IP address and port pair", + "type": "object", + "required": [ + "host", + "port" + ], + "properties": { + "host": { + "description": "Host portion of the address", + "type": "string", + "example": "192.0.2.0" + }, + "port": { + "description": "Port portion of the address", + "type": "integer", + "format": "uint32", + "example": 8080 + } + } + } + } + } + }, + { + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification.", + "type": "object", + "required": [ + "alternative" + ], + "properties": { + "alternative": { + "type": "object" + } + } + } + ] + }, + "security": { + "description": "This type represents security information related to a transport", + "type": "object", + "properties": { + "oAuth2Info": { + "description": "Parameters related to use of OAuth 2.0", + "required": [ + "grantTypes", + "tokenEndpoint" + ], + "properties": { + "grantTypes": { + "description": "List of supported OAuth 2.0 grant types.", + "type": "array", + "minItems": 1, + "maxItems": 4, + "items": { + "description": "OAuth 2.0 grant type", + "type": "string", + "enum": [ + "OAUTH2_AUTHORIZATION_CODE", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_RESOURCE_OWNER", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "example": "OAUTH2_CLIENT_CREDENTIALS" + } + }, + "tokenEndpoint": { + "description": "The token endpoint", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/security/TokenEndPoint" + } + }, + "type": "object" + } + } + }, + "implSpecificInfo": { + "description": "Additional implementation specific details of the transport", + "type": "object" + } + } }, "serializer": { - "type": "string" + "description": "The enumeration represents types of serializers", + "type": "string", + "enum": [ + "JSON", + "XML", + "PROTOBUF3" + ], + "example": "JSON" }, "scopeOfLocality": { - "type": "string" + "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", + "type": "string", + "enum": [ + "MEC_SYSTEM", + "MEC_HOST", + "NFVI_POP", + "ZONE", + "ZONE_GROUP", + "NFVI_NODE" + ], + "example": "MEC_SYSTEM" }, "consumedLocalOnly": { - "type": "string" + "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", + "example": false }, "isLocal": { - "type": "string" + "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", + "type": "boolean", + "example": true } } } -} +} \ No newline at end of file diff --git a/SRV/APPSUB/PlatAppSubscriptions.robot b/SRV/APPSUB/PlatAppSubscriptions.robot index 3d1534d..85ce949 100644 --- a/SRV/APPSUB/PlatAppSubscriptions.robot +++ b/SRV/APPSUB/PlatAppSubscriptions.robot @@ -24,7 +24,7 @@ TC_MEC_SRV_APPSUB_001_OK [Tags] PIC_MEC_PLAT PIC_SERVICES Get Subscriptions list ${APP_INSTANCE_ID} Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is SubscriptionLinkList + Check HTTP Response Body Json Schema Is SubscriptionsLinkList TC_MEC_SRV_APPSUB_001_NF diff --git a/SRV/RLOCLOOK/schemas/AccessPointList.schema.v1.1.1.json b/SRV/RLOCLOOK/schemas/AccessPointList.schema.v1.1.1.json new file mode 100644 index 0000000..50efd4e --- /dev/null +++ b/SRV/RLOCLOOK/schemas/AccessPointList.schema.v1.1.1.json @@ -0,0 +1,128 @@ +{ + "properties": { + "accessPointList": { + "description": "A type containing list of access points.", + "type": "object", + "required": [ + "zoneId", + "resourceURL" + ], + "properties": { + "zoneId": { + "description": "Identifier of zone", + "type": "string", + "example": "zone01" + }, + "accessPoint": { + "description": "Collection of the access point information list.", + "type": "array", + "items": { + "description": "A type containing access point information.", + "type": "object", + "required": [ + "accessPointId", + "connectionType", + "operationStatus", + "numberOfUsers", + "resourceURL" + ], + "properties": { + "accessPointId": { + "description": "Identifier of access point, (reference ETSI TS 129 171). Where the E-CGI is made up of the PLMN and Cell Identity (28 bit string). Then the PLMN is made up of the 3 digit MCC & 2 or 3 digit MNC. The Cell Portion is an optional element", + "type": "string", + "example": "001010000000000000000000000000001" + }, + "locationInfo": { + "description": "A type containing location information with latitude, longitude and altitude, in addition the accuracy of the information are provided.", + "type": "object", + "required": [ + "latitude", + "longitude", + "accuracy" + ], + "properties": { + "latitude": { + "type": "number", + "format": "float", + "example": "80.123" + }, + "longitude": { + "type": "number", + "format": "float", + "example": "70.123" + }, + "altitude": { + "type": "number", + "format": "float", + "example": "10.0" + }, + "accuracy": { + "type": "integer", + "format": "int32", + "example": "10" + } + } + }, + "connectionType": { + "description": "The connection type for the access point", + "type": "string", + "enum": [ + "Femto", + "LTE-femto", + "Smallcell", + "LTE-smallcell", + "Wifi", + "Pico", + "Micro", + "Macro", + "Wimax", + "Unknown" + ], + "example": "Macro" + }, + "operationStatus": { + "description": "The operation status of the access point", + "type": "string", + "enum": [ + "Serviceable", + "Unserviceable", + "Unknown" + ], + "example": "Serviceable" + }, + "numberOfUsers": { + "description": "The number of users currently on the access point.", + "type": "integer", + "format": "uint32", + "example": "7" + }, + "timezone": { + "description": "Time zone of access point", + "type": "string", + "format": "date-time", + "example": "2017-01-01T02:51:43Z" + }, + "interestRealm": { + "description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).", + "type": "string", + "example": "LA" + }, + "resourceURL": { + "description": "Self referring URL.", + "type": "string", + "format": "uri", + "example": "http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123" + } + } + } + }, + "resourceURL": { + "description": "Self referring URL.", + "type": "string", + "format": "uri", + "example": "http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123" + } + } + } + } + } \ No newline at end of file diff --git a/SRV/SAQ/PlatServices.robot b/SRV/SAQ/PlatServices.robot index 2676ca0..a5350b3 100644 --- a/SRV/SAQ/PlatServices.robot +++ b/SRV/SAQ/PlatServices.robot @@ -19,8 +19,8 @@ TC_MEC_SRV_SAQ_001_OK ... Check that the IUT responds with a list of available MEC services ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.3.3.1 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfoList + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.3.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfoList [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of available MEC services @@ -33,7 +33,7 @@ TC_MEC_SRV_SAQ_001_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.3.3.1 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.3.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of available MEC services with parameters instance_id ${INVALID_VALUE} @@ -45,14 +45,14 @@ TC_MEC_SRV_SAQ_002_OK ... Check that the IUT responds with the information on a specific service ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.4.3.1 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/ServiceInfoList + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.4.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/ServiceInfoList [Tags] PIC_MEC_PLAT PIC_SERVICES Get specific MEC service ${SERVICE_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is ServiceInfo - Check Result Contains ${response['body']['ServiceInfoList']} serInstanceId ${SERVICE_ID} + Check Result Contains ${response['body']} serInstanceId ${SERVICE_ID} TC_MEC_SRV_SAQ_002_NF @@ -60,7 +60,7 @@ TC_MEC_SRV_SAQ_002_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.4.3.1 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.4.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get specific MEC service ${NON_EXISTENT_SERVICE_ID} diff --git a/SRV/SAQ/schemas/ServiceInfo.schema.json b/SRV/SAQ/schemas/ServiceInfo.schema.json index e69de29..50fbfe2 100644 --- a/SRV/SAQ/schemas/ServiceInfo.schema.json +++ b/SRV/SAQ/schemas/ServiceInfo.schema.json @@ -0,0 +1,271 @@ +{ + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "serName", + "version", + "state", + "transportInfo", + "serializer" + ], + "properties": { + "serInstanceId": { + "description": "Identifier of the service instance assigned by the MEC platform.", + "type": "string", + "readOnly": true, + "example": "ServiceInstance123" + }, + "serName": { + "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", + "type": "string", + "example": "ExampleService" + }, + "serCategory": { + "description": "This type represents the category reference", + "type": "object", + "required": [ + "href", + "id", + "name", + "version" + ], + "properties": { + "href": { + "description": "Reference of the catalogue", + "type": "string", + "format": "uri", + "example": "/example/catalogue1" + }, + "id": { + "description": "Unique identifier of the category", + "type": "string", + "example": "id12345" + }, + "name": { + "description": "Name of the category, example values include RNI, Location & Bandwidth Management", + "type": "string", + "example": "RNI" + }, + "version": { + "description": "Category version", + "type": "string", + "example": "version1" + } + } + }, + "version": { + "description": "Service version", + "type": "string", + "example": "ServiceVersion1" + }, + "state": { + "description": "This enumeration defines the possible states of a service.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "example": "ACTIVE" + }, + "transportInfo": { + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "id", + "name", + "type", + "protocol", + "version", + "endpoint", + "security" + ], + "properties": { + "id": { + "description": "The identifier of this transport", + "type": "string", + "example": "TransId12345" + }, + "name": { + "description": "The name of this transport", + "type": "string", + "example": "REST" + }, + "description": { + "description": "Human-readable description of this transport", + "type": "string", + "example": "REST API" + }, + "type": { + "description": "The enumeration TransportType represents types of transports", + "type": "string", + "enum": [ + "REST_HTTP", + "MB_TOPIC_BASED", + "MB_ROUTING", + "MB_PUBSUB", + "RPC", + "RPC_STREAMING", + "WEBSOCKET" + ], + "example": "REST_HTTP" + }, + "protocol": { + "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", + "type": "string", + "example": "HTTP" + }, + "version": { + "description": "The version of the protocol used", + "type": "string", + "example": "2.0" + }, + "endpoint": { + "description": "This type represents information about a transport endpoint", + "type": "object", + "oneOf": [{ + "description": "Entry point information of the service as string, formatted according to URI syntax", + "type": "object", + "required": [ + "uris" + ], + "properties": { + "uris": { + "type": "array", + "minItems": 0, + "items": { + "description": "Entry point information of the service", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/service/EntryPoint" + } + } + } + }, + { + "description": "Entry point information of the service as one or more pairs of IP address and port", + "type": "object", + "required": [ + "addresses" + ], + "properties": { + "addresses": { + "type": "array", + "minItems": 0, + "items": { + "description": "A IP address and port pair", + "type": "object", + "required": [ + "host", + "port" + ], + "properties": { + "host": { + "description": "Host portion of the address", + "type": "string", + "example": "192.0.2.0" + }, + "port": { + "description": "Port portion of the address", + "type": "integer", + "format": "uint32", + "example": 8080 + } + } + } + } + } + }, + { + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification.", + "type": "object", + "required": [ + "alternative" + ], + "properties": { + "alternative": { + "type": "object" + } + } + } + ] + }, + "security": { + "description": "This type represents security information related to a transport", + "type": "object", + "properties": { + "oAuth2Info": { + "description": "Parameters related to use of OAuth 2.0", + "required": [ + "grantTypes", + "tokenEndpoint" + ], + "properties": { + "grantTypes": { + "description": "List of supported OAuth 2.0 grant types.", + "type": "array", + "minItems": 1, + "maxItems": 4, + "items": { + "description": "OAuth 2.0 grant type", + "type": "string", + "enum": [ + "OAUTH2_AUTHORIZATION_CODE", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_RESOURCE_OWNER", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "example": "OAUTH2_CLIENT_CREDENTIALS" + } + }, + "tokenEndpoint": { + "description": "The token endpoint", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/security/TokenEndPoint" + } + }, + "type": "object" + } + } + }, + "implSpecificInfo": { + "description": "Additional implementation specific details of the transport", + "type": "object" + } + } + }, + "serializer": { + "description": "The enumeration represents types of serializers", + "type": "string", + "enum": [ + "JSON", + "XML", + "PROTOBUF3" + ], + "example": "JSON" + }, + "scopeOfLocality": { + "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", + "type": "string", + "enum": [ + "MEC_SYSTEM", + "MEC_HOST", + "NFVI_POP", + "ZONE", + "ZONE_GROUP", + "NFVI_NODE" + ], + "example": "MEC_SYSTEM" + }, + "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", + "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", + "example": true + } + } +} \ No newline at end of file diff --git a/SRV/SAQ/schemas/ServiceInfoList.schema.json b/SRV/SAQ/schemas/ServiceInfoList.schema.json index e69de29..d9ddc80 100644 --- a/SRV/SAQ/schemas/ServiceInfoList.schema.json +++ b/SRV/SAQ/schemas/ServiceInfoList.schema.json @@ -0,0 +1,275 @@ +{ + "type": "array", + "objects": { + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "serName", + "version", + "state", + "transportInfo", + "serializer" + ], + "properties": { + "serInstanceId": { + "description": "Identifier of the service instance assigned by the MEC platform.", + "type": "string", + "readOnly": true, + "example": "ServiceInstance123" + }, + "serName": { + "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", + "type": "string", + "example": "ExampleService" + }, + "serCategory": { + "description": "This type represents the category reference", + "type": "object", + "required": [ + "href", + "id", + "name", + "version" + ], + "properties": { + "href": { + "description": "Reference of the catalogue", + "type": "string", + "format": "uri", + "example": "/example/catalogue1" + }, + "id": { + "description": "Unique identifier of the category", + "type": "string", + "example": "id12345" + }, + "name": { + "description": "Name of the category, example values include RNI, Location & Bandwidth Management", + "type": "string", + "example": "RNI" + }, + "version": { + "description": "Category version", + "type": "string", + "example": "version1" + } + } + }, + "version": { + "description": "Service version", + "type": "string", + "example": "ServiceVersion1" + }, + "state": { + "description": "This enumeration defines the possible states of a service.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "example": "ACTIVE" + }, + "transportInfo": { + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "id", + "name", + "type", + "protocol", + "version", + "endpoint", + "security" + ], + "properties": { + "id": { + "description": "The identifier of this transport", + "type": "string", + "example": "TransId12345" + }, + "name": { + "description": "The name of this transport", + "type": "string", + "example": "REST" + }, + "description": { + "description": "Human-readable description of this transport", + "type": "string", + "example": "REST API" + }, + "type": { + "description": "The enumeration TransportType represents types of transports", + "type": "string", + "enum": [ + "REST_HTTP", + "MB_TOPIC_BASED", + "MB_ROUTING", + "MB_PUBSUB", + "RPC", + "RPC_STREAMING", + "WEBSOCKET" + ], + "example": "REST_HTTP" + }, + "protocol": { + "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", + "type": "string", + "example": "HTTP" + }, + "version": { + "description": "The version of the protocol used", + "type": "string", + "example": "2.0" + }, + "endpoint": { + "description": "This type represents information about a transport endpoint", + "type": "object", + "oneOf": [ + { + "description": "Entry point information of the service as string, formatted according to URI syntax", + "type": "object", + "required": [ + "uris" + ], + "properties": { + "uris": { + "type": "array", + "minItems": 0, + "items": { + "description": "Entry point information of the service", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/service/EntryPoint" + } + } + } + }, + { + "description": "Entry point information of the service as one or more pairs of IP address and port", + "type": "object", + "required": [ + "addresses" + ], + "properties": { + "addresses": { + "type": "array", + "minItems": 0, + "items": { + "description": "A IP address and port pair", + "type": "object", + "required": [ + "host", + "port" + ], + "properties": { + "host": { + "description": "Host portion of the address", + "type": "string", + "example": "192.0.2.0" + }, + "port": { + "description": "Port portion of the address", + "type": "integer", + "format": "uint32", + "example": 8080 + } + } + } + } + } + }, + { + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification.", + "type": "object", + "required": [ + "alternative" + ], + "properties": { + "alternative": { + "type": "object" + } + } + } + ] + }, + "security": { + "description": "This type represents security information related to a transport", + "type": "object", + "properties": { + "oAuth2Info": { + "description": "Parameters related to use of OAuth 2.0", + "required": [ + "grantTypes", + "tokenEndpoint" + ], + "properties": { + "grantTypes": { + "description": "List of supported OAuth 2.0 grant types.", + "type": "array", + "minItems": 1, + "maxItems": 4, + "items": { + "description": "OAuth 2.0 grant type", + "type": "string", + "enum": [ + "OAUTH2_AUTHORIZATION_CODE", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_RESOURCE_OWNER", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "example": "OAUTH2_CLIENT_CREDENTIALS" + } + }, + "tokenEndpoint": { + "description": "The token endpoint", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/security/TokenEndPoint" + } + }, + "type": "object" + } + } + }, + "implSpecificInfo": { + "description": "Additional implementation specific details of the transport", + "type": "object" + } + } + }, + "serializer": { + "description": "The enumeration represents types of serializers", + "type": "string", + "enum": [ + "JSON", + "XML", + "PROTOBUF3" + ], + "example": "JSON" + }, + "scopeOfLocality": { + "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", + "type": "string", + "enum": [ + "MEC_SYSTEM", + "MEC_HOST", + "NFVI_POP", + "ZONE", + "ZONE_GROUP", + "NFVI_NODE" + ], + "example": "MEC_SYSTEM" + }, + "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", + "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", + "example": true + } + } + } +} \ No newline at end of file diff --git a/SRV/SRVSUB/PlatSrvSubscriptions.robot b/SRV/SRVSUB/PlatSrvSubscriptions.robot index 5ecd4c2..890d01a 100644 --- a/SRV/SRVSUB/PlatSrvSubscriptions.robot +++ b/SRV/SRVSUB/PlatSrvSubscriptions.robot @@ -18,8 +18,8 @@ TC_MEC_SRV_SRVSUB_001_OK ... Check that the IUT responds with a list of subscriptions for notifications ... on services availability when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.8.3.1 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/MecServiceMgmtApiSubscriptionLinkList + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.8.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/MecServiceMgmtApiSubscriptionLinkList [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of subscriptions ${APP_INSTANCE_ID} @@ -32,7 +32,7 @@ TC_MEC_SRV_SRVSUB_001_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.8.3.1 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.8.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of subscriptions ${NON_EXISTENT_INSTANCE_ID} @@ -44,16 +44,16 @@ TC_MEC_SRV_SRVSUB_002_OK ... Check that the IUT acknowledges the subscription by a MEC Application ... to notifications on service availability events ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.8.3.4 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/SerAvailabilityNotificationSubscription + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.8.3.4 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/SerAvailabilityNotificationSubscription [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new subscription ${APP_INSTANCE_ID} SerAvailabilityNotificationSubscription Check HTTP Response Status Code Is 201 Check HTTP Response Body Json Schema Is SerAvailabilityNotificationSubscription Check HTTP Response Header Contains Location - Check Result Contains ${response['body']['SerAvailabilityNotificationSubscription']} subscriptionType "SerAvailabilityNotificationSubscription" - Check Result Contains ${response['body']['SerAvailabilityNotificationSubscription']} callbackReference ${APP_SRVSUB_NOTIF_CALLBACK_URI} + Check Result Contains ${response['body']} subscriptionType "SerAvailabilityNotificationSubscription" + Check Result Contains ${response['body']} callbackReference ${APP_SRVSUB_NOTIF_CALLBACK_URI} TC_MEC_SRV_SRVSUB_002_BR @@ -61,8 +61,8 @@ TC_MEC_SRV_SRVSUB_002_BR ... Check that the IUT responds with an error when ... a request with incorrect parameters is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.8.3.4 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/SerAvailabilityNotificationSubscription + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.8.3.4 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/SerAvailabilityNotificationSubscription [Tags] PIC_MEC_PLAT PIC_SERVICES Create a new subscription ${APP_INSTANCE_ID} SerAvailabilityNotificationSubscriptionError @@ -74,14 +74,14 @@ TC_MEC_SRV_SRVSUB_003_OK ... Check that the IUT responds with the information on a specific subscription ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.9.3.1 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.9/MecServiceMgmtApi.yaml#/definitions/SerAvailabilityNotificationSubscription + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.9.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/SerAvailabilityNotificationSubscription [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual subscription ${APP_INSTANCE_ID} ${SUBSCRIPTION_ID} Check HTTP Response Status Code Is 200 Check HTTP Response Body Json Schema Is SerAvailabilityNotificationSubscription - Check Result Contains ${response['body']['SerAvailabilityNotificationSubscription']} subscriptionType "SerAvailabilityNotificationSubscription" + Check Result Contains ${response['body']} subscriptionType "SerAvailabilityNotificationSubscription" TC_MEC_SRV_SRVSUB_003_NF @@ -89,7 +89,7 @@ TC_MEC_SRV_SRVSUB_003_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.9.3.1 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.9.3.1 [Tags] PIC_MEC_PLAT PIC_SERVICES Get individual subscription ${APP_INSTANCE_ID} ${NON_EXISTENT_SUBSCRIPTION_ID} @@ -101,7 +101,7 @@ TC_MEC_SRV_SRVSUB_004_OK ... Check that the IUT acknowledges the unsubscribe from service availability event notifications ... when commanded by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.9.3.5 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.9.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove subscription ${APP_INSTANCE_ID} ${SUBSCRIPTION_ID} @@ -113,7 +113,7 @@ TC_MEC_SRV_SRVSUB_004_NF ... Check that the IUT responds with an error when ... a request for an unknown URI is sent by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.9.3.5 + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.9.3.5 [Tags] PIC_MEC_PLAT PIC_SERVICES Remove subscription ${NON_EXISTENT_INSTANCE_ID} ${SUBSCRIPTION_ID} diff --git a/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscription.json b/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscription.json index e69de29..5b56946 100644 --- a/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscription.json +++ b/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscription.json @@ -0,0 +1,9 @@ +{ + "subscriptionType": "SerAvailabilityNotificationSubscription", + "callbackReference": "http://127.0.0.1/subscribe", + "_links": { + "self": { + "href": "http://127.0.0.1/subscribe" + } + } +} \ No newline at end of file diff --git a/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscriptionError.json b/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscriptionError.json index e69de29..7e7e156 100644 --- a/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscriptionError.json +++ b/SRV/SRVSUB/jsons/SerAvailabilityNotificationSubscriptionError.json @@ -0,0 +1,9 @@ +{ + "subscription": "SerAvailabilityNotificationSubscription", + "callbackReference": "http://127.0.0.1/subscribe", + "_links": { + "self": { + "href": "http://127.0.0.1/subscribe" + } + } +} \ No newline at end of file diff --git a/SRV/SRVSUB/schemas/SerAvailabilityNotificationSubscription.json b/SRV/SRVSUB/schemas/SerAvailabilityNotificationSubscription.json index e69de29..fd3a56d 100644 --- a/SRV/SRVSUB/schemas/SerAvailabilityNotificationSubscription.json +++ b/SRV/SRVSUB/schemas/SerAvailabilityNotificationSubscription.json @@ -0,0 +1,134 @@ +{ + "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", + "required": [ + "subscriptionType", + "callbackReference", + "_links" + ], + "properties": { + "subscriptionType": { + "description": "Shall be set to SerAvailabilityNotificationSubscription.", + "type": "string", + "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" + }, + "_links": { + "description": "Self-referring URI.", + "type": "object", + "required": [ + "self" + ], + "properties": { + "self": { + "description": "This type represents a type of link and may be referenced from data structures", + "type": "object", + "properties": { + "href": { + "description": "URI referring to a resource", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/example" + } + } + } + }, + "readOnly": true + }, + "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": { + "description": "Identifiers of service instances about which to report events.", + "type": "array", + "minItems": 0, + "items": { + "description": "Identifier of the service instance assigned by the MEC platform.", + "type": "string", + "readOnly": true, + "example": "ServiceInstance123" + } + }, + "serNames": { + "description": "Names of services about which to report events.", + "type": "array", + "minItems": 0, + "items": { + "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", + "type": "string", + "example": "ExampleService" + } + }, + "serCategories": { + "description": "Categories of services about which to report events.", + "type": "array", + "minItems": 0, + "items": { + "description": "This type represents the category reference", + "type": "object", + "required": [ + "href", + "id", + "name", + "version" + ], + "properties": { + "href": { + "description": "Reference of the catalogue", + "type": "string", + "format": "uri", + "example": "/example/catalogue1" + }, + "id": { + "description": "Unique identifier of the category", + "type": "string", + "example": "id12345" + }, + "name": { + "description": "Name of the category, example values include RNI, Location & Bandwidth Management", + "type": "string", + "example": "RNI" + }, + "version": { + "description": "Category version", + "type": "string", + "example": "version1" + } + } + } + }, + "states": { + "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": { + "description": "This enumeration defines the possible states of a service.", + "type": "string", + "enum": [ + "ACTIVE", + "INACTIVE" + ], + "example": "ACTIVE" + } + }, + "isLocal": { + "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", + "type": "boolean", + "example": true + } + } + } + } +} \ No newline at end of file diff --git a/SRV/SRVSUB/schemas/SubscriptionLink.schema.json b/SRV/SRVSUB/schemas/SubscriptionLink.schema.json new file mode 100644 index 0000000..e59a52d --- /dev/null +++ b/SRV/SRVSUB/schemas/SubscriptionLink.schema.json @@ -0,0 +1,54 @@ +{ + "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.", + "type": "object", + "required": [ + "_links" + ], + "properties": { + "_links": { + "description": "Self-referring URI.", + "type": "object", + "required": [ + "self" + ], + "properties": { + "self": { + "description": "This type represents a type of link and may be referenced from data structures", + "type": "object", + "properties": { + "href": { + "description": "URI referring to a resource", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/example" + } + } + }, + "subscriptions": { + "description": "The MEC application instance's subscriptions", + "type": "array", + "items": { + "description": "A link to a subscription.", + "type": "object", + "required": [ + "href", + "rel" + ], + "properties": { + "href": { + "description": "URI referring to a resource", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/example" + }, + "rel": { + "description": "The value shall be se to SerAvailabilityNotificationSubscription.", + "type": "string" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SRV/SRVSUB/schemas/SubscriptionLinkList.schema.json b/SRV/SRVSUB/schemas/SubscriptionLinkList.schema.json index e69de29..919c646 100644 --- a/SRV/SRVSUB/schemas/SubscriptionLinkList.schema.json +++ b/SRV/SRVSUB/schemas/SubscriptionLinkList.schema.json @@ -0,0 +1,57 @@ +{ + "type": "array", + "objects": { + "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.", + "type": "object", + "required": [ + "_links" + ], + "properties": { + "_links": { + "description": "Self-referring URI.", + "type": "object", + "required": [ + "self" + ], + "properties": { + "self": { + "description": "This type represents a type of link and may be referenced from data structures", + "type": "object", + "properties": { + "href": { + "description": "URI referring to a resource", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/example" + } + } + }, + "subscriptions": { + "description": "The MEC application instance's subscriptions", + "type": "array", + "items": { + "description": "A link to a subscription.", + "type": "object", + "required": [ + "href", + "rel" + ], + "properties": { + "href": { + "description": "URI referring to a resource", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/example" + }, + "rel": { + "description": "The value shall be se to SerAvailabilityNotificationSubscription.", + "type": "string" + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SRV/TRANS/PlatTransport.robot b/SRV/TRANS/PlatTransport.robot index f4225e0..ade483f 100644 --- a/SRV/TRANS/PlatTransport.robot +++ b/SRV/TRANS/PlatTransport.robot @@ -18,8 +18,8 @@ TC_MEC_SRV_TRANS_001_OK ... Check that the IUT responds with a list of available transports ... when queried by a MEC Application ... - ... Reference ETSI GS MEC 011 V2.0.9, clause 8.2.5.3.1 - ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/v2.0.8/Mp1.yaml#/definitions/TransportInfo + ... Reference ETSI GS MEC 011 V2.1.1, clause 8.2.5.3.1 + ... OpenAPI https://forge.etsi.org/rep/mec/gs011-app-enablement-api/blob/master/MecServiceMgmtApi.yaml#/definitions/TransportInfo [Tags] PIC_MEC_PLAT PIC_SERVICES Get list of available transports diff --git a/SRV/TRANS/schemas/TransportInfoList.schema.json b/SRV/TRANS/schemas/TransportInfoList.schema.json index e69de29..54f8fdc 100644 --- a/SRV/TRANS/schemas/TransportInfoList.schema.json +++ b/SRV/TRANS/schemas/TransportInfoList.schema.json @@ -0,0 +1,171 @@ +{ + "type": "array", + "objects": { + "description": "This type represents the general information of a MEC service.", + "type": "object", + "required": [ + "id", + "name", + "type", + "protocol", + "version", + "endpoint", + "security" + ], + "properties": { + "id": { + "description": "The identifier of this transport", + "type": "string", + "example": "TransId12345" + }, + "name": { + "description": "The name of this transport", + "type": "string", + "example": "REST" + }, + "description": { + "description": "Human-readable description of this transport", + "type": "string", + "example": "REST API" + }, + "type": { + "description": "The enumeration TransportType represents types of transports", + "type": "string", + "enum": [ + "REST_HTTP", + "MB_TOPIC_BASED", + "MB_ROUTING", + "MB_PUBSUB", + "RPC", + "RPC_STREAMING", + "WEBSOCKET" + ], + "example": "REST_HTTP" + }, + "protocol": { + "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", + "type": "string", + "example": "HTTP" + }, + "version": { + "description": "The version of the protocol used", + "type": "string", + "example": "2.0" + }, + "endpoint": { + "description": "This type represents information about a transport endpoint", + "type": "object", + "oneOf": [ + { + "description": "Entry point information of the service as string, formatted according to URI syntax", + "type": "object", + "required": [ + "uris" + ], + "properties": { + "uris": { + "type": "array", + "minItems": 0, + "items": { + "description": "Entry point information of the service", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/service/EntryPoint" + } + } + } + }, + { + "description": "Entry point information of the service as one or more pairs of IP address and port", + "type": "object", + "required": [ + "addresses" + ], + "properties": { + "addresses": { + "type": "array", + "minItems": 0, + "items": { + "description": "A IP address and port pair", + "type": "object", + "required": [ + "host", + "port" + ], + "properties": { + "host": { + "description": "Host portion of the address", + "type": "string", + "example": "192.0.2.0" + }, + "port": { + "description": "Port portion of the address", + "type": "integer", + "format": "uint32", + "example": 8080 + } + } + } + } + } + }, + { + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification.", + "type": "object", + "required": [ + "alternative" + ], + "properties": { + "alternative": { + "type": "object" + } + } + } + ] + }, + "security": { + "description": "This type represents security information related to a transport", + "type": "object", + "properties": { + "oAuth2Info": { + "description": "Parameters related to use of OAuth 2.0", + "required": [ + "grantTypes", + "tokenEndpoint" + ], + "properties": { + "grantTypes": { + "description": "List of supported OAuth 2.0 grant types.", + "type": "array", + "minItems": 1, + "maxItems": 4, + "items": { + "description": "OAuth 2.0 grant type", + "type": "string", + "enum": [ + "OAUTH2_AUTHORIZATION_CODE", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_RESOURCE_OWNER", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "example": "OAUTH2_CLIENT_CREDENTIALS" + } + }, + "tokenEndpoint": { + "description": "The token endpoint", + "type": "string", + "format": "uri", + "example": "/mecSerMgmtApi/security/TokenEndPoint" + } + }, + "type": "object" + } + } + }, + "implSpecificInfo": { + "description": "Additional implementation specific details of the transport", + "type": "object" + } + } + } +} \ No newline at end of file diff --git a/SRV/UEAREASUB/schemas/CircleNotificationSubscription.schema.v1.1.1.json b/SRV/UEAREASUB/schemas/CircleNotificationSubscription.schema.v1.1.1.json new file mode 100644 index 0000000..6b745ec --- /dev/null +++ b/SRV/UEAREASUB/schemas/CircleNotificationSubscription.schema.v1.1.1.json @@ -0,0 +1,142 @@ +{ + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://example.com/root.json", + "type": "object", + "title": "The Root Schema", + "required": [ + "address", + "callbackReference", + "checkImmediate", + "clientCorrelator", + "enteringLeavingCriteria", + "frequency", + "latitude", + "longitude", + "radius", + "trackingAccuracy" + ], + "properties": { + "address": { + "$id": "#/properties/address", + "type": "string", + "title": "The Address Schema", + "default": "", + "examples": [ + "acr:10.0.0.1" + ], + "pattern": "^(.*)$" + }, + "callbackReference": { + "$id": "#/properties/callbackReference", + "type": "object", + "title": "The Callbackreference Schema", + "required": [ + "callbackData", + "notifyURL" + ], + "properties": { + "callbackData": { + "$id": "#/properties/callbackReference/properties/callbackData", + "type": "string", + "title": "The Callbackdata Schema", + "default": "", + "examples": [ + "1234" + ], + "pattern": "^(.*)$" + }, + "notifyURL": { + "$id": "#/properties/callbackReference/properties/notifyURL", + "type": "string", + "title": "The Notifyurl Schema", + "default": "", + "examples": [ + "http://application.example.com/notifications/distance_notifications/123456" + ], + "pattern": "^(.*)$" + } + } + }, + "checkImmediate": { + "$id": "#/properties/checkImmediate", + "type": "string", + "title": "The Checkimmediate Schema", + "default": "", + "examples": [ + "true" + ], + "pattern": "^(.*)$" + }, + "clientCorrelator": { + "$id": "#/properties/clientCorrelator", + "type": "string", + "title": "The Clientcorrelator Schema", + "default": "", + "examples": [ + "0123" + ], + "pattern": "^(.*)$" + }, + "enteringLeavingCriteria": { + "$id": "#/properties/enteringLeavingCriteria", + "type": "string", + "title": "The Enteringleavingcriteria Schema", + "default": "", + "examples": [ + "Entering" + ], + "pattern": "^(.*)$" + }, + "frequency": { + "$id": "#/properties/frequency", + "type": "string", + "title": "The Frequency Schema", + "default": "", + "examples": [ + "10" + ], + "pattern": "^(.*)$" + }, + "latitude": { + "$id": "#/properties/latitude", + "type": "string", + "title": "The Latitude Schema", + "default": "", + "examples": [ + "-80.86302" + ], + "pattern": "^(.*)$" + }, + "longitude": { + "$id": "#/properties/longitude", + "type": "string", + "title": "The Longitude Schema", + "default": "", + "examples": [ + "41.277306" + ], + "pattern": "^(.*)$" + }, + "radius": { + "$id": "#/properties/radius", + "type": "string", + "title": "The Radius Schema", + "default": "", + "examples": [ + "500" + ], + "pattern": "^(.*)$" + }, + "trackingAccuracy": { + "$id": "#/properties/trackingAccuracy", + "type": "string", + "title": "The Trackingaccuracy Schema", + "default": "", + "examples": [ + "10" + ], + "pattern": "^(.*)$" + } + } +} \ No newline at end of file diff --git a/SRV/UEDISTLOOK/schemas/TerminalDistance.schema.v1.1.1.json b/SRV/UEDISTLOOK/schemas/TerminalDistance.schema.v1.1.1.json new file mode 100644 index 0000000..b23ded1 --- /dev/null +++ b/SRV/UEDISTLOOK/schemas/TerminalDistance.schema.v1.1.1.json @@ -0,0 +1,32 @@ +{ + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://example.com/root.json", + "type": "object", + "title": "The Root Schema", + "required": [ + " terminalDistance" + ], + "properties": { + " terminalDistance": { + "$id": "#/properties/ terminalDistance", + "type": "object", + "title": "The terminaldistance Schema", + "required": [ + "distance" + ], + "properties": { + "distance": { + "$id": "#/properties/ terminalDistance/properties/distance", + "type": "string", + "title": "The Distance Schema", + "default": "", + "examples": [ + "123" + ], + "pattern": "^(.*)$" + } + } + } + } +} diff --git a/SRV/UEDISTSUB/schemas/DistanceNotificationSubscription.schema.v1.1.1.json b/SRV/UEDISTSUB/schemas/DistanceNotificationSubscription.schema.v1.1.1.json new file mode 100644 index 0000000..bc69876 --- /dev/null +++ b/SRV/UEDISTSUB/schemas/DistanceNotificationSubscription.schema.v1.1.1.json @@ -0,0 +1,147 @@ +{ + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://example.com/root.json", + "type": "object", + "title": "The Root Schema", + "required": [ + "distanceNotificationSubscription" + ], + "properties": { + "distanceNotificationSubscription": { + "$id": "#/properties/distanceNotificationSubscription", + "type": "object", + "title": "The Distancenotificationsubscription Schema", + "required": [ + "callbackReference", + "checkImmediate", + "clientCorrelator", + "criteria", + "distance", + "frequency", + "monitoredAddress", + "referenceAddress", + "trackingAccuracy" + ], + "properties": { + "callbackReference": { + "$id": "#/properties/distanceNotificationSubscription/properties/callbackReference", + "type": "object", + "title": "The Callbackreference Schema", + "required": [ + "callbackData", + "notifyURL" + ], + "properties": { + "callbackData": { + "$id": "#/properties/distanceNotificationSubscription/properties/callbackReference/properties/callbackData", + "type": "string", + "title": "The Callbackdata Schema", + "default": "", + "examples": [ + "1234" + ], + "pattern": "^(.*)$" + }, + "notifyURL": { + "$id": "#/properties/distanceNotificationSubscription/properties/callbackReference/properties/notifyURL", + "type": "string", + "title": "The Notifyurl Schema", + "default": "", + "examples": [ + "http://application.example.com/notifications/distance_notifications/123456" + ], + "pattern": "^(.*)$" + } + } + }, + "checkImmediate": { + "$id": "#/properties/distanceNotificationSubscription/properties/checkImmediate", + "type": "string", + "title": "The Checkimmediate Schema", + "default": "", + "examples": [ + "true" + ], + "pattern": "^(.*)$" + }, + "clientCorrelator": { + "$id": "#/properties/distanceNotificationSubscription/properties/clientCorrelator", + "type": "string", + "title": "The Clientcorrelator Schema", + "default": "", + "examples": [ + "0123" + ], + "pattern": "^(.*)$" + }, + "criteria": { + "$id": "#/properties/distanceNotificationSubscription/properties/criteria", + "type": "string", + "title": "The Criteria Schema", + "default": "", + "examples": [ + "AllWithinDistance" + ], + "pattern": "^(.*)$" + }, + "distance": { + "$id": "#/properties/distanceNotificationSubscription/properties/distance", + "type": "string", + "title": "The Distance Schema", + "default": "", + "examples": [ + "100" + ], + "pattern": "^(.*)$" + }, + "frequency": { + "$id": "#/properties/distanceNotificationSubscription/properties/frequency", + "type": "string", + "title": "The Frequency Schema", + "default": "", + "examples": [ + "10" + ], + "pattern": "^(.*)$" + }, + "monitoredAddress": { + "$id": "#/properties/distanceNotificationSubscription/properties/monitoredAddress", + "type": "array", + "title": "The Monitoredaddress Schema", + "items": { + "$id": "#/properties/distanceNotificationSubscription/properties/monitoredAddress/items", + "type": "string", + "title": "The Items Schema", + "default": "", + "examples": [ + "acr:10.0.0.1", + "acr:10.0.0.2" + ], + "pattern": "^(.*)$" + } + }, + "referenceAddress": { + "$id": "#/properties/distanceNotificationSubscription/properties/referenceAddress", + "type": "string", + "title": "The Referenceaddress Schema", + "default": "", + "examples": [ + "acr:10.0.0.3" + ], + "pattern": "^(.*)$" + }, + "trackingAccuracy": { + "$id": "#/properties/distanceNotificationSubscription/properties/trackingAccuracy", + "type": "string", + "title": "The Trackingaccuracy Schema", + "default": "", + "examples": [ + "10" + ], + "pattern": "^(.*)$" + } + } + } + } +} diff --git a/SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.v1.1.1.json b/SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.v1.1.1.json new file mode 100644 index 0000000..6c9a35d --- /dev/null +++ b/SRV/UEINFOSUB/schemas/ZonalTrafficSubscription.schema.v1.1.1.json @@ -0,0 +1,71 @@ +{ + "zonalTrafficSubscription": { + "description": "A type containing zonal traffic subscription", + "type": "object", + "required": [ + "callbackReference", + "zoneId" + ], + "properties": { + "clientCorrelator": { + "description": "Uniquely identifies this create subscription request. If there is a communication failure during the request, using the same clientCorrelator when retrying the request allows the operator to avoid creating a duplicate subscription.", + "type": "string", + "example": "0123" + }, + "callbackReference": { + "description": "Notification callback definition.", + "type": "object", + "required": [ + "notifyURL" + ], + "properties": { + "notifyURL": { + "description": "The URL of your own listener application.", + "type": "string", + "format": "url", + "example": "http://clientApp.example.com/location_notifications/123456" + } + } + }, + "zoneId": { + "description": "Identifier of zone", + "type": "string", + "example": "zone01" + }, + "interestRealm": { + "description": "Interest realms of access points within a zone (e.g. geographical area, a type of industry etc.).", + "type": "array", + "items": { + "description": "Interest realm of access point (e.g. geographical area, a type of industry etc.).", + "type": "string", + "example": "LA" + } + }, + "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.", + "type": "array", + "items": { + "description": "User event", + "type": "string", + "enum": [ + "Entering", + "Leaving", + "Transferring" + ], + "example": "Entering" + } + }, + "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": "string", + "example": "0" + }, + "resourceURL": { + "description": "Self referring URL.", + "type": "string", + "format": "uri", + "example": "http://example.com/exampleAPI/location/v1/subscriptions/userTracking/subscription123" + } + } + } + } \ No newline at end of file diff --git a/SRV/UELOCSUB/schemas/UserTrackingSubscription.schema.v1.1.1.json b/SRV/UELOCSUB/schemas/UserTrackingSubscription.schema.v1.1.1.json new file mode 100644 index 0000000..c7e590d --- /dev/null +++ b/SRV/UELOCSUB/schemas/UserTrackingSubscription.schema.v1.1.1.json @@ -0,0 +1,77 @@ +{ + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://example.com/object1575044080.json", + "title": "Root", + "type": "object", + "required": [ + "userTrackingSubscription" + ], + "properties": { + "userTrackingSubscription": { + "$id": "#root/userTrackingSubscription", + "title": "Usertrackingsubscription", + "type": "object", + "required": [ + "clientCorrelator", + "callbackReference", + "address", + "userEventCriteria" + ], + "properties": { + "clientCorrelator": { + "$id": "#root/userTrackingSubscription/clientCorrelator", + "title": "Clientcorrelator", + "type": "string", + "default": "", + "examples": [ + "0123" + ], + "pattern": "^.*$" + }, + "callbackReference": { + "$id": "#root/userTrackingSubscription/callbackReference", + "title": "Callbackreference", + "type": "object", + "required": [ + "notifyURL" + ], + "properties": { + "notifyURL": { + "$id": "#root/userTrackingSubscription/callbackReference/notifyURL", + "title": "Notifyurl", + "type": "string", + "default": "", + "examples": [ + "http://clientApp.example.com/location_notifications/123456" + ], + "pattern": "^.*$" + } + } + } +, + "address": { + "$id": "#root/userTrackingSubscription/address", + "title": "Address", + "type": "string", + "default": "", + "examples": [ + "acr:10.0.0.1" + ], + "pattern": "^.*$" + }, + "userEventCriteria": { + "$id": "#root/userTrackingSubscription/userEventCriteria", + "title": "Usereventcriteria", + "type": "string", + "default": "", + "examples": [ + "Transferring" + ], + "pattern": "^.*$" + } + } + } + + } +} diff --git a/SRV/UETRACKSUB/schemas/PeriodicNotificationSubscription.schema.v1.1.1.json b/SRV/UETRACKSUB/schemas/PeriodicNotificationSubscription.schema.v1.1.1.json new file mode 100644 index 0000000..4a1d50e --- /dev/null +++ b/SRV/UETRACKSUB/schemas/PeriodicNotificationSubscription.schema.v1.1.1.json @@ -0,0 +1,99 @@ +{ + "definitions": {}, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://example.com/object1575044234.json", + "title": "Root", + "type": "object", + "required": [ + "periodicNotificationSubscription" + ], + "properties": { + "periodicNotificationSubscription": { + "$id": "#root/periodicNotificationSubscription", + "title": "Periodicnotificationsubscription", + "type": "object", + "required": [ + "address", + "callbackReference", + "clientCorrelator", + "frequency", + "requestedAccuracy" + ], + "properties": { + "address": { + "$id": "#root/periodicNotificationSubscription/address", + "title": "Address", + "type": "string", + "default": "", + "examples": [ + "acr:10.0.0.1" + ], + "pattern": "^.*$" + }, + "callbackReference": { + "$id": "#root/periodicNotificationSubscription/callbackReference", + "title": "Callbackreference", + "type": "object", + "required": [ + "callbackData", + "notifyURL" + ], + "properties": { + "callbackData": { + "$id": "#root/periodicNotificationSubscription/callbackReference/callbackData", + "title": "Callbackdata", + "type": "string", + "default": "", + "examples": [ + "0123" + ], + "pattern": "^.*$" + }, + "notifyURL": { + "$id": "#root/periodicNotificationSubscription/callbackReference/notifyURL", + "title": "Notifyurl", + "type": "string", + "default": "", + "examples": [ + "http://clientApp.example.com/location_notifications/123456" + ], + "pattern": "^.*$" + } + } + } +, + "clientCorrelator": { + "$id": "#root/periodicNotificationSubscription/clientCorrelator", + "title": "Clientcorrelator", + "type": "string", + "default": "", + "examples": [ + "0123" + ], + "pattern": "^.*$" + }, + "frequency": { + "$id": "#root/periodicNotificationSubscription/frequency", + "title": "Frequency", + "type": "string", + "default": "", + "examples": [ + "10" + ], + "pattern": "^.*$" + }, + "requestedAccuracy": { + "$id": "#root/periodicNotificationSubscription/requestedAccuracy", + "title": "Requestedaccuracy", + "type": "string", + "default": "", + "examples": [ + "10" + ], + "pattern": "^.*$" + } + } + } + + } +} -- GitLab