Newer
Older
title: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management'
description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management described using OpenAPI.'
license:
name: BSD-3-Clause
url: 'https://forge.etsi.org/legal-matters'
name: ETSI Forge
url: https://forge.etsi.org/rep/mec/gs010-2-app-pkg-lcm-api
email: cti_support@etsi.org
version: '2.1.1'
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
externalDocs:
description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.1.1'
url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.01.01_60/gs_MEC01002v020101p.pdf
tags:
- name: app-pkgm
description: App Package management
- name: app-pkgm-notifications
description: App Package management notifications
- url: https://localhost/app_pkgm/v1
variables: {}
summary: 'Create a resource for on-boarding an application package to a MEO'
description: Create a resource for on-boarding an application package to a MEO
requestBody:
description: Resource to be created
content:
application/json:
schema:
$ref: '#/components/schemas/CreateAppPkg'
responses:
'201':
description: Successful response for resource creation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AppPkgInfo'
description: ''
contentMediaType: application/json
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
summary: Queries information relating to on-boarded application packages in the MEO'
description: queries information relating to on-boarded application packages in the MEO
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
- name: filter
in: query
description: Attribute-based filtering parameters according to ETSI GS MEC 009
style: form
explode: true
schema:
type: string
- name: all_fields
in: query
description: Include all complex attributes in the response.
style: form
explode: true
schema:
type: string
- name: fields
in: query
description: Complex attributes of AppPkgInfo to be included into the response
style: form
explode: true
schema:
type: string
- name: exclude_fields
in: query
description: Complex attributes of AppPkgInfo to be excluded from the response.
style: form
explode: true
schema:
type: string
- name: exclude_default
in: query
description: Indicates to exclude the following complex attributes of AppPkgInfo from the response.
style: form
explode: true
schema:
type: string
description: Contains a representation of the application package resource
headers: {}
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AppPkgInfo'
description: ''
contentMediaType: application/json
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
summary: 'Queries the information related to individual application package resources'
description: Queries the information related to individual application package resources
parameters:
- name: appPkgId
in: path
description: Identifier of an individual application package resource
required: true
style: simple
schema:
type: string
description: Contains a representation of the application package resource
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/AppPkgInfo'
'400':
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
summary: 'Deletes an individual application package resources'
description: Deletes an individual application package resources
parameters:
- name: appPkgId
in: path
description: Identifier of an individual application package resource
required: true
style: simple
schema:
type: string
description: No Content
headers: {}
content: {}
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
summary: 'Updates the operational state of an individual application package resource'
description: Updates the operational state of an individual application package resources
parameters:
- name: appPkgId
in: path
description: Identifier of an individual application package resource
required: true
style: simple
schema:
type: string
requestBody:
description: Operational state to be set
content:
application/json:
schema:
$ref: '#/components/schemas/AppPkgInfoModifications'
description: Shows that the operation has been completed successfully
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/AppPkgInfoModifications'
'400':
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
summary: 'Subscribe to notifications about on-boarding an application package'
description: Subscribe to notifications about on-boarding an application package
description: The input parameters of subscribe operation to notifications
content:
application/json:
schema:
$ref: '#/components/schemas/AppPkgSubscription'
responses:
'201':
description: Successful response for created subscription
$ref: '#/components/schemas/AppPkgSubscriptionInfo'
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
callbacks:
notification:
'{$request.body#/subscription.href}':
post:
summary: 'Callback POST used to send a notification'
description: ' The notification is triggered when a new application package is onboarded'
operationId: notificationPOST
requestBody:
description: Subscription notification
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppPkgNotification'
responses:
'204':
description: "No content"
summary: 'used to retrieve the information of subscriptions to individual application package resource in MEO'
description: used to retrieve the information of subscriptions to individual application package resource in MEO package
description: List of zero or more subscriptions
headers: {}
$ref: '#/components/schemas/AppPkgSubscriptionLinkList'
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
/subscriptions/{subscriptionId}:
summary: 'Used to represent an individual subscription to notifications about application package changes.'
description: Used to represent an individual subscription to notifications about application package changes.
parameters:
- name: subscriptionId
in: path
description: Identifier of an individual subscription to notifications about application package changes
required: true
style: simple
schema:
type: string
description: Representation of the resource.
headers: {}
$ref: '#/components/schemas/AppPkgSubscriptionInfo'
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
summary: 'Deletes the individual subscription to notifications about application package changes in MEO.'
description: Deletes the individual subscription to notifications about application package changes in MEO.
parameters:
- name: subscriptionId
in: path
description: Identifier of an individual subscription to notifications about application package changes
style: simple
schema:
type: string
description: No Content
headers: {}
content: {}
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
summary: 'Reads the content of the AppD of on-boarded individual application package resources.'
description: Reads the content of the AppD of on-boarded individual application package resources.
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
- name: appPkgId
in: path
description: Identifier of an on-boarded individual application package
required: true
style: simple
schema:
type: string
- name: filter
in: query
description: Attribute-based filtering parameters according to ETSI GS MEC 009
style: form
explode: true
schema:
type: string
- name: all_fields
in: query
description: Include all complex attributes in the response.
style: form
explode: true
schema:
type: string
- name: fields
in: query
description: Complex attributes of AppPkgInfo to be included into the response
style: form
explode: true
schema:
type: string
- name: exclude_fields
in: query
description: Complex attributes of AppPkgInfo to be excluded from the response.
style: form
explode: true
schema:
type: string
- name: exclude_default
in: query
description: Indicates to exclude the following complex attributes of AppPkgInfo from the response.
style: form
explode: true
schema:
type: string
description: Content of the AppD is returned.
headers: {}
application/zip: {}
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
/onboarded_app_packages/{appDId}/appd:
get:
tags:
summary: 'Reads the content of the AppD of on-boarded individual application package resources.'
description: Reads the content of the AppD of on-boarded individual application package resources.
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
- name: appDId
in: path
description: Identifier of an application descriptor
required: true
style: simple
schema:
type: string
- name: filter
in: query
description: Attribute-based filtering parameters according to ETSI GS MEC 009
style: form
explode: true
schema:
type: string
- name: all_fields
in: query
description: Include all complex attributes in the response.
style: form
explode: true
schema:
type: string
- name: fields
in: query
description: Complex attributes of AppPkgInfo to be included into the response
style: form
explode: true
schema:
type: string
- name: exclude_fields
in: query
description: Complex attributes of AppPkgInfo to be excluded from the response.
style: form
explode: true
schema:
type: string
- name: exclude_default
in: query
description: Indicates to exclude the following complex attributes of AppPkgInfo from the response.
style: form
explode: true
schema:
type: string
description: Content of the AppD is returned.
headers: {}
application/zip: {}
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
/app_packages/{appPkgId}/package_content:
get:
tags:
summary: 'Fetch the onboarded application package content identified by appPkgId or appDId.'
description: Fetch the onboarded application package content identified by appPkgId or appDId.
parameters:
- name: appPkgId
in: path
description: Identifier of an on-boarded individual application package
required: true
style: simple
schema:
type: string
description: The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.
headers: {}
content:
application/zip: {}
description: Partial content
headers: {}
content:
application/zip: {}
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: Range Not Satisfiable .
headers: {}
content: {}
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
summary: 'Uploads the content of application package.'
description: Uploads the content of application package.
parameters:
- name: appPkgId
in: path
description: Identifier of an on-boarded individual application package
required: true
style: simple
schema:
type: string
application/zip: {}
description: The application package has been accepted for uploading, but the processing has not been completed.
headers: {}
content: {}
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
/onboarded_app_packages/{appDId}/package_content:
get:
tags:
summary: 'Fetch the onboarded application package content identified by appPkgId or appDId.'
description: Fetch the onboarded application package content identified by appPkgId or appDId.
parameters:
- name: appDId
in: path
description: Identifier of an application descriptor
required: true
style: simple
schema:
type: string
description: The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.
headers: {}
content: {}
description: Partial content
headers: {}
content: {}
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'416':
description: Range Not Satisfiable .
headers: {}
content: {}
'406':
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
put:
tags:
- app-pkgm
summary: 'Fetch the onboarded application package content identified by appPkgId or appDId.'
description: Uploads the content of application package.
operationId: appDIdPUT
parameters:
- name: appDId
in: path
description: Identifier of an application descriptor
required: true
style: simple
schema:
type: string
requestBody:
description: ''
content:
application/zip: {}
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
required: false
responses:
'202':
description: The application package has been accepted for uploading, but the processing has not been completed.
headers: {}
content: {}
'400':
description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'401':
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'409':
description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
###############################################################################
# Notification endpoint AppPkgNotification #
###############################################################################
/user_defined_notification:
post:
summary: 'Registers a notification endpoint to notify application package operations'
description: Registers a notification endpoint to notify application package operations
operationId: app_pkg_notificationPOST
parameters: []
description: Notification endpoint to be created
$ref: '#/components/schemas/AppPkgNotification'
required: true
'204':
description: No Content
headers: {}
content: {}
description: 'Unauthorized : used when the client did not submit credentials.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Forbidden : operation is not allowed given the current status of the resource.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
description: 'Too Many Requests : used when a rate limiter has triggered.'
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
deprecated: false
parameters: []
title: AppD
required:
- appDId
- appDVersion
- appDescription
- appName
- appProvider
- appSoftVersion
- mecVersion
- swImageDescriptor
- virtualComputeDescriptor
type: object
description: Identifier of this MEC application descriptor. This attribute shall be globally unique. See note 1.
items:
$ref: '#/components/schemas/DNSRuleDescriptor'
description: Describes DNS rules the MEC application requires.
description: Identifies the version of the application descriptor.
description: Human readable description of the MEC application.
items:
$ref: '#/components/schemas/AppExternalCpd'
description: Describes external interface(s) exposed by this MEC application.
appFeatureOptional:
minItems: 0
type: array
items:
$ref: '#/components/schemas/FeatureDependency'
description: Describes features a MEC application may use if available.
appFeatureRequired:
minItems: 0
type: array
items:
$ref: '#/components/schemas/FeatureDependency'
description: Describes features a MEC application requires to run.
description: Human readable name for the MEC application.
appLatency:
$ref: '#/components/schemas/LatencyDescriptor'
appName:
type: string
description: Name to identify the MEC application.
description: Provider of the application and of the AppD.
items:
$ref: '#/components/schemas/ServiceDependency'
description: Describes services a MEC application may use if available.
appServiceProduced:
minItems: 0
type: array
items:
$ref: '#/components/schemas/ServiceDescriptor'
description: Describes services a MEC application is able to produce to the platform or other MEC applications. Only relevant for service-producing apps.
appServiceRequired:
minItems: 0
type: array
items:
$ref: '#/components/schemas/ServiceDependency'
description: Describes services a MEC application requires to run.
description: Identifies the version of software of the MEC application.
items:
$ref: '#/components/schemas/TrafficRuleDescriptor'
description: Describes traffic rules the MEC application requires.
items:
type: string
description: Identifies version(s) of MEC system compatible with the MEC application described in this version of the AppD.
type: string
description: Ref NFV
transportDependencies:
minItems: 0
type: array
items:
$ref: '#/components/schemas/TransportDependency'
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.
type: string
description: Ref NFV
virtualStorageDescriptor:
minItems: 0
type: array
items:
type: string
description: Defines descriptors of virtual storage resources to be used by the MEC application.
AppExternalCpd:
title: AppExternalCpd
type: object
properties:
inherited_attributes:
type: object
description: All attributes inherited from Cpd.
virtualNetworkInterfaceRequirements:
minItems: 0
type: array
items:
type: string
description: Specifies requirements on a virtual network interface realizing the CPs instantiated from this CPD.
- id
- appDId
- appName
- appSoftwareVersion
- appDVersion
- checksum
- softwareImages
- onboardingState
- operationalState
- usageState
- _links
type: object
type: string
description: Identifier of the onboarded application package.
type: string
description: Identifier of this MEC application descriptor. This attribute shall be globally unique.
type: string
description: Provider of the application and of the AppD.
type: string
description: Name to identify the MEC application.
type: string
description: Software version of the application. This is updated when there is any change to the software in the onboarded application package.
type: string
description: Identifies the version of the application descriptor.
checksum:
$ref: '#/components/schemas/Checksum'
softwareImages:
type: object
description: Information of application software image in application package. Type is TBD
type: object
description: Additional information of application package artifacts that are not application software images. Type is TBD
onboardingState:
$ref: '#/components/schemas/OnboardingState'
operationalState:
$ref: '#/components/schemas/AppPkg.OperationalState'
usageState:
$ref: '#/components/schemas/UsageState'
userDefinedData:
type: object
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'"
_links:
$ref: '#/components/schemas/AppPkgInfo.links'
description: "'The data type AppPkgInfo represents the parameters for an application package resource'"
title: AppPkgInfoModifications
required:
- operationState
$ref: '#/components/schemas/OperationState'
description: "'The data type represents the operational state for an application package resource'"
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.'
examples:
- ENABLED
OnboardingState:
title: OnboardingState
- CREATED
- UPLOADING
- PROCESSING
- ONBOARDED
description: Onboarding state of application package
examples:
- CREATED
UsageState:
title: UsageState
- IN_USE
- NOT_IN_USE
type: string
description: Usage state of the onboarded instance of the application package
examples:
- IN_USE
- self
- appD
- appPkgContent
type: object
properties:
self:
$ref: '#/components/schemas/LinkType'
appD:
$ref: '#/components/schemas/LinkType'
appPkgContent:
$ref: '#/components/schemas/LinkType'
description: Links to resources related to this resource.
- id
- notificationType
- subscriptionId
- timeStamp
- appPkgId
- appDId
- operationalState
- _links
type: object
type: string
description: "''"
notificationType:
$ref: '#/components/schemas/AppPkg.NotificationType'
subscriptionId:
type: string
description: Identifier of the subscription related to this notification.
timeStamp:
$ref: '#/components/schemas/TimeStamp'
appPkgId:
type: string
description: Identifier of the onboarded application package.
description: Identifier of this MEC application descriptor. This attribute shall be globally unique.
operationalState:
$ref: '#/components/schemas/OperationalState'
_links:
$ref: '#/components/schemas/AppPkgNotification.links'
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'"
- AppPackageOnBoarded
- AppPacakgeEnabled
- AppPacakgeDisabled
- AppPackageDeleted
type: string
description: Discriminator for the different notification types
examples:
- AppPackageOnBoarded
properties:
subscription:
$ref: '#/components/schemas/LinkType'
description: Links to resources related to this resource.
- id
- subscriptionType
- callbackUri
- _links
type: object
type: string
description: "''"
subscriptionType:
$ref: '#/components/schemas/AppPkg.SubscriptionType'
callbackUri:
type: string
description: The URI of the endpoint for the notification to be sent to.
_links:
$ref: '#/components/schemas/AppPkgSubscriptionInfo.links'
description: "'The data type represents a subscription to notification of application package management for the onboarding, or operational state change of application package'"
- AppPackageOnBoarding
- AppPacakgeOperationChange
- AppPackageDeletion
type: string
description: Subscribed notification type.
examples:
- AppPackageOnBoarding
title: AppPkgSubscriptionInfo.links
properties:
self:
$ref: '#/components/schemas/LinkType'
description: Links to resources related to this resource.
properties:
_links:
$ref: '#/components/schemas/AppPkgSubscriptionLinkList.links'
description: "'The data type represents a subscription link list of notification on application package management'"
title: AppPkgSubscriptionLinkList.links
properties:
self:
$ref: '#/components/schemas/LinkType'
subscriptions:
type: array
items:
$ref: '#/components/schemas/Subscriptions.AppPkgSubscription'
description: ''
description: Links to resources related to this resource.
title: Subscriptions.AppPkgSubscription
- href
- subsctiptionType
type: object
type: string
description: The URI referring to the subscription.
subsctiptionType:
$ref: '#/components/schemas/SubsctiptionType.AppPkg'
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.'"
- callbackUri
- subsctiptionType
type: object
type: string
description: The URI of the endpoint for the notification to be sent to.
$ref: '#/components/schemas/SubsctiptionType.AppPkg'
type: string
description: ''
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.'"
- AppPackageOnBoarding
- AppPacakgeOperationChange
- AppPackageDeletion
description: "'Subscribed notification type'"
examples:
- AppPackageOnBoarding
required:
- algorithm
- hash
type: object
properties:
algorithm:
type: string
description: Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.
hash:
type: string
description: "'String 1 The hexadecimal value of the checksum'"
title: CreateAppPkg
required:
- appPkgName
- appPkgPath
- appPkgVersion
- checksum
type: object
description: Name of the application package to be onboarded.
description: >-
Version of the application package to be onboarded.
The appPkgName with appPkgVersion can be used to uniquely identify the application package.
description: The provider's name of the application package to be onboarded.
checksum:
$ref: '#/components/schemas/Checksum'
userDefinedData:
type: object
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'"
DNSRuleDescriptor:
title: DNSRuleDescriptor
- dnsRuleId
- domainName
- ipAddress
- ipAddressType
type: object
properties:
dnsRuleId:
type: string
description: Identifies the DNS Rule
description: IP address given by the DNS rule
ipAddressType:
$ref: '#/components/schemas/IpAddressType'
ttl:
type: integer
description: Time-to-live value
contentEncoding: int32
- IP_V6
- IP_V4
type: string
description: Specifies the IP address type
examples:
- IP_V6
title: FeatureDependency
required:
- featureName
- version
type: object
description: The name of the feature, for example, UserApps, UEIdentity, etc.
description: The version of the feature.
InterfaceDescriptor:
title: InterfaceDescriptor
type: object
properties:
dstIPAddress:
type: string
description: If the interface type is IP, the destination address identifies the IP address of the destination. Only used for dstInterface.
description: If the interface type is MAC, the destination address identifies the MAC address of the destination. Only used for dstInterface.
interfaceType:
$ref: '#/components/schemas/InterfaceType'
srcMACAddress:
type: string
description: If the interface type is MAC, the source address identifies the MAC address of the interface.
tunnelInfo:
$ref: '#/components/schemas/TunnelInfo'
InterfaceType:
- TUNNEL
- MAC
- IP
type: string
description: Type of interface.
examples:
- TUNNEL
title: LatencyDescriptor
required:
- maxLatency
type: object
description: The value of the maximum latency in nano seconds tolerated by the MEC application. See note.
contentEncoding: int32
LinkType:
title: LinkType
type: object
properties:
href:
type: string
description: URI referring to a resource
title: ProblemDetails
type: object
description: A human-readable explanation specific to this occurrence of the problem
description: A URI reference that identifies the specific occurrence of the problem
description: The HTTP status code for this occurrence of the problem
contentEncoding: int32
description: A short, human-readable summary of the problem type
description: A URI reference according to IETF RFC 3986 that identifies the problem type
title: ServiceDependency
required:
- serName
- version
type: object
properties:
requestedPermissions:
minItems: 0
type: array
items:
type: string
description: >-
Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4].
The format of this attribute is left for the data model design stage.
type: object
description: See MEC011
description: The name of the service, for example, RNIS, LocationService, etc.
serTransportDependencies:
minItems: 0
type: array
items:
$ref: '#/components/schemas/TransportDependency'
description: Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note.
description: The version of the service.
ServiceDescriptor:
title: ServiceDescriptor
required:
- serName
- version
type: object
properties:
serName:
type: string
description: The name of the service, for example, RNIS, LocationService, etc.
type: object
description: See MEC011
type: string
description: The version of the service.
transportsSupported:
$ref: '#/components/schemas/TransportsSupported'
description: "'The ServiceDescriptor data type describes a MEC service produced by a service-providing MEC application.'"
type: object
properties:
transport:
$ref: '#/components/schemas/TransportDescriptor'
serializers:
minItems: 1
type: array
items:
type: string
description: "'Information about the serializers in this binding, as defined in the SerializerTypes type in ETSI GS MEC 011 '"
description: "'Indicates transports and serialization formats supported made available to the service-consuming application. Defaults to REST + JSON if absent.'"
title: TimeStamp
required:
- nanoSeconds
- seconds
type: object
description: The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.
contentEncoding: int32
description: The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.
contentEncoding: int32
title: TrafficFilter
type: object
description: Used to match all IPv4 packets that have the same DSCP.
contentEncoding: int32
dstAddress:
minItems: 0
type: array
items:
type: string
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.
dstPort:
minItems: 0
type: array
items:
type: string
description: A port or a range of ports.
dstTunnelPort:
minItems: 0
type: array
items:
type: string
description: Used for GTP tunnel based traffic rule.
protocol:
items:
type: string
description: Specify the protocol of the traffic filter.
description: Used to match all packets that have the same QCI.
contentEncoding: int32
srcAddress:
minItems: 0
type: array
items:
type: string
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.
srcPort:
minItems: 0
type: array
items:
type: string
description: A port or a range of ports.
srcTunnelAddress:
minItems: 0
type: array
items:
type: string
description: Used for GTP tunnel based traffic rule.
srcTunnelPort:
items:
type: string
description: Used for GTP tunnel based traffic rule.
description: Used to match all IPv6 packets that have the same TC.
contentEncoding: int32
tag:
minItems: 0
type: array
items:
type: string
description: Used for tag based traffic rule.
tgtTunnelAddress:
items:
type: string
description: Used for GTP tunnel based traffic rule.
title: TrafficRuleDescriptor
required:
- action
- filterType
- priority
- trafficFilter
- trafficRuleId
type: object
properties:
action:
$ref: '#/components/schemas/Action'
dstInterface:
maxItems: 2
$ref: '#/components/schemas/InterfaceDescriptor'
description: ''
filterType:
$ref: '#/components/schemas/FilterType'
priority:
type: integer
description: Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence.
contentEncoding: int32
items:
$ref: '#/components/schemas/TrafficFilter'
description: The filter used to identify specific flow/packets that need to be handled by the MEC host.
description: Identifies the traffic rule.
- DROP
- FORWARD_DECAPSULATED
- FORWARD_AS_IS
- PASSTHROUGH
- DUPLICATED_DECAPSULATED
- DUPLICATE_AS_IS
description: "'Identifies the action of the MEC host data plane, when a packet matches the trafficFilter.'"
examples:
- DROP
FilterType:
title: FilterType
- FLOW
- PACKET
type: string
description: 'Definition of filter type: per FLOW or PACKET'
examples:
- FLOW
title: TransportDependency
required:
- labels
- serializers
- transport
type: object
properties:
labels:
minItems: 1
type: array
items:
type: string
description: Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table.
serializers:
items:
type: string
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.
transport:
$ref: '#/components/schemas/TransportDescriptor'
TransportDescriptor:
title: TransportDescriptor
- protocol
- security
- type
- version
type: object
properties:
protocol:
type: string
description: The name of the protocol used. Shall be set to HTTP for a REST API.
type: object
description: See MEC011
description: The version of the protocol used.
TunnelInfo:
title: TunnelInfo
- tunnelDstAddress
- tunnelSrcAddress
- tunnelType
type: object
properties:
tunnelDstAddress:
type: string
description: Destination address of the tunnel.
description: Source address of the tunnel.
tunnelType:
$ref: '#/components/schemas/TunnelType'
TunnelType:
description: Type of tunnel.
examples:
- GTP-U
OperationalState:
title: OperationalState
enum:
- DISABLED
- ENABLED
examples:
- DISABLED
OperationState:
title: OperationState
enum:
- DISABLED
- ENABLED
examples:
- DISABLED
security:
- {}