SOL003_def.yaml 72.4 KB
Newer Older
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
      - resourceTemplateId
      - sizeOfStorage
    properties:
      resourceTemplateId:
        description: >
          Identifier of a VirtualStorageDesc in the VNFD. 
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
        $ref: "#/definitions/IdentifierInVnfd"
      sizeOfStorage:
        description: >
          If the 'typeOfStorage' attribute in the VirtualStorageDesc 
          (see clause 7.1.9.4.2.2 in ETSI GS NFV-IFA 011) referenced by the resourceTemplateId 
          indicates BLOCK or FILE it is the size of the virtualized storage resource, expressed 
          in the same units as specified in the size_of_storage_valid_values property in the VNFD 
          (clause 6.2.39.2 or 6.2.41.2, respectively, in ETSI GS NFV-SOL 001).
          If the 'typeOfStorage' attribute in the VirtualStorageDesc (see clause 7.1.9.4.2.2 in 
          ETSI GS NFV-SOL 001) referenced by the resourceTemplateId indicates OBJECT it is 
          the maximum size of the virtualized storage resource expressed in the same units as specified in the max_size_of_storage_valid_values property in the VNFD (clause 6.2.40.2 in ETSI GS NFV-SOL 001).
        $ref: "#/definitions/Number"

  MonitoringConnection:
    description: >
      The MonitoringConnection shall follow the indications provided.

      * NOTE: The VNFM can be made aware of monitoring connection information, 
        including their identifiers to be used by configuration means outside the scope of the 
        present document (e.g. using relevant NFV-MANO management APIs as defined in 
        ETSI GS NFV-SOL 009 [i.18]).
    type: object
    required:
      - id
      - monitoringType
    properties:
      id:
        description: >
          Identifier of the monitoring connection. See note.
        $ref: "#/definitions/Identifier"
      monitoringType:
        description: >
          Type of monitoring way.
        type: string
        enum:
          - VIM_CISM
          - EXTERNAL
          - PAAS
      vimId: 
        description: >
          Information about VIM or CISM connection(s) for monitoring resources for the VNF instance.
          Can be set when MonitoringType is equal to “VIM_CISM”.
        $ref: "#/definitions/Identifier"
      paasServiceId:
          description: >
            Information about PaasAsset to be used. Can be set when MonitoringType is equal to “PAAS”.
          $ref: "#/definitions/Identifier"
      interfaceInfo:
        description: >
          Information about the interface(s) to the external monitoring tool, if available, including interface endpoint e.g. URL API version, and protocol type.
          Can be set when MonitoringType is equal to “EXTERNAL”.
        $ref: "#/definitions/KeyValuePairs"
      accessInfo:
        description: >
          Authentication credentials for accessing the external monitoring tool. Examples can include those to support different authentication schemes, e.g. OAuth, Token, Username/password, etc.
          Can be set when MonitoringType is equal to “EXTERNAL”.
        $ref: "#/definitions/KeyValuePairs"
      extra:
        description: >
          Type specific additional information, if applicable.
        $ref: "#/definitions/String"
        
  ScaleInfo:
    description: >
      This type represents the scale level of a VNF instance related to a scaling aspect.
    type: object
    required:
      - aspectId
      - scaleLevel
    properties:
      aspectId:
        description: >
          Identifier of the scaling aspect.
        $ref: "#/definitions/IdentifierInVnfd"
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId
          attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final
          failure).
        $ref: "#/definitions/Identifier"
      scaleToLevel:
        description: >
          Indicates the scale level. The minimum value shall be 0
          and the maximum value shall be ≤ maxScaleLevel as
          described in the VNFD.
        $ref: "#/definitions/Identifier"
  
  AdditionalResourceInfo:
    description: >
      This type represents additional resource information which resource and resource type
      specific, and which is available from the VIM or the CISM or the resource provider.
      * NOTE: At least one attribute shall be present.
    type: object
    properties:
      hostName:
        description: >
          Name of the host where the resource is allocated. It shall
          be present for compute resources in the scope of the
          CISM and shall be absent otherwise. See note.
        type: string
      persistentVolume:
        description: >
          Name of the persistent volume to which the persistent
          volume claim representing the storage resource is bound.
          It may be present for storage resources in the scope of
          the CISM and shall be absent otherwise. See note.
        type: string
        description: >
          Information related to other properties directly owned by
          the resource and available from the VIM or CISM or the
          resource provider. See note.
        $ref: "#/definitions/KeyValuePairs"

  NetAttDefResourceData:
    description: >
      This type represents a network attachment definition resource that provides the specification of
      the interface to be used to connect one or multiple connection points to a secondary container
      cluster network realizing a VL.
    type: object
    required:
    - netAttDefResourceId
    - resourceHandle
    properties:
      netAttDefResourceId:
        description: >
          Identifier of this network attachment definition resource
          as provided by the entity that has created it.
        $ref: "#/definitions/Identifier"
      resourceHandle:
        description: >
          Resource handle of the resource identifying the network
          attachment definition resource that provides the
          specification of the interface to attach the connection
          points to a secondary container cluster network.
        $ref: "#/definitions/ResourceHandle"
      An identifier with the intention of being globally unique.
    type: string

  ChangeType:
    description: Signals the type of change.
    type: string
    enum:
      - ADD
      - REMOVE
      - MODIFY

  DateTime:
    description: >
      Date-time stamp.
      Representation: String formatted according to IETF RFC 3339.
    type: string
    format: date-time

  Uri:
    description: >
      String formatted according to IETF RFC 3986.
    type: string

  Boolean:
    description: >
      The Boolean is a data type having two values (true and false).
    type: boolean

  MacAddress:
    description: >
      A MAC address. Representation: string that consists of groups of two hexadecimal digits,
      separated by hyphens or colons.
    type: string
    format: MAC

  IpAddress:
    description: >
      An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal
      integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that
      consists of groups of zero to four hexadecimal digits, separated by colons.
    type: string
    format: IP

  Version:
    description: >
      A version.
    type: string

  String:
    description: >
      A string defined in IETF RFC 8259.
    type: string

  Number:
    description: >
      A number defined in IETF RFC 8259.
    type: number

  UnsignedInt:
    description: >
      Unsigned integer number
    type: integer
    minimum: 0

  IdentifierInVnfd:
    description: >
      An identifier that is unique within a VNF descriptor.
    type: string

  IdentifierInVim:
    description: >
      An identifier maintained by the VIM  or the CISM or other resource provider. It is
      expected to be unique within the VIM instance.
    type: string

  IdentifierInVnf:
    description: >
      An identifier that is unique for the respective type within a VNF
      instance, but may not be globally unique.
    type: string

  IdentifierLocal:
    description: >
      An identifier that is unique within a limited local scope other than above listed identifiers,
      such as within a complex data structure or within a request-response pair.
      Representation: string of variable length.
    type: string

  Checksum: #no definition found
    description: >
      Cheksum description
    type: string

  VnfLinkPortData:
    description: >
      This type represents an externally provided link port to be used to connect a VNFC connection point 
    type: object
    required:
    - vnfLinkPortId
    - resourceHandle
    properties:
      vnfLinkPortId:
        description: >
          Identifier of this link port as provided by the entity that has created the link port.
        $ref: "#/definitions/Identifier"
      resourceHandle:
        description: >
          Resource handle of the virtualised resource that realizes the link port.
        $ref: "#/definitions/ResourceHandle"

  ExtLinkPortData:
    description: >
      This type represents an externally provided link port to be used to
      connect an external connection point to an external VL.
      * NOTE:	The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute.
    type: object
    required:
      - id
          Identifier of this link port as provided by the entity that has
          created the link port.
        $ref: "#/definitions/Identifier"
          Reference to the virtualised resource realizing this link port.
        $ref: "#/definitions/ResourceHandle"
      trunkResourceId:
        description: >
          Identifier of the trunk resource in the VIM.
          Shall be present if the present link port corresponds to the parent
          port that the trunk resource is associated with. See note.
        $ref: "#/definitions/IdentifierInVim"

  GrantedLcmOperationType:
    description: >
      The enumeration GrantedLcmOperationType defines the permitted values 
      to represent VNF lifecycle operation types in grant requests.
      Value | Description
      ------|------------
      INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
      SCALE | Represents the "Scale VNF" LCM operation.
      SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
      CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
      TERMINATE | Represents the "Terminate VNF" LCM operation.
      HEAL | Represents the "Heal VNF" LCM operation.
      OPERATE | Represents the "Operate VNF" LCM operation.
      CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.     
      CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation.
      CREATE_SNAPSHOT | Represents the "Create VNF snapshot" LCM operation.
      REVERT_TO_SNAPSHOT | Represents the "Revert to VNF snapshot" LCM operation.
      SELECT_DEPL_MODS | Represents the “Select VNF deployable modules” LCM operation.
    type: string
    enum:
      - INSTANTIATE
      - SCALE
      - SCALE_TO_LEVEL
      - CHANGE_FLAVOUR
      - TERMINATE
      - HEAL
      - OPERATE
      - CHANGE_EXT_CONN
      - CHANGE_VNFPKG
      - CREATE_SNAPSHOT
      - REVERT_TO_SNAPSHOT
      - SELECT_DEPL_MODS
  LcmOperationType:
    description: >
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      The enumeration LcmOpType defines the permitted values to represent 
      VNF lifecycle operation types in VNF lifecycle management operation 
      occurrence resources and VNF lifecycle management operation occurrence 
      notifications.
Francesca Moscatelli's avatar
Francesca Moscatelli committed

      Value | Description
      ------|------------
      INSTANTIATE | Represents the "Instantiate VNF" LCM operation.   
      SCALE | Represents the "Scale VNF" LCM operation.
      SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
      CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
      TERMINATE | Represents the "Terminate VNF" LCM operation.
      HEAL | Represents the "Heal VNF" LCM operation.
      OPERATE | Represents the "Operate VNF" LCM operation.
      CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
      MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
      CREATE_SNAPSHOT | Represents the "Create VNF Snapshot" LCM operation.
      REVERT_TO_SNAPSHOT | Represents the “Revert-To VNF Snapshot" LCM operation.
      CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation.
      SELECT_DEPL_MODS | Represents the “Select VNF deployable modules” LCM operation
    type: string
    enum:
      - INSTANTIATE
      - SCALE
      - SCALE_TO_LEVEL
      - CHANGE_FLAVOUR
      - TERMINATE
      - HEAL
      - OPERATE
      - CHANGE_EXT_CONN
      - MODIFY_INFO
      - CREATE_SNAPSHOT
      - REVERT_TO_SNAPSHOT
      - CHANGE_VNFPKG
  ProblemDetails:
    #SOL003 location: 4.3.5.3
    description: >
      The definition of the general "ProblemDetails" data structure from
      IETF RFC 7807 is reproduced inthis structure. Compared to the
      general framework defined in IETF RFC 7807, the "status" and
      "detail" attributes are mandated to be included by the present document,
      to ensure that the response contains additional textual information about
      an error. IETF RFC 7807 foresees extensibility of the
      "ProblemDetails" type. It is possible that particular APIs in the present
      document, or particular implementations, define extensions to define
      additional attributes that provide more information about the error.
      The description column only provides some explanation of the meaning to
      Facilitate understanding of the design. For a full description, see
    type: object
    required:
      - status
      - detail
    properties:
      type:
        description: >
          A URI reference according to IETF RFC 3986 that identifies the
          problem type. It is encouraged that the URI provides human-readable
          documentation for the problem (e.g. using HTML) when dereferenced.
          When this member is not present, its value is assumed to be
          "about:blank".
        type: string
        format: URI
      title:
        description: >
          A short, human-readable summary of the problem type. It should not
          change from occurrence to occurrence of the problem, except for
          purposes of localization. If type is given and other than
          "about:blank", this attribute shall also be provided.
          A short, human-readable summary of the problem
          type.  It SHOULD NOT change from occurrence to occurrence of the
          problem, except for purposes of localization (e.g., using
          proactive content negotiation; see [RFC7231], Section 3.4).
        type: string
      status:
        description: >
          The HTTP status code for this occurrence of the problem.
          The HTTP status code ([RFC7231], Section 6) generated by the origin
          server for this occurrence of the problem.
        type: integer
      detail:
        description: >
          A human-readable explanation specific to this occurrence of the
          problem.
        type: string
      instance:
        description: >
          A URI reference that identifies the specific occurrence of the
          problem. It may yield further information if dereferenced.
        type: string
        format: URI
      #TODO: How to express "any additional attributes"?

  SubscriptionAuthentication:
      * NOTE 1 : The clientId and clientPassword passed in a subscription shall not be the same as the clientId and
                clientPassword that are used to obtain authorization for API requests. Client credentials may differ between
                subscriptions. The value of clientPassword should be generated by a random process.
      * NOTE 2: As a less secure alternative to OAUTH2_CLIENT_CERT which uses mutual authentication based on X.509
                certificates, this mode which uses client password to authenticate may be used in the access token request
                toward the authorization server (as defined by IETF RFC 6749 [7]), only to support legacy implementations
                (version 3.4.1 or earlier version of the present document). See clause 8.1 for more details.
      * NOTE 3: The following values that were included up to version 3.4.1 of the present document have been removed:
                "BASIC" (to signal the use of the basic HTTP authentication) has been removed because it is insecure.
                "TLS_CERT" to signal an alternative non-token based authorization method using TLS certificates has been
                removed because the method is no longer supported.
      * NOTE 4: The client certificate is established by means outside the scope of the present document.
    required:
    properties:
      authType:
        description: >
          Defines the types of Authentication / Authorization which the API
          consumer is willing to accept when receiving a notification.
          Permitted values (see note 3):
          * OAUTH2_CLIENT_CREDENTIALS: In every
            HTTP request to the notification endpoint, use
            an OAuth 2.0 token, obtained using the client
            credentials grant type after authenticating
            using client identifier and client password
            towards the token endpoint.
          * OAUTH2_CLIENT_CERT: In every HTTP
            request to the notification endpoint, use an
            OAuth 2.0 token, obtained using the client
            credentials grant type after mutually
            authenticating using client identifier and X.509
            certificates towards the token endpoint.
        items:
          type: string
          enum:
            - OAUTH2_CLIENT_CREDENTIALS
            - OAUTH2_CLIENT_CERT
      paramsOauth2ClientCert:
        description: >
          Parameters for authentication/authorization using
          OAUTH2_CLIENT_CERT.

          Shall be present if authType is "OAUTH2_CLIENT_CERT" and the contained
          information has not been provisioned out of band. 
          
          Shall be absent otherwise.
        type: object
        required: 
          - clientId
          - certificateRef
          - tokenEndpoint
            description: >
              Client identifier to be used in the access token request
              of the OAuth 2.0 client credentials grant type. The client
              identifier is unique in the scope of the tokenEndpoint.
            description: >
              Fingerprint of the client certificate. The hash function
              shall use SHA256 or higher. See note 4.
            required:
              - type
              - value
            properties:
              type:
                description: >
                  The type of the fingerprint.
                  Permitted values:
                  - x5t#S256: The SHA-256 thumbprint of the
                  X.509 certificate as defined in section 4.1.8 of
                  IETF RFC 7515 [23].
                $ref: "#/definitions/String"
                enum:
                  - x5t#S256
              value:
                description: >
                  The fingerprint value as defined by the type.
                $ref: "#/definitions/String"
          tokenEndpoint:
            description: >
              The token endpoint from which the access token can be
              obtained.
            $ref: "#/definitions/Uri"
      paramsOauth2ClientCredentials:
        description: >
          Parameters for authentication/authorization using
          OAUTH2_CLIENT_CREDENTIALS.

          Shall be present if authType is
          "OAUTH2_CLIENT_CREDENTIALS" and the contained
          information has not been provisioned out of band.

          Shall be absent otherwise.
        type: object
        properties:
          clientId:
            description: >
              Client identifier to be used in the access token request
              of the OAuth 2.0 client credentials grant type. The client
              identifier is unique in the scope of the tokenEndpoint.
              Shall be present if it has not been provisioned out of
              band. 
              See note 1.
            type: string
          clientPassword:
            description: >
              Client password to be used in the access token request
              of the OAuth 2.0 client credentials grant type. Shall be
              present if it has not been provisioned out of band. See
              note 1.
            type: string
          tokenEndpoint:
            description: >
              The token endpoint from which the access token can be obtained.
              Shall be present if it has not been provisioned out of band.
  LcmCoordResultType:
    description: >
      The enumeration LcmCoordResultType defines the permitted values
      to represent the result of executing an LCM coordination action.
      The coordination result also implies the action to be performed by
      the VNFM as the follow-up to this coordination.
      Value | Description
      ------|------------
      CONTINUE | The related LCM operation shall be continued, staying in the state "PROCESSING".
      ABORT | The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP".
      CANCELLED | The coordination action has been cancelled upon request of the API consumer, i.e. the VNFM.
      The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP".
    type: string
    enum:
      - CONTINUE
      - ABORT
      - CANCELLED

  LcmOperationForCoordType:
    description: >
      The enumeration LcmOperationForCoordType defines the permitted values to
      represent VNF lifecycle operation types in VNF LCM operation coordination actions.
      * INSTANTIATE: Represents the "Instantiate VNF" LCM operation.
      * SCALE: Represents the "Scale VNF" LCM operation.
      * SCALE_TO_LEVEL: Represents the "Scale VNF to Level" LCM operation.
      * CHANGE_FLAVOUR: Represents the "Change VNF Flavour" LCM operation.
      * TERMINATE: Represents the "Terminate VNF" LCM operation.
      * HEAL: Represents the "Heal VNF" LCM operation.
      * OPERATE: Represents the "Operate VNF" LCM operation.
      * CHANGE_EXT_CONN: Represents the "Change external VNF connectivity" LCM operation.
      * MODIFY_INFO: Represents the "Modify VNF Information" LCM operation.
      * CREATE_SNAPSHOT: Represents the "Create VNF Snapshot" LCM operation.
      * REVERT_TO_SNAPSHOT: Represents the "Revert To VNF Snapshot" LCM operation.
      * CHANGE_VNFPKG: Represents the "Change current VNF package" LCM operation.
    type: string
    enum:
      - INSTANTIATE
      - SCALE
      - SCALE_TO_LEVEL
      - CHANGE_FLAVOUR
      - TERMINATE
      - HEAL
      - OPERATE
      - CHANGE_EXT_CONN
      - MODIFY_INFO
      - CREATE_SNAPSHOT
      - REVERT_TO_SNAPSHOT
      - CHANGE_VNFPKG