Mp1.yaml 61.1 KB
Newer Older
openapi: 3.0.0
servers:
  - url: 'http://127.0.0.1:8081/exampleAPI/mp1/v1/'
  - url: 'https://127.0.0.1:8081/exampleAPI/mp1/v1/'
  version: 1.1.1
  description: The ETSI MEC ISG MEC011 Application Enablement API described using OpenAPI
  license:
    name: ETSI Forge copyright notice
    url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
externalDocs:
  description: 'ETSI GS MEC011 Application Enablement API, V1.1.1'
  url: >-
    http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf
paths:
  '/applications/{appInstanceId}/dns_rules':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      description: >-
        This method retrieves information about all the DNS rules associated
        with a mobile edge application instance.
      operationId: ApplicationsDnsRules.GET
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsDnsRules.200'
  '/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.DnsRuleId'
      description: >-
        This method retrieves information about a DNS rule associated with a
        mobile edge application instance.
      operationId: ApplicationsDnsRule.GET
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsDnsRule.200'
    put:
      description: 'This method activates, de-activates or updates a traffic rule.'
      operationId: ApplicationsDnsRule.PUT
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsDnsRule.200'
          $ref: '#/components/responses/Error.412'
      requestBody:
          $ref: '#/components/requestBodies/ApplicationsDnsRule'
  '/applications/{appInstanceId}/subscriptions':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      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
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsSubscriptions.200'
      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
      responses:
          $ref: '#/components/responses/ApplicationsSubscriptions.201'
          $ref: '#/components/responses/Error.404'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationsSubscriptions'
      callbacks:
        appTerminationNotification:
          $ref: '#/components/callbacks/AppTerminationNotification'
        serviceAvailabilityNotification:
          $ref: '#/components/callbacks/ServiceAvailabilityNotification'
  '/applications/{appInstanceId}/subscriptions/{subscriptionType}/{subscriptionId}':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.SubscriptionType'
      - $ref: '#/components/parameters/Path.SubscriptionId'
      description: >-
        The GET method requests information about a subscription for this
        requestor. Upon success, the response contains entity body with the
        subscription for the requestor.
      operationId: ApplicationsSubscription.GET
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsSubscription.200'
      description: >-
        This method deletes a meMp1Subscription. This method is typically used
        in "Unsubscribing from service availability event notifications"
        procedure.
      operationId: ApplicationsSubscription.DELETE
      responses:
        '204':
          description: No Content
  '/applications/{appInstanceId}/traffic_rules':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRules.GET
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRules.200'
  '/applications/{appInstanceId}/traffic_rules/{trafficRuleId}':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.TrafficRuleId'
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRule.GET
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRule.200'
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRule.PUT
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRule.200'
          $ref: '#/components/responses/Error.412'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationsTrafficRule'
  /services:
    get:
      description: >-
        This method retrieves information about a list of meService resources.
        This method is typically used in "service availability query" procedure
      operationId: Services.GET
      parameters:
        - $ref: '#/components/parameters/Query.Ser_instance_id'
        - $ref: '#/components/parameters/Query.Ser_name'
        - $ref: '#/components/parameters/Query.Ser_category_id'
      responses:
        '200':
      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
      responses:
        '201':
          $ref: '#/components/responses/Error.404'
      requestBody:
        $ref: '#/components/requestBodies/Services'
  '/services/{serviceId}':
      - $ref: '#/components/parameters/Path.ServiceId'
      description: >-
        This method retrieves information about a meService resource. This
        method is typically used in "service availability query" procedure
      operationId: ServicesServiceId.GET
      responses:
        '200':
          $ref: '#/components/responses/ServicesServiceId.200'
    put:
      description: This method updates the information about a meService resource
      operationId: ServicesServiceId.PUT
      responses:
        '200':
          $ref: '#/components/responses/ServicesServiceId.200'
          $ref: '#/components/responses/Error.412'
      requestBody:
        $ref: '#/components/requestBodies/ServicesServiceId'
  /timing/current_time:
    get:
      description: >-
        This method retrieves the information of the platform's current time
        which corresponds to the get platform time procedure
      operationId: TimingCurrentTime.GET
      responses:
        '200':
          $ref: '#/components/responses/TimingCurrentTime.200'
  /timing/timing_caps:
    get:
      description: >-
        This method retrieves the information of the platform's timing
        capabilities which corresponds to the timing capabilities query
      operationId: TimingCaps.GET
      responses:
        '200':
          $ref: '#/components/responses/TimingCaps.200'
  /transports:
    get:
      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
      responses:
        '200':
          $ref: '#/components/responses/Transports.200'
310 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 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 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 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 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 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 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 723 724 725 726 727 728 729 730 731 732 733 734 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 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 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 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
          $ref: '#/components/responses/Error.404'
components:
  schemas:
    Empty:
      description: Empty schema
    AppTerminationNotification.MaxGracefulTimeout:
      description: >-
        Maximum timeout value in seconds for graceful termination or graceful
        stop of an application instance.
      type: string
      format: uint32
      example: 10
    AppTerminationNotification.NotificationType:
      description: Shall be set to AppTerminationNotification.
      type: string
      example: AppTerminationNotification
    AppTerminationNotification:
      description: >-
        This type represents the information that the mobile edge platform
        notifies the subscribed application instance about  the corresponding
        application instance termination/stop.
      type: object
      required:
        - notificationType
        - maxGracefulTimeout
        - _links
      properties:
        notificationType:
          $ref: '#/components/schemas/AppTerminationNotification.NotificationType'
        maxGracefulTimeout:
          $ref: '#/components/schemas/AppTerminationNotification.MaxGracefulTimeout'
        _links:
          $ref: '#/components/schemas/Subscription'
    AppTerminationNotificationSubscription.AppInstanceId:
      description: It is used as the filtering criterion for the subscribed events.
      type: string
      example: ID1
    AppTerminationNotificationSubscription.CallbackReference:
      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.
      type: string
      format: uri
    AppTerminationNotificationSubscription:
      description: >-
        This type represents the information that the mobile edge platform
        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
      example: AppTerminationNotificationSubscription
    CategoryRef.Href:
      description: Reference of the catalogue
      type: string
      example: catItem1
    CategoryRef.Id:
      description: Unique identifier of the category
      type: string
      example: id12345
    CategoryRef.Name:
      description: Name of the category
      type: string
      example: RNI
    CategoryRef.Version:
      description: Category version
      type: string
      example: version1
    CategoryRef:
      description: This type represents the category reference
      type: object
      required:
        - href
        - id
        - name
        - version
      properties:
        href:
          $ref: '#/components/schemas/CategoryRef.Href'
        id:
          $ref: '#/components/schemas/CategoryRef.Id'
        name:
          $ref: '#/components/schemas/CategoryRef.Name'
        version:
          $ref: '#/components/schemas/CategoryRef.Version'
    CurrentTime:
      description: >-
        This type represents the information provided by the mobile edge
        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
          example: TRACEABLE
    DestinationInterface.InterfaceType:
      description: Type of the interface
      type: string
      enum:
        - TUNNEL
        - MAC
        - IP
      example: TUNNEL
    DestinationInterface.IpAddress:
      description: IP address of the remote destination
      type: string
      example: 192.0.2.0
    DestinationInterface.MacAddress:
      description: Source address identifies the MAC address of the interface
      type: string
      example: 02-00-00-00-00-00
    DestinationInterface:
      description: This type represents the destination interface.
      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
      example: www.example.com
    DnsRule.Id:
      description: Identifies the DNS Rule
      type: string
      example: dnsRule1
    DnsRule.IpAddress:
      description: IP address associated with the FQDN resolved by the DNS rule
      type: string
      example: 192.0.2.0
    DnsRule.IpAddressType:
      description: IP address type
      type: string
      enum:
        - IP_V6
        - IP_V4
      example: IP_V6
    DnsRule.State:
      description: DNS rule state
      type: string
      enum:
        - ACTIVE
        - INACTIVE
      example: ACTIVE
    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'
    EndPointInfo.Address.Host:
      description: Host portion of the address
      type: string
      example: 192.0.2.0
    EndPointInfo.Address.Port:
      description: Port portion of the address
      type: integer
      format: uint32
      example: '8080'
    EndPointInfo.Address:
      description: A IP address and port pair
      type: object
      properties:
        host:
          $ref: '#/components/schemas/EndPointInfo.Address.Host'
        port:
          $ref: '#/components/schemas/EndPointInfo.Address.Port'
    EndPointInfo.Addresses:
      description: >-
        Entry point information of the service as one or more pairs of IP
        address and port
      type: array
      items:
        $ref: '#/components/schemas/EndPointInfo.Address'
    EndPointInfo.Alternative:
      description: >-
        Entry point information of the service in a format defined by an
        implementation, or in an external specification.
      type: object
    EndPointInfo.Uri:
      description: Entry point information of the service
      type: string
      format: uri
      example: /meMp1/service/EntryPoint
    EndPointInfo.Uris:
      description: >-
        Entry point information of the service as string, formatted according to
        URI syntax
      type: array
      items:
        $ref: '#/components/schemas/EndPointInfo.Uri'
    EndPointInfo:
      description: This type represents information about a transport endpoint
      type: object
      properties:
        uris:
          $ref: '#/components/schemas/EndPointInfo.Uris'
        addresses:
          $ref: '#/components/schemas/EndPointInfo.Addresses'
        alternative:
          $ref: '#/components/schemas/EndPointInfo.Alternative'
    LinkType:
      description: This type represents a type of link and may be referenced from data structures
      type: object
      properties:
        href: 
          $ref: '#/components/schemas/Href'
    Href:
      description: URI referring to a resource
      type: string
      format: uri
      readOnly: true
      example: /meMp1/example
    Mp1SubscriptionLinkList.Links:
      description: Self-referring URI.
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
        subscription:
          description: Subscription list
          type: array
          items:
            $ref: '#/components/schemas/Mp1SubscriptionLinkList.Subscription'
    Mp1SubscriptionLinkList.Subscription:
      description: A link to a subscription.
      type: object
      required:
        - href
        - rel
      properties:
        href:
          $ref: '#/components/schemas/Href'
        rel:
          description: >-
            The values are as defined in the "subscriptionType" attribute for
            each different Mp1 event subscription data type.
          type: string
          enum:
           - AppTerminationNotificationSubscription
           - SerAvailabilityNotificationSubscription
    Mp1SubscriptionLinkList:
      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.
      type: object
      required:
        - _links
      properties:
        _links:
          $ref: '#/components/schemas/Mp1SubscriptionLinkList.Links'
    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
    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
      example: OAUTH2_CLIENT_CREDENTIALS
    SecurityInfo.OAuth2Info.TokenEndpoint:
      description: The token endpoint
      type: string
      format: uri
      example: /meMp1/security/TokenEndPoint
    SecurityInfo.OAuth2Info:
      description: Parameters related to use of OAuth 2.0
      required:
        - grantTypes
        - tokenEndpoint
      properties:
        grantTypes:
          $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantTypes'
        tokenEndpoint:
          $ref: '#/components/schemas/SecurityInfo.OAuth2Info.TokenEndpoint'
      type: object
    SecurityInfo:
      description: This type represents security information related to a transport
      type: object
      required:
        - oAuth2Info
      properties:
        oAuth2Info:
          $ref: '#/components/schemas/SecurityInfo.OAuth2Info'
    Self:
      description: Self-referring URI.
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
      readOnly: true
    SerAvailabilityNotificationSubscription.CallbackReference:
      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.
      type: string
      format: uri
    SerAvailabilityNotificationSubscription:
      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.
      type: object
      required:
        - subscriptionType
        - callbackReference
        - _links
        - filteringCriteria
      properties:
        subscriptionType:
          $ref: >-
            #/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType
        callbackReference:
          $ref: >-
            #/components/schemas/SerAvailabilityNotificationSubscription.CallbackReference
        _links:
          $ref: '#/components/schemas/Self'
        filteringCriteria:
          $ref: '#/components/schemas/ServiceInfo'
    SerAvailabilityNotificationSubscription.SubscriptionType:
      description: Shall be set to SerAvailabilityNotificationSubscription.
      type: string
      example: SerAvailabilityNotificationSubscription
    ServiceAvailabilityNotification:
      description: >-
        This type represents the service availability information.
      type: object
      required:
        - notificationType
        - services
        - _links
      properties:
        notificationType:
          $ref: >-
            #/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType
        services:
          type: array
          items: 
            $ref: '#/components/schemas/ServiceInfo'
        _links:
          $ref: '#/components/schemas/Subscription'
    SerializerTypes:
      description: The enumeration SerializerTypes represents types of serializers
      type: string
      enum:
        - JSON
        - XML
        - PROTOBUF3
      example: JSON
    ServiceInfo.SerInstanceId:
      description: >-
        Identifier of the service instance assigned by the MEPM / mobile edge
        platform.
      type: string
      readOnly: true
      example: ServiceInstance123
    ServiceInfo.SerName:
      description: >-
        The name of the service. This is how the service producing mobile edge
        application identifies the service instance it produces.
      type: string
      example: ExampleService
    ServiceInfo.State:
      description: Contains the state
      type: string
      enum:
        - ACTIVE
        - INACTIVE
      example: ACTIVE
    ServiceInfo.TransportId:
      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.
      type: string
      example: Rest1
    ServiceInfo.Version:
      description: Service version
      type: string
      example: ServiceVersion1
    ServiceInfo:
      description: This type represents the general information of a mobile edge service.
      type: object
      required:
        - serName
        - version
        - state
        - serializer
      properties:
        serInstanceId:
          $ref: '#/components/schemas/ServiceInfo.SerInstanceId'
        serName:
          $ref: '#/components/schemas/ServiceInfo.SerName'
        serCategory:
          $ref: '#/components/schemas/CategoryRef'
        version:
          $ref: '#/components/schemas/ServiceInfo.Version'
        state:
          $ref: '#/components/schemas/ServiceInfo.State'
        transportId:
          $ref: '#/components/schemas/ServiceInfo.TransportId'
        transportInfo:
          $ref: '#/components/schemas/TransportInfo'
        serializer:
          $ref: '#/components/schemas/SerializerTypes'
    Subscription:
      description: A link to the related subscription
      type: object
      required:
        - subscription
      properties:
        subscription:
          $ref: '#/components/schemas/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
      example: NONE
    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
      example: 192.0.2.0
    TimingCaps.NtpServers.NtpServerAddrType:
      description: Address type of NTP server
      type: string
      enum:
        - IP_ADDRESS
        - DNS_NAME
      example: IP_ADDRESS
    TimingCaps.NtpServers.PtpMasterIpAddress:
      description: PTP Master IP Address
      type: string
      example: 192.0.2.0
    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: '#/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'
    TimingCaps.PtpMasters:
      description: NTP server detail.
      type: object
      required:
        - ptpMasterIpAddress
        - ptpMasterLocalPriority
        - delayReqMaxRate
      properties:
        ptpMasterIpAddress:
          $ref: '#/components/schemas/TimingCaps.NtpServers.PtpMasterIpAddress'
        ptpMasterLocalPriority:
          $ref: '#/components/schemas/TimingCaps.NtpServers.PtpMasterLocalPriority'
        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: >-
        This type represents the information provided by the mobile edge
        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:
            $ref: '#/components/schemas/TimingCaps.PtpMasters'
    TrafficFilter.Address:
      description: Identify the traffic ip address.
      type: string
      example: 192.168.1.1
    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