Mp1.yaml 63.8 KB
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
  Path.DnsRuleId:
    name: dnsRuleId
    description: Represents a DNS rule.
    in: path
    required: true
    type: string
  Path.SubscriptionId:
    name: subscriptionId
    description: >-
      Represents a subscription to the notifications from the mobile edge
      platform.
    in: path
    required: true
    type: string
  Path.ServiceId:
    name: serviceId
    description: Represents a mobile edge service instance.
    in: path
    required: true
    type: string
  Path.TrafficRuleId:
    name: trafficRuleId
    description: Represents a traffic rule.
    in: path
    required: true
    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
    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'
                  dnsRuleId: 'DnsRule1'
                  domainName: 'www.example.com'
                  ipAddressType: 'IP_V4'
                  ipAddress: '146.241.7.3'
        '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'
                dnsRuleId: 'DnsRule1'
                domainName: 'www.example.com'
                ipAddressType: 'IP_V4'
                ipAddress: '146.241.7.3'
        '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'
                dnsRuleId: 'DnsRule1'
                domainName: 'www.example.com'
                ipAddressType: 'IP_V4'
                ipAddress: '146.241.7.3'
        '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/AppTerminationNotificationSubscription/{subscriptionId}':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $ref: '#/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: AppTerminationSubscription_GET
      produces:
        - application/json
      responses:
        '200':
          description: >-
            Upon success, a response body containing the requested subscription
            is returned.
          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'
    delete:
      description: >-
        This method deletes a meMp1Subscription. This method is typically used
        in "Unsubscribing from service availability event notifications"
        procedure.
      operationId: AppTerminationSubscription_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}/subscriptions/SerAvailabilityNotificationSubscription/{subscriptionId}':
    parameters:
      - $ref: '#/parameters/Path.AppInstanceId'
      - $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: SerAvailabilitySubscription_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: SerAvailabilitySubscription_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'
                  trafficRuleId: 'TrafficRule123'
                  serName: 'ExampleService'
                  filterType: 'FLOW'
                    - srcAddress:
                        - '192.168.2.0/24'
                        - '192.168.3.0/24'
                      dstAddress:
                        - '192.127.4.100/32'
                      dstPort:
                        - '80'
                  action: 'FORWARD_DECAPSULATED'
                    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'
                  - srcAddress:
                      - '192.168.2.0/24'
                      - '192.168.3.0/24'
                    dstAddress:
                      - '192.127.4.100/32'
                    dstPort:
                      - '80'
                action: 'FORWARD_DECAPSULATED'
                  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'
                  - srcAddress:
                      - '192.168.2.0/24'
                      - '192.168.3.0/24'
                    dstAddress:
                      - '192.127.4.100/32'
                    dstPort:
                      - '80'
                action: 'FORWARD_DECAPSULATED'
                  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'
                  serInstanceId: 'ServiceInstance123'
                  serName: 'ExampleService'
                    href: 'catItem1'
                    id: 'id12345'
                    name: 'RNI'
                    version: 'version1'
                  version: 'ServiceVersion1'
                  state: 'ACTIVE'
                  transportId: 'Rest1'
                    id: 'TransId12345'
                    name: 'REST'
                    description: 'REST API'
                    type: 'JSON'
                    protocol: 'HTTP'
                        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'
                  href: 'catItem1'
                  id: 'id12345'
                  name: 'RNI'
                  version: 'version1'
                version: 'ServiceVersion1'
                state: 'ACTIVE'
                transportId: 'Rest1'
                  id: 'TransId12345'
                  name: 'REST'
                  description: 'REST API'
                  type: 'REST_HTTP'
                  protocol: 'HTTP'
                      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: 'REST_HTTP'
                  protocol: 'HTTP'
                  version: '2.0'
                  endpoint:
                    uris:
                    addresses:
                    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: 'REST_HTTP'
                  protocol: 'HTTP'
                  version: '2.0'
                  endpoint:
                    uris: