MecServiceMgmtApi.yaml 74.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, V3.1.1'
  url: >-
    https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf
jsonSchemaDialect: 'https://json-schema.org/draft/2020-12/schema'
  - url: 'http://127.0.0.1:8081/mec_service_mgmt/v1'
    variables: {}
  - url: 'https://127.0.0.1:8081/mec_service_mgmt/v1'
    variables: {}
  - name: appSubscriptions
  - name: appServices
  - name: services
  - name: transports
  - name: callbacks
  - name: individualMECservice
  '/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 message content 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: >-
          Message content 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}':
                '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
                $ref: '#/components/requestBodies/ServiceAvailabilityNotification'
                '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 message content 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 message content 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':
      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 message
            content 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
                      _links:
                        self:
                          href: http://example.com/
                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
                      _links:
                        self:
                          href: http://example.com/
                    - serInstanceId: ServiceInstance345
                      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.1
                              port: 8080
                        security:
                          oAuth2Info:
                            grantTypes:
                              - OAUTH2_CLIENT_CREDENTIALS
                            tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                      serializer: JSON
                      _links:
                        self:
                          href: http://example.com/
          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
      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:
                    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
                    _links:
                        self:
                          href: http://example.com/
          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}':
      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 (see note).
          required: true
          style: simple
          schema:
            type: string
          description: >-
            It is used to indicate nonspecific success. The response message
            content contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceInfo'
              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:
                        uris:
                          - /mecSerMgmtApi/service/EntryPoint
                      security:
                        oAuth2Info:
                          grantTypes:
                            - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
                    _links:
                      self:
                        href: http://example.com/
          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
      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. (see note)
          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 message
            content contains a representation of the resource.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceInfo'
              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:
                        uris:
                          - /mecSerMgmtApi/service/EntryPoint
                      security:
                        oAuth2Info:
                          grantTypes:
                            - OAUTH2_CLIENT_CREDENTIALS
                          tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint
                    serializer: JSON
                    _links:
                        self:
                          href: http://example.com/
          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
      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. (see note)
          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:
      summary: get services