Merge branch STF678_Task_3_EDGE-1/4 into STF678_Task4

Add service provisioning, EEC registration, EAS discovery OAS into the app-support swagger file

Merge request reports

Loading
+1160 −0
Changes for config/api/app-support.yaml: 1160 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ servers:
tags:
  - name: mec_app_support
  - name: unsupported
  - name: Service Provisioning, EEC Registration, and EAS Discovery
  - name: callbacks
paths:
  /applications/{appInstanceId}/traffic_rules:
@@ -1513,6 +1514,486 @@ paths:
                description: Empty schema
      deprecated: false
    parameters: []

  /request:
    post:
      summary: Request service provisioning information.
      operationId: RequestServProv
      tags:
        - Service Provisioning, EEC Registration, and EAS Discovery
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                eecId:
                  type: string
                  example: "string"
                ueId:
                  type: string
                  example: "string"
                acProfs:
                  type: array
                  items:
                    type: object
                    properties:
                      acId:
                        type: string
                        example: "string"
                      acType:
                        type: string
                        example: "string"
                eecSvcContSupp:
                  type: array
                  items:
                    type: string
                    enum:
                      - EEC_INITIATED
                      - EEC_EXECUTED_VIA_SOURCE_EES
                  example: ["EEC_INITIATED", "EEC_EXECUTED_VIA_SOURCE_EES"]
                locInf:
                  type: object
                  properties:
                    geographicArea:
                      type: object
                      properties:
                        point:
                          type: object
                          properties:
                            point:
                              type: object
                              properties:
                                lon:
                                  type: number
                                  format: float
                                  example: 7.4200
                                lat:
                                  type: number
                                  format: float
                                  example: 43.7356
                            shape:
                              type: string
                              example: "POINT"
              required:
                - eecId
      responses:
        '200':
          description: >
            OK (The requested service provisioning information was returned successfully).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ECSServProvResp'
        "204":
          description: Successful response sent when there is no need to provide a
            new liveness interval value to the service Instance.
          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'
        "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'
        "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'
        "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'
    servers:
    - url: https://localhost/sandboxname/eecs-serviceprovisioning/v1

  /registration:
    post:
      operationId: CreateEECReg
      tags:
        - Service Provisioning, EEC Registration, and EAS Discovery
      description: Create a new EEC registration at the EES.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                eecId:
                  type: string
                  example: "string"
                ueId:
                  type: string
                  example: "ue-67890"
                acProfs:
                  type: array
                  items:
                    type: object
                    properties:
                      acId:
                        type: string
                        example: "string"
                      acType:
                        type: string
                        example: "string"
                expTime:
                  type: string
                  format: date-time
                  example: "2025-01-31T15:04:05Z"
                eecSvcContSupp:
                  type: array
                  items:
                    type: string
                    enum:
                      - EEC_INITIATED
                      - SOURCE_EAS_DECIDED
                  example: ["EEC_INITIATED", "SOURCE_EAS_DECIDED"]
                eecCntxId:
                  type: string
                  example: "string"
                srcEesId:
                  type: string
                  example: "mep1"
                endPt:
                  type: object
                  properties:
                    uri:
                      type: string
                      example: "http://172.30.225.7/sbx2cmq8bn/mep1"
                ueMobilityReq:
                  type: boolean
                  example: true
                easSelReqInd:
                  type: boolean
                  example: false
                ueType:
                  type: string
                  example: "NORMAL_UE"
              required:
                - eecId
      responses:
        '201':
          description: Created (EEC information is registered successfully at EES).
          content:
            application/json:
              schema:
                type: object
                properties:
                  RegistrationID:
                    type: string
                    description: Identifier of the EEC registration.
                  ExpirationTime:
                    type: string
                    format: date-time
                    description: Expiration time of the registration.
                  EECContextID:
                    type: string
                    description: Identifier of the EEC context information available at the EES.
                  EECContextRelocationStatus:
                    type: boolean
                    description: Indicates whether the EEC context retrieval from the source EES was successful.
                  DiscoveredEASList:
                    type: array
                    items:
                      $ref: '#/components/schemas/EASProfile'
        "204":
          description: Successful response sent when there is no need to provide a
            new liveness interval value to the service Instance.
          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'
        "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'
        "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'
        "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'
    servers:
    - url: https://localhost/sandboxname/eees-eecregistration/v1

  /registration/{registrationId}:
    get:
      summary: Retrieve EEC Registration Details
      operationId: getRegistrationDetails
      tags:
        - Service Provisioning, EEC Registration, and EAS Discovery
      parameters:
        - name: registrationId
          in: path
          description: Identifies an individual EEC registration.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful retrieval of EEC registration details.
          content:
            application/json:
              schema:
                type: object
                properties:
                  RegistrationID:
                    type: string
                    description: Identifier of the EEC registration.
                  ExpirationTime:
                    type: string
                    format: date-time
                    description: Expiration time of the registration.
                  EECContextID:
                    type: string
                    description: Identifier of the EEC context information available at the EES.
                  EECContextRelocationStatus:
                    type: boolean
                    description: Indicates whether the EEC context retrieval from the source EES was successful.
                  DiscoveredEASList:
                    type: array
                    items:
                      $ref: '#/components/schemas/EASProfile'
        '404':
          description: EEC registration not found.
        '400':
          description: Invalid registration ID supplied.
        '500':
          description: Internal server error.
    put:
      summary: EEC Registration Update Request via PUT
      operationId: updateRegistrationPut
      tags:
        - Service Provisioning, EEC Registration, and EAS Discovery
      parameters:
        - name: registrationId
          in: path
          description: Identifies an individual EEC registration.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                acProfs:
                  type: array
                  items:
                    $ref: '#/components/schemas/ACProfile'
                  description: Profiles of ACs for which the EEC provides edge enabling services.
                expTime:
                  $ref: '#/components/schemas/DateTime'
                ueMobilityReq:
                  type: boolean
                  description: >
                    Set to true to indicate that UE Mobility support is required.
                    Set to false to indicate that UE mobility support is not required.
                    The default value when omitted is false.
      responses:
        "200":
          description: Successful registration update response via PUT
          content:
            application/json:
              schema:
                type: object
                properties:
                  expirationTime:
                    type: string
                    format: date-time
                    description: Expiration time of the registration.
                  unfulfilledACInfo:
                    type: array
                    description: List of unfulfilled AC information.
                    items:
                      type: object
                      properties:
                        acid:
                          type: string
                          description: Application Identifier.
                        reason:
                          type: string
                          description: Reason indicating the cause (e.g., EAS not available).
        "204":
          description: Successful response sent when there is no need to provide a
            new liveness interval value to the service Instance.
          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'
        "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'
        "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'

    delete:
      operationId: DeleteIndEECReg
      tags:
        - Service Provisioning, EEC Registration, and EAS Discovery
      description: Remove an existing EEC registration at EES.
      parameters:
        - name: registrationId
          in: path
          description: Identifies an individual EEC registration.
          required: true
          schema:
            type: string
      responses:
        '204':
          description: >
            No Content (An individual EEC registration resource deleted successfully).
    servers:
    - url: https://localhost/sandboxname/eees-eecregistration/v1

  /eas-profiles/request-discovery:
    post:
      description: >
        Provides EAS information requested by the service consumer (i.e. EEC, EAS or EES).
      operationId: GetEASDiscInfo
      tags:
        - Service Provisioning, EEC Registration, and EAS Discovery
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                requestorId:
                  type: object
                  properties:
                    eesId:
                      type: string
                      example: "string"
                    eecId:
                      type: string
                      example: "string"
                  oneOf:
                    - required: ["eesId"]
                    - required: ["eecId"]
                ueId:
                  type: string
                  example: "string"
                easDiscoveryFilter:
                  type: object
                  properties:
                    acChars:
                      type: array
                      items:
                        type: object
                        properties:
                          acProf:
                            type: object
                            properties:
                              acId:
                                type: string
                                example: "string"
                              acType:
                                type: string
                                example: "string"
                eecSvcContinuity:
                  type: array
                  items:
                    type: string
                  example: ["EEC_INITIATED", "string"]
                locInf:
                  type: object
                  description: "Location information. Define properties as required."
                  example: {}
                predictExpTime:
                  type: string
                  format: date-time
                  example: "2025-02-04T09:49:01.348Z"
              required:
                - requestorId
      responses:
        '200':
          description: >
            OK (The requested EAS discovery information was returned successfully).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EasDiscoveryResp'

    servers:
    - url: https://localhost/sandboxname/eees-easdiscovery/v1
  /timing/timing_caps:
    get:
      tags:
@@ -1619,6 +2100,685 @@ paths:
    parameters: []
components:
  schemas:
    EasDiscoveryResp:
      description: EAS discovery response.
      type: object
      properties:
        discoveredEas:
          type: array
          items:
            $ref: '#/components/schemas/DiscoveredEas'
          description: List of EAS discovery information.
      required:
        - discoveredEas
    DiscoveredEas:
      description: Represents an EAS discovery information.
      type: object
      properties:
        eas:
          $ref: '#/components/schemas/EASProfile'
        eesEndPt:
          $ref: '#/components/schemas/EndPoint'
        lifeTime:
          $ref: '#/components/schemas/DateTime'
      required:
        - eas
    EasDiscoveryReq:
      description: EAS discovery request information.
      type: object
      properties:
        requestorId:
          $ref: '#/components/schemas/RequestorId'
        ueId:
          $ref: '#/components/schemas/Gpsi'
        easDiscoveryFilter:
          $ref: '#/components/schemas/EasDiscoveryFilter'
        eecSvcContinuity:
          type: array
          items:
            $ref: '#/components/schemas/ACRScenario'
          description: >
            Indicates if the EEC supports service continuity or not, also indicates which ACR
            scenarios are supported by the EEC.
        eesSvcContinuity:
          type: array
          items:
            $ref: '#/components/schemas/ACRScenario'
          description: >
            Indicates if the EES supports service continuity or not, also indicates which ACR
            scenarios are supported by the EES.
        easSvcContinuity:
          type: array
          items:
            $ref: '#/components/schemas/ACRScenario'
          description: >
            Indicates if the EAS supports service continuity or not, also indicates which ACR
            scenarios are supported by the EAS.
        locInf:
          $ref: '#/components/schemas/LocationInfo'
        easSelSupInd:
          type: boolean
          description: >
            Indicates if the EEC requires the EAS selection support from the EES (e.g., for
            constrained device). The default value false indicates the EAS selection is not
            required from the EES.
        suppFeat:
          $ref: '#/components/schemas/SupportedFeatures'
        easIntTrigSup:
          type: boolean
          description: >
            Indicates to the EES whether the EAS instantiation triggering should be performed for
            the current request. The default value false indicates the EAS instantiation triggering
            should not be performed. The true value indicate the EAS instantiation triggering should
            be performed.
        predictExpTime:
          $ref: '#/components/schemas/DateTime'
      required:
        - requestorId

    EasDiscoveryFilter:
      description: Represents the EAS characteristics.
      type: object
      properties:
        acChars:
          type: array
          items:
            $ref: '#/components/schemas/ACCharacteristics'
          minItems: 1
          description: AC description for which an EAS is needed.
    ACCharacteristics:
      description: Represents EAS dynamic information changes filter.
      type: object
      properties:
        acProf:
          $ref: '#/components/schemas/ACProfile'
      required:
        - acProf
    RequestorId:
      description: Represents identifier of the requestor.
      type: object
      properties:
        eesId:
          type: string
          description: The identifier of the EES (e.g. S-EES).
        easId:
          type: string
          description: The application identifier of the EAS (e.g. S-EAS), e.g. FQDN, URI.
        eecId:
          type: string
          description: The identifier of the EEC.
      oneOf:
        - required: [eesId]
        - required: [easId]
        - required: [eecId]

    EASProfile:
      type: object
      required:
        - easId
        - endPt
        - acIds
        - scheds
        - permLvl
        - easFeats
        - svcContSupp
        - appLocs
      properties:
        easId:
          description: The identifier of the EAS
          type: string
          example:
             appName
        endPt:
          $ref: '#/components/schemas/EndPoint'
        acIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Identities of the Application Clients that can be served by the EAS
        provId:
          type: string
          description: Identifier of the ASP that provides the EAS.
          example:
             appProvider1
        type:
          description: The category or type of EAS.
          type: string
        scheds:
          type: array
          items:
            type: string
          minItems: 1
          description: The availability schedule of the EAS.
        svcArea:
          type: string
          description: >-
            The list of geographical and topological areas that the EAS serves. ACs in the UE that are outside the area will not be served.
        svcKpi:
          type: string
          description: Service characteristics provided by the EAS.
        permLvl:
          type: array
          items:
            type: string
          minItems: 1
          description: level of service permissions supported by the EAS.
        easFeats:
          type: array
          items:
            type: string
          minItems: 1
          description: Service features supported by the EAS.
        svcContSupp:
          type: array
          items:
            type: string
          minItems: 1
          description: The ACR scenarios supported by the EAS for service continuity.
        appLocs:
          type: array
          items:
            type: string
          minItems: 1
          description: >-
            List of DNAI(s) and the N6 traffic information associated with the EAS.
        avlRep:
          type: integer
          description: >-
            The period indicating to the EES, how often the EES needs to check the EAS's availability after a successful registration.
          example:
             1577836800
        status:
          type: string
          description: 'EAS status information. '

    EECRegistration:
      description: Describes the parameters to perform EEC Registration related operations.
      type: object
      properties:
        eecId:
          type: string
          description: Represents a unique identifier of the EEC.
        ueId:
          $ref: '#/components/schemas/Gpsi'
        acProfs:
          type: array
          items:
            $ref: '#/components/schemas/ACProfile'
          description: Profiles of ACs for which the EEC provides edge enabling services.
        expTime:
          $ref: '#/components/schemas/DateTime'
        eecSvcContSupp:
          type: array
          items:
            $ref: '#/components/schemas/ACRScenario'
          description: Profiles of ACs for which the EEC provides edge enabling services.
        eecCntxId:
          type: string
          description: Identifier of the EEC context obtained from a previous registration.
        srcEesId:
          type: string
          description: Identifier of the EES that provided EEC context ID.
        endPt:
          $ref: '#/components/schemas/EndPoint'
        ueMobilityReq:
          type: boolean
          description: >
            Set to true to indicate that UE Mobility support is required.
            Set to false to indicate that UE mobility support is not required.
            The default value when omitted is false.
        easSelReqInd:
          type: boolean
          description: >
            Set to true to indicate the EES support for EAS selection.
            Set to false to indicate the EES shall not select the EAS.
            The default value when omitted is false.
        ueType:
          $ref: '#/components/schemas/DeviceType'
      required:
        - eecId
    DeviceType:
      anyOf:
      - type: string
        enum:
          - CONSTRAINED_UE
          - NORMAL_UE
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: >
        Represents the UE type.
        Possible values are:
        - CONSTRAINED_UE: Indicates UE is constrained with resources like power, processor etc.
        - NORMAL_UE: Indicates UE is not constrained with resources.
    ECSServProvReq:
      description: ECS service provisioning request information.
      type: object
      properties:
        eecId:
          type: string
          description: Represents a unique identifier of the EEC.
        ueId:
          $ref: '#/components/schemas/Gpsi'
        acProfs:
          type: array
          items:
            $ref: '#/components/schemas/ACProfile'
          description: Information about services the EEC wants to connect to.
        appInfo:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationInfo'
          minItems: 1
          description: Information about the list of services the EEC wants to connect.
        eecSvcContSupp:
          type: array
          items:
            $ref: '#/components/schemas/ACRScenario'
          description: >
            Indicates if the EEC supports service continuity or not, also indicates which
            ACR scenarios are supported by the EEC.
        locInf:
          $ref: '#/components/schemas/LocationInfo'
        ecspIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Indicates to the ECS which EES providers are preferred by the EEC.
        suppFeat:
          $ref: '#/components/schemas/SupportedFeatures'
      required:
        - eecId

    ECSServProvResp:
      description: ECS service provisioning response information.
      type: object
      properties:
        ednCnfgInfo:
          type: array
          items:
            $ref: '#/components/schemas/EDNConfigInfo'
          minItems: 1
          description: List of EDN configuration information.
      required:
        - ednCnfgInfo

    SupportedFeatures:
      type: string
      pattern: '^[A-Fa-f0-9]*$'
      description: >
        A string used to indicate the features supported by an API that is used as defined in clause 
        6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in 
        hexadecimal representation Each character in the string shall take a value of "0" to "9", 
        "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in 
        table 5.2.2-3. The most significant character representing the highest-numbered features
        shall  appear first in the string, and the character representing features 1 to 4
        shall appear last  in the string. The list of features and their numbering (starting with 1)
        are defined  separately for each API. If the string contains a lower number of characters
        than there are  defined features for an API, all features that would be represented by
        characters that are not  present in the string are not supported. 

    LocationInfo:
      description: Represents the user location information.
      type: object
      properties:
        geographicArea:
          $ref: '#/components/schemas/GeographicArea'

    GeographicArea:
      description: Geographic area specified by different shape.
      anyOf:
        - $ref: '#/components/schemas/Point'
    Point:
      description: Ellipsoid Point.
      allOf:
        - $ref: '#/components/schemas/GADShape'
        - type: object
          required:
            - point
          properties:
            point:
              $ref: '#/components/schemas/GeographicalCoordinates'
    GeographicalCoordinates:
      description: Geographical coordinates.
      type: object
      required:
        - lon
        - lat
      properties:
        lon:
          type: number
          format: double
          minimum: -180
          maximum: 180
        lat:
          type: number
          format: double
          minimum: -90
          maximum: 90
    GADShape:
      description: Common base type for GAD shapes.
      type: object
      required:
        - shape
      properties:
        shape:
          $ref: '#/components/schemas/SupportedGADShapes'
      discriminator:
        propertyName: shape
        mapping:
          POINT: '#/components/schemas/Point'
          POINT_UNCERTAINTY_CIRCLE: '#/components/schemas/PointUncertaintyCircle'
          POINT_UNCERTAINTY_ELLIPSE: '#/components/schemas/PointUncertaintyEllipse'
          POLYGON: '#/components/schemas/Polygon'
          POINT_ALTITUDE: '#/components/schemas/PointAltitude'
          POINT_ALTITUDE_UNCERTAINTY: '#/components/schemas/PointAltitudeUncertainty'
          ELLIPSOID_ARC: '#/components/schemas/EllipsoidArc'
          LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE: '#/components/schemas/Local2dPointUncertaintyEllipse'
          LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID: '#/components/schemas/Local3dPointUncertaintyEllipsoid'
    SupportedGADShapes:
      description: Indicates supported GAD shapes.
      anyOf:
        - type: string
          enum:
            - POINT
            - POINT_UNCERTAINTY_CIRCLE
            - POINT_UNCERTAINTY_ELLIPSE
            - POLYGON
            - POINT_ALTITUDE
            - POINT_ALTITUDE_UNCERTAINTY
            - ELLIPSOID_ARC
            - LOCAL_2D_POINT_UNCERTAINTY_ELLIPSE
            - LOCAL_3D_POINT_UNCERTAINTY_ELLIPSOID
            - DISTANCE_DIRECTION
            - RELATIVE_2D_LOCATION_UNCERTAINTY_ELLIPSE
            - RELATIVE_3D_LOCATION_UNCERTAINTY_ELLIPSOID
        - type: string

    Gpsi:
      type: string
      pattern: '^(msisdn-[0-9]{5,15}|extid-[^@]+@[^@]+|.+)$'
      description: >
        String identifying a Gpsi shall contain either an External Id or an MSISDN. 
        It shall be formatted as follows -External Identifier= "extid-'extid', where 'extid' 
        shall be formatted according to clause 19.7.2 of 3GPP TS 23.003 that describes an 
        External Identifier.  


    ACProfile:
      description: AC information indicating required services and service characteristics.
      type: object
      properties:
        acId:
          type: string
          description: Identity of the AC.
        acType:
          type: string
          description: The category or type of AC.
        prefEcsps:
          type: array
          items:
            type: string
          description: Indicates to the ECS which ECSPs are preferred for the AC.
        simInactTime:
          $ref: '#/components/schemas/DurationSec'
        eass:
          type: array
          items:
            $ref: '#/components/schemas/EasDetail'
          minItems: 1
          description: List of EAS information.
        # easBundleInfos:
        #   type: array
        #   items:
        #     $ref: 'TS29558_Eees_EASRegistration.yaml#/components/schemas/EASBundleInfo'
        #   minItems: 1
        #   description: >
        #     List of EAS bundles to which the EAS (identified via the "easId" attribute) belongs.
      required:
        - acId

    EasDetail:
      description: EAS details.
      type: object
      properties:
        easId:
          type: string
          description: Application identifier of the EAS.
      required:
        - easId

    DurationSec:
      type: integer
      minimum: 0
      description: Unsigned integer identifying a period of time in units of seconds.


    ApplicationInfo:
      description: Represents the services the EEC wants to connect.
      type: object
      properties:
        acProf:
            $ref: '#/components/schemas/ACProfile'
        appGroupProfile:
            $ref: '#/components/schemas/AppGroupProfile'
      required:
        - acProf
    
    ACRScenario:
      anyOf:
      - type: string
        enum:
          - EEC_INITIATED
          - EEC_EXECUTED_VIA_SOURCE_EES
          - EEC_EXECUTED_VIA_TARGET_EES
          - SOURCE_EAS_DECIDED
          - SOURCE_EES_EXECUTED
          - EEL_MANAGED_ACR
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration but is not used to encode
          content defined in the present version of this API.
      description: |
        Represents the ACR scenarios supported by EES.  
        Possible values are:
        - EEC_INITIATED: Represents the EEC initiated ACR scenario.
        - EEC_EXECUTED_VIA_SOURCE_EES: Represents the EEC ACR scenario executed via the S-EES.
        - EEC_EXECUTED_VIA_TARGET_EES: Represents the EEC ACR scenario executed via the T-EES.
        - SOURCE_EAS_DECIDED: Represents the EEC ACR scenario where the S-EAS decides to perform
          ACR.
        - SOURCE_EES_EXECUTED: Represents the EEC ACR scenario where S-EES executes the ACR.
        - EEL_MANAGED_ACR: Represents the EEC ACR scenario where the ACR is managed by the
          Edge Enabler Layer.
    AppGroupProfile:
      description: Represents the application group profile for common EAS.
      type: object
      properties:
        appGrpId:
          type: string
          description: Represents the application group that uniquely identifies
            the group of UEs using the same application.
        easId:
          type: string
          description: Represents the application identifier of the EAS.
      required:
        - appGrpId
        - easId

    EDNConfigInfo:
      description: Represents the EDN configuration information.
      type: object
      properties:
        ednConInfo:
          $ref: '#/components/schemas/EDNConInfo'
        eess:
          type: array
          items:
            $ref: '#/components/schemas/EESInfo'
          minItems: 1
          description: Contains the list of EESs of the EDN.
        lifeTime:
          $ref: '#/components/schemas/DateTime'
      required:
        - ednConInfo
        - eess


    EDNConInfo:
      description: Represents an EDN connection information.
      type: object
      properties:
        dnn:
          $ref: '#/components/schemas/Dnn'
        # snssai:
        #   $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        # ednTopoSrvArea:
        #   $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'

    Dnn:
      type: string
      description: >
        String representing a Data Network as defined in clause 9A of 3GPP TS 23.003; 
        it shall contain either a DNN Network Identifier, or a full DNN with both the Network 
        Identifier and Operator Identifier, as specified in 3GPP TS 23.003 clause 9.1.1 and 9.1.2.
        It shall be coded as string in which the labels are separated by dots 
        (e.g. "Label1.Label2.Label3").

    DateTime:
      format: date-time
      type: string
      description: string with format "date-time" as defined in OpenAPI.                       


    EESInfo:
      description: Represents EES information.
      type: object
      properties:
        eesId:
          type: string
          description: Identity of the EES.
        endPt:
          $ref: '#/components/schemas/EndPoint'
        easIds:
          type: array
          items:
            type: string
          description: >
            Application identities of the Edge Application Servers registered
            with the EES.
        eecRegConf:
          type: boolean
          description: >
            Indicates whether the EEC is required to register on the EES to use edge services
            or not.
      required:
        - eesId
        - eecRegConf
    Fqdn:
      description: Fully Qualified Domain Name
      type: string
      pattern: '^([0-9A-Za-z]([-0-9A-Za-z]{0,61}[0-9A-Za-z])?\.)+[A-Za-z]{2,63}\.?$'
      minLength: 4
      maxLength: 253

    Ipv6Addr:
      type: string
      description: >
        string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952.
        The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used.
    Uri:
      type: string
      description: string providing an URI formatted according to IETF RFC 3986. 
    Ipv4Addr:
      type: string
      description: >
        string identifying a Ipv4 address formatted in the "dotted decimal" notation as defined in
        IETF RFC 1166.
    EndPoint:
      type: object
      description: The end point information to reach EAS.
      properties:
        fqdn:
          $ref: '#/components/schemas/Fqdn'
        ipv4Addrs:
          type: array
          items:
            $ref: '#/components/schemas/Ipv4Addr'
          minItems: 1
          description: IPv4 addresses of the edge server.
        ipv6Addrs:
          type: array
          items:
            $ref: '#/components/schemas/Ipv6Addr'
          minItems: 1
          description: IPv6 addresses of the edge server.
        uri:
          $ref: '#/components/schemas/Uri'
      oneOf:
        - required: [uri]
        - required: [fqdn]
        - required: [ipv4Addrs]
        - required: [ipv6Addrs]
      
    InvalidParam:
      description: >
        Represents the description of invalid parameters, for a request rejected due to invalid
        parameters.
      type: object
      properties:
        param:
          type: string
          description: Attribute's name encoded as a JSON Pointer, or header's name.
        reason:
          type: string
          description: A human-readable reason, e.g. "must be a positive integer".
      required:
        - param

    # EASBundleDetail:
    #   description: Represents details of EAS Bundle.
    #   type: object
    #   properties:
    #     easId:
    #       type: string
    #       description: >
    #         Application identity of the Edge Application Servers registered with the EES.
    #     easBundleInfos:
    #       type: array
    #       items:
    #         $ref: 'TS29558_Eees_EASRegistration.yaml#/components/schemas/EASBundleInfo'
    #       minItems: 1
    #       description: List of EAS bundles to which the EAS belongs.
    #   required:
    #     - easId
    #     - easBundleInfos
    EesAuthMethod:
      anyOf:
      - type: string
        enum:
          - TLS_CLIENT_SERVER_CERTIFICATE
          - TLS_WITH_AKMA
          - TLS_WITH_GBA
          - SERVER_SIDE_CERTIFICATE_BASED
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Represents the Authentication methods supported by EES.  
        Possible values are:
        - TLS_CLIENT_SERVER_CERTIFICATE: Represents TLS with client server certificate
          authentication.
        - TLS_WITH_AKMA: Represents TLS with AKMA authentication.
        - TLS_WITH_GBA: Represents TLS with GBA authentication.
        - SERVER_SIDE_CERTIFICATE_BASED: Represents server side certification only.

    AppReadyConfirmation:
      title: AppReadyConfirmation
      required:
Loading