MecAppSupportApi.yaml 47.4 KB
Newer Older
1
openapi: 3.0.2
2
servers:
Walter Featherstone's avatar
Walter Featherstone committed
3 4
  - url: 'http://127.0.0.1:8081/mec_app_support/v1'
  - url: 'https://127.0.0.1:8081/mec_app_support/v1'
5
info:
Walter Featherstone's avatar
Walter Featherstone committed
6 7 8
  title: MEC Application Support API
  version: 2.1.1
  description: The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI
9
  license:
ETSI CTI's avatar
ETSI CTI committed
10 11
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
12 13
  contact:
    email: cti_support@etsi.org
14
externalDocs:
Walter Featherstone's avatar
Walter Featherstone committed
15
  description: 'ETSI GS MEC011 Application Enablement API, V2.1.1'
16
  url: >-
Walter Featherstone's avatar
Walter Featherstone committed
17
    https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf
18
tags:
Walter Featherstone's avatar
Walter Featherstone committed
19 20 21 22 23
  - name: appTrafficRules
  - name: appDnsRules
  - name: appSubscriptions
  - name: appConfirmTermination
  - name: appConfirmReady
24 25
  - name: timing
  - name: callbacks
26
paths:
Walter Featherstone's avatar
Walter Featherstone committed
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
  '/applications/{appInstanceId}/traffic_rules':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
    get:
      description: >-
        This method retrieves information about all the traffic rules associated
        with a MEC application instance.
      operationId: ApplicationsTrafficRules_GET
      tags:
        - appTrafficRules
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRules.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
  '/applications/{appInstanceId}/traffic_rules/{trafficRuleId}':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.TrafficRuleId'
    get:
      description: >-
        This method retrieves information about all the traffic rules associated
        with a MEC application instance.
      operationId: ApplicationsTrafficRule_GET
      tags:
        - appTrafficRules
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRule.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
    put:
      description: >-
        This method retrieves information about all the traffic rules associated
        with a MEC application instance.
      operationId: ApplicationsTrafficRule_PUT
      tags:
        - appTrafficRules
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRule.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
        '412':
          $ref: '#/components/responses/Error.412'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationsTrafficRule'
86
  '/applications/{appInstanceId}/dns_rules':
87
    parameters:
88
      - $ref: '#/components/parameters/Path.AppInstanceId'
89
    get:
90 91
      description: >-
        This method retrieves information about all the DNS rules associated
Walter Featherstone's avatar
Walter Featherstone committed
92
        with a MEC application instance.
93
      operationId: ApplicationsDnsRules_GET
94
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
95
        - appDnsRules
96 97
      responses:
        '200':
98
          $ref: '#/components/responses/ApplicationsDnsRules.200'
99
        '400':
100
          $ref: '#/components/responses/Error.400'
101
        '403':
102
          $ref: '#/components/responses/Error.403'
103
        '404':
104
          $ref: '#/components/responses/Error.404'
105
  '/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
106
    parameters:
107 108
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.DnsRuleId'
109
    get:
110 111
      description: >-
        This method retrieves information about a DNS rule associated with a
Walter Featherstone's avatar
Walter Featherstone committed
112
        MEC application instance.
113
      operationId: ApplicationsDnsRule_GET
114
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
115
        - appDnsRules
116 117
      responses:
        '200':
118
          $ref: '#/components/responses/ApplicationsDnsRule.200'
119
        '400':
120
          $ref: '#/components/responses/Error.400'
121
        '403':
122
          $ref: '#/components/responses/Error.403'
123
        '404':
124
          $ref: '#/components/responses/Error.404'
125 126
    put:
      description: 'This method activates, de-activates or updates a traffic rule.'
127
      operationId: ApplicationsDnsRule_PUT
128
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
129
        - appDnsRules
130 131
      responses:
        '200':
132
          $ref: '#/components/responses/ApplicationsDnsRule.200'
133
        '400':
134
          $ref: '#/components/responses/Error.400'
135
        '403':
136
          $ref: '#/components/responses/Error.403'
137
        '404':
138
          $ref: '#/components/responses/Error.404'
139
        '412':
140 141 142
          $ref: '#/components/responses/Error.412'
      requestBody:
          $ref: '#/components/requestBodies/ApplicationsDnsRule'
143
  '/applications/{appInstanceId}/subscriptions':
144
    parameters:
145
      - $ref: '#/components/parameters/Path.AppInstanceId'
146
    get:
147 148 149 150 151
      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
152
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
153
        - appSubscriptions
154 155
      responses:
        '200':
156
          $ref: '#/components/responses/ApplicationsSubscriptions.200'
157
        '400':
158
          $ref: '#/components/responses/Error.400'
159
        '403':
160
          $ref: '#/components/responses/Error.403'
161
        '404':
162
          $ref: '#/components/responses/Error.404'
163
    post:
164 165
      description: >-
        The POST method may be used to create a new subscription. One example
Walter Featherstone's avatar
Walter Featherstone committed
166
        use case is to create a new subscription to the MEC service
167 168 169
        availability notifications. Upon success, the response contains entity
        body describing the created subscription.
      operationId: ApplicationsSubscriptions_POST
170
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
171
        - appSubscriptions
172
      responses:
173
        '201':
174
          $ref: '#/components/responses/ApplicationsSubscriptions.201'
175
        '400':
176
          $ref: '#/components/responses/Error.400'
177
        '403':
178
          $ref: '#/components/responses/Error.403'
179
        '404':
180 181 182 183 184 185
          $ref: '#/components/responses/Error.404'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationsSubscriptions'
      callbacks:
        appTerminationNotification:
          $ref: '#/components/callbacks/AppTerminationNotification'
Walter Featherstone's avatar
Walter Featherstone committed
186
  '/applications/{appInstanceId}/subscriptions/{subscriptionId}':
187
    parameters:
188 189
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.SubscriptionId'
190
    get:
191 192 193 194
      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.
195
      operationId: ApplicationsSubscription_GET
196
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
197
        - appSubscriptions
198 199
      responses:
        '200':
200
          $ref: '#/components/responses/ApplicationsSubscription.200'
201
        '400':
202
          $ref: '#/components/responses/Error.400'
203
        '403':
204
          $ref: '#/components/responses/Error.403'
205
        '404':
206
          $ref: '#/components/responses/Error.404'
207
    delete:
208
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
209
        This method deletes a mecAppSuptApiSubscription. This method is typically used
210 211
        in "Unsubscribing from service availability event notifications"
        procedure.
212
      operationId: ApplicationsSubscription_DELETE
213
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
214
        - appSubscriptions
215 216 217
      responses:
        '204':
          description: No Content
218
        '403':
219
          $ref: '#/components/responses/Error.403'
220
        '404':
221
          $ref: '#/components/responses/Error.404'
Walter Featherstone's avatar
Walter Featherstone committed
222
  '/applications/{appInstanceId}/confirm_termination':
223
    parameters:
224
      - $ref: '#/components/parameters/Path.AppInstanceId'
225
    post:
226
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
227 228 229
        This method is used to confirm the application level termination 
        of an application instance.
      operationId: ApplicationsConfirmTermination_POST
230
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
231
        - appConfirmTermination
232
      responses:
Walter Featherstone's avatar
Walter Featherstone committed
233 234 235 236 237 238
        '204':
          description: No Content
			  
												  
        '401':
          $ref: '#/components/responses/Error.401'
239
        '403':
240
          $ref: '#/components/responses/Error.403'
241
        '404':
242
          $ref: '#/components/responses/Error.404'
Walter Featherstone's avatar
Walter Featherstone committed
243 244 245 246
        '409':
          $ref: '#/components/responses/Error.409'
        '429':
          $ref: '#/components/responses/Error.429'
247
      requestBody:
Walter Featherstone's avatar
Walter Featherstone committed
248 249
        $ref: '#/components/requestBodies/ApplicationsConfirmTermination'
  '/applications/{appInstanceId}/confirm_ready':
250
    parameters:
Walter Featherstone's avatar
Walter Featherstone committed
251 252
      - $ref: '#/components/parameters/Path.AppInstanceId'
    post:
253
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
254 255
       This method may be used by the MEC application instance to notify the MEC platform that it is up and running. 
      operationId: ApplicationsConfirmReady_POST
256
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
257
        - appConfirmReady
258
      responses:
Walter Featherstone's avatar
Walter Featherstone committed
259 260 261 262
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Error.401'
263
        '403':
264
          $ref: '#/components/responses/Error.403'
265
        '404':
266
          $ref: '#/components/responses/Error.404'
Walter Featherstone's avatar
Walter Featherstone committed
267 268 269 270
        '409':
          $ref: '#/components/responses/Error.409'
        '429':
          $ref: '#/components/responses/Error.429'
271
      requestBody:
Walter Featherstone's avatar
Walter Featherstone committed
272
        $ref: '#/components/requestBodies/ApplicationsConfirmReady'
273
  '/timing/timing_caps':
274
    get:
275 276 277 278
      description: >-
        This method retrieves the information of the platform's timing
        capabilities which corresponds to the timing capabilities query
      operationId: TimingCaps_GET
279 280
      tags:
        - timing
281 282
      responses:
        '200':
283
          $ref: '#/components/responses/TimingCaps.200'
284
        '400':
285
          $ref: '#/components/responses/Error.400'
286
        '403':
287
          $ref: '#/components/responses/Error.403'
288
        '404':
289
          $ref: '#/components/responses/Error.404'
Walter Featherstone's avatar
Walter Featherstone committed
290
  '/timing/current_time':
291
    get:
292
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
293 294 295
        This method retrieves the information of the platform's current time
        which corresponds to the get platform time procedure
      operationId: TimingCurrentTime_GET
296
      tags:
Walter Featherstone's avatar
Walter Featherstone committed
297
        - timing
298 299
      responses:
        '200':
Walter Featherstone's avatar
Walter Featherstone committed
300
          $ref: '#/components/responses/TimingCurrentTime.200'
301
        '400':
302
          $ref: '#/components/responses/Error.400'
303
        '403':
304
          $ref: '#/components/responses/Error.403'
305
        '404':
306 307 308 309 310
          $ref: '#/components/responses/Error.404'
components:
  schemas:
    Empty:
      description: Empty schema
Walter Featherstone's avatar
Walter Featherstone committed
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
    AppReadyConfirmation:
      description: >-
        This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running.
      type: object
      required:
        - indication
      properties:
        indication:
          $ref: '#/components/schemas/ReadyIndicationType'
    AppTerminationConfirmation:
      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.
      type: object
      required:
        - operationAction
      properties:
        operationAction:
          $ref: '#/components/schemas/OperationActionType'
    AppTerminationNotification.Links:
      description: >-
        Object containing hyperlinks related to the resource.
      type: object
      required:
        - subscription
      properties:
        subscription:
          $ref: '#/components/schemas/LinkType'
        confirmTermination:
          $ref: '#/components/schemas/LinkType.ConfirmTermination'
340 341 342 343
    AppTerminationNotification.MaxGracefulTimeout:
      description: >-
        Maximum timeout value in seconds for graceful termination or graceful
        stop of an application instance.
344
      type: integer
345 346 347 348 349
      format: uint32
      example: 10
    AppTerminationNotification.NotificationType:
      description: Shall be set to AppTerminationNotification.
      type: string
350
      example: 'AppTerminationNotification'
351 352
    AppTerminationNotification:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
353
        This type represents the information that the MEC platform
354 355 356 357 358
        notifies the subscribed application instance about  the corresponding
        application instance termination/stop.
      type: object
      required:
        - notificationType
Walter Featherstone's avatar
Walter Featherstone committed
359
        - operationAction
360 361 362 363 364
        - maxGracefulTimeout
        - _links
      properties:
        notificationType:
          $ref: '#/components/schemas/AppTerminationNotification.NotificationType'
Walter Featherstone's avatar
Walter Featherstone committed
365 366
        operationAction:
          $ref: '#/components/schemas/OperationActionType'
367 368 369
        maxGracefulTimeout:
          $ref: '#/components/schemas/AppTerminationNotification.MaxGracefulTimeout'
        _links:
Walter Featherstone's avatar
Walter Featherstone committed
370
          $ref: '#/components/schemas/AppTerminationNotification.Links'
371 372 373
    AppTerminationNotificationSubscription.AppInstanceId:
      description: It is used as the filtering criterion for the subscribed events.
      type: string
374
      example: 'ID1'
375 376
    AppTerminationNotificationSubscription.CallbackReference:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
377 378
        URI selected by the MEC application instance to receive
        notifications on the subscribed MEC application instance
379 380 381 382 383 384
        management information. This shall be included in both the request and
        the response.
      type: string
      format: uri
    AppTerminationNotificationSubscription:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
385
        This type represents the information that the MEC platform
386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408
        notifies the subscribed application instance about  the corresponding
        application instance termination/stop.
      type: object
      required:
        - subscriptionType
        - callbackReference
        - _links
        - appInstanceId
      properties:
        subscriptionType:
          $ref: >-
            #/components/schemas/AppTerminationNotificationSubscription.SubscriptionType
        callbackReference:
          $ref: >-
            #/components/schemas/AppTerminationNotificationSubscription.CallbackReference
        _links:
          $ref: '#/components/schemas/Self'
        appInstanceId:
          $ref: >-
            #/components/schemas/AppTerminationNotificationSubscription.AppInstanceId
    AppTerminationNotificationSubscription.SubscriptionType:
      description: Shall be set to AppTerminationNotificationSubscription.
      type: string
409
      example: 'AppTerminationNotificationSubscription'
410 411
    CurrentTime:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
412
        This type represents the information provided by the MEC
413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442
        platform in response to the Get Platform Time Request message.
      type: object
      required:
        - nanoSeconds
        - seconds
        - timeSourceStatus
      properties:
        seconds:
          type: integer
          format: uint32
          description: >-
            The seconds part of the time. Time is defined as Unix-time since
            January 1, 1970, 00:00:00 UTC
          example: 1577836800
        nanoSeconds:
          type: integer
          format: uint32
          description: >-
            The nanoseconds part of the time. Time is defined as Unix-time since
            January 1, 1970, 00:00:00 UTC
          example: 0
        timeSourceStatus:
          type: string
          enum:
            - TRACEABLE
            - NONTRACEABLE
          description: >-
            Platform Time Source status. 1 = TRACEABLE - time source is locked
            to the UTC time source. 2 = NONTRACEABLE - time source is not locked
            to the UTC time source
443
          example: 'TRACEABLE'
444 445 446 447 448 449 450
    DestinationInterface.InterfaceType:
      description: Type of the interface
      type: string
      enum:
        - TUNNEL
        - MAC
        - IP
451
      example: 'TUNNEL'
452 453 454
    DestinationInterface.IpAddress:
      description: IP address of the remote destination
      type: string
455
      example: '192.0.2.0'
456 457 458
    DestinationInterface.MacAddress:
      description: Source address identifies the MAC address of the interface
      type: string
459
      example: '02-00-00-00-00-00'
460
    DestinationInterface:
Walter Featherstone's avatar
Walter Featherstone committed
461
      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.
462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478
      type: object
      required:
        - interfaceType
      properties:
        interfaceType:
          $ref: '#/components/schemas/DestinationInterface.InterfaceType'
        tunnelInfo:
          $ref: '#/components/schemas/TunnelInfo'
        srcMacAddress:
          $ref: '#/components/schemas/DestinationInterface.MacAddress'
        dstMacAddress:
          $ref: '#/components/schemas/DestinationInterface.MacAddress'
        dstIpAddress:
          $ref: '#/components/schemas/DestinationInterface.IpAddress'
    DnsRule.DomainName:
      description: FQDN resolved by the DNS rule
      type: string
479
      example: 'www.example.com'
480 481 482
    DnsRule.Id:
      description: Identifies the DNS Rule
      type: string
483
      example: 'dnsRule1'
484 485 486
    DnsRule.IpAddress:
      description: IP address associated with the FQDN resolved by the DNS rule
      type: string
487
      example: '192.0.2.0'
488 489 490 491 492 493
    DnsRule.IpAddressType:
      description: IP address type
      type: string
      enum:
        - IP_V6
        - IP_V4
494
      example: 'IP_V6'
495
    DnsRule.State:
Walter Featherstone's avatar
Walter Featherstone committed
496
      description: DNS rule state. This attribute may be updated using HTTP PUT method
497 498 499 500
      type: string
      enum:
        - ACTIVE
        - INACTIVE
501
      example: 'ACTIVE'
502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528
    DnsRule.Ttl:
      description: Time to live value
      type: integer
      format: uint32
      example: '?'
    DnsRule:
      description: This type represents the general information of a DNS rule.
      type: object
      required:
        - dnsRuleId
        - domainName
        - ipAddressType
        - ipAddress
        - state
      properties:
        dnsRuleId:
          $ref: '#/components/schemas/DnsRule.Id'
        domainName:
          $ref: '#/components/schemas/DnsRule.DomainName'
        ipAddressType:
          $ref: '#/components/schemas/DnsRule.IpAddressType'
        ipAddress:
          $ref: '#/components/schemas/DnsRule.IpAddress'
        ttl:
          $ref: '#/components/schemas/DnsRule.Ttl'
        state:
          $ref: '#/components/schemas/DnsRule.State'
Walter Featherstone's avatar
Walter Featherstone committed
529 530
    LinkType:
      description: This type represents a type of link and may be referenced from data structures
531 532
      type: object
      properties:
Walter Featherstone's avatar
Walter Featherstone committed
533 534 535
        href: 
          $ref: '#/components/schemas/Href'
    LinkType.ConfirmTermination:
536
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
537 538
        Link to the task resource where to confirm termination in case the 
        application is ready to be terminated before expiry of the timeout.
539 540 541 542 543 544 545 546
      type: object
      properties:
        href: 
          $ref: '#/components/schemas/Href'
    Href:
      description: URI referring to a resource
      type: string
      format: uri
Walter Featherstone's avatar
Walter Featherstone committed
547 548
      example: '/mecAppSuptApi/example'
    MecAppSuptApiSubscriptionLinkList.Links:
549 550 551 552 553 554 555
      description: Self-referring URI.
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
Walter Featherstone's avatar
Walter Featherstone committed
556 557
        subscriptions:
          description: The MEC application instance's subscriptions
558 559
          type: array
          items:
Walter Featherstone's avatar
Walter Featherstone committed
560 561
            $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription'
    MecAppSuptApiSubscriptionLinkList.Subscription:
562 563 564 565 566 567 568 569 570 571
      description: A link to a subscription.
      type: object
      required:
        - href
        - rel
      properties:
        href:
          $ref: '#/components/schemas/Href'
        rel:
          description: >-
Walter Featherstone's avatar
Walter Featherstone committed
572
            The values shall be set to AppTerminationNotificationSubscription.
573
          type: string
Walter Featherstone's avatar
Walter Featherstone committed
574
    MecAppSuptApiSubscriptionLinkList:
575 576
      description: >-
        This type represents a list of links related to currently existing
Walter Featherstone's avatar
Walter Featherstone committed
577
        subscriptions for a MEC application instance. This information
578 579 580 581 582 583
        is returned when sending a request to receive current subscriptions.
      type: object
      required:
        - _links
      properties:
        _links:
Walter Featherstone's avatar
Walter Featherstone committed
584 585 586 587 588 589 590 591
          $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links'
    OperationActionType:
      description: Operation that is being performed on the MEC application instance.
      type: string
      enum:
        - STOPPING
        - TERMINATING
      example: 'TERMINATING'
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 619 620 621 622 623 624
    ProblemDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Problem.type'
        title:
          $ref: '#/components/schemas/Problem.title'
        status:
          $ref: '#/components/schemas/Problem.status'
        detail:
          $ref: '#/components/schemas/Problem.detail'
        instance:
          $ref: '#/components/schemas/Problem.instance'
    Problem.detail:
      type: string
      description: A human-readable explanation specific to this occurrence of the problem
    Problem.instance:
      type: string
      format: uri
      description: A URI reference that identifies the specific occurrence of the problem
    Problem.status:
      type: integer
      format: uint32
      description: The HTTP status code for this occurrence of the problem
    Problem.title:
      type: string
      description: 'A short, human-readable summary of the problem type'
    Problem.type:
      type: string
      format: uri
      description: >-
        A URI reference according to IETF RFC 3986 that identifies the problem
        type
Walter Featherstone's avatar
Walter Featherstone committed
625 626
    ReadyIndicationType:
      description: Indication about the MEC application instance.
627 628
      type: string
      enum:
Walter Featherstone's avatar
Walter Featherstone committed
629 630
        - READY
      example: 'READY'
631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651
    Self:
      description: Self-referring URI.
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
      readOnly: true
    TimingCaps.NtpServers.AuthenticationKeyNum:
      description: Authentication key number
      type: integer
      format: uint32
      example: 1
    TimingCaps.NtpServers.AuthenticationOption:
      description: NTP authentication option
      type: string
      enum:
        - NONE
        - SYMMETRIC_KEY
        - AUTO_KEY
652
      example: 'NONE'
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
    TimingCaps.NtpServers.DelayReqMaxRate:
      description: Acceptable maximum rate of the Delay_Req messages in packets per second
      type: integer
      format: uint32
      example: 10
    TimingCaps.NtpServers.LocalPriority:
      description: NTP server local priority
      type: integer
      format: uint32
      example: 1
    TimingCaps.NtpServers.MaxPollingInterval:
      description: >-
        Maximum poll interval for NTP messages, in seconds as a power of two.
        Range 3...17
      type: integer
      format: uint32
      example: 17
    TimingCaps.NtpServers.MinPollingInterval:
      description: >-
        Minimum poll interval for NTP messages, in seconds as a power of two.
        Range 3...17
      type: integer
      format: uint32
      example: 3
    TimingCaps.NtpServers.NtpServerAddr:
      description: NTP server address
      type: string
680
      example: '192.0.2.0'
681 682 683 684 685 686
    TimingCaps.NtpServers.NtpServerAddrType:
      description: Address type of NTP server
      type: string
      enum:
        - IP_ADDRESS
        - DNS_NAME
687
      example: 'IP_ADDRESS'
688
    TimingCaps.NtpServers_PtpMasterIpAddress:
689 690
      description: PTP Master IP Address
      type: string
691
      example: '192.0.2.0'
692
    TimingCaps.NtpServers_PtpMasterLocalPriority:
693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722
      description: PTP Master local priority
      type: integer
      format: uint32
      example: 1
    TimingCaps.NtpServers:
      description: NTP server detail.
      type: object
      required:
        - ntpServerAddrType
        - ntpServerAddr
        - minPollingInterval
        - maxPollingInterval
        - localPriority
        - authenticationOption
        - authenticationKeyNum
      properties:
        ntpServerAddrType:
          $ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType'
        ntpServerAddr:
          $ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddr'
        minPollingInterval:
          $ref: '#/components/schemas/TimingCaps.NtpServers.MinPollingInterval'
        maxPollingInterval:
          $ref: '#/components/schemas/TimingCaps.NtpServers.MaxPollingInterval'
        localPriority:
          $ref: '#/components/schemas/TimingCaps.NtpServers.LocalPriority'
        authenticationOption:
          $ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationOption'
        authenticationKeyNum:
          $ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationKeyNum'
723
    TimingCaps_PtpMasters:
724 725 726 727 728 729 730 731
      description: NTP server detail.
      type: object
      required:
        - ptpMasterIpAddress
        - ptpMasterLocalPriority
        - delayReqMaxRate
      properties:
        ptpMasterIpAddress:
732
          $ref: '#/components/schemas/TimingCaps.NtpServers_PtpMasterIpAddress'
733
        ptpMasterLocalPriority:
734
          $ref: '#/components/schemas/TimingCaps.NtpServers_PtpMasterLocalPriority'
735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759
        delayReqMaxRate:
          $ref: '#/components/schemas/TimingCaps.NtpServers.DelayReqMaxRate'
    TimingCaps.TimeStamp:
      description: time
      type: object
      required:
        - nanoSeconds
        - seconds
      properties:
        seconds:
          type: integer
          format: uint32
          description: >-
            The seconds part of the time. Time is defined as Unix-time since
            January 1, 1970, 00:00:00 UTC
          example: 1577836800
        nanoSeconds:
          type: integer
          format: uint32
          description: >-
            The nanoseconds part of the time. Time is defined as Unix-time since
            January 1, 1970, 00:00:00 UTC
          example: 0
    TimingCaps:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
760
        This type represents the information provided by the MEC
761 762 763 764 765 766 767 768 769 770 771 772 773 774
        platform in response to the Timing capabilities Query message.
      type: object
      properties:
        timeStamp:
          $ref: '#/components/schemas/TimingCaps.TimeStamp'
        ntpServers:
          description: Available NTP servers
          type: array
          items:
            $ref: '#/components/schemas/TimingCaps.NtpServers'
        ptpMasters:
          description: Available PTP Masters
          type: array
          items:
775
            $ref: '#/components/schemas/TimingCaps_PtpMasters'
776 777 778
    TrafficFilter.Address:
      description: Identify the traffic ip address.
      type: string
779
      example: '192.168.1.1'
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 812 813 814 815 816 817 818 819 820 821 822 823 824 825 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 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888
    TrafficFilter.DSCP:
      description: >-
        Used to match all IPv4 packets that have the same Differentiated
        Services Code Point (DSCP)
      type: integer
      format: uint32
      example: 0
    TrafficFilter.Port:
      description: A port
      type: string
      example: '8080'
    TrafficFilter.Protocol:
      description: Protocol of the traffic filter
      type: string
      example: '?'
    TrafficFilter.QCI:
      description: >-
        Used to match all packets that have the same Quality Class Indicator
        (QCI).
      type: integer
      format: uint32
      example: 1
    TrafficFilter.TC:
      description: Used to match all IPv6 packets that have the same Traffic Class.
      type: integer
      format: uint32
      example: 1
    TrafficFilter.Token:
      description: Used for token based traffic rule
      type: string
      example: '?'
    TrafficFilter.TunnelAddress:
      description: Used for GTP tunnel based traffic rule
      type: string
      example: '?'
    TrafficFilter.TunnelPort:
      description: Used for GTP tunnel based traffic rule
      type: string
      example: '?'
    TrafficFilter:
      description: This type represents the traffic filter.
      type: object
      properties:
        srcAddress:
          description: >-
            An IP address or a range of IP address. 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.
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Address'
        dstAddress:
          description: >-
            An IP address or a range of IP address. 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.
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Address'
        srcPort:
          description: A port or a range of ports
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Port'
        dstPort:
          description: A port or a range of ports
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Port'
        protocol:
          description: Specify the protocol of the traffic filter
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Protocol'
        token:
          description: Used for token based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Token'
        srcTunnelAddress:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelAddress'
        tgtTunnelAddress:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelAddress'
        srcTunnelPort:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelPort'
        dstTunnelPort:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelPort'
        qCI:
          $ref: '#/components/schemas/TrafficFilter.QCI'
        dSCP:
          $ref: '#/components/schemas/TrafficFilter.DSCP'
        tC:
          $ref: '#/components/schemas/TrafficFilter.TC'
    TrafficRule.Action:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
889 890
        The action of the MEC host data plane when a packet matches the trafficFilter
					 
891 892 893 894
      type: string
      enum:
        - DROP
        - FORWARD_DECAPSULATED
Walter Featherstone's avatar
Walter Featherstone committed
895
        - FORWARD_ENCAPSULATED
896 897
        - PASSTHROUGH
        - DUPLICATE_DECAPSULATED
Walter Featherstone's avatar
Walter Featherstone committed
898
        - DUPLICATE_ENCAPSULATED
899
      example: 'DROP'
900 901 902 903 904 905 906 907 908 909 910 911
    TrafficRule.FilterType:
      description: >-
        Definition of filter per FLOW or PACKET. If flow the filter match
        UE->EPC packet and the reverse packet is handled in the same context
      type: string
      enum:
        - FLOW
        - PACKET
      example: FLOW
    TrafficRule.Id:
      description: Identify the traffic rule.
      type: string
912
      example: 'TrafficRule1'
913
    TrafficRule_Priority:
914 915 916 917 918 919 920
      description: >-
        Priority of this traffic rule. If traffic rule conflicts, the one with
        higher priority take precedence
      type: integer
      format: uint32
      example: 1
    TrafficRule.State:
Walter Featherstone's avatar
Walter Featherstone committed
921
      description: Contains the traffic rule state. This attribute may be updated using HTTP PUT method
922 923 924 925
      type: string
      enum:
        - ACTIVE
        - INACTIVE
926
      example: 'ACTIVE'
927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942
    TrafficRule:
      description: This type represents the general information of a traffic rule.
      type: object
      required:
        - trafficRuleId
        - filterType
        - priority
        - trafficFilter
        - action
        - state
      properties:
        trafficRuleId:
          $ref: '#/components/schemas/TrafficRule.Id'
        filterType:
          $ref: '#/components/schemas/TrafficRule.FilterType'
        priority:
943
          $ref: '#/components/schemas/TrafficRule_Priority'
944
        trafficFilter:
945 946 947
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter'
948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967
        action:
          $ref: '#/components/schemas/TrafficRule.Action'
        dstInterface:
          $ref: '#/components/schemas/DestinationInterface'
        state:
          $ref: '#/components/schemas/TrafficRule.State'
    TunnelInfo.TunnelDstAddress:
      description: Destination address of the tunnel
      type: string
      example: '?'
    TunnelInfo.TunnelSrcAddress:
      description: Source address of the tunnel
      type: string
      example: '?'
    TunnelInfo.TunnelType:
      description: This type represents the tunnel information.
      type: string
      enum:
        - GTP_U
        - GRE
968
      example: 'GTP_U'
969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984
    TunnelInfo:
      description: This type represents the tunnel information.
      type: object
      required:
        - tunnelType
      properties:
        tunnelType:
          $ref: '#/components/schemas/TunnelInfo.TunnelType'
        tunnelDstAddress:
          $ref: '#/components/schemas/TunnelInfo.TunnelDstAddress'
        tunnelSrcAddress:
          $ref: '#/components/schemas/TunnelInfo.TunnelSrcAddress'
  parameters:
    Path.AppInstanceId:
      name: appInstanceId
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
985 986
        Represents a MEC application instance. Note that the
        appInstanceId is allocated by the MEC platform manager.
987 988 989
      in: path
      required: true
      schema:
990
        type: string
991 992 993 994 995 996
    Path.DnsRuleId:
      name: dnsRuleId
      description: Represents a DNS rule.
      in: path
      required: true
      schema:
997
        type: string
998 999 1000
    Path.SubscriptionId:
      name: subscriptionId
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
1001
        Represents a subscription to the notifications from the MEC
1002 1003 1004 1005
        platform.
      in: path
      required: true
      schema:
1006
        type: string
1007 1008 1009 1010 1011 1012
    Path.TrafficRuleId:
      name: trafficRuleId
      description: Represents a traffic rule.
      in: path
      required: true
      schema:
1013
        type: string
1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051
  responses:
    ApplicationsDnsRules.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            type: array
            minItems: 0
            items:
              $ref: '#/components/schemas/DnsRule'
          examples:
            DnsRules:
              $ref: '#/components/examples/DnsRules'
      links:
        getIndividualMeDNSRule:
          $ref: '#/components/links/GetIndividualMeDNSRule'
        putIndividualMeDNSRule:
          $ref: '#/components/links/PutIndividualMeDNSRule'
    ApplicationsDnsRule.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DnsRule'
          examples:
            DnsRule:
              $ref: '#/components/examples/DnsRule'
    ApplicationsSubscriptions.200:
      description: >-
        Upon success, a response body containing the list of links to the
        requested subscriptions is returned.
      content:
        application/json:
          schema:
Walter Featherstone's avatar
Walter Featherstone committed
1052
            $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList'
1053
      links:
Walter Featherstone's avatar
Walter Featherstone committed
1054 1055 1056 1057
        getIndividualmecAppSuptApiSubscriptionLinkList:
          $ref: '#/components/links/GetIndividualmecAppSuptApiSubscriptionLinkList'
        delIndividualmecAppSuptApiSubscriptionLinkList:
          $ref: '#/components/links/DelIndividualmecAppSuptApiSubscriptionLinkList'
1058 1059
    ApplicationsSubscriptions.201:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
1060 1061
        Entity body in the request contains a subscription to the 
        MEC service availability notifications that is to be created.
1062 1063 1064 1065 1066 1067 1068 1069 1070
      headers:
        location:
          description: The resource URI of the created resource
          schema:
            type: string
            format: uri
      content:
        application/json:
          schema:
Walter Featherstone's avatar
Walter Featherstone committed
1071
            $ref: '#/components/schemas/AppTerminationNotificationSubscription'
1072
      links:
Walter Featherstone's avatar
Walter Featherstone committed
1073 1074 1075 1076
        getIndividualmecAppSuptApiSubscription:
          $ref: '#/components/links/GetIndividualmecAppSuptApiSubscription'
        delIndividualmecAppSuptApiSubscription:
          $ref: '#/components/links/DelIndividualmecAppSuptApiSubscription'
1077 1078 1079 1080 1081 1082 1083
    ApplicationsSubscription.200:
      description: >-
        Upon success, a response body containing the requested subscription
        is returned.
      content:
        application/json:
          schema:
Walter Featherstone's avatar
Walter Featherstone committed
1084
            $ref: '#/components/schemas/AppTerminationNotificationSubscription'
1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 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 1129 1130
    ApplicationsTrafficRules.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            type: array
            minItems: 0
            items:
              $ref: '#/components/schemas/TrafficRule'
          examples:
            TrafficRules:
              $ref: '#/components/examples/TrafficRules'
      links:
        getIndividualMeTrafficRule:
          $ref: '#/components/links/GetIndividualMeTrafficRule'
        putIndividualMeTrafficRule:
          $ref: '#/components/links/PutIndividualMeTrafficRule'
    ApplicationsTrafficRule.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TrafficRule'
          examples:
            TrafficRule:
              $ref: '#/components/examples/TrafficRule'
    TimingCurrentTime.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CurrentTime'
    TimingCaps.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TimingCaps'
Walter Featherstone's avatar
Walter Featherstone committed
1131
    Error.400:
1132
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
1133 1134
        Bad Request.
        It is used to indicate that incorrect parameters were passed to the request.
1135
      content:
Walter Featherstone's avatar
Walter Featherstone committed
1136
        application/problem+json:
1137
          schema:
Walter Featherstone's avatar
Walter Featherstone committed
1138 1139 1140 1141 1142 1143 1144 1145
            $ref: '#/components/schemas/ProblemDetails'
        text/plain:
          schema:
            $ref: '#/components/schemas/Empty'
    Error.401:
      description: >-
        Unauthorized.
        It is used when the client did not submit the appropriate credentials.
1146 1147 1148 1149
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
1150
        text/plain:
1151 1152 1153
          schema:
            $ref: '#/components/schemas/Empty'
    Error.403:
Walter Featherstone's avatar
Walter Featherstone committed
1154 1155 1156
      description: >-
        Forbidden.
        The operation is not allowed given the current status of the resource. 
1157 1158 1159 1160 1161
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    Error.404:
Walter Featherstone's avatar
Walter Featherstone committed
1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178
      description: >-
        Not Found.
        It is used when a client provided a URI that cannot be mapped 
        to a valid resource URI.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
        text/plain:
          schema:
            $ref: '#/components/schemas/Empty'
    Error.409:
      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.
1179 1180 1181 1182
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
1183
        text/plain:
1184 1185 1186
          schema:
            $ref: '#/components/schemas/Empty'
    Error.412:
Walter Featherstone's avatar
Walter Featherstone committed
1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201
      description: >-
        Precondition Failed.
        It is used when a condition has failed during conditional requests, 
        e.g. when using ETags to avoid write conflicts.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
        text/plain:
          schema:
            $ref: '#/components/schemas/Empty'
    Error.429:
      description: >-
        Too Many Requests.
        It is used when a rate limiter has triggered.
1202 1203 1204 1205
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
1206
        text/plain:
1207 1208 1209
          schema:
            $ref: '#/components/schemas/Empty'
  requestBodies:
Walter Featherstone's avatar
Walter Featherstone committed
1210 1211 1212 1213 1214 1215 1216 1217 1218 1219
    ApplicationsConfirmReady:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AppReadyConfirmation'
    ApplicationsConfirmTermination:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AppTerminationConfirmation'
1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230
    ApplicationsDnsRule:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DnsRule'
      description: The updated state is included in the entity body of the request.
      required: true
    ApplicationsSubscriptions:
      content:
        application/json:
          schema:
Walter Featherstone's avatar
Walter Featherstone committed
1231
            $ref: '#/components/schemas/AppTerminationNotificationSubscription'
1232
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
1233
        Entity body in the request contains a subscription to the MEC
1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247
        application termination notifications that is to be created.
      required: true
    ApplicationsTrafficRule:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TrafficRule'
      description: One or more updated attributes that are allowed to be changed
      required: true
    AppTerminationNotification:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AppTerminationNotification'
Walter Featherstone's avatar
Walter Featherstone committed
1248
      required: true
1249 1250
  callbacks:
    AppTerminationNotification:
1251
      '{$request.body#/callbackReference}':
1252
        post:
1253 1254 1255 1256 1257 1258
          description: >-
            Represents the information that the MEP notifies the
            subscribed application instance about the corresponding 
            application instance termination/stop
          operationId: AppTerminationNotification_POST
          tags:
Walter Featherstone's avatar
Walter Featherstone committed
1259
            - callbacks
1260 1261 1262 1263 1264 1265 1266
          requestBody:
            $ref: '#/components/requestBodies/AppTerminationNotification'
          responses:
            '200':
              description: Expected responses from callback consumer, if it accepts the callback
  links:
    GetIndividualMeDNSRule:
1267
      operationId: ApplicationsDnsRule_GET
1268 1269 1270 1271
      description: The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `GET /applications/{appInstanceId}/dns_rules/{dnsRuleId}`
      parameters:
        dnsRuleId: '$response.body#/dnsRuleId'
    PutIndividualMeDNSRule:
1272
      operationId: ApplicationsDnsRule_PUT
1273 1274 1275 1276
      description: The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `PUT /applications/{appInstanceId}/dns_rules/{dnsRuleId}`
      parameters:
        dnsRuleId: '$response.body#/dnsRuleId'
    GetIndividualMeTrafficRule:
1277
      operationId: ApplicationsTrafficRule_GET
1278 1279 1280 1281
      description: The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `GET /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`
      parameters:
        trafficRuleId: '$response.body#/trafficRuleId'
    PutIndividualMeTrafficRule:
1282
      operationId: ApplicationsTrafficRule_PUT
1283 1284 1285
      description: The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `PUT /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`
      parameters:
        trafficRuleId: '$response.body#/trafficRuleId'
Walter Featherstone's avatar
Walter Featherstone committed
1286
    GetIndividualmecAppSuptApiSubscription:
1287
      operationId: ApplicationsSubscription_GET
Walter Featherstone's avatar
Walter Featherstone committed
1288
      description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`
1289
      parameters:
Walter Featherstone's avatar
Walter Featherstone committed
1290
        description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/.*\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute
1291
        subscriptionId: 'TBC'
Walter Featherstone's avatar
Walter Featherstone committed
1292
    DelIndividualmecAppSuptApiSubscription:
1293
      operationId: ApplicationsSubscription_DELETE
Walter Featherstone's avatar
Walter Featherstone committed
1294
      description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`
1295
      parameters:
Walter Featherstone's avatar
Walter Featherstone committed
1296
        description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute
1297
        subscriptionId: 'TBC'
Walter Featherstone's avatar
Walter Featherstone committed
1298
    GetIndividualmecAppSuptApiSubscriptionLinkList:
1299
      operationId: ApplicationsSubscription_GET
Walter Featherstone's avatar
Walter Featherstone committed
1300
      description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`
1301
      parameters:
Walter Featherstone's avatar
Walter Featherstone committed
1302
        description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute
1303
        subscriptionId: 'TBC'
Walter Featherstone's avatar
Walter Featherstone committed
1304
    DelIndividualmecAppSuptApiSubscriptionLinkList:
1305
      operationId: ApplicationsSubscription_DELETE
Walter Featherstone's avatar
Walter Featherstone committed
1306
      description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`
1307
      parameters:
Walter Featherstone's avatar
Walter Featherstone committed
1308
        description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute
1309 1310 1311 1312
        subscriptionId: 'TBC'
  examples:
    DnsRule:
      value:
1313 1314 1315 1316
        dnsRuleId: 'DnsRule1'
        domainName: 'www.example.com'
        ipAddressType: 'IP_V4'
        ipAddress: '146.241.7.3'
1317
        ttl: 300
1318
        state: 'ACTIVE'
1319 1320
    DnsRules:
      value:
1321 1322 1323 1324
        - dnsRuleId: 'DnsRule1'
          domainName: 'www.example.com'
          ipAddressType: 'IP_V4'
          ipAddress: '146.241.7.3'
1325
          ttl: 300
1326
          state: 'ACTIVE'
Walter Featherstone's avatar
Walter Featherstone committed
1327 1328 1329 1330 1331 1332
        - dnsRuleId: 'DnsRule2'
          domainName: 'www.example.com'
          ipAddressType: 'IP_V4'
          ipAddress: '146.241.7.4'
          ttl: 300
          state: 'INACTIVE'
1333 1334
    TrafficRule:
      value:
1335 1336 1337
        trafficRuleId: 'TrafficRule123'
        serName: 'ExampleService'
        filterType: 'FLOW'
1338 1339
        priority: 1
        trafficFilter:
1340 1341 1342 1343 1344 1345 1346 1347
          - srcAddress:
              - '192.168.2.0/24'
              - '192.168.3.0/24'
            dstAddress:
              - '192.127.4.100/32'
            dstPort:
              - '80'
        action: 'FORWARD_DECAPSULATED'
1348
        dstInterface:
1349 1350 1351
          interfaceType: 'IP'
          dstIpAddress: '20.1.1.1'
        state: 'ACTIVE'
1352 1353
    TrafficRules:
      value:
1354 1355 1356
        - trafficRuleId: 'TrafficRule123'
          serName: 'ExampleService'
          filterType: 'FLOW'
1357 1358
          priority: 1
          trafficFilter:
1359 1360 1361 1362 1363 1364 1365 1366
            - srcAddress:
                - '192.168.2.0/24'
                - '192.168.3.0/24'
              dstAddress:
                - '192.127.4.100/32'
              dstPort:
                - '80'
          action: 'FORWARD_DECAPSULATED'
1367
          dstInterface:
1368 1369
            interfaceType: 'IP'
            dstIpAddress: '20.1.1.1'
1370
          state: 'ACTIVE'