Commits (3)
......@@ -8,14 +8,13 @@ Library REST ${MEO_SCHEMA}://${MEO_HOST}:${MEO_PORT} ssl_verify=false
Library OperatingSystem
*** Test Cases ***
TP_MEC_MEC010p2_MEO_GRANT_001_OK
[Documentation]
[Documentation] TP_MEC_MEC010p2_MEO_GRANT_001_OK
... Check that MEO sends a synchronous grant response when a grant request is requested
... ETSI GS MEC 010-2 2.2.1, clause 7.5.1.3.1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.2.2-1 (GrantRequest)
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.2.2-1 Note 2 (GrantRequest)
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1 (Grant)
[Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Create a GRANT request grantRequest
......@@ -23,51 +22,52 @@ TP_MEC_MEC010p2_MEO_GRANT_001_OK
Check HTTP Response Header Contains Location
Check HTTP Response Body Json Schema Is Grant
TP_MEC_MEC010p2_MEO_GRANT_001_BR
[Documentation] TP_MEC_MEO_GRANT_001_BR
[Documentation] TP_MEC_MEC010p2_MEO_GRANT_001_BR
... Check that MEO responds with an error when it receives a malformed request when a new grant request is performed
... ETSI GS MEC 010-2 2.2.1, clause 7.6.1.3.2
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1 (Grant)
[Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Create a GRANT request grantRejectedRequest
Create a GRANT request grantBadRequest
Check HTTP Response Status Code Is 400
TP_MEC_MEC010p2_MEO_GRANT_002_OK
[Documentation] TP_MEC_MEO_GRANT_002_OK
... Check that MEO sends a asynchronous grant response when a grant request is requested
... ETSI GS MEC 010-2 2.2.1, clause 7.6.1.3.1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1 (Grant)
[Documentation] TP_MEC_MEC010p2_MEO_GRANT_002_OK
... Check that MEO sends a synchronous grant response when a grant request is requested
... ETSI GS MEC 010-2 2.2.1, clause 7.5.1.3.1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.2.2-1 //GrantRequest
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1
[Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Create a GRANT request grantRequest2
Check HTTP Response Status Code Is 201
Check HTTP Response Header Contains Location
Check HTTP Response Body Json Schema Is Grant
#TP_MEC_MEC010p2_MEO_GRANT_002_BR TODO clarify TPs before implementing this
# [Documentation] TP_MEC_MEC010p2_MEO_GRANT_002_BR
# ... Check that MEO responds with an error when it receives a malformed request when a new grant request is performed
# ... ETSI GS MEC 010-2 2.2.1, clause 7.6.1.3.2
# ... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1 (Grant)
# [Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
# Create a GRANT request grantBadRequest2
# Check HTTP Response Status Code Is 400
TP_MEC_MEC010p2_MEO_GRANT_006_OK
[Documentation] TP_MEC_MEO_GRANT_003_OK
... Check that MEO sends the status of a grant request when a query on a granting ID is performed.
... The process of creating the grant is ongoing, no grant is available yet
... ETSI GS MEC 010-2 2.2.1, clause 7.6.1.3.2
TP_MEC_MEC010p2_MEO_GRANT_003_OK
[Documentation] TP_MEC_MEC010p2_MEO_GRANT_003_OK
... Check that MEO sends an asynchronous grant response when a grant request is requested
... ETSI GS MEC 010-2 2.2.1, clause 7.5.1.3.1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.2.2-1 (GrantRequest)
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.2.2-1 Note 2 (GrantRequest)
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1 (Grant)
[Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get an individual grant ${GRANT_ID}
Check HTTP Response Status Code Is 200
Create a GRANT request grantRequestAsynchronous
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
Check HTTP Response Body Json Schema Is Grant
##TODO Fix numbering against success case
TP_MEC_MEC010p2_MEO_GRANT_003_NF
[Documentation] TP_MEC_MEO_GRANT_003_NF
... Check that MEO responds with an error when it receives a request for returning a grant referred with a wrong ID
......@@ -77,6 +77,42 @@ TP_MEC_MEC010p2_MEO_GRANT_003_NF
Check HTTP Response Status Code Is 404
TP_MEC_MEC010p2_MEO_GRANT_004_OK
[Documentation] TP_MEC_MEC010p2_MEO_GRANT_004_OK
... Check that MEO sends an asynchronous grant response when a grant request is requested
... ETSI GS MEC 010-2 2.2.1, clause 7.5.1.3.1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.2.2-1 (GrantRequest)
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1 (Grant)
[Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Create a GRANT request grantRequestAsynchronous2
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
TP_MEC_MEC010p2_MEO_GRANT_005_OK
[Documentation] TP_MEC_MEC010p2_MEO_GRANT_005_OK
... Check that MEO sends the status of a grant request when a query on a granting ID is performed.
... The process of creating the grant is ongoing, no grant is available yet
... ETSI GS MEC 010-2 2.2.1, clause 7.5.2.3.2
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1
[Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get an individual grant ${GRANT_ID_ACCEPTED}
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
TP_MEC_MEC010p2_MEO_GRANT_006_OK
[Documentation] TP_MEC_MEC010p2_MEO_GRANT_006_OK
... Check that MEO sends the status of a grant request when a query on a granting ID is performed.
... The process of creating the grant is ongoing, no grant is available yet
... ETSI GS MEC 010-2 2.2.1, clause 7.5.2.3.2
... ETSI GS MEC 010-2 2.2.1, Table 6.2.4.4.2-1
[Tags] PIC_GRANTS_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get an individual grant ${GRANT_ID}
Check HTTP Response Status Code Is 200
Check HTTP Response Header Contains Location
Check HTTP Response Body Json Schema Is Grant
*** Keywords ***
......
......@@ -12,7 +12,9 @@ ${apiVersion} v1
# Specific variables
${GRANT_ID} e0deee2b-6e50-4f33-ab09-8bf0585025d3
${NOT_EXISTING_GRANT_ID} non_existant_grant_id
${GRANT_ID_ACCEPTED} abcdee2b-6e50-4f33-ab09-8bf05850abcd
${NOT_EXISTING_GRANT_ID} NOT_EXISTING_GRANT_ID
${APP_INSTANCE_ID} 456
# Notifications variables
......
{
"id": "123",
"appInstanceId": "456",
"appLcmOpOccId": "789",
"operationERROR":"INSTANTIATE"
}
\ No newline at end of file
......@@ -3,6 +3,14 @@
"appInstanceId": "456",
"appLcmOpOccId": "789",
"operation": "OPERATE",
"addResources": [
{
"resourceDefinitionId": "resourceDefinitionId",
"vimConnectionId": "vimConnectionId",
"resourceGroupId": "resourceGroupId",
"zoneId": "zoneId"
}
],
"_links": {
"appLcmOpOcc": {
"href": "https://anexample.ex/"
......
{
"id": "456",
"appInstanceId": "456",
"appLcmOpOccId": "789",
"operation": "INSTANTIATE",
"addResources": [
{
"resourceDefinitionId": "resourceDefinitionId",
"vimConnectionId": "vimConnectionId",
"resourceGroupId": "resourceGroupId",
"zoneId": "zoneId"
}
],
"_links": {
"appLcmOpOcc": {
"href": "https://anexample.ex/"
},
"appInstance": {
"href": "https://anexample.ex/"
}
}
}
\ No newline at end of file
{
"id": "456",
"appInstanceId": "456",
"appLcmOpOccId": "789",
"operation": "OPERATE",
"addResources": [
{
"resourceDefinitionId": "resourceDefinitionId",
"vimConnectionId": "vimConnectionId",
"resourceGroupId": "resourceGroupId",
"zoneId": "zoneId"
}
],
"_links": {
"appLcmOpOcc": {
"href": "https://anexample.ex/"
},
"appInstance": {
"href": "https://anexample.ex/"
}
}
}
\ No newline at end of file
{
"appServiceRequired": [{
"sernName": "serviceName"
}]
}
\ No newline at end of file
{
"appServiceWrongRequired": [{
"sernName": "serviceName"
}]
}
\ No newline at end of file
''[Documentation] robot --outputdir ./outputs ./SRV/UETAG/PlatUeIdentity.robot
... Test Suite to validate UE Identity Tag (UETAG) operations.
''[Documentation] robot --outputdir ./outputs ./PackageManagement.robot
... Test Suite to validate Package Management (PKGM) operations.
*** Settings ***
Resource environment/variables.txt
......@@ -7,208 +7,325 @@ Resource ../../../GenericKeywords.robot
Library REST ${MEPM_SCHEMA}://${MEPM_HOST}:${MEPM_PORT} ssl_verify=false
Library BuiltIn
Library OperatingSystem
Library MockServerLibrary
#Library MockServerLibrary
*** Test Cases ***
TC_MEC_MEC010p2_MEPM_PKGM_001_OK
[Documentation] TP_MEC_MEPM_PKGM_001_OK
... Check that MEPM returns the list of App Packages when requested
... ETSI GS MEC 010-2 2.0.10, clause 7.4.1.3.2
... ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo)
TC_MEC_MEC010p2_MEPM_PKGM_001_01_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_001_01_OK
... Check that MEPM returns the list of App Packages when requested - Note 3
... ETSI GS MEC 010-2 2.2.1, clause 7.3.1.3.2
... ETSI GS MEC 010-2 2.2.1, clause 7.3.1.3.2
... ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1 Note 3
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
GET all APP Packages
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is OnboardedAppPkgInfos
Check Result Contains ${response} appPkgId ${ON_BOARDED_APP_PKG_ID}
Check Result Contains ${response} appDId ${APPD_ID}
FOR ${appPkg} IN @{response['body']}
Validate Json AppPkgInfo.schema.json ${appPkg}
END
TC_MEC_MEC010p2_MEPM_PKGM_001_BR
[Documentation] TP_MEC_MEPM_PKGM_001_BR
... Check that MEPM responds with an error when it receives
... a malformed request for requesting the list of existing App Packages
... ETSI GS MEC 010-2 2.0.10, clause 7.4.1.3.2
TC_MEC_MEC010p2_MEPM_PKGM_001_02_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_001_02_OK
... Check that MEPM returns the list of on boarded app Packages when requested - Note 3
... ETSI GS MEC 010-2 2.2.1, clause 7.3.1.3.2
... ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1 Note 3
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
GET all APP Packages with filters ${MALFORMED_FILTER_NAME} ${FILTER_VALUE}
Check HTTP Response Status Code Is 400
GET all onboarded APP Packages
Check HTTP Response Status Code Is 200
FOR ${appPkg} IN @{response['body']}
Validate Json AppPkgInfo.schema.json ${appPkg}
END
TC_MEC_MEC010p2_MEPM_PKGM_002_OK
[Documentation] TP_MEC_MEPM_PKGM_002_OK
... Check that MEPM returns the an App Package when requested
... EETSI GS MEC 010-2 2.0.10, clause 7.4.2.3.2
... ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo)
TC_MEC_MEC010p2_MEPM_PKGM_002_01_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_002_01_OK
... Check that MEPM returns the an App Package when requested - Note 3
... ETSI GS MEC 010-2 2.2.1, clause 7.3.2.3.2
... ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1
... ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1 Note 3
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
GET an APP Package identified by ${ON_BOARDED_APP_PKG_ID}
GET an APP Package identified by ${APP_PKG_ID}
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is OnboardedAppPkgInfo
Check Result Contains ${response} appPkgId ${ON_BOARDED_APP_PKG_ID}
Check Result Contains ${response} appDId ${APPD_ID}
Check HTTP Response Body Json Schema Is AppPkgInfo
Should Be Equal As Strings ${response['body']['id']} ${APP_PKG_ID}
TC_MEC_MEC010p2_MEPM_PKGM_002_NF
[Documentation] TP_MEC_MEPM_PKGM_002_NF
... Check that MEPM responds with an error when it receives
... a request for returning a App Package referred with a wrong ID
... ETSI GS MEC 010-2 2.0.10, clause 7.4.2.3.2
TC_MEC_MEC010p2_MEPM_PKGM_003_01_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_003_01_OK
... Check that MEPM returns the Application Descriptor contained on a on-boarded Application Package when requested
... ETSI GS MEC 010-2 2.2.1, clause 7.3.6.3.2
... ETSI GS MEC 010-2 2.2.1, clause 6.2.1.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
GET an APP Package identified by ${NON_EXISTENT_APP_PKG_ID}
Check HTTP Response Status Code Is 404
Get AppD by ${APPD_ID}
Check HTTP Response Status Code Is 200
TC_MEC_MEC010p2_MEPM_PKGM_003_OK
[Documentation] TP_MEC_MEPM_PKGM_003_OK
TC_MEC_MEC010p2_MEPM_PKGM_003_02_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_003_02_OK
... Check that MEPM returns the Application Descriptor contained on a on-boarded Application Package when requested
... ETSI GS MEC 010-2 2.0.10, clause 7.4.4.3.2
... ETSI GS MEC 010-2 2.2.1, clause 7.3.6.3.2
... ETSI GS MEC 010-2 2.2.1, clause 6.2.1.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get an AppD from App Package identified by ${ON_BOARDED_APP_PKG_ID}
Get AppD from onboarded app packages by ${APPD_ID}
Check HTTP Response Status Code Is 200
Check HTTP Response Contain Header with value Content-Type ${ACCEPTED_CONTENT_TYPE}
##TODO: How to check content returned?
TC_MEC_MEC010p2_MEPM_PKGM_003_NF
[Documentation] TP_MEC_MEPM_PKGM_003_NF
... Check that MEPM responds with an error when it receives
... a request for returning a App Descriptor referred with a wrong App Package ID
... ETSI GS MEC 010-2 2.0.10, clause 7.4.4.3.2
TC_MEC_MEC010p2_MEPM_PKGM_004_01_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_004_01_OK
... Check that MEPM fetches the on-boarded application package content identified by appPkgId when requested
... ETSI GS MEC 010-2 2.2.1, clause 7.3.7.3.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get an AppD from App Package identified by ${NON_EXISTENT_APP_PKG_ID}
Check HTTP Response Status Code Is 404
Get onboarded application package ${APP_PKG_ID}
Check HTTP Response Status Code Is 200
Should Be Equal As Strings ${response}[headers][Content-Type] application/zip
TC_MEC_MEC010p2_MEPM_PKGM_004_OK
[Documentation] TP_MEC_MEPM_PKGM_004_OK
... Check that MEPM returns the content on a on-boarded Application Package when requested
... ETSI GS MEC 010-2 2.0.10, clause 7.4.3.3.2
TC_MEC_MEC010p2_MEPM_PKGM_004_02_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_004_02_OK
... Check that MEPM fetches the on-boarded application package content identified by appDId when requested
... ETSI GS MEC 010-2 2.2.1, clause 7.3.7.3.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get the Content from an App Package identified by ${ON_BOARDED_APP_PKG_ID}
Get onboarded application package by AppdId ${APPD_ID}
Check HTTP Response Status Code Is 200
##TODO: How to check content returned?
TC_MEC_MEC010p2_MEPM_PKGM_004_NF
[Documentation] TP_MEC_MEPM_PKGM_004_NF
... Check that MEPM responds with an error when it receives
... a request for returning a application package content referred with a wrong App Package ID
... ETSI GS MEC 010-2 2.0.10, clause 7.4.4.3.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get the Content from an App Package identified by ${NON_EXISTENT_APP_PKG_ID}
Check HTTP Response Status Code Is 404
Should Be Equal As Strings ${response}[headers][Content-Type] application/zip
TC_MEC_MEC010p2_MEPM_PKGM_005_OK
[Documentation] TP_MEC_MEPM_PKGM_005_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_005_OK
... Check that MEPM service returns an application package subscription when requested
... ETSI GS MEC 010-2 2.0.10, clause 7.4.5.3.1
... ETSI GS MEC 010-2 2.0.10, Table 6.2.3.7.2-1 (AppPkgSubscription)
... ETSI GS MEC 010-2 2.0.10, Table 6.2.3.4.2-1 (AppPkgSubscriptionInfo)
... ETSI GS MEC 010-2 2.2.1, clause 7.3.3.3.1",
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.4
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.7
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Send a request for a subscription AppPkgSubscription
Check HTTP Response Status Code Is 201
Check HTTP Response Body Json Schema Is AppPkgSubscriptionInfo
Check Result Contains ${response} subscriptionType ON_BOARDING
Check Result Contains ${response} callbackUri ${CALLBACK_URI}
Should Be Equal As Strings ${response}[body][subscriptionType] AppPackageOnBoardingSubscription
Should Be Equal As Strings ${response}[body][callbackUri] ${CALLBACK_URI}
TC_MEC_MEC010p2_MEPM_PKGM_005_BR
[Documentation] TP_MEC_MEPM_PKGM_005_BR
... Check that MEPM service sends an error when it receives a
... malformed request for creating a new subscription on AppPackages
... ETSI GS MEC 010-2 2.0.10, clause 7.4.5.3.1
... ETSI GS MEC 010-2 2.0.10, Table 6.2.3.7.2-1 (AppPkgSubscription)
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Send a request for a subscription MalformedAppPkgSubscription
Check HTTP Response Status Code Is 400
TC_MEC_MEC010p2_MEPM_PKGM_006_OK
[Documentation] TP_MEC_MEPM_PKGM_006_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_006_OK
... Check that MEPM service returns the list of Application Package Subscriptions when requested
... ETSI GS MEC 010-2 2.0.10, clause 7.4.5.3.2
... ETSI GS MEC 010-2 2.0.10, Table 6.2.3.4.2-1 (AppPkgSubscriptionLinkList)
... ETSI GS MEC 010-2 2.2.1, clause 7.4.5.3.2
... ETSI GS MEC 010-2 2.2.1, Table 6.2.3.4.2-1 (AppPkgSubscriptionLinkList)
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get all APP Package subscriptions
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is AppPkgSubscriptionLinkList
Check Result Contains ${response} subscriptionId ${SUBSCRIPTION_ID}
TC_MEC_MEC010p2_MEPM_PKGM_007_OK
[Documentation] TP_MEC_MEPM_PKGM_007_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_007_OK
... Check that MEPM service returns an Application Package Subscription when requested
... ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.2
... ETSI GS MEC 010-2 2.0.10, Table 6.2.3.4.2-1 (AppPkgSubscriptionInfo)
... ETSI GS MEC 010-2 2.2.1, clause 7.3.4.3.4
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get an individual APP Package subscriptions ${SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 200
Check HTTP Response Body Json Schema Is AppPkgSubscriptionInfo
Check Result Contains ${response} subscriptionId ${SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 200
Should Be Equal As Strings ${response}[body][id] ${SUBSCRIPTION_ID}
Should Contain ${response}[body][_links][self][href] /app_pkgm/v1/subscriptions/${SUBSCRIPTION_ID}
TC_MEC_MEC010p2_MEPM_PKGM_008_OK
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_008_OK
... Check that MEPM service deletes an Application Package Subscription when requested
... ETSI GS MEC 010-2 2.2.1, clause 7.3.4.3.4
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Delete an App Package Subscription identified by ${SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 204
Check HTTP Response Body is Empty
#TC_MEC_MEC010p2_MEPM_PKGM_009_OK
# [Documentation] TP_MEC_MEC010p2_MEPM_PKGM_009_OK
# ... Check that the MEPM service sends a application package notification
# ... if the MEO service has an associated subscription and the event is generated
# ... ETSI GS MEC 010-2 2.2.1, clause 7.3.5.3.1
# ... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.6
# ${json}= Get File schemas/AppPkgNotification.schema.json
# Log Creating mock request and response to handle Application Package Notification
# &{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json}
# &{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204
# Create Mock Expectation ${req} ${rsp}
# Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req}
# Log Verifying results
# Verify Mock Expectation ${req}
# Log Cleaning the endpoint
# Clear Requests ${callback_endpoint}
TC_MEC_MEC010p2_MEPM_PKGM_001_BR
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_001_BR
... Check that MEPM responds with an error when it receives
... a malformed request for requesting the list of existing App Packages
... ETSI GS MEC 010-2 2.2.1, clause 7.4.1.3.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
GET all APP Packages with filters ${MALFORMED_FILTER_NAME} ${FILTER_VALUE}
Check HTTP Response Status Code Is 400
TC_MEC_MEC010p2_MEPM_PKGM_002_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_001_BR
... Check that MEPM responds with an error when it receives
... a request for returning a App Package referred with a wrong ID
... ETSI GS MEC 010-2 2.2.1, clause 7.4.2.3.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get AppD by ${NON_EXISTENT_APP_PKG_ID}
Check HTTP Response Status Code Is 404
TC_MEC_MEC010p2_MEPM_PKGM_003_01_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_003_01_NF
... Check that MEPM responds with an error when it receives
... a request for returning a App Descriptor referred with a wrong App Package ID
... ETSI GS MEC 010-2 2.2.1, clause 7.3.6.3.2
... ETSI GS MEC 010-2 2.2.1, clause 6.2.1.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get AppD from onboarded app packages by ${NON_EXISTENT_APP_PKG_ID}
Check HTTP Response Status Code Is 404
TC_MEC_MEC010p2_MEPM_PKGM_007_NF
[Documentation] TP_MEC_MEPM_PKGM_007_NF
... Check that MEPM service sends an error when it receives a query for a subscription
... on AppPackages with a wrong identifier
... ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.2
TC_MEC_MEC010p2_MEPM_PKGM_003_02_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_003_02_NF
... Check that MEPM responds with an error when it receives
... a request for returning a App Descriptor referred with a wrong appDId
... ETSI GS MEC 010-2 2.2.1, clause 7.3.6.3.2
... ETSI GS MEC 010-2 2.2.1, clause 6.2.1.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get AppD from onboarded app packages by ${NON_EXISTENT_APP_PKG_ID}
Check HTTP Response Status Code Is 404
TC_MEC_MEC010p2_MEPM_PKGM_004_BR
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_004_BR
... Check that MEPM service sends an error when it receives a
... malformed request for creating a new subscription on AppPackages
... ETSI GS MEC 010-2 2.2.1, clause 7.3.4.3.1
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.4
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.7
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Send a request for a subscription AppPkgSubscriptionBadRequest
Check HTTP Response Status Code Is 400
TC_MEC_MEC010p2_MEPM_PKGM_005_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_005_NF
... Check that MEPM service sends an error when it receives a query for a subscription on AppPackages
... with a wrong identifier
... ETSI GS MEC 010-2 2.2.1, clause 7.3.4.3.2
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.4
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.7
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get an individual APP Package subscriptions ${NON_EXISTENT_SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 404
TC_MEC_MEC010p2_MEPM_PKGM_008_OK
[Documentation] TP_MEC_MEPM_PKGM_008_OK
... Check that MEPM service deletes an Application Package Subscription when requested
... ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.4
TC_MEC_MEC010p2_MEPM_PKGM_007_01_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_007_01_NF
... Check that MEPM responds with an error when it receives
... a POST request referring an application descriptor AppD
... ETSI GS MEC 010-2 2.2.1, clause 7.3.6.3.1
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Delete an App Package Subscription identified by ${SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 204
Check HTTP Response Body is Empty
Post AppD by ${APPD_ID}
Check HTTP Response Status Code Is 405
TC_MEC_MEC010p2_MEPM_PKGM_007_02_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_007_02_NF
... Check that MEPM responds with an error when it receives
... a POST request referring an application descriptor AppD
... ETSI GS MEC 010-2 2.2.1, clause 7.3.6.3.1
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Post AppD from onboarded app packages by ${APPD_ID}
Check HTTP Response Status Code Is 405
TC_MEC_MEC010p2_MEPM_PKGM_008_NF
[Documentation] TP_MEC_MEPM_PKGM_008_NF
... Check that MEPM service sends an error when it receives a deletion
... request for a subscription on AppPackages with a wrong identifier
... ETSI GS MEC 010-2 2.0.10, clause 7.4.6.3.4
TC_MEC_MEC010p2_MEO_PKGM_009_NF
[Documentation] TP_MEC_MEC010p2_MEO_PKGM_009_NF
... Check that MEPM service sends an error when it receives a deletion request for a subscription on AppPackages with a wrong identifier
... ETSI GS MEC 010-2 2.2.1, clause 7.3.4.3.4
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.4
... ETSI GS MEC 010-2 2.2.1, clause 6.2.3.7
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Delete an App Package Subscription identified by ${NON_EXISTENT_SUBSCRIPTION_ID}
Check HTTP Response Status Code Is 404
TC_MEC_MEC010p2_MEPM_PKGM_009_OK
[Documentation] TP_MEC_MEPM_PKGM_009_OK
... Check that the MEPM service sends a application package notification
... if the MEPM service has an associated subscription and the event is generated
... ETSI GS MEC 010-2 2.0.10, clause 7.4.7.3.1
${json}= Get File schemas/AppPkgNotification.schema.json
Log Creating mock request and response to handle Application Package Notification
&{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${json}
&{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204
Create Mock Expectation ${req} ${rsp}
Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${req}
Log Verifying results
Verify Mock Expectation ${req}
Log Cleaning the endpoint
Clear Requests ${callback_endpoint}
TC_MEC_MEC010p2_MEPM_PKGM_010_BR
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_010_BR
... Check that MEPM service sends an error when it receives a
... malformed request for creating a new subscription on AppPackages
... ETSI GS MEC 010-2 2.2.1, clause 7.3.3.3.1
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Send a request for a subscription AppPkgSubscriptionBadRequest
Check HTTP Response Status Code Is 400
TC_MEC_MEC010p2_MEPM_PKGM_011_01_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_011_01_NF
... Check that MEPM fetches the on-boarded application package content identified by appPkgId when requested
... ETSI GS MEC 010-2 2.2.1, clause 7.3.7.3.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get onboarded application package ${NON_EXISTENT_APPD_ID}
Check HTTP Response Status Code Is 404
TC_MEC_MEC010p2_MEPM_PKGM_011_02_NF
[Documentation] TP_MEC_MEC010p2_MEPM_PKGM_011_02_NF
... Check that MEPM fetches the on-boarded application package content identified by appDId when requested
... ETSI GS MEC 010-2 2.2.1, clause 7.3.7.3.2
[Tags] PIC_APP_PACKAGE_MANAGEMENT INCLUDE_UNDEFINED_SCHEMAS
Get onboarded application package by AppdId ${NON_EXISTENT_APPD_ID}
Check HTTP Response Status Code Is 404
*** Keywords ***
Post APP Package
Log Getting all App Packages
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Post ${apiRoot}/${apiName}/${apiVersion}/app_packages
${output}= Output response
Set Suite Variable ${response} ${output}
GET all APP Packages
Log Getting all App Packages
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/app_packages
${output}= Output response
Set Suite Variable ${response} ${output}
GET all onboarded APP Packages
Log Getting all App Packages
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages
${output}= Output response
Set Suite Variable ${response} ${output}
GET all APP Packages with filters
[Arguments] ${key} ${value}
Log Getting all App Packages using filtering parameters
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/app_packages?${key}=${value}
${output}= Output response
......@@ -219,17 +336,88 @@ GET an APP Package identified by
[Arguments] ${value}
Log Getting an App Package
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/app_packages/${value}
${output}= Output response
Set Suite Variable ${response} ${output}
GET an onboarded APP Package identified by
[Arguments] ${value}
Log Getting an App Package
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages/${value}
${output}= Output response
Set Suite Variable ${response} ${output}
Get an AppD from App Package identified by
Get AppD by
[Arguments] ${appdId}
Log Getting App Descriptor by its identifier
Set Headers {"Accept":"${ACCEPTED_CONTENT_TYPE}"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appdId}/appd
${output}= Output response
Set Suite Variable ${response} ${output}
Get AppD from onboarded app packages by
[Arguments] ${appdId}
Log Getting App Descriptor by its identigier
Set Headers {"Accept":"${ACCEPTED_CONTENT_TYPE}"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages/${appdId}/appd
${output}= Output response
Set Suite Variable ${response} ${output}
Post AppD by
[Arguments] ${appdId}
Log Getting App Descriptor by its identigier
Set Headers {"Accept":"${ACCEPTED_CONTENT_TYPE}"}
Set Headers {"Authorization":"${TOKEN}"}
Post ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appdId}/appd
${output}= Output response
Set Suite Variable ${response} ${output}
Post AppD from onboarded app packages by
[Arguments] ${appdId}
Log Getting App Descriptor by its identigier
Set Headers {"Accept":"${ACCEPTED_CONTENT_TYPE}"}
Set Headers {"Authorization":"${TOKEN}"}
Post ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages/${appdId}/appd
${output}= Output response
Set Suite Variable ${response} ${output}
Get onboarded application package
[Arguments] ${appPkgId}
Log Getting App descriptor for App Package
Set Headers {"Accept":"${ACCEPTED_CONTENT_TYPE}"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}/package_content
${output}= Output response
Set Suite Variable ${response} ${output}
Get onboarded application package by AppdId
[Arguments] ${appdId}
Log Getting App descriptor for App Package
Set Headers {"Accept":"${ACCEPTED_CONTENT_TYPE}"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages/${appdId}/package_content
${output}= Output response
Set Suite Variable ${response} ${output}
Get an AppD from App Package identified by
[Arguments] ${appPkgId}
Log Getting App descriptor for App Package
Set Headers {"Accept":"application/zip"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}/app_descriptor
${output}= Output response
......@@ -242,16 +430,16 @@ Send a request for a subscription
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Authorization":"${TOKEN}"}
Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${content}
${file}= Catenate SEPARATOR= jsons/ ${content} .json
${body}= Get File ${file}
Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body}
${output}= Output response
Set Suite Variable ${response} ${output}
Get all APP Package subscriptions
Log Getting list of subscriptions
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions
${output}= Output response
......@@ -261,7 +449,7 @@ Get an individual APP Package subscriptions
[Arguments] ${subId}
Log Getting an individual subscription
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subId}
${output}= Output response
......@@ -271,18 +459,8 @@ Delete an App Package Subscription identified by
[Arguments] ${subId}
Log Deleting a subscription
Set Headers {"Accept":"application/json"}
Set Headers {"Content-Type":"application/json"}
Set Headers {"Content-Type":"*/*"}
Set Headers {"Authorization":"${TOKEN}"}
Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subId}
${output}= Output response
Set Suite Variable ${response} ${output}
Get the Content from an App Package identified by
[Arguments] ${appPkgId}
Log Getting App descriptor for App Package
Set Headers {"Accept":"${ACCEPTED_CONTENT_TYPE}"}
Set Headers {"Authorization":"${TOKEN}"}
Get ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}/appPkgContent
${output}= Output response
Set Suite Variable ${response} ${output}
\ No newline at end of file
*** Variables ***
# Generic variables
${MEPM_SCHEMA} http
${MEPM_HOST} 10.192.2.172
${MEPM_HOST} 127.0.0.1
${MEPM_PORT} 8081
${response} {}
${TOKEN} Basic YWxhZGRpbjpvcGVuc2VzYW1l
${apiRoot}
${apiName} apmi
${apiName} app_pkgm
${apiVersion} v1
${ACCEPTED_CONTENT_TYPE} text/plain
# Specific variables
${APP_PKG_NAME} APP_PKG_NAME // Should be the same as in AppPkg.json
${APP_PKG_VERSION} APP_PKG_VERSION // Should be the same as in AppPkg.json
${CHECKSUM} CHECKSUM // Should be the same as in AppPkg.json
${OPERATIONAL_STATE} OPERATIONAL_STATE // Should be the same as in AppPkg.json
${USAGE_STATE} USAGE_STATE // Should be the same as in AppPkg.json
${ON_BOARDED_APP_PKG_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
${APPD_ID} e0deee2b-6e50-4f33-ab09-8bf0585025d3
${MALFORMED_FILTER_NAME} operationalStatus // Should be operationalState
${FILTER_VALUE} NOT_IN_USE
${APP_PKG_ID} appPkgId
${APP_INSTANCE_ID} 5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
${APPD_ID} appdId
${NOT_EXISTING_APP_INSTANCE_ID} NOT_EXISTING_APP_INSTANCE_ID
${CALLBACK_URI} http://some.url/somepath
${SUBSCRIPTION_ID} 1234782-2c70-4e47-9a4e-0ee3a1a0fabcd
${MALFORMED_FILTER_NAME} operationalStatus
${FILTER_VALUE} ENABLED
${NON_EXISTENT_APP_PKG_ID} NON_EXISTENT_APP_PKG_ID
${OPERATION_VALUE} DISABLE
${ACCEPTED_CONTENT_TYPE} text/plain // Should refer to the type of AppD
${SUBSCRIPTION_ID} e0deee2b-6e50-4f33-ab09-8bf0585025d3
${NON_EXISTENT_SUBSCRIPTION_ID} NON_EXISTENT_SUBSCRIPTION_ID
${SUBSCRIPTION_TYPE} MobilityProcedureSubscription
# 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
${NON_EXISTENT_APPD_ID} NON_EXISTENT_APPD_ID
\ No newline at end of file
{
"callbackUri": "http://some.url/somepath",
"subsctiptionType": "AppPackageOnBoardingSubscription"
}
\ No newline at end of file
{
"callbackUri": "http://some.url/somepath",
"subscriptionType": "ON-BOARDING"
}
\ No newline at end of file
{
"description": "'The data type AppPkgInfo represents the parameters for an application package resource'",
"type": "object",
"required": [
"id",
"appDId",
"appName",
"appSoftwareVersion",
"appDVersion",
"checksum",
"softwareImages",
"onboardingState",
"operationalState",
"usageState",
"mecInfo",
"_links"
],
"properties": {
"id": {
"description": "Identifier of the onboarded application package.",
"type": "string"
},
"appDId": {
"description": "Identifier of this MEC application descriptor. This attribute shall be globally unique.",
"type": "string"
},
"appProvider": {
"description": "Provider of the application and of the AppD.",
"type": "string"
},
"appName": {
"description": "Name to identify the MEC application.",
"type": "string"
},
"appSoftwareVersion": {
"description": "Software version of the application. This is updated when there is any change to the software in the onboarded application package.",
"type": "string"
},
"appDVersion": {
"description": "Identifies the version of the application descriptor.",
"type": "string"
},
"checksum": {
"description": "",
"properties": {
"algorithm": {
"description": " Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.",
"type": "string"
},
"hash": {
"description": "'String 1 The hexadecimal value of the checksum'",
"type": "string"
}
},
"required": [
"algorithm",
"hash"
],
"type": "object"
},
"softwareImages": {
"description": "Information of application software image in application package. Type is TBD"
},
"additionalArtifacts": {
"description": "Additional information of application package artifacts that are not application software images. Type is TBD"
},
"onboardingState": {
"description": "Onboarding state of application package",
"type": "string",
"format": "enum",
"enum": [
"CREATED",
"UPLOADING",
"PROCESSING",
"ONBOARDED"
]
},
"operationalState": {
"description": "Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.",
"type": "string",
"enum": [
"ENABLED",
"DISABLED"
]
},
"usageState": {
"description": "Usage state of the onboarded instance of the application package",
"type": "string",
"format": "enum",
"enum": [
"IN_USE",
"NOT_IN_USE"
]
},
"mecInfo": {
"description": "",
"type": "array",
"items": {
"type": "string"
}
},
"userDefinedData": {
"description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'",
"type": "object",
"additionalProperties": true
},
"_links": {
"description": "Links to resources related to this resource.",
"type": "object",
"required": [
"self",
"appD",
"appPkgContent"
],
"properties": {
"self": {
"properties": {
"href": {
"description": "URI referring to a resource",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "URI"
}
},
"required": [
"href"
],
"type": "object",
"x-etsi-ref": "6.5.2"
},
"appD": {
"properties": {
"href": {
"description": "URI referring to a resource",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "URI"
}
},
"required": [
"href"
],
"type": "object",
"x-etsi-ref": "6.5.2"
},
"appPkgContent": {
"properties": {
"href": {
"description": "URI referring to a resource",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "URI"
}
},
"required": [
"href"
],
"type": "object",
"x-etsi-ref": "6.5.2"
}
}
}
}
}
\ No newline at end of file
{
"description": "'The data type represents a subscription to notification of application package management for the onboarding, or operational state change of application package'",
"type": "object",
"required": [
"id",
"subscriptionType",
"callbackUri",
"_links"
],
"properties": {
"id": {
"description": "''",
"type": "string"
},
"subscriptionType": {
"description": "Subscribed notification type.",
"type": "string",
"enum": [
"AppPackageOnBoardingSubscription",
"AppPacakgeOperationChangeSubscription",
"AppPackageDeletionSubscription"
]
},
"callbackUri": {
"description": "The URI of the endpoint for the notification to be sent to.",
"type": "string",
"format": "uri"
},
"_links": {
"description": "Links to resources related to this resource.",
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"properties": {
"href": {
"description": "URI referring to a resource",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "URI"
}
},
"required": [
"href"
],
"type": "object",
"x-etsi-ref": "6.5.2"
}
}
}
}
}
\ No newline at end of file