diff --git a/SRV/APPSAQ/PlatAppServices.robot b/SRV/APPSAQ/PlatAppServices.robot index ed80ff179b1d4d1662a482c8d93195a75ad21126..49de49a889a5ebf6ce1d108e8ad5d993c52b492c 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 fae67a395a25e007bdf05661dee0ecde2f484535..5b218f862cb092d7b6764391342a3593044be895 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a7962fa6d32db172133b8e046af8da749f929b04 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..672c8a05db8746bbfdd23b2f9888be7cc938034f 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..afee85ac9419054136e278c60f5ae34d1706a1f5 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 0000000000000000000000000000000000000000..6794471ccde6e94aa98b95ad8f9aa9fb35e30ab3 --- /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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..50fbfe28d02dc6d410934a358a22fd4b9f7ace11 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 f8bd4fc8d70a3f73dfc127e87e74ea1562a5d783..d9ddc80d9232d8fa00387a611751fc362e3ea421 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 3d1534d8684275998860dfe736c4fc3191a46387..85ce9499e11382c0dd91699dc911987c712ad9f1 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 0000000000000000000000000000000000000000..50efd4edbdfc79a1e5740017c0e89b8ab08cc56b --- /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 2676ca0cccaf33d1b49c258356235f1ed6ceeba3..a5350b30027ca0826d42e2a0a5cdcbdb844ca6ca 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..50fbfe28d02dc6d410934a358a22fd4b9f7ace11 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d9ddc80d9232d8fa00387a611751fc362e3ea421 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 5ecd4c28be1bdbac6defb2fb2870f266d39ec465..890d01a67b735a7765e7fbe177715977f5e40a8b 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5b56946d39282f513d337e055bef4750d85ff7b4 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7e7e1567d672490a0306b47ad7758b52081667f4 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fd3a56de2bb839deaac4ae25d4397abc3c44c929 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 0000000000000000000000000000000000000000..e59a52dbced468240db0b52b3099a1898c84ebef --- /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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..919c646ee7c90f3695c5e4d50cb4e839b8c9b31b 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 f4225e06e6139eec4a14ade94d39b9b32a0855f7..ade483f8076ab46abfbfb30fa9790be044f6a3da 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..54f8fdc09f20904fa227e42a0384329e83dc616a 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 0000000000000000000000000000000000000000..6b745ec421507748b6cdc299bf4a8c31d4ede14d --- /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 0000000000000000000000000000000000000000..b23ded186f8f1270e7ddcd32dd63515ebda4665c --- /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 0000000000000000000000000000000000000000..bc698763fb68d5a6b900dcd2e36dd995d98839a4 --- /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 0000000000000000000000000000000000000000..6c9a35d36307177c7cd311aba463e0f70c202875 --- /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 0000000000000000000000000000000000000000..c7e590d6f5398879d4daabba75e3a530263db8b3 --- /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 0000000000000000000000000000000000000000..4a1d50ec1228db0367834bb06d876e60d339c193 --- /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": "^.*$" + } + } + } + + } +}