MEC010-2_AppPkgMgmt.yaml 69.7 KB
Newer Older
        in: path
        description: Identifier of an application descriptor
        required: true
        style: simple
        schema:
          type: string
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '200':
          description: The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.
          headers: {}
          content: {}
Elian Kraja's avatar
Elian Kraja committed
        '206':
          description: Partial content
          headers: {}
          content: {}
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'
        '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'
        '416':
          description: Range Not Satisfiable .
          headers: {}
          content: {}
        '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
    put:
      tags:
      - app-pkgm
      summary: appDIdPUT
      description: Uploads the content of application package.
      operationId: appDIdPUT
      parameters:
      - name: appDId
        in: path
        description: Identifier of an application descriptor
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        description: ''
        content:
          text/plain:
            schema:
              type: object
              contentMediaType: text/plain
        required: false
      responses:
        '202':
          description: The application package has been accepted for uploading, but the processing has not been completed.
          headers: {}
          content: {}
        '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'
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'
        '409':
          description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource'
          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: []
  /user_defined_notification:
    post:
Elian Kraja's avatar
Elian Kraja committed
      tags:
      - app-pkgm-notifications
      summary: app_pkg_notificationPOST
      description: Registers a notification endpoint to notify application package operations
      operationId: app_pkg_notificationPOST
      parameters: []
Elian Kraja's avatar
Elian Kraja committed
      requestBody:
        description: Notification endpoint to be created
Elian Kraja's avatar
Elian Kraja committed
        content:
          application/json:
Elian Kraja's avatar
Elian Kraja committed
            schema:
              $ref: '#/components/schemas/AppPkgNotification'
        required: true
Elian Kraja's avatar
Elian Kraja committed
      responses:
        '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: []
Elian Kraja's avatar
Elian Kraja committed
components:
  schemas:
    AppD:
      title: AppD
      required:
      - appDId
      - appDVersion
      - appDescription
      - appName
      - appProvider
      - appSoftVersion
      - mecVersion
      - swImageDescriptor
      - virtualComputeDescriptor
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        appDId:
          type: string
          description: Identifier of this MEC application descriptor. This attribute shall be globally unique. See note 1.
Elian Kraja's avatar
Elian Kraja committed
        appDNSRule:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/DNSRuleDescriptor'
          description: Describes DNS rules the MEC application requires.
Elian Kraja's avatar
Elian Kraja committed
        appDVersion:
          type: string
          description: Identifies the version of the application descriptor.
Elian Kraja's avatar
Elian Kraja committed
        appDescription:
          type: string
          description: Human readable description of the MEC application.
Elian Kraja's avatar
Elian Kraja committed
        appExtCpd:
          minItems: 0
          type: array
Elian Kraja's avatar
Elian Kraja committed
          items:
            $ref: '#/components/schemas/AppExternalCpd'
          description: Describes external interface(s) exposed by this MEC application.
        appFeatureOptional:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/FeatureDependency'
          description: Describes features a MEC application may use if available.
        appFeatureRequired:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/FeatureDependency'
          description: Describes features a MEC application requires to run.
Elian Kraja's avatar
Elian Kraja committed
        appInfoName:
          type: string
          description: Human readable name for the MEC application.
Elian Kraja's avatar
Elian Kraja committed
        appLatency:
          $ref: '#/components/schemas/LatencyDescriptor'
        appName:
          type: string
          description: Name to identify the MEC application.
Elian Kraja's avatar
Elian Kraja committed
        appProvider:
          type: string
          description: Provider of the application and of the AppD.
Elian Kraja's avatar
Elian Kraja committed
        appServiceOptional:
          minItems: 0
          type: array
Elian Kraja's avatar
Elian Kraja committed
          items:
            $ref: '#/components/schemas/ServiceDependency'
          description: Describes services a MEC application may use if available.
        appServiceProduced:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/ServiceDescriptor'
          description: Describes services a MEC application is able to produce to the platform or other MEC applications. Only relevant for service-producing apps.
        appServiceRequired:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/ServiceDependency'
          description: Describes services a MEC application requires to run.
Elian Kraja's avatar
Elian Kraja committed
        appSoftVersion:
          type: string
          description: Identifies the version of software of the MEC application.
Elian Kraja's avatar
Elian Kraja committed
        appTrafficRule:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/TrafficRuleDescriptor'
          description: Describes traffic rules the MEC application requires.
Elian Kraja's avatar
Elian Kraja committed
        changeAppInstanceStateOpConfig:
          type: string
          description: NFV
Elian Kraja's avatar
Elian Kraja committed
        mecVersion:
          minItems: 1
          type: array
          items:
            type: string
          description: Identifies version(s) of MEC system compatible with the MEC application described in this version of the AppD.
Elian Kraja's avatar
Elian Kraja committed
        swImageDescriptor:
          type: string
          description: Ref NFV
Elian Kraja's avatar
Elian Kraja committed
        terminateAppInstanceOpConfig:
          type: string
          description: NFV
Elian Kraja's avatar
Elian Kraja committed
        transportDependencies:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/TransportDependency'
          description: Transports, if any, that this application requires to be provided by the platform. These transports will be used by the application to deliver services provided by this application. Only relevant for service-producing apps. See note 2.
Elian Kraja's avatar
Elian Kraja committed
        virtualComputeDescriptor:
          type: string
          description: Ref NFV
Elian Kraja's avatar
Elian Kraja committed
        virtualStorageDescriptor:
          minItems: 0
          type: array
          items:
            type: string
          description: Defines descriptors of virtual storage resources to be used by the MEC application.
    AppExternalCpd:
      title: AppExternalCpd
Elian Kraja's avatar
Elian Kraja committed
      required:
      - inherited_attributes
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        inherited_attributes:
          type: object
          description: All attributes inherited from Cpd.
Elian Kraja's avatar
Elian Kraja committed
        virtualNetworkInterfaceRequirements:
          minItems: 0
          type: array
          items:
            type: string
          description: Specifies requirements on a virtual network interface realizing the CPs instantiated from this CPD.
Elian Kraja's avatar
Elian Kraja committed
    AppPkgInfo:
      title: AppPkgInfo
Elian Kraja's avatar
Elian Kraja committed
      required:
      - id
      - appDId
      - appName
      - appSoftwareVersion
      - appDVersion
      - checksum
      - softwareImages
      - onboardingState
      - operationalState
      - usageState
      - _links
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        id:
          type: string
          description: Identifier of the onboarded application package.
Elian Kraja's avatar
Elian Kraja committed
        appDId:
          type: string
          description: Identifier of this MEC application descriptor. This attribute shall be globally unique.
Elian Kraja's avatar
Elian Kraja committed
        appProvider:
          type: string
          description: Provider of the application and of the AppD.
Elian Kraja's avatar
Elian Kraja committed
        appName:
          type: string
          description: Name to identify the MEC application.
Elian Kraja's avatar
Elian Kraja committed
        appSoftwareVersion:
          type: string
          description: Software version of the application. This is updated when there is any change to the software in the onboarded application package.
Elian Kraja's avatar
Elian Kraja committed
        appDVersion:
          type: string
          description: Identifies the version of the application descriptor.
Elian Kraja's avatar
Elian Kraja committed
        checksum:
          $ref: '#/components/schemas/Checksum'
        softwareImages:
          type: object
          description: Information of application software image in application package. Type is TBD
Elian Kraja's avatar
Elian Kraja committed
        additionalArtifacts:
          type: object
          description: Additional information of application package artifacts that are not application software images. Type is TBD
Elian Kraja's avatar
Elian Kraja committed
        onboardingState:
          $ref: '#/components/schemas/OnboardingState'
        operationalState:
          $ref: '#/components/schemas/AppPkg.OperationalState'
        usageState:
          $ref: '#/components/schemas/UsageState'
        userDefinedData:
          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'"
Elian Kraja's avatar
Elian Kraja committed
        _links:
          $ref: '#/components/schemas/AppPkgInfo.links'
      description: "'The data type AppPkgInfo represents the parameters for an application package resource'"
Elian Kraja's avatar
Elian Kraja committed
    AppPkgInfoModifications:
      title: AppPkgInfoModifications
      required:
      - operationState
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        operationState:
          $ref: '#/components/schemas/OperationState'
      description: "'The data type represents the operational state for an application package resource'"
Elian Kraja's avatar
Elian Kraja committed
    AppPkg.OperationalState:
      title: AppPkg.OperationalState
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - ENABLED
      - DISABLED
Elian Kraja's avatar
Elian Kraja committed
      type: string
      description: 'Operational state of the onboarded application package: •ENABLED: the application package can be used for instantiation of new application instances. •DISABLED: the application package cannot be used for further application instantiation requests.'
      examples:
      - ENABLED
    OnboardingState:
      title: OnboardingState
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - CREATED
      - UPLOADING
      - PROCESSING
      - ONBOARDED
Elian Kraja's avatar
Elian Kraja committed
      type: string
      description: Onboarding state of application package
      examples:
      - CREATED
    UsageState:
      title: UsageState
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - IN_USE
      - NOT_IN_USE
      type: string
      description: Usage state of the onboarded instance of the application package
      examples:
      - IN_USE
Elian Kraja's avatar
Elian Kraja committed
    AppPkgInfo.links:
      title: AppPkgInfo.links
Elian Kraja's avatar
Elian Kraja committed
      required:
      - self
      - appD
      - appPkgContent
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        self:
          $ref: '#/components/schemas/LinkType'
        appD:
          $ref: '#/components/schemas/LinkType'
        appPkgContent:
          $ref: '#/components/schemas/LinkType'
      description: Links to resources related to this resource.
Elian Kraja's avatar
Elian Kraja committed
    AppPkgNotification:
      title: AppPkgNotification
Elian Kraja's avatar
Elian Kraja committed
      required:
      - id
      - notificationType
      - subscriptionId
      - timeStamp
      - appPkgId
      - appDId
      - operationalState
      - _links
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        id:
          type: string
          description: "''"
Elian Kraja's avatar
Elian Kraja committed
        notificationType:
          $ref: '#/components/schemas/AppPkg.NotificationType'
        subscriptionId:
          type: string
          description: Identifier of the subscription related to this notification.
Elian Kraja's avatar
Elian Kraja committed
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
        appPkgId:
          type: string
          description: Identifier of the onboarded application package.
Elian Kraja's avatar
Elian Kraja committed
        appDId:
          type: string
          description: Identifier of this MEC application descriptor. This attribute shall be globally unique.
        operationalState:
          $ref: '#/components/schemas/OperationalState'
Elian Kraja's avatar
Elian Kraja committed
        _links:
          $ref: '#/components/schemas/AppPkgNotification.links'
      description: "'This data type represents an application package management notification for informing the subscribers about onboarding application package resources. The notification is triggered when a new application package is onboarded'"
Elian Kraja's avatar
Elian Kraja committed
    AppPkg.NotificationType:
      title: AppPkg.NotificationType
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - AppPackageOnBoarded
      - AppPacakgeEnabled
      - AppPacakgeDisabled
      - AppPackageDeleted
      type: string
      description: Discriminator for the different notification types
      examples:
      - AppPackageOnBoarded
Elian Kraja's avatar
Elian Kraja committed
    AppPkgNotification.links:
      title: AppPkgNotification.links
Elian Kraja's avatar
Elian Kraja committed
      required:
      - subscription
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        subscription:
          $ref: '#/components/schemas/LinkType'
      description: Links to resources related to this resource.
Elian Kraja's avatar
Elian Kraja committed
    AppPkgSubscriptionInfo:
      title: AppPkgSubscriptionInfo
Elian Kraja's avatar
Elian Kraja committed
      required:
      - id
      - subscriptionType
      - callbackUri
      - _links
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        id:
          type: string
          description: "''"
Elian Kraja's avatar
Elian Kraja committed
        subscriptionType:
          $ref: '#/components/schemas/AppPkg.SubscriptionType'
        callbackUri:
          type: string
          description: The URI of the endpoint for the notification to be sent to.
Elian Kraja's avatar
Elian Kraja committed
        _links:
          $ref: '#/components/schemas/AppPkgSubscriptionInfo.links'
      description: "'The data type represents a subscription to notification of application package management for the onboarding, or operational state change of application package'"
Elian Kraja's avatar
Elian Kraja committed
    AppPkg.SubscriptionType:
      title: AppPkg.SubscriptionType
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - AppPackageOnBoarding
      - AppPacakgeOperationChange
      - AppPackageDeletion
      type: string
      description: Subscribed notification type.
      examples:
      - AppPackageOnBoarding
Elian Kraja's avatar
Elian Kraja committed
    AppPkgSubscriptionInfo.links:
      title: AppPkgSubscriptionInfo.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: Links to resources related to this resource.
Elian Kraja's avatar
Elian Kraja committed
    AppPkgSubscriptionLinkList:
      title: AppPkgSubscriptionLinkList
Elian Kraja's avatar
Elian Kraja committed
      required:
      - _links
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        _links:
          $ref: '#/components/schemas/AppPkgSubscriptionLinkList.links'
      description: "'The data type represents a subscription link list of notification on application package management'"
Elian Kraja's avatar
Elian Kraja committed
    AppPkgSubscriptionLinkList.links:
      title: AppPkgSubscriptionLinkList.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'
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/Subscriptions.AppPkgSubscription'
          description: ''
      description: Links to resources related to this resource.
Elian Kraja's avatar
Elian Kraja committed
    Subscriptions.AppPkgSubscription:
      title: Subscriptions.AppPkgSubscription
Elian Kraja's avatar
Elian Kraja committed
      required:
      - href
      - subsctiptionType
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        href:
          type: string
          description: The URI referring to the subscription.
Elian Kraja's avatar
Elian Kraja committed
        subsctiptionType:
          $ref: '#/components/schemas/SubsctiptionType.AppPkg'
      description: "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'"
Elian Kraja's avatar
Elian Kraja committed
    AppPkgSubscription:
      title: AppPkgSubscription
Elian Kraja's avatar
Elian Kraja committed
      required:
      - callbackUri
      - subsctiptionType
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        callbackUri:
          type: string
          description: The URI of the endpoint for the notification to be sent to.
Elian Kraja's avatar
Elian Kraja committed
        subsctiptionType:
          $ref: '#/components/schemas/SubsctiptionType.AppPkg'
Elian Kraja's avatar
Elian Kraja committed
        appPkgFilter:
          type: array
          items:
            type: string
          description: ''
      description: "'The data type represents the input parameters of \"subscription operation\" to notification of application package management for the onboarding, or operational state change of application package.'"
Elian Kraja's avatar
Elian Kraja committed
    SubsctiptionType.AppPkg:
      title: SubsctiptionType.AppPkg
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - AppPackageOnBoarding
      - AppPacakgeOperationChange
      - AppPackageDeletion
Elian Kraja's avatar
Elian Kraja committed
      type: string
      description: "'Subscribed notification type'"
      examples:
      - AppPackageOnBoarding
Elian Kraja's avatar
Elian Kraja committed
    Checksum:
      title: Checksum
Elian Kraja's avatar
Elian Kraja committed
      required:
      - algorithm
      - hash
      type: object
      properties:
        algorithm:
          type: string
          description: Name of the algorithm used to generate the checksum,  as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.
        hash:
          type: string
          description: "'String 1 The hexadecimal value of the checksum'"
Elian Kraja's avatar
Elian Kraja committed
    CreateAppPkg:
      title: CreateAppPkg
      required:
      - appPkgName
      - appPkgPath
      - appPkgVersion
      - checksum
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        appPkgName:
          type: string
          description: Name of the application package to be onboarded.
Elian Kraja's avatar
Elian Kraja committed
        appPkgPath:
          type: string
Elian Kraja's avatar
Elian Kraja committed
        appPkgVersion:
          type: string
          description: >-
            Version of the application package to be onboarded.

            The appPkgName with appPkgVersion can be used to uniquely identify the application package.
Elian Kraja's avatar
Elian Kraja committed
        appProvider:
          type: string
          description: The provider's name of the application package to be onboarded.
Elian Kraja's avatar
Elian Kraja committed
        checksum:
          $ref: '#/components/schemas/Checksum'
        userDefinedData:
          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'"
    DNSRuleDescriptor:
      title: DNSRuleDescriptor
Elian Kraja's avatar
Elian Kraja committed
      required:
      - dnsRuleId
      - domainName
      - ipAddress
      - ipAddressType
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        dnsRuleId:
          type: string
          description: Identifies the DNS Rule
Elian Kraja's avatar
Elian Kraja committed
        domainName:
          type: string
          description: FQDN of the DNS rule
Elian Kraja's avatar
Elian Kraja committed
        ipAddress:
          type: string
          description: IP address given by the DNS rule
Elian Kraja's avatar
Elian Kraja committed
        ipAddressType:
          $ref: '#/components/schemas/IpAddressType'
        ttl:
          type: integer
          description: Time-to-live value
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
    IpAddressType:
      title: IpAddressType
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - IP_V6
      - IP_V4
      type: string
      description: Specifies the IP address type
      examples:
      - IP_V6
Elian Kraja's avatar
Elian Kraja committed
    FeatureDependency:
      title: FeatureDependency
      required:
      - featureName
      - version
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        featureName:
          type: string
          description: The name of the feature, for example, UserApps, UEIdentity, etc.
Elian Kraja's avatar
Elian Kraja committed
        version:
          type: string
          description: The version of the feature.
    InterfaceDescriptor:
      title: InterfaceDescriptor
Elian Kraja's avatar
Elian Kraja committed
      required:
      - interfaceType
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        dstIPAddress:
          type: string
          description: If the interface type is IP, the destination address identifies the IP address of the destination. Only used for dstInterface.
Elian Kraja's avatar
Elian Kraja committed
        dstMACAddress:
          type: string
          description: If the interface type is MAC, the destination address identifies the MAC address of the destination. Only used for dstInterface.
Elian Kraja's avatar
Elian Kraja committed
        interfaceType:
          $ref: '#/components/schemas/InterfaceType'
        srcMACAddress:
          type: string
          description: If the interface type is MAC, the source address identifies the MAC address of the interface.
Elian Kraja's avatar
Elian Kraja committed
        tunnelInfo:
          $ref: '#/components/schemas/TunnelInfo'
    InterfaceType:
      title: InterfaceType
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - TUNNEL
      - MAC
      - IP
      type: string
      description: Type of interface.
      examples:
      - TUNNEL
Elian Kraja's avatar
Elian Kraja committed
    LatencyDescriptor:
      title: LatencyDescriptor
      required:
      - maxLatency
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        maxLatency:
          type: integer
          description: The value of the maximum latency in nano seconds tolerated by the MEC application. See note.
          contentEncoding: int32
    LinkType:
      title: LinkType
Elian Kraja's avatar
Elian Kraja committed
      required:
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        href:
          type: string
          description: URI referring to a resource
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:
          type: string
          description: A URI reference according to IETF RFC 3986 that identifies the problem type
Elian Kraja's avatar
Elian Kraja committed
    ServiceDependency:
      title: ServiceDependency
      required:
      - serName
      - version
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        requestedPermissions:
          minItems: 0
          type: array
          items:
            type: string
          description: >-
            Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4].

            The format of this attribute is left for the data model design stage.
Elian Kraja's avatar
Elian Kraja committed
        serCategory:
          type: object
          description: See MEC011
Elian Kraja's avatar
Elian Kraja committed
        serName:
          type: string
          description: The name of the service, for example, RNIS, LocationService, etc.
Elian Kraja's avatar
Elian Kraja committed
        serTransportDependencies:
          minItems: 0
          type: array
          items:
            $ref: '#/components/schemas/TransportDependency'
          description: Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note.
Elian Kraja's avatar
Elian Kraja committed
        version:
          type: string
          description: The version of the service.
    ServiceDescriptor:
      title: ServiceDescriptor
Elian Kraja's avatar
Elian Kraja committed
      required:
      - serName
      - version
      type: object
      properties:
        serName:
          type: string
          description: The name of the service, for example, RNIS, LocationService, etc.
Elian Kraja's avatar
Elian Kraja committed
        serCategory:
          type: object
          description: See MEC011
Elian Kraja's avatar
Elian Kraja committed
        version:
          type: string
          description: The version of the service.
Elian Kraja's avatar
Elian Kraja committed
        transportsSupported:
          $ref: '#/components/schemas/TransportsSupported'
      description: "'The ServiceDescriptor data type describes a MEC service produced by a service-providing MEC application.'"
Elian Kraja's avatar
Elian Kraja committed
    TransportsSupported:
      title: TransportsSupported
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        transport:
          $ref: '#/components/schemas/TransportDescriptor'
        serializers:
          minItems: 1
          type: array
          items:
            type: string
          description: "'Information about the serializers in this binding, as defined in the SerializerTypes type in ETSI GS MEC 011 '"
      description: "'Indicates transports and serialization formats supported made available to the service-consuming application. Defaults to REST + JSON if absent.'"
Elian Kraja's avatar
Elian Kraja committed
    TimeStamp:
      title: TimeStamp
      required:
      - nanoSeconds
      - seconds
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        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
Elian Kraja's avatar
Elian Kraja committed
        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
    TrafficFilter:
      title: TrafficFilter
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        dSCP:
          type: integer
          description: Used to match all IPv4 packets that have the same DSCP.
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
        dstAddress:
          minItems: 0
          type: array
          items:
            type: string
          description: A IP address or a range of IP addresses.For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses.For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.
        dstPort:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            type: string
          description: A port or a range of ports.
        dstTunnelPort:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            type: string
          description: Used for GTP tunnel based traffic rule.
        protocol:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            type: string
          description: Specify the protocol of the traffic filter.
Elian Kraja's avatar
Elian Kraja committed
        qCI:
          type: integer
          description: Used to match all packets that have the same QCI.
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
        srcAddress:
          minItems: 0
          type: array
          items:
            type: string
          description: An IP address or a range of IP addresses.For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses.For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.
        srcPort:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            type: string
          description: A port or a range of ports.
        srcTunnelAddress:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            type: string
          description: Used for GTP tunnel based traffic rule.
        srcTunnelPort:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            type: string
          description: Used for GTP tunnel based traffic rule.
Elian Kraja's avatar
Elian Kraja committed
        tC:
          type: integer
          description: Used to match all IPv6 packets that have the same TC.
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
        tag:
          minItems: 0
          type: array
          items:
            type: string
          description: Used for tag based traffic rule.
        tgtTunnelAddress:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 0
          type: array
          items:
            type: string
          description: Used for GTP tunnel based traffic rule.
Elian Kraja's avatar
Elian Kraja committed
    TrafficRuleDescriptor:
      title: TrafficRuleDescriptor
      required:
      - action
      - filterType
      - priority
      - trafficFilter
      - trafficRuleId
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        action:
          $ref: '#/components/schemas/Action'
        dstInterface:
          maxItems: 2
          minItems: 0
          type: array
Elian Kraja's avatar
Elian Kraja committed
          items:
            $ref: '#/components/schemas/InterfaceDescriptor'
          description: ''
Elian Kraja's avatar
Elian Kraja committed
        filterType:
          $ref: '#/components/schemas/FilterType'
        priority:
          type: integer
          description: Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence.
          contentEncoding: int32
Elian Kraja's avatar
Elian Kraja committed
        trafficFilter:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TrafficFilter'
          description: The filter used to identify specific flow/packets that need to be handled by the MEC host.
Elian Kraja's avatar
Elian Kraja committed
        trafficRuleId:
          type: string
          description: Identifies the traffic rule.
Elian Kraja's avatar
Elian Kraja committed
    Action:
      title: Action
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - DROP
      - FORWARD_DECAPSULATED
      - FORWARD_AS_IS
      - PASSTHROUGH
      - DUPLICATED_DECAPSULATED
      - DUPLICATE_AS_IS
Elian Kraja's avatar
Elian Kraja committed
      type: string
      description: "'Identifies the action of the MEC host data plane, when a packet matches the trafficFilter.'"
      examples:
      - DROP
    FilterType:
      title: FilterType
Elian Kraja's avatar
Elian Kraja committed
      enum:
      - FLOW
      - PACKET
      type: string
      description: 'Definition of filter type: per FLOW or PACKET'
      examples:
      - FLOW
Elian Kraja's avatar
Elian Kraja committed
    TransportDependency:
      title: TransportDependency
      required:
      - labels
      - serializers
      - transport
      type: object
Elian Kraja's avatar
Elian Kraja committed
      properties:
        labels:
          minItems: 1
          type: array
          items:
            type: string
          description: Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table.
        serializers:
Elian Kraja's avatar
Elian Kraja committed
          minItems: 1
          type: array
          items:
            type: string
          description: Information about the serializers in this transport binding, as defined in the SerializerTypes type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport.
Elian Kraja's avatar
Elian Kraja committed
        transport:
          $ref: '#/components/schemas/TransportDescriptor'
    TransportDescriptor:
      title: TransportDescriptor
Elian Kraja's avatar
Elian Kraja committed
      required:
      - protocol
      - security
      - type
      - version
Elian Kraja's avatar
Elian Kraja committed
      type: object
      properties:
        protocol:
          type: string
          description: The name of the protocol used. Shall be set to HTTP for a REST API.
Elian Kraja's avatar
Elian Kraja committed
        security:
          type: object
          description: See MEC011
Elian Kraja's avatar
Elian Kraja committed
        type:
          type: string
Elian Kraja's avatar
Elian Kraja committed
        version:
          type: string
          description: The version of the protocol used.
    TunnelInfo:
      title: TunnelInfo
Elian Kraja's avatar
Elian Kraja committed
      required:
      - tunnelDstAddress
      - tunnelSrcAddress
      - tunnelType
Elian Kraja's avatar
Elian Kraja committed
      type: object