Newer
Older
"info": {
"title": "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management",
"version": "2.1.1",
"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"
},
"contact": {
"url": "https://forge.etsi.org/rep/mec/gs010-2-app-pkg-lcm-api"
}
"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"
},
"servers": [
{
"url": "https://localhost/app_pkgm/v1"
}
],
"openapi": "3.0.0",
"tags": [
{
"name": "app-pkgm",
"description": "App Package management"
},
{
"name": "app-pkgm-notifications",
"description": "App Package management notifications"
}
],
"paths": {
"/app_packages": {
"post": {
"tags": [
"app-pkgm"
],
"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",
"operationId": "app_packagesPOST",
"requestBody": {
"description": "Resource to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"responses": {
"201": {
"description": "Successful response for resource creation",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AppPkgInfo"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"get": {
"tags": [
"app-pkgm"
],
"summary": "Queries information relating to on-boarded application packages in the MEO",
"description": "queries information relating to on-boarded application packages in the MEO",
"operationId": "app_packagesGET",
"parameters": [
{
"in": "query",
"name": "filter",
"schema": {
"type": "string"
},
"required": false,
"description": "Attribute-based filtering parameters according to ETSI GS MEC 009"
{
"in": "query",
"name": "all_fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Include all complex attributes in the response."
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Complex attributes of AppPkgInfo to be included into the response"
{
"in": "query",
"name": "exclude_fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Complex attributes of AppPkgInfo to be excluded from the response."
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
{
"in": "query",
"name": "exclude_default",
"schema": {
"type": "string"
},
"required": false,
"description": "Indicates to exclude the following complex attributes of AppPkgInfo from the response."
}
],
"responses": {
"200": {
"description": "Contains a representation of the application package resource",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AppPkgInfo"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
}
},
"/app_packages/{appPkgId}": {
"parameters": [
"schema": {
"type": "string"
},
"required": true,
"description": "Identifier of an individual application package resource"
"get": {
"tags": [
"app-pkgm"
],
"summary": "Queries the information related to individual application package resources",
"description": "Queries the information related to individual application package resources",
"operationId": "app_packageGET",
"responses": {
"200": {
"description": "Contains a representation of the application package resource",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgInfo"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
},
"delete": {
"tags": [
"app-pkgm"
],
"summary": "Deletes an individual application package resources",
"description": "Deletes an individual application package resources",
"operationId": "app_packageDELETE",
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
},
"patch": {
"tags": [
"app-pkgm"
],
"summary": "Updates the operational state of an individual application package resource",
"description": "Updates the operational state of an individual application package resources",
"operationId": "app_packagePATCH",
"requestBody": {
"description": "Operational state to be set",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgInfoModifications"
"responses": {
"200": {
"description": "Shows that the operation has been completed successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgInfoModifications"
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"409": {
"$ref": "#/components/responses/409"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"/subscriptions": {
"post": {
"tags": [
"app-pkgm"
],
"summary": "Subscribe to notifications about on-boarding an application package",
"description": "Subscribe to notifications about on-boarding an application package",
"operationId": "subscriptionsPOST",
"requestBody": {
"description": "The input parameters of subscribe operation to notifications",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgSubscription"
"responses": {
"201": {
"description": "Successful response for created subscription",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgSubscriptionInfo"
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
"get": {
"tags": [
"app-pkgm"
],
"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",
"operationId": "subscriptionsGET",
"responses": {
"200": {
"description": "List of zero or more subscriptions",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgSubscriptionLinkList"
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
"/subscriptions/{subscriptionId}": {
"parameters": [
{
"in": "path",
"name": "subscriptionId",
"schema": {
"type": "string"
},
"description": "Identifier of an individual subscription to notifications about application package changes",
"required": true
}
"get": {
"tags": [
"app-pkgm"
],
"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.",
"operationId": "individualSubscriptionGET",
"responses": {
"200": {
"description": "Representation of the resource.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgSubscriptionInfo"
}
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
},
"delete": {
"tags": [
"app-pkgm"
],
"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.",
"operationId": "individualSubscriptionDELETE",
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
},
"/URI_is_provided_by_the_client_when_creating_the_subscription_AppPkgNotification": {
"post": {
"tags": [
"app-pkgm-notifications"
],
"summary": "Registers a notification endpoint to notify application package operations",
"description": "Registers a notification endpoint to notify application package operations",
"operationId": "app_pkg_notificationPOST",
"requestBody": {
"description": "Notification endpoint to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppPkgNotification"
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
"schema": {
"type": "string"
},
"description": "Identifier of an on-boarded individual application package",
"required": true
}
],
"get": {
"tags": [
"app-pkgm"
],
"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.",
"operationId": "appPkgIdGET",
"parameters": [
{
"in": "query",
"name": "filter",
"schema": {
"type": "string"
},
"required": false,
"description": "Attribute-based filtering parameters according to ETSI GS MEC 009"
{
"in": "query",
"name": "all_fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Include all complex attributes in the response."
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Complex attributes of AppPkgInfo to be included into the response"
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
{
"in": "query",
"name": "exclude_fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Complex attributes of AppPkgInfo to be excluded from the response."
},
{
"in": "query",
"name": "exclude_default",
"schema": {
"type": "string"
},
"required": false,
"description": "Indicates to exclude the following complex attributes of AppPkgInfo from the response."
}
],
"responses": {
"200": {
"description": "Content of the AppD is returned.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/AppD"
}
},
"application/zip": {
"schema": {
"$ref": "#/components/schemas/AppD"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
}
},
"/onboarded_app_packages/{appDId}/appd": {
"parameters": [
"schema": {
"type": "string"
},
"description": "Identifier of an application descriptor",
"required": true
"get": {
"tags": [
"app-pkgm"
],
"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.",
"operationId": "appDGET",
"parameters": [
{
"in": "query",
"name": "filter",
"schema": {
"type": "string"
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
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
"required": false,
"description": "Attribute-based filtering parameters according to ETSI GS MEC 009"
},
{
"in": "query",
"name": "all_fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Include all complex attributes in the response."
},
{
"in": "query",
"name": "fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Complex attributes of AppPkgInfo to be included into the response"
},
{
"in": "query",
"name": "exclude_fields",
"schema": {
"type": "string"
},
"required": false,
"description": "Complex attributes of AppPkgInfo to be excluded from the response."
},
{
"in": "query",
"name": "exclude_default",
"schema": {
"type": "string"
},
"required": false,
"description": "Indicates to exclude the following complex attributes of AppPkgInfo from the response."
}
],
"responses": {
"200": {
"description": "Content of the AppD is returned.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/AppD"
}
},
"application/zip": {
"schema": {
"$ref": "#/components/schemas/AppD"
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
},
"/app_packages/{appPkgId}/package_content": {
"schema": {
"type": "string"
},
"description": "Identifier of an on-boarded individual application package",
"required": true
}
],
"get": {
"tags": [
"app-pkgm"
],
"summary": "Fetch the onboarded application package content identified by appPkgId or appDId.",
"description": "Fetch the onboarded application package content identified by appPkgId or appDId.",
"operationId": "appPkgGET",
"responses": {
"200": {
"$ref": "#/components/responses/AppPkgContent.200"
"206": {
"$ref": "#/components/responses/206"
"400": {
"$ref": "#/components/responses/400"
"401": {
"$ref": "#/components/responses/401"
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"416": {
"$ref": "#/components/responses/416"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"put": {
"tags": [
"app-pkgm"
],
"summary": "Uploads the content of application package.",
"description": "Uploads the content of application package.",
"operationId": "appPkgPUT",
"requestBody": {
"content": {
"application/zip": {
"schema": {
"responses": {
"202": {
"description": "The application package has been accepted for uploading, but the processing has not been completed."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"409": {
"$ref": "#/components/responses/409"
},
"429": {
"$ref": "#/components/responses/429"
}
"/onboarded_app_packages/{appDId}/package_content": {
"parameters": [
{
"in": "path",
"name": "appDId",
"description": "Identifier of an application descriptor",
"schema": {
"type": "string"
},
"required": true
}
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
"get": {
"tags": [
"app-pkgm"
],
"summary": "Fetch the onboarded application package content identified by appPkgId or appDId.",
"description": "Fetch the onboarded application package content identified by appPkgId or appDId.",
"operationId": "appDIdGET",
"responses": {
"200": {
"$ref": "#/components/responses/AppPkgContent.200"
},
"206": {
"$ref": "#/components/responses/206"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"416": {
"$ref": "#/components/responses/416"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
"put": {
"tags": [
"app-pkgm"
],
"summary": "Uploads the content of application package.",
"description": "Uploads the content of application package.",
"operationId": "appDIdPUT",
"requestBody": {
"content": {
"application/zip": {
"schema": {
"type": "string",
"format": "binary"
}
"responses": {
"202": {
"description": "The application package has been accepted for uploading, but the processing has not been completed."
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"409": {
"$ref": "#/components/responses/409"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"components": {
"schemas": {
"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"
},
"AppD": {
"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"
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
"appDNSRule": {
"description": "Describes DNS rules the MEC application requires.",
"items": {
"$ref": "#/components/schemas/DNSRuleDescriptor"
},
"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": {
"$ref": "#/components/schemas/AppExternalCpd"
},
"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": {
"$ref": "#/components/schemas/FeatureDependency"
},
"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": {
"$ref": "#/components/schemas/FeatureDependency"
},
"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": {
"$ref": "#/components/schemas/LatencyDescriptor"
},
"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": {
"$ref": "#/components/schemas/ServiceDependency"
},