...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
# There is no need to derive VNF or PNF node types at the *data model* level # Use composition to cover the differences tosca.nodes.nfv.NF: derived_from: tosca.nodes.Root properties: descriptor_id: type: string # GUID required: true descriptor_version: type: string required: true provider: type: string required: true product_name: type: string required: true software_version: type: string required: true product_info_name: type: string required: false product_info_description: type: string required: false localization_languages: type: list entry_schema: type: string required: false default_localization_language: type: string required: false # configurable_properties: # type: tosca.datatypes.nfv.VnfConfigurableProperties <== remove Vnf prefix? # required: true # modifiable_attributes: # type: tosca.datatypes.nfv.VnfInfoModifiableAttributes <== remove Vnf prefix? # required: true # lcm_operations_configuration: # what use is made of this and by whom? # type: tosca.datatypes.nfv.NfLcmOperationsConfiguration # description: Describes the configuration parameters for the NF LCM operations # required: true # monitoring_parameters: # type: list # entry_schema: # type: tosca.datatypes.nfv.NfMonitoringParameter # description: Describes monitoring parameters applicable to the NF. # required: false flavour_id: type: string required: true # flavour_description: # should be in the NF's DF definition and not need to be provided here (join it with the id) # type: string # required: false # vnfm_info: # I wouldn't recommend putting this in any static model. Maybe a reference to a dynamic property? # type: list # entry_schema: # type: string # required: true #capabilities: # monitoring_parameter: # modelled as ad hoc capabilities in the VNF node template requirements: - virtual_link: capability: tosca.capabilities.nfv.VirtualLinkable relationship: tosca.relationships.nfv.VirtualLinksTo node: tosca.nodes.nfv.VirtualLink # Change to remove vnf occurrences: [ 0, UNBOUNDED ] # Work with OASIS on normative representations of compute, storage, architecture, etc. # I'll just lump them into ExecutionEnvironmentAspects for this example tosca.capabilities.nfv.Moveable: derived_from: tosca.capabilities.Root # Only PNFs could have this capability tosca.capabilities.nfv.PhysicallyMoveable: derived_from: tosca.capabilities.nfv.Moveable # Only VNFs could have this capability tosca.capabilities.nfv.VirtuallyMoveable: derived_from: tosca.capabilities.nfv.Moveable # Only PNFs could have this capability tosca.capabilities.nfv.PurposeBuiltHostingPlatform: derived_from: tosca.capabilities.Root properties: provider: type: string required: true serial_number: type: string required: false attributes: serial_number: type: string required: true valid_source_types: [] |
...