SunshineDB: VNFD-top level sunshine.vnfd.tosca.yaml tosca_definitions_version: tosca_simple_yaml_1_3 description: Relational database, non-scalable imports: - etsi_nfv_sol001_vnfd_types.yaml # all of TOSCA VNFD types as defined in ETSI GS NFV SOL 001 - sunshineVNF.yaml # contains the VNF node type definition topology_template: inputs: flavour_id: type: string description: VNF deployment flavour selected by the consumer. It is provided in the API node_templates: SunshineDB: type: MyCompany.SunshineDB.1_0.1_0 properties: flavour_id: { get_input: flavour_id } descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 provider: MyCompany product_name: SunshineDB software_version: '1.0' descriptor_version: '1.0' vnfm_info: - '0:MyCompany-1.0.0' # requirements: #- virtual_link_backend # mapped in lower-level templates #- virtual_link_service # mapped in lower-level templates # get_input function would be used to process the template at run time to access the selected flavour id. If the TOSCA functions are not supported by VNFM, the above function may not be needed, what other mechanisms can be used by VNFM which provide the same function are out of scope of the present document. The sunshineVNF.yaml file has the following content: tosca_definitions_version: tosca_simple_yaml_1_3 description: Relational database, non-scalable imports: - etsi_nfv_sol001_vnfd_types.yaml # all of TOSCA VNFD types as defined in ETSI GS NFV-SOL 001 data_types: MyCompany.datatypes.nfv.VnfInstantiateAdditionalParameters: derived_from: tosca.datatypes.nfv.VnfOperationAdditionalParameters properties: parameter_1: type: string required: true default: value_1 parameter_2: type: string required: true default: value_2 node_types: MyCompany.SunshineDB.1_0.1_0: derived_from: tosca.nodes.nfv.VNF properties: descriptor_id: type: string constraints: [ equal: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 provider: type: string constraints: [ equal: MyCompany ] default: MyCompany product_name: type: string constraints: [ equal: SunshineDB ] default: SunshineDB software_version: type: string constraints: [ equal: '1.0' ] default: '1.0' descriptor_version: type: string constraints: [ equal: '1.0' ] default: '1.0' flavour_id: type: string constraints: [ valid_values: [ simple, complex ] ] default: simple flavour_description: type: string default: "" #empty string vnfm_info: type: list entry_schema: type: string constraints: [ equal: '0:MyCompany-1.0.0' ] default: [ '0:MyCompany-1.0.0' ] requirements: - virtual_link: capability: tosca.capabilities.nfv.VirtualLinkable occurrences: [ 0, 0 ] - virtual_link_backend: capability: tosca.capabilities.nfv.VirtualLinkable occurrences: [ 0, 1 ] - virtual_link_service: capability: tosca.capabilities.nfv.VirtualLinkable occurrences: [ 0, 1 ] interfaces: Vnflcm: type: tosca.interfaces.nfv.Vnflcm operations: instantiate: inputs: additional_parameters: type: MyCompany.datatypes.nfv.VnfInstantiateAdditionalParameters The vnf node template in the sunshine.vnfd.tosca.yaml file is abstract and is subject to substitution; the lower-level