Skip to content
Mp1.yaml 61.4 KiB
Newer Older
swagger: '2.0'
info:
  version: 1.1.1
  description: The ETSI MEC ISG MEC011 Application Enablement API described using OpenAPI
  license:
    name: ETSI Forge copyright notice
    url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
externalDocs:
  description: 'ETSI GS MEC011 Application Enablement API, V1.1.1'
  url: >-
    http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf
host: '127.0.0.1:8081'
basePath: /exampleAPI/mp1/v1/
schemes:
  - http
  - https
consumes:
  - application/json
produces:
  - application/json
parameters:
  Body.AppTerminationNotificationSubscription:
    name: AppTerminationNotificationSubscription
    description: >-
      Entity body in the request contains a subscription to the mobile edge
      application termination notifications that is to be created.
    in: body
    required: true
    schema:
      $ref: '#/definitions/AppTerminationNotificationSubscription'
  Body.DnsRule:
    name: DnsRule
    description: The updated state is included in the entity body of the request.
    in: body
    required: true
    schema:
      $ref: '#/definitions/DnsRule'
  Body.SerAvailabilityNotificationSubscription:
    name: SerAvailabilityNotificationSubscription
    description: >-
      Entity body in the request contains a subscription to the mobile edge
      service availability notifications that is to be created.
    in: body
    required: true
    schema:
      $ref: '#/definitions/SerAvailabilityNotificationSubscription'
  Body.ServiceInfo:
    name: ServiceInfo
    description: >-
      New ServiceInfo with updated "state" is included as entity body of the
      request
    in: body
    required: true
    schema:
      $ref: '#/definitions/ServiceInfo'
  Body.TrafficRule:
    name: TrafficRule
    description: One or more updated attributes that are allowed to be changed
    in: body
    required: true
    schema:
      $ref: '#/definitions/TrafficRule'
  Path.AppInstanceId:
    name: appInstanceId
    description: >-
      Represents a mobile edge application instance. Note that the appInstanceId
      is allocated by the mobile edge platform manager.
    in: path
    required: true
    type: string
    format: uri
  Path.DnsRuleId:
    name: dnsRuleId
    description: Represents a DNS rule.
    in: path
    required: true
    type: string
    format: uri
  Path.SubscriptionId:
    name: subscriptionId
    description: >-
      Represents a subscription to the notifications from the mobile edge
      platform.
    in: path
    required: true
    type: string
    format: uri
  Path.SubscriptionType:
    name: subscriptionType
    description: >-
      Represents a subscription type to the notifications from the mobile edge
      platform.
    in: path
    required: true
    type: string
    format: uri
  Path.ServiceId:
    name: serviceId
    description: Represents a mobile edge service instance.
    in: path
    required: true
    type: string
    format: uri
  Path.TrafficRuleId:
    name: trafficRuleId
    description: Represents a traffic rule.
    in: path
    required: true
    type: string
    format: uri
  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
    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
    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
    type: array
    items:
      type: string
paths:
  '/applications/{appInstanceId}/dns_rules':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      description: >-
        This method retrieves information about all the DNS rules associated
        with a mobile edge application instance.
      operationId: ApplicationsDnsRules_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: array
            items:
              type: object
              properties:
                DnsRule:
                  $ref: '#/definitions/DnsRule'
          examples:
            application/json:
              DnsRule:
                dnsRuleId: DnsRule1
                domainName: www.example.com
                ipAddressType: IP_V4
                ipAddress: 146.241.7.3
                ttl: 300
                state: ACTIVE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  '/applications/{appInstanceId}/dns_rules/{dnsRuleId}':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/parameters/Path.DnsRuleId'
      description: >-
        This method retrieves information about a DNS rule associated with a
        mobile edge application instance.
      operationId: ApplicationsDnsRule_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: object
            properties:
              DnsRule:
                $ref: '#/definitions/DnsRule'
          examples:
            application/json:
              DnsRule:
                dnsRuleId: DnsRule1
                domainName: www.example.com
                ipAddressType: IP_V4
                ipAddress: 146.241.7.3
                ttl: 300
                state: ACTIVE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
    put:
      description: 'This method activates, de-activates or updates a traffic rule.'
      operationId: ApplicationsDnsRule_PUT
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.DnsRule'
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: object
            properties:
              DnsRule:
                $ref: '#/definitions/DnsRule'
          examples:
            application/json:
              DnsRule:
                dnsRuleId: DnsRule1
                domainName: www.example.com
                ipAddressType: IP_V4
                ipAddress: 146.241.7.3
                ttl: 300
                state: ACTIVE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: Precondition Failed
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  '/applications/{appInstanceId}/subscriptions':
    parameters:
      - $ref: '#/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
      produces:
        - application/json
      responses:
        '200':
          description: >-
            Upon success, a response body containing the list of links to the
            requested subscriptions is returned.
          schema:
            type: object
            properties:
              Mp1SubscriptionLinkList:
                $ref: '#/definitions/Mp1SubscriptionLinkList'
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      description: >-
        The POST method may be used to create a new subscription. One example
        use case is to create a new subscription to the mobile edge service
        availability notifications. Upon success, the response contains entity
        body describing the created subscription.
      operationId: ApplicationsSubscriptions_POST
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.AppTerminationNotificationSubscription'
      responses:
          description: >-
            Entity body in the request contains a subscription to the mobile
            edge service availability notifications that is to be created.
              description: The resource URI of the created resource
              type: string
              format: uri
          schema:
            type: object
            properties:
              AppTerminationNotificationSubscription:
                $ref: '#/definitions/AppTerminationNotificationSubscription'
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  '/applications/{appInstanceId}/subscriptions/{subscriptionType}/{subscriptionId}':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/parameters/Path.SubscriptionType'
      - $ref: '#/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
      produces:
        - application/json
      responses:
        '200':
          description: >-
            Upon success, a response body containing the requested subscription
            is returned.
          schema:
            type: object
            properties:
              SerAvailabilityNotificationSubscription:
                $ref: '#/definitions/SerAvailabilityNotificationSubscription'
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      description: >-
        This method deletes a meMp1Subscription. This method is typically used
        in "Unsubscribing from service availability event notifications"
        procedure.
      operationId: ApplicationsSubscription_DELETE
      produces:
        - application/json
      responses:
        '204':
          description: No Content
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  '/applications/{appInstanceId}/traffic_rules':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRules_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: array
            items:
              type: object
              properties:
                TrafficRule:
                  $ref: '#/definitions/TrafficRule'
          examples:
            application/json:
              TrafficRule:
                trafficRuleId: TrafficRule123
                serName: ExampleService
                filterType: FLOW
                priority: 1
                trafficFilter:
                  srcAddress:
                    - 192.168.2.0/24
                    - 192.168.3.0/24
                  dstAddress:
                    - 192.127.4.100/32
                  dstPort:
                    - 80
                action: FORWARD_DECAPSULATED
                dstInterface:
                  interfaceType: IP
                  dstIpAddress: 20.1.1.1
                state: ACTIVE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  '/applications/{appInstanceId}/traffic_rules/{trafficRuleId}':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/parameters/Path.TrafficRuleId'
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRule_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: object
            properties:
              TrafficRule:
                $ref: '#/definitions/TrafficRule'
          examples:
            application/json:
              TrafficRule:
                trafficRuleId: TrafficRule123
                serName: ExampleService
                filterType: FLOW
                priority: 1
                trafficFilter:
                  srcAddress:
                    - 192.168.2.0/24
                    - 192.168.3.0/24
                  dstAddress:
                    - 192.127.4.100/32
                  dstPort:
                    - 80
                action: FORWARD_DECAPSULATED
                dstInterface:
                  interfaceType: IP
                  dstIpAddress: 20.1.1.1
                state: ACTIVE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      description: >-
        This method retrieves information about all the traffic rules associated
        with a mobile edge application instance.
      operationId: ApplicationsTrafficRules_PUT
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.TrafficRule'
      responses:
        '200':
          description: >-
            Upon success, a response body containing data type describing the
            updated TrafficRule is returned.
          schema:
            type: object
            properties:
              TrafficRule:
                $ref: '#/definitions/TrafficRule'
          examples:
            application/json:
              TrafficRule:
                trafficRuleId: TrafficRule123
                serName: ExampleService
                filterType: FLOW
                priority: 1
                trafficFilter:
                  srcAddress:
                    - 192.168.2.0/24
                    - 192.168.3.0/24
                  dstAddress:
                    - 192.127.4.100/32
                  dstPort:
                    - 80
                action: FORWARD_DECAPSULATED
                dstInterface:
                  interfaceType: IP
                  dstIpAddress: 20.1.1.1
                state: ACTIVE
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: Precondition Failed
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  /services:
    get:
      description: >-
        This method retrieves information about a list of meService resources.
        This method is typically used in "service availability query" procedure
      operationId: Services_GET
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Query.Ser_instance_id'
        - $ref: '#/parameters/Query.Ser_name'
        - $ref: '#/parameters/Query.Ser_category_id'
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: array
            items:
              type: object
              properties:
                ServiceInfo:
                  $ref: '#/definitions/ServiceInfo'
          examples:
            application/json:
              ServiceInfo:
                serInstanceId: ServiceInstance123
                serName: ExampleService
                serCategory:
                  href: catItem1
                  id: id12345
                  name: RNI
                  version: version1
                version: ServiceVersion1
                state: ACTIVE
                transportId: Rest1
                transportInfo:
                  id: TransId12345
                  name: REST
                  description: REST API
                  type: JSON
                  protocol: HTTP
                  version: '2.0'
                  endpoint:
                    uris:
                      - /meMp1/service/EntryPoint
                    addresses:
                      - host: 192.0.2.0
                        port: '8080'
                    oAuth2Info:
                      grantTypes: OAUTH2_CLIENT_CREDENTIALS
                      tokenEndpoint: /meMp1/security/TokenEndPoint
                serializer: JSON
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
      description: >-
        This method is used to create a meService resource. This method is
        typically used in "service availability update and new service
        registration" procedure
      operationId: Services_POST
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.ServiceInfo'
      responses:
        '201':
          description: >-
            Upon success, the HTTP response shall include a Location HTTP header
            that contains the resource URI of the created resource.
              description: The resource URI of the created resource
              type: string
              format: uri
          schema:
            type: object
            properties:
              ServiceInfo:
                $ref: '#/definitions/ServiceInfo'
          examples:
            application/json:
              ServiceInfo:
                serInstanceId: ServiceInstance123
                serName: ExampleService
                serCategory:
                  href: catItem1
                  id: id12345
                  name: RNI
                  version: version1
                version: ServiceVersion1
                state: ACTIVE
                transportId: Rest1
                transportInfo:
                  id: TransId12345
                  name: REST
                  description: REST API
                  type: JSON
                  protocol: HTTP
                  version: '2.0'
                  endpoint:
                    uris:
                      - /meMp1/service/EntryPoint
                    addresses:
                      - host: 192.0.2.0
                        port: '8080'
                    oAuth2Info:
                      grantTypes: OAUTH2_CLIENT_CREDENTIALS
                      tokenEndpoint: /meMp1/security/TokenEndPoint
                serializer: JSON
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  '/services/{serviceId}':
    parameters:
      - $ref: '#/parameters/Path.ServiceId'
      description: >-
        This method retrieves information about a meService resource. This
        method is typically used in "service availability query" procedure
      operationId: ServicesServiceId_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: object
            properties:
              ServiceInfo:
                $ref: '#/definitions/ServiceInfo'
          examples:
            application/json:
              ServiceInfo:
                serInstanceId: ServiceInstance123
                serName: ExampleService
                serCategory:
                  href: catItem1
                  id: id12345
                  name: RNI
                  version: version1
                version: ServiceVersion1
                state: ACTIVE
                transportId: Rest1
                transportInfo:
                  id: TransId12345
                  name: REST
                  description: REST API
                  type: JSON
                  protocol: HTTP
                  version: '2.0'
                  endpoint:
                    uris:
                      - /meMp1/service/EntryPoint
                    addresses:
                      - host: 192.0.2.0
                        port: '8080'
                    oAuth2Info:
                      grantTypes: OAUTH2_CLIENT_CREDENTIALS
                      tokenEndpoint: /meMp1/security/TokenEndPoint
                serializer: JSON
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
    put:
      description: This method updates the information about a meService resource
      operationId: ServicesServiceId_PUT
      produces:
        - application/json
      parameters:
        - $ref: '#/parameters/Body.ServiceInfo'
      responses:
        '200':
          description: >-
            Upon success, a response body containing data type describing the
            updated ServiceInfo is returned
          schema:
            type: object
            properties:
              ServiceInfo:
                $ref: '#/definitions/ServiceInfo'
          examples:
            application/json:
              ServiceInfo:
                serInstanceId: ServiceInstance123
                serName: ExampleService
                serCategory:
                  href: catItem1
                  id: id12345
                  name: RNI
                  version: version1
                version: ServiceVersion1
                state: ACTIVE
                transportId: Rest1
                transportInfo:
                  id: TransId12345
                  name: REST
                  description: REST API
                  type: JSON
                  protocol: HTTP
                  version: '2.0'
                  endpoint:
                    uris:
                      - /meMp1/service/EntryPoint
                    addresses:
                      - host: 192.0.2.0
                        port: '8080'
                    oAuth2Info:
                      grantTypes: OAUTH2_CLIENT_CREDENTIALS
                      tokenEndpoint: /meMp1/security/TokenEndPoint
                serializer: JSON
        '400':
          description: Bad Request
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '403':
          description: Forbidden
          schema:
            type: object
            required:
              - ProblemDetails
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '404':
          description: Not Found
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
        '412':
          description: Precondition Failed
          schema:
            type: object
            properties:
              ProblemDetails:
                $ref: '#/definitions/ProblemDetails'
  /timing/current_time:
    get:
      description: >-
        This method retrieves the information of the platform's current time
        which corresponds to the get platform time procedure
      operationId: TimingCurrentTime_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            It is used to indicate nonspecific success. The response body
            contains a representation of the resource.
          schema:
            type: object
            properties:
              CurrentTime:
                $ref: '#/definitions/CurrentTime'