Mp1.yaml 72.4 KB
Newer Older
          $ref: '#/components/schemas/ServiceInfo.State'
        transportId:
          $ref: '#/components/schemas/ServiceInfo.TransportId'
        transportInfo:
          $ref: '#/components/schemas/TransportInfo'
        serializer:
          $ref: '#/components/schemas/SerializerTypes'
        scopeOfLocality:
          $ref: '#/components/schemas/LocalityTypes'
        consumedLocalOnly:
          $ref: '#/components/schemas/ServiceInfo.ConsumedLocalOnly'
        isLocal:
          $ref: '#/components/schemas/ServiceInfo.IsLocal'
    ServiceInfo:
      description: This type represents the general information of a mobile edge service.
      type: object
      required:
        - serName
        - version
        - state
        - transportInfo
        - 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'
        transportInfo:
          $ref: '#/components/schemas/TransportInfo'
        serializer:
          $ref: '#/components/schemas/SerializerTypes'
        scopeOfLocality:
          $ref: '#/components/schemas/LocalityTypes'
        consumedLocalOnly:
          $ref: '#/components/schemas/ServiceInfo.ConsumedLocalOnly'
        isLocal: 
          $ref: '#/components/schemas/ServiceInfo.IsLocal'
    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
    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'
      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: >-
        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
    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: >-
        The action of the ME host data plane when a packet matches the
        trafficFilter
      type: string
      enum:
        - DROP
        - FORWARD_DECAPSULATED
        - FORWARD_AS_IS
        - PASSTHROUGH
        - DUPLICATE_DECAPSULATED
        - DUPLICATE_AS_IS
    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:
      description: Contains the traffic rule state
      type: string
      enum:
        - ACTIVE
        - INACTIVE
    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'
    TransportInfo.Description:
      description: Human-readable description of this transport
      type: string
    TransportInfo.Id:
      description: The identifier of this transport
      type: string
    TransportInfo.ImplSpecificInfo:
      description: Additional implementation specific details of the transport
      type: object
    TransportInfo.Name:
      description: The name of this transport
      type: string
    TransportInfo.Protocol:
      description: The name of the protocol used. Shall be set to HTTP for a REST API.
      type: string
    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
        - security
      properties:
        id:
          $ref: '#/components/schemas/TransportInfo.Id'
        name:
          $ref: '#/components/schemas/TransportInfo.Name'
        description:
          $ref: '#/components/schemas/TransportInfo.Description'
        type:
          $ref: '#/components/schemas/TransportTypes'
        protocol:
          $ref: '#/components/schemas/TransportInfo.Protocol'
        version:
          $ref: '#/components/schemas/TransportInfo.Version'
        endpoint:
          description: This type represents information about a transport endpoint
          type: object
          oneOf:
            - $ref: '#/components/schemas/EndPointInfo.Uris'
            - $ref: '#/components/schemas/EndPointInfo.Addresses'
            - $ref: '#/components/schemas/EndPointInfo.Alternative'
        security:
          $ref: '#/components/schemas/SecurityInfo'
        implSpecificInfo:
          $ref: '#/components/schemas/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
    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: >-
        Represents a mobile edge application instance. Note that the
        appInstanceId is allocated by the mobile edge platform manager.
      in: path
      required: true
      schema:
        type: string
    Path.DnsRuleId:
      name: dnsRuleId
      description: Represents a DNS rule.
      in: path
      required: true
      schema:
        type: string
    Path.SubscriptionId:
      name: subscriptionId
      description: >-
        Represents a subscription to the notifications from the mobile edge
        platform.
      in: path
      required: true
      schema:
        type: string
    Path.SubscriptionType:
      name: subscriptionType
      description: >-
        Represents a subscription type to the notifications from the mobile edge
        platform.
      in: path
      required: true
      schema:
        type: string
        enum:
          - AppTerminationNotificationSubscription        
          - SerAvailabilityNotificationSubscription
    Path.ServiceId:
      name: serviceId
      description: Represents a mobile edge service instance.
      in: path
      required: true
      schema:
        type: string
    Path.TrafficRuleId:
      name: trafficRuleId
      description: Represents a traffic rule.
      in: path
      required: true
      schema:
        type: string
    Query.Ser_category_id:
      name: ser_category_id
      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.
      in: query
      required: false
      schema:
        type: string
    Query.Ser_instance_id:
      name: ser_instance_id
      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.
      in: query
      required: false
      schema:
        type: array
        items:
          type: string
    Query.Ser_name:
      name: ser_name
      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.
      in: query
      required: false
      schema:
        type: array
        items:
    Query.LocalityTypes:
      name: scope_of_locality
      description: >-
        A MEC application instance may use scope_of_locality as an input 
        parameter to query the availability of a list of MEC service instances 
        with a certain scope of locality.
      in: query
      required: false
      schema:
        type: string
    Query.Is_local:
      name: is_local
      description: >-
        Indicate whether the service is located in the same locality (as 
        defined by scopeOfLocality) as the consuming MEC application.
      in: query
      required: false
      schema:
        type: boolean
    Query.Consumed_local_only:
      name: consumed_local_only
      description: >-
        Indicate whether the service can only be consumed by the MEC 
        applications located in the same locality (as defined by 
        scopeOfLocality) as this service instance.
      in: query
      required: false
      schema:
        type: boolean
  responses:
    ApplicationsDnsRules.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            type: array
            minItems: 0
            items:
              $ref: '#/components/schemas/DnsRule'
          examples:
            DnsRules:
              $ref: '#/components/examples/DnsRules'
      links:
        getIndividualMeDNSRule:
          $ref: '#/components/links/GetIndividualMeDNSRule'
        putIndividualMeDNSRule:
          $ref: '#/components/links/PutIndividualMeDNSRule'
    ApplicationsDnsRule.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DnsRule'
          examples:
            DnsRule:
              $ref: '#/components/examples/DnsRule'
    ApplicationsSubscriptions.200:
      description: >-
        Upon success, a response body containing the list of links to the
        requested subscriptions is returned.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Mp1SubscriptionLinkList'
      links:
        getIndividualMeMp1SubscriptionLinkList:
          $ref: '#/components/links/GetIndividualMeMp1SubscriptionLinkList'
        delIndividualMeMp1SubscriptionLinkList:
          $ref: '#/components/links/DelIndividualMeMp1SubscriptionLinkList'
    ApplicationsSubscriptions.201:
      description: >-
        Entity body in the request contains a subscription to the mobile
        edge service availability notifications that is to be created.
      headers:
        location:
          description: The resource URI of the created resource
          schema:
            type: string
            format: uri
      content:
        application/json:
          schema:
            oneOf: 
              - $ref: '#/components/schemas/AppTerminationNotificationSubscription'
              - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
      links:
        getIndividualMeMp1Subscription:
          $ref: '#/components/links/GetIndividualMeMp1Subscription'
        delIndividualMeMp1Subscription:
          $ref: '#/components/links/DelIndividualMeMp1Subscription'
    ApplicationsSubscription.200:
      description: >-
        Upon success, a response body containing the requested subscription
        is returned.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/AppTerminationNotificationSubscription'
              - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
    ApplicationsTrafficRules.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            type: array
            minItems: 0
            items:
              $ref: '#/components/schemas/TrafficRule'
          examples:
            TrafficRules:
              $ref: '#/components/examples/TrafficRules'
      links:
        getIndividualMeTrafficRule:
          $ref: '#/components/links/GetIndividualMeTrafficRule'
        putIndividualMeTrafficRule:
          $ref: '#/components/links/PutIndividualMeTrafficRule'
    ApplicationsTrafficRule.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TrafficRule'
          examples:
            TrafficRule:
              $ref: '#/components/examples/TrafficRule'
    Services.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            type: array
            minItems: 0
            items:
              $ref: '#/components/schemas/ServiceInfo'
          examples:
            ServiceInfoList:
              $ref: '#/components/examples/ServiceInfoList'
      links:
        getIndividualMeService:
          $ref: '#/components/links/GetIndividualMeService'
        putIndividualMeService:
          $ref: '#/components/links/PutIndividualMeService'
    Services.201:
      description: >-
        Upon success, the HTTP response shall include a Location HTTP header
        that contains the resource URI of the created resource.
      headers:
        location:
          description: The resource URI of the created resource
          schema:
            type: string
            format: uri
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceInfo'
          examples:
            ServiceInfo:
              $ref: '#/components/examples/ServiceInfo'
      links:
        getIndividualMeService:
          $ref: '#/components/links/GetIndividualMeService'
        putIndividualMeService:
          $ref: '#/components/links/PutIndividualMeService'
    ServicesServiceId.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceInfo'
          examples:
            ServiceInfo:
              $ref: '#/components/examples/ServiceInfo'
    TimingCurrentTime.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CurrentTime'
    TimingCaps.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TimingCaps'
    Transports.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.
      content:
        application/json:
          schema:
            type: array
            minItems: 0
            items:
              $ref: '#/components/schemas/TransportInfo'
      links:
        getTransportInfo:
          $ref: '#/components/links/GetTransportInfo'
      description: >-
        Bad Request.
        It is used to indicate that incorrect parameters were passed to the request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
        text/plain:
          schema:
            $ref: '#/components/schemas/Empty'
    Error.401:
      description: >-
        Unauthorized.
        It is used when the client did not submit the appropriate credentials.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
      description: >-
        Forbidden.
        The operation is not allowed given the current status of the resource. 
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    Error.404:
      description: >-
        Not Found.
        It is used when a client provided a URI that cannot be mapped 
        to a valid resource URI.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
        text/plain:
          schema:
            $ref: '#/components/schemas/Empty'
    Error.409:
      description: >- 
        Conflict.
        The operation cannot be executed currently, due to a conflict with 
        the state of the resource. Typically, this is because the application 
        instance resource is in NOT_INSTANTIATED state.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
      description: >-
        Precondition Failed.
        It is used when a condition has failed during conditional requests, 
        e.g. when using ETags to avoid write conflicts.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
        text/plain:
          schema:
            $ref: '#/components/schemas/Empty'
    Error.429:
      description: >-
        Too Many Requests.
        It is used when a rate limiter has triggered.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
          schema:
            $ref: '#/components/schemas/Empty'
  requestBodies:
    ApplicationsDnsRule:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DnsRule'
      description: The updated state is included in the entity body of the request.
      required: true
    ApplicationsSubscriptions:
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/AppTerminationNotificationSubscription'
              - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
      description: >-
        Entity body in the request contains a subscription to the mobile edge
        application termination notifications that is to be created.
      required: true
    ApplicationsTrafficRule:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TrafficRule'
      description: One or more updated attributes that are allowed to be changed
      required: true
    Services:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceInfo'
      description: >-
        New ServiceInfo with updated "state" is included as entity body of the
        request
      required: true
    Services.Post:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceInfo.Post'
      description: >-
        New ServiceInfo with updated "state" is included as entity body of the
        request
      required: true
    ServicesServiceId:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceInfo'
      description: >-
        New ServiceInfo with updated "state" is included as entity body of the
        request
      required: true
    AppTerminationNotification:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AppTerminationNotification'
      required: true
    ServiceAvailabilityNotification:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAvailabilityNotification'
      required: true
  callbacks:
    AppTerminationNotification:
      '{$request.body#/callbackReference}':
          description: >-
            Represents the information that the MEP notifies the
            subscribed application instance about the corresponding 
            application instance termination/stop
          operationId: AppTerminationNotification_POST
          tags:
            - callback
          requestBody:
            $ref: '#/components/requestBodies/AppTerminationNotification'
          responses:
            '200':
              description: Expected responses from callback consumer, if it accepts the callback
    ServiceAvailabilityNotification:
      '{$request.body#/callbackReference}':
          description: >-
            'Represents the service availability information that 
            is used in the following cases
            - when the MEC platform announces the newly available
             services to the authorized relevant MEC applications (e.g. 
             the applications that indicate the services as "optional" 
             or "required") that are subscribed to the corresponding 
             service availability notifications
            -	when the MEC platform notifies the authorized relevant 
            applications that are subscribed to the corresponding 
            service availability notifications about the service availability changes.'
          operationId: ServiceAvailabilityNotification_POST
          tags:
            - callback
          requestBody:
            $ref: '#/components/requestBodies/ServiceAvailabilityNotification'
          responses:
            '200':
              description: Expected responses from callback consumer, if it accepts the callback
  links:
    GetIndividualMeService:
      operationId: ServicesServiceId_GET
      description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `GET /services/{serviceId}`
      parameters:
        serviceId: '$response.body#/serviceId'
    PutIndividualMeService:
      operationId: ServicesServiceId_PUT
      description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `PUT /services/{serviceId}`
      parameters:
        serviceId: '$response.body#/serviceId'
    GetIndividualMeDNSRule:
      operationId: ApplicationsDnsRule_GET
      description: The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `GET /applications/{appInstanceId}/dns_rules/{dnsRuleId}`
      parameters:
        dnsRuleId: '$response.body#/dnsRuleId'
    PutIndividualMeDNSRule:
      operationId: ApplicationsDnsRule_PUT
      description: The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `PUT /applications/{appInstanceId}/dns_rules/{dnsRuleId}`
      parameters:
        dnsRuleId: '$response.body#/dnsRuleId'
    GetIndividualMeTrafficRule:
      operationId: ApplicationsTrafficRule_GET
      description: The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `GET /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`
      parameters:
        trafficRuleId: '$response.body#/trafficRuleId'
    PutIndividualMeTrafficRule:
      operationId: ApplicationsTrafficRule_PUT
      description: The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `PUT /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`
      parameters:
        trafficRuleId: '$response.body#/trafficRuleId'
    GetTransportInfo:
      operationId: AppServices_POST
      description: The `id` value returned in the response can be used as the `transportId` parameter in `POST /applications/{appInstanceId}/services`. The first transport is provided as the link as wildcards are not supported
      parameters:
        transportId: '$response.body#/0/id'
      operationId: ApplicationsSubscription_GET
      description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`
      parameters:
        description: regex = \/mp1\/v1\/applications\/.*\/subscriptions\/.*\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute
        subscriptionId: 'TBC'
    DelIndividualMeMp1Subscription:
      operationId: ApplicationsSubscription_DELETE
      description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`
        description: regex = \/mp1\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute
        subscriptionId: 'TBC'
    GetIndividualMeMp1SubscriptionLinkList:
      operationId: ApplicationsSubscription_GET
      description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`