Mp1.yaml 63.3 KB
Newer Older
1 2
swagger: '2.0'
info:
3
  title: Mp1 API
4
  version: 1.1.1
5
  description: The ETSI MEC ISG MEC011 Application Enablement API described using OpenAPI
6 7 8 9
  license:
    name: ETSI Forge copyright notice
    url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
externalDocs:
10
  description: 'ETSI GS MEC011 Application Enablement API, V1.1.1'
11 12
  url: >-
    http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf
13 14 15 16 17 18 19 20 21 22 23 24
host: '127.0.0.1:8081'
basePath: /exampleAPI/mp1/v1/
schemes:
  - http
  - https
consumes:
  - application/json
produces:
  - application/json
parameters:
  Body.AppTerminationNotificationSubscription:
    name: AppTerminationNotificationSubscription
25 26 27
    description: >-
      Entity body in the request contains a subscription to the mobile edge
      application termination notifications that is to be created.
28 29 30
    in: body
    required: true
    schema:
31
      $ref: '#/definitions/AppTerminationNotificationSubscription'
32 33
  Body.DnsRule:
    name: DnsRule
34
    description: The updated state is included in the entity body of the request.
35 36 37 38 39 40
    in: body
    required: true
    schema:
      $ref: '#/definitions/DnsRule'
  Body.SerAvailabilityNotificationSubscription:
    name: SerAvailabilityNotificationSubscription
41 42 43
    description: >-
      Entity body in the request contains a subscription to the mobile edge
      service availability notifications that is to be created.
44 45 46
    in: body
    required: true
    schema:
47
      $ref: '#/definitions/SerAvailabilityNotificationSubscription'
48 49
  Body.ServiceInfo:
    name: ServiceInfo
50 51 52
    description: >-
      New ServiceInfo with updated "state" is included as entity body of the
      request
53 54 55 56 57 58 59 60 61 62 63 64 65
    in: body
    required: true
    schema:
      $ref: '#/definitions/ServiceInfo'
  Body.TrafficRule:
    name: TrafficRule
    description: One or more updated attributes that are allowed to be changed
    in: body
    required: true
    schema:
      $ref: '#/definitions/TrafficRule'
  Path.AppInstanceId:
    name: appInstanceId
66 67 68
    description: >-
      Represents a mobile edge application instance. Note that the appInstanceId
      is allocated by the mobile edge platform manager.
69 70 71 72 73 74 75 76 77 78 79
    in: path
    required: true
    type: string
  Path.DnsRuleId:
    name: dnsRuleId
    description: Represents a DNS rule.
    in: path
    required: true
    type: string
  Path.SubscriptionId:
    name: subscriptionId
80 81 82
    description: >-
      Represents a subscription to the notifications from the mobile edge
      platform.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
    in: path
    required: true
    type: string
  Path.ServiceId:
    name: serviceId
    description: Represents a mobile edge service instance.
    in: path
    required: true
    type: string
  Path.TrafficRuleId:
    name: trafficRuleId
    description: Represents a traffic rule.
    in: path
    required: true
    type: string
  Query.Ser_category_id:
    name: ser_category_id
100 101 102 103 104
    description: >-
      A mobile edge application instance may use ser_category_id as an input
      parameter to query the availability of a list of mobile edge service
      instances in a serCategory. Either "ser_instance_id" or "ser_name" or
      "ser_category_id" or none of them shall be present.
105 106 107 108 109
    in: query
    required: false
    type: string
  Query.Ser_instance_id:
    name: ser_instance_id
110 111 112 113 114
    description: >-
      A mobile edge application instance may use multiple ser_instance_ids as an
      input parameter to query the availability of a list of mobile edge service
      instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or
      none of them shall be present.
115 116 117 118 119 120 121
    in: query
    required: false
    type: array
    items:
      type: string
  Query.Ser_name:
    name: ser_name
122 123 124 125 126
    description: >-
      A mobile edge application instance may use multiple ser_names as an input
      parameter to query the availability of a list of mobile edge service
      instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or
      none of them shall be present.
127 128 129 130 131 132 133
    in: query
    required: false
    type: array
    items:
      type: string
paths:
  '/applications/{appInstanceId}/dns_rules':
134 135
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
136
    get:
137 138 139 140
      description: >-
        This method retrieves information about all the DNS rules associated
        with a mobile edge application instance.
      operationId: ApplicationsDnsRules_GET
141 142 143 144
      produces:
        - application/json
      responses:
        '200':
145 146 147
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
148 149 150 151 152 153 154
          schema:
            type: array
            items:
              type: object
              properties:
                DnsRule:
                  $ref: '#/definitions/DnsRule'
155 156
          examples:
            application/json:
157
              - DnsRule:
158 159 160 161
                  dnsRuleId: 'DnsRule1'
                  domainName: 'www.example.com'
                  ipAddressType: 'IP_V4'
                  ipAddress: '146.241.7.3'
162
                  ttl: 300
163
                  state: 'ACTIVE'
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
187
  '/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
188 189 190
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/parameters/Path.DnsRuleId'
191
    get:
192 193 194 195
      description: >-
        This method retrieves information about a DNS rule associated with a
        mobile edge application instance.
      operationId: ApplicationsDnsRule_GET
196 197 198 199
      produces:
        - application/json
      responses:
        '200':
200 201 202
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
203 204 205 206 207
          schema:
            type: object
            properties:
              DnsRule:
                $ref: '#/definitions/DnsRule'
208 209 210
          examples:
            application/json:
              DnsRule:
211 212 213 214
                dnsRuleId: 'DnsRule1'
                domainName: 'www.example.com'
                ipAddressType: 'IP_V4'
                ipAddress: '146.241.7.3'
215
                ttl: 300
216
                state: 'ACTIVE'
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
240 241
    put:
      description: 'This method activates, de-activates or updates a traffic rule.'
242
      operationId: ApplicationsDnsRule_PUT
243 244 245 246 247 248
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.DnsRule'
      responses:
        '200':
249 250 251
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
252 253 254 255 256
          schema:
            type: object
            properties:
              DnsRule:
                $ref: '#/definitions/DnsRule'
257 258 259
          examples:
            application/json:
              DnsRule:
260 261 262 263
                dnsRuleId: 'DnsRule1'
                domainName: 'www.example.com'
                ipAddressType: 'IP_V4'
                ipAddress: '146.241.7.3'
264
                ttl: 300
265
                state: 'ACTIVE'
266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: Precondition Failed
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
296
  '/applications/{appInstanceId}/subscriptions':
297 298
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
299
    get:
300 301 302 303 304
      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
305 306 307 308
      produces:
        - application/json
      responses:
        '200':
309 310 311
          description: >-
            Upon success, a response body containing the list of links to the
            requested subscriptions is returned.
312 313 314 315 316
          schema:
            type: object
            properties:
              Mp1SubscriptionLinkList:
                $ref: '#/definitions/Mp1SubscriptionLinkList'
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
340
    post:
341 342 343 344 345 346
      description: >-
        The POST method may be used to create a new subscription. One example
        use case is to create a new subscription to the mobile edge service
        availability notifications. Upon success, the response contains entity
        body describing the created subscription.
      operationId: ApplicationsSubscriptions_POST
347 348 349 350 351
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.AppTerminationNotificationSubscription'
      responses:
352
        '201':
353 354 355
          description: >-
            Entity body in the request contains a subscription to the mobile
            edge service availability notifications that is to be created.
356
          headers:
357
            location:
358 359 360
              description: The resource URI of the created resource
              type: string
              format: uri
361 362 363 364
          schema:
            type: object
            properties:
              AppTerminationNotificationSubscription:
365
                $ref: '#/definitions/AppTerminationNotificationSubscription'
366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 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 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461
  '/applications/{appInstanceId}/subscriptions/AppTerminationNotificationSubscription/{subscriptionId}':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/parameters/Path.SubscriptionId'
    get:
      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: AppTerminationSubscription_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            Upon success, a response body containing the requested subscription
            is returned.
          schema:
            type: object
            properties:
              AppTerminationNotificationSubscription:
                $ref: '#/definitions/AppTerminationNotificationSubscription'
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
    delete:
      description: >-
        This method deletes a meMp1Subscription. This method is typically used
        in "Unsubscribing from service availability event notifications"
        procedure.
      operationId: AppTerminationSubscription_DELETE
      produces:
        - application/json
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  '/applications/{appInstanceId}/subscriptions/SerAvailabilityNotificationSubscription/{subscriptionId}':
462 463 464
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/parameters/Path.SubscriptionId'
465
    get:
466 467 468 469
      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.
470
      operationId: SerAvailabilitySubscription_GET
471 472 473 474
      produces:
        - application/json
      responses:
        '200':
475 476 477
          description: >-
            Upon success, a response body containing the requested subscription
            is returned.
478 479 480 481
          schema:
            type: object
            properties:
              SerAvailabilityNotificationSubscription:
482
                $ref: '#/definitions/SerAvailabilityNotificationSubscription'
483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
506
    delete:
507 508 509 510
      description: >-
        This method deletes a meMp1Subscription. This method is typically used
        in "Unsubscribing from service availability event notifications"
        procedure.
511
      operationId: SerAvailabilitySubscription_DELETE
512 513 514 515 516
      produces:
        - application/json
      responses:
        '204':
          description: No Content
517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
533
  '/applications/{appInstanceId}/traffic_rules':
534 535
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
536
    get:
537 538 539 540
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRules_GET
541 542 543 544
      produces:
        - application/json
      responses:
        '200':
545 546 547
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
548 549 550 551 552 553 554
          schema:
            type: array
            items:
              type: object
              properties:
                TrafficRule:
                  $ref: '#/definitions/TrafficRule'
555 556
          examples:
            application/json:
557
              - TrafficRule:
558 559 560
                  trafficRuleId: 'TrafficRule123'
                  serName: 'ExampleService'
                  filterType: 'FLOW'
561 562
                  priority: 1
                  trafficFilter:
563 564 565 566 567 568 569 570
                    - srcAddress:
                        - '192.168.2.0/24'
                        - '192.168.3.0/24'
                      dstAddress:
                        - '192.127.4.100/32'
                      dstPort:
                        - '80'
                  action: 'FORWARD_DECAPSULATED'
571
                  dstInterface:
572 573 574
                    interfaceType: 'IP'
                    dstIpAddress: '20.1.1.1'
                  state: 'ACTIVE'
575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
598
  '/applications/{appInstanceId}/traffic_rules/{trafficRuleId}':
599 600 601
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/parameters/Path.TrafficRuleId'
602
    get:
603 604 605 606
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRule_GET
607 608 609 610
      produces:
        - application/json
      responses:
        '200':
611 612 613
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
614 615 616 617 618
          schema:
            type: object
            properties:
              TrafficRule:
                $ref: '#/definitions/TrafficRule'
619 620 621
          examples:
            application/json:
              TrafficRule:
622 623 624
                trafficRuleId: 'TrafficRule123'
                serName: 'ExampleService'
                filterType: 'FLOW'
625 626
                priority: 1
                trafficFilter:
627 628 629 630 631 632 633 634
                  - srcAddress:
                      - '192.168.2.0/24'
                      - '192.168.3.0/24'
                    dstAddress:
                      - '192.127.4.100/32'
                    dstPort:
                      - '80'
                action: 'FORWARD_DECAPSULATED'
635
                dstInterface:
636 637 638
                  interfaceType: 'IP'
                  dstIpAddress: '20.1.1.1'
                state: 'ACTIVE'
639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
662
    put:
663 664 665 666
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRules_PUT
667 668 669 670 671 672
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.TrafficRule'
      responses:
        '200':
673 674 675
          description: >-
            Upon success, a response body containing data type describing the
            updated TrafficRule is returned.
676 677 678 679 680
          schema:
            type: object
            properties:
              TrafficRule:
                $ref: '#/definitions/TrafficRule'
681 682 683
          examples:
            application/json:
              TrafficRule:
684 685 686
                trafficRuleId: 'TrafficRule123'
                serName: 'ExampleService'
                filterType: 'FLOW'
687 688
                priority: 1
                trafficFilter:
689 690 691 692 693 694 695 696
                  - srcAddress:
                      - '192.168.2.0/24'
                      - '192.168.3.0/24'
                    dstAddress:
                      - '192.127.4.100/32'
                    dstPort:
                      - '80'
                action: 'FORWARD_DECAPSULATED'
697
                dstInterface:
698 699 700
                  interfaceType: 'IP'
                  dstIpAddress: '20.1.1.1'
                state: 'ACTIVE'
701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: Precondition Failed
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
731 732
  /services:
    get:
733 734 735 736
      description: >-
        This method retrieves information about a list of meService resources.
        This method is typically used in "service availability query" procedure
      operationId: Services_GET
737 738 739 740 741 742 743 744
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Query.Ser_instance_id'
        - $ref: '#/parameters/Query.Ser_name'
        - $ref: '#/parameters/Query.Ser_category_id'
      responses:
        '200':
745 746 747
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
748 749 750 751 752 753 754
          schema:
            type: array
            items:
              type: object
              properties:
                ServiceInfo:
                  $ref: '#/definitions/ServiceInfo'
755 756
          examples:
            application/json:
757
              - ServiceInfo:
758 759
                  serInstanceId: 'ServiceInstance123'
                  serName: 'ExampleService'
760
                  serCategory:
761 762 763 764 765 766
                    href: 'catItem1'
                    id: 'id12345'
                    name: 'RNI'
                    version: 'version1'
                  version: 'ServiceVersion1'
                  state: 'ACTIVE'
767
                  transportInfo:
768 769 770 771 772
                    id: 'TransId12345'
                    name: 'REST'
                    description: 'REST API'
                    type: 'JSON'
                    protocol: 'HTTP'
773 774 775
                    version: '2.0'
                    endpoint:
                      uris:
776
                        - '/meMp1/service/EntryPoint'
777 778
                    security:
                      oAuth2Info:
779 780 781
                        grantTypes: 'OAUTH2_CLIENT_CREDENTIALS'
                        tokenEndpoint: '/meMp1/security/TokenEndPoint'
                  serializer: 'JSON'
782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
805
    post:
806 807 808 809 810
      description: >-
        This method is used to create a meService resource. This method is
        typically used in "service availability update and new service
        registration" procedure
      operationId: Services_POST
811 812 813 814 815 816
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.ServiceInfo'
      responses:
        '201':
817 818 819
          description: >-
            Upon success, the HTTP response shall include a Location HTTP header
            that contains the resource URI of the created resource.
820
          headers:
821
            location:
822 823 824
              description: The resource URI of the created resource
              type: string
              format: uri
825 826 827 828 829
          schema:
            type: object
            properties:
              ServiceInfo:
                $ref: '#/definitions/ServiceInfo'
830 831 832
          examples:
            application/json:
              ServiceInfo:
833 834
                serInstanceId: 'ServiceInstance123'
                serName: 'ExampleService'
835
                serCategory:
836 837 838 839 840 841
                  href: 'catItem1'
                  id: 'id12345'
                  name: 'RNI'
                  version: 'version1'
                version: 'ServiceVersion1'
                state: 'ACTIVE'
842
                transportInfo:
843 844 845 846 847
                  id: 'TransId12345'
                  name: 'REST'
                  description: 'REST API'
                  type: 'REST_HTTP'
                  protocol: 'HTTP'
848 849 850
                  version: '2.0'
                  endpoint:
                    addresses:
851 852
                      - host: '192.0.2.0'
                        port: 8080
853
                  security:
854
                    oAuth2Info:
855 856 857
                      grantTypes: 'OAUTH2_CLIENT_CREDENTIALS'
                      tokenEndpoint: '/meMp1/security/TokenEndPoint'
                serializer: 'JSON'
858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
881
  '/services/{serviceId}':
882 883
    parameters:
      - $ref: '#/parameters/Path.ServiceId'
884
    get:
885 886 887 888
      description: >-
        This method retrieves information about a meService resource. This
        method is typically used in "service availability query" procedure
      operationId: ServicesServiceId_GET
889 890 891 892
      produces:
        - application/json
      responses:
        '200':
893 894 895
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
896 897 898 899 900 901 902 903
          schema:
            type: object
            properties:
              ServiceInfo:
                $ref: '#/definitions/ServiceInfo'
          examples:
            application/json:
              ServiceInfo:
904 905
                serInstanceId: 'ServiceInstance123'
                serName: 'ExampleService'
906
                serCategory:
907 908 909 910 911 912
                  href: 'catItem1'
                  id: 'id12345'
                  name: 'RNI'
                  version: 'version1'
                version: 'ServiceVersion1'
                state: 'ACTIVE'
913
                transportInfo:
914 915 916 917 918
                  id: 'TransId12345'
                  name: 'REST'
                  description: 'REST API'
                  type: 'REST_HTTP'
                  protocol: 'HTTP'
919 920 921
                  version: '2.0'
                  endpoint:
                    addresses:
922 923
                      - host: '192.0.2.0'
                        port: 8080
924
                  security:
925
                    oAuth2Info:
926 927 928
                      grantTypes: 'OAUTH2_CLIENT_CREDENTIALS'
                      tokenEndpoint: '/meMp1/security/TokenEndPoint'
                serializer: 'JSON'
929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
952 953
    put:
      description: This method updates the information about a meService resource
954
      operationId: ServicesServiceId_PUT
955 956 957 958 959 960
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.ServiceInfo'
      responses:
        '200':
961 962 963
          description: >-
            Upon success, a response body containing data type describing the
            updated ServiceInfo is returned
964 965 966 967 968 969 970 971
          schema:
            type: object
            properties:
              ServiceInfo:
                $ref: '#/definitions/ServiceInfo'
          examples:
            application/json:
              ServiceInfo:
972 973
                serInstanceId: 'ServiceInstance123'
                serName: 'ExampleService'
974
                serCategory:
975 976 977 978 979 980
                  href: 'catItem1'
                  id: 'id12345'
                  name: 'RNI'
                  version: 'version1'
                version: 'ServiceVersion1'
                state: 'ACTIVE'
981
                transportInfo:
982 983 984 985 986
                  id: 'TransId12345'
                  name: 'REST'
                  description: 'REST API'
                  type: 'REST_HTTP'
                  protocol: 'HTTP'
987 988 989
                  version: '2.0'
                  endpoint:
                    uris:
990
                      - '/meMp1/service/EntryPoint'
991
                  security:
992
                    oAuth2Info:
993 994 995
                      grantTypes: 'OAUTH2_CLIENT_CREDENTIALS'
                      tokenEndpoint: '/meMp1/security/TokenEndPoint'
                serializer: 'JSON'
996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: Precondition Failed
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
1026 1027
  /timing/current_time:
    get:
1028 1029 1030 1031
      description: >-
        This method retrieves the information of the platform's current time
        which corresponds to the get platform time procedure
      operationId: TimingCurrentTime_GET
1032 1033 1034 1035
      produces:
        - application/json
      responses:
        '200':
1036 1037 1038
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
1039 1040 1041 1042 1043
          schema:
            type: object
            properties:
              CurrentTime:
                $ref: '#/definitions/CurrentTime'
1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
1067 1068
  /timing/timing_caps:
    get:
1069 1070 1071 1072
      description: >-
        This method retrieves the information of the platform's timing
        capabilities which corresponds to the timing capabilities query
      operationId: TimingCaps_GET
1073 1074 1075 1076
      produces:
        - application/json
      responses:
        '200':
1077 1078 1079
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
1080 1081 1082 1083 1084
          schema:
            type: object
            properties:
              TimingCaps:
                $ref: '#/definitions/TimingCaps'
1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
1108 1109
  /transports:
    get:
1110 1111 1112 1113 1114 1115
      description: >-
        This method retrieves information about a list of available transports.
        This method is typically used by a service-producing application to
        discover transports provided by the mobile edge platform in the
        "transport information query" procedure
      operationId: Transports_GET
1116 1117 1118 1119
      produces:
        - application/json
      responses:
        '200':
1120 1121 1122
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
1123 1124 1125 1126 1127 1128 1129
          schema:
            type: array
            items:
              type: object
              properties:
                TransportInfo:
                  $ref: '#/definitions/TransportInfo'
1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
1153 1154 1155
definitions:
  AppTerminationNotification.MaxGracefulTimeout:
    description: Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.
1156
    type: integer
1157 1158 1159 1160 1161
    format: uint32
    example: 10
  AppTerminationNotification.NotificationType:
    description: Shall be set to AppTerminationNotification.
    type: string
1162
    example: 'AppTerminationNotification'
1163
  AppTerminationNotification:
1164 1165 1166 1167
    description: >-
      This type represents the information that the mobile edge platform
      notifies the subscribed application instance about  the corresponding
      application instance termination/stop.
1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182
    type: object
    required:
      - notificationType
      - maxGracefulTimeout
      - _links
    properties:
      notificationType:
        $ref: '#/definitions/AppTerminationNotification.NotificationType'
      maxGracefulTimeout:
        $ref: '#/definitions/AppTerminationNotification.MaxGracefulTimeout'
      _links:
        $ref: '#/definitions/Subscription'
  AppTerminationNotificationSubscription.AppInstanceId:
    description: It is used as the filtering criterion for the subscribed events.
    type: string
1183
    example: 'ID1'
1184
  AppTerminationNotificationSubscription.CallbackReference:
1185 1186 1187 1188 1189
    description: >-
      URI selected by the mobile edge application instance to receive
      notifications on the subscribed mobile edge application instance
      management information. This shall be included in both the request and the
      response.
1190 1191
    type: string
    format: uri
1192
  AppTerminationNotificationSubscription:
1193 1194 1195 1196
    description: >-
      This type represents the information that the mobile edge platform
      notifies the subscribed application instance about  the corresponding
      application instance termination/stop.
1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214
    type: object
    required:
      - subscriptionType
      - callbackReference
      - _links
      - appInstanceId
    properties:
      subscriptionType:
        $ref: '#/definitions/AppTerminationNotificationSubscription.SubscriptionType'
      callbackReference:
        $ref: '#/definitions/AppTerminationNotificationSubscription.CallbackReference'
      _links:
        $ref: '#/definitions/Self'
      appInstanceId:
        $ref: '#/definitions/AppTerminationNotificationSubscription.AppInstanceId'
  AppTerminationNotificationSubscription.SubscriptionType:
    description: Shall be set to AppTerminationNotificationSubscription.
    type: string
1215
    example: 'AppTerminationNotificationSubscription'
1216 1217 1218
  CategoryRef.Href:
    description: Reference of the catalogue
    type: string
1219
    example: 'catItem1'
1220 1221 1222
  CategoryRef.Id:
    description: Unique identifier of the category
    type: string
1223
    example: 'id12345'
1224 1225 1226
  CategoryRef.Name:
    description: Name of the category
    type: string
1227
    example: 'RNI'
1228 1229 1230
  CategoryRef.Version:
    description: Category version
    type: string
1231
    example: 'version1'
1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249
  CategoryRef:
    description: This type represents the category reference
    type: object
    required:
      - href
      - id
      - name
      - version
    properties:
      href:
        $ref: '#/definitions/CategoryRef.Href'
      id:
        $ref: '#/definitions/CategoryRef.Id'
      name:
        $ref: '#/definitions/CategoryRef.Name'
      version:
        $ref: '#/definitions/CategoryRef.Version'
  CurrentTime:
1250 1251 1252
    description: >-
      This type represents the information provided by the mobile edge platform
      in response to the Get Platform Time Request message.
1253 1254 1255 1256 1257 1258 1259 1260 1261
    type: object
    required:
      - nanoSeconds
      - seconds
      - timeSourceStatus
    properties:
      seconds:
        type: integer
        format: uint32
1262 1263 1264
        description: >-
          The seconds part of the time. Time is defined as Unix-time since
          January 1, 1970, 00:00:00 UTC
1265 1266 1267 1268
        example: 1577836800
      nanoSeconds:
        type: integer
        format: uint32
1269 1270 1271
        description: >-
          The nanoseconds part of the time. Time is defined as Unix-time since
          January 1, 1970, 00:00:00 UTC
1272 1273 1274 1275 1276 1277 1278
        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
1279
        example: 'TRACEABLE'
1280 1281 1282 1283 1284 1285 1286
  DestinationInterface.InterfaceType:
    description: Type of the interface
    type: string
    enum:
      - TUNNEL
      - MAC
      - IP
1287
    example: 'TUNNEL'
1288 1289 1290
  DestinationInterface.IpAddress:
    description: IP address of the remote destination
    type: string
1291
    example: '192.0.2.0'
1292 1293 1294
  DestinationInterface.MacAddress:
    description: Source address identifies the MAC address of the interface
    type: string
1295
    example: '02-00-00-00-00-00'
1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314
  DestinationInterface:
    description: This type represents the destination interface.
    type: object
    required:
      - interfaceType
    properties:
      interfaceType:
        $ref: '#/definitions/DestinationInterface.InterfaceType'
      tunnelInfo:
        $ref: '#/definitions/TunnelInfo'
      srcMacAddress:
        $ref: '#/definitions/DestinationInterface.MacAddress'
      dstMacAddress:
        $ref: '#/definitions/DestinationInterface.MacAddress'
      dstIpAddress:
        $ref: '#/definitions/DestinationInterface.IpAddress'
  DnsRule.DomainName:
    description: FQDN resolved by the DNS rule
    type: string
1315
    example: 'www.example.com'
1316 1317 1318
  DnsRule.Id:
    description: Identifies the DNS Rule
    type: string
1319
    example: 'dnsRule1'
1320 1321 1322
  DnsRule.IpAddress:
    description: IP address associated with the FQDN resolved by the DNS rule
    type: string
1323
    example: '192.0.2.0'
1324 1325 1326 1327 1328 1329
  DnsRule.IpAddressType:
    description: IP address type
    type: string
    enum:
      - IP_V6
      - IP_V4
1330
    example: 'IP_V6'
1331 1332 1333 1334 1335 1336
  DnsRule.State:
    description: DNS rule state
    type: string
    enum:
      - ACTIVE
      - INACTIVE
1337
    example: 'ACTIVE'
1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367
  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: '#/definitions/DnsRule.Id'
      domainName:
        $ref: '#/definitions/DnsRule.DomainName'
      ipAddressType:
        $ref: '#/definitions/DnsRule.IpAddressType'
      ipAddress:
        $ref: '#/definitions/DnsRule.IpAddress'
      ttl:
        $ref: '#/definitions/DnsRule.Ttl'
      state:
        $ref: '#/definitions/DnsRule.State'
  EndPointInfo.Address.Host:
    description: Host portion of the address
    type: string
1368
    example: '192.0.2.0'
1369 1370 1371 1372
  EndPointInfo.Address.Port:
    description: Port portion of the address
    type: integer
    format: uint32
1373
    example: 8080
1374 1375 1376
  EndPointInfo.Address:
    description: A IP address and port pair
    type: object
1377 1378 1379
    required:
      - host
      - port
1380 1381 1382 1383 1384 1385
    properties:
      host:
        $ref: '#/definitions/EndPointInfo.Address.Host'
      port:
        $ref: '#/definitions/EndPointInfo.Address.Port'
  EndPointInfo.Addresses:
1386 1387 1388
    description: >-
      Entry point information of the service as one or more pairs of IP address
      and port
1389 1390 1391 1392
    type: array
    items:
      $ref: '#/definitions/EndPointInfo.Address'
  EndPointInfo.Alternative:
1393 1394 1395
    description: >-
      Entry point information of the service in a format defined by an
      implementation, or in an external specification.
1396 1397 1398 1399 1400
    type: object
  EndPointInfo.Uri:
    description: Entry point information of the service
    type: string
    format: uri
1401
    example: '/meMp1/service/EntryPoint'
1402
  EndPointInfo.Uris:
1403 1404 1405
    description: >-
      Entry point information of the service as string, formatted according to
      URI syntax
1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422
    type: array
    items:
      $ref: '#/definitions/EndPointInfo.Uri'
  EndPointInfo:
    description: This type represents information about a transport endpoint
    type: object
    properties:
      uris:
        $ref: '#/definitions/EndPointInfo.Uris'
      addresses:
        $ref: '#/definitions/EndPointInfo.Addresses'
      alternative:
        $ref: '#/definitions/EndPointInfo.Alternative'
  LinkType:
    description: URI referring to a resource
    type: string
    format: uri
1423
    readOnly: true
1424
    example: '/meMp1/example'
1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449
  Mp1SubscriptionLinkList.Links:
    description: Self-referring URI.
    type: object
    required:
      - self
    properties:
      self:
        $ref: '#/definitions/LinkType'
      subscription:
        description: Subscription list
        type: array
        items:
          $ref: '#/definitions/Mp1SubscriptionLinkList.Subscription'
  Mp1SubscriptionLinkList.Subscription:
    description: A link to a subscription.
    type: object
    required:
      - href
      - rel
    properties:
      href:
        description: The URI referring to the subscription
        type: string
        format: uri
      rel:
1450 1451 1452
        description: >-
          The values are as defined in the "subscriptionType" attribute for each
          different Mp1 event subscription data type.
1453 1454
        type: string
  Mp1SubscriptionLinkList:
1455 1456 1457 1458
    description: >-
      This type represents a list of links related to currently existing
      subscriptions for a mobile edge application instance. This information is
      returned when sending a request to receive current subscriptions.
1459 1460 1461 1462 1463 1464
    type: object
    required:
      - _links
    properties:
      _links:
        $ref: '#/definitions/Mp1SubscriptionLinkList.Links'
1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494
  ProblemDetails:
    type: object
    properties:
      type:
        $ref: '#/definitions/Problem.type'
      title:
        $ref: '#/definitions/Problem.title'
      status:
        $ref: '#/definitions/Problem.status'
      detail:
        $ref: '#/definitions/Problem.detail'
      instance:
        $ref: '#/definitions/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
1495 1496 1497
    description: >-
      A URI reference according to IETF RFC 3986 that identifies the problem
      type
1498 1499 1500 1501 1502 1503 1504 1505
  SecurityInfo.OAuth2Info.GrantTypes:
    description: List of supported OAuth 2.0 grant types
    type: string
    enum:
      - OAUTH2_AUTHORIZATION_CODE
      - OAUTH2_IMPLICIT_GRANT
      - OAUTH2_RESOURCE_OWNER
      - OAUTH2_CLIENT_CREDENTIALS
1506
    example: 'OAUTH2_CLIENT_CREDENTIALS'
1507 1508 1509 1510
  SecurityInfo.OAuth2Info.TokenEndpoint:
    description: The token endpoint
    type: string
    format: uri
1511
    example: '/meMp1/security/TokenEndPoint'
1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535
  SecurityInfo.OAuth2Info:
    description: Parameters related to use of OAuth 2.0
    required:
      - grantTypes
      - tokenEndpoint
    properties:
      grantTypes:
        $ref: '#/definitions/SecurityInfo.OAuth2Info.GrantTypes'
      tokenEndpoint:
        $ref: '#/definitions/SecurityInfo.OAuth2Info.TokenEndpoint'
  SecurityInfo:
    description: This type represents security information related to a transport
    type: object
    properties:
      oAuth2Info:
        $ref: '#/definitions/SecurityInfo.OAuth2Info'
  Self:
    description: Self-referring URI.
    type: object
    required:
      - self
    properties:
      self:
        $ref: '#/definitions/LinkType'
1536
    readOnly: true
1537
  SerAvailabilityNotificationSubscription.CallbackReference:
1538 1539 1540 1541
    description: >-
      URI selected by the mobile edge application instance to receive
      notifications on the subscribed mobile edge service availability
      information. This shall be included in both the request and the response.
1542 1543
    type: string
    format: uri
1544
  SerAvailabilityNotificationSubscription:
1545 1546 1547 1548
    description: >-
      This type represents a subscription to the notifications from the mobile
      edge platform regarding the availability of a mobile edge service or a
      list of mobile edge services.
1549 1550 1551 1552 1553 1554 1555 1556 1557 1558
    type: object
    required:
      - subscriptionType
      - callbackReference
      - _links
      - filteringCriteria
    properties:
      subscriptionType:
        $ref: '#/definitions/SerAvailabilityNotificationSubscription.SubscriptionType'
      callbackReference:
1559 1560
        $ref: >-
          #/definitions/SerAvailabilityNotificationSubscription.CallbackReference
1561 1562 1563 1564 1565 1566 1567
      _links:
        $ref: '#/definitions/Self'
      filteringCriteria:
        $ref: '#/definitions/ServiceInfo'
  SerAvailabilityNotificationSubscription.SubscriptionType:
    description: Shall be set to SerAvailabilityNotificationSubscription.
    type: string
1568
    example: 'SerAvailabilityNotificationSubscription'
1569 1570 1571 1572 1573 1574 1575
  SerializerTypes:
    description: The enumeration SerializerTypes represents types of serializers
    type: string
    enum:
      - JSON
      - XML
      - PROTOBUF3
1576
    example: 'JSON'
1577
  ServiceInfo.SerInstanceId:
1578 1579 1580
    description: >-
      Identifier of the service instance assigned by the MEPM / mobile edge
      platform.
1581
    type: string
1582
    example: 'ServiceInstance123'
1583
  ServiceInfo.SerName:
1584 1585 1586
    description: >-
      The name of the service. This is how the service producing mobile edge
      application identifies the service instance it produces.
1587
    type: string
1588
    example: 'ExampleService'
1589 1590 1591 1592 1593 1594
  ServiceInfo.State:
    description: Contains the state
    type: string
    enum:
      - ACTIVE
      - INACTIVE
1595
    example: 'ACTIVE'
1596
  ServiceInfo.TransportId:
1597 1598 1599 1600 1601 1602
    description: >-
      Identifier of the platform-provided transport to be used by the service.
      Valid identifiers may be obtained using the "Transport information query"
      procedure. May be present in POST requests to signal the use of a
      platform-provided transport for the service, and shall be absent
      otherwise.
1603
    type: string
1604
    example: 'Rest1'
1605 1606 1607
  ServiceInfo.Version:
    description: Service version
    type: string
1608
    example: 'ServiceVersion1'
1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653
  ServiceInfo:
    description: This type represents the general information of a mobile edge service.
    type: object
    required:
      - serName
      - version
      - state
      - serializer
    properties:
      serInstanceId:
        $ref: '#/definitions/ServiceInfo.SerInstanceId'
      serName:
        $ref: '#/definitions/ServiceInfo.SerName'
      serCategory:
        $ref: '#/definitions/CategoryRef'
      version:
        $ref: '#/definitions/ServiceInfo.Version'
      state:
        $ref: '#/definitions/ServiceInfo.State'
      transportId:
        $ref: '#/definitions/ServiceInfo.TransportId'
      transportInfo:
        $ref: '#/definitions/TransportInfo'
      serializer:
        $ref: '#/definitions/SerializerTypes'
  Subscription:
    description: A link to the related subscription
    type: object
    required:
      - subscription
    properties:
      subscription:
        $ref: '#/definitions/LinkType'
  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
1654
    example: 'NONE'
1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665
  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:
1666 1667 1668
    description: >-
      Maximum poll interval for NTP messages, in seconds as a power of two.
      Range 3...17
1669 1670 1671 1672
    type: integer
    format: uint32
    example: 17
  TimingCaps.NtpServers.MinPollingInterval:
1673 1674 1675
    description: >-
      Minimum poll interval for NTP messages, in seconds as a power of two.
      Range 3...17
1676 1677 1678 1679 1680 1681
    type: integer
    format: uint32
    example: 3
  TimingCaps.NtpServers.NtpServerAddr:
    description: NTP server address
    type: string
1682
    example: '192.0.2.0'
1683 1684 1685 1686 1687 1688
  TimingCaps.NtpServers.NtpServerAddrType:
    description: Address type of NTP server
    type: string
    enum:
      - IP_ADDRESS
      - DNS_NAME
1689
    example: 'IP_ADDRESS'
1690 1691 1692
  TimingCaps.NtpServers.PtpMasterIpAddress:
    description: PTP Master IP Address
    type: string
1693
    example: '192.0.2.0'
1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748
  TimingCaps.NtpServers.PtpMasterLocalPriority:
    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: '#/definitions/TimingCaps.NtpServers.NtpServerAddrType'
      ntpServerAddr:
        $ref: '#/definitions/TimingCaps.NtpServers.NtpServerAddr'
      minPollingInterval:
        $ref: '#/definitions/TimingCaps.NtpServers.MinPollingInterval'
      maxPollingInterval:
        $ref: '#/definitions/TimingCaps.NtpServers.MaxPollingInterval'
      localPriority:
        $ref: '#/definitions/TimingCaps.NtpServers.LocalPriority'
      authenticationOption:
        $ref: '#/definitions/TimingCaps.NtpServers.AuthenticationOption'
      authenticationKeyNum:
        $ref: '#/definitions/TimingCaps.NtpServers.AuthenticationKeyNum'
  TimingCaps.PtpMasters:
    description: NTP server detail.
    type: object
    required:
      - ptpMasterIpAddress
      - ptpMasterLocalPriority
      - delayReqMaxRate
    properties:
      ptpMasterIpAddress:
        $ref: '#/definitions/TimingCaps.NtpServers.PtpMasterIpAddress'
      ptpMasterLocalPriority:
        $ref: '#/definitions/TimingCaps.NtpServers.PtpMasterLocalPriority'
      delayReqMaxRate:
        $ref: '#/definitions/TimingCaps.NtpServers.DelayReqMaxRate'
  TimingCaps.TimeStamp:
    description: time
    type: object
    required:
      - nanoSeconds
      - seconds
    properties:
      seconds:
        type: integer
        format: uint32
1749 1750 1751
        description: >-
          The seconds part of the time. Time is defined as Unix-time since
          January 1, 1970, 00:00:00 UTC
1752 1753 1754 1755
        example: 1577836800
      nanoSeconds:
        type: integer
        format: uint32
1756 1757 1758
        description: >-
          The nanoseconds part of the time. Time is defined as Unix-time since
          January 1, 1970, 00:00:00 UTC
1759 1760
        example: 0
  TimingCaps:
1761 1762 1763
    description: >-
      This type represents the information provided by the mobile edge platform
      in response to the Timing capabilities Query message.
1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778
    type: object
    properties:
      timeStamp:
        $ref: '#/definitions/TimingCaps.TimeStamp'
      ntpServers:
        description: Available NTP servers
        type: array
        items:
          $ref: '#/definitions/TimingCaps.NtpServers'
      ptpMasters:
        description: Available PTP Masters
        type: array
        items:
          $ref: '#/definitions/TimingCaps.PtpMasters'
  TrafficFilter.Address:
1779
    description: Identify the traffic ip address.
1780
    type: string
1781
    example: '192.168.1.1'
1782
  TrafficFilter.DSCP:
1783 1784 1785
    description: >-
      Used to match all IPv4 packets that have the same Differentiated Services
      Code Point (DSCP)
1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797
    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:
1798 1799 1800
    description: >-
      Used to match all packets that have the same Quality Class Indicator
      (QCI).
1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825
    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:
1826 1827 1828 1829 1830
        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.
1831 1832 1833 1834
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.Address'
      dstAddress:
1835 1836 1837 1838 1839
        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.
1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.Address'
      srcPort:
        description: A port or a range of ports
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.Port'
      dstPort:
        description: A port or a range of ports
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.Port'
      protocol:
        description: Specify the protocol of the traffic filter
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.Protocol'
      token:
        description: Used for token based traffic rule
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.Token'
      srcTunnelAddress:
        description: Used for GTP tunnel based traffic rule
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.TunnelAddress'
      tgtTunnelAddress:
        description: Used for GTP tunnel based traffic rule
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.TunnelAddress'
      srcTunnelPort:
        description: Used for GTP tunnel based traffic rule
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.TunnelPort'
      dstTunnelPort:
        description: Used for GTP tunnel based traffic rule
        type: array
        items:
          $ref: '#/definitions/TrafficFilter.TunnelPort'
      qCI:
        $ref: '#/definitions/TrafficFilter.QCI'
      dSCP:
        $ref: '#/definitions/TrafficFilter.DSCP'
      tC:
        $ref: '#/definitions/TrafficFilter.TC'
  TrafficRule.Action:
1890 1891 1892
    description: >-
      The action of the ME host data plane when a packet matches the
      trafficFilter
1893 1894 1895 1896 1897 1898 1899 1900
    type: string
    enum:
      - DROP
      - FORWARD_DECAPSULATED
      - FORWARD_AS_IS
      - PASSTHROUGH
      - DUPLICATE_DECAPSULATED
      - DUPLICATE_AS_IS
1901
    example: 'DROP'
1902
  TrafficRule.FilterType:
1903 1904 1905
    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
1906 1907 1908 1909
    type: string
    enum:
      - FLOW
      - PACKET
1910
    example: 'FLOW'
1911 1912 1913
  TrafficRule.Id:
    description: Identify the traffic rule.
    type: string
1914
    example: 'TrafficRule1'
1915
  TrafficRule.Priority:
1916 1917 1918
    description: >-
      Priority of this traffic rule. If traffic rule conflicts, the one with
      higher priority take precedence
1919 1920 1921 1922 1923 1924 1925 1926 1927
    type: integer
    format: uint32
    example: 1
  TrafficRule.State:
    description: Contains the traffic rule state
    type: string
    enum:
      - ACTIVE
      - INACTIVE
1928
    example: 'ACTIVE'
1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946
  TrafficRule:
    description: This type represents the general information of a traffic rule.
    type: object
    required:
      - trafficRuleId
      - filterType
      - priority
      - trafficFilter
      - action
      - state
    properties:
      trafficRuleId:
        $ref: '#/definitions/TrafficRule.Id'
      filterType:
        $ref: '#/definitions/TrafficRule.FilterType'
      priority:
        $ref: '#/definitions/TrafficRule.Priority'
      trafficFilter:
1947 1948 1949
        type: array
        items:
          $ref: '#/definitions/TrafficFilter'
1950 1951 1952 1953 1954 1955 1956 1957 1958
      action:
        $ref: '#/definitions/TrafficRule.Action'
      dstInterface:
        $ref: '#/definitions/DestinationInterface'
      state:
        $ref: '#/definitions/TrafficRule.State'
  TransportInfo.Description:
    description: Human-readable description of this transport
    type: string
1959
    example: 'REST API'
1960 1961 1962
  TransportInfo.Id:
    description: The identifier of this transport
    type: string
1963
    example: 'TransId12345'
1964 1965 1966 1967 1968 1969
  TransportInfo.ImplSpecificInfo:
    description: Additional implementation specific details of the transport
    type: object
  TransportInfo.Name:
    description: The name of this transport
    type: string
1970
    example: 'REST'
1971 1972 1973
  TransportInfo.Protocol:
    description: The name of the protocol used. Shall be set to HTTP for a REST API.
    type: string
1974
    example: 'HTTP'
1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988
  TransportInfo.Version:
    description: The version of the protocol used
    type: string
    example: '2.0'
  TransportInfo:
    description: This type represents the general information of a mobile edge service.
    type: object
    required:
      - id
      - name
      - type
      - protocol
      - version
      - endpoint
1989
      - security
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
    properties:
      id:
        $ref: '#/definitions/TransportInfo.Id'
      name:
        $ref: '#/definitions/TransportInfo.Name'
      description:
        $ref: '#/definitions/TransportInfo.Description'
      type:
        $ref: '#/definitions/TransportTypes'
      protocol:
        $ref: '#/definitions/TransportInfo.Protocol'
      version:
        $ref: '#/definitions/TransportInfo.Version'
      endpoint:
        $ref: '#/definitions/EndPointInfo'
2005
      security:
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
        $ref: '#/definitions/SecurityInfo'
      implSpecificInfo:
        $ref: '#/definitions/TransportInfo.ImplSpecificInfo'
  TransportTypes:
    description: The enumeration TransportTypes represents types of transports
    type: string
    enum:
      - REST_HTTP
      - MB_TOPIC_BASED
      - MB_ROUTING
      - MB_PUBSUB
      - RPC
      - RPC_STREAMING
      - WEBSOCKET