MecAppSupportApi.yaml 59.8 KB
Newer Older
1
openapi: 3.1.0
2
info:
Walter Featherstone's avatar
Walter Featherstone committed
3
  title: MEC Application Support API
4
  version: '2.2.1'
Walter Featherstone's avatar
Walter Featherstone committed
5
  description: The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI
6
7
8
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
9
10
  contact:
    email: cti_support@etsi.org
11
externalDocs:
12
13
  description: ETSI GS MEC011 Application Enablement API, V2.2.1
  url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf
14
15
16
17
18
19
20
21
tags:
- name: appTrafficRules
- name: appDnsRules
- name: appSubscriptions
- name: appConfirmTermination
- name: appConfirmReady
- name: timing
- name: callbacks
22
23
24
25
26
27
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
servers:
- url: http://127.0.0.1:8081/mec_app_support/v1
  variables: {}
- url: https://127.0.0.1:8081/mec_app_support/v1
  variables: {}
28
paths:
29
  /applications/{appInstanceId}/traffic_rules:
Walter Featherstone's avatar
Walter Featherstone committed
30
31
    get:
      tags:
32
      - appTrafficRules
Elian Kraja's avatar
Elian Kraja committed
33
      summary: 'get traffic rules'
34
35
36
37
38
39
40
41
42
43
      description: This method retrieves information about all the traffic rules associated with a MEC application instance.
      operationId: ApplicationsTrafficRules_GET
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
Walter Featherstone's avatar
Walter Featherstone committed
44
45
      responses:
        '200':
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TrafficRule'
                description: ''
                examples:
                - - trafficRuleId: TrafficRule123
                    serName: ExampleService
                    filterType: FLOW
                    priority: 1
                    trafficFilter:
                    - srcAddress:
                      - 192.168.2.0/24
                      - 192.168.3.0/24
                      dstAddress:
                      - 192.127.4.100/32
                      dstPort:
                      - '80'
                    action: FORWARD_DECAPSULATED
                    dstInterface:
piscione's avatar
piscione committed
70
71
72
73
74
75
                      - dstInterface0:
                        interfaceType: IP
                        dstIpAddress: 20.1.1.1
                      - dstInterface1:
                        interfaceType: IP
                        dstIpAddress: 20.1.1.2
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
                    state: ACTIVE
                contentMediaType: application/json
              examples:
                TrafficRules:
                  value:
                  - trafficRuleId: TrafficRule123
                    serName: ExampleService
                    filterType: FLOW
                    priority: 1
                    trafficFilter:
                    - srcAddress:
                      - 192.168.2.0/24
                      - 192.168.3.0/24
                      dstAddress:
                      - 192.127.4.100/32
                      dstPort:
                      - '80'
                    action: FORWARD_DECAPSULATED
                    dstInterface:
piscione's avatar
piscione committed
95
96
97
                      - dstInterface0:
                        interfaceType: IP
                        dstIpAddress: 20.1.1.1
98
                    state: ACTIVE
Walter Featherstone's avatar
Walter Featherstone committed
99
        '400':
100
101
102
103
104
105
106
107
108
109
110
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
111
        '403':
112
113
114
115
116
117
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Walter Featherstone's avatar
Walter Featherstone committed
118
        '404':
119
120
121
122
123
124
125
126
127
128
129
130
131
132
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/traffic_rules/{trafficRuleId}:
Walter Featherstone's avatar
Walter Featherstone committed
133
134
    get:
      tags:
135
      - appTrafficRules
Elian Kraja's avatar
Elian Kraja committed
136
      summary: 'Get traffic rule'
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
      description: This method retrieves information about all the traffic rules associated with a MEC application instance.
      operationId: ApplicationsTrafficRule_GET
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: trafficRuleId
        in: path
        description: Represents a traffic rule.
        required: true
        style: simple
        schema:
          type: string
Walter Featherstone's avatar
Walter Featherstone committed
154
155
      responses:
        '200':
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrafficRule'
              examples:
                TrafficRule:
                  value:
                    trafficRuleId: TrafficRule123
                    serName: ExampleService
                    filterType: FLOW
                    priority: 1
                    trafficFilter:
                    - srcAddress:
                      - 192.168.2.0/24
                      - 192.168.3.0/24
                      dstAddress:
                      - 192.127.4.100/32
                      dstPort:
                      - '80'
                    action: FORWARD_DECAPSULATED
                    dstInterface:
piscione's avatar
piscione committed
179
180
181
                      - dstInterface0:
                        interfaceType: IP
                        dstIpAddress: 20.1.1.1
182
                    state: ACTIVE
Walter Featherstone's avatar
Walter Featherstone committed
183
        '400':
184
185
186
187
188
189
190
191
192
193
194
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
195
        '403':
196
197
198
199
200
201
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Walter Featherstone's avatar
Walter Featherstone committed
202
        '404':
203
204
205
206
207
208
209
210
211
212
213
214
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
Walter Featherstone's avatar
Walter Featherstone committed
215
216
    put:
      tags:
217
      - appTrafficRules
Elian Kraja's avatar
Elian Kraja committed
218
      summary: 'Update traffic rule'
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
      description: This method retrieves information about all the traffic rules associated with a MEC application instance.
      operationId: ApplicationsTrafficRule_PUT
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: trafficRuleId
        in: path
        description: Represents a traffic rule.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: One or more updated attributes that are allowed to be changed
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrafficRule'
        required: true
Walter Featherstone's avatar
Walter Featherstone committed
243
244
      responses:
        '200':
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrafficRule'
              examples:
                TrafficRule:
                  value:
                    trafficRuleId: TrafficRule123
                    serName: ExampleService
                    filterType: FLOW
                    priority: 1
                    trafficFilter:
                    - srcAddress:
                      - 192.168.2.0/24
                      - 192.168.3.0/24
                      dstAddress:
                      - 192.127.4.100/32
                      dstPort:
                      - '80'
                    action: FORWARD_DECAPSULATED
                    dstInterface:
piscione's avatar
piscione committed
268
269
270
                      - dstInterface0:
                        interfaceType: IP
                        dstIpAddress: 20.1.1.1
271
                    state: ACTIVE
Walter Featherstone's avatar
Walter Featherstone committed
272
        '400':
273
274
275
276
277
278
279
280
281
282
283
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
284
        '403':
285
286
287
288
289
290
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Walter Featherstone's avatar
Walter Featherstone committed
291
        '404':
292
293
294
295
296
297
298
299
300
301
302
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
303
        '412':
304
305
306
307
308
309
310
311
312
313
314
315
316
317
          description: Precondition Failed. It is used when a condition has failed during conditional requests,  e.g. when using ETags to avoid write conflicts.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/dns_rules:
318
    get:
319
      tags:
320
      - appDnsRules
Elian Kraja's avatar
Elian Kraja committed
321
      summary: 'Get DNS rules'
322
323
324
325
326
327
328
329
330
331
      description: This method retrieves information about all the DNS rules associated with a MEC application instance.
      operationId: ApplicationsDnsRules_GET
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
332
333
      responses:
        '200':
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DnsRule'
                description: ''
                examples:
                - - dnsRuleId: DnsRule1
                    domainName: www.example.com
                    ipAddressType: IP_V4
                    ipAddress: 146.241.7.3
                    ttl: 300
                    state: ACTIVE
                  - dnsRuleId: DnsRule2
                    domainName: www.example.com
                    ipAddressType: IP_V4
                    ipAddress: 146.241.7.4
                    ttl: 300
                    state: INACTIVE
                contentMediaType: application/json
              examples:
                DnsRules:
                  value:
                  - dnsRuleId: DnsRule1
                    domainName: www.example.com
                    ipAddressType: IP_V4
                    ipAddress: 146.241.7.3
                    ttl: 300
                    state: ACTIVE
                  - dnsRuleId: DnsRule2
                    domainName: www.example.com
                    ipAddressType: IP_V4
                    ipAddress: 146.241.7.4
                    ttl: 300
                    state: INACTIVE
372
        '400':
373
374
375
376
377
378
379
380
381
382
383
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
384
        '403':
385
386
387
388
389
390
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
391
        '404':
392
393
394
395
396
397
398
399
400
401
402
403
404
405
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/dns_rules/{dnsRuleId}:
406
    get:
407
      tags:
408
      - appDnsRules
Elian Kraja's avatar
Elian Kraja committed
409
      summary: 'Get DNS rule'
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
      description: This method retrieves information about a DNS rule associated with a MEC application instance.
      operationId: ApplicationsDnsRule_GET
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: dnsRuleId
        in: path
        description: Represents a DNS rule.
        required: true
        style: simple
        schema:
          type: string
427
428
      responses:
        '200':
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DnsRule'
              examples:
                DnsRule:
                  value:
                    dnsRuleId: DnsRule1
                    domainName: www.example.com
                    ipAddressType: IP_V4
                    ipAddress: 146.241.7.3
                    ttl: 300
                    state: ACTIVE
444
        '400':
445
446
447
448
449
450
451
452
453
454
455
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
456
        '403':
457
458
459
460
461
462
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
463
        '404':
464
465
466
467
468
469
470
471
472
473
474
475
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
476
    put:
477
      tags:
478
      - appDnsRules
Elian Kraja's avatar
Elian Kraja committed
479
      summary: 'Update DNS rule'
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
      description: This method activates, de-activates or updates a traffic rule.
      operationId: ApplicationsDnsRule_PUT
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: dnsRuleId
        in: path
        description: Represents a DNS rule.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: The updated state is included in the entity body of the request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DnsRule'
        required: true
504
505
      responses:
        '200':
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DnsRule'
              examples:
                DnsRule:
                  value:
                    dnsRuleId: DnsRule1
                    domainName: www.example.com
                    ipAddressType: IP_V4
                    ipAddress: 146.241.7.3
                    ttl: 300
                    state: ACTIVE
521
        '400':
522
523
524
525
526
527
528
529
530
531
532
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
533
        '403':
534
535
536
537
538
539
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
540
        '404':
541
542
543
544
545
546
547
548
549
550
551
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
552
        '412':
553
554
555
556
557
558
559
560
561
562
563
564
565
566
          description: Precondition Failed. It is used when a condition has failed during conditional requests,  e.g. when using ETags to avoid write conflicts.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/subscriptions:
567
    get:
568
      tags:
569
      - appSubscriptions
Elian Kraja's avatar
Elian Kraja committed
570
      summary: 'Get subscriptions'
571
572
573
574
575
576
577
578
579
580
      description: The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.
      operationId: ApplicationsSubscriptions_GET
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
581
582
      responses:
        '200':
583
584
585
586
587
588
          description: Upon success, a response body containing the list of links to the requested subscriptions is returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList'
589
        '400':
590
591
592
593
594
595
596
597
598
599
600
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
601
        '403':
602
603
604
605
606
607
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
608
        '404':
609
610
611
612
613
614
615
616
617
618
619
620
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
621
    post:
622
      tags:
623
      - appSubscriptions
Elian Kraja's avatar
Elian Kraja committed
624
      summary: 'Create subscription'
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
      description: The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.
      operationId: ApplicationsSubscriptions_POST
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppTerminationNotificationSubscription'
        required: true
642
      responses:
643
        '201':
644
645
646
647
648
649
650
651
652
653
654
655
656
657
          description: Entity body in the request contains a subscription to the  MEC service availability notifications that is to be created.
          headers:
            location:
              description: The resource URI of the created resource
              content:
                text/plain:
                  schema:
                    type: string
                    description: The resource URI of the created resource
                    contentMediaType: text/plain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppTerminationNotificationSubscription'
658
        '400':
659
660
661
662
663
664
665
666
667
668
669
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
670
        '403':
671
672
673
674
675
676
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
677
        '404':
678
679
680
681
682
683
684
685
686
687
688
689
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
690
691
692
693
694
695
696
697
698
699
700

      callbacks:
        AppTerminationNotification:
          '{$request.body#/callbackUri}':
            post:
              description: Represents the information that the MEP notifies the
               subscribed application instance about the corresponding 
               application instance termination/stop'
              operationId: AppTerminationNotification_POST
              tags:
              - callbacks
Elian Kraja's avatar
Elian Kraja committed
701
              summary: 'Create callback'
702
703
704
705
706
              requestBody:
                $ref: '#/components/requestBodies/AppTerminationNotification'      
              responses:
                '200':
                  description: Expected responses from callback consumer, if it accepts the callback  
707
708
    parameters: []
  /applications/{appInstanceId}/subscriptions/{subscriptionId}:
709
    get:
710
      tags:
711
      - appSubscriptions
Elian Kraja's avatar
Elian Kraja committed
712
      summary: 'Get subscription'
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
      description: The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.
      operationId: ApplicationsSubscription_GET
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: subscriptionId
        in: path
        description: Represents a subscription to the notifications from the MEC platform.
        required: true
        style: simple
        schema:
          type: string
730
731
      responses:
        '200':
732
733
734
735
736
737
          description: Upon success, a response body containing the requested subscription is returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppTerminationNotificationSubscription'
738
        '400':
739
740
741
742
743
744
745
746
747
748
749
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
750
        '403':
751
752
753
754
755
756
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
757
        '404':
758
759
760
761
762
763
764
765
766
767
768
769
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
770
    delete:
771
      tags:
772
      - appSubscriptions
Elian Kraja's avatar
Elian Kraja committed
773
      summary: 'delete subscription'
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
      description: This method deletes a mecAppSuptApiSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure.
      operationId: ApplicationsSubscription_DELETE
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: subscriptionId
        in: path
        description: Represents a subscription to the notifications from the MEC platform.
        required: true
        style: simple
        schema:
          type: string
791
792
793
      responses:
        '204':
          description: No Content
794
795
          headers: {}
          content: {}
796
        '403':
797
798
799
800
801
802
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
803
        '404':
804
805
806
807
808
809
810
811
812
813
814
815
816
817
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/confirm_termination:
818
    post:
819
      tags:
820
      - appConfirmTermination
Elian Kraja's avatar
Elian Kraja committed
821
      summary: 'Confirm termination'
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
      description: This method is used to confirm the application level termination  of an application instance.
      operationId: ApplicationsConfirmTermination_POST
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppTerminationConfirmation'
        required: false
839
      responses:
Walter Featherstone's avatar
Walter Featherstone committed
840
841
        '204':
          description: No Content
842
843
          headers: {}
          content: {}
Walter Featherstone's avatar
Walter Featherstone committed
844
        '401':
845
846
847
848
849
850
851
852
853
854
855
          description: Unauthorized. It is used when the client did not submit the appropriate credentials.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
856
        '403':
857
858
859
860
861
862
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
863
        '404':
864
865
866
867
868
869
870
871
872
873
874
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
875
        '409':
876
877
878
879
880
881
882
883
884
885
886
          description: Conflict. The operation cannot be executed currently, due to a conflict with  the state of the resource. Typically, this is because the application  instance resource is in NOT_INSTANTIATED state.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
887
        '429':
888
889
890
891
892
893
894
895
896
897
898
899
900
901
          description: Too Many Requests. It is used when a rate limiter has triggered.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/confirm_ready:
Walter Featherstone's avatar
Walter Featherstone committed
902
    post:
903
      tags:
904
      - appConfirmReady
Elian Kraja's avatar
Elian Kraja committed
905
      summary: 'Confirm ready'
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
      description: 'This method may be used by the MEC application instance to notify the MEC platform that it is up and running. '
      operationId: ApplicationsConfirmReady_POST
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppReadyConfirmation'
        required: false
923
      responses:
Walter Featherstone's avatar
Walter Featherstone committed
924
925
        '204':
          description: No Content
926
927
          headers: {}
          content: {}
Walter Featherstone's avatar
Walter Featherstone committed
928
        '401':
929
930
931
932
933
934
935
936
937
938
939
          description: Unauthorized. It is used when the client did not submit the appropriate credentials.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
940
        '403':
941
942
943
944
945
946
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
947
        '404':
948
949
950
951
952
953
954
955
956
957
958
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
959
        '409':
960
961
962
963
964
965
966
967
968
969
970
          description: Conflict. The operation cannot be executed currently, due to a conflict with  the state of the resource. Typically, this is because the application  instance resource is in NOT_INSTANTIATED state.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
Walter Featherstone's avatar
Walter Featherstone committed
971
        '429':
972
973
974
975
976
977
978
979
980
981
982
983
984
985
          description: Too Many Requests. It is used when a rate limiter has triggered.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /timing/timing_caps:
986
    get:
987
      tags:
988
      - timing
Elian Kraja's avatar
Elian Kraja committed
989
      summary: 'Retrieve timing capabilities'
990
991
992
      description: This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query
      operationId: TimingCaps_GET
      parameters: []
993
994
      responses:
        '200':
995
996
997
998
999
1000
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimingCaps'
1001
        '400':
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
1013
        '403':
1014
1015
1016
1017
1018
1019
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
1020
        '404':
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /timing/current_time:
1035
    get:
1036
      tags:
1037
      - timing
Elian Kraja's avatar
Elian Kraja committed
1038
      summary: 'Retrieve current time'
1039
1040
1041
      description: This method retrieves the information of the platform's current time which corresponds to the get platform time procedure
      operationId: TimingCurrentTime_GET
      parameters: []
1042
1043
      responses:
        '200':
1044
1045
1046
1047
1048
1049
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentTime'
1050
        '400':
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
1062
        '403':
1063
1064
1065
1066
1067
1068
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
1069
        '404':
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
1083
1084
components:
  schemas:
Walter Featherstone's avatar
Walter Featherstone committed
1085
    AppReadyConfirmation:
1086
      title: AppReadyConfirmation
Walter Featherstone's avatar
Walter Featherstone committed
1087
      required:
1088
1089
      - indication
      type: object
Walter Featherstone's avatar
Walter Featherstone committed
1090
1091
      properties:
        indication:
1092
1093
1094
1095
1096
1097
          const: READY
          type: string
          description: Indication about the MEC application instance.
          examples:
          - READY
      description: This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running.
Walter Featherstone's avatar
Walter Featherstone committed
1098
    AppTerminationConfirmation:
1099
      title: AppTerminationConfirmation
Walter Featherstone's avatar
Walter Featherstone committed
1100
      required:
1101
1102
      - operationAction
      type: object
Walter Featherstone's avatar
Walter Featherstone committed
1103
1104
1105
      properties:
        operationAction:
          $ref: '#/components/schemas/OperationActionType'
1106
      description: This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop.
Walter Featherstone's avatar
Walter Featherstone committed
1107
    AppTerminationNotification.Links:
1108
      title: AppTerminationNotification.Links
Walter Featherstone's avatar
Walter Featherstone committed
1109
      required:
1110
1111
      - subscription
      type: object
Walter Featherstone's avatar
Walter Featherstone committed
1112
1113
1114
1115
1116
      properties:
        subscription:
          $ref: '#/components/schemas/LinkType'
        confirmTermination:
          $ref: '#/components/schemas/LinkType.ConfirmTermination'
1117
      description: Object containing hyperlinks related to the resource.
1118
    AppTerminationNotification:
1119
      title: AppTerminationNotification
1120
      required:
1121
1122
1123
1124
1125
      - notificationType
      - operationAction
      - maxGracefulTimeout
      - _links
      type: object
1126
1127
      properties:
        notificationType:
1128
1129
1130
1131
          type: string
          description: Shall be set to AppTerminationNotification.
          examples:
          - AppTerminationNotification
Walter Featherstone's avatar
Walter Featherstone committed
1132
1133
        operationAction:
          $ref: '#/components/schemas/OperationActionType'
1134
        maxGracefulTimeout:
1135
1136
1137
1138
1139
          type: integer
          description: Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.
          contentEncoding: int32
          examples:
          - 10
1140
        _links:
Walter Featherstone's avatar
Walter Featherstone committed
1141
          $ref: '#/components/schemas/AppTerminationNotification.Links'
1142
      description: This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop.
1143
    AppTerminationNotificationSubscription:
1144
      title: AppTerminationNotificationSubscription
1145
      required:
1146
1147
1148
1149
1150
      - subscriptionType
      - callbackReference
      - _links
      - appInstanceId
      type: object
1151
1152
      properties:
        subscriptionType:
1153
1154
1155
1156
          type: string
          description: Shall be set to AppTerminationNotificationSubscription.
          examples:
          - AppTerminationNotificationSubscription
1157
        callbackReference:
1158
1159
          type: string
          description: URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response.
1160
1161
1162
        _links:
          $ref: '#/components/schemas/Self'
        appInstanceId:
1163
1164
1165
1166
1167
          type: string
          description: It is used as the filtering criterion for the subscribed events.
          examples:
          - ID1
      description: This type represents the information that the MEC platform notifies the subscribed application instance about  the corresponding application instance termination/stop.
1168
    CurrentTime:
1169
      title: CurrentTime
1170
      required:
1171
1172
1173
1174
      - seconds
      - nanoSeconds
      - timeSourceStatus
      type: object
1175
1176
1177
      properties:
        seconds:
          type: integer
1178
1179
1180
1181
          description: The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
          contentEncoding: int32
          examples:
          - 1577836800
1182
1183
        nanoSeconds:
          type: integer
1184
1185
1186
1187
          description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
          contentEncoding: int32
          examples:
          - 0
1188
        timeSourceStatus:
1189
1190
          $ref: '#/components/schemas/TimeSourceStatus'
      description: This type represents the information provided by the MEC platform in response to the Get Platform Time Request message.
1191
    DestinationInterface.InterfaceType:
1192
      title: DestinationInterface.InterfaceType
1193
      enum:
1194
1195
1196
      - TUNNEL
      - MAC
      - IP
1197
      type: string
1198
1199
1200
      description: Type of the interface
      examples:
      - TUNNEL
1201
    DestinationInterface:
1202
      title: DestinationInterface
1203
      required:
1204
1205
      - interfaceType
      type: object
1206
1207
1208
1209
1210
1211
      properties:
        interfaceType:
          $ref: '#/components/schemas/DestinationInterface.InterfaceType'
        tunnelInfo:
          $ref: '#/components/schemas/TunnelInfo'
        srcMacAddress:
1212
1213
1214
1215
          type: string
          description: Source address identifies the MAC address of the interface
          examples:
          - 02-00-00-00-00-00
1216
        dstMacAddress:
1217
1218
1219
1220
          type: string
          description: Source address identifies the MAC address of the interface
          examples:
          - 02-00-00-00-00-00
1221
        dstIpAddress:
1222
1223
1224
1225
1226
          type: string
          description: IP address of the remote destination
          examples:
          - 192.0.2.0
      description: This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided.
1227
    DnsRule.IpAddressType:
1228
      title: DnsRule.IpAddressType
1229
      enum:
1230
1231
      - IP_V6
      - IP_V4
1232
      type: string
1233
1234
1235
1236
1237
      description: IP address type
      examples:
      - IP_V6
    DnsRule.State:
      title: DnsRule.State
1238
      enum:
1239
1240
1241
1242
1243
1244
      - ACTIVE
      - INACTIVE
      type: string
      description: DNS rule state. This attribute may be updated using HTTP PUT method
      examples:
      - ACTIVE
1245
    DnsRule:
1246
      title: DnsRule
1247
      required:
1248
1249
1250
1251
1252
1253
      - dnsRuleId
      - domainName
      - ipAddressType
      - ipAddress
      - state
      type: object
1254
1255
      properties:
        dnsRuleId:
1256
1257
1258
1259
          type: string
          description: Identifies the DNS Rule
          examples:
          - dnsRule1
1260
        domainName:
1261
1262
1263
1264
          type: string
          description: FQDN resolved by the DNS rule
          examples:
          - www.example.com
1265
1266
1267
        ipAddressType:
          $ref: '#/components/schemas/DnsRule.IpAddressType'
        ipAddress:
1268
1269
1270
1271
          type: string
          description: IP address associated with the FQDN resolved by the DNS rule
          examples:
          - 192.0.2.0
1272
        ttl:
1273
1274
1275
          type: integer
          description: Time to live value
          contentEncoding: int32
1276
1277
        state:
          $ref: '#/components/schemas/DnsRule.State'
1278
      description: This type represents the general information of a DNS rule.
Walter Featherstone's avatar
Walter Featherstone committed
1279
    LinkType:
1280
      title: LinkType
1281
1282
      type: object
      properties:
1283
1284
1285
1286
1287
1288
        href:
          type: string
          description: URI referring to a resource
          examples:
          - /mecAppSuptApi/example
      description: This type represents a type of link and may be referenced from data structures
Walter Featherstone's avatar
Walter Featherstone committed
1289
    LinkType.ConfirmTermination:
1290
      title: LinkType.ConfirmTermination
1291
1292
      type: object
      properties:
1293
1294
1295
1296
1297
1298
        href:
          type: string
          description: URI referring to a resource
          examples:
          - /mecAppSuptApi/example
      description: Link to the task resource where to confirm termination in case the  application is ready to be terminated before expiry of the timeout.
Walter Featherstone's avatar
Walter Featherstone committed
1299
    MecAppSuptApiSubscriptionLinkList.Links:
1300
      title: MecAppSuptApiSubscriptionLinkList.Links
1301
      required:
1302
1303
      - self
      type: object
1304
1305
1306
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
Walter Featherstone's avatar
Walter Featherstone committed
1307
        subscriptions:
1308
1309
          type: array
          items:
Walter Featherstone's avatar
Walter Featherstone committed
1310
            $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription'
1311
1312
          description: The MEC application instance's subscriptions
      description: Self-referring URI.
Walter Featherstone's avatar
Walter Featherstone committed
1313
    MecAppSuptApiSubscriptionLinkList.Subscription:
1314
      title: MecAppSuptApiSubscriptionLinkList.Subscription
1315
      required:
1316
1317
1318
      - href
      - rel
      type: object
1319
1320
      properties:
        href:
1321
1322
1323
1324
          type: string
          description: URI referring to a resource
          examples:
          - /mecAppSuptApi/example
1325
1326
        rel:
          type: string
1327
1328
          description: The values shall be set to AppTerminationNotificationSubscription.
      description: A link to a subscription.
Walter Featherstone's avatar
Walter Featherstone committed
1329
    MecAppSuptApiSubscriptionLinkList:
1330
      title: MecAppSuptApiSubscriptionLinkList
1331
      required:
1332
1333
      - _links
      type: object
1334
1335
      properties:
        _links:
Walter Featherstone's avatar
Walter Featherstone committed
1336
          $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links'
1337
      description: This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions.
Walter Featherstone's avatar
Walter Featherstone committed
1338
    OperationActionType:
1339
      title: OperationActionType
Walter Featherstone's avatar
Walter Featherstone committed
1340
      enum:
1341
1342
1343
1344
1345
1346
      - STOPPING
      - TERMINATING
      type: string
      description: Operation that is being performed on the MEC application instance.
      examples:
      - TERMINATING
1347
    ProblemDetails:
1348
      title: ProblemDetails
1349
1350
1351
      type: object
      properties:
        type:
1352
1353
          type: string
          description: