UNPKG

@pulumi/vsphere

Version:

A Pulumi package for creating vsphere resources

1,132 lines (1,131 loc) • 33.8 kB
import * as outputs from "../types/output"; export interface ComputeClusterHostImage { /** * List of custom components. */ components?: outputs.ComputeClusterHostImageComponent[]; /** * The ESXi version which the image is based on. */ esxVersion?: string; } export interface ComputeClusterHostImageComponent { /** * The identifier for the component. */ key?: string; /** * The version to use. */ version?: string; } export interface ComputeClusterVsanDiskGroup { /** * Cache disk. */ cache?: string; /** * List of storage disks. */ storages?: string[]; } export interface ComputeClusterVsanFaultDomain { /** * The configuration for single fault domain. */ faultDomains?: outputs.ComputeClusterVsanFaultDomainFaultDomain[]; } export interface ComputeClusterVsanFaultDomainFaultDomain { /** * The managed object IDs of the hosts to put in the fault domain. */ hostIds: string[]; /** * The name of the cluster. */ name: string; } export interface ComputeClusterVsanStretchedCluster { /** * The managed object IDs of the hosts to put in the first fault domain. */ preferredFaultDomainHostIds: string[]; /** * The name of prepferred fault domain. */ preferredFaultDomainName?: string; /** * The managed object IDs of the hosts to put in the second fault domain. */ secondaryFaultDomainHostIds: string[]; /** * The name of secondary fault domain. */ secondaryFaultDomainName?: string; /** * The managed object IDs of the host selected as witness node when enable stretched cluster. */ witnessNode: string; } export interface ContentLibraryPublication { /** * Method to authenticate users. Must be `NONE` or `BASIC`. */ authenticationMethod?: string; /** * Password used by subscribers to authenticate. */ password: string; /** * The URL of the published content library. */ publishUrl: string; /** * Publish the content library. Default `false`. */ published?: boolean; /** * Username used by subscribers to authenticate. Currently can only be `vcsp`. */ username: string; } export interface ContentLibrarySubscription { /** * Authentication method to connect ro a published content library. Must be `NONE` or `BASIC`. */ authenticationMethod?: string; /** * Enable automatic synchronization with the published library. Default `false`. */ automaticSync?: boolean; /** * Download the library from a content only when needed. Default `true`. */ onDemand?: boolean; /** * Password used for authentication. */ password: string; /** * URL of the published content library. */ subscriptionUrl?: string; /** * Username used for authentication. */ username: string; } export interface DistributedPortGroupVlanRange { /** * The minimum VLAN to use in the range. */ maxVlan: number; /** * The minimum VLAN to use in the range. */ minVlan: number; } export interface DistributedVirtualSwitchHost { /** * Name of the physical NIC to be added to the proxy switch. */ devices?: string[]; /** * The managed object ID of the host this specification applies to. */ hostSystemId: string; } export interface DistributedVirtualSwitchPvlanMapping { /** * The primary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property. */ primaryVlanId: number; /** * The private VLAN type. Valid values are promiscuous, community and isolated. */ pvlanType: string; /** * The secondary VLAN ID. The VLAN IDs of 0 and 4095 are reserved and cannot be used in this property. */ secondaryVlanId: number; } export interface DistributedVirtualSwitchVlanRange { /** * The minimum VLAN to use in the range. */ maxVlan: number; /** * The minimum VLAN to use in the range. */ minVlan: number; } export interface EntityPermissionsPermission { /** * Whether `userOrGroup` field refers to a user or a * group. True for a group and false for a user. */ isGroup: boolean; /** * Whether or not this permission propagates down the * hierarchy to sub-entities. */ propagate: boolean; /** * The role id of the role to be given to the user on * the specified entity. */ roleId: string; /** * The user/group getting the permission. */ userOrGroup: string; } export interface GetGuestOsCustomizationSpec { /** * A list of DNS servers for a virtual network adapter with a static IP address. */ dnsServerLists: string[]; /** * A list of DNS search domains to add to the DNS configuration on the virtual machine. */ dnsSuffixLists: string[]; /** * A list of configuration options specific to Linux. */ linuxOptions: outputs.GetGuestOsCustomizationSpecLinuxOption[]; /** * A specification of network interface configuration options. */ networkInterfaces: outputs.GetGuestOsCustomizationSpecNetworkInterface[]; /** * A list of configuration options specific to Windows. */ windowsOptions: outputs.GetGuestOsCustomizationSpecWindowsOption[]; /** * Use this option to specify use of a Windows Sysprep file. */ windowsSysprepText: string; } export interface GetGuestOsCustomizationSpecLinuxOption { /** * The domain name for this virtual machine. */ domain: string; /** * The hostname for this virtual machine. */ hostName: string; /** * Specifies whether or not the hardware clock should be in UTC or not. */ hwClockUtc: boolean; /** * The customization script to run before and or after guest customization. */ scriptText: string; /** * Set the time zone on the guest operating system. For a list of the acceptable values for Linux customization specifications, see [List of Time Zone Database Zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) on Wikipedia. */ timeZone: string; } export interface GetGuestOsCustomizationSpecNetworkInterface { /** * A DNS search domain to add to the DNS configuration on the virtual machine. */ dnsDomain: string; /** * Network-interface specific DNS settings for Windows operating systems. Ignored on Linux. */ dnsServerLists: string[]; /** * The IPv4 address assigned to this network adapter. If left blank, DHCP is used. */ ipv4Address: string; /** * The IPv4 CIDR netmask for the supplied IP address. Ignored if DHCP is selected. */ ipv4Netmask: number; /** * The IPv6 address assigned to this network adapter. If left blank, default auto-configuration is used. */ ipv6Address: string; /** * The IPv6 CIDR netmask for the supplied IP address. Ignored if auto-configuration is selected. */ ipv6Netmask: number; } export interface GetGuestOsCustomizationSpecWindowsOption { /** * The new administrator password for this virtual machine. */ adminPassword: string; /** * Specifies whether or not the guest operating system automatically logs on as Administrator. */ autoLogon: boolean; /** * Specifies how many times the guest operating system should auto-logon the Administrator account when `autoLogon` is `true`. */ autoLogonCount: number; /** * The hostname for this virtual machine. */ computerName: string; /** * The user account used to join this virtual machine to the Active Directory domain. */ domainAdminPassword?: string; /** * The user account of the domain administrator used to join this virtual machine to the domain. */ domainAdminUser: string; /** * The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs. */ domainOu: string; /** * The full name of the user of this virtual machine. */ fullName: string; /** * The Active Directory domain for the virtual machine to join. */ joinDomain: string; /** * The organization name this virtual machine is being installed for. */ organizationName: string; /** * The product key for this virtual machine. */ productKey: string; /** * A list of commands to run at first user logon, after guest customization. */ runOnceCommandLists: string[]; /** * The new time zone for the virtual machine. This is a sysprep-dictated timezone code. */ timeZone: number; /** * The workgroup for this virtual machine if not joining an Active Directory domain. */ workgroup: string; } export interface GetHostVgpuProfileVgpuProfile { /** * Indicates whether the GPU plugin on this host is * capable of disk-only snapshots when VM is not powered off. */ diskSnapshotSupported: boolean; /** * Indicates whether the GPU plugin on this host * is capable of memory snapshots. */ memorySnapshotSupported: boolean; /** * Indicates whether the GPU plugin on this host is * capable of migration. */ migrateSupported: boolean; /** * Indicates whether the GPU plugin on this host is * capable of suspend-resume. */ suspendSupported: boolean; /** * Name of a particular vGPU available as a shared GPU device (vGPU * profile). */ vgpu: string; } export interface GetNetworkFilter { /** * This is required if you have multiple port groups with the same name. This will be one of `DistributedVirtualPortgroup` for distributed port groups, `Network` for standard (host-based) port groups, or `OpaqueNetwork` for networks managed externally, such as those managed by NSX. */ networkType?: string; } export interface GetVirtualMachineDisk { /** * Set to `true` if the disk has been eager zeroed. */ eagerlyScrub: boolean; /** * The label for the disk. */ label: string; /** * The size of the disk, in GIB. */ size: number; /** * Set to `true` if the disk has been thin provisioned. */ thinProvisioned: boolean; /** * The disk number on the storage bus. */ unitNumber: number; } export interface GetVirtualMachineNetworkInterface { /** * The network interface types for each network interface found * on the virtual machine, in device bus order. Will be one of `e1000`, * `e1000e`, `vmxnet3vrdma`, or `vmxnet3`. */ adapterType: string; /** * The upper bandwidth limit of this network interface, * in Mbits/sec. */ bandwidthLimit?: number; /** * The bandwidth reservation of this network * interface, in Mbits/sec. */ bandwidthReservation?: number; /** * The share count for this network interface when the * share level is custom. */ bandwidthShareCount: number; /** * The bandwidth share allocation level for this * interface. Can be one of `low`, `normal`, `high`, or `custom`. */ bandwidthShareLevel?: string; /** * The MAC address of this network interface. */ macAddress: string; /** * The managed object reference ID of the network this interface * is connected to. */ networkId: string; /** * The ID of the Physical SR-IOV NIC to attach to, e.g. '0000:d8:00.0' */ physicalFunction: string; } export interface GetVirtualMachineVapp { /** * A map of customizable vApp properties and their values. Allows customization of VMs cloned from OVF templates which have customizable vApp properties. */ properties?: { [key: string]: string; }; } export interface GuestOsCustomizationSpec { /** * The list of DNS servers for a virtual network adapter with a static IP address. */ dnsServerLists?: string[]; /** * A list of DNS search domains to add to the DNS configuration on the virtual machine. */ dnsSuffixLists?: string[]; /** * The IPv4 default gateway when using networkInterface customization on the virtual machine. This address must be local to a static IPv4 address configured in an interface sub-resource. */ ipv4Gateway?: string; /** * The IPv6 default gateway when using networkInterface customization on the virtual machine. This address must be local to a static IPv4 address configured in an interface sub-resource. */ ipv6Gateway?: string; /** * A list of configuration options specific to Linux virtual machines. */ linuxOptions?: outputs.GuestOsCustomizationSpecLinuxOptions; /** * A specification of network interface configuration options. */ networkInterfaces?: outputs.GuestOsCustomizationSpecNetworkInterface[]; /** * A list of configuration options specific to Windows virtual machines. */ windowsOptions?: outputs.GuestOsCustomizationSpecWindowsOptions; /** * Use this option to specify a windows sysprep file directly. */ windowsSysprepText?: string; } export interface GuestOsCustomizationSpecLinuxOptions { /** * The domain name for this virtual machine. */ domain: string; /** * The hostname for this virtual machine. */ hostName: string; /** * Specifies whether or not the hardware clock should be in UTC or not. */ hwClockUtc?: boolean; /** * The customization script to run before and or after guest customization */ scriptText?: string; /** * Customize the time zone on the VM. This should be a time zone-style entry, like America/Los_Angeles. */ timeZone?: string; } export interface GuestOsCustomizationSpecNetworkInterface { /** * A DNS search domain to add to the DNS configuration on the virtual machine. */ dnsDomain?: string; /** * Network-interface specific DNS settings for Windows operating systems. Ignored on Linux. */ dnsServerLists?: string[]; /** * The IPv4 address assigned to this network adapter. If left blank, DHCP is used. */ ipv4Address?: string; /** * The IPv4 CIDR netmask for the supplied IP address. Ignored if DHCP is selected. */ ipv4Netmask?: number; /** * The IPv6 address assigned to this network adapter. If left blank, default auto-configuration is used. */ ipv6Address?: string; /** * The IPv6 CIDR netmask for the supplied IP address. Ignored if auto-configuration is selected. */ ipv6Netmask?: number; } export interface GuestOsCustomizationSpecWindowsOptions { /** * The new administrator password for this virtual machine. */ adminPassword?: string; /** * Specifies whether or not the VM automatically logs on as Administrator. */ autoLogon?: boolean; /** * Specifies how many times the VM should auto-logon the Administrator account when autoLogon is true. */ autoLogonCount?: number; /** * The host name for this virtual machine. */ computerName: string; /** * The password of the domain administrator used to join this virtual machine to the domain. */ domainAdminPassword?: string; /** * The user account of the domain administrator used to join this virtual machine to the domain. */ domainAdminUser?: string; /** * The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs. */ domainOu?: string; /** * The full name of the user of this virtual machine. */ fullName?: string; /** * The domain that the virtual machine should join. */ joinDomain?: string; /** * The organization name this virtual machine is being installed for. */ organizationName?: string; /** * The product key for this virtual machine. */ productKey?: string; /** * A list of commands to run at first user logon, after guest customization. */ runOnceCommandLists?: string[]; /** * The new time zone for the virtual machine. This is a sysprep-dictated timezone code. */ timeZone?: number; /** * The workgroup for this virtual machine if not joining a domain. */ workgroup?: string; } export interface HostPortGroupPort { /** * The key for this port group as returned from the vSphere API. */ key: string; /** * The MAC addresses of the network service of the virtual machine connected on this port. */ macAddresses: string[]; /** * Type type of the entity connected on this port. Possible values are host (VMKkernel), systemManagement (service console), virtualMachine, or unknown. */ type: string; } export interface HostService { /** * service has three settings, `enabled` sets service to running or not running, `policy` sets service based on setting of `on` which sets service to "Start and stop with host", `off` which sets service to "Start and stop manually", `automatic` which sets service to "Start and stop with port usage". * * > **NOTE:** `services` only supports ntpd service today. */ ntpd?: outputs.HostServiceNtpd; } export interface HostServiceNtpd { /** * Whether the NTP service is enabled. Default is false. */ enabled?: boolean; ntpServers: string[]; /** * The policy for the NTP service. Valid values are 'Start and stop with host', 'Start and stop manually', 'Start and stop with port usage'. */ policy?: string; } export interface OfflineSoftwareDepotComponent { /** * The name of the component. Useful for easier identification. */ displayName: string; /** * The identifier of the component. */ key: string; /** * The list of available versions of the component. */ versions: string[]; } export interface SupervisorEgressCidr { /** * Network address. */ address: string; /** * Subnet prefix. */ prefix: number; } export interface SupervisorIngressCidr { /** * Network address. */ address: string; /** * Subnet prefix. */ prefix: number; } export interface SupervisorManagementNetwork { /** * Number of addresses to allocate. Starts from 'starting_address' */ addressCount: number; /** * Gateway IP address. */ gateway: string; /** * ID of the network. (e.g. a distributed port group). */ network: string; /** * Starting address of the management network range. */ startingAddress: string; /** * Subnet mask. */ subnetMask: string; } export interface SupervisorNamespace { /** * A list of content libraries. */ contentLibraries?: string[]; /** * The name of the namespace. */ name: string; /** * A list of virtual machine classes. */ vmClasses?: string[]; } export interface SupervisorPodCidr { /** * Network address. */ address: string; /** * Subnet prefix. */ prefix: number; } export interface SupervisorServiceCidr { /** * Network address. */ address: string; /** * Subnet prefix. */ prefix: number; } export interface VirtualMachineCdrom { /** * Indicates whether the device should be mapped to a remote client device */ clientDevice?: boolean; /** * The datastore ID the ISO is located on. */ datastoreId?: string; /** * The internally-computed address of this device, such as scsi:0:1, denoting scsi bus #0 and device unit 1. */ deviceAddress: string; /** * The ID of the device within the virtual machine. */ key: number; /** * The path to the ISO file on the datastore. */ path?: string; } export interface VirtualMachineClone { /** * The customization specification for the virtual machine post-clone. */ customizationSpec?: outputs.VirtualMachineCloneCustomizationSpec; /** * The customization specification for the virtual machine post-clone. */ customize?: outputs.VirtualMachineCloneCustomize; /** * Whether or not to create a linked clone when cloning. When this option is used, the source VM must have a single snapshot associated with it. */ linkedClone?: boolean; /** * Mapping of ovf networks to the networks to use in vSphere. */ ovfNetworkMap?: { [key: string]: string; }; /** * Mapping of ovf storage to the datastores to use in vSphere. */ ovfStorageMap?: { [key: string]: string; }; /** * The UUID of the source virtual machine or template. */ templateUuid: string; /** * The timeout, in minutes, to wait for the virtual machine clone to complete. */ timeout?: number; } export interface VirtualMachineCloneCustomizationSpec { /** * The UUID of the virtual machine. */ id: string; /** * The amount of time, in minutes, to wait for guest OS customization to complete before returning with an error. Setting this value to 0 or a negative value skips the waiter. Default: 10. */ timeout?: number; } export interface VirtualMachineCloneCustomize { /** * The list of DNS servers for a virtual network adapter with a static IP address. */ dnsServerLists?: string[]; /** * A list of DNS search domains to add to the DNS configuration on the virtual machine. */ dnsSuffixLists?: string[]; /** * The IPv4 default gateway when using networkInterface customization on the virtual machine. This address must be local to a static IPv4 address configured in an interface sub-resource. */ ipv4Gateway?: string; /** * The IPv6 default gateway when using networkInterface customization on the virtual machine. This address must be local to a static IPv4 address configured in an interface sub-resource. */ ipv6Gateway?: string; /** * A list of configuration options specific to Linux virtual machines. */ linuxOptions?: outputs.VirtualMachineCloneCustomizeLinuxOptions; /** * A specification of network interface configuration options. */ networkInterfaces?: outputs.VirtualMachineCloneCustomizeNetworkInterface[]; /** * The amount of time, in minutes, to wait for guest OS customization to complete before returning with an error. Setting this value to 0 or a negative value skips the waiter. Default: 10. */ timeout?: number; /** * A list of configuration options specific to Windows virtual machines. */ windowsOptions?: outputs.VirtualMachineCloneCustomizeWindowsOptions; /** * Use this option to specify a windows sysprep file directly. */ windowsSysprepText?: string; } export interface VirtualMachineCloneCustomizeLinuxOptions { /** * The domain name for this virtual machine. */ domain: string; /** * The hostname for this virtual machine. */ hostName: string; /** * Specifies whether or not the hardware clock should be in UTC or not. */ hwClockUtc?: boolean; /** * The customization script to run before and or after guest customization */ scriptText?: string; /** * Customize the time zone on the VM. This should be a time zone-style entry, like America/Los_Angeles. */ timeZone?: string; } export interface VirtualMachineCloneCustomizeNetworkInterface { /** * A DNS search domain to add to the DNS configuration on the virtual machine. */ dnsDomain?: string; /** * Network-interface specific DNS settings for Windows operating systems. Ignored on Linux. */ dnsServerLists?: string[]; /** * The IPv4 address assigned to this network adapter. If left blank, DHCP is used. */ ipv4Address?: string; /** * The IPv4 CIDR netmask for the supplied IP address. Ignored if DHCP is selected. */ ipv4Netmask?: number; /** * The IPv6 address assigned to this network adapter. If left blank, default auto-configuration is used. */ ipv6Address?: string; /** * The IPv6 CIDR netmask for the supplied IP address. Ignored if auto-configuration is selected. */ ipv6Netmask?: number; } export interface VirtualMachineCloneCustomizeWindowsOptions { /** * The new administrator password for this virtual machine. */ adminPassword?: string; /** * Specifies whether or not the VM automatically logs on as Administrator. */ autoLogon?: boolean; /** * Specifies how many times the VM should auto-logon the Administrator account when autoLogon is true. */ autoLogonCount?: number; /** * The host name for this virtual machine. */ computerName: string; /** * The password of the domain administrator used to join this virtual machine to the domain. */ domainAdminPassword?: string; /** * The user account of the domain administrator used to join this virtual machine to the domain. */ domainAdminUser?: string; /** * The MachineObjectOU which specifies the full LDAP path name of the OU to which the virtual machine belongs. */ domainOu?: string; /** * The full name of the user of this virtual machine. */ fullName?: string; /** * The domain that the virtual machine should join. */ joinDomain?: string; /** * The organization name this virtual machine is being installed for. */ organizationName?: string; /** * The product key for this virtual machine. */ productKey?: string; /** * A list of commands to run at first user logon, after guest customization. */ runOnceCommandLists?: string[]; /** * The new time zone for the virtual machine. This is a sysprep-dictated timezone code. */ timeZone?: number; /** * The workgroup for this virtual machine if not joining a domain. */ workgroup?: string; } export interface VirtualMachineDisk { /** * If this is true, the disk is attached instead of created. Implies keep_on_remove. */ attach?: boolean; /** * The type of controller the disk should be connected to. Must be 'scsi', 'sata', 'nvme', or 'ide'. */ controllerType?: string; /** * The datastore ID for this virtual disk, if different than the virtual machine. */ datastoreId: string; /** * The internally-computed address of this device, such as scsi:0:1, denoting scsi bus #0 and device unit 1. */ deviceAddress: string; /** * The mode of this this virtual disk for purposes of writes and snapshotting. Can be one of append, independent_nonpersistent, independent_persistent, nonpersistent, persistent, or undoable. */ diskMode?: string; /** * The sharing mode of this virtual disk. Can be one of sharingMultiWriter or sharingNone. */ diskSharing?: string; /** * The virtual disk file zeroing policy when thinProvision is not true. The default is false, which lazily-zeros the disk, speeding up thick-provisioned disk creation time. */ eagerlyScrub?: boolean; /** * The upper limit of IOPS that this disk can use. */ ioLimit?: number; /** * The I/O guarantee that this disk has, in IOPS. */ ioReservation?: number; /** * The share count for this disk when the share level is custom. */ ioShareCount?: number; /** * The share allocation level for this disk. Can be one of low, normal, high, or custom. */ ioShareLevel?: string; /** * Set to true to keep the underlying VMDK file when removing this virtual disk from configuration. */ keepOnRemove?: boolean; /** * The ID of the device within the virtual machine. */ key: number; /** * A unique label for this disk. */ label: string; /** * The full path of the virtual disk. This can only be provided if attach is set to true, otherwise it is a read-only value. */ path: string; /** * The size of the disk, in GB. */ size?: number; /** * The ID of the storage policy to assign to the virtual disk in VM. */ storagePolicyId: string; /** * If true, this disk is thin provisioned, with space for the file being allocated on an as-needed basis. */ thinProvisioned?: boolean; /** * The unique device number for this disk. This number determines where on the SCSI bus this device will be attached. */ unitNumber?: number; /** * The UUID of the virtual machine. Also exposed as the `id` of the resource. */ uuid: string; /** * If true, writes for this disk are sent directly to the filesystem immediately instead of being buffered. */ writeThrough?: boolean; } export interface VirtualMachineNetworkInterface { /** * The controller type. Can be one of e1000, e1000e, sriov, vmxnet3, or vrdma. */ adapterType?: string; /** * The upper bandwidth limit of this network interface, in Mbits/sec. */ bandwidthLimit?: number; /** * The bandwidth reservation of this network interface, in Mbits/sec. */ bandwidthReservation?: number; /** * The share count for this network interface when the share level is custom. */ bandwidthShareCount: number; /** * The bandwidth share allocation level for this interface. Can be one of low, normal, high, or custom. */ bandwidthShareLevel?: string; /** * The internally-computed address of this device, such as scsi:0:1, denoting scsi bus #0 and device unit 1. */ deviceAddress: string; /** * The ID of the device within the virtual machine. */ key: number; /** * The MAC address of this network interface. Can only be manually set if useStaticMac is true. */ macAddress: string; /** * The ID of the network to connect this network interface to. */ networkId: string; /** * Mapping of network interface to OVF network. */ ovfMapping?: string; /** * The ID of the Physical SR-IOV NIC to attach to, e.g. '0000:d8:00.0' */ physicalFunction?: string; /** * If true, the macAddress field is treated as a static MAC address and set accordingly. */ useStaticMac?: boolean; } export interface VirtualMachineOvfDeploy { /** * Allow unverified ssl certificates while deploying ovf/ova from url. */ allowUnverifiedSslCert?: boolean; /** * The Deployment option to be chosen. If empty, the default option is used. */ deploymentOption?: string; /** * An optional disk provisioning. If set, all the disks in the deployed ovf will have the same specified disk type (e.g., thin provisioned). */ diskProvisioning?: string; /** * Allow properties with ovf:userConfigurable=false to be set. */ enableHiddenProperties?: boolean; /** * The IP allocation policy. */ ipAllocationPolicy?: string; /** * The IP protocol. */ ipProtocol?: string; /** * The absolute path to the ovf/ova file in the local system. */ localOvfPath?: string; /** * The mapping of name of network identifiers from the ovf descriptor to network UUID in the VI infrastructure. */ ovfNetworkMap?: { [key: string]: string; }; /** * URL to the remote ovf/ova file to be deployed. */ remoteOvfUrl?: string; } export interface VirtualMachineVapp { /** * A map of customizable vApp properties and their values. Allows customization of VMs cloned from OVF templates which have customizable vApp properties. */ properties?: { [key: string]: string; }; } export interface VirtualMachineVtpm { /** * The version of the TPM device. Default is 2.0. */ version?: string; } export interface VmStoragePolicyTagRule { /** * Include datastores with the given tags or exclude. Default `true`. */ includeDatastoresWithTags?: boolean; /** * Name of the tag category. */ tagCategory: string; /** * List of Name of tags to select from the given category. */ tags: string[]; } export interface VnicIpv4 { /** * Use DHCP to configure the interface's IPv4 stack. */ dhcp?: boolean; /** * IP address of the default gateway, if DHCP is not set. */ gw?: string; /** * address of the interface, if DHCP is not set. */ ip?: string; /** * netmask of the interface, if DHCP is not set. */ netmask?: string; } export interface VnicIpv6 { /** * List of IPv6 addresses */ addresses?: string[]; /** * Use IPv6 Autoconfiguration (RFC2462). */ autoconfig?: boolean; /** * Use DHCP to configure the interface's IPv4 stack. */ dhcp?: boolean; /** * IP address of the default gateway, if DHCP or autoconfig is not set. */ gw?: string; }