diff --git a/MEC010p2/MEO/PKGM/AppPkgMgt.robot b/MEC010p2/MEO/PKGM/AppPkgMgt.robot
new file mode 100644
index 0000000000000000000000000000000000000000..992c6e447cfc72c1332719cd22a779a0952267da
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/AppPkgMgt.robot
@@ -0,0 +1,496 @@
+''[Documentation]   robot --outputdir ./outputs ./AppPkgMgt.robot
+...    Test Suite to validate Package Management (PKGM) operations.
+
+*** Settings ***
+Resource    environment/variables.txt
+Resource    ../../../GenericKeywords.robot
+Library     REST    ${MEO_SCHEMA}://${MEO_HOST}:${MEO_PORT}    ssl_verify=false
+Library     BuiltIn
+Library     OperatingSystem
+#Library     MockServerLibrary
+
+
+*** Test Cases ***
+TC_MEC_MEC010p2_MEO_PKGM_001_OK
+    [Documentation]  TP_MEC_MEC010p2_MEO_PKGM_001_OK  
+    ...  Check that MEO creates a new App Package when requested
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.1.3.1
+    ...    ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo)
+    ...    ETSI GS MEC 010-2 2.2.1, Table 6.2.3.2.2-1 (AppPkg)
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Post Request to create new App Package Resource        CreateAppPackage.json
+    Check HTTP Response Status Code Is    201
+    Check HTTP Response Body Json Schema Is   AppPkgInfo
+    Check HTTP Response Header Contains    Location
+    Should Be Equal As Strings  ${response['body']['appDVersion']}    ${APP_PKG_VERSION}
+    Should Be Equal As Strings  ${response['body']['checksum']['algorithm']}    ${CHECKSUM}
+    Should Be Equal As Strings  ${response['body']['operationalState']}    ${OPERATIONAL_STATE}
+    Should Be Equal As Strings  ${response['body']['onboardingState']}    ${ONBOARDING_STATE}
+    Should Be Equal As Strings  ${response['body']['usageState']}     ${USAGE_STATE}
+
+
+TC_MEC_MEC010p2_MEO_PKGM_001_BR
+    [Documentation]  TP_MEC_MEC010p2_MEO_PKGM_001_BR 
+    ...  Check that MEO creates a new App Package when requested
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.1.3.1
+    ...    ETSI GS MEC 010-2 2.2.1, Table 6.2.3.2.2-1 (AppPkg)
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Post Request to create new App Package Resource        CreateAppPackageBadRequest.json
+    Check HTTP Response Status Code Is    400
+
+
+
+TC_MEC_MEC010p2_MEO_PKGM_002_01_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_002_01_OK
+    ...    Check that MEO 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, 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
+    FOR    ${onBoardedAppPkgInfo}    IN    @{response['body']}
+        Validate Json    AppPkgInfo.schema.json    ${onBoardedAppPkgInfo}
+    END
+
+
+
+TC_MEC_MEC010p2_MEO_PKGM_002_02_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_002_02_OK
+    ...    Check that MEO 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, 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 onboarded app Packages
+    Check HTTP Response Status Code Is    200
+    FOR    ${onBoardedAppPkgInfo}    IN    @{response['body']}
+        Validate Json    AppPkgInfo.schema.json    ${onBoardedAppPkgInfo}
+    END
+        
+TC_MEC_MEC010p2_MEO_PKGM_002_BR
+    [Documentation]    TP_MEC_MEO_PKGM_002_BR
+    ...    Check that MEO responds with an error when it receives 
+    ...    a malformed request for retrieving the list of existing App Packages
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.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_MEO_PKGM_003_01_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_003_01_OK
+    ...    Check that MEO 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}
+    Check HTTP Response Status Code Is    200
+    Check HTTP Response Body Json Schema Is   AppPkgInfo
+    Should Be Equal As Strings  ${response['body']['id']}  ${ON_BOARDED_APP_PKG_ID}
+    Should Be Equal As Strings  ${response['body']['appName']}  ${APP_NAME}
+    
+
+
+TC_MEC_MEC010p2_MEO_PKGM_003_02_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_003_02_OK
+    ...    Check that MEO returns the an onboarded 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 onboarded app Package identified by    ${ON_BOARDED_APP_PKG_ID}
+    Check HTTP Response Status Code Is    200
+    Check HTTP Response Body Json Schema Is   AppPkgInfo
+    Should Be Equal As Strings  ${response['body']['id']}  ${ON_BOARDED_APP_PKG_ID}
+    Should Be Equal As Strings  ${response['body']['appName']}  ${APP_NAME}
+
+    
+TC_MEC_MEC010p2_MEO_PKGM_003_NF
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_003_NF
+    ...    Check that MEO responds with an error when it receives 
+    ...    a request for retrieving a App Package referred with a wrong ID
+    ...    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
+    [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
+    
+
+TC_MEC_MEC010p2_MEO_PKGM_004_OK
+    [Documentation]    TP_MEC_MEO_PKGM_004_OK
+    ...    Check that MEO deletes an App Package when requested
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.2.3.4
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Delete an individual APP Package identified by    ${ON_BOARDED_APP_PKG_ID}
+    Check HTTP Response Status Code Is    204
+    Check HTTP Response Body is Empty
+    
+
+TC_MEC_MEC010p2_MEO_PKGM_004_NF
+    [Documentation]    TP_MEC_MEO_PKGM_004_NF
+    ...    Check that MEO responds with an error when it receives 
+    ...    a request for deleting an App Package referred with a wrong ID
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.2.3.4
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Delete an individual APP Package identified by    ${NON_EXISTENT_APP_PKG_ID}
+    Check HTTP Response Status Code Is    404
+
+
+TC_MEC_MEC010p2_MEO_PKGM_005_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_005_OK
+    ...    Check that MEO updates the operational state of an individual application package resource
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.2.3.5
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Update Operational State for an app Package    ${ON_BOARDED_APP_PKG_ID}    AppPkgInfoModifications.json
+    Check HTTP Response Body Json Schema Is   AppPkgInfoModifications
+    Check HTTP Response Status Code Is    200
+    Should Be Equal As Strings  ${response['body']['operationalState']}  ${OPERATIONAL_STATE}
+
+
+TC_MEC_MEC010p2_MEO_PKGM_005_BR
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_005_BR
+    ...    Check that MEO sends an error when it receives a malformed request to modify the operational state of an application package
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.2.3.5
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Update Operational State for an app Package    ${ON_BOARDED_APP_PKG_ID}      AppPkgInfoModificationsBadRequest.json
+    Check HTTP Response Status Code Is    400
+
+TC_MEC_MEC010p2_MEO_PKGM_005_NF
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_005_NF
+    ...   Check that MEO responds with an error when it receives 
+    ...   a request for updating an App Package referred with a wrong ID
+    ...   ETSI GS MEC 010-2 2.2.1, clause 7.3.2.3.5
+    ...   ETSI GS MEC 010-2 2.2.1, Table 6.2.3.3.2-1
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Update Operational State for an app Package    ${NON_EXISTENT_APP_PKG_ID}      AppPkgInfoModificationsBadRequest.json
+    Check HTTP Response Status Code Is    404
+
+    
+TC_MEC_MEC010p2_MEO_PKGM_006_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_006_OK
+    ...    Check that MEO service returns an application package subscription when requested
+    ...    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.json
+    Check HTTP Response Status Code Is    201
+    Check HTTP Response Body Json Schema Is    AppPkgSubscriptionInfo
+    Should Be Equal As Strings  ${response['body']['subscriptionType']}     ${SUBSCRIPTION_TYPE}
+    Should Be Equal As Strings  ${response['body']['callbackUri']}     ${CALLBACK_URI}
+    
+TC_MEC_MEC010p2_MEO_PKGM_006_BR
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_006_BR
+    ...    Check that MEO 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.json
+    Check HTTP Response Status Code Is    400
+    
+
+
+TC_MEC_MEC010p2_MEO_PKGM_007_OK
+   [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_007_OK
+    ...    Check that MEO service returns the list of Application Package Subscriptions when requested
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.3.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 all APP Package subscriptions
+    Check HTTP Response Status Code Is    200
+    Check HTTP Response Body Json Schema Is    AppPkgSubscriptionLinkList
+
+
+TC_MEC_MEC010p2_MEO_PKGM_008_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_008_OK
+    ...    Check that MEO service returns an Application Package Subscription when requested
+    ...    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
+    [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
+    Should Be Equal As Strings  ${response['body']['id']}  ${SUBSCRIPTION_ID}
+
+TC_MEC_MEC010p2_MEO_PKGM_008_NF
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_008_NF
+    ...    Check that MEO 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_MEO_PKGM_009_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_009_OK
+    ...    Check that MEO 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_MEO_PKGM_009_NF
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_009_NF
+    ...    Check that MEO 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_MEO_PKGM_011_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_011_OK
+    ...    Check that MEO reads the content of the AppD of on-boarded individual application package resources when requested
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.6.3.2
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Get an AppD from App Package identified by    ${ON_BOARDED_APP_PKG_ID}
+    Check HTTP Response Status Code Is    200
+    
+
+TC_MEC_MEC010p2_MEO_PKGM_011_NF
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_011_NF
+    ...    Check that MEO responds with an error when it receives 
+    ...    a request to retrieve an application 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, Table 6.2.3.3.2-1
+    [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
+
+
+TC_MEC_MEC010p2_MEO_PKGM_012_01_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_012_01_OK
+    ...    Check that MEO fetches the 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 app Package identified by    ${ON_BOARDED_APP_PKG_ID}      ${ACCEPTED_CONTENT_TYPE_ZIP}
+    Check HTTP Response Status Code Is    200
+
+TC_MEC_MEC010p2_MEO_PKGM_012_02_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_012_02_OK
+    ...    Check that MEO fetches the 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 app Package identified by    ${ON_BOARDED_APP_PKG_ID}     ${ACCEPTED_CONTENT_TYPE_ZIP}
+    Check HTTP Response Status Code Is    200    
+
+
+TC_MEC_MEC010p2_MEO_PKGM_012_BR
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_012_BR
+    ...    Check that MEO service sends an error when it receives a malformed request
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.7.3.2
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Get app Package identified by    ${ON_BOARDED_APP_PKG_ID}      ${WRONG_CONTENT_TYPE}
+    Check HTTP Response Status Code Is    400
+    
+TC_MEC_MEC010p2_MEO_PKGM_013_OK
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_013_OK
+    ...    Check that MEO accepts application package when submitted
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.7.3.3
+    ...    ETSI GS MEC 010-2 2.2.1, clause 6.2.1.2
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Submit application package    ${APP_PKG_ID}
+    Check HTTP Response Status Code Is    202   
+
+
+TC_MEC_MEC010p2_MEO_PKGM_013_NF
+    [Documentation]    TP_MEC_MEC010p2_MEO_PKGM_013_NF
+    ...    Check that MEO returns an errore when an application package with wrong id is submitted
+    ...    ETSI GS MEC 010-2 2.2.1, clause 7.3.7.3.3
+    ...    ETSI GS MEC 010-2 2.2.1, clause 6.2.1.2
+    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
+    Submit application package    ${NOT_EXISTING_APP_PKG_ID}
+    Check HTTP Response Status Code Is    404      
+      
+
+
+*** Keywords ***
+Post Request to create new App Package Resource
+    [Arguments]    ${content}
+    Log    Creating a new App Package
+    Set Headers    {"Accept":"*/*"}
+    Set Headers    {"Content-Type":"application/json"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    ${path}    Catenate    SEPARATOR=      jsons/     ${content}
+    ${body}    Get File    ${path}
+    Post    ${apiRoot}/${apiName}/${apiVersion}/app_packages    ${body}    allow_redirects=false
+    ${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":"*/*"}
+    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    {"Authorization":"${TOKEN}"}
+    Get    ${apiRoot}/${apiName}/${apiVersion}/app_packages?${key}=${value}
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output} 
+    
+    
+GET an 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}/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} 
+        
+    
+Delete an individual APP Package identified by
+    [Arguments]    ${value}    
+    Log    Removing an App Package
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    Delete    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${value}
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output} 
+    
+    
+    
+Update Operational State for an app Package    
+    [Arguments]    ${appPkgId}    ${content}
+    Log    Updating an App Package
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"application/json"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    ${path}    Catenate    SEPARATOR=      jsons/     ${content}
+    ${body}    Get File    ${path}
+    PATCH    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}     ${body} 
+    ${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":"${ACCEPTED_CONTENT_TYPE}"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    Get    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}/appd
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output} 
+
+
+Get app Package identified by
+    [Arguments]    ${appPkgId}      ${CONTENT_TYPE}
+    Log    Getting App descriptor for App Package
+    Set Headers    {"Accept":"${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 app Package identified by
+    [Arguments]    ${appPkgId}      ${CONTENT_TYPE}
+    Log    Getting App descriptor for App Package
+    Set Headers    {"Accept":"${CONTENT_TYPE}"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    Get    ${apiRoot}/${apiName}/${apiVersion}/onboarded_app_packages/${appPkgId}/package_content
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output} 
+
+
+Submit application package
+    [Arguments]    ${appPkgId}
+    Log    Getting App descriptor for App Package
+    Set Headers    {"Accept":"${ACCEPTED_CONTENT_TYPE_ZIP}"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    Put    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}/package_content
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output}     
+
+Send a request for a subscription    
+    [Arguments]    ${content}
+    Log    Creating a new subscription
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"application/json"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    ${path}    Catenate    SEPARATOR=      jsons/     ${content}
+    ${body}    Get File    ${path}
+    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":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    Get    ${apiRoot}/${apiName}/${apiVersion}/subscriptions
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output} 
+
+    
+Get an individual APP Package subscriptions
+    [Arguments]    ${subId}
+    Log    Getting an individual subscription
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    Get    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subId}
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output} 
+
+
+
+Delete an App Package Subscription identified by
+    [Arguments]    ${subId}
+    Log    Deleting a subscription
+    Set Headers    {"Accept":"application/json"}
+    Set Headers    {"Content-Type":"*/*"}
+    Set Headers    {"Authorization":"${TOKEN}"}
+    Delete    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subId}
+    ${output}=    Output    response
+    Set Suite Variable    ${response}    ${output} 
+
+    
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/PackageManagement.robot b/MEC010p2/MEO/PKGM/PackageManagement.robot
deleted file mode 100644
index 4741401e5a863ebc0e2a81a822ab19919451318d..0000000000000000000000000000000000000000
--- a/MEC010p2/MEO/PKGM/PackageManagement.robot
+++ /dev/null
@@ -1,374 +0,0 @@
-''[Documentation]   robot --outputdir ./outputs ./SRV/UETAG/PlatUeIdentity.robot
-...    Test Suite to validate UE Identity Tag (UETAG) operations.
-
-*** Settings ***
-Resource    environment/variables.txt
-Resource    ../../../GenericKeywords.robot
-Library     REST    ${MEO_SCHEMA}://${MEO_HOST}:${MEO_PORT}    ssl_verify=false
-Library     BuiltIn
-Library     OperatingSystem
-Library     MockServerLibrary
-
-
-*** Test Cases ***
-TC_MEC_MEC010p2_MEO_PKGM_001_OK
-    [Documentation]  
-    ...  Check that MEO creates a new App Package when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.1
-    ...    ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo)
-    ...    ETSI GS MEC 010-2 2.0.10, Table 6.2.3.2.2-1 (AppPkg)
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Post Request to create new App Package Resource        AppPkg
-    Check HTTP Response Status Code Is    201
-    Check HTTP Response Body Json Schema Is   OnboardedAppPkgInfos
-    Check HTTP Response Header Contains    Location
-    Check Result Contains    ${response}    appName    ${APP_PKG_NAME}
-    Check Result Contains    ${response}    appDVersion    ${APP_PKG_VERSION}
-    Check Result Contains    ${response}    checksum    ${CHECKSUM}
-    Check Result Contains    ${response}    operationalState    ${OPERATIONAL_STATE}
-    Check Result Contains    ${response}    usageState    ${USAGE_STATE}
-
-
-TC_MEC_MEC010p2_MEO_PKGM_001_BR
-    [Documentation]  
-    ...  Check that MEO creates a new App Package when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.1
-    ...    ETSI GS MEC 010-2 2.0.10, Table 6.2.3.2.2-1 (AppPkg)
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Post Request to create new App Package Resource        MalformedAppPkg
-    Check HTTP Response Status Code Is    400
-
-
-TC_MEC_MEC010p2_MEO_PKGM_002_OK
-    [Documentation]    TP_MEC_MEO_PKGM_002_OK
-    ...    Check that MEO returns the list of App Packages when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.2
-    ...    ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo)
-    [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}
-
-        
-TC_MEC_MEC010p2_MEO_PKGM_002_BR
-    [Documentation]    TP_MEC_MEO_PKGM_002_BR
-    ...    Check that MEO responds with an error when it receives 
-    ...    a malformed request for retrieving the list of existing App Packages
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.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_MEO_PKGM_003_OK
-    [Documentation]    TP_MEC_MEO_PKGM_003_OK
-    ...    Check that MEO returns the list of App Packages when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.2
-    ...    ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo)
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    GET an APP Package identified by    ${ON_BOARDED_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}
-    
-    
-TC_MEC_MEC010p2_MEO_PKGM_003_NF
-    [Documentation]    TP_MEC_MEO_PKGM_003_NF
-    ...    Check that MEO responds with an error when it receives 
-    ...    a request for retrieving a App Package referred with a wrong ID
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.1.3.2
-    ...    ETSI GS MEC 010-2 2.0.10, Table 6.2.3.3.2-1 (OnboardedAppPkgInfo)
-    [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
-    
-
-TC_MEC_MEC010p2_MEO_PKGM_004_OK
-    [Documentation]    TP_MEC_MEO_PKGM_004_OK
-    ...    Check that MEO deletes an App Package when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.4
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Delete an individual APP Package identified by    ${ON_BOARDED_APP_PKG_ID}
-    Check HTTP Response Status Code Is    204
-    Check HTTP Response Body is Empty
-    
-
-TC_MEC_MEC010p2_MEO_PKGM_004_NF
-    [Documentation]    TP_MEC_MEO_PKGM_004_NF
-    ...    Check that MEO responds with an error when it receives 
-    ...    a request for deleting an App Package referred with a wrong ID
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.4
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Delete an individual APP Package identified by    ${NON_EXISTENT_APP_PKG_ID}
-    Check HTTP Response Status Code Is    404
-
-
-TC_MEC_MEC010p2_MEO_PKGM_005_OK
-    [Documentation]    TP_MEC_MEO_PKGM_005_OK
-    ...    Check that MEO changes the status of an App Package from INITIAL_OP_STATE with an operation of type OPERATION_VALUE when requested, with the following possible combinations:
-    ...            - ENABLED, DISABLE
-    ...            - DISABLED, ENABLE
-    ...            - DELETION_PENDING, ABORT
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.3
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Update Operational State for an APP Package    ${ON_BOARDED_APP_PKG_ID}    ${OPERATION_VALUE}
-    Check HTTP Response Status Code Is    200
-    Check HTTP Response Body is Empty
-
-
-TC_MEC_MEC010p2_MEO_PKGM_005_BR
-    [Documentation]    TP_MEC_MEO_PKGM_005_BR
-    ...    Check that MEO sends an error when it receives a malformed request to modify the operational state of an application package
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.3
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Update Operational State for an APP Package    ${ON_BOARDED_APP_PKG_ID}    WRONG_OP_VALUE
-    Check HTTP Response Status Code Is    400
-
-
-TC_MEC_MEC010p2_MEO_PKGM_005_NF
-    [Documentation]    TP_MEC_MEO_PKGM_005_NF
-    ...    Check that MEO responds with an error when it receives a request for updating an App Package referred with a wrong ID
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.2.3.3
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Update Operational State for an APP Package    ${NON_EXISTENT_APP_PKG_ID}    ${OPERATION_VALUE}
-    Check HTTP Response Status Code Is    404
-
-
-TC_MEC_MEC010p2_MEO_PKGM_006_OK
-    [Documentation]    TP_MEC_MEO_PKGM_006_OK
-    ...    Check that MEO returns the Application Descriptor contained on a on-boarded Application Package when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.6.3.2
-    [Tags]    PIC_APP_PACKAGE_MANAGEMENT    INCLUDE_UNDEFINED_SCHEMAS
-    Get an AppD from App Package identified by    ${ON_BOARDED_APP_PKG_ID}
-    Check HTTP Response Status Code Is    200
-    Check HTTP Response Contain Header with value    Content-Type    ${ACCEPTED_CONTENT_TYPE}
-    
-
-TC_MEC_MEC010p2_MEO_PKGM_006_NF
-    [Documentation]    TP_MEC_MEO_PKGM_006_NF
-    ...    Check that MEO responds with an error when it receives a request to retrieve an application descriptor referred with a wrong app package ID
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.6.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
-
-
-TC_MEC_MEC010p2_MEO_PKGM_007_OK
-    [Documentation]    TP_MEC_MEO_PKGM_007_OK
-    ...    Check that MEO service sends a Application Package Subscription when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.3.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)
-    [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}
-    
-
-TC_MEC_MEC010p2_MEO_PKGM_007_BR
-    [Documentation]    TP_MEC_MEO_PKGM_007_BR
-    ...    Check that MEO 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.3.3.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_MEO_PKGM_008_OK
-   [Documentation]    TP_MEC_MEO_PKGM_008_OK
-    ...    Check that MEO service returns the list of Application Package Subscriptions when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.3.3.2
-    ...    ETSI GS MEC 010-2 2.0.10, 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_MEO_PKGM_009_OK
-    [Documentation]    TP_MEC_MEO_PKGM_009_OK
-    ...    Check that MEO service returns an Application Package Subscription when requested
-    ...    ETSI GS MEC 010-2 2.0.10, clause 7.3.4.3.2
-    ...    ETSI GS MEC 010-2 2.0.10, Table 6.2.3.4.2-1 (AppPkgSubscriptionInfo)
-    [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}
-
-
-TC_MEC_MEC010p2_MEO_PKGM_009_NF
-    [Documentation]    TP_MEC_MEO_PKGM_009_NF
-    ...    Check that MEO 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.3.4.3.2
-    [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_MEO_PKGM_010_OK
-    [Documentation]    TP_MEC_MEO_PKGM_010_OK
-    ...    Check that MEO service deletes an Application Package Subscription when requested
-    ...    ETSI GS MEC 010-2 2.0.10, 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_MEO_PKGM_010_NF
-    [Documentation]    TP_MEC_MEO_PKGM_010_NF
-    ...    Check that MEO 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.3.4.3.4
-    [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_MEO_PKGM_011_OK
-    [Documentation]   TP_MEC_MEO_PKGM_011_OK
-    ...  Check that the MEO 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.0.10, clause 7.3.5.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} 
-       
-
-*** Keywords ***
-Post Request to create new App Package Resource
-    [Arguments]    ${content}
-    Log    Creating a new App Package
-    Set Headers    {"Accept":"application/json"}
-    Set Headers    {"Content-Type":"application/json"}
-    Set Headers    {"Authorization":"${TOKEN}"}
-    Post    ${apiRoot}/${apiName}/${apiVersion}/app_packages    ${content}    allow_redirects=false
-    ${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    {"Authorization":"${TOKEN}"}
-    Get    ${apiRoot}/${apiName}/${apiVersion}/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    {"Authorization":"${TOKEN}"}
-    Get    ${apiRoot}/${apiName}/${apiVersion}/app_packages?${key}=${value}
-    ${output}=    Output    response
-    Set Suite Variable    ${response}    ${output} 
-    
-    
-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    {"Authorization":"${TOKEN}"}
-    Get    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${value}
-    ${output}=    Output    response
-    Set Suite Variable    ${response}    ${output} 
-    
-    
-    
-Delete an individual APP Package identified by
-    [Arguments]    ${value}    
-    Log    Removing an App Package
-    Set Headers    {"Accept":"application/json"}
-    Set Headers    {"Content-Type":"application/json"}
-    Set Headers    {"Authorization":"${TOKEN}"}
-    Delete    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${value}
-    ${output}=    Output    response
-    Set Suite Variable    ${response}    ${output} 
-    
-    
-    
-Update Operational State for an APP Package    
-    [Arguments]    ${appPkgId}    ${operation}
-    Log    Updating an App Package
-    Set Headers    {"Accept":"application/json"}
-    Set Headers    {"Content-Type":"application/json"}
-    Set Headers    {"Authorization":"${TOKEN}"}
-    PUT    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}?appPkgOperation=${operation}
-    ${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":"${ACCEPTED_CONTENT_TYPE}"}
-    Set Headers    {"Authorization":"${TOKEN}"}
-    Get    ${apiRoot}/${apiName}/${apiVersion}/app_packages/${appPkgId}/addDId
-    ${output}=    Output    response
-    Set Suite Variable    ${response}    ${output} 
-
-
-Send a request for a subscription    
-    [Arguments]    ${content}
-    Log    Creating a new subscription
-    Set Headers    {"Accept":"application/json"}
-    Set Headers    {"Content-Type":"application/json"}
-    Set Headers    {"Authorization":"${TOKEN}"}
-    Post    ${apiRoot}/${apiName}/${apiVersion}/subscriptions    ${content}
-    ${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    {"Authorization":"${TOKEN}"}
-    Get    ${apiRoot}/${apiName}/${apiVersion}/subscriptions
-    ${output}=    Output    response
-    Set Suite Variable    ${response}    ${output} 
-    
-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    {"Authorization":"${TOKEN}"}
-    Get    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subId}
-    ${output}=    Output    response
-    Set Suite Variable    ${response}    ${output} 
-
-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    {"Authorization":"${TOKEN}"}
-    Delete    ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subId}
-    ${output}=    Output    response
-    Set Suite Variable    ${response}    ${output} 
-
-    
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/environment/variables.txt b/MEC010p2/MEO/PKGM/environment/variables.txt
index 6fd4c4b62e27888fa12c3c569ad038679a24f433..49be91d113603e04989a93ffb12e7b5a4f0f99de 100644
--- a/MEC010p2/MEO/PKGM/environment/variables.txt
+++ b/MEC010p2/MEO/PKGM/environment/variables.txt
@@ -1,36 +1,43 @@
 *** Variables ***
 # Generic variables
 ${MEO_SCHEMA}                   http
-${MEO_HOST}                     10.192.2.172
+${MEO_HOST}                     127.0.0.1
+#${MEO_HOST}                     10.192.2.172
 ${MEO_PORT}                     8081
 ${response}                         {}
 ${TOKEN}                            Basic YWxhZGRpbjpvcGVuc2VzYW1l
 ${apiRoot}        
-${apiName}        apmi
+${apiName}        app_pkgm
 ${apiVersion}     v1
 
 # 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
+${APP_PKG_NAME}                     appName
+${APP_PKG_VERSION}                  APP_PKG_VERSION
+${APP_NAME}                         appName
+${CHECKSUM}                         SHA-256
+${OPERATIONAL_STATE}                ENABLED
+${ONBOARDING_STATE}                 CREATED
+${USAGE_STATE}                      NOT_IN_USE
+${APP_PKG_ID}                       01234782-2c70-4e47-9a4e-0ee3a1a00123
 ${ON_BOARDED_APP_PKG_ID}            5abe4782-2c70-4e47-9a4e-0ee3a1a0fd1f
 ${APPD_ID}                          e0deee2b-6e50-4f33-ab09-8bf0585025d3
-${MALFORMED_FILTER_NAME}            operationalStatus    // Should be operationalState
+${MALFORMED_FILTER_NAME}            operationalStatus
 ${FILTER_VALUE}                     NOT_IN_USE
 ${NON_EXISTENT_APP_PKG_ID}          NON_EXISTENT_APP_PKG_ID
 ${OPERATION_VALUE}                  DISABLE
+${WRONG_OPERATION_VALUE}            DISABL
 
-${ACCEPTED_CONTENT_TYPE}            text/plain           // Should refer to the type of AppD 
+${ACCEPTED_CONTENT_TYPE}            text/plain; charset=utf-8
+${ACCEPTED_CONTENT_TYPE_ZIP}        application/zip
+${WRONG_CONTENT_TYPE}               application/json
 ${SUBSCRIPTION_ID}                  e0deee2b-6e50-4f33-ab09-8bf0585025d3
+${NOT_EXISTING_APP_PKG_ID}          NOT_EXISTING_APP_PKG_ID
 
 
 
-
-${SUBSCRIPTION_TYPE}                MobilityProcedureSubscription
+${SUBSCRIPTION_TYPE}                AppPackageOnBoardingSubscription
 ${NON_EXISTENT_SUBSCRIPTION_ID}     NON_EXISTENT_SUBSCRIPTION_ID
-
+${CALLBACK_URI}                     http://some.url/somepath
 
 
 # Notifications variables
diff --git a/MEC010p2/MEO/PKGM/jsons/AppPkgInfoModifications.json b/MEC010p2/MEO/PKGM/jsons/AppPkgInfoModifications.json
new file mode 100644
index 0000000000000000000000000000000000000000..8db7a2f3d19b6dfe81ec579956a9fa35ac3b70d0
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/jsons/AppPkgInfoModifications.json
@@ -0,0 +1,3 @@
+{
+	"operationalState": "ENABLED"
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/jsons/AppPkgInfoModificationsBadRequest.json b/MEC010p2/MEO/PKGM/jsons/AppPkgInfoModificationsBadRequest.json
new file mode 100644
index 0000000000000000000000000000000000000000..ea646d8ba63b153cf731f0010b0cd17dcdd4942e
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/jsons/AppPkgInfoModificationsBadRequest.json
@@ -0,0 +1,3 @@
+{
+	"operationalState": "DISABL"
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/jsons/AppPkgSubscription.json b/MEC010p2/MEO/PKGM/jsons/AppPkgSubscription.json
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8ab6429b50b8741d2227bbd12a0a3d9d11f8793a 100644
--- a/MEC010p2/MEO/PKGM/jsons/AppPkgSubscription.json
+++ b/MEC010p2/MEO/PKGM/jsons/AppPkgSubscription.json
@@ -0,0 +1,10 @@
+{
+  "id": "1234",
+  "subscriptionType": "AppPackageOnBoardingSubscription",
+  "callbackUri": "http://172.22.1.7:9091",
+  "_links": {
+    "self": {
+      "href": "https://app_lcm/subscriptions/1234"
+    }
+  }
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/jsons/AppPkgSubscriptionBadRequest.json b/MEC010p2/MEO/PKGM/jsons/AppPkgSubscriptionBadRequest.json
new file mode 100644
index 0000000000000000000000000000000000000000..7eb6d6a9b662ee469200a02ce73710c6dab851d4
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/jsons/AppPkgSubscriptionBadRequest.json
@@ -0,0 +1,10 @@
+{
+  "id": "1234",
+  "subscriptionType": "ON-BOARDING",
+  "callbackUri": "http://172.22.1.7:9091",
+  "_links": {
+    "self": {
+      "href": "https://app_lcm/subscriptions/1234"
+    }
+  }
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/jsons/CreateAppPackage.json b/MEC010p2/MEO/PKGM/jsons/CreateAppPackage.json
index 9e26dfeeb6e641a33dae4961196235bdb965b21b..b50ced36d2e5ba3de4e469553a795476496793f5 100644
--- a/MEC010p2/MEO/PKGM/jsons/CreateAppPackage.json
+++ b/MEC010p2/MEO/PKGM/jsons/CreateAppPackage.json
@@ -1 +1,28 @@
-{}
\ No newline at end of file
+{
+	"id": "AppPkgInfoId",
+	"appDid": "appdId",
+	"appName": "APP_NAME",
+	"appSoftwareVersion": "APP_SOFTWARE_VERSION",
+	"appDVersion": "APP_D_VERSION",
+	"checksum": {
+		"algorithm": "SHA-256",
+		"hash": "0x1234567890abcdef"
+	},
+	"softwareImages": ["info about sofware image"],
+	"onBoardingState": "CREATED",
+	"operationalState": "ENABLED",
+	"usageState": "NOT_IN_USE",
+	"mecInfo": ["mecInfo"],
+	"links": {
+		"self": {
+			"href": "/app_lcm/v1/app_packages/123"
+		},
+		"appD": {
+			"href": "/app_lcm/v1/on_boarded_app_packages/456/appd"
+		},
+		"appPkgContent": {
+			"href": "/app_lcm/v1/on_boarded_app_packages/456/package_content"
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/jsons/CreateAppPackageBadRequest.json b/MEC010p2/MEO/PKGM/jsons/CreateAppPackageBadRequest.json
new file mode 100644
index 0000000000000000000000000000000000000000..0e0dcd235c4973becf25f38eb4e5bb26e154c86a
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/jsons/CreateAppPackageBadRequest.json
@@ -0,0 +1,3 @@
+{
+
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/jsons/MalformedAppPkg.json b/MEC010p2/MEO/PKGM/jsons/MalformedAppPkg.json
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/MEC010p2/MEO/PKGM/jsons/MalformedAppPkgSubscription.json b/MEC010p2/MEO/PKGM/jsons/MalformedAppPkgSubscription.json
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/MEC010p2/MEO/PKGM/schemas/AppD.schema.json b/MEC010p2/MEO/PKGM/schemas/AppD.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..c3224523964fde1199ab69f8a05e3c5a42dd3407
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/schemas/AppD.schema.json
@@ -0,0 +1,879 @@
+{
+	"properties": {
+		"appDId": {
+			"description": "Identifier of this MEC application descriptor. This attribute shall be globally unique. See note 1.",
+			"type": "string",
+			"x-etsi-mec-cardinality": "1",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"appDNSRule": {
+			"description": "Describes DNS rules the MEC application requires.",
+			"items": {
+				"properties": {
+					"dnsRuleId": {
+						"description": "Identifies the DNS Rule",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"domainName": {
+						"description": "FQDN of the DNS rule",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"ipAddress": {
+						"description": "IP address given by the DNS rule",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"ipAddressType": {
+						"description": "Specifies the IP address type",
+						"type": "string",
+						"enum": [
+							"IP_V6",
+							"IP_V4"
+						]
+					},
+					"ttl": {
+						"description": "Time-to-live value",
+						"type": "integer",
+						"x-etsi-mec-cardinality": "0..1",
+						"x-etsi-mec-origin-type": "Int"
+					}
+				},
+				"required": [
+					"dnsRuleId",
+					"domainName",
+					"ipAddressType",
+					"ipAddress"
+				],
+				"type": "object",
+				"x-etsi-ref": "6.2.1.13"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "DNSRuleDescriptor"
+		},
+		"appDVersion": {
+			"description": "Identifies the version of the application descriptor.",
+			"type": "string",
+			"x-etsi-mec-cardinality": "1",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"appDescription": {
+			"description": "Human readable description of the MEC application.",
+			"type": "string",
+			"x-etsi-mec-cardinality": "1",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"appExtCpd": {
+			"description": "Describes external interface(s) exposed by this MEC application.",
+			"items": {
+				"properties": {
+					"inherited_attributes": {
+						"description": "All attributes inherited from Cpd.",
+						"type": "object",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "inherited_attributes"
+					},
+					"virtualNetworkInterfaceRequirements": {
+						"description": "Specifies requirements on a virtual network interface realizing the CPs instantiated from this CPD.",
+						"items": {
+							"type": "string"
+						},
+						"minItems": 0,
+						"type": "array",
+						"x-etsi-mec-cardinality": "0..N"
+					}
+				},
+				"required": [
+					"inherited_attributes"
+				],
+				"type": "object",
+				"x-etsi-ref": "6.2.1.6"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "AppExternalCpd"
+		},
+		"appFeatureOptional": {
+			"description": "Describes features a MEC application may use if available.",
+			"items": {
+				"properties": {
+					"featureName": {
+						"description": "The name of the feature, for example, UserApps, UEIdentity, etc.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"version": {
+						"description": "The version of the feature.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					}
+				},
+				"required": [
+					"featureName",
+					"version"
+				],
+				"type": "object",
+				"x-etsi-ref": "6.2.1.8"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "FeatureDependency"
+		},
+		"appFeatureRequired": {
+			"description": "Describes features a MEC application requires to run.",
+			"items": {
+				"properties": {
+					"featureName": {
+						"description": "The name of the feature, for example, UserApps, UEIdentity, etc.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"version": {
+						"description": "The version of the feature.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					}
+				},
+				"required": [
+					"featureName",
+					"version"
+				],
+				"type": "object",
+				"x-etsi-ref": "6.2.1.8"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "FeatureDependency"
+		},
+		"appInfoName": {
+			"description": "Human readable name for the MEC application.",
+			"type": "string",
+			"x-etsi-mec-cardinality": "0..1",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"appLatency": {
+			"properties": {
+				"maxLatency": {
+					"description": "The value of the maximum latency in nano seconds tolerated by the MEC application. See note.",
+					"format": "Uint32",
+					"type": "integer",
+					"x-etsi-mec-cardinality": "1",
+					"x-etsi-mec-origin-type": "Uint32"
+				}
+			},
+			"required": [
+				"maxLatency"
+			],
+			"type": "object",
+			"x-etsi-notes": "NOTE:\tThe latency is considered to be the one way end-to-end latency between the client application (e.g. in a device) and the service (i.e. the MEC Application instance).",
+			"x-etsi-ref": "6.2.1.14"
+		},
+		"appName": {
+			"description": "Name to identify the MEC application.",
+			"type": "string",
+			"x-etsi-mec-cardinality": "1",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"appProvider": {
+			"description": "Provider of the application and of the AppD.",
+			"type": "string",
+			"x-etsi-mec-cardinality": "1",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"appServiceOptional": {
+			"description": "Describes services a MEC application may use if available.",
+			"items": {
+				"properties": {
+					"requestedPermissions": {
+						"description": "Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4].\nThe format of this attribute is left for the data model design stage.",
+						"items": {
+							"type": "string"
+						},
+						"minItems": 0,
+						"type": "array",
+						"x-etsi-mec-cardinality": "0..N",
+						"x-etsi-mec-origin-type": "Not_specified"
+					},
+					"serCategory": {
+						"description": "See MEC011"
+					},
+					"serName": {
+						"description": "The name of the service, for example, RNIS, LocationService, etc.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"serTransportDependencies": {
+						"description": "Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note.",
+						"items": {
+							"properties": {
+								"labels": {
+									"description": "Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 1,
+									"type": "array",
+									"x-etsi-mec-cardinality": "1..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"serializers": {
+									"description": "Information about the serializers in this transport binding, as defined in the SerializerTypes type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 1,
+									"type": "array",
+									"x-etsi-mec-cardinality": "1..N",
+									"x-etsi-mec-origin-type": "SerializerTypes"
+								},
+								"transport": {
+									"properties": {
+										"protocol": {
+											"description": "The name of the protocol used. Shall be set to HTTP for a REST API.",
+											"type": "string",
+											"x-etsi-mec-cardinality": "1",
+											"x-etsi-mec-origin-type": "String"
+										},
+										"security": {
+											"description": "See MEC011"
+										},
+										"type": {
+											"type": "string"
+										},
+										"version": {
+											"description": "The version of the protocol used.",
+											"type": "string",
+											"x-etsi-mec-cardinality": "1",
+											"x-etsi-mec-origin-type": "String"
+										}
+									},
+									"required": [
+										"type",
+										"protocol",
+										"version",
+										"security"
+									],
+									"type": "object",
+									"x-etsi-ref": "6.2.1.19"
+								}
+							},
+							"required": [
+								"transport",
+								"serializers",
+								"labels"
+							],
+							"type": "object",
+							"x-etsi-ref": "6.2.1.18"
+						},
+						"minItems": 0,
+						"type": "array",
+						"x-etsi-mec-cardinality": "0..N",
+						"x-etsi-mec-origin-type": "TransportDependency"
+					},
+					"version": {
+						"description": "The version of the service.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					}
+				},
+				"required": [
+					"serName",
+					"version"
+				],
+				"type": "object",
+				"x-etsi-notes": "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application.",
+				"x-etsi-ref": "6.2.1.17"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "ServiceDependency"
+		},
+		"appServiceProduced": {
+			"description": "Describes services a MEC application is able to produce to the platform or other MEC applications. Only relevant for service-producing apps.",
+			"items": {
+				"description": "'The ServiceDescriptor data type describes a MEC service produced by a service-providing MEC application.'",
+				"type": "object",
+				"required": [
+					"serName",
+					"version"
+				],
+				"properties": {
+					"serName": {
+						"description": "The name of the service, for example, RNIS, LocationService, etc.",
+						"type": "string"
+					},
+					"serCategory": {
+						"description": "See MEC011"
+					},
+					"version": {
+						"description": "The version of the service.",
+						"type": "string"
+					},
+					"transportsSupported": {
+						"description": "'Indicates transports and serialization formats supported made available to the service-consuming application. Defaults to REST + JSON if absent.'",
+						"type": "object",
+						"required": [
+							"featureName",
+							"version"
+						],
+						"properties": {
+							"transport": {
+								"properties": {
+									"protocol": {
+										"description": "The name of the protocol used. Shall be set to HTTP for a REST API.",
+										"type": "string",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "String"
+									},
+									"security": {
+										"description": "See MEC011"
+									},
+									"type": {
+										"type": "string"
+									},
+									"version": {
+										"description": "The version of the protocol used.",
+										"type": "string",
+										"x-etsi-mec-cardinality": "1",
+										"x-etsi-mec-origin-type": "String"
+									}
+								},
+								"required": [
+									"type",
+									"protocol",
+									"version",
+									"security"
+								],
+								"type": "object",
+								"x-etsi-ref": "6.2.1.19"
+							},
+							"serializers": {
+								"description": "'Information about the serializers in this binding, as defined in the SerializerTypes type in ETSI GS MEC 011 '",
+								"type": "array",
+								"minItems": 1,
+								"items": {
+									"type": "string"
+								}
+							}
+						}
+					}
+				}
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "ServiceDescriptor"
+		},
+		"appServiceRequired": {
+			"description": "Describes services a MEC application requires to run.",
+			"items": {
+				"properties": {
+					"requestedPermissions": {
+						"description": "Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4].\nThe format of this attribute is left for the data model design stage.",
+						"items": {
+							"type": "string"
+						},
+						"minItems": 0,
+						"type": "array",
+						"x-etsi-mec-cardinality": "0..N",
+						"x-etsi-mec-origin-type": "Not_specified"
+					},
+					"serCategory": {
+						"description": "See MEC011"
+					},
+					"serName": {
+						"description": "The name of the service, for example, RNIS, LocationService, etc.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"serTransportDependencies": {
+						"description": "Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note.",
+						"items": {
+							"properties": {
+								"labels": {
+									"description": "Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 1,
+									"type": "array",
+									"x-etsi-mec-cardinality": "1..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"serializers": {
+									"description": "Information about the serializers in this transport binding, as defined in the SerializerTypes type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 1,
+									"type": "array",
+									"x-etsi-mec-cardinality": "1..N",
+									"x-etsi-mec-origin-type": "SerializerTypes"
+								},
+								"transport": {
+									"properties": {
+										"protocol": {
+											"description": "The name of the protocol used. Shall be set to HTTP for a REST API.",
+											"type": "string",
+											"x-etsi-mec-cardinality": "1",
+											"x-etsi-mec-origin-type": "String"
+										},
+										"security": {
+											"description": "See MEC011"
+										},
+										"type": {
+											"type": "string"
+										},
+										"version": {
+											"description": "The version of the protocol used.",
+											"type": "string",
+											"x-etsi-mec-cardinality": "1",
+											"x-etsi-mec-origin-type": "String"
+										}
+									},
+									"required": [
+										"type",
+										"protocol",
+										"version",
+										"security"
+									],
+									"type": "object",
+									"x-etsi-ref": "6.2.1.19"
+								}
+							},
+							"required": [
+								"transport",
+								"serializers",
+								"labels"
+							],
+							"type": "object",
+							"x-etsi-ref": "6.2.1.18"
+						},
+						"minItems": 0,
+						"type": "array",
+						"x-etsi-mec-cardinality": "0..N",
+						"x-etsi-mec-origin-type": "TransportDependency"
+					},
+					"version": {
+						"description": "The version of the service.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					}
+				},
+				"required": [
+					"serName",
+					"version"
+				],
+				"type": "object",
+				"x-etsi-notes": "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application.",
+				"x-etsi-ref": "6.2.1.17"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "ServiceDependency"
+		},
+		"appSoftVersion": {
+			"description": "Identifies the version of software of the MEC application.",
+			"type": "string",
+			"x-etsi-mec-cardinality": "1",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"appTrafficRule": {
+			"description": "Describes traffic rules the MEC application requires.",
+			"items": {
+				"properties": {
+					"action": {
+						"description": "'Identifies the action of the MEC host data plane, when a packet matches the trafficFilter.'",
+						"type": "string",
+						"enum": [
+							"DROP",
+							"FORWARD_DECAPSULATED",
+							"FORWARD_AS_IS",
+							"PASSTHROUGH",
+							"DUPLICATED_DECAPSULATED",
+							"DUPLICATE_AS_IS"
+						]
+					},
+					"dstInterface": {
+						"type": "array",
+						"minItems": 0,
+						"maxItems": 2,
+						"items": {
+							"properties": {
+								"dstIPAddress": {
+									"description": "If the interface type is IP, the destination address identifies the IP address of the destination. Only used for dstInterface.",
+									"type": "string",
+									"x-etsi-mec-cardinality": "0..1",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"dstMACAddress": {
+									"description": "If the interface type is MAC, the destination address identifies the MAC address of the destination. Only used for dstInterface.",
+									"type": "string",
+									"x-etsi-mec-cardinality": "0..1",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"interfaceType": {
+									"description": "Type of interface.",
+									"type": "string",
+									"enum": [
+										"TUNNEL",
+										"MAC",
+										"IP"
+									]
+								},
+								"srcMACAddress": {
+									"description": "If the interface type is MAC, the source address identifies the MAC address of the interface.",
+									"type": "string",
+									"x-etsi-mec-cardinality": "0..1",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"tunnelInfo": {
+									"properties": {
+										"tunnelDstAddress": {
+											"description": "Destination address of the tunnel.",
+											"type": "string",
+											"x-etsi-mec-cardinality": "1",
+											"x-etsi-mec-origin-type": "String"
+										},
+										"tunnelSpecificData": {
+											"type": "string"
+										},
+										"tunnelSrcAddress": {
+											"description": "Source address of the tunnel.",
+											"type": "string",
+											"x-etsi-mec-cardinality": "1",
+											"x-etsi-mec-origin-type": "String"
+										},
+										"tunnelType": {
+											"description": "Type of tunnel.",
+											"type": "string",
+											"enum": [
+												"GTP-U",
+												"GRE"
+											]
+										}
+									},
+									"required": [
+										"tunnelType",
+										"tunnelDstAddress",
+										"tunnelSrcAddress"
+									],
+									"type": "object",
+									"x-etsi-ref": "6.2.1.12"
+								}
+							},
+							"required": [
+								"interfaceType"
+							],
+							"type": "object",
+							"x-etsi-ref": "6.2.1.11"
+						}
+					},
+					"filterType": {
+						"description": "Definition of filter type: per FLOW or PACKET",
+						"type": "string",
+						"enum": [
+							"FLOW",
+							"PACKET"
+						]
+					},
+					"priority": {
+						"description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence.",
+						"type": "integer",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "Int"
+					},
+					"trafficFilter": {
+						"description": "The filter used to identify specific flow/packets that need to be handled by the MEC host.",
+						"items": {
+							"properties": {
+								"dSCP": {
+									"description": "Used to match all IPv4 packets that have the same DSCP.",
+									"type": "integer",
+									"x-etsi-mec-cardinality": "0..1",
+									"x-etsi-mec-origin-type": "Int"
+								},
+								"dstAddress": {
+									"description": "A IP address or a range of IP addresses.For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses.For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"dstPort": {
+									"description": "A port or a range of ports.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"dstTunnelPort": {
+									"description": "Used for GTP tunnel based traffic rule.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"protocol": {
+									"description": "Specify the protocol of the traffic filter.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"qCI": {
+									"description": "Used to match all packets that have the same QCI.",
+									"type": "integer",
+									"x-etsi-mec-cardinality": "0..1",
+									"x-etsi-mec-origin-type": "Int"
+								},
+								"srcAddress": {
+									"description": "An IP address or a range of IP addresses.For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses.For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"srcPort": {
+									"description": "A port or a range of ports.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"srcTunnelAddress": {
+									"description": "Used for GTP tunnel based traffic rule.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"srcTunnelPort": {
+									"description": "Used for GTP tunnel based traffic rule.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"tC": {
+									"description": "Used to match all IPv6 packets that have the same TC.",
+									"type": "integer",
+									"x-etsi-mec-cardinality": "0..1",
+									"x-etsi-mec-origin-type": "Int"
+								},
+								"tag": {
+									"description": "Used for tag based traffic rule.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								},
+								"tgtTunnelAddress": {
+									"description": "Used for GTP tunnel based traffic rule.",
+									"items": {
+										"type": "string"
+									},
+									"minItems": 0,
+									"type": "array",
+									"x-etsi-mec-cardinality": "0..N",
+									"x-etsi-mec-origin-type": "String"
+								}
+							},
+							"type": "object",
+							"x-etsi-ref": "6.2.1.10"
+						},
+						"minItems": 1,
+						"type": "array",
+						"x-etsi-mec-cardinality": "1..N",
+						"x-etsi-mec-origin-type": "TrafficFilter"
+					},
+					"trafficRuleId": {
+						"description": "Identifies the traffic rule.",
+						"type": "string",
+						"x-etsi-mec-cardinality": "1",
+						"x-etsi-mec-origin-type": "String"
+					}
+				},
+				"required": [
+					"trafficRuleId",
+					"filterType",
+					"priority",
+					"trafficFilter",
+					"action"
+				],
+				"type": "object",
+				"x-etsi-ref": "6.2.1.9"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "TrafficRuleDescriptor"
+		},
+		"changeAppInstanceStateOpConfig": {
+			"description": "NFV",
+			"type": "string"
+		},
+		"mecVersion": {
+			"description": "Identifies version(s) of MEC system compatible with the MEC application described in this version of the AppD.",
+			"items": {
+				"type": "string"
+			},
+			"minItems": 1,
+			"type": "array",
+			"x-etsi-mec-cardinality": "1..N",
+			"x-etsi-mec-origin-type": "String"
+		},
+		"swImageDescriptor": {
+			"description": "Ref NFV",
+			"type": "string"
+		},
+		"terminateAppInstanceOpConfig": {
+			"description": "NFV",
+			"type": "string",
+			"x-etsi-ref": "6.2.2.9"
+		},
+		"transportDependencies": {
+			"description": "Transports, if any, that this application requires to be provided by the platform. These transports will be used by the application to deliver services provided by this application. Only relevant for service-producing apps. See note 2.",
+			"items": {
+				"properties": {
+					"labels": {
+						"description": "Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table.",
+						"items": {
+							"type": "string"
+						},
+						"minItems": 1,
+						"type": "array",
+						"x-etsi-mec-cardinality": "1..N",
+						"x-etsi-mec-origin-type": "String"
+					},
+					"serializers": {
+						"description": "Information about the serializers in this transport binding, as defined in the SerializerTypes type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport.",
+						"items": {
+							"type": "string"
+						},
+						"minItems": 1,
+						"type": "array",
+						"x-etsi-mec-cardinality": "1..N",
+						"x-etsi-mec-origin-type": "SerializerTypes"
+					},
+					"transport": {
+						"properties": {
+							"protocol": {
+								"description": "The name of the protocol used. Shall be set to HTTP for a REST API.",
+								"type": "string",
+								"x-etsi-mec-cardinality": "1",
+								"x-etsi-mec-origin-type": "String"
+							},
+							"security": {
+								"description": "See MEC011"
+							},
+							"type": {
+								"type": "string"
+							},
+							"version": {
+								"description": "The version of the protocol used.",
+								"type": "string",
+								"x-etsi-mec-cardinality": "1",
+								"x-etsi-mec-origin-type": "String"
+							}
+						},
+						"required": [
+							"type",
+							"protocol",
+							"version",
+							"security"
+						],
+						"type": "object",
+						"x-etsi-ref": "6.2.1.19"
+					}
+				},
+				"required": [
+					"transport",
+					"serializers",
+					"labels"
+				],
+				"type": "object",
+				"x-etsi-ref": "6.2.1.18"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "TransportDependency"
+		},
+		"virtualComputeDescriptor": {
+			"description": "Ref NFV",
+			"type": "string"
+		},
+		"virtualStorageDescriptor": {
+			"description": "Defines descriptors of virtual storage resources to be used by the MEC application.",
+			"items": {
+				"description": "Ref NFV",
+				"type": "string"
+			},
+			"minItems": 0,
+			"type": "array",
+			"x-etsi-mec-cardinality": "0..N",
+			"x-etsi-mec-origin-type": "VirtualStorageDescriptor"
+		}
+	},
+	"required": [
+		"appDId",
+		"appName",
+		"appProvider",
+		"appSoftVersion",
+		"appDVersion",
+		"mecVersion",
+		"appDescription",
+		"virtualComputeDescriptor",
+		"swImageDescriptor"
+	],
+	"type": "object",
+	"x-etsi-notes": "NOTE 1:\tThe appDId shall be used as the unique identifier of the application package that contains this AppD.\nNOTE 2:\tThis attribute indicates groups of transport bindings which a service-producing MEC application requires to be supported by the platform in order to be able to produce its services. At least one of the indicated groups needs to be supported to fulfil the requirements.",
+	"x-etsi-ref": "6.2.1.2"
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgInfo.schema.json b/MEC010p2/MEO/PKGM/schemas/AppPkgInfo.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..06783a72a2489c5dcc4126c4d10d20600d15106c
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/schemas/AppPkgInfo.schema.json
@@ -0,0 +1,159 @@
+{
+        "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",
+          "_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"
+            ]
+          },
+          "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
diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgInfoModifications.schema.json b/MEC010p2/MEO/PKGM/schemas/AppPkgInfoModifications.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..508820625d91b1f7f86df492ec632488228c1e04
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/schemas/AppPkgInfoModifications.schema.json
@@ -0,0 +1,16 @@
+{
+	"description": "'The data type represents the operational state for an application package resource'",
+	"type": "object",
+	"required": [
+		"operationalState"
+	],
+	"properties": {
+		"operationalState": {
+			"type": "string",
+			"enum": [
+				"DISABLED",
+				"ENABLED"
+			]
+		}
+	}
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgNotification.schema.json b/MEC010p2/MEO/PKGM/schemas/AppPkgNotification.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..5a9542ed0c382a9cdcc7512724691b2534a6d760
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/schemas/AppPkgNotification.schema.json
@@ -0,0 +1,98 @@
+{
+  "description": "'This data type represents an application package management notification for informing the subscribers about onboarding application package resources. The notification is triggered when a new application package is onboarded'",
+  "type": "object",
+  "required": [
+    "id",
+    "notificationType",
+    "subscriptionId",
+    "timeStamp",
+    "appPkgId",
+    "appDId",
+    "operationalState",
+    "_links"
+  ],
+  "properties": {
+    "id": {
+      "description": "''",
+      "type": "string"
+    },
+    "notificationType": {
+      "description": "Discriminator for the different notification types",
+      "type": "string",
+      "enum": [
+        "AppPackageOnBoarded",
+        "AppPacakgeEnabled",
+        "AppPacakgeDisabled",
+        "AppPackageDeleted"
+      ]
+    },
+    "subscriptionId": {
+      "description": "Identifier of the subscription related to this notification.",
+      "type": "string"
+    },
+    "timeStamp": {
+      "properties": {
+        "nanoSeconds": {
+          "description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
+          "format": "Uint32",
+          "type": "integer",
+          "x-etsi-mec-cardinality": "1",
+          "x-etsi-mec-origin-type": "Uint32"
+        },
+        "seconds": {
+          "description": "The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
+          "format": "Uint32",
+          "type": "integer",
+          "x-etsi-mec-cardinality": "1",
+          "x-etsi-mec-origin-type": "Uint32"
+        }
+      },
+      "required": [
+        "seconds",
+        "nanoSeconds"
+      ],
+      "type": "object",
+      "x-etsi-ref": "6.2.5.4"
+    },
+    "appPkgId": {
+      "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"
+    },
+    "operationalState": {
+      "type": "string",
+      "enum": [
+        "DISABLED",
+        "ENABLED"
+      ]
+    },
+    "_links": {
+      "description": "Links to resources related to this resource.",
+      "type": "object",
+      "required": [
+        "subscription"
+      ],
+      "properties": {
+        "subscription": {
+          "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
diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionInfo.json b/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionInfo.json
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionInfo.schema.json b/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionInfo.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..13f916143cb0c2dd2648f8d3e8f7bcd392d904f8
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionInfo.schema.json
@@ -0,0 +1,55 @@
+{
+  "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",
+        "AppPacakgeOperationChange",
+        "AppPackageDeletion"
+      ]
+    },
+    "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
diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionLinkList.json b/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionLinkList.json
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionLinkList.schema.json b/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionLinkList.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..ccad36e227f57184dae91c93c8df9b8052da8e65
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/schemas/AppPkgSubscriptionLinkList.schema.json
@@ -0,0 +1,61 @@
+{
+  "description": "'The data type represents a subscription link list of notification on application package management'",
+  "type": "object",
+  "required": [
+    "_links"
+  ],
+  "properties": {
+    "_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"
+        },
+        "subscriptions": {
+          "type": "array",
+          "items": {
+            "description": "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'",
+            "type": "object",
+            "required": [
+              "href",
+              "subsctiptionType"
+            ],
+            "properties": {
+              "href": {
+                "description": "The URI referring to the subscription.",
+                "type": "string",
+                "format": "uri"
+              },
+              "subsctiptionType": {
+                "description": "'Subscribed notification type'",
+                "type": "string",
+                "enum": [
+                  "AppPackageOnBoardingSubscription",
+                  "AppPacakgeOperationChange",
+                  "AppPackageDeletion"
+                ]
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/schemas/CreateAppPkg.schema.json b/MEC010p2/MEO/PKGM/schemas/CreateAppPkg.schema.json
new file mode 100644
index 0000000000000000000000000000000000000000..ffbb40b6c533e84e53ab0d12ab238a9dfd5cb250
--- /dev/null
+++ b/MEC010p2/MEO/PKGM/schemas/CreateAppPkg.schema.json
@@ -0,0 +1,57 @@
+{
+  "properties": {
+    "appPkgName": {
+      "description": "Name of the application package to be onboarded.",
+      "type": "string",
+      "x-etsi-mec-cardinality": "1",
+      "x-etsi-mec-origin-type": "String"
+    },
+    "appPkgPath": {
+      "type": "string"
+    },
+    "appPkgVersion": {
+      "description": "Version of the application package to be onboarded.\nThe appPkgName with appPkgVersion can be used to uniquely identify the application package.",
+      "type": "string",
+      "x-etsi-mec-cardinality": "1",
+      "x-etsi-mec-origin-type": "String"
+    },
+    "appProvider": {
+      "description": "The provider's name of the application package to be onboarded.",
+      "type": "string",
+      "x-etsi-mec-cardinality": "0..1",
+      "x-etsi-mec-origin-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"
+    },
+    "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
+    }
+  },
+  "required": [
+    "appPkgName",
+    "appPkgVersion",
+    "checksum",
+    "appPkgPath"
+  ],
+  "type": "object",
+  "x-etsi-notes": "NOTE:\tIt is for further study how to convey appPkgPath, and align with ETSI GS NFV-SOL 005 [i.7].",
+  "x-etsi-ref": "6.2.3.2"
+}
\ No newline at end of file
diff --git a/MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfo.json b/MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfo.json
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfos.json b/MEC010p2/MEO/PKGM/schemas/OnboardedAppPkgInfos.json
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000