MecAppSupportApi.yaml 47.4 KB
Newer Older
Walter Featherstone's avatar
Walter Featherstone committed
  - url: 'http://127.0.0.1:8081/mec_app_support/v1'
  - url: 'https://127.0.0.1:8081/mec_app_support/v1'
Walter Featherstone's avatar
Walter Featherstone committed
  title: MEC Application Support API
  version: 2.1.1
  description: The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
  contact:
    email: cti_support@etsi.org
externalDocs:
Walter Featherstone's avatar
Walter Featherstone committed
  description: 'ETSI GS MEC011 Application Enablement API, V2.1.1'
Walter Featherstone's avatar
Walter Featherstone committed
    https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf
Walter Featherstone's avatar
Walter Featherstone committed
  - name: appTrafficRules
  - name: appDnsRules
  - name: appSubscriptions
  - name: appConfirmTermination
  - name: appConfirmReady
  - name: timing
  - name: callbacks
Walter Featherstone's avatar
Walter Featherstone committed
  '/applications/{appInstanceId}/traffic_rules':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
    get:
      description: >-
        This method retrieves information about all the traffic rules associated
        with a MEC application instance.
      operationId: ApplicationsTrafficRules_GET
      tags:
        - appTrafficRules
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRules.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
  '/applications/{appInstanceId}/traffic_rules/{trafficRuleId}':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.TrafficRuleId'
    get:
      description: >-
        This method retrieves information about all the traffic rules associated
        with a MEC application instance.
      operationId: ApplicationsTrafficRule_GET
      tags:
        - appTrafficRules
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRule.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
    put:
      description: >-
        This method retrieves information about all the traffic rules associated
        with a MEC application instance.
      operationId: ApplicationsTrafficRule_PUT
      tags:
        - appTrafficRules
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsTrafficRule.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
        '412':
          $ref: '#/components/responses/Error.412'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationsTrafficRule'
  '/applications/{appInstanceId}/dns_rules':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      description: >-
        This method retrieves information about all the DNS rules associated
Walter Featherstone's avatar
Walter Featherstone committed
        with a MEC application instance.
      operationId: ApplicationsDnsRules_GET
Walter Featherstone's avatar
Walter Featherstone committed
        - appDnsRules
      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
Walter Featherstone's avatar
Walter Featherstone committed
        MEC application instance.
      operationId: ApplicationsDnsRule_GET
Walter Featherstone's avatar
Walter Featherstone committed
        - appDnsRules
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsDnsRule.200'
    put:
      description: 'This method activates, de-activates or updates a traffic rule.'
      operationId: ApplicationsDnsRule_PUT
Walter Featherstone's avatar
Walter Featherstone committed
        - appDnsRules
      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
Walter Featherstone's avatar
Walter Featherstone committed
        - appSubscriptions
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsSubscriptions.200'
      description: >-
        The POST method may be used to create a new subscription. One example
Walter Featherstone's avatar
Walter Featherstone committed
        use case is to create a new subscription to the MEC service
        availability notifications. Upon success, the response contains entity
        body describing the created subscription.
      operationId: ApplicationsSubscriptions_POST
Walter Featherstone's avatar
Walter Featherstone committed
        - appSubscriptions
      responses:
          $ref: '#/components/responses/ApplicationsSubscriptions.201'
          $ref: '#/components/responses/Error.404'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationsSubscriptions'
      callbacks:
        appTerminationNotification:
          $ref: '#/components/callbacks/AppTerminationNotification'
Walter Featherstone's avatar
Walter Featherstone committed
  '/applications/{appInstanceId}/subscriptions/{subscriptionId}':
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $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
Walter Featherstone's avatar
Walter Featherstone committed
        - appSubscriptions
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsSubscription.200'
Walter Featherstone's avatar
Walter Featherstone committed
        This method deletes a mecAppSuptApiSubscription. This method is typically used
        in "Unsubscribing from service availability event notifications"
        procedure.
      operationId: ApplicationsSubscription_DELETE
Walter Featherstone's avatar
Walter Featherstone committed
        - appSubscriptions
      responses:
        '204':
          description: No Content
Walter Featherstone's avatar
Walter Featherstone committed
  '/applications/{appInstanceId}/confirm_termination':
      - $ref: '#/components/parameters/Path.AppInstanceId'
Walter Featherstone's avatar
Walter Featherstone committed
        This method is used to confirm the application level termination 
        of an application instance.
      operationId: ApplicationsConfirmTermination_POST
Walter Featherstone's avatar
Walter Featherstone committed
        - appConfirmTermination
      responses:
Walter Featherstone's avatar
Walter Featherstone committed
        '204':
          description: No Content
			  
												  
        '401':
          $ref: '#/components/responses/Error.401'
Walter Featherstone's avatar
Walter Featherstone committed
        '409':
          $ref: '#/components/responses/Error.409'
        '429':
          $ref: '#/components/responses/Error.429'
Walter Featherstone's avatar
Walter Featherstone committed
        $ref: '#/components/requestBodies/ApplicationsConfirmTermination'
  '/applications/{appInstanceId}/confirm_ready':
Walter Featherstone's avatar
Walter Featherstone committed
      - $ref: '#/components/parameters/Path.AppInstanceId'
    post:
Walter Featherstone's avatar
Walter Featherstone committed
       This method may be used by the MEC application instance to notify the MEC platform that it is up and running. 
      operationId: ApplicationsConfirmReady_POST
Walter Featherstone's avatar
Walter Featherstone committed
        - appConfirmReady
      responses:
Walter Featherstone's avatar
Walter Featherstone committed
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Error.401'
Walter Featherstone's avatar
Walter Featherstone committed
        '409':
          $ref: '#/components/responses/Error.409'
        '429':
          $ref: '#/components/responses/Error.429'
Walter Featherstone's avatar
Walter Featherstone committed
        $ref: '#/components/requestBodies/ApplicationsConfirmReady'
      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'
Walter Featherstone's avatar
Walter Featherstone committed
  '/timing/current_time':
Walter Featherstone's avatar
Walter Featherstone committed
        This method retrieves the information of the platform's current time
        which corresponds to the get platform time procedure
      operationId: TimingCurrentTime_GET
Walter Featherstone's avatar
Walter Featherstone committed
        - timing
      responses:
        '200':
Walter Featherstone's avatar
Walter Featherstone committed
          $ref: '#/components/responses/TimingCurrentTime.200'
          $ref: '#/components/responses/Error.404'
components:
  schemas:
    Empty:
      description: Empty schema
Walter Featherstone's avatar
Walter Featherstone committed
    AppReadyConfirmation:
      description: >-
        This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running.
      type: object
      required:
        - indication
      properties:
        indication:
          $ref: '#/components/schemas/ReadyIndicationType'
    AppTerminationConfirmation:
      description: >-
        This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop.
      type: object
      required:
        - operationAction
      properties:
        operationAction:
          $ref: '#/components/schemas/OperationActionType'
    AppTerminationNotification.Links:
      description: >-
        Object containing hyperlinks related to the resource.
      type: object
      required:
        - subscription
      properties:
        subscription:
          $ref: '#/components/schemas/LinkType'
        confirmTermination:
          $ref: '#/components/schemas/LinkType.ConfirmTermination'
    AppTerminationNotification.MaxGracefulTimeout:
      description: >-
        Maximum timeout value in seconds for graceful termination or graceful
        stop of an application instance.
      format: uint32
      example: 10
    AppTerminationNotification.NotificationType:
      description: Shall be set to AppTerminationNotification.
      type: string
Walter Featherstone's avatar
Walter Featherstone committed
        This type represents the information that the MEC platform
        notifies the subscribed application instance about  the corresponding
        application instance termination/stop.
      type: object
      required:
        - notificationType
Walter Featherstone's avatar
Walter Featherstone committed
        - operationAction
        - maxGracefulTimeout
        - _links
      properties:
        notificationType:
          $ref: '#/components/schemas/AppTerminationNotification.NotificationType'
Walter Featherstone's avatar
Walter Featherstone committed
        operationAction:
          $ref: '#/components/schemas/OperationActionType'
        maxGracefulTimeout:
          $ref: '#/components/schemas/AppTerminationNotification.MaxGracefulTimeout'
        _links:
Walter Featherstone's avatar
Walter Featherstone committed
          $ref: '#/components/schemas/AppTerminationNotification.Links'
    AppTerminationNotificationSubscription.AppInstanceId:
      description: It is used as the filtering criterion for the subscribed events.
      type: string
    AppTerminationNotificationSubscription.CallbackReference:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
        URI selected by the MEC application instance to receive
        notifications on the subscribed MEC application instance
        management information. This shall be included in both the request and
        the response.
      type: string
      format: uri
    AppTerminationNotificationSubscription:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
        This type represents the information that the MEC 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'
Walter Featherstone's avatar
Walter Featherstone committed
        This type represents the information provided by the MEC
        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
    DestinationInterface.InterfaceType:
      description: Type of the interface
      type: string
      enum:
        - TUNNEL
        - MAC
        - IP
    DestinationInterface.IpAddress:
      description: IP address of the remote destination
      type: string
    DestinationInterface.MacAddress:
      description: Source address identifies the MAC address of the interface
      type: string
Walter Featherstone's avatar
Walter Featherstone committed
      description: This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided.
      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
    DnsRule.Id:
      description: Identifies the DNS Rule
      type: string
    DnsRule.IpAddress:
      description: IP address associated with the FQDN resolved by the DNS rule
      type: string
    DnsRule.IpAddressType:
      description: IP address type
      type: string
      enum:
        - IP_V6
        - IP_V4
Walter Featherstone's avatar
Walter Featherstone committed
      description: DNS rule state. This attribute may be updated using HTTP PUT method
    DnsRule.Ttl:
      description: Time to live value
      type: integer
      format: uint32
      example: '?'
    DnsRule:
      description: This type represents the general information of a DNS rule.
      type: object
      required:
        - dnsRuleId
        - domainName
        - ipAddressType
        - ipAddress
        - state
      properties:
        dnsRuleId:
          $ref: '#/components/schemas/DnsRule.Id'
        domainName:
          $ref: '#/components/schemas/DnsRule.DomainName'
        ipAddressType:
          $ref: '#/components/schemas/DnsRule.IpAddressType'
        ipAddress:
          $ref: '#/components/schemas/DnsRule.IpAddress'
        ttl:
          $ref: '#/components/schemas/DnsRule.Ttl'
        state:
          $ref: '#/components/schemas/DnsRule.State'
Walter Featherstone's avatar
Walter Featherstone committed
    LinkType:
      description: This type represents a type of link and may be referenced from data structures
      type: object
      properties:
Walter Featherstone's avatar
Walter Featherstone committed
        href: 
          $ref: '#/components/schemas/Href'
    LinkType.ConfirmTermination:
Walter Featherstone's avatar
Walter Featherstone committed
        Link to the task resource where to confirm termination in case the 
        application is ready to be terminated before expiry of the timeout.
      type: object
      properties:
        href: 
          $ref: '#/components/schemas/Href'
    Href:
      description: URI referring to a resource
      type: string
      format: uri
Walter Featherstone's avatar
Walter Featherstone committed
      example: '/mecAppSuptApi/example'
    MecAppSuptApiSubscriptionLinkList.Links:
      description: Self-referring URI.
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
Walter Featherstone's avatar
Walter Featherstone committed
        subscriptions:
          description: The MEC application instance's subscriptions
Walter Featherstone's avatar
Walter Featherstone committed
            $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription'
    MecAppSuptApiSubscriptionLinkList.Subscription:
      description: A link to a subscription.
      type: object
      required:
        - href
        - rel
      properties:
        href:
          $ref: '#/components/schemas/Href'
        rel:
          description: >-
Walter Featherstone's avatar
Walter Featherstone committed
            The values shall be set to AppTerminationNotificationSubscription.
Walter Featherstone's avatar
Walter Featherstone committed
    MecAppSuptApiSubscriptionLinkList:
      description: >-
        This type represents a list of links related to currently existing
Walter Featherstone's avatar
Walter Featherstone committed
        subscriptions for a MEC application instance. This information
        is returned when sending a request to receive current subscriptions.
      type: object
      required:
        - _links
      properties:
        _links:
Walter Featherstone's avatar
Walter Featherstone committed
          $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links'
    OperationActionType:
      description: Operation that is being performed on the MEC application instance.
      type: string
      enum:
        - STOPPING
        - TERMINATING
      example: 'TERMINATING'
    ProblemDetails:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Problem.type'
        title:
          $ref: '#/components/schemas/Problem.title'
        status:
          $ref: '#/components/schemas/Problem.status'
        detail:
          $ref: '#/components/schemas/Problem.detail'
        instance:
          $ref: '#/components/schemas/Problem.instance'
    Problem.detail:
      type: string
      description: A human-readable explanation specific to this occurrence of the problem
    Problem.instance:
      type: string
      format: uri
      description: A URI reference that identifies the specific occurrence of the problem
    Problem.status:
      type: integer
      format: uint32
      description: The HTTP status code for this occurrence of the problem
    Problem.title:
      type: string
      description: 'A short, human-readable summary of the problem type'
    Problem.type:
      type: string
      format: uri
      description: >-
        A URI reference according to IETF RFC 3986 that identifies the problem
        type
Walter Featherstone's avatar
Walter Featherstone committed
    ReadyIndicationType:
      description: Indication about the MEC application instance.
Walter Featherstone's avatar
Walter Featherstone committed
        - READY
      example: 'READY'
    Self:
      description: Self-referring URI.
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
      readOnly: true
    TimingCaps.NtpServers.AuthenticationKeyNum:
      description: Authentication key number
      type: integer
      format: uint32
      example: 1
    TimingCaps.NtpServers.AuthenticationOption:
      description: NTP authentication option
      type: string
      enum:
        - NONE
        - SYMMETRIC_KEY
        - AUTO_KEY
    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
    TimingCaps.NtpServers.NtpServerAddrType:
      description: Address type of NTP server
      type: string
      enum:
        - IP_ADDRESS
        - DNS_NAME
    TimingCaps.NtpServers_PtpMasterIpAddress:
    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'
          $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: >-
Walter Featherstone's avatar
Walter Featherstone committed
        This type represents the information provided by the MEC
        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
    TrafficFilter.DSCP:
      description: >-
        Used to match all IPv4 packets that have the same Differentiated
        Services Code Point (DSCP)
      type: integer
      format: uint32
      example: 0
    TrafficFilter.Port:
      description: A port
      type: string
      example: '8080'
    TrafficFilter.Protocol:
      description: Protocol of the traffic filter
      type: string
      example: '?'
    TrafficFilter.QCI:
      description: >-
        Used to match all packets that have the same Quality Class Indicator
        (QCI).
      type: integer
      format: uint32
      example: 1
    TrafficFilter.TC:
      description: Used to match all IPv6 packets that have the same Traffic Class.
      type: integer
      format: uint32
      example: 1
    TrafficFilter.Token:
      description: Used for token based traffic rule
      type: string
      example: '?'
    TrafficFilter.TunnelAddress:
      description: Used for GTP tunnel based traffic rule
      type: string
      example: '?'
    TrafficFilter.TunnelPort:
      description: Used for GTP tunnel based traffic rule
      type: string
      example: '?'
    TrafficFilter:
      description: This type represents the traffic filter.
      type: object
      properties:
        srcAddress:
          description: >-
            An IP address or a range of IP address. For IPv4, the IP address
            could be an IP address plus mask, or an individual IP address, or a
            range of IP addresses. For IPv6, the IP address could be an IP
            prefix, or a range of IP prefixes.
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Address'
        dstAddress:
          description: >-
            An IP address or a range of IP address. For IPv4, the IP address
            could be an IP address plus mask, or an individual IP address, or a
            range of IP addresses. For IPv6, the IP address could be an IP
            prefix, or a range of IP prefixes.
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Address'
        srcPort:
          description: A port or a range of ports
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Port'
        dstPort:
          description: A port or a range of ports
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Port'
        protocol:
          description: Specify the protocol of the traffic filter
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Protocol'
        token:
          description: Used for token based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.Token'
        srcTunnelAddress:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelAddress'
        tgtTunnelAddress:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelAddress'
        srcTunnelPort:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelPort'
        dstTunnelPort:
          description: Used for GTP tunnel based traffic rule
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter.TunnelPort'
        qCI:
          $ref: '#/components/schemas/TrafficFilter.QCI'
        dSCP:
          $ref: '#/components/schemas/TrafficFilter.DSCP'
        tC:
          $ref: '#/components/schemas/TrafficFilter.TC'
    TrafficRule.Action:
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
        The action of the MEC host data plane when a packet matches the trafficFilter
					 
Walter Featherstone's avatar
Walter Featherstone committed
        - FORWARD_ENCAPSULATED
Walter Featherstone's avatar
Walter Featherstone committed
        - DUPLICATE_ENCAPSULATED
    TrafficRule.FilterType:
      description: >-
        Definition of filter per FLOW or PACKET. If flow the filter match
        UE->EPC packet and the reverse packet is handled in the same context
      type: string
      enum:
        - FLOW
        - PACKET
      example: FLOW
    TrafficRule.Id:
      description: Identify the traffic rule.
      type: string
      description: >-
        Priority of this traffic rule. If traffic rule conflicts, the one with
        higher priority take precedence
      type: integer
      format: uint32
      example: 1
    TrafficRule.State:
Walter Featherstone's avatar
Walter Featherstone committed
      description: Contains the traffic rule state. This attribute may be updated using HTTP PUT method
    TrafficRule:
      description: This type represents the general information of a traffic rule.
      type: object
      required:
        - trafficRuleId
        - filterType
        - priority
        - trafficFilter
        - action
        - state
      properties:
        trafficRuleId:
          $ref: '#/components/schemas/TrafficRule.Id'
        filterType:
          $ref: '#/components/schemas/TrafficRule.FilterType'
        priority:
          $ref: '#/components/schemas/TrafficRule_Priority'
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter'
        action:
          $ref: '#/components/schemas/TrafficRule.Action'
        dstInterface:
          $ref: '#/components/schemas/DestinationInterface'
        state:
          $ref: '#/components/schemas/TrafficRule.State'
    TunnelInfo.TunnelDstAddress:
      description: Destination address of the tunnel
      type: string
      example: '?'
    TunnelInfo.TunnelSrcAddress:
      description: Source address of the tunnel
      type: string
      example: '?'
    TunnelInfo.TunnelType:
      description: This type represents the tunnel information.
      type: string
      enum:
        - GTP_U
        - GRE
    TunnelInfo:
      description: This type represents the tunnel information.
      type: object
      required:
        - tunnelType
      properties:
        tunnelType:
          $ref: '#/components/schemas/TunnelInfo.TunnelType'
        tunnelDstAddress:
          $ref: '#/components/schemas/TunnelInfo.TunnelDstAddress'
        tunnelSrcAddress:
          $ref: '#/components/schemas/TunnelInfo.TunnelSrcAddress'
  parameters:
    Path.AppInstanceId:
      name: appInstanceId
      description: >-
Walter Featherstone's avatar
Walter Featherstone committed
        Represents a MEC application instance. Note that the
        appInstanceId is allocated by the MEC platform manager.
        type: string
    Path.DnsRuleId:
      name: dnsRuleId
      description: Represents a DNS rule.
      in: path
      required: true
      schema:
        type: string
    Path.SubscriptionId:
      name: subscriptionId
      description: >-