MecServiceMgmtApi.yaml 64.3 KB
Newer Older
openapi: 3.1.0
info:
  title: MEC Service Management API
  description: The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
  contact:
    email: cti_support@etsi.org
  description: ETSI GS MEC011 Application Enablement API, V2.2.1
  url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
servers:
- url: http://127.0.0.1:8081/mec_service_mgmt/v1
  variables: {}
- url: https://127.0.0.1:8081/mec_service_mgmt/v1
  variables: {}
tags:
- name: appSubscriptions
- name: appServices
- name: services
- name: transports
- name: callbacks
  /applications/{appInstanceId}/subscriptions:
      - appSubscriptions
      summary: "Get subscriptions"
      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
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
          description: Upon success, a response body containing the list of links to the requested subscriptions is returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList'
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    post:
      tags:
      - appSubscriptions
      summary: "Create subscription"
      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
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
        required: true
      responses:
        '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
              content:
                text/plain:
                  schema:
                    type: string
                    description: The resource URI of the created resource
                    contentMediaType: text/plain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
        '400':
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
        '403':
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false

      callbacks:
        ServiceAvailailityNotification:
          '{$request.body#/callbackReference}':
             post:
              description: >-
               'Represents the service availability information that 
               is used in the following cases
                when the MEC platform announces the newly available
               services to the authorized relevant MEC applications (e.g. 
               the applications that indicate the services as "optional" 
               or "required") that are subscribed to the corresponding 
               service availability notifications
               when the MEC platform notifies the authorized relevant 
               applications that are subscribed to the corresponding 
               service availability notifications about the service availability changes.'
              operationId: ServiceAvailabilityNotification_POST
              summary: "Create callback"
              tags:
              - callbacks
              requestBody:
               $ref: '#/components/requestBodies/ServiceAvailabilityNotification'
              responses:
               '200':
                 description: Expected responses from callback consumer, if it accepts the callback
    parameters: []
  /applications/{appInstanceId}/subscriptions/{subscriptionId}:
      - appSubscriptions
      summary: "Get subscription"
      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
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: subscriptionId
        in: path
        description: Represents a subscription to the notifications from the MEC platform.
        required: true
        style: simple
        schema:
          type: string
          description: Upon success, a response body containing the requested subscription is returned.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SerAvailabilityNotificationSubscription'
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
        '403':
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    delete:
      tags:
      - appSubscriptions
      summary: delete subscription
      description: This method deletes a mecSrvMgmtSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure.
      operationId: ApplicationsSubscription_DELETE
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: subscriptionId
        in: path
        description: Represents a subscription to the notifications from the MEC platform.
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: No Content
          headers: {}
          content: {}
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/services:
      - appServices
      summary: get services
      description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure
      operationId: AppServices_GET
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: ser_instance_id
        in: query
        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.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ser_name
        in: query
        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.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ser_category_id
        in: query
        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.
        style: form
        explode: true
        schema:
          type: string
      - name: consumed_local_only
        in: query
        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.
        style: form
        explode: true
        schema:
          type: boolean
      - name: is_local
        in: query
        description: Indicate whether the service is located in the same locality (as  defined by scopeOfLocality) as the consuming MEC application.
        style: form
        explode: true
        schema:
          type: boolean
      - name: scope_of_locality
        in: query
        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.
        style: form
        explode: true
        schema:
          type: string
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceInfo'
                description: ''
                examples:
                - - serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        addresses:
                        - host: 192.0.2.0
                          port: 8080
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
                contentMediaType: application/json
              examples:
                ServiceInfoList:
                  value:
                  - serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        addresses:
                        - host: 192.0.2.0
                          port: 8080
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
      - appServices
      summary: create service
      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
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: New ServiceInfo with updated "state" is included as entity body of the request
        content:
          application/json:
            schema:
              oneOf:
              - type: object
              - type: object
              description: New ServiceInfo with updated "state" is included as entity body of the request
              contentMediaType: application/json
        required: true
          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
              content:
                text/plain:
                  schema:
                    type: string
                    description: The resource URI of the created resource
                    contentMediaType: text/plain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceInfo'
              examples:
                ServiceInfo:
                  value:
                    serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        uris:
                        - /mecSerMgmtApi/service/EntryPoint
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /applications/{appInstanceId}/services/{serviceId}:
      - appServices
      summary: get service
      description: This method retrieves information about a mecService resource. This method is typically used in "service availability query" procedure
      operationId: AppServicesServiceId_GET
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: serviceId
        in: path
        description: Represents a MEC service instance.
        required: true
        style: simple
        schema:
          type: string
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceInfo'
              examples:
                ServiceInfo:
                  value:
                    serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        uris:
                        - /mecSerMgmtApi/service/EntryPoint
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
      tags:
      - appServices
      summary: update service
      description: This method updates the information about a mecService resource
      operationId: AppServicesServiceId_PUT
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: serviceId
        in: path
        description: Represents a MEC service instance.
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: New ServiceInfo with updated "state" is included as entity body of the request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceInfo'
        required: true
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceInfo'
              examples:
                ServiceInfo:
                  value:
                    serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        uris:
                        - /mecSerMgmtApi/service/EntryPoint
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Precondition Failed. It is used when a condition has failed during conditional requests,  e.g. when using ETags to avoid write conflicts.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
      - appServices
      summary: delete service
      description: 'This method deletes a mecService resource. This method is typically used in the service deregistration procedure. '
      operationId: AppServicesServiceId_DELETE
      parameters:
      - name: appInstanceId
        in: path
        description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.
        required: true
        style: simple
        schema:
          type: string
      - name: serviceId
        in: path
        description: Represents a MEC service instance.
        required: true
        style: simple
        schema:
          type: string
      responses:
        '204':
          description: No Content
          headers: {}
          content: {}
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /services:
      - services
      summary: get services
      description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure
      operationId: Services_GET
      parameters:
      - name: ser_instance_id
        in: query
        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.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ser_name
        in: query
        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.
        style: form
        explode: true
        schema:
          type: array
          items:
            type: string
      - name: ser_category_id
        in: query
        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.
        style: form
        explode: true
        schema:
          type: string
      - name: consumed_local_only
        in: query
        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.
        style: form
        explode: true
        schema:
          type: boolean
      - name: is_local
        in: query
        description: Indicate whether the service is located in the same locality (as  defined by scopeOfLocality) as the consuming MEC application.
        style: form
        explode: true
        schema:
          type: boolean
      - name: scope_of_locality
        in: query
        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.
        style: form
        explode: true
        schema:
          type: string
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceInfo'
                description: ''
                examples:
                - - serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        addresses:
                        - host: 192.0.2.0
                          port: 8080
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
                contentMediaType: application/json
              examples:
                ServiceInfoList:
                  value:
                  - serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        addresses:
                        - host: 192.0.2.0
                          port: 8080
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
        '414':
          description: It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /services/{serviceId}:
      - services
      summary: get service
      description: This method retrieves information about a mecService resource. This method is typically used in "service availability query" procedure
      operationId: ServicesServiceId_GET
      parameters:
      - name: serviceId
        in: path
        description: Represents a MEC service instance.
        required: true
        style: simple
        schema:
          type: string
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceInfo'
              examples:
                ServiceInfo:
                  value:
                    serInstanceId: ServiceInstance123
                    serName: ExampleService
                    serCategory:
                      href: catItem1
                      id: id12345
                      name: RNI
                      version: version1
                    version: ServiceVersion1
                    state: ACTIVE
                    transportInfo:
                      id: TransId12345
                      name: REST
                      description: REST API
                      type: REST_HTTP
                      protocol: HTTP
                      version: '2.0'
                      endpoint:
                        uris:
                        - /mecSerMgmtApi/service/EntryPoint
                      security:
                        oAuth2Info:
                          grantTypes:
                          - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
  /transports:
      - transports
      summary: Get transports
      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
      parameters: []
          description: It is used to indicate nonspecific success. The response body contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TransportInfo'
                description: ''
                contentMediaType: application/json
          description: Bad Request. It is used to indicate that incorrect parameters were passed to the request.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
          description: Forbidden. The operation is not allowed given the current status of the resource.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Not Found. It is used when a client provided a URI that cannot be mapped  to a valid resource URI.
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/plain:
              schema:
                type: object
                description: Empty schema
                contentMediaType: text/plain
      deprecated: false
    parameters: []
 
  /resource_uri_allocated_by_MEC_platform:
    get:
      tags:
      - individualMECservice
      summary: get mecServiceLiveness
      description: This method retrieves information about an "Individual mecServiceLiveness" resource
      operationId: get_individual_MEC_service
      responses:
        '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/ServiceLivenessInfo'
        '400':
          description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: The operation is not allowed given the current status of the resource.
                        More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    patch:
      tags:
      - individualMECservice
      summary: Update mecServiceLiveness
      description: This method updates a resource on top of the existing resource state with partial changes described by the client.
      operationId: patch_individual_MEC_service
      requestBody:
        description: It contains an update of the liveness state.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceLivenessUpdate'
        required: true
      responses:
        '200':
          description: Upon success, a response body is returned containing the updated liveness interval value of the service Instance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceLivenessInfo'
        '204':
          description: Successful response sent when there is no need to provide a new liveness interval value to the service Instance.
          headers: {}
          content: {}
        '400':
          description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: The operation is not allowed given the current status of the resource. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '409':
          description: The operation is not allowed due to a conflict with the state of the resource. The MEC platform shall respond with this code if the service instance is in "INACTIVE" state. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '412':
          description: It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'

      title: CategoryRef
      - href
      - id
      - name
      - version
      type: object
          type: string
          description: Reference of the catalogue
          examples:
          - /example/catalogue1
          type: string
          description: Unique identifier of the category
          examples:
          - id12345
          type: string
          description: Name of the category, example values include RNI, Location & Bandwidth Management
          examples:
          - RNI
          type: string
          description: Category version
          examples:
          - version1
      description: This type represents the category reference
      title: EndPointInfo.Address
      - host
      - port
      type: object
          type: string
          description: Host portion of the address
          examples:
          - 192.0.2.0
          type: integer
          description: Port portion of the address
          contentEncoding: int32
          examples:
          - 8080
      description: A IP address and port pair
      title: EndPointInfo.Addresses
      - addresses
      type: object
          type: array
          items:
            $ref: '#/components/schemas/EndPointInfo.Address'
          description: ''
      description: Entry point information of the service as one or more pairs of IP address and port
      title: EndPointInfo.Alternative
      - alternative
      type: object
      properties:
      description: Entry point information of the service in a format defined by an implementation, or in an external specification.
      title: EndPointInfo.Uris
      - uris
      type: object
          type: array
            type: string
          description: ''
      description: Entry point information of the service as string, formatted according to URI syntax
      title: LinkType
        href:
          type: string
          description: URI referring to a resource
          examples:
          - /mecSerMgmtApi/example
      description: This type represents a type of link and may be referenced from data structures
    MecServiceMgmtApiSubscriptionLinkList.Links:
      title: MecServiceMgmtApiSubscriptionLinkList.Links
      - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription'
          description: The MEC application instance's subscriptions
      description: Self-referring URI.
    MecServiceMgmtApiSubscriptionLinkList.Subscription:
      title: MecServiceMgmtApiSubscriptionLinkList.Subscription
      - href
      - rel
      type: object
          type: string
          description: URI referring to a resource
          examples:
          - /mecSerMgmtApi/example
          description: The value shall be se to SerAvailabilityNotificationSubscription.
      description: A link to a subscription.
    MecServiceMgmtApiSubscriptionLinkList:
      title: MecServiceMgmtApiSubscriptionLinkList
      - _links
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Links'
      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.
      title: ProblemDetails
          type: string
          description: A URI reference according to IETF RFC 3986 that identifies the problem type
          type: string
          description: A short, human-readable summary of the problem type
          type: integer
          description: The HTTP status code for this occurrence of the problem
          contentEncoding: int32
          type: string
          description: A human-readable explanation specific to this occurrence of the problem
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
kharimza's avatar
kharimza committed
    SecurityInfo.OAuth2Info.GrantType:
      title: SecurityInfo.OAuth2Info.GrantType
      - OAUTH2_AUTHORIZATION_CODE
      - OAUTH2_IMPLICIT_GRANT
      - OAUTH2_RESOURCE_OWNER
      - OAUTH2_CLIENT_CREDENTIALS
      description: OAuth 2.0 grant type
      examples:
      - OAUTH2_CLIENT_CREDENTIALS
      title: SecurityInfo.OAuth2Info
      - grantTypes
      - tokenEndpoint
      type: object
          maxItems: 4
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType'
          description: List of supported OAuth 2.0 grant types.
          type: string
          description: The token endpoint
          examples:
          - /mecSerMgmtApi/security/TokenEndPoint
      description: Parameters related to use of OAuth 2.0
      title: SecurityInfo
      type: object
      properties:
        oAuth2Info:
          $ref: '#/components/schemas/SecurityInfo.OAuth2Info'
      description: This type represents security information related to a transport
      title: Self
      - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
      description: Self-referring URI.
    SerAvailabilityNotificationSubscription:
      title: SerAvailabilityNotificationSubscription
      - subscriptionType
      - callbackReference
      - _links
      type: object
          type: string
          description: Shall be set to SerAvailabilityNotificationSubscription.
          examples:
          - SerAvailabilityNotificationSubscription
          type: string
          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.
        _links:
          $ref: '#/components/schemas/Self'
        filteringCriteria:
          $ref: '#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria'
    
kharimza's avatar
kharimza committed
    SerAvailabilityNotificationSubscription.FilteringCriteria:
      title: SerAvailabilityNotificationSubscription.FilteringCriteria
kharimza's avatar
kharimza committed
      type: object
      properties:
        serInstanceIds:
          type: array
          items:
            type: string
          description: Identifiers of service instances about which to report events.
kharimza's avatar
kharimza committed
        serNames:
          type: array
          items:
            type: string
          description: Names of services about which to report events.
kharimza's avatar
kharimza committed
        serCategories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryRef'
          description: Categories of services about which to report events.
kharimza's avatar
kharimza committed
        states:
          type: array
          items:
            $ref: '#/components/schemas/ServiceState'
          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.
        isLocal:
          type: boolean
          description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.
          examples:
          - true
      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.
    ServiceAvailabilityNotification:
      title: ServiceAvailabilityNotification
      - notificationType
      - serviceReferences
      - _links
      type: object
          type: string
          description: Shall be set to SerAvailabilityNotificationSubscription.
          examples:
          - SerAvailabilityNotificationSubscription
kharimza's avatar
kharimza committed
        serviceReferences:
kharimza's avatar
kharimza committed
            $ref: '#/components/schemas/ServiceAvailabilityNotification.ServiceReferences'
          description: ''
        _links:
          $ref: '#/components/schemas/Subscription'
      description: This type represents the service availability information.
kharimza's avatar
kharimza committed
    ServiceAvailabilityNotification.ServiceReferences:
      title: ServiceAvailabilityNotification.ServiceReferences
kharimza's avatar
kharimza committed
      required:
      - serName
      - serInstanceId
      - state
      - changeType
      type: object
kharimza's avatar
kharimza committed
      properties:
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/LinkType'
        serName:
          type: string
          description: The name of the service. This is how the service producing MEC application identifies the service instance it produces.
          examples:
          - ExampleService
kharimza's avatar
kharimza committed
        serInstanceId:
          type: string
          description: Identifier of the service instance assigned by the MEC platform.
          examples:
          - ServiceInstance123
kharimza's avatar
kharimza committed
        state:
          $ref: '#/components/schemas/ServiceState'
        changeType:
          $ref: '#/components/schemas/ServiceAvailabilityNotification.ChangeType'
      description: List of links to services whose availability has changed.
kharimza's avatar
kharimza committed
    ServiceAvailabilityNotification.ChangeType:
      title: ServiceAvailabilityNotification.ChangeType
kharimza's avatar
kharimza committed
      enum:
      - ADDED
      - REMOVED
      - STATE_CHANGED
      - ATTRIBUTES_CHANGED
      description: "Type of the change. Valid values:\n  1. ADDED: The service was newly added.\n  2. REMOVED: The service was removed.\n  3. STATE_CHANGED: Only the state of the service was changed. \n  4. ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state."
      examples:
      - ADDED
    SerializerType:
      title: SerializerType
      - JSON
      - XML
      - PROTOBUF3
      description: The enumeration  represents types of serializers
      examples:
      - JSON
    LocalityType:
      title: LocalityType
      - MEC_SYSTEM
      - MEC_HOST
      - NFVI_POP
      - ZONE
      - ZONE_GROUP
      - NFVI_NODE
kharimza's avatar
kharimza committed
      type: string
      description: The scope of locality as expressed by "consumedLocalOnly" and "isLocal". If absent, defaults to MEC_HOST
      examples:
      - MEC_SYSTEM
    ServiceState:
      title: ServiceState
kharimza's avatar
kharimza committed
      enum:
      - ACTIVE
      - INACTIVE
      description: This enumeration defines the possible states of a service.
      examples:
      - ACTIVE
    ServiceInfo:
      title: ServiceInfo
      - serName
      - version
      - state
      - transportInfo
      - serializer
      type: object
          type: string
          description: Identifier of the service instance assigned by the MEC platform.
          examples:
          - ServiceInstance123
          type: string
          description: The name of the service. This is how the service producing MEC application identifies the service instance it produces.
          examples:
          - ExampleService
        serCategory:
          $ref: '#/components/schemas/CategoryRef'
        version:
          type: string
          description: Service version
          examples:
          - ServiceVersion1
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'
          type: boolean
          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.
          examples:
          - false
        isLocal:
          type: boolean
          description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.
          examples:
          - true
        livenessInterval:
          type: integer
          description: Interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3).
                      If the service-producing application supports sending "heartbeat" messages, it shall include this attribute in the registration request. In this case, the application shall either set the value of this attribute to zero or shall use this attribute to propose a non-zero positive value for the liveness interval.
                      If the application has provided this attribute in the request and the MEC platform requires "heartbeat" messages, the MEC platform shall return this attribute value in the HTTP responses. The MEC platform may use the value proposed in the request or may choose a different value.
                      If the MEC platform does not require "heartbeat" messages for this service instance it shall omit the attribute in responses.
        _links:
          type: object
          required:
            - self
          properties:
            self:
              $ref: '#/components/schemas/LinkType'
            liveness:
              $ref: '#/components/schemas/LinkType'     
      description: This type represents the general information of a MEC service.
    
    ServiceLivenessInfo:
      type: object
      required:
        - state
        - timeStamp
        - interval
      properties:
        state:
          $ref: '#/components/schemas/ServiceState'
        timeStamp:
          type: object
          description: The time when the last "heartbeat" message was received by MEC platform
          required:
            - seconds
            - nanoSeconds
          properties:
            seconds:
              type: integer
            nanoSeconds:
              type: integer            
        interval:
          type: integer
          description: The interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3) that MEC platform has determined.
  
    ServiceLivenessUpdate:
      type: object
      required:
        - state
      properties:
        state:
          $ref: '#/components/schemas/ServiceState'


      title: Subscription
      - subscription
      type: object
      properties:
        subscription:
          $ref: '#/components/schemas/LinkType'
      description: A link to the related subscription
      title: TransportInfo
      - id
      - name
      - type
      - protocol
      - version
      - endpoint
      - security
      type: object
          type: string
          description: The identifier of this transport
          examples:
          - TransId12345
          type: string
          description: The name of this transport
          examples:
          - REST
          type: string
          description: Human-readable description of this transport
          examples:
          - REST API
kharimza's avatar
kharimza committed
          $ref: '#/components/schemas/TransportType'
          type: string
          description: The name of the protocol used. Shall be set to HTTP for a REST API.
          examples:
          - HTTP
          type: string
          description: The version of the protocol used
          examples:
          - '2.0'
          - $ref: '#/components/schemas/EndPointInfo.Uris'
          - $ref: '#/components/schemas/EndPointInfo.Addresses'
          - $ref: '#/components/schemas/EndPointInfo.Alternative'
          description: This type represents information about a transport endpoint
        security:
          $ref: '#/components/schemas/SecurityInfo'
        implSpecificInfo:
          type: object
          description: Additional implementation specific details of the transport
      description: This type represents the general information of a MEC service.
kharimza's avatar
kharimza committed
    TransportType:
      title: TransportType
      - REST_HTTP
      - MB_TOPIC_BASED
      - MB_ROUTING
      - MB_PUBSUB
      - RPC
      - RPC_STREAMING
      - WEBSOCKET
      type: string
      description: The enumeration TransportType represents types of transports
      examples:
      - REST_HTTP
  requestBodies:
    ServiceAvailabilityNotification:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceAvailabilityNotification'
      required: true