MecServiceMgmtApi.yaml 43.4 KB
Newer Older
openapi: 3.0.2
servers:
  - url: 'http://127.0.0.1:8081/mec_service_mgmt/v1'
  - url: 'https://127.0.0.1:8081/mec_service_mgmt/v1'
info:
  title: MEC Service Management API
kharimza's avatar
kharimza committed
  version: 2.0.11
  description: The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI
  license:
admin_forge's avatar
admin_forge committed
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
  contact:
    email: cti_support@etsi.org
externalDocs:
kharimza's avatar
kharimza committed
  description: 'ETSI GS MEC011 Application Enablement API, V2.0.10'
kharimza's avatar
kharimza committed
    https://docbox.etsi.org/ISG/MEC/70-Draft/0011v211Plat.App.Enabl/MEC-0011v211Plat.App.Enablv2010.zip
tags:
  - name: appSubscriptions
  - name: appServices
  - name: services
  - name: transports
  - name: callbacks
paths:
  '/services':
    get:
      description: >-
        This method retrieves information about a list of mecService resources.
        This method is typically used in "service availability query" procedure
      operationId: Services_GET
      tags:
        - services
      parameters:
        - $ref: '#/components/parameters/Query.Ser_instance_id'
        - $ref: '#/components/parameters/Query.Ser_name'
        - $ref: '#/components/parameters/Query.Ser_category_id'
        - $ref: '#/components/parameters/Query.Consumed_local_only'
        - $ref: '#/components/parameters/Query.Is_local'
kharimza's avatar
kharimza committed
        - $ref: '#/components/parameters/Query.LocalityType' 
      responses:
        '200':
          $ref: '#/components/responses/Services.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
  '/services/{serviceId}':
    parameters:
      - $ref: '#/components/parameters/Path.ServiceId'
    get:
      description: >-
        This method retrieves information about a mecService resource. This
        method is typically used in "service availability query" procedure
      operationId: ServicesServiceId_GET
      tags:
        - services
      responses:
        '200':
          $ref: '#/components/responses/ServicesServiceId.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
  '/applications/{appInstanceId}/services':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
    get:
      description: >-
        This method retrieves information about a list of mecService resources.
        This method is typically used in "service availability query" procedure
      operationId: AppServices_GET
      tags:
        - appServices
      parameters:
        - $ref: '#/components/parameters/Query.Ser_instance_id'
        - $ref: '#/components/parameters/Query.Ser_name'
        - $ref: '#/components/parameters/Query.Ser_category_id'
        - $ref: '#/components/parameters/Query.Consumed_local_only'
        - $ref: '#/components/parameters/Query.Is_local'
kharimza's avatar
kharimza committed
        - $ref: '#/components/parameters/Query.LocalityType' 
      responses:
        '200':
          $ref: '#/components/responses/Services.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
    post:
      description: >-
        This method is used to create a mecService resource. This method is
        typically used in "service availability update and new service
        registration" procedure
      operationId: AppServices_POST
      tags:
        - appServices
      responses:
        '201':
          $ref: '#/components/responses/Services.201'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
      requestBody:
        $ref: '#/components/requestBodies/Services.Post'
  '/applications/{appInstanceId}/services/{serviceId}':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.ServiceId'
    get:
      description: >-
        This method retrieves information about a mecService resource. This
        method is typically used in "service availability query" procedure
      operationId: AppServicesServiceId_GET
      tags:
        - appServices
      responses:
        '200':
          $ref: '#/components/responses/ServicesServiceId.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
    put:
      description: This method updates the information about a mecService resource
      operationId: AppServicesServiceId_PUT
      tags:
        - appServices
      responses:
        '200':
          $ref: '#/components/responses/ServicesServiceId.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/ServicesServiceId'
  '/applications/{appInstanceId}/subscriptions':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
    get:
      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
      tags:
        - appSubscriptions
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsSubscriptions.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
    post:
      description: >-
        The POST method may be used to create a new subscription. One example
        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
      tags:
        - appSubscriptions
      responses:
        '201':
          $ref: '#/components/responses/ApplicationsSubscriptions.201'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
      requestBody:
        $ref: '#/components/requestBodies/ApplicationsSubscriptions'
      callbacks:
        serviceAvailabilityNotification:
          $ref: '#/components/callbacks/ServiceAvailabilityNotification'
  '/applications/{appInstanceId}/subscriptions/{subscriptionId}':
    parameters:
      - $ref: '#/components/parameters/Path.AppInstanceId'
      - $ref: '#/components/parameters/Path.SubscriptionId'
    get:
      description: >-
        The GET method requests information about a subscription for this
        requestor. Upon success, the response contains entity body with the
        subscription for the requestor.
      operationId: ApplicationsSubscription_GET
      tags:
        - appSubscriptions
      responses:
        '200':
          $ref: '#/components/responses/ApplicationsSubscription.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
    delete:
      description: >-
        This method deletes a mecSrvMgmtSubscription. This method is typically used
        in "Unsubscribing from service availability event notifications"
        procedure.
      operationId: ApplicationsSubscription_DELETE
      tags:
        - appSubscriptions
      responses:
        '204':
          description: No Content
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
  '/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 MEC platform in the
        "transport information query" procedure
      operationId: Transports_GET
      tags:
        - transports
      responses:
        '200':
          $ref: '#/components/responses/Transports.200'
        '400':
          $ref: '#/components/responses/Error.400'
        '403':
          $ref: '#/components/responses/Error.403'
        '404':
          $ref: '#/components/responses/Error.404'
components:
  schemas:
    Empty:
      description: Empty schema
    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, example values include RNI, Location & Bandwidth Management
      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'
kharimza's avatar
kharimza committed
    CategoryRefs:
      description: Categories of services about which to report events.
      type: array
      minItems: 0
      items:
        type: string
    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
      required:
        - host
        - port
      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: object
      required:
        - addresses
      properties:
        addresses:
          type: array
          minItems: 0
          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
      required:
        - alternative
      properties: 
        alternative:
          type: object
    EndPointInfo.Uri:
      description: Entry point information of the service
      type: string
      format: uri
      example: '/mecSerMgmtApi/service/EntryPoint'
    EndPointInfo.Uris:
      description: >-
        Entry point information of the service as string, formatted according to
        URI syntax
      type: object
      required:
        - uris
      properties:
        uris:
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/EndPointInfo.Uri'
    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
      example: '/mecSerMgmtApi/example'
    MecServiceMgmtApiSubscriptionLinkList.Links:
      description: Self-referring URI.
      type: object
      required:
        - self
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
        subscriptions:
          description: The MEC application instance's subscriptions
          type: array
          items:
            $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription'
    MecServiceMgmtApiSubscriptionLinkList.Subscription:
      description: A link to a subscription.
      type: object
      required:
        - href
        - rel
      properties:
        href:
          $ref: '#/components/schemas/Href'
        rel:
          description: >-
            The value shall be se to SerAvailabilityNotificationSubscription.
          type: string
    MecServiceMgmtApiSubscriptionLinkList:
      description: >-
        This type represents a list of links related to currently existing
        subscriptions for a MEC application instance. This information
        is returned when sending a request to receive current subscriptions.
      type: object
      required:
        - _links
      properties:
        _links:
          $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.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
kharimza's avatar
kharimza committed
    SecurityInfo.OAuth2Info.GrantType:
      description: OAuth 2.0 grant type
      type: string
      enum:
        - OAUTH2_AUTHORIZATION_CODE
        - OAUTH2_IMPLICIT_GRANT
        - OAUTH2_RESOURCE_OWNER
        - OAUTH2_CLIENT_CREDENTIALS
      example: 'OAUTH2_CLIENT_CREDENTIALS'
kharimza's avatar
kharimza committed
    SecurityInfo.OAuth2Info.GrantTypes:
      description: >-
        List of supported OAuth 2.0 grant types.
      type: array
      minItems: 1
      maxItems: 4
      items:
        $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType'
    SecurityInfo.OAuth2Info.TokenEndpoint:
      description: The token endpoint
      type: string
      format: uri
      example: '/mecSerMgmtApi/security/TokenEndPoint'
    SecurityInfo.OAuth2Info:
      description: Parameters related to use of OAuth 2.0
      required:
        - grantTypes
        - tokenEndpoint
      properties:
        grantTypes:
kharimza's avatar
kharimza committed
          $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
      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 MEC application instance to receive
        notifications on the subscribed MEC 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 
        MEC platform regarding the availability of a MEC service or a
        list of MEC services.
      type: object
      required:
        - subscriptionType
        - callbackReference
        - _links
      properties:
        subscriptionType:
          $ref: >-
            #/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType
        callbackReference:
          $ref: >-
            #/components/schemas/SerAvailabilityNotificationSubscription.CallbackReference
        _links:
          $ref: '#/components/schemas/Self'
        filteringCriteria:
kharimza's avatar
kharimza committed
          $ref: >- 
            #/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria
    SerAvailabilityNotificationSubscription.FilteringCriteria:
      description: >-
        Filtering criteria to match services for which events are requested to be reported.
        If absent, matches all services. All child attributes are combined with the logical 
        "AND" operation.
      type: object
      not:
        required: [serInstanceIds, serNames, serCategories]
      properties:
        serInstanceIds:
          $ref: '#/components/schemas/SerInstanceIds'
        serNames:
          $ref: '#/components/schemas/SerNames'
        serCategories:
          $ref: '#/components/schemas/CategoryRefs'
        states:
          $ref: '#/components/schemas/ServiceStates'
        isLocal: 
          $ref: '#/components/schemas/ServiceInfo.IsLocal'
    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
kharimza's avatar
kharimza committed
        - serviceReferences
        - _links
      properties:
        notificationType:
          $ref: >-
            #/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType
kharimza's avatar
kharimza committed
        serviceReferences:
kharimza's avatar
kharimza committed
            $ref: '#/components/schemas/ServiceAvailabilityNotification.ServiceReferences'
        _links:
          $ref: '#/components/schemas/Subscription'
kharimza's avatar
kharimza committed
    ServiceAvailabilityNotification.ServiceReferences:
      description: List of links to services whose availability has changed.
      type: object
      required:
        - serName
        - serInstanceId
        - state
        - changeType
      properties:
        link: 
          $ref: '#/components/schemas/LinkType'
        serName: 
          $ref: '#/components/schemas/ServiceInfo.SerName'
        serInstanceId:
          $ref: '#/components/schemas/ServiceInfo.SerInstanceId'
        state:
          $ref: '#/components/schemas/ServiceState'
        changeType:
          $ref: '#/components/schemas/ServiceAvailabilityNotification.ChangeType'
    ServiceAvailabilityNotification.ChangeType:
      description: >-
       Type of the change. Valid values:
         ADDED: The service was newly added.
         REMOVED: The service was removed.
         STATE_CHANGED: Only the state of the service was changed. 
         ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state.
      type: string
      enum:
        - ADDED
        - REMOVED
        - STATE_CHANGED
        - ATTRIBUTES_CHANGED
    SerializerType:
      description: The enumeration  represents types of serializers
      type: string
      enum:
        - JSON
        - XML
        - PROTOBUF3
      example: 'JSON'
kharimza's avatar
kharimza committed
    LocalityType:
      description: The scope of locality as expressed by "consumedLocalOnly" and "isLocal". If absent, defaults to MEC_HOST
      type: string
      enum:
        - MEC_SYSTEM
        - MEC_HOST
        - NFVI_POP
        - ZONE
        - ZONE_GROUP
        - NFVI_NODE
      example: 'MEC_SYSTEM'
kharimza's avatar
kharimza committed
    ServiceState:
      description: This enumeration defines the possible states of a service.
      type: string
      enum:
        - ACTIVE
        - INACTIVE
      example: 'ACTIVE'
    ServiceStates:
      description: >-
        States of the services about which to report events. If the event is 
        a state change, this filter represents the state after the change.
      type: array
      minItems: 0
      items:
        $ref: '#/components/schemas/ServiceState'
    ServiceInfo.SerInstanceId:
      description: >-
        Identifier of the service instance assigned by the MEC platform.
      type: string
      readOnly: true
      example: 'ServiceInstance123'
kharimza's avatar
kharimza committed
    SerInstanceIds:
      description: Identifiers of service instances about which to report events.
      type: array
      minItems: 0
      items:
        $ref: '#/components/schemas/ServiceInfo.SerInstanceId'
    ServiceInfo.SerName:
      description: >-
        The name of the service. This is how the service producing MEC
        application identifies the service instance it produces.
      type: string
      example: 'ExampleService'
kharimza's avatar
kharimza committed
    SerNames:
      description: Names of services about which to report events.
      type: array
      minItems: 0
      items:
        $ref: '#/components/schemas/ServiceInfo.SerName'
    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
      writeOnly: true
      example: 'Rest1'
    ServiceInfo.Version:
      description: Service version
      type: string
      example: 'ServiceVersion1'
    ServiceInfo.ConsumedLocalOnly:
      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.
      type: boolean
      example: false
    ServiceInfo.IsLocal:
      description: >-
        Indicate whether the service is located in the same locality (as defined
        by scopeOfLocality) as the consuming MEC application.
      type: boolean
      example: true
    ServiceInfo.Post:
      description: This type represents the general information of a MEC service.
      type: object
      required:
        - serName
        - version
        - state
        - serializer
      oneOf:
        - required: [transportId]
        - required: [transportInfo]
      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:
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/ServiceState'
        transportId:
          $ref: '#/components/schemas/ServiceInfo.TransportId'
        transportInfo:
          $ref: '#/components/schemas/TransportInfo'
        serializer:
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/SerializerType'
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/LocalityType'
        consumedLocalOnly:
          $ref: '#/components/schemas/ServiceInfo.ConsumedLocalOnly'
        isLocal:
          $ref: '#/components/schemas/ServiceInfo.IsLocal'
    ServiceInfo:
      description: This type represents the general information of a MEC 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:
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/ServiceState'
        transportInfo:
          $ref: '#/components/schemas/TransportInfo'
        serializer:
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/SerializerType'
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/LocalityType'
        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'
    TransportInfo.Description:
      description: Human-readable description of this transport
      type: string
      example: 'REST API'
    TransportInfo.Id:
      description: The identifier of this transport
      type: string
      example: 'TransId12345'
    TransportInfo.ImplSpecificInfo:
      description: Additional implementation specific details of the transport
      type: object
    TransportInfo.Name:
      description: The name of this transport
      type: string
      example: 'REST'
    TransportInfo.Protocol:
      description: The name of the protocol used. Shall be set to HTTP for a REST API.
      type: string
      example: 'HTTP'
    TransportInfo.Version:
      description: The version of the protocol used
      type: string
      example: '2.0'
    TransportInfo:
      description: This type represents the general information of a MEC 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:
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/TransportType'
        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'
kharimza's avatar
kharimza committed
    TransportType:
      description: The enumeration TransportType represents types of transports
      type: string
      enum:
        - REST_HTTP
        - MB_TOPIC_BASED
        - MB_ROUTING
        - MB_PUBSUB
        - RPC
        - RPC_STREAMING
        - WEBSOCKET
      example: 'REST_HTTP'
  parameters:
    Path.AppInstanceId:
      name: appInstanceId
      description: >-
        Represents a MEC application instance. Note that the
        appInstanceId is allocated by the MEC platform manager.
      in: path
      required: true
      schema:
        type: string
    Path.SubscriptionId:
      name: subscriptionId
      description: >-
        Represents a subscription to the notifications from the MEC
        platform.
      in: path
      required: true
      schema:
        type: string
    Path.ServiceId:
      name: serviceId
      description: Represents a MEC service instance.
      in: path
      required: true
      schema:
        type: string
    Query.Ser_category_id:
      name: ser_category_id
      description: >-
        A MEC application instance may use ser_category_id as an input
        parameter to query the availability of a list of MEC 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 MEC application instance may use multiple ser_instance_ids as
        an input parameter to query the availability of a list of MEC
        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 MEC application instance may use multiple ser_names as an
        input parameter to query the availability of a list of MEC
        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
kharimza's avatar
kharimza committed
    Query.LocalityType:
      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:
    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/MecServiceMgmtApiSubscriptionLinkList'
      links:
        getIndividualmecSerMgmtApiSubscriptionLinkList:
          $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscriptionLinkList'
        delIndividualmecSerMgmtApiSubscriptionLinkList:
          $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscriptionLinkList'
    ApplicationsSubscriptions.201:
      description: >-
        Entity body in the request contains a subscription to the MEC
        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:
            $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
      links:
        getIndividualmecSerMgmtApiSubscription:
          $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscription'
        delIndividualmecSerMgmtApiSubscription:
          $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscription'
    ApplicationsSubscription.200:
      description: >-
        Upon success, a response body containing the requested subscription
        is returned.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
    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:
        getIndividualmecService:
          $ref: '#/components/links/GetIndividualmecService'
        putIndividualmecService:
          $ref: '#/components/links/PutIndividualmecService'
    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:
        getIndividualmecService:
          $ref: '#/components/links/GetIndividualmecService'
        putIndividualmecService:
          $ref: '#/components/links/PutIndividualmecService'
    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'
    Transports.200:
      description: >-
        It is used to indicate nonspecific success. The response body
        contains a representation of the resource.