MEC021_AppMobilityService.yaml 46.7 KB
Newer Older
openapi: 3.1.0
Elian Kraja's avatar
Elian Kraja committed
info:
  title: ETSI GS MEC 021 Application Mobility Service API
  version: '2.1.1'
  description: ETSI GS MEC 021 Application Mobility Service API described using OpenAPI.
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'  
Elian Kraja's avatar
Elian Kraja committed
  contact:
Elian Kraja's avatar
Elian Kraja committed
    name: ETSI Forge
Elian Kraja's avatar
Elian Kraja committed
    url: https://forge.etsi.org/rep/mec/gs021-amsi-api
    email: cti_support@etsi.org
externalDocs:
  description: ETSI GS MEC 021 Application Mobility Service API, v2.1.1
  url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf
  
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
Elian Kraja's avatar
Elian Kraja committed
servers:
- url: https://localhost/amsi/v1
  variables: {}
tags:
- name: adj-app-inst
  description: Adjacent App instances
- name: app-mob-ser
  description: Application Mobility Services
- name: app-mob-ser-der
  description: Application Mobility Services Deregister task
- name: subscriptions
  description: Subscription for Application Mobility Service


Elian Kraja's avatar
Elian Kraja committed
paths:
  /queries/adjacent_app_instances:
    get:
      tags:
      - adj-app-inst
      summary: 'Retrieve information about this subscription.'
      description: Retrieve information about this subscription.
      operationId: adj_app_instGET
      parameters:
      - name: filter
        in: query
        description: Attribute-based filtering parameters according to ETSI GS MEC 011
        style: form
        explode: true
        schema:
          type: string
      - name: all_fields
        in: query
        description: Include all complex attributes in the response.
        style: form
        explode: true
        schema:
          type: string
      - name: fields
        in: query
        description: Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_fields
        in: query
        description: Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_default
        in: query
        description: Indicates to exclude the following complex attributes from the response  See clause 6.18 in ETSI GS MEC 011 for details.
        style: form
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: A response body containing  zero or more adjacent application instances
          headers: {}
          content:
            application/json:
              schema:
                minItems: 0
                type: array
                items:
                  $ref: '#/components/schemas/AdjacentAppInstanceInfo'
                description: ''
                contentMediaType: application/json
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    parameters: []
  /app_mobility_services:
    get:
Elian Kraja's avatar
Elian Kraja committed
      tags:
      - app-mob-ser
      summary: 'Retrieve information about the registered application mobility service.'
Elian Kraja's avatar
Elian Kraja committed
      description: ' Retrieve information about the registered application mobility service.'
      operationId: app_mobility_serviceGET
      parameters:
      - name: filter
        in: query
        description: Attribute-based filtering parameters according to ETSI GS MEC 011
        style: form
        explode: true
        schema:
          type: string
      - name: all_fields
        in: query
        description: Include all complex attributes in the response.
        style: form
        explode: true
        schema:
          type: string
      - name: fields
        in: query
        description: Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_fields
        in: query
        description: Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011
        style: form
        explode: true
        schema:
          type: string
      - name: exclude_default
        in: query
        description: Indicates to exclude the following complex attributes from the response  See clause 6.18 in ETSI GS MEC 011 for details.
        style: form
        explode: true
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: Contains in an array the representations of zero or more application mobility services.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RegistrationInfo'
                description: ''
                contentMediaType: application/json
Elian Kraja's avatar
Elian Kraja committed
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    post:
Elian Kraja's avatar
Elian Kraja committed
      tags:
      - app-mob-ser
      summary: 'Create a new application mobility service for the service requester.'
      description: Create a new application mobility service for the service requester.
Elian Kraja's avatar
Elian Kraja committed
      operationId: app_mobility_servicePOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: Application mobility service to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegistrationInfo'
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '201':
          description: Successful response for application mobility service creation
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrationInfo'
Elian Kraja's avatar
Elian Kraja committed
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    parameters: []
  /app_mobility_services/{appMobilityServiceId}:
    get:
      tags:
      - app-mob-ser
      summary: 'Retrieve information about this individual application mobility service'
      description: Retrieve information about this individual application mobility service
      operationId: app_mobility_service_by_idGET
      parameters:
      - name: appMobilityServiceId
        in: path
        description: It uniquely identifies the created individual application mobility service
        required: true
        style: simple
        schema:
          type: string
      responses:
Elian Kraja's avatar
Elian Kraja committed
        '200':
          description: Contains a representation of the application mobility service.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrationInfo'
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    put:
      tags:
      - app-mob-ser
      summary: ' update the existing individual application mobility service'
      description: ' update the existing individual application mobility service'
      operationId: app_mobility_service_by_idPUT
      parameters:
      - name: appMobilityServiceId
        in: path
        description: It uniquely identifies the created individual application mobility service
Elian Kraja's avatar
Elian Kraja committed
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegistrationInfo'
        required: true
      responses:
Elian Kraja's avatar
Elian Kraja committed
        '200':
          description: Contains a data type describing the updated application mobility service.
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrationInfo'
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '412':
          description: 'Precondition failed :  used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '422':
          description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    delete:
      tags:
      - app-mob-ser
      summary: ' deregister the individual application mobility service'
      description: ' deregister the individual application mobility service'
      operationId: app_mobility_service_by_idDELETE
      parameters:
      - name: appMobilityServiceId
        in: path
        description: It uniquely identifies the created individual application mobility service
        required: true
        style: simple
        schema:
          type: string
      responses:
Elian Kraja's avatar
Elian Kraja committed
        '204':
          description: No Content
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    parameters: []
  /app_mobility_services/{appMobilityServiceId}/deregister_task:
    post:
      tags:
      - app-mob-ser-der
      summary: ' deregister the individual application mobility service'
      description: ' deregister the individual application mobility service'
      operationId: app_mobility_service_derPOST
      parameters:
      - name: appMobilityServiceId
        in: path
        description: It uniquely identifies the created individual application mobility service
        required: true
        style: simple
        schema:
          type: string
      responses:
Elian Kraja's avatar
Elian Kraja committed
        '204':
          description: No Content
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    parameters: []
  /subscriptions:
Elian Kraja's avatar
Elian Kraja committed
      tags:
      - subscriptions
      summary: 'Retrieve information about the subscriptions for this requestor.'
      description: Retrieve information about the subscriptions for this requestor.
Elian Kraja's avatar
Elian Kraja committed
      operationId: subGET
      parameters:
      - name: subscriptionType
        in: query
        description: 'Query parameter to filter on a specific subscription type. Permitted values: mobility_proc or adj_app_info'
        required: true
        style: form
        explode: true
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: Contains  the list of links to requestor subscriptions.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionLinkList'
Elian Kraja's avatar
Elian Kraja committed
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    post:
Elian Kraja's avatar
Elian Kraja committed
      tags:
      - subscriptions
      summary: 'Create a new subscription to Application Mobility Service notifications.'
      description: Create a new subscription to Application Mobility Service notifications.
Elian Kraja's avatar
Elian Kraja committed
      operationId: subPOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/MobilityProcedureSubscription'
              - $ref: '#/components/schemas/AdjacentAppInfoSubscription'
              contentMediaType: application/json
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '201':
          description: Created subscription is described using the appropriate data type
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/MobilityProcedureSubscription'
                - $ref: '#/components/schemas/AdjacentAppInfoSubscription'
                contentMediaType: application/json
Elian Kraja's avatar
Elian Kraja committed
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '415':
          description: 'Unsupported Media Type :  used to indicate that the server or the client does not support the content type of the entity body.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '422':
          description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    parameters: []
  /subscriptions/{subscriptionId}:
    get:
      tags:
      - subscriptions
      summary: 'Retrieve information about this subscription.'
      description: Retrieve information about this subscription.
      operationId: sub_byIdGET
      parameters:
      - name: subscriptionId
        in: path
        description: Refers to created subscription, where the AMS API allocates a unique resource name for this subscription
        required: true
        style: simple
        schema:
          type: string
      responses:
Elian Kraja's avatar
Elian Kraja committed
        '200':
          description: A response body containing data type describing the specific RNI event subscription
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/MobilityProcedureSubscription'
                - $ref: '#/components/schemas/AdjacentAppInfoSubscription'
                contentMediaType: application/json
Elian Kraja's avatar
Elian Kraja committed
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    put:
      tags:
      - subscriptions
      summary: 'update the existing individual subscription.'
      description: update the existing individual subscription.
      operationId: sub_byIdPUT
      parameters:
      - name: subscriptionId
        in: path
        description: Refers to created subscription, where the AMS API allocates a unique resource name for this subscription
Elian Kraja's avatar
Elian Kraja committed
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/MobilityProcedureSubscription'
              - $ref: '#/components/schemas/AdjacentAppInfoSubscription'
              contentMediaType: application/json
        required: true
      responses:
Elian Kraja's avatar
Elian Kraja committed
        '200':
          description: a response body containing data type describing the updated subscription
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/MobilityProcedureSubscription'
                - $ref: '#/components/schemas/AdjacentAppInfoSubscription'
                contentMediaType: application/json
Elian Kraja's avatar
Elian Kraja committed
        '400':
          description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '406':
          description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '412':
          description: 'Precondition failed :  used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '422':
          description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    delete:
      tags:
      - subscriptions
      summary: 'cancel the existing individual subscription'
      description: cancel the existing individual subscription
      operationId: sub_byIdDELETE
      parameters:
      - name: subscriptionId
        in: path
        description: Refers to created subscription, where the AMS API allocates a unique resource name for this subscription
        required: true
        style: simple
        schema:
          type: string
      responses:
Elian Kraja's avatar
Elian Kraja committed
        '204':
          description: No Content
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
Elian Kraja's avatar
Elian Kraja committed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '404':
          description: 'Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Elian Kraja's avatar
Elian Kraja committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
    parameters: []
Elian Kraja's avatar
Elian Kraja committed
components:
  schemas:
    AdjacentAppInfoSubscription.links:
      title: AdjacentAppInfoSubscription.links
Elian Kraja's avatar
Elian Kraja committed
      required:
      - self
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
      description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.
Elian Kraja's avatar
Elian Kraja committed
    AdjacentAppInfoSubscription.filterCriteria:
      title: AdjacentAppInfoSubscription.filterCriteria
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        appInstanceId:
          type: string
      description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.
Elian Kraja's avatar
Elian Kraja committed
    AdjacentAppInfoSubscription:
      title: AdjacentAppInfoSubscription
      required:
      - callbackReference
      - filterCriteria
      - subscriptionType
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        _links:
          $ref: '#/components/schemas/AdjacentAppInfoSubscription.links'
        callbackReference:
          type: string
          description: URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response.
Elian Kraja's avatar
Elian Kraja committed
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
Elian Kraja's avatar
Elian Kraja committed
        filterCriteria:
          $ref: '#/components/schemas/AdjacentAppInfoSubscription.filterCriteria'
        subscriptionType:
          const: AdjacentAppInfoSubscription
Elian Kraja's avatar
Elian Kraja committed
          type: string
          description: Shall be set to "AdjacentAppInfoSubscription".
          examples:
          - AdjacentAppInfoSubscription
    AdjacentAppInstanceInfo:
      title: AdjacentAppInstanceInfo
Elian Kraja's avatar
Elian Kraja committed
      required:
      - appDId
      - appInstanceCommLink
      - appInstanceId
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        appDId:
          type: string
          description: Identifier of the application descriptor.
Elian Kraja's avatar
Elian Kraja committed
        appInstanceCommLink:
Elian Kraja's avatar
Elian Kraja committed
          type: array
          items:
            $ref: '#/components/schemas/CommunicationInterface'
          description: It specifies the communication interface of application instance.
Elian Kraja's avatar
Elian Kraja committed
        appInstanceId:
          type: string
          description: Identifier of the application instance.
Elian Kraja's avatar
Elian Kraja committed
        mecHostInformation:
          $ref: '#/components/schemas/MECHostInformation'
    AppMobilityServiceLevel:
      title: AppMobilityServiceLevel
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - APP_MOBILITY_NOT_ALLOWED
      - APP_MOBILITY_WITH_CONFIRMATION
      - APP_MOBILITY_WITHOUT_CONFIRMATION
Elian Kraja's avatar
Elian Kraja committed
      type: string
      description: This attribute provides an option for the application instance (server) to communicate with the application client before relocating this application instance to another MEC host.
      examples:
      - APP_MOBILITY_NOT_ALLOWED
Elian Kraja's avatar
Elian Kraja committed
    CommunicationInterface.IpAddresses:
      title: CommunicationInterface.IpAddresses
      required:
      - host
      - port
      type: object
      properties:
        host:
          type: string
        port:
          type: integer
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
    CommunicationInterface:
      title: CommunicationInterface
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        ipAddresses:
          type: array
          items:
            $ref: '#/components/schemas/CommunicationInterface.IpAddresses'
          description: ''
Elian Kraja's avatar
Elian Kraja committed
    MobilityProcedureSubscription.links:
      title: MobilityProcedureSubscription.links
      required:
      - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
Elian Kraja's avatar
Elian Kraja committed
    MobilityProcedureSubscription.filterCriteria:
      title: MobilityProcedureSubscription.filterCriteria
      type: object
      properties:
        appInstanceId:
          type: string
          description: Identifier of the application instance that registers the application mobility service.
        associateId:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/AssociateId'
          description: 0 to N identifiers to associate the information for specific UE(s) and flow(s).
        mobilityStatus:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/MobilityStatus'
          description: In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response.
      description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.
Elian Kraja's avatar
Elian Kraja committed
    MobilityProcedureSubscription:
      title: MobilityProcedureSubscription
      required:
      - callbackReference
      - filterCriteria
      - subscriptionType
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/MobilityProcedureSubscription.links'
        callbackReference:
          type: string
          description: URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response.
Elian Kraja's avatar
Elian Kraja committed
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
        filterCriteria:
          $ref: '#/components/schemas/MobilityProcedureSubscription.filterCriteria'
        subscriptionType:
          const: MobilityProcedureSubscription
Elian Kraja's avatar
Elian Kraja committed
          type: string
          description: Shall be set to "MobilityProcedureSubscription".
          examples:
          - MobilityProcedureSubscription
Elian Kraja's avatar
Elian Kraja committed
    MobilityStatus:
      title: MobilityStatus
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - INTERHOST_MOVEOUT_TRIGGERED
      - INTERHOST_MOVEOUT_COMPLETED
      - INTERHOST_MOVEOUT_FAILED
      type: string
      description: Indicate the status of the UE mobility
      examples:
      - INTERHOST_MOVEOUT_TRIGGERED
Elian Kraja's avatar
Elian Kraja committed
    RegistrationInfo.deviceInformation:
      title: RegistrationInfo.deviceInformation
      required:
      - associateId
      type: object
      properties:
        associateId:
          $ref: '#/components/schemas/AssociateId'
        appMobilityServiceLevel:
          $ref: '#/components/schemas/AppMobilityServiceLevel'
        contextTransferState:
          $ref: '#/components/schemas/contextTransferState'
Elian Kraja's avatar
Elian Kraja committed
    RegistrationInfo.serviceConsumerId:
      title: RegistrationInfo.serviceConsumerId
      type: object
      properties:
        appInstanceId:
          type: string
          description: If present, it represents the identifier of the application instance registering the application mobility service.
        mepId:
          type: string
          description: If present, it represents the identifier of the MEC platform registering the application mobility service.
      description: The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID.
Elian Kraja's avatar
Elian Kraja committed
    RegistrationInfo:
      title: RegistrationInfo
      required:
      - serviceConsumerId
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        appMobilityServiceId:
          type: string
          description: The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise.
Elian Kraja's avatar
Elian Kraja committed
        deviceInformation:
          minItems: 0
Elian Kraja's avatar
Elian Kraja committed
          items:
            $ref: '#/components/schemas/RegistrationInfo.deviceInformation'
          description: If present, it specifies the device served by the application instance which is registering the application mobility service.
Elian Kraja's avatar
Elian Kraja committed
        expiryTime:
          type: integer
          description: If present, it indicates the time of application mobility service expiration from the time of registration accepted.The value "0" means infinite time, i.e. no expiration.The unit of expiry time is one second.
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
        serviceConsumerId:
          $ref: '#/components/schemas/RegistrationInfo.serviceConsumerId'
    SubscriptionLinkList.links:
      title: SubscriptionLinkList.links
      required:
      - self
      type: object
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
      description: List of hyperlinks related to the resource.
Elian Kraja's avatar
Elian Kraja committed
    SubscriptionLinkList.subscription:
      title: SubscriptionLinkList.subscription
      required:
      - href
      - subscriptionType
      type: object
      properties:
        href:
          type: string
          description: The URI referring to the subscription.
        subscriptionType:
          $ref: '#/components/schemas/subscriptionType'
Elian Kraja's avatar
Elian Kraja committed
    SubscriptionLinkList:
      title: SubscriptionLinkList
      required:
      - _links
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/SubscriptionLinkList.links'
        subscription:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/SubscriptionLinkList.subscription'
          description: A link to a subscription.
Elian Kraja's avatar
Elian Kraja committed
    contextTransferState:
      title: contextTransferState
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - NOT_TRANSFERRED
      - USER_CONTEXT_TRANSFER_COMPLETED
      type: string
      description: If present, it represents the state of transferring the user context to another application instance.
      examples:
      - NOT_TRANSFERRED
Elian Kraja's avatar
Elian Kraja committed
    subscriptionType:
      title: subscriptionType
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - 0
      - 1
      - 2
      type: integer
      description: 'Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO.'
      examples:
      - 0
Elian Kraja's avatar
Elian Kraja committed
    AssociateId:
      title: AssociateId
Elian Kraja's avatar
Elian Kraja committed
      required:
      - type
      - value
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Type'
        value:
          type: string
          description: Value for the identifier.
Elian Kraja's avatar
Elian Kraja committed
    LinkType:
      title: LinkType
Elian Kraja's avatar
Elian Kraja committed
      required:
      - href
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        href:
          type: string
          description: The URI referring to the subscription.
      description: "'This data type represents a type of link'"
Elian Kraja's avatar
Elian Kraja committed
    TimeStamp:
      title: TimeStamp
Elian Kraja's avatar
Elian Kraja committed
      required:
      - seconds
      - nanoSeconds
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        seconds:
          type: integer
          description: "'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'"
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
        nanoSeconds:
          type: integer
          description: "'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'"
          contentEncoding: int32
      description: "'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC'"
Elian Kraja's avatar
Elian Kraja committed
    MECHostInformation:
      title: MECHostInformation
Elian Kraja's avatar
Elian Kraja committed
      required:
      - hostId
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        hostName:
          type: string
          description: Human-readable name of MEC host.
Elian Kraja's avatar
Elian Kraja committed
        hostId:
          type: object
          description: "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'"
      description: "'The data type represents the parameters of MEC host information.'"
Elian Kraja's avatar
Elian Kraja committed
    ProblemDetails:
      title: ProblemDetails
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem
Elian Kraja's avatar
Elian Kraja committed
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
Elian Kraja's avatar
Elian Kraja committed
        status:
          type: integer
          description: The HTTP status code for this occurrence of the problem
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
        title:
          type: string
          description: A short, human-readable summary of the problem type
Elian Kraja's avatar
Elian Kraja committed
        type:
Elian Kraja's avatar
Elian Kraja committed
          description: A URI reference according to IETF RFC 3986 that identifies the problem type
    Type:
      title: Type
      enum:
      - UE_IPv4_ADDRESS
      - UE_IPV6_ADDRESS
      - NATED_IP_ADDRESS
      - GTP_TEID
      type: string
      description: Numeric value (0-255) corresponding to specified type of identifier
      examples:
      - UE_IPv4_ADDRESS
security: