class NetworkSubnetData(Schema): networkId = fields.Str( required=True, description='The identifier of the virtualised network that the ' 'virtualised sub-network is attached to. The cardinality ' 'can be 0 to cover the case where this type is used to ' 'describe the L3 attributes of a network rather than a ' 'subnetwork or when NetworkSubnetData is part of Update ' 'Virtualised Network Resource.') ipVersion = fields.Str( required=True, description='The IP version of the network/subnetwork. Cardinality ' 'can be 0 when NetworkSubnetData is part of Update ' 'Virtualised Network Resource.') gatewayIp = fields.Str( IPAddress, required=True, description='Specifies the IP address of the network/subnetwork ' 'gateway when the gateway is selected by the requestor.') cidr = fields.Str( required=True, description='The CIDR of the network/subnetwork, i.e. network address ' 'and subnet mask. Cardinality can be 0 when ' 'NetworkSubnetData is part of Update Virtualised Network ' 'Resource.') isDhcpEnabled = fields.Bool( required=True, description='True when DHCP is to be enabled for this ' 'network/subnetwork, or false otherwise.') addressPool = fields.Str( required=True, description='Address pools for the network/subnetwork. The ' 'cardinality can be 0 when VIM is allowed to allocate all' 'addresses in the CIDR except for the address of the ' 'network/subnetwork gateway.')
class VirtualNetwork(Schema): networkResourceId = fields.String( required=True, description='Identifier of the virtualised network resource.') networkResourceName = fields.String( required=True, description='Name of the virtualised network resource.') subnet = fields.String( required=True, many=True, description='Only present if the network provides layer 3 ' 'connectivity.') networkPort = fields.Nested( VirtualNetworkPort, required=True, many=True, description='Element providing information of an instantiated virtual ' 'network port.') bandwidth = fields.Number( required=True, description='Minimum network bandwidth (in Mbps).') networkType = fields.Str( required=True, description='The type of network that maps to the virtualised ' 'network. This list is extensible. Examples are: "local", ' '"vlan", "vxlan", "gre", "l3-vpn", etc. The cardinality ' 'can be "0" to cover the case where this attribute is not ' 'required to create the virtualised network.') segmentType = fields.Str( required=True, description='The isolated segment for the virtualised network. For ' 'instance, for a "vlan" networkType, it corresponds to ' 'the vlan identifier; and for a "gre" networkType, this ' 'corresponds to a gre key. The cardinality can be "0" to ' 'allow for flat networks without any specific ' 'segmentation.') networkQoS = fields.Nested( NetworkQoS, many=True, required=True, description='Element providing information about Quality of Service ' 'attributes that the network shall support. The ' 'cardinality can be "0" to allow for networks without any ' 'specified QoS requirements.') isShared = fields.Bool( required=True, description='It defines whether the virtualised network is shared ' 'among consumers.') sharingCriteria = fields.Str( required=True, description='Only present for shared networks. Indicate the sharing ' 'criteria for this network. This criteria might be a list ' 'of authorized consumers.') zoneId = fields.String( required=True, description='If present, it identifies the Resource Zone where the ' 'virtual network resources have been allocated.') operationalState = fields.String( required=True, description='The operational state of the virtualised network.')
class VirtualMemory(Schema): virtualMemSize = fields.Number( required=True, description='Amount of virtual Memory (e.g. in MB).') virtualMemOversubscriptionPolicy = fields.Str( required=True, description='The memory core oversubscription policy in terms of ' 'virtual memory to physical memory on the platform. The ' 'cardinality can be 0 if no policy has been defined ' 'during the allocation request.') numaEnabled = fields.Bool( required=True, description='It specifies the memory allocation to be cognisant of ' 'the relevant process/core allocation.')
class VirtualNetworkData(Schema): bandwidth = fields.Number( required=True, description='Minimum network bandwidth (in Mbps).') networkType = fields.Str( required=True, description='The type of network that maps to the virtualised ' 'network. This list is extensible. Examples are: "local", ' '"vlan", "vxlan", "gre", "l3-vpn", etc. The cardinality ' 'can be "0" to cover the case where this attribute is not ' 'required to create the virtualised network.') segmentType = fields.Str( required=True, description='The isolated segment for the virtualised network. For ' 'instance, for a "vlan" networkType, it corresponds to ' 'the vlan identifier; and for a "gre" networkType, this ' 'corresponds to a gre key. The cardinality can be "0" to ' 'allow for flat networks without any specific ' 'segmentation.') networkQoS = fields.Nested( NetworkQoS, many=True, required=True, description='Element providing information about Quality of Service ' 'attributes that the network shall support. The ' 'cardinality can be "0" to allow for networks without any ' 'specified QoS requirements.') isShared = fields.Bool( required=True, description='It defines whether the virtualised network is shared ' 'among consumers.') sharingCriteria = fields.Str( required=True, description='Only present for shared networks. Indicate the sharing ' 'criteria for this network. This criteria might be a list ' 'of authorized consumers.') layer3Attributes = fields.Nested( NetworkSubnetData, required=True, many=True, description='The attribute allows setting up a network providing ' 'defined layer 3 connectivity. See clause 8.4.4.4 for ' 'further information on the attributes required for layer ' '3 connectivity.') metadata = fields.Nested( KeyValuePair, required=False, many=True, description='List of metadata key-value pairs used by the consumer ' 'to associate meaningful metadata to the related ' 'virtualised ressource.')
class VirtualStorage(Schema): """VirtualStorage. The VirtualStorage information element encapsulates information of an instantiated virtualised storage resource. """ storageId = fields.Str( required=True, description='Identifier of the virtualised storage resource.') storageName = fields.Str( required=True, description='Name of the virtualised storage resource.') flavourId = fields.Str( required=True, description='Identifier of the storage flavour used to instantiate ' 'this virtual storage.') typeOfStorage = fields.Str( required=True, description='Type of virtualised storage resource (e.g. volume, ' 'object).') sizeOfStorage = fields.Number( required=True, description='Size of virtualised storage resource (e.g. size of ' 'volume, in GB).') rdmaEnabled = fields.Bool( required=False, description='Indicates if the storage supports RDMA.') ownerId = fields.Str( required=True, description='Identifier of the virtualised resource that owns and ' 'uses such a virtualised storage resource. The value can ' 'be NULL if the virtualised storage is not attached yet ' 'to any other resource (e.g. a virtual machine).') zoneId = fields.Str( required=True, description='If present, it identifies the Resource Zone where the ' 'virtual storage resources have been allocated.') hostId = fields.Str( required=True, description='Identifier of the host where the virtualised storage ' 'resource is allocated. A cardinality of 0 refers to ' 'distributed storage solutions.') operationalState = fields.Str( required=True, description='Operational state of the resource.') metadata = fields.Nested( KeyValuePair, required=False, description='List of metadata key-value pairs used by the consumer ' 'to associate meaningful metadata to the related ' 'virtualised resource.')
class VirtualMemoryResourceInformation(Schema): virtualMemSize = fields.Number( required=True, description='Amount of virtual memory (e.g. in MB). Cardinality "1" ' 'covers the case where a specific configuration for the ' 'consumable resource is advertised.') virtualMemOversubscriptionPolicy = fields.Str( required=True, description='The memory core oversubscription policy in terms of ' 'virtual memory to physical memory on the platform. The ' 'cardinality can be 0 if no concrete policy is defined.') numaSupported = fields.Bool( required=True, description='It specifies if the memory allocation can be cognisant ' 'of the relevant process/core allocation.')
class NetworkSubnet(Schema): resourceId = fields.Str( required=True, description='Identifier of the virtualised sub-network.') networkId = fields.Str( required=True, description='The identifier of the virtualised network that the ' 'virtualised sub-network is attached to. The cardinality ' 'can be 0 to cover the case where this type is used to ' 'describe the L3 attributes of a network rather than a ' 'subnetwork.') ipVersion = fields.Str( required=True, description='The IP version of the network/subnetwork.') gatewayIp = fields.Str( IPAddress, required=True, description='The IP address of the network/subnetwork gateway.') cidr = fields.Str( required=True, description='The CIDR of the network/subnetwork, i.e. network address ' 'and subnet mask.') isDhcpEnabled = fields.Bool( required=True, description='True when DHCP is enabled for this network/subnetwork, ' 'or false otherwise.') addressPool = fields.Str( required=True, description='Address pools for the network/subnetwork. The ' 'cardinality can be 0 when VIM is allowed to allocate all ' 'addresses in the CIDR except for the address of the ' 'network/subnetwork gateway.') operationalState = fields.Str( required=True, description='The operational state of the virtualised sub-network.') metadata = fields.Nested( KeyValuePair, required=False, many=True, description='List of metadata key-value pairs used by the consumer ' 'to associate meaningful metadata to the related ' 'virtualised resource.')
class VirtualCpuResourceInformation(Schema): cpuArchitecture = fields.Str( required=True, description='CPU architecture type. Examples are x86, ARM.') numVirtualCpu = fields.Number( required=True, description='Number of virtual CPUs. Cardinality "1" covers the case ' 'where a specific configuration for the consumable ' 'resource is advertised.') cpuClock = fields.Number( required=True, description='Minimum CPU clock rate (e.g. in MHz) available for the ' 'virtualised CPU resources.') virtualCpuOversubscriptionPolicy = fields.Str( required=True, description='The CPU core oversubscription policy, e.g. the relation ' 'of virtual CPU cores to physical CPU cores/threads. The ' 'cardinality can be 0 if no concrete policy is defined.') virtualCpuPinningSupported = fields.Bool( required=True, description='It defines whether CPU pinning capability is available ' 'on the consumable virtualised compute resource.')
class ReservedVirtualNetworkAttributes(Schema): bandwidth = fields.Number(required=True, description='Minimum network bitrate (in Mbps).') networkType = fields.Str( required=True, description='The type of network that maps to the virtualised network ' 'that has been reserved. Examples are: "local", "vlan", ' '"vxlan", "gre", etc.') segmentType = fields.Str( required=True, description='The isolated segment for the virtualised network that ' 'has been reserved. For instance, for a "vlan" ' 'networkType, it corresponds to the vlan identifier; and ' 'for a "gre" networkType, this corresponds to a gre key.') isShared = fields.Bool( required=True, description='It defines whether the virtualised network that has been ' 'reserved is shared among consumers.') metadata = fields.Nested( KeyValuePair, many=True, description='List of metadata key-value pairs used by the consumer to ' 'associate meaningful metadata to the related virtualised ' 'resource.')