SOL003_def.yaml 69.6 KB
Newer Older
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
      - resourceTemplateId
      - sizeOfStorage
    properties:
      resourceTemplateId:
        description: >
          Identifier of an osContainerDesc in the VNFD.
        $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 
      to an exernally managed VL.
    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:
    description: >
      * NOTE: 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
    required:
    properties:
      authType:
        description: >
          Defines the types of Authentication / Authorization which the API
          consumer is willing to accept when receiving a notification.
          Permitted values:
          * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the
            notification endpoint, use an OAuth 2.0 Bearer token, obtained
            using the client credentials grant type.
        type: array
        items:
          type: string
          enum:
            - OAUTH2_CLIENT_CREDENTIALS
      paramsBasic:
        description: >
          Parameters for authentication/authorization using BASIC.
          Shall be present if authType is "BASIC" and the contained
          information has not been provisioned out of band.
          Shall be absent otherwise.
        type: object
        properties:
          userName:
            description: >
              Username to be used in HTTP Basic authentication. Shall be
              present if it has not been provisioned out of band.
            type: string
          password:
            description: >
              Password to be used in HTTP Basic authentication. Shall be
              present if it has not been provisioned out of band.
            type: string
      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. 
              Shall be present if it has not been provisioned out of band. See note.
            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.
            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.
            $ref: "#/definitions/Uri"
  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