types

package
v2.11.32 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2021 License: Apache-2.0 Imports: 4 Imported by: 1

Documentation

Overview

Package types/v56 provider all types which are used by govcd package in order to perform API requests and parse responses

Index

Constants

View Source
const (
	// PublicCatalog Name
	PublicCatalog = "Public Catalog"

	// DefaultCatalog Name
	DefaultCatalog = "Default Catalog"

	// JSONMimeV57 the json mime for version 5.7 of the API
	JSONMimeV57 = "application/json;version=5.7"
	// AnyXMLMime511 the wildcard xml mime for version 5.11 of the API
	AnyXMLMime511 = "application/*+xml;version=5.11"
	AnyXMLMime    = "application/xml"
	// Version511 the 5.11 version
	Version511 = "5.11"
	// Version is the default version number
	Version = Version511
	// SoapXML mime type
	SoapXML = "application/soap+xml"
	// JSONMime
	JSONMime = "application/json"
)
View Source
const (
	// MimeOrgList mime for org list
	MimeOrgList = "application/vnd.vmware.vcloud.orgList+xml"
	// MimeOrg mime for org
	MimeOrg = "application/vnd.vmware.vcloud.org+xml"
	// MimeAdminOrg mime for admin org
	MimeAdminOrg = "application/vnd.vmware.admin.organization+xml"
	// MimeCatalog mime for catalog
	MimeCatalog = "application/vnd.vmware.vcloud.catalog+xml"
	// MimeCatalogItem mime for catalog item
	MimeCatalogItem = "application/vnd.vmware.vcloud.catalogItem+xml"
	// MimeVDC mime for a VDC
	MimeVDC = "application/vnd.vmware.vcloud.vdc+xml"
	// MimeVDC mime for a admin VDC
	MimeAdminVDC = "application/vnd.vmware.admin.vdc+xml"
	// MimeEdgeGateway mime for an Edge Gateway
	MimeEdgeGateway = "application/vnd.vmware.admin.edgeGateway+xml"
	// MimeVAppTemplate mime for a vapp template
	MimeVAppTemplate = "application/vnd.vmware.vcloud.vAppTemplate+xml"
	// MimeVApp mime for a vApp
	MimeVApp = "application/vnd.vmware.vcloud.vApp+xml"
	// MimeQueryRecords mime for the query records
	MimeQueryRecords = "application/vnd.vmware.vcloud.query.records+xml"
	// MimeAPIExtensibility mime for api extensibility
	MimeAPIExtensibility = "application/vnd.vmware.vcloud.apiextensibility+xml"
	// MimeEntity mime for vcloud entity
	MimeEntity = "application/vnd.vmware.vcloud.entity+xml"
	// MimeQueryList mime for query list
	MimeQueryList = "application/vnd.vmware.vcloud.query.queryList+xml"
	// MimeSession mime for a session
	MimeSession = "application/vnd.vmware.vcloud.session+xml"
	// MimeTask mime for task
	MimeTask = "application/vnd.vmware.vcloud.task+xml"
	// MimeError mime for error
	MimeError = "application/vnd.vmware.vcloud.error+xml"
	// MimeNetwork mime for a network
	MimeNetwork = "application/vnd.vmware.vcloud.network+xml"
	// MimeOrgVdcNetwork mime for an Org VDC network
	MimeOrgVdcNetwork = "application/vnd.vmware.vcloud.orgVdcNetwork+xml"
	//MimeDiskCreateParams mime for create independent disk
	MimeDiskCreateParams = "application/vnd.vmware.vcloud.diskCreateParams+xml"
	// Mime for VMs
	MimeVMs = "application/vnd.vmware.vcloud.vms+xml"
	// Mime for attach or detach independent disk
	MimeDiskAttachOrDetachParams = "application/vnd.vmware.vcloud.diskAttachOrDetachParams+xml"
	// Mime for Disk
	MimeDisk = "application/vnd.vmware.vcloud.disk+xml"
	// Mime for insert or eject media
	MimeMediaInsertOrEjectParams = "application/vnd.vmware.vcloud.mediaInsertOrEjectParams+xml"
	// Mime for catalog
	MimeAdminCatalog = "application/vnd.vmware.admin.catalog+xml"
	// Mime for virtual hardware section
	MimeVirtualHardwareSection = "application/vnd.vmware.vcloud.virtualHardwareSection+xml"
	// Mime for networkConnectionSection
	MimeNetworkConnectionSection = "application/vnd.vmware.vcloud.networkConnectionSection+xml"
	// Mime for Item
	MimeRasdItem = "application/vnd.vmware.vcloud.rasdItem+xml"
	// Mime for guest customization section
	MimeGuestCustomizationSection = "application/vnd.vmware.vcloud.guestCustomizationSection+xml"
	// Mime for guest customization status
	MimeGuestCustomizationStatus = "application/vnd.vmware.vcloud.guestcustomizationstatussection"
	// Mime for network config section
	MimeNetworkConfigSection = "application/vnd.vmware.vcloud.networkconfigsection+xml"
	// Mime for recompose vApp params
	MimeRecomposeVappParams = "application/vnd.vmware.vcloud.recomposeVAppParams+xml"
	// Mime for compose vApp params
	MimeComposeVappParams = "application/vnd.vmware.vcloud.composeVAppParams+xml"
	// Mime for undeploy vApp params
	MimeUndeployVappParams = "application/vnd.vmware.vcloud.undeployVAppParams+xml"
	// Mime for deploy vApp params
	MimeDeployVappParams = "application/vnd.vmware.vcloud.deployVAppParams+xml"
	// Mime for VM
	MimeVM = "application/vnd.vmware.vcloud.vm+xml"
	// Mime for instantiate vApp template params
	MimeInstantiateVappTemplateParams = "application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml"
	// Mime for product section
	MimeProductSection = "application/vnd.vmware.vcloud.productSections+xml"
	// Mime for metadata
	MimeMetaData = "application/vnd.vmware.vcloud.metadata+xml"
	// Mime for metadata value
	MimeMetaDataValue = "application/vnd.vmware.vcloud.metadata.value+xml"
	// Mime for a admin network
	MimeExtensionNetwork = "application/vnd.vmware.admin.extension.network+xml"
	// Mime for an external network
	MimeExternalNetwork = "application/vnd.vmware.admin.vmwexternalnet+xml"
	// Mime of an Org User
	MimeAdminUser = "application/vnd.vmware.admin.user+xml"
	// MimeAdminGroup specifies groups
	MimeAdminGroup = "application/vnd.vmware.admin.group+xml"
	// MimeOrgLdapSettings
	MimeOrgLdapSettings = "application/vnd.vmware.admin.organizationldapsettings+xml"
	// Mime of vApp network
	MimeVappNetwork = "application/vnd.vmware.vcloud.vAppNetwork+xml"
	// Mime of access control
	MimeControlAccess = "application/vnd.vmware.vcloud.controlAccess+xml"
	// Mime of VM capabilities
	MimeVmCapabilities = "application/vnd.vmware.vcloud.vmCapabilitiesSection+xml"
	// Mime of Vdc Compute Policy References
	MimeVdcComputePolicyReferences = "application/vnd.vmware.vcloud.vdcComputePolicyReferences+xml"
	// Mime for Storage profile
	MimeStorageProfile = "application/vnd.vmware.admin.vdcStorageProfile+xml "
)
View Source
const (
	ResourceTypeOther     int = 0
	ResourceTypeProcessor int = 3
	ResourceTypeMemory    int = 4
	ResourceTypeIDE       int = 5
	ResourceTypeSCSI      int = 6
	ResourceTypeEthernet  int = 10
	ResourceTypeFloppy    int = 14
	ResourceTypeCD        int = 15
	ResourceTypeDVD       int = 16
	ResourceTypeDisk      int = 17
	ResourceTypeUSB       int = 23
)
View Source
const (
	FenceModeIsolated = "isolated"
	FenceModeBridged  = "bridged"
	FenceModeNAT      = "natRouted"
)
View Source
const (
	IPAllocationModeDHCP   = "DHCP"
	IPAllocationModeManual = "MANUAL"
	IPAllocationModeNone   = "NONE"
	IPAllocationModePool   = "POOL"
)
View Source
const (
	XMLNamespaceVCloud    = "http://www.vmware.com/vcloud/v1.5"
	XMLNamespaceOVF       = "http://schemas.dmtf.org/ovf/envelope/1"
	XMLNamespaceVMW       = "http://www.vmware.com/schema/ovf"
	XMLNamespaceXSI       = "http://www.w3.org/2001/XMLSchema-instance"
	XMLNamespaceRASD      = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
	XMLNamespaceVSSD      = "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
	XMLNamespaceExtension = "http://www.vmware.com/vcloud/extension/v1.5"
)
View Source
const (
	EdgeNatPath            = "/nat/config"
	EdgeCreateNatPath      = "/nat/config/rules"
	EdgeFirewallPath       = "/firewall/config"
	EdgeCreateFirewallPath = "/firewall/config/rules"
	EdgeVnicConfig         = "/vnics"
	EdgeVdcVnicConfig      = "/vdcNetworks"
	EdgeDhcpRelayPath      = "/dhcp/config/relay"
	EdgeDhcpLeasePath      = "/dhcp/leaseInfo"
	LbConfigPath           = "/loadbalancer/config/"
	LbMonitorPath          = "/loadbalancer/config/monitors/"
	LbServerPoolPath       = "/loadbalancer/config/pools/"
	LbAppProfilePath       = "/loadbalancer/config/applicationprofiles/"
	LbAppRulePath          = "/loadbalancer/config/applicationrules/"
	LbVirtualServerPath    = "/loadbalancer/config/virtualservers/"
)

NSX-V Edge gateway API endpoints

View Source
const (
	GuestCustStatusPending       = "GC_PENDING"
	GuestCustStatusPostPending   = "POST_GC_PENDING"
	GuestCustStatusComplete      = "GC_COMPLETE"
	GuestCustStatusFailed        = "GC_FAILED"
	GuestCustStatusRebootPending = "REBOOT_PENDING"
)

Guest customization statuses. These are all known possible statuses

View Source
const (
	EdgeGatewayVnicTypeUplink       = "uplink"
	EdgeGatewayVnicTypeInternal     = "internal"
	EdgeGatewayVnicTypeTrunk        = "trunk"
	EdgeGatewayVnicTypeSubinterface = "subinterface"
	EdgeGatewayVnicTypeAny          = "any"
)

Edge gateway vNic types

View Source
const (
	FilterNameRegex = "name_regex" // a name, searched by regular expression
	FilterDate      = "date"       // a date expression (>|<|==|>=|<= date)
	FilterIp        = "ip"         // An IP, searched by regular expression
	FilterLatest    = "latest"     // gets the newest element
	FilterEarliest  = "earliest"   // gets the oldest element
	FilterParent    = "parent"     // matches the entity parent
	FilterParentId  = "parent_id"  // matches the entity parent ID
)

Names of the filters allowed in the search engine

View Source
const (
	// The Qt* (Query Type) constants are the names used with Query requests to retrieve the corresponding entities
	QtVappTemplate      = "vAppTemplate"      // vApp template
	QtAdminVappTemplate = "adminVAppTemplate" // vApp template as admin
	QtEdgeGateway       = "edgeGateway"       // edge gateway
	QtOrgVdcNetwork     = "orgVdcNetwork"     // Org VDC network
	QtCatalog           = "catalog"           // catalog
	QtAdminCatalog      = "adminCatalog"      // catalog as admin
	QtCatalogItem       = "catalogItem"       // catalog item
	QtAdminCatalogItem  = "adminCatalogItem"  // catalog item as admin
	QtAdminMedia        = "adminMedia"        // media item as admin
	QtMedia             = "media"             // media item
	QtVm                = "vm"                // Virtual machine
	QtAdminVm           = "adminVM"           // Virtual machine as admin
	QtVapp              = "vApp"              // vApp
	QtAdminVapp         = "adminVApp"         // vApp as admin
)
View Source
const (
	// Affinity and anti affinity definitions
	PolarityAffinity     = "Affinity"
	PolarityAntiAffinity = "Anti-Affinity"
)
View Source
const (
	LdapModeNone   = "NONE"
	LdapModeSystem = "SYSTEM"
	LdapModeCustom = "CUSTOM"
)

LDAP modes for Organization

View Source
const (
	ControlAccessReadOnly    = "ReadOnly"
	ControlAccessReadWrite   = "Change"
	ControlAccessFullControl = "FullControl"
)

Access control modes

View Source
const (
	OpenApiPathVersion1_0_0                   = "1.0.0/"
	OpenApiEndpointRoles                      = "roles/"
	OpenApiEndpointAuditTrail                 = "auditTrail/"
	OpenApiEndpointImportableTier0Routers     = "nsxTResources/importableTier0Routers"
	OpenApiEndpointEdgeClusters               = "nsxTResources/edgeClusters"
	OpenApiEndpointExternalNetworks           = "externalNetworks/"
	OpenApiEndpointVdcComputePolicies         = "vdcComputePolicies/"
	OpenApiEndpointVdcAssignedComputePolicies = "vdcs/%s/computePolicies"
	OpenApiEndpointEdgeGateways               = "edgeGateways/"
)

These constants allow to construct OpenAPI endpoint paths and avoid strings in code for easy replacement in future.

View Source
const (
	// HeaderTenantContext requires the Org ID of the tenant
	HeaderTenantContext = "X-VMWARE-VCLOUD-TENANT-CONTEXT"
	// HeaderAuthContext requires the Org name of the tenant
	HeaderAuthContext = "X-VMWARE-VCLOUD-AUTH-CONTEXT"
)

Header keys to run operations in tenant context

View Source
const (
	// ExternalNetworkBackingTypeNsxtTier0Router defines backing type of NSX-T Tier-0 router
	ExternalNetworkBackingTypeNsxtTier0Router = "NSXT_TIER0"
	// ExternalNetworkBackingTypeNsxtVrfTier0Router defines backing type of NSX-T Tier-0 VRF router
	ExternalNetworkBackingTypeNsxtVrfTier0Router = "NSXT_VRF_TIER0"
	// ExternalNetworkBackingTypeNetwork defines vSwitch portgroup
	ExternalNetworkBackingTypeNetwork = "NETWORK"
	// ExternalNetworkBackingDvPortgroup refers distributed switch portgroup
	ExternalNetworkBackingDvPortgroup = "DV_PORTGROUP"
)
View Source
const (
	// DFWOn is needed to check if vdc is a valid object for network api or to enable Distributed Firewall
	DFWOn = "/network/firewall/vdc/"
	//DFWRequest is needed to get information about the DFW in VDC or add rules to DFW
	DFWRequest = "/network/firewall/globalroot-0/config/layer3sections/"
)
View Source
const (
	RelDown          = "down"
	RelAdd           = "add"
	RelUp            = "up"
	RelEdit          = "edit"
	RelRemove        = "remove"
	RelCopy          = "copy"
	RelMove          = "move"
	RelAlternate     = "alternate"
	RelTaskCancel    = "task:cancel"
	RelDeploy        = "deploy"
	RelUndeploy      = "undeploy"
	RelDiscardState  = "discardState"
	RelPowerOn       = "power:powerOn"
	RelPowerOff      = "power:powerOff"
	RelPowerReset    = "power:reset"
	RelPowerReboot   = "power:reboot"
	RelPowerSuspend  = "power:suspend"
	RelPowerShutdown = "power:shutdown"

	RelScreenThumbnail        = "screen:thumbnail"
	RelScreenAcquireTicket    = "screen:acquireTicket"
	RelScreenAcquireMksTicket = "screen:acquireMksTicket"

	RelMediaInsertMedia = "media:insertMedia"
	RelMediaEjectMedia  = "media:ejectMedia"

	RelDiskAttach = "disk:attach"
	RelDiskDetach = "disk:detach"

	RelUploadDefault   = "upload:default"
	RelUploadAlternate = "upload:alternate"

	RelDownloadDefault   = "download:default"
	RelDownloadAlternate = "download:alternate"
	RelDownloadIdentity  = "download:identity"

	RelSnapshotCreate          = "snapshot:create"
	RelSnapshotRevertToCurrent = "snapshot:revertToCurrent"
	RelSnapshotRemoveAll       = "snapshot:removeAll"

	RelOVF               = "ovf"
	RelOVA               = "ova"
	RelControlAccess     = "controlAccess"
	RelPublish           = "publish"
	RelPublishExternal   = "publishToExternalOrganizations"
	RelSubscribeExternal = "subscribeToExternalCatalog"
	RelExtension         = "extension"
	RelEnable            = "enable"
	RelDisable           = "disable"
	RelMerge             = "merge"
	RelCatalogItem       = "catalogItem"
	RelRecompose         = "recompose"
	RelRegister          = "register"
	RelUnregister        = "unregister"
	RelRepair            = "repair"
	RelReconnect         = "reconnect"
	RelDisconnect        = "disconnect"
	RelUpgrade           = "upgrade"
	RelAnswer            = "answer"
	RelAddOrgs           = "addOrgs"
	RelRemoveOrgs        = "removeOrgs"
	RelSync              = "sync"

	RelVSphereWebClientURL = "vSphereWebClientUrl"
	RelVimServerDvSwitches = "vimServerDvSwitches"

	RelCollaborationResume    = "resume"
	RelCollaborationFail      = "fail"
	RelEnterMaintenanceMode   = "enterMaintenanceMode"
	RelExitMaintenanceMode    = "exitMaintenanceMode"
	RelTask                   = "task"
	RelTaskOwner              = "task:owner"
	RelPreviousPage           = "previousPage"
	RelNextPage               = "nextPage"
	RelFirstPage              = "firstPage"
	RelLastPage               = "lastPage"
	RelInstallVMWareTools     = "installVmwareTools"
	RelConsolidate            = "consolidate"
	RelEntity                 = "entity"
	RelEntityResolver         = "entityResolver"
	RelRelocate               = "relocate"
	RelBlockingTasks          = "blockingTasks"
	RelUpdateProgress         = "updateProgress"
	RelSyncSyslogSettings     = "syncSyslogSettings"
	RelTakeOwnership          = "takeOwnership"
	RelUnlock                 = "unlock"
	RelShadowVMs              = "shadowVms"
	RelTest                   = "test"
	RelUpdateResourcePools    = "update:resourcePools"
	RelRemoveForce            = "remove:force"
	RelStorageClass           = "storageProfile"
	RelRefreshStorageClasses  = "refreshStorageProfile"
	RelRefreshVirtualCenter   = "refreshVirtualCenter"
	RelCheckCompliance        = "checkCompliance"
	RelForceFullCustomization = "customizeAtNextPowerOn"
	RelReloadFromVC           = "reloadFromVc"
	RelMetricsDayView         = "interval:day"
	RelMetricsWeekView        = "interval:week"
	RelMetricsMonthView       = "interval:month"
	RelMetricsYearView        = "interval:year"
	RelMetricsPreviousRange   = "range:previous"
	RelMetricsNextRange       = "range:next"
	RelMetricsLatestRange     = "range:latest"
	RelRights                 = "rights"
	RelMigratVMs              = "migrateVms"
	RelResourcePoolVMList     = "resourcePoolVmList"
	RelCreateEvent            = "event:create"
	RelCreateTask             = "task:create"
	RelUploadBundle           = "bundle:upload"
	RelCleanupBundles         = "bundles:cleanup"
	RelAuthorizationCheck     = "authorization:check"
	RelCleanupRights          = "rights:cleanup"

	RelEdgeGatewayRedeploy           = "edgeGateway:redeploy"
	RelEdgeGatewayReapplyServices    = "edgeGateway:reapplyServices"
	RelEdgeGatewayConfigureServices  = "edgeGateway:configureServices"
	RelEdgeGatewayConfigureSyslog    = "edgeGateway:configureSyslogServerSettings"
	RelEdgeGatewaySyncSyslogSettings = "edgeGateway:syncSyslogSettings"
	RelEdgeGatewayUpgrade            = "edgeGateway:upgrade"
	RelEdgeGatewayUpgradeNetworking  = "edgeGateway:convertToAdvancedNetworking"
	RelVDCManageFirewall             = "manageFirewall"

	RelCertificateUpdate = "certificate:update"
	RelCertificateReset  = "certificate:reset"
	RelTruststoreUpdate  = "truststore:update"
	RelTruststoreReset   = "truststore:reset"
	RelKeyStoreUpdate    = "keystore:update"
	RelKeystoreReset     = "keystore:reset"
	RelKeytabUpdate      = "keytab:update"
	RelKeytabReset       = "keytab:reset"

	RelServiceLinks             = "down:serviceLinks"
	RelAPIFilters               = "down:apiFilters"
	RelResourceClasses          = "down:resourceClasses"
	RelResourceClassActions     = "down:resourceClassActions"
	RelServices                 = "down:services"
	RelACLRules                 = "down:aclRules"
	RelFileDescriptors          = "down:fileDescriptors"
	RelAPIDefinitions           = "down:apiDefinitions"
	RelServiceResources         = "down:serviceResources"
	RelExtensibility            = "down:extensibility"
	RelAPIServiceQuery          = "down:service"
	RelAPIDefinitionsQuery      = "down:apidefinitions"
	RelAPIFilesQuery            = "down:files"
	RelServiceOfferings         = "down:serviceOfferings"
	RelServiceOfferingInstances = "down:serviceOfferingInstances"
	RelHybrid                   = "down:hybrid"

	RelServiceRefresh      = "service:refresh"
	RelServiceAssociate    = "service:associate"
	RelServiceDisassociate = "service:disassociate"

	RelReconfigureVM = "reconfigureVM"

	RelOrgVDCGateways = "edgeGateways"
	RelOrgVDCNetworks = "orgVdcNetworks"

	RelHybridAcquireControlTicket = "hybrid:acquireControlTicket"
	RelHybridAcquireTicket        = "hybrid:acquireTicket"
	RelHybridRefreshTunnel        = "hybrid:refreshTunnel"

	RelMetrics = "metrics"

	RelFederationRegenerateCertificate = "federation:regenerateFederationCertificate"
	RelTemplateInstantiate             = "instantiate"
)
View Source
const (
	// FiqlQueryTimestampFormat is the format accepted by Cloud API time comparison operator in FIQL query filters
	FiqlQueryTimestampFormat = "2006-01-02T15:04:05.000Z"
)
View Source
const (
	NoneNetwork = "none"
)

NoneNetwork is a special type of network in vCD which represents a network card which is not attached to any network.

View Source
const (
	NsxvIpSetServicePath = "/ipset"
)

NSX-V proxied services API endpoints

View Source
const (
	VMsCDResourceSubType = "vmware.cdrom.iso"
)

Variables

AdminQueryTypes returns the corresponding "admin" query type for each regular type

View Source
var VAppStatuses = map[int]string{
	-1: "FAILED_CREATION",
	0:  "UNRESOLVED",
	1:  "RESOLVED",
	2:  "DEPLOYED",
	3:  "SUSPENDED",
	4:  "POWERED_ON",
	5:  "WAITING_FOR_INPUT",
	6:  "UNKNOWN",
	7:  "UNRECOGNIZED",
	8:  "POWERED_OFF",
	9:  "INCONSISTENT_STATE",
	10: "MIXED",
	11: "DESCRIPTOR_PENDING",
	12: "COPYING_CONTENTS",
	13: "DISK_CONTENTS_PENDING",
	14: "QUARANTINED",
	15: "QUARANTINE_EXPIRED",
	16: "REJECTED",
	17: "TRANSFER_TIMEOUT",
	18: "VAPP_UNDEPLOYED",
	19: "VAPP_PARTIALLY_DEPLOYED",
}

Maps status Attribute Values for VAppTemplate, VApp, Vm, and Media Objects

View Source
var VDCStatuses = map[int]string{
	-1: "FAILED_CREATION",
	0:  "NOT_READY",
	1:  "READY",
	2:  "UNKNOWN",
	3:  "UNRECOGNIZED",
}

Maps status Attribute Values for VDC Objects

Functions

This section is empty.

Types

type AccessSetting

type AccessSetting struct {
	XMLName         xml.Name         `xml:"AccessSetting"`
	Subject         *LocalSubject    `xml:"Subject,omitempty"`         // The user or group to which these settings apply.
	ExternalSubject *ExternalSubject `xml:"ExternalSubject,omitempty"` // Subject existing external of VCD, to which these settings apply.
	AccessLevel     string           `xml:"AccessLevel"`               // The access level for the subject. One of: FullControl Change ReadOnly Deny (only for a VDC resource)
}

AccessSetting controls access to the resource.

type AccessSettingList

type AccessSettingList struct {
	AccessSetting []*AccessSetting `xml:"AccessSetting"`
}

AccessSettingList is a tagged list of AccessSetting

type AdfsAuthErrorEnvelope

type AdfsAuthErrorEnvelope struct {
	XMLName xml.Name `xml:"Envelope"`
	Body    struct {
		Text  string `xml:",chardata"`
		Fault struct {
			Text string `xml:",chardata"`
			Code struct {
				Text    string `xml:",chardata"`
				Value   string `xml:"Value"`
				Subcode struct {
					Text  string `xml:",chardata"`
					Value struct {
						Text string `xml:",chardata"`
						A    string `xml:"a,attr"`
					} `xml:"Value"`
				} `xml:"Subcode"`
			} `xml:"Code"`
			Reason struct {
				Chardata string `xml:",chardata"`
				Text     struct {
					Text string `xml:",chardata"`
					Lang string `xml:"lang,attr"`
				} `xml:"Text"`
			} `xml:"Reason"`
		} `xml:"Fault"`
	} `xml:"Body"`
}

AdfsAuthErrorEnvelope helps to parse ADFS authentication error with help of Error() method

Note. This structure is not complete and has many more fields.

func (AdfsAuthErrorEnvelope) Error

func (samlErr AdfsAuthErrorEnvelope) Error() string

Error satisfies Go's default `error` interface for AdfsAuthErrorEnvelope and formats error for humand readable output

type AdfsAuthResponseEnvelope

type AdfsAuthResponseEnvelope struct {
	XMLName xml.Name `xml:"Envelope"`
	Body    struct {
		RequestSecurityTokenResponseCollection struct {
			RequestSecurityTokenResponse struct {
				// RequestedSecurityTokenTxt returns data which is accepted by vCD as a SIGN token
				RequestedSecurityTokenTxt InnerXML `xml:"RequestedSecurityToken"`
			} `xml:"RequestSecurityTokenResponse"`
		} `xml:"RequestSecurityTokenResponseCollection"`
	} `xml:"Body"`
}

AdfsAuthResponseEnvelope helps to marshal ADFS reponse to authentication request.

Note. This structure is not complete and has many more fields.

type AdminCatalog

type AdminCatalog struct {
	Catalog
	XMLName                      xml.Name                      `xml:"AdminCatalog"`
	Xmlns                        string                        `xml:"xmlns,attr"`
	PublishExternalCatalogParams *PublishExternalCatalogParams `xml:"PublishExternalCatalogParams,omitempty"`
	CatalogStorageProfiles       *CatalogStorageProfiles       `xml:"CatalogStorageProfiles,omitempty"`
	ExternalCatalogSubscription  *ExternalCatalogSubscription  `xml:"ExternalCatalogSubscriptionParams,omitempty"`
	IsPublished                  bool                          `xml:"IsPublished,omitempty"`
}

AdminCatalog represents the Admin view of a Catalog object. Type: AdminCatalogType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the Admin view of a Catalog object. https://code.vmware.com/apis/287/vcloud#/doc/doc/types/AdminCatalogType.html Since: 0.9

type AdminCatalogRecord

type AdminCatalogRecord CatalogRecord

type AdminOrg

type AdminOrg struct {
	XMLName         xml.Name         `xml:"AdminOrg"`
	Xmlns           string           `xml:"xmlns,attr"`
	HREF            string           `xml:"href,attr,omitempty"`
	Type            string           `xml:"type,attr,omitempty"`
	ID              string           `xml:"id,attr,omitempty"`
	OperationKey    string           `xml:"operationKey,attr,omitempty"`
	Name            string           `xml:"name,attr"`
	Description     string           `xml:"Description,omitempty"`
	FullName        string           `xml:"FullName"`
	IsEnabled       bool             `xml:"IsEnabled,omitempty"`
	Link            LinkList         `xml:"Link,omitempty"`
	Tasks           *TasksInProgress `xml:"Tasks,omitempty"`
	Users           *OrgUserList     `xml:"Users,omitempty"`
	Groups          *OrgGroupList    `xml:"Groups,omitempty"`
	Catalogs        *CatalogsList    `xml:"Catalogs,omitempty"`
	OrgSettings     *OrgSettings     `xml:"Settings,omitempty"`
	Vdcs            *VDCList         `xml:"Vdcs,omitempty"`
	Networks        *NetworksList    `xml:"Networks,omitempty"`
	RightReferences *OrgRoleType     `xml:"RightReferences,omitempty"`
	RoleReferences  *OrgRoleType     `xml:"RoleReferences,omitempty"`
}

AdminOrg represents the admin view of a vCloud Director organization. Type: AdminOrgType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the admin view of a vCloud Director organization. Since: 0.9

type AdminVdc

type AdminVdc struct {
	Xmlns string `xml:"xmlns,attr"`
	Vdc

	VCpuInMhz2                    *int64         `xml:"VCpuInMhz2,omitempty"`
	ResourceGuaranteedMemory      *float64       `xml:"ResourceGuaranteedMemory,omitempty"`
	ResourceGuaranteedCpu         *float64       `xml:"ResourceGuaranteedCpu,omitempty"`
	VCpuInMhz                     *int64         `xml:"VCpuInMhz,omitempty"`
	IsThinProvision               *bool          `xml:"IsThinProvision,omitempty"`
	NetworkPoolReference          *Reference     `xml:"NetworkPoolReference,omitempty"`
	ProviderVdcReference          *Reference     `xml:"ProviderVdcReference"`
	ResourcePoolRefs              *VimObjectRefs `xml:"vmext:ResourcePoolRefs,omitempty"`
	UsesFastProvisioning          *bool          `xml:"UsesFastProvisioning,omitempty"`
	OverCommitAllowed             bool           `xml:"OverCommitAllowed,omitempty"`
	VmDiscoveryEnabled            bool           `xml:"VmDiscoveryEnabled,omitempty"`
	IsElastic                     *bool          `xml:"IsElastic,omitempty"`                     // Supported from 32.0 for the Flex model
	IncludeMemoryOverhead         *bool          `xml:"IncludeMemoryOverhead,omitempty"`         // Supported from 32.0 for the Flex model
	UniversalNetworkPoolReference *Reference     `xml:"UniversalNetworkPoolReference,omitempty"` // Reference to a universal network pool
}

AdminVdc represents the admin view of an organization VDC. Type: AdminVdcType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the admin view of an organization VDC. Since: 0.9

type AdminVdcStorageProfile

type AdminVdcStorageProfile struct {
	Xmlns                     string                         `xml:"xmlns,attr"`
	Name                      string                         `xml:"name,attr"`
	Enabled                   *bool                          `xml:"Enabled,omitempty"`
	Units                     string                         `xml:"Units"`
	Limit                     int64                          `xml:"Limit"`
	Default                   bool                           `xml:"Default"`
	IopsSettings              *VdcStorageProfileIopsSettings `xml:"IopsSettingsint64"`
	StorageUsedMB             int64                          `xml:"StorageUsedMB"`
	IopsAllocated             int64                          `xml:"IopsAllocated"`
	ProviderVdcStorageProfile *Reference                     `xml:"ProviderVdcStorageProfile"`
}

AdminVdcStorageProfile represents the parameters for fetched storage profile Type: AdminVdcStorageProfileType Namespace: http://www.vmware.com/vcloud/v1.5 https://vdc-repo.vmware.com/vmwb-repository/dcr-public/71e12563-bc11-4d64-821d-92d30f8fcfa1/7424bf8e-aec2-44ad-be7d-b98feda7bae0/doc/doc/types/AdminVdcStorageProfileType.html

type AvailableNetworks

type AvailableNetworks struct {
	Network []*Reference `xml:"Network,omitempty"`
}

AvailableNetworks is a container for references to available organization vDC networks. Type: AvailableNetworksType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for references to available organization vDC networks. Since: 0.9

type BodyType

type BodyType int

BodyType allows to define API body types where applicable

const (
	// BodyTypeXML
	BodyTypeXML BodyType = iota

	// BodyTypeJSON
	BodyTypeJSON
)

type Capabilities

type Capabilities struct {
	SupportedHardwareVersions *SupportedHardwareVersions `xml:"SupportedHardwareVersions,omitempty"` // Read-only list of virtual hardware versions supported by this vDC.
}

Capabilities collection of supported hardware capabilities. Type: CapabilitiesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Collection of supported hardware capabilities. Since: 1.5

type CapacityWithUsage

type CapacityWithUsage struct {
	Units     string `xml:"Units"`
	Allocated int64  `xml:"Allocated"`
	Limit     int64  `xml:"Limit"`
	Reserved  int64  `xml:"Reserved,omitempty"`
	Used      int64  `xml:"Used,omitempty"`
}

CapacityWithUsage represents a capacity and usage of a given resource. Type: CapacityWithUsageType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a capacity and usage of a given resource. Since: 0.9

type Catalog

type Catalog struct {
	HREF          string           `xml:"href,attr,omitempty"`
	Type          string           `xml:"type,attr,omitempty"`
	ID            string           `xml:"id,attr,omitempty"`
	OperationKey  string           `xml:"operationKey,attr,omitempty"`
	Name          string           `xml:"name,attr"`
	CatalogItems  []*CatalogItems  `xml:"CatalogItems,omitempty"`
	DateCreated   string           `xml:"DateCreated,omitempty"`
	Description   string           `xml:"Description,omitempty"`
	IsPublished   bool             `xml:"IsPublished,omitempty"`
	Link          LinkList         `xml:"Link,omitempty"`
	Owner         *Owner           `xml:"Owner,omitempty"`
	Tasks         *TasksInProgress `xml:"Tasks,omitempty"`
	VersionNumber int64            `xml:"VersionNumber,omitempty"`
}

Catalog represents the user view of a Catalog object. Type: CatalogType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the user view of a Catalog object. https://code.vmware.com/apis/287/vcloud#/doc/doc/types/CatalogType.html Since: 0.9

type CatalogItem

type CatalogItem struct {
	HREF          string           `xml:"href,attr,omitempty"`
	Type          string           `xml:"type,attr,omitempty"`
	ID            string           `xml:"id,attr,omitempty"`
	OperationKey  string           `xml:"operationKey,attr,omitempty"`
	Name          string           `xml:"name,attr"`
	Size          int64            `xml:"size,attr,omitempty"`
	DateCreated   string           `xml:"DateCreated,omitempty"`
	Description   string           `xml:"Description,omitempty"`
	Entity        *Entity          `xml:"Entity"`
	Link          LinkList         `xml:"Link,omitempty"`
	Tasks         *TasksInProgress `xml:"Tasks,omitempty"`
	VersionNumber int64            `xml:"VersionNumber,omitempty"`
}

CatalogItem contains a reference to a VappTemplate or Media object and related metadata. Type: CatalogItemType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Contains a reference to a VappTemplate or Media object and related metadata. Since: 0.9

type CatalogItems

type CatalogItems struct {
	CatalogItem []*Reference `xml:"CatalogItem"`
}

CatalogItems is a container for references to catalog items. Type: CatalogItemsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for references to catalog items. Since: 0.9

type CatalogRecord

type CatalogRecord struct {
	HREF                    string    `xml:"href,attr,omitempty"`
	ID                      string    `xml:"id,attr,omitempty"`
	Type                    string    `xml:"type,attr,omitempty"`
	Name                    string    `xml:"name,attr,omitempty"`
	Description             string    `xml:"description,attr,omitempty"`
	IsPublished             bool      `xml:"isPublished,attr,omitempty"`
	IsShared                bool      `xml:"isShared,attr,omitempty"`
	CreationDate            string    `xml:"creationDate,attr,omitempty"`
	OrgName                 string    `xml:"orgName,attr,omitempty"`
	OwnerName               string    `xml:"ownerName,attr,omitempty"`
	NumberOfVAppTemplates   int64     `xml:"numberOfVAppTemplates,attr,omitempty"`
	NumberOfMedia           int64     `xml:"numberOfMedia,attr,omitempty"`
	Owner                   string    `xml:"owner,attr,omitempty"`
	PublishSubscriptionType string    `xml:"publishSubscriptionType,attr,omitempty"`
	Version                 int64     `xml:"version,attr,omitempty"`
	Status                  string    `xml:"status,attr,omitempty"`
	Link                    *Link     `xml:"Link,omitempty"`
	Metadata                *Metadata `xml:"Metadata,omitempty"`
}

Type: AdminCatalogRecord Namespace: http://www.vmware.com/vcloud/v1.5 https://code.vmware.com/apis/287/vcloud#/doc/doc/types/QueryResultCatalogRecordType.html Issue that description partly matches with what is returned Description: Represents Catalog record Since: 1.5

type CatalogStorageProfiles

type CatalogStorageProfiles struct {
	VdcStorageProfile []*Reference `xml:"VdcStorageProfile,omitempty"`
}

CatalogStorageProfiles represents a container for storage profiles used by this catalog Type: CatalogStorageProfiles Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a container for storage profiles used by this catalog Since: 5.5

type CatalogsList

type CatalogsList struct {
	Catalog []*Reference `xml:"CatalogReference,omitempty"`
}

CatalogsList contains a list of references to Org Catalogs Type: CatalogsListType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of organization Catalogs. Since: 0.9

type ComposeVAppParams

type ComposeVAppParams struct {
	XMLName xml.Name `xml:"ComposeVAppParams"`
	Ovf     string   `xml:"xmlns:ovf,attr"`
	Xsi     string   `xml:"xmlns:xsi,attr"`
	Xmlns   string   `xml:"xmlns,attr"`
	// Attributes
	Name        string `xml:"name,attr,omitempty"`        // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified.
	Deploy      bool   `xml:"deploy,attr"`                // True if the vApp should be deployed at instantiation. Defaults to true.
	PowerOn     bool   `xml:"powerOn,attr"`               // True if the vApp should be powered-on at instantiation. Defaults to true.
	LinkedClone bool   `xml:"linkedClone,attr,omitempty"` // Reserved. Unimplemented.
	// Elements
	Description         string                       `xml:"Description,omitempty"`         // Optional description.
	VAppParent          *Reference                   `xml:"VAppParent,omitempty"`          // Reserved. Unimplemented.
	InstantiationParams *InstantiationParams         `xml:"InstantiationParams,omitempty"` // Instantiation parameters for the composed vApp.
	SourcedItem         *SourcedCompositionItemParam `xml:"SourcedItem,omitempty"`         // Composition item. One of: vApp vAppTemplate Vm.
	AllEULAsAccepted    bool                         `xml:"AllEULAsAccepted,omitempty"`    // True confirms acceptance of all EULAs in a vApp template. Instantiation fails if this element is missing, empty, or set to false and one or more EulaSection elements are present.
}

ComposeVAppParams represents vApp composition parameters Type: ComposeVAppParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents vApp composition parameters. Since: 0.9

type ComputeCapacity

type ComputeCapacity struct {
	CPU    *CapacityWithUsage `xml:"Cpu"`
	Memory *CapacityWithUsage `xml:"Memory"`
}

ComputeCapacity represents VDC compute capacity. Type: ComputeCapacityType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents VDC compute capacity. Since: 0.9

type ComputePolicy

type ComputePolicy struct {
	HREF                   string     `xml:"href,attr,omitempty"`
	Type                   string     `xml:"type,attr,omitempty"`
	Link                   *Link      `xml:"Link,omitempty"`                   // A reference to an entity or operation associated with this object.
	VmPlacementPolicy      *Reference `xml:"VmPlacementPolicy,omitempty"`      // VdcComputePolicy that defines VM's placement on a host through various affinity constraints.
	VmPlacementPolicyFinal *bool      `xml:"VmPlacementPolicyFinal,omitempty"` // True indicates that the placement policy cannot be removed from a VM that is instantiated with it. This value defaults to false.
	VmSizingPolicy         *Reference `xml:"VmSizingPolicy,omitempty"`         // VdcComputePolicy that defines VM's sizing and resource allocation.
	VmSizingPolicyFinal    *bool      `xml:"VmSizingPolicyFinal,omitempty"`    // True indicates that the sizing policy cannot be removed from a VM that is instantiated with it. This value defaults to false.
}

ComputePolicy represents structure to manage VM compute polices, part of RecomposeVAppParams structure.

type ControlAccessParams

type ControlAccessParams struct {
	XMLName             xml.Name           `xml:"ControlAccessParams"`
	Xmlns               string             `xml:"xmlns,attr"`
	IsSharedToEveryone  bool               `xml:"IsSharedToEveryone"`            // If true, the resource is shared with everyone in the organization. Defaults to false.
	EveryoneAccessLevel *string            `xml:"EveryoneAccessLevel,omitempty"` // If IsSharedToEveryone is true, this element must be present to specify the access level. for all members of the organization. One of: FullControl Change ReadOnly
	AccessSettings      *AccessSettingList `xml:"AccessSettings,omitempty"`      // The access settings to be applied if IsSharedToEveryone is false. Required on create and modify if IsSharedToEveryone is false.
}

ControlAccessParams specifies access controls for a resource.

type CpuResourceMhz

type CpuResourceMhz struct {
	Configured  int64  `xml:"Configured"`            // The amount of resource configured on the virtual machine.
	Reservation *int64 `xml:"Reservation,omitempty"` // The amount of reservation of this resource on the underlying virtualization infrastructure.
	Limit       *int64 `xml:"Limit,omitempty"`       // The limit for how much of this resource can be consumed on the underlying virtualization infrastructure. This is only valid when the resource allocation is not unlimited.
	SharesLevel string `xml:"SharesLevel,omitempty"` //	Pre-determined relative priorities according to which the non-reserved portion of this resource is made available to the virtualized workload.
	Shares      *int   `xml:"Shares,omitempty"`      // Custom priority for the resource. This field is read-only, unless the shares level is CUSTOM.
}

CpuResourceMhz from VM/VmSpecSection struct

type CreateItem

type CreateItem struct {
	Name                      string                     `xml:"name,attr,omitempty"`
	Description               string                     `xml:"Description,omitempty"`
	GuestCustomizationSection *GuestCustomizationSection `xml:"GuestCustomizationSection,omitempty"`
	NetworkConnectionSection  *NetworkConnectionSection  `xml:"NetworkConnectionSection,omitempty"`
	VmSpecSection             *VmSpecSection             `xml:"VmSpecSection,omitempty"`
	StorageProfile            *Reference                 `xml:"StorageProfile,omitempty"`
	ComputePolicy             *ComputePolicy             `xml:"ComputePolicy,omitempty"` // accessible only from version API 33.0
	BootImage                 *Media                     `xml:"Media,omitempty"`         // boot image as vApp template. Href, Id and name needed.
}

CreateItem represents structure to create VM, part of RecomposeVAppParams structure.

type CustomOrgLdapSettings

type CustomOrgLdapSettings struct {
	HREF string   `xml:"href,attr,omitempty"` // The URI of the entity.
	Type string   `xml:"type,attr,omitempty"` // The MIME type of the entity.
	Link LinkList `xml:"Link,omitempty"`      // A reference to an entity or operation associated with this object.

	HostName                 string                  `xml:"HostName,omitempty"`
	Port                     int                     `xml:"Port"`
	IsSsl                    bool                    `xml:"IsSsl,omitempty"`
	IsSslAcceptAll           bool                    `xml:"IsSslAcceptAll,omitempty"`
	SearchBase               string                  `xml:"SearchBase,omitempty"`
	Username                 string                  `xml:"UserName,omitempty"`
	Password                 string                  `xml:"Password,omitempty"`
	AuthenticationMechanism  string                  `xml:"AuthenticationMechanism"`
	IsGroupSearchBaseEnabled bool                    `xml:"IsGroupSearchBaseEnabled"`
	GroupSearchBase          string                  `xml:"GroupSearchBase,omitempty"`
	ConnectorType            string                  `xml:"ConnectorType"`   // Defines LDAP service implementation type
	UserAttributes           *OrgLdapUserAttributes  `xml:"UserAttributes"`  // Defines how LDAP attributes are used when importing a user.
	GroupAttributes          *OrgLdapGroupAttributes `xml:"GroupAttributes"` // Defines how LDAP attributes are used when importing a group.
	UseExternalKerberos      bool                    `xml:"UseExternalKerberos"`

	Realm string `xml:"Realm,omitempty"`
}

CustomOrgLdapSettings represents the custom ldap settings for a vCloud Director organization. Type: CustomOrgLdapSettingsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the custom ldap settings of a vCloud Director organization. Since: 0.9 Note. Order of these fields matter and API will error if it is changed

type CustomizationSection

type CustomizationSection struct {
	// FIXME: OVF Section needs to be laid down correctly
	Info string `xml:"ovf:Info"`
	//
	GoldMaster             bool     `xml:"goldMaster,attr,omitempty"`
	HREF                   string   `xml:"href,attr,omitempty"`
	Type                   string   `xml:"type,attr,omitempty"`
	CustomizeOnInstantiate bool     `xml:"CustomizeOnInstantiate"`
	Link                   LinkList `xml:"Link,omitempty"`
}

CustomizationSection represents a vApp template customization settings. Type: CustomizationSectionType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a vApp template customization settings. Since: 1.0

type DefaultStorageProfileSection

type DefaultStorageProfileSection struct {
	StorageProfile string `xml:"StorageProfile,omitempty"`
}

DefaultStorageProfileSection is the name of the storage profile that will be specified for this virtual machine. The named storage profile must exist in the organization vDC that contains the virtual machine. If not specified, the default storage profile for the vDC is used. Type: DefaultStorageProfileSection_Type Namespace: http://www.vmware.com/vcloud/v1.5 Description: Name of the storage profile that will be specified for this virtual machine. The named storage profile must exist in the organization vDC that contains the virtual machine. If not specified, the default storage profile for the vDC is used. Since: 5.1

type DeleteItem

type DeleteItem struct {
	HREF string `xml:"href,attr,omitempty"`
}

type DeployVAppParams

type DeployVAppParams struct {
	XMLName xml.Name `xml:"DeployVAppParams"`
	Xmlns   string   `xml:"xmlns,attr"`
	// Attributes
	PowerOn                bool `xml:"powerOn,attr"`                          // Used to specify whether to power on vapp on deployment, if not set default value is true.
	DeploymentLeaseSeconds int  `xml:"deploymentLeaseSeconds,attr,omitempty"` // Lease in seconds for deployment. A value of 0 is replaced by the organization default deploymentLeaseSeconds value.
	ForceCustomization     bool `xml:"forceCustomization,attr,omitempty"`     // Used to specify whether to force customization on deployment, if not set default value is false
}

DeployVAppParams are the parameters to a deploy vApp request Type: DeployVAppParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Parameters to a deploy vApp request. Since: 0.9

type DhcpPoolService

type DhcpPoolService struct {
	IsEnabled        bool       `xml:"IsEnabled,omitempty"`        // True if this DHCP Pool is enabled.
	Network          *Reference `xml:"Network"`                    // Org vDC network to which the DHCP range is applicable.
	DefaultLeaseTime int        `xml:"DefaultLeaseTime,omitempty"` // Default lease period for DHCP range.
	MaxLeaseTime     int        `xml:"MaxLeaseTime"`               // Maximum lease period for DHCP range.
	LowIPAddress     string     `xml:"LowIpAddress"`               // Low IP address in DHCP range.
	HighIPAddress    string     `xml:"HighIpAddress"`              // High IP address in DHCP range.
}

DhcpPoolService represents DHCP pool service. Type: DhcpPoolServiceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents DHCP pool service. Since: 5.1

type DhcpService

type DhcpService struct {
	IsEnabled           bool     `xml:"IsEnabled"`                     // Enable or disable the service using this flag
	DefaultLeaseTime    int      `xml:"DefaultLeaseTime,omitempty"`    // Default lease in seconds for DHCP addresses.
	MaxLeaseTime        int      `xml:"MaxLeaseTime"`                  //	Max lease in seconds for DHCP addresses.
	IPRange             *IPRange `xml:"IpRange"`                       //	IP range for DHCP addresses.
	RouterIP            string   `xml:"RouterIp,omitempty"`            // Router IP.
	SubMask             string   `xml:"SubMask,omitempty"`             // The subnet mask.
	PrimaryNameServer   string   `xml:"PrimaryNameServer,omitempty"`   // The primary name server.
	SecondaryNameServer string   `xml:"SecondaryNameServer,omitempty"` // The secondary name server.
	DomainName          string   `xml:"DomainName,omitempty"`          //	The domain name.
}

DhcpService represents a DHCP network service. Type: DhcpServiceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a DHCP network service. Since:

type Disk

type Disk struct {
	XMLName         xml.Name         `xml:"Disk"`
	Xmlns           string           `xml:"xmlns,attr,omitempty"`
	HREF            string           `xml:"href,attr,omitempty"`
	Type            string           `xml:"type,attr,omitempty"`
	Id              string           `xml:"id,attr,omitempty"`
	OperationKey    string           `xml:"operationKey,attr,omitempty"`
	Name            string           `xml:"name,attr"`
	Status          int              `xml:"status,attr,omitempty"`
	Size            int64            `xml:"size,attr"`
	Iops            *int             `xml:"iops,attr,omitempty"`
	BusType         string           `xml:"busType,attr,omitempty"`
	BusSubType      string           `xml:"busSubType,attr,omitempty"`
	Description     string           `xml:"Description,omitempty"`
	Files           *FilesList       `xml:"Files,omitempty"`
	Link            []*Link          `xml:"Link,omitempty"`
	Owner           *Owner           `xml:"Owner,omitempty"`
	StorageProfile  *Reference       `xml:"StorageProfile,omitempty"`
	Tasks           *TasksInProgress `xml:"Tasks,omitempty"`
	VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"`
}

Represents an independent disk Reference: vCloud API 30.0 - DiskType https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/DiskType.html

type DiskAttachOrDetachParams

type DiskAttachOrDetachParams struct {
	XMLName         xml.Name         `xml:"DiskAttachOrDetachParams"`
	Xmlns           string           `xml:"xmlns,attr,omitempty"`
	Disk            *Reference       `xml:"Disk"`
	BusNumber       *int             `xml:"BusNumber,omitempty"`
	UnitNumber      *int             `xml:"UnitNumber,omitempty"`
	VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"`
}

Parameters for attaching or detaching an independent disk Reference: vCloud API 30.0 - DiskAttachOrDetachParamsType https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/DiskAttachOrDetachParamsType.html

type DiskCreateParams

type DiskCreateParams struct {
	XMLName         xml.Name         `xml:"DiskCreateParams"`
	Xmlns           string           `xml:"xmlns,attr,omitempty"`
	Disk            *Disk            `xml:"Disk"`
	Locality        *Reference       `xml:"Locality,omitempty"`
	VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"`
}

DiskCreateParams element for create independent disk Reference: vCloud API 30.0 - DiskCreateParamsType https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/DiskCreateParamsType.html

type DiskRecordType

type DiskRecordType struct {
	Xmlns              string  `xml:"xmlns,attr,omitempty"`
	HREF               string  `xml:"href,attr,omitempty"`
	Id                 string  `xml:"id,attr,omitempty"`
	Type               string  `xml:"type,attr,omitempty"`
	Name               string  `xml:"name,attr,omitempty"`
	Vdc                string  `xml:"vdc,attr,omitempty"`
	SizeB              int64   `xml:"sizeB,attr,omitempty"`
	DataStore          string  `xml:"dataStore,attr,omitempty"`
	DataStoreName      string  `xml:"datastoreName,attr,omitempty"`
	OwnerName          string  `xml:"ownerName,attr,omitempty"`
	VdcName            string  `xml:"vdcName,attr,omitempty"`
	Task               string  `xml:"task,attr,omitempty"`
	StorageProfile     string  `xml:"storageProfile,attr,omitempty"`
	StorageProfileName string  `xml:"storageProfileName,attr,omitempty"`
	Status             string  `xml:"status,attr,omitempty"`
	BusType            string  `xml:"busType,attr,omitempty"`
	BusSubType         string  `xml:"busSubType,attr,omitempty"`
	BusTypeDesc        string  `xml:"busTypeDesc,attr,omitempty"`
	IsAttached         bool    `xml:"isAttached,attr,omitempty"`
	Description        string  `xml:"description,attr,omitempty"`
	Link               []*Link `xml:"Link,omitempty"`
}

Represents an independent disk record Reference: vCloud API 27.0 - DiskType https://code.vmware.com/apis/287/vcloud#/doc/doc/types/QueryResultDiskRecordType.html

type DiskSection

type DiskSection struct {
	DiskSettings []*DiskSettings `xml:"DiskSettings"`
}

DiskSection from VM/VmSpecSection struct

type DiskSettings

type DiskSettings struct {
	DiskId              string     `xml:"DiskId,omitempty"`              // Specifies a unique identifier for this disk in the scope of the corresponding VM. This element is optional when creating a VM, but if it is provided it should be unique. This element is mandatory when updating an existing disk.
	SizeMb              int64      `xml:"SizeMb"`                        // The size of the disk in MB.
	UnitNumber          int        `xml:"UnitNumber"`                    // The device number on the SCSI or IDE controller of the disk.
	BusNumber           int        `xml:"BusNumber"`                     //	The number of the SCSI or IDE controller itself.
	AdapterType         string     `xml:"AdapterType"`                   // The type of disk controller, e.g. IDE vs SCSI and if SCSI bus-logic vs LSI logic.
	ThinProvisioned     *bool      `xml:"ThinProvisioned,omitempty"`     // Specifies whether the disk storage is pre-allocated or allocated on demand.
	Disk                *Reference `xml:"Disk,omitempty"`                // Specifies reference to a named disk.
	StorageProfile      *Reference `xml:"StorageProfile,omitempty"`      // Specifies reference to a storage profile to be associated with the disk.
	OverrideVmDefault   bool       `xml:"overrideVmDefault"`             // Specifies that the disk storage profile overrides the VM's default storage profile.
	Iops                *int64     `xml:"iops,omitempty"`                // Specifies the IOPS for the disk.
	VirtualQuantity     *int64     `xml:"VirtualQuantity,omitempty"`     // The actual size of the disk.
	VirtualQuantityUnit string     `xml:"VirtualQuantityUnit,omitempty"` // The units in which VirtualQuantity is measured.
}

DiskSettings from VM/VmSpecSection/DiskSection struct

type EdgeDhcpLease

type EdgeDhcpLease struct {
	XMLName        xml.Name             `xml:"dhcpLeaseInfo"`
	DhcpLeaseInfos []*EdgeDhcpLeaseInfo `xml:"leaseInfo"`
}

EdgeDhcpLease holds a list of EdgeDhcpLeaseInfo

type EdgeDhcpLeaseInfo

type EdgeDhcpLeaseInfo struct {
	// Uid statement records the client identifier used by the client to acquire the lease. Clients
	// are not required to send client identifiers, and this statement only appears if the client
	// did in fact send one.
	Uid string `xml:"uid"`
	// MacAddress holds hardware (MAC) address of requester (e.g. "00:50:56:01:29:c8")
	MacAddress string `xml:"macAddress"`
	// IpAddress holds the IP address assigned to a particular MAC address (e.g. "10.10.10.100")
	IpAddress string `xml:"ipAddress"`
	// ClientHostname Most DHCP clients will send their hostname in the host-name option. If a
	// client sends its hostname in this way, the hostname is recorded on the lease with a
	// client-hostname statement. This is not required by the protocol, however, so many specialized
	// DHCP clients do not send a host-name option.
	ClientHostname string `xml:"clientHostname"`
	// BindingState declares the lease’s binding state. When the DHCP server is not configured to
	// use the failover protocol, a lease’s binding state may be active, free or abandoned. The
	// failover protocol adds some additional transitional states, as well as the backup state,
	// which indicates that the lease is available for allocation by the failover secondary
	BindingState string `xml:"bindingState"`
	// NextBindingState statement indicates what state the lease will move to when the current state
	// expires. The time when the current state expires is specified in the ends statement.
	NextBindingState string `xml:"nextBindingState"`
	// Cltt holds value of clients last transaction time (format is "weekday year/month/day
	// hour:minute:second", e.g. "2 2019/12/17 06:12:03")
	Cltt string `xml:"cltt"`
	// Starts holds the start time of a lease (format is "weekday year/month/day
	// hour:minute:second", e.g. "2 2019/12/17 06:12:03")
	Starts string `xml:"starts"`
	// Ends holds the end time of a lease (format is "weekday year/month/day hour:minute:second",
	// e.g. "3 2019/12/18 06:12:03")
	Ends string `xml:"ends"`
	// HardwareType holds type of hardware, usually "ethernet"
	HardwareType string `xml:"hardwareType"`
}

EdgeDhcpLeaseInfo contains information about DHCP leases provided by NSX-V edge gateway

type EdgeDhcpRelay

type EdgeDhcpRelay struct {
	XMLName xml.Name `xml:"relay"`
	// RelayServer specifies external relay server(s) to which DHCP messages are to be relayed to.
	// The relay server can be an IP set, IP address block, domain, or a combination of all of
	// these. Messages are relayed to each listed DHCP server.
	RelayServer *EdgeDhcpRelayServer `xml:"relayServer"`
	// EdgeDhcRelayAgents  specifies a list of edge gateway interfaces (vNics) from which DHCP
	// messages are to be relayed to the external DHCP relay server(s) with optional gateway
	// interface addresses.
	RelayAgents *EdgeDhcpRelayAgents `xml:"relayAgents"`
}

EdgeDhcpRelay - Dynamic Host Configuration Protocol (DHCP) relay enables you to leverage your existing DHCP infrastructure from within NSX without any interruption to the IP address management in your environment. DHCP messages are relayed from virtual machine(s) to the designated DHCP server(s) in the physical world. This enables IP addresses within NSX to continue to be in sync with IP addresses in other environments.

type EdgeDhcpRelayAgent

type EdgeDhcpRelayAgent struct {
	// VnicIndex must specify vNic adapter index on the edge gateway
	VnicIndex *int `xml:"vnicIndex"`
	// GatewayInterfaceAddress holds a gateway interface address. Optional, defaults to the vNic
	// primary address.
	GatewayInterfaceAddress string `xml:"giAddress,omitempty"`
}

EdgeDhcpRelayAgent specifies which edge gateway interface (vNic) from which DHCP messages are to be relayed to the external DHCP relay server(s) with an optional gateway interface address.

type EdgeDhcpRelayAgents

type EdgeDhcpRelayAgents struct {
	Agents []EdgeDhcpRelayAgent `xml:"relayAgent"`
}

EdgeDhcpRelayAgents holds a slice of EdgeDhcpRelayAgent

type EdgeDhcpRelayServer

type EdgeDhcpRelayServer struct {
	// GroupingObjectIds is a general concept in NSX which allows to pass in many types of objects
	// (like VM IDs, IP set IDs, org networks, security groups) howether in this case it accepts
	// only IP sets which have IDs specified as 'f9daf2da-b4f9-4921-a2f4-d77a943a381c:ipset-2' where
	// first part is vDC ID and the second part is unique IP set ID
	GroupingObjectId []string `xml:"groupingObjectId,omitempty"`
	// IpAddresses holds a list of IP addresses for DHCP servers
	IpAddress []string `xml:"ipAddress,omitempty"`
	// Fqdn holds a list of FQDNs (fully qualified domain names)
	Fqdns []string `xml:"fqdn,omitempty"`
}

type EdgeFirewallApplication

type EdgeFirewallApplication struct {
	ID       string                           `xml:"applicationId,omitempty"`
	Services []EdgeFirewallApplicationService `xml:"service,omitempty"`
}

EdgeFirewallApplication Wraps []EdgeFirewallApplicationService for multiple protocol/port specification

type EdgeFirewallApplicationService

type EdgeFirewallApplicationService struct {
	Protocol   string `xml:"protocol,omitempty"`
	Port       string `xml:"port,omitempty"`
	SourcePort string `xml:"sourcePort,omitempty"`
}

EdgeFirewallApplicationService defines port/protocol details for one service in EdgeFirewallRule

type EdgeFirewallEndpoint

type EdgeFirewallEndpoint struct {
	Exclude           bool     `xml:"exclude"`
	VnicGroupIds      []string `xml:"vnicGroupId,omitempty"`
	GroupingObjectIds []string `xml:"groupingObjectId,omitempty"`
	IpAddresses       []string `xml:"ipAddress,omitempty"`
}

EdgeFirewallEndpoint can contains slices of objects for source or destination in EdgeFirewall

type EdgeFirewallRule

type EdgeFirewallRule struct {
	XMLName         xml.Name                `xml:"firewallRule" `
	ID              string                  `xml:"id,omitempty"`
	Name            string                  `xml:"name,omitempty"`
	RuleType        string                  `xml:"ruleType,omitempty"`
	RuleTag         string                  `xml:"ruleTag,omitempty"`
	Source          EdgeFirewallEndpoint    `xml:"source" `
	Destination     EdgeFirewallEndpoint    `xml:"destination"`
	Application     EdgeFirewallApplication `xml:"application"`
	MatchTranslated *bool                   `xml:"matchTranslated,omitempty"`
	Direction       string                  `xml:"direction,omitempty"`
	Action          string                  `xml:"action,omitempty"`
	Enabled         bool                    `xml:"enabled"`
	LoggingEnabled  bool                    `xml:"loggingEnabled"`
}

EdgeFirewall holds data for creating firewall rule using proxied NSX-V API https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

type EdgeGateway

type EdgeGateway struct {
	// Attributes
	Xmlns        string `xml:"xmlns,attr,omitempty"`
	HREF         string `xml:"href,attr,omitempty"`         // The URI of the entity.
	Type         string `xml:"type,attr,omitempty"`         // The MIME type of the entity.
	ID           string `xml:"id,attr,omitempty"`           // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused
	OperationKey string `xml:"operationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations.
	Name         string `xml:"name,attr"`                   // The name of the entity.
	Status       int    `xml:"status,attr,omitempty"`       // Creation status of the gateway. One of: 0 (The gateway is still being created) 1 (The gateway is ready) -1 (There was an error while creating the gateway).
	// Elements
	Link          LinkList              `xml:"Link,omitempty"`        // A link to an operation on this section.
	Description   string                `xml:"Description,omitempty"` // Optional description.
	Tasks         *TasksInProgress      `xml:"Tasks,omitempty"`       //	A list of queued, running, or recently completed tasks associated with this entity.
	Configuration *GatewayConfiguration `xml:"Configuration"`         // Gateway configuration.
}

EdgeGateway represents a gateway. Element: EdgeGateway Type: GatewayType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a gateway. Since: 5.1

type EdgeGatewayInterfaces

type EdgeGatewayInterfaces struct {
	XMLName       xml.Name `xml:"edgeInterfaces"`
	EdgeInterface []struct {
		Name             string `xml:"name"`
		Type             string `xml:"type"`
		Index            *int   `xml:"index"`
		NetworkReference struct {
			ID   string `xml:"id"`
			Name string `xml:"name"`
			Type string `xml:"type"`
		} `xml:"networkReference"`
		AddressGroups struct {
			AddressGroup struct {
				PrimaryAddress     string `xml:"primaryAddress"`
				SubnetMask         string `xml:"subnetMask"`
				SubnetPrefixLength string `xml:"subnetPrefixLength"`
				SecondaryAddresses struct {
					IpAddress []string `xml:"ipAddress"`
				} `xml:"secondaryAddresses"`
			} `xml:"addressGroup"`
		} `xml:"addressGroups"`
		PortgroupId   string `xml:"portgroupId"`
		PortgroupName string `xml:"portgroupName"`
		IsConnected   string `xml:"isConnected"`
		TunnelId      string `xml:"tunnelId"`
	} `xml:"edgeInterface"`
}

EdgeGatewayInterfaces is a data structure holding information of vNic configuration in NSX-V edge gateway using "/network/edges/edge_id/vdcNetworks" endpoint

type EdgeGatewayServiceConfiguration

type EdgeGatewayServiceConfiguration struct {
	XMLName                xml.Name                `xml:"EdgeGatewayServiceConfiguration"`
	Xmlns                  string                  `xml:"xmlns,attr,omitempty"`
	GatewayDhcpService     *GatewayDhcpService     `xml:"GatewayDhcpService,omitempty"`
	FirewallService        *FirewallService        `xml:"FirewallService,omitempty"`
	NatService             *NatService             `xml:"NatService,omitempty"`
	GatewayIpsecVpnService *GatewayIpsecVpnService `xml:"GatewayIpsecVpnService,omitempty"` // Substitute for NetworkService. Gateway Ipsec VPN service settings
}
type EdgeGatewayUplinks struct {
	// UplinkID contains ID of external network
	UplinkID string `json:"uplinkId,omitempty"`
	// UplinkID contains Name of external network
	UplinkName string `json:"uplinkName,omitempty"`
	// Subnets contain subnets to be used on edge gateway
	Subnets   OpenAPIEdgeGatewaySubnets `json:"subnets,omitempty"`
	Connected bool                      `json:"connected,omitempty"`
	// QuickAddAllocatedIPCount allows to allocate additional IPs during update
	QuickAddAllocatedIPCount int `json:"quickAddAllocatedIpCount,omitempty"`
	// Dedicated defines if the external network is dedicated. Dedicating the External Network will enable Route
	// Advertisement for this Edge Gateway
	Dedicated bool `json:"dedicated,omitempty"`
}

EdgeGatewayUplink defines uplink connections for the edge gateway.

type EdgeGatewayVnics

type EdgeGatewayVnics struct {
	XMLName xml.Name `xml:"vnics"`
	Vnic    []struct {
		Label         string `xml:"label"`
		Name          string `xml:"name"`
		AddressGroups struct {
			AddressGroup struct {
				PrimaryAddress     string `xml:"primaryAddress,omitempty"`
				SecondaryAddresses struct {
					IpAddress []string `xml:"ipAddress,omitempty"`
				} `xml:"secondaryAddresses,omitempty"`
				SubnetMask         string `xml:"subnetMask,omitempty"`
				SubnetPrefixLength string `xml:"subnetPrefixLength,omitempty"`
			} `xml:"addressGroup,omitempty"`
		} `xml:"addressGroups,omitempty"`
		Mtu                 string `xml:"mtu,omitempty"`
		Type                string `xml:"type,omitempty"`
		IsConnected         string `xml:"isConnected,omitempty"`
		Index               *int   `xml:"index"`
		PortgroupId         string `xml:"portgroupId,omitempty"`
		PortgroupName       string `xml:"portgroupName,omitempty"`
		EnableProxyArp      string `xml:"enableProxyArp,omitempty"`
		EnableSendRedirects string `xml:"enableSendRedirects,omitempty"`
		SubInterfaces       struct {
			SubInterface []struct {
				IsConnected         string `xml:"isConnected,omitempty"`
				Label               string `xml:"label,omitempty"`
				Name                string `xml:"name,omitempty"`
				Index               *int   `xml:"index,omitempty"`
				TunnelId            string `xml:"tunnelId,omitempty"`
				LogicalSwitchId     string `xml:"logicalSwitchId,omitempty"`
				LogicalSwitchName   string `xml:"logicalSwitchName,omitempty"`
				EnableSendRedirects string `xml:"enableSendRedirects,omitempty"`
				Mtu                 string `xml:"mtu,omitempty"`
				AddressGroups       struct {
					AddressGroup struct {
						PrimaryAddress     string `xml:"primaryAddress,omitempty"`
						SubnetMask         string `xml:"subnetMask,omitempty"`
						SubnetPrefixLength string `xml:"subnetPrefixLength,omitempty"`
					} `xml:"addressGroup,omitempty"`
				} `xml:"addressGroups,omitempty"`
			} `xml:"subInterface,omitempty"`
		} `xml:"subInterfaces,omitempty"`
	} `xml:"vnic,omitempty"`
}

EdgeGatewayVnics is a data structure holding information of vNic configuration in NSX-V edge gateway using "/network/edges/edge_id/vnics" endpoint

type EdgeIpSet

type EdgeIpSet struct {
	XMLName xml.Name `xml:"ipset"`
	// ID holds composite ID of IP set which is formatted as
	// 'f9daf2da-b4f9-4921-a2f4-d77a943a381c:ipset-4' where the first segment before colon is vDC id
	// and the second one is IP set ID
	ID string `xml:"objectId,omitempty"`
	// Name is mandatory and must be unique
	Name string `xml:"name"`
	// Description - optional
	Description string `xml:"description,omitempty"`
	// IPAddresses is a mandatory field with comma separated values. The API is known to re-order
	// data after submiting and may shuffle components even if re-submitted as it was return from
	// API itself
	// (eg: "192.168.200.1,192.168.200.1/24,192.168.200.1-192.168.200.24")
	IPAddresses string `xml:"value"`
	// InheritanceAllowed defines visibility at underlying scopes
	InheritanceAllowed *bool `xml:"inheritanceAllowed"`
	// Revision is a "version" of IP set configuration. During read current revision is being
	// returned and when update is performed this latest version must be sent as it validates if no
	// updates ocurred in between. When not the latest version is being sent during update one can
	// expect similar error response from API: "The object ipset-27 used in this operation has an
	// older version 0 than the current system version 1. Refresh UI or fetch the latest copy of the
	// object and retry operation."
	Revision *int `xml:"revision,omitempty"`
}

EdgeIpSet defines a group of IP addresses that you can add as the source or destination in a firewall rule or in DHCP relay configuration. The object itself has more fields in API response, however vCD UI only uses the below mentioned. It looks as if the other fields are used in NSX internally and are simply proxied back.

Note. Only advanced edge gateways support IP sets

type EdgeIpSets

type EdgeIpSets []*EdgeIpSet

EdgeIpSets is a slice of pointers to EdgeIpSet

type EdgeNatRule

type EdgeNatRule struct {
	XMLName           xml.Name `xml:"natRule"`
	ID                string   `xml:"ruleId,omitempty"`
	RuleType          string   `xml:"ruleType,omitempty"`
	RuleTag           string   `xml:"ruleTag,omitempty"`
	Action            string   `xml:"action"`
	Vnic              *int     `xml:"vnic,omitempty"`
	OriginalAddress   string   `xml:"originalAddress"`
	TranslatedAddress string   `xml:"translatedAddress"`
	LoggingEnabled    bool     `xml:"loggingEnabled"`
	Enabled           bool     `xml:"enabled"`
	Description       string   `xml:"description,omitempty"`
	Protocol          string   `xml:"protocol,omitempty"`
	OriginalPort      string   `xml:"originalPort,omitempty"`
	TranslatedPort    string   `xml:"translatedPort,omitempty"`
	IcmpType          string   `xml:"icmpType,omitempty"`
}

EdgeNatRule contains shared structure for SNAT and DNAT rule configuration using NSX-V proxied edge gateway endpoint https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

type Entity

type Entity struct {
	HREF         string           `xml:"href,attr,omitempty"`
	Type         string           `xml:"type,attr,omitempty"`
	ID           string           `xml:"id,attr,omitempty"`
	OperationKey string           `xml:"operationKey,attr,omitempty"`
	Name         string           `xml:"name,attr"`
	Description  string           `xml:"Description,omitempty"`
	Link         LinkList         `xml:"Link,omitempty"`
	Tasks        *TasksInProgress `xml:"Tasks,omitempty"`
}

Entity is a basic entity type in the vCloud object model. Includes a name, an optional description, and an optional list of links. Type: EntityType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Basic entity type in the vCloud object model. Includes a name, an optional description, and an optional list of links. Since: 0.9

type Error

type Error struct {
	Message                 string `xml:"message,attr"`
	MajorErrorCode          int    `xml:"majorErrorCode,attr"`
	MinorErrorCode          string `xml:"minorErrorCode,attr"`
	VendorSpecificErrorCode string `xml:"vendorSpecificErrorCode,attr,omitempty"`
	StackTrace              string `xml:"stackTrace,attr,omitempty"`
}

Error is the standard error message type used in the vCloud REST API. Type: ErrorType Namespace: http://www.vmware.com/vcloud/v1.5 Description: The standard error message type used in the vCloud REST API. Since: 0.9

func (Error) Error

func (err Error) Error() string

type Extension

type Extension struct {
	Link LinkList `xml:"Link,omitempty"` // A reference to an entity or operation associated with this object.
}

Namespace: http://www.vmware.com/vcloud/v1.5 Retrieve a list of extension objects and operations. Since: 1.0

type ExternalCatalogSubscription

type ExternalCatalogSubscription struct {
	ExpectedSslThumbprint    bool   `xml:"ExpectedSslThumbprint,omitempty"`
	LocalCopy                bool   `xml:"LocalCopy,omitempty"`
	Password                 string `xml:"Password,omitempty"`
	SubscribeToExternalFeeds bool   `xml:"SubscribeToExternalFeeds,omitempty"`
	Location                 string `xml:"Location,omitempty"`
}

ExternalCatalogSubscription represents the configuration parameters for a catalog that has an external subscription Type: ExternalCatalogSubscriptionParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the configuration parameters for a catalog that has an external subscription. Since: 5.5

type ExternalNetwork

type ExternalNetwork struct {
	XMLName          xml.Name              `xml:"VMWExternalNetwork"`
	HREF             string                `xml:"href,attr,omitempty"`
	Type             string                `xml:"type,attr,omitempty"`
	ID               string                `xml:"id,attr,omitempty"`
	OperationKey     string                `xml:"operationKey,attr,omitempty"`
	Name             string                `xml:"name,attr"`
	Link             []*Link               `xml:"Link,omitempty"`
	Description      string                `xml:"Description,omitempty"`
	Tasks            *TasksInProgress      `xml:"Tasks,omitempty"`
	Configuration    *NetworkConfiguration `xml:"Configuration,omitempty"`
	VimPortGroupRef  *VimObjectRef         `xml:"VimPortGroupRef,omitempty"`
	VimPortGroupRefs *VimObjectRefs        `xml:"VimPortGroupRefs,omitempty"`
	VCloudExtension  *VCloudExtension      `xml:"VCloudExtension,omitempty"`
}

Type: VMWExternalNetworkType Namespace: http://www.vmware.com/vcloud/extension/v1.5 https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VMWExternalNetworkType.html Description: External network type. Since: 1.0

type ExternalNetworkReference

type ExternalNetworkReference struct {
	HREF string `xml:"href,attr"`
	Type string `xml:"type,attr,omitempty"`
	Name string `xml:"name,attr,omitempty"`
}

type ExternalNetworkReferences

type ExternalNetworkReferences struct {
	ExternalNetworkReference []*ExternalNetworkReference `xml:"ExternalNetworkReference,omitempty"` // A reference to an entity or operation associated with this object.
}

type ExternalNetworkV2

type ExternalNetworkV2 struct {
	// ID is unique for the network. This field is read-only.
	ID string `json:"id,omitempty"`
	// Name of the network.
	Name string `json:"name"`
	// Description of the network
	Description string `json:"description"`
	// Subnets define one or more subnets and IP allocation pools in edge gateway
	Subnets ExternalNetworkV2Subnets `json:"subnets"`
	// NetworkBackings for this external network. Describes if this external network is backed by
	// port groups, vCenter standard switch or an NSX-T Tier-0 router.
	NetworkBackings ExternalNetworkV2Backings `json:"networkBackings"`
}

ExternalNetworkV2 defines a struct for OpenAPI endpoint which is capable of creating NSX-V or NSX-T external network based on provided NetworkBackings.

type ExternalNetworkV2Backing

type ExternalNetworkV2Backing struct {
	// BackingID must contain either Tier-0 router ID for NSX-T or PortGroup ID for NSX-V
	BackingID string `json:"backingId"`
	Name      string `json:"name,omitempty"`
	// BackingType can be either ExternalNetworkBackingTypeNsxtTier0Router in case of NSX-T or one
	// of ExternalNetworkBackingTypeNetwork or ExternalNetworkBackingDvPortgroup in case of NSX-V
	BackingType string `json:"backingType"`
	// NetworkProvider defines backing network manager
	NetworkProvider NetworkProvider `json:"networkProvider"`
}

ExternalNetworkV2Backing defines which networking subsystem is used for external network (NSX-T or NSX-V)

type ExternalNetworkV2Backings

type ExternalNetworkV2Backings struct {
	Values []ExternalNetworkV2Backing `json:"values"`
}

type ExternalNetworkV2IPRange

type ExternalNetworkV2IPRange struct {
	// StartAddress holds starting IP address in the range
	StartAddress string `json:"startAddress"`
	// EndAddress holds ending IP address in the range
	EndAddress string `json:"endAddress"`
}

ExternalNetworkV2IPRange defines allocated IP pools for a subnet in external network

type ExternalNetworkV2IPRanges

type ExternalNetworkV2IPRanges struct {
	Values []ExternalNetworkV2IPRange `json:"values"`
}

ExternalNetworkV2IPRanges contains slice of ExternalNetworkV2IPRange

type ExternalNetworkV2Subnet

type ExternalNetworkV2Subnet struct {
	// Gateway for the subnet
	Gateway string `json:"gateway"`
	// PrefixLength holds prefix length of the subnet
	PrefixLength int `json:"prefixLength"`
	// DNSSuffix is the DNS suffix that VMs attached to this network will use (NSX-V only)
	DNSSuffix string `json:"dnsSuffix"`
	// DNSServer1 - first DNS server that VMs attached to this network will use (NSX-V only)
	DNSServer1 string `json:"dnsServer1"`
	// DNSServer2 - second DNS server that VMs attached to this network will use (NSX-V only)
	DNSServer2 string `json:"dnsServer2"`
	// Enabled indicates whether the external network subnet is currently enabled
	Enabled bool `json:"enabled"`
	// UsedIPCount shows number of IP addresses defined by the static IP ranges
	UsedIPCount int `json:"usedIpCount,omitempty"`
	// TotalIPCount shows number of IP address used from the static IP ranges
	TotalIPCount int `json:"totalIpCount,omitempty"`
	// IPRanges define allocated static IP pools allocated from a defined subnet
	IPRanges ExternalNetworkV2IPRanges `json:"ipRanges"`
}

ExternalNetworkV2Subnet defines one subnet for external network with assigned static IP ranges

type ExternalNetworkV2Subnets

type ExternalNetworkV2Subnets struct {
	Values []ExternalNetworkV2Subnet `json:"values"`
}

ExternalNetworkV2Subnets contains slice of ExternalNetworkV2Subnet

type ExternalSubject

type ExternalSubject struct {
	IdpType   string `xml:"IdpType"`   // The type of identity provider for example: OAUTH, SAML, LDAP etc for this SubjectID.
	IsUser    bool   `xml:"IsUser"`    // If true, SubjectID is a reference to a user defined by this organization's identity provider. If false or empty, SubjectID is a reference to a group defined by this organization's identity provider.
	SubjectId string `xml:"SubjectId"` // The primary key that your identity provider uses to uniquely identify the user or group referenced in SubjectId.
}

ExternalSubjectType is a reference to a user or group managed by an identity provider configured for use in this organization.

type File

type File struct {
	HREF             string           `xml:"href,attr,omitempty"`
	Type             string           `xml:"type,attr,omitempty"`
	ID               string           `xml:"id,attr,omitempty"`
	OperationKey     string           `xml:"operationKey,attr,omitempty"`
	Name             string           `xml:"name,attr"`
	Size             int64            `xml:"size,attr,omitempty"`
	BytesTransferred int64            `xml:"bytesTransferred,attr,omitempty"`
	Checksum         string           `xml:"checksum,attr,omitempty"`
	Description      string           `xml:"Description,omitempty"`
	Link             LinkList         `xml:"Link,omitempty"`
	Tasks            *TasksInProgress `xml:"Tasks,omitempty"`
}

File represents a file to be transferred (uploaded or downloaded). Type: FileType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a file to be transferred (uploaded or downloaded). Since: 0.9

type FilesList

type FilesList struct {
	File []*File `xml:"File"`
}

FilesList represents a list of files to be transferred (uploaded or downloaded). Type: FilesListType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of files to be transferred (uploaded or downloaded). Since: 0.9

type FirewallConfigWithXml

type FirewallConfigWithXml struct {
	XMLName       xml.Name              `xml:"firewall"`
	Enabled       bool                  `xml:"enabled"`
	DefaultPolicy FirewallDefaultPolicy `xml:"defaultPolicy"`

	// Each configuration change has a version number
	Version string `xml:"version,omitempty"`

	// The below field has `innerxml` tag so that it is not processed but instead
	// sent verbatim
	FirewallRules InnerXML `xml:"firewallRules,omitempty"`
	GlobalConfig  InnerXML `xml:"globalConfig,omitempty"`
}

FirewallConfigWithXml allows to enable/disable firewall on a specific edge gateway Reference: vCloud Director API for NSX Programming Guide https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

Warning. It nests all firewall rules because Edge Gateway API is done so that if this data is not sent while enabling it would wipe all firewall rules. InnerXML type field is used with struct tag `innerxml` to prevent any manipulation of configuration and sending it verbatim

type FirewallDefaultPolicy

type FirewallDefaultPolicy struct {
	LoggingEnabled bool   `xml:"loggingEnabled"`
	Action         string `xml:"action"`
}

FirewallDefaultPolicy represent default rule

type FirewallRule

type FirewallRule struct {
	ID                   string                 `xml:"Id,omitempty"`                   // Firewall rule identifier.
	IsEnabled            bool                   `xml:"IsEnabled"`                      // Used to enable or disable the firewall rule. Default value is true.
	MatchOnTranslate     bool                   `xml:"MatchOnTranslate"`               // For DNATed traffic, match the firewall rules only after the destination IP is translated.
	Description          string                 `xml:"Description,omitempty"`          // A description of the rule.
	Policy               string                 `xml:"Policy,omitempty"`               // One of: drop (drop packets that match the rule), allow (allow packets that match the rule to pass through the firewall)
	Protocols            *FirewallRuleProtocols `xml:"Protocols,omitempty"`            // Specify the protocols to which the rule should be applied.
	IcmpSubType          string                 `xml:"IcmpSubType,omitempty"`          // ICMP subtype. One of: address-mask-request, address-mask-reply, destination-unreachable, echo-request, echo-reply, parameter-problem, redirect, router-advertisement, router-solicitation, source-quench, time-exceeded, timestamp-request, timestamp-reply, any.
	Port                 int                    `xml:"Port,omitempty"`                 // The port to which this rule applies. A value of -1 matches any port.
	DestinationPortRange string                 `xml:"DestinationPortRange,omitempty"` // Destination port range to which this rule applies.
	DestinationIP        string                 `xml:"DestinationIp,omitempty"`        // Destination IP address to which the rule applies. A value of Any matches any IP address.
	DestinationVM        *VMSelection           `xml:"DestinationVm,omitempty"`        // Details of the destination VM
	SourcePort           int                    `xml:"SourcePort,omitempty"`           // Destination port to which this rule applies. A value of -1 matches any port.
	SourcePortRange      string                 `xml:"SourcePortRange,omitempty"`      // Source port range to which this rule applies.
	SourceIP             string                 `xml:"SourceIp,omitempty"`             // Source IP address to which the rule applies. A value of Any matches any IP address.
	SourceVM             *VMSelection           `xml:"SourceVm,omitempty"`             // Details of the source Vm
	Direction            string                 `xml:"Direction,omitempty"`            // Direction of traffic to which rule applies. One of: in (rule applies to incoming traffic. This is the default value), out (rule applies to outgoing traffic).
	EnableLogging        bool                   `xml:"EnableLogging"`                  // Used to enable or disable firewall rule logging. Default value is false.
}

FirewallRule represents a firewall rule Type: FirewallRuleType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a firewall rule. Since: 0.9

type FirewallRuleProtocols

type FirewallRuleProtocols struct {
	ICMP bool `xml:"Icmp,omitempty"` // True if the rule applies to the ICMP protocol.
	Any  bool `xml:"Any,omitempty"`  // True if the rule applies to any protocol.
	TCP  bool `xml:"Tcp,omitempty"`  // True if the rule applies to the TCP protocol.
	UDP  bool `xml:"Udp,omitempty"`  // True if the rule applies to the UDP protocol.

}

FirewallRuleProtocols flags for a network protocol in a firewall rule Type: FirewallRuleType/Protocols Namespace: http://www.vmware.com/vcloud/v1.5 Description: Since:

type FirewallService

type FirewallService struct {
	IsEnabled        bool            `xml:"IsEnabled"`               // Enable or disable the service using this flag
	DefaultAction    string          `xml:"DefaultAction,omitempty"` // Default action of the firewall. One of: drop (Default. Drop packets that match the rule.), allow (Allow packets that match the rule to pass through the firewall)
	LogDefaultAction bool            `xml:"LogDefaultAction"`        // Flag to enable logging for default action. Default value is false.
	FirewallRule     []*FirewallRule `xml:"FirewallRule,omitempty"`  //	A firewall rule.
}

FirewallService represent a network firewall service. Type: FirewallServiceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a network firewall service. Since:

type GatewayConfiguration

type GatewayConfiguration struct {
	Xmlns string `xml:"xmlns,attr,omitempty"`
	// BackwardCompatibilityMode. Default is false. If set to true, will allow users to write firewall
	// rules in the old 1.5 format. The new format does not require to use direction in firewall
	// rules. Also, for firewall rules to allow NAT traffic the filter is applied on the original IP
	// addresses. Once set to true cannot be reverted back to false.
	BackwardCompatibilityMode bool `xml:"BackwardCompatibilityMode,omitempty"`
	// GatewayBackingConfig defines configuration of the vShield edge VM for this gateway. One of:
	// compact, full.
	GatewayBackingConfig string `xml:"GatewayBackingConfig"`
	// GatewayInterfaces holds configuration for edge gateway interfaces, ip allocations, traffic
	// rate limits and ip sub-allocations
	GatewayInterfaces *GatewayInterfaces `xml:"GatewayInterfaces"`
	// EdgeGatewayServiceConfiguration represents Gateway Features.
	EdgeGatewayServiceConfiguration *GatewayFeatures `xml:"EdgeGatewayServiceConfiguration,omitempty"`
	// True if this gateway is highly available. (Requires two vShield edge VMs.)
	HaEnabled *bool `xml:"HaEnabled,omitempty"`
	// UseDefaultRouteForDNSRelay defines if the default gateway on the external network selected
	// for default route should be used as the DNS relay.
	UseDefaultRouteForDNSRelay *bool `xml:"UseDefaultRouteForDnsRelay,omitempty"`
	// AdvancedNetworkingEnabled allows to use NSX capabilities such dynamic routing (BGP, OSPF),
	// zero trust networking (DLR), enchanced VPN support (IPsec VPN, SSL VPN-Plus).
	AdvancedNetworkingEnabled *bool `xml:"AdvancedNetworkingEnabled,omitempty"`
	// DistributedRoutingEnabled enables distributed routing on the gateway to allow creation of
	// many more organization VDC networks. Traffic in those networks is optimized for VM-to-VM
	// communication.
	DistributedRoutingEnabled *bool `xml:"DistributedRoutingEnabled,omitempty"`
	// FipsModeEnabled allows any secure communication to or from the NSX Edge uses cryptographic
	// algorithms or protocols that are allowed by United States Federal Information Processing
	// Standards (FIPS). FIPS mode turns on the cipher suites that comply with FIPS.
	FipsModeEnabled *bool `xml:"FipsModeEnabled,omitempty"`
}

GatewayConfiguration is the gateway configuration Type: GatewayConfigurationType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Gateway Configuration. Since: 5.1

type GatewayDhcpService

type GatewayDhcpService struct {
	IsEnabled bool               `xml:"IsEnabled,omitempty"` // Enable or disable the service using this flag
	Pool      []*DhcpPoolService `xml:"Pool,omitempty"`      // A DHCP pool.
}

GatewayDhcpService represents Gateway DHCP service. Type: GatewayDhcpServiceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents Gateway DHCP service. Since: 5.1

type GatewayFeatures

type GatewayFeatures struct {
	XMLName                xml.Name
	Xmlns                  string                  `xml:"xmlns,attr,omitempty"`
	FirewallService        *FirewallService        `xml:"FirewallService,omitempty"`        // Substitute for NetworkService. Firewall service settings
	NatService             *NatService             `xml:"NatService,omitempty"`             // Substitute for NetworkService. NAT service settings
	GatewayDhcpService     *GatewayDhcpService     `xml:"GatewayDhcpService,omitempty"`     // Substitute for NetworkService. Gateway DHCP service settings
	GatewayIpsecVpnService *GatewayIpsecVpnService `xml:"GatewayIpsecVpnService,omitempty"` // Substitute for NetworkService. Gateway Ipsec VPN service settings
	StaticRoutingService   *StaticRoutingService   `xml:"StaticRoutingService,omitempty"`   // Substitute for NetworkService. Static Routing service settings
}

GatewayFeatures represents edge gateway services. Element: EdgeGatewayServiceConfiguration Type: GatewayFeaturesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents edge gateway services. Since: 5.1

type GatewayInterface

type GatewayInterface struct {
	Name                string                 `xml:"Name,omitempty"`                // Internally generated name for the Gateway Interface.
	DisplayName         string                 `xml:"DisplayName,omitempty"`         // Gateway Interface display name.
	Network             *Reference             `xml:"Network"`                       // A reference to the network connected to the gateway interface.
	InterfaceType       string                 `xml:"InterfaceType"`                 // The type of interface: One of: Uplink, Internal
	SubnetParticipation []*SubnetParticipation `xml:"SubnetParticipation,omitempty"` // Slice of subnets for IP allocations.
	ApplyRateLimit      bool                   `xml:"ApplyRateLimit,omitempty"`      // True if rate limiting is applied on this interface.
	InRateLimit         float64                `xml:"InRateLimit,omitempty"`         // Incoming rate limit expressed as Gbps.
	OutRateLimit        float64                `xml:"OutRateLimit,omitempty"`        // Outgoing rate limit expressed as Gbps.
	UseForDefaultRoute  bool                   `xml:"UseForDefaultRoute,omitempty"`  // True if this network is default route for the gateway.
}

GatewayInterface is a gateway interface configuration. Type: GatewayInterfaceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Gateway Interface configuration. Since: 5.1

func (*GatewayInterface) SortBySubnetParticipationGateway

func (g *GatewayInterface) SortBySubnetParticipationGateway()

SortBySubnetParticipationGateway allows to sort SubnetParticipation property slice by gateway address

type GatewayInterfaces

type GatewayInterfaces struct {
	GatewayInterface []*GatewayInterface `xml:"GatewayInterface"` // Gateway Interface.
}

GatewayInterfaces is a list of Gateway Interfaces. Type: GatewayInterfacesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: A list of Gateway Interfaces. Since: 5.1

type GatewayIpsecVpnEndpoint

type GatewayIpsecVpnEndpoint struct {
	Network  *Reference `xml:"Network"`            // External network reference.
	PublicIP string     `xml:"PublicIp,omitempty"` // Public IP for IPSec endpoint.
}

GatewayIpsecVpnEndpoint represents an IPSec VPN endpoint. Type: GatewayIpsecVpnEndpointType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents an IPSec VPN endpoint. Since: 5.1

type GatewayIpsecVpnService

type GatewayIpsecVpnService struct {
	IsEnabled bool                     `xml:"IsEnabled"`          // Enable or disable the service using this flag
	Endpoint  *GatewayIpsecVpnEndpoint `xml:"Endpoint,omitempty"` // List of IPSec VPN Service Endpoints.
	Tunnel    []*GatewayIpsecVpnTunnel `xml:"Tunnel"`             // List of IPSec VPN tunnels.
}

GatewayIpsecVpnService represents gateway IPsec VPN service. Type: GatewayIpsecVpnServiceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents gateway IPsec VPN service. Since: 5.1

type GatewayIpsecVpnTunnel

type GatewayIpsecVpnTunnel struct {
	Name        string `xml:"Name"`                  // The name of the tunnel.
	Description string `xml:"Description,omitempty"` // A description of the tunnel.
	// TODO: Fix this in a better way
	IpsecVpnThirdPartyPeer *IpsecVpnThirdPartyPeer `xml:"IpsecVpnThirdPartyPeer,omitempty"` // Details about the peer network.
	IpsecVpnLocalPeer      *IpsecVpnLocalPeer      `xml:"IpsecVpnLocalPeer"`                // Details about the local peer network.
	PeerIPAddress          string                  `xml:"PeerIpAddress"`                    // IP address of the peer endpoint.
	PeerID                 string                  `xml:"PeerId"`                           // Id for the peer end point
	LocalIPAddress         string                  `xml:"LocalIpAddress"`                   // Address of the local network.
	LocalID                string                  `xml:"LocalId"`                          // Id for local end point
	LocalSubnet            []*IpsecVpnSubnet       `xml:"LocalSubnet"`                      // List of local subnets in the tunnel.
	PeerSubnet             []*IpsecVpnSubnet       `xml:"PeerSubnet"`                       // List of peer subnets in the tunnel.
	SharedSecret           string                  `xml:"SharedSecret"`                     // Shared secret used for authentication.
	SharedSecretEncrypted  bool                    `xml:"SharedSecretEncrypted,omitempty"`  // True if shared secret is encrypted.
	EncryptionProtocol     string                  `xml:"EncryptionProtocol"`               // Encryption protocol to be used. One of: AES, AES256, TRIPLEDES
	Mtu                    int                     `xml:"Mtu"`                              // MTU for the tunnel.
	IsEnabled              bool                    `xml:"IsEnabled,omitempty"`              // True if the tunnel is enabled.
	IsOperational          bool                    `xml:"IsOperational,omitempty"`          // True if the tunnel is operational.
	ErrorDetails           string                  `xml:"ErrorDetails,omitempty"`           // Error details of the tunnel.
}

GatewayIpsecVpnTunnel represents an IPSec VPN tunnel. Type: GatewayIpsecVpnTunnelType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents an IPSec VPN tunnel. Since: 5.1

type GatewayNatRule

type GatewayNatRule struct {
	Xmlns string `xml:"xmlns,attr,omitempty"`
	// Elements
	Interface      *Reference `xml:"Interface,omitempty"`      // Interface to which rule is applied.
	OriginalIP     string     `xml:"OriginalIp"`               // Original IP for rule.
	OriginalPort   string     `xml:"OriginalPort,omitempty"`   // Original port for rule.
	TranslatedIP   string     `xml:"TranslatedIp"`             // Translated IP for rule.
	TranslatedPort string     `xml:"TranslatedPort,omitempty"` // Translated port for rule.
	Protocol       string     `xml:"Protocol,omitempty"`       // Protocol for rule.
	IcmpSubType    string     `xml:"IcmpSubType,omitempty"`    // ICMP subtype. One of: address-mask-request, address-mask-reply, destination-unreachable, echo-request, echo-reply, parameter-problem, redirect, router-advertisement, router-solicitation, source-quench, time-exceeded, timestamp-request, timestamp-reply, any.
}

GatewayNatRule represents the SNAT and DNAT rules. Type: GatewayNatRuleType represents the SNAT and DNAT rules. Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the SNAT and DNAT rules. Since: 5.1

type Group

type Group struct {
	XMLName xml.Name `xml:"Group"`
	Xmlns   string   `xml:"xmlns,attr"`
	// Id holds ID in format urn:vcloud:group:252fe08e-ae1b-409c-9dda-a531bb1ed69a
	ID string `xml:"id,attr,omitempty"`
	// Href holds reference to group object
	Href string `xml:"href,attr,omitempty"`
	// Type holds mime type for group
	Type string `xml:"type,attr"`
	// Description sets description for group
	Description string `xml:"Description"`
	// Name of the group. Cannot be updated.
	Name string `xml:"name,attr"`
	// ProviderType - 'SAML', 'INTEGRATED'
	ProviderType string `xml:"ProviderType"`
	// Role - reference to existing role
	Role *Reference `xml:"Role,omitempty"`
}

Group represents Org group definition

type GroupReference

type GroupReference struct {
	GroupReference []*Reference `xml:"GroupReference,omitempty"`
}

type GuestCustomizationSection

type GuestCustomizationSection struct {
	// Extends OVF Section_Type
	// Attributes
	Ovf   string `xml:"xmlns:ovf,attr,omitempty"`
	Xsi   string `xml:"xmlns:xsi,attr,omitempty"`
	Xmlns string `xml:"xmlns,attr,omitempty"`

	HREF string `xml:"href,attr,omitempty"` // A reference to the section in URL format.
	Type string `xml:"type,attr,omitempty"` // The MIME type of the section.
	// FIXME: Fix the OVF section
	Info string `xml:"ovf:Info"`
	// Elements
	Enabled               *bool    `xml:"Enabled,omitempty"`               // True if guest customization is enabled.
	ChangeSid             *bool    `xml:"ChangeSid,omitempty"`             // True if customization can change the Windows SID of this virtual machine.
	VirtualMachineID      string   `xml:"VirtualMachineId,omitempty"`      // Virtual machine ID to apply.
	JoinDomainEnabled     *bool    `xml:"JoinDomainEnabled,omitempty"`     // True if this virtual machine can join a Windows Domain.
	UseOrgSettings        *bool    `xml:"UseOrgSettings,omitempty"`        // True if customization should use organization settings (OrgGuestPersonalizationSettings) when joining a Windows Domain.
	DomainName            string   `xml:"DomainName,omitempty"`            // The name of the Windows Domain to join.
	DomainUserName        string   `xml:"DomainUserName,omitempty"`        // User name to specify when joining a Windows Domain.
	DomainUserPassword    string   `xml:"DomainUserPassword,omitempty"`    // Password to use with DomainUserName.
	MachineObjectOU       string   `xml:"MachineObjectOU,omitempty"`       // The name of the Windows Domain Organizational Unit (OU) in which the computer account for this virtual machine will be created.
	AdminPasswordEnabled  *bool    `xml:"AdminPasswordEnabled,omitempty"`  // True if guest customization can modify administrator password settings for this virtual machine.
	AdminPasswordAuto     *bool    `xml:"AdminPasswordAuto,omitempty"`     // True if the administrator password for this virtual machine should be automatically generated.
	AdminPassword         string   `xml:"AdminPassword,omitempty"`         // True if the administrator password for this virtual machine should be set to this string. (AdminPasswordAuto must be false.)
	AdminAutoLogonEnabled *bool    `xml:"AdminAutoLogonEnabled,omitempty"` // True if guest administrator should automatically log into this virtual machine.
	AdminAutoLogonCount   int      `xml:"AdminAutoLogonCount,omitempty"`   // Number of times administrator can automatically log into this virtual machine. In case AdminAutoLogon is set to True, this value should be between 1 and 100. Otherwise, it should be 0.
	ResetPasswordRequired *bool    `xml:"ResetPasswordRequired,omitempty"` // True if the administrator password for this virtual machine must be reset after first use.
	CustomizationScript   string   `xml:"CustomizationScript,omitempty"`   // Script to run on guest customization. The entire script must appear in this element. Use the XML entity &#13; to represent a newline. Unicode characters can be represented in the form &#xxxx; where xxxx is the character number.
	ComputerName          string   `xml:"ComputerName,omitempty"`          // Computer name to assign to this virtual machine.
	Link                  LinkList `xml:"Link,omitempty"`                  // A link to an operation on this section.
}

GuestCustomizationSection represents guest customization settings Type: GuestCustomizationSectionType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a guest customization settings. Since: 1.0

type GuestCustomizationStatusSection

type GuestCustomizationStatusSection struct {
	XMLName xml.Name `xml:"GuestCustomizationStatusSection"`
	Xmlns   string   `xml:"xmlns,attr"`

	GuestCustStatus string `xml:"GuestCustStatus"`
}

GuestCustomizationStatusSection holds information about guest customization status https://vdc-repo.vmware.com/vmwb-repository/dcr-public/76f491b4-679c-4e1e-8428-f813d668297a/a2555a1b-22f1-4cca-b481-2a98ab874022/doc/doc/operations/GET-GuestCustStatus.html

type HardwareVersion

type HardwareVersion struct {
	HREF  string `xml:"href,attr"`
	Type  string `xml:"type,attr,omitempty"`
	Value string `xml:",chardata"`
}

HardwareVersion from VM/VmSpecSection struct

type IPAddresses

type IPAddresses struct {
	IPAddress []string `xml:"IpAddress,omitempty"` // A list of IP addresses.
}

IPAddresses a list of IP addresses Type: IpAddressesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: A list of IP addresses. Since: 0.9

type IPRange

type IPRange struct {
	StartAddress string `xml:"StartAddress"` // Start address of the IP range.
	EndAddress   string `xml:"EndAddress"`   // End address of the IP range.
}

IPRange represents a range of IP addresses, start and end inclusive. Type: IpRangeType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a range of IP addresses, start and end inclusive. Since: 0.9

type IPRanges

type IPRanges struct {
	IPRange []*IPRange `xml:"IpRange,omitempty"` // IP range.
}

IPRanges represents a list of IP ranges. Type: IpRangesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of IP ranges. Since: 0.9

type IPScope

type IPScope struct {
	IsInherited          bool            `xml:"IsInherited"`                    // True if the IP scope is inherit from parent network.
	Gateway              string          `xml:"Gateway,omitempty"`              // Gateway of the network.
	Netmask              string          `xml:"Netmask,omitempty"`              // Network mask.
	DNS1                 string          `xml:"Dns1,omitempty"`                 // Primary DNS server.
	DNS2                 string          `xml:"Dns2,omitempty"`                 // Secondary DNS server.
	DNSSuffix            string          `xml:"DnsSuffix,omitempty"`            // DNS suffix.
	IsEnabled            bool            `xml:"IsEnabled,omitempty"`            // Indicates if subnet is enabled or not. Default value is True.
	IPRanges             *IPRanges       `xml:"IpRanges,omitempty"`             // IP ranges used for static pool allocation in the network.
	AllocatedIPAddresses *IPAddresses    `xml:"AllocatedIpAddresses,omitempty"` // Read-only list of allocated IP addresses in the network.
	SubAllocations       *SubAllocations `xml:"SubAllocations,omitempty"`       // Read-only list of IP addresses that are sub allocated to edge gateways.
}

IPScope specifies network settings like gateway, network mask, DNS servers IP ranges etc Type: IpScopeType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Specify network settings like gateway, network mask, DNS servers, IP ranges, etc. Since: 0.9

type IPScopes

type IPScopes struct {
	IPScope []*IPScope `xml:"IpScope"` // IP scope.
}

IPScopes represents a list of IP scopes. Type: IpScopesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of IP scopes. Since: 5.1

type InnerXML

type InnerXML struct {
	Text string `xml:",innerxml"`
}

InnerXML is meant to be used when unmarshaling a field into text rather than struct It helps to avoid missing out any fields which may not have been specified in the struct.

type InstantiateVAppTemplateParams

type InstantiateVAppTemplateParams struct {
	XMLName xml.Name `xml:"InstantiateVAppTemplateParams"`
	Ovf     string   `xml:"xmlns:ovf,attr"`
	Xsi     string   `xml:"xmlns:xsi,attr,omitempty"`
	Xmlns   string   `xml:"xmlns,attr"`
	// Attributes
	Name        string `xml:"name,attr,omitempty"`        // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified.
	Deploy      bool   `xml:"deploy,attr"`                // True if the vApp should be deployed at instantiation. Defaults to true.
	PowerOn     bool   `xml:"powerOn,attr"`               // True if the vApp should be powered-on at instantiation. Defaults to true.
	LinkedClone bool   `xml:"linkedClone,attr,omitempty"` // Reserved. Unimplemented.
	// Elements
	Description         string                       `xml:"Description,omitempty"`         // Optional description.
	VAppParent          *Reference                   `xml:"VAppParent,omitempty"`          // Reserved. Unimplemented.
	InstantiationParams *InstantiationParams         `xml:"InstantiationParams,omitempty"` // Instantiation parameters for the composed vApp.
	Source              *Reference                   `xml:"Source"`                        // A reference to a source object such as a vApp or vApp template.
	IsSourceDelete      bool                         `xml:"IsSourceDelete,omitempty"`      // Set to true to delete the source object after the operation completes.
	SourcedItem         *SourcedCompositionItemParam `xml:"SourcedItem,omitempty"`         // Composition item. One of: vApp vAppTemplate Vm.
	AllEULAsAccepted    bool                         `xml:"AllEULAsAccepted,omitempty"`    // True confirms acceptance of all EULAs in a vApp template. Instantiation fails if this element is missing, empty, or set to false and one or more EulaSection elements are present.
}

InstantiateVAppTemplateParams represents vApp template instantiation parameters. Type: InstantiateVAppTemplateParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents vApp template instantiation parameters. Since: 0.9

type InstantiationParams

type InstantiationParams struct {
	CustomizationSection         *CustomizationSection         `xml:"CustomizationSection,omitempty"`
	DefaultStorageProfileSection *DefaultStorageProfileSection `xml:"DefaultStorageProfileSection,omitempty"`
	GuestCustomizationSection    *GuestCustomizationSection    `xml:"GuestCustomizationSection,omitempty"`
	LeaseSettingsSection         *LeaseSettingsSection         `xml:"LeaseSettingsSection,omitempty"`
	NetworkConfigSection         *NetworkConfigSection         `xml:"NetworkConfigSection,omitempty"`
	NetworkConnectionSection     *NetworkConnectionSection     `xml:"NetworkConnectionSection,omitempty"`
	ProductSection               *ProductSection               `xml:"ProductSection,omitempty"`
}

InstantiationParams is a container for ovf:Section_Type elements that specify vApp configuration on instantiate, compose, or recompose. Type: InstantiationParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for ovf:Section_Type elements that specify vApp configuration on instantiate, compose, or recompose. Since: 0.9

type IpsecVpnLocalPeer

type IpsecVpnLocalPeer struct {
	ID   string `xml:"Id"`   // Id for the peer end point
	Name string `xml:"Name"` // Name for the peer
}

IpsecVpnThirdPartyPeer represents details about a peer network

type IpsecVpnSubnet

type IpsecVpnSubnet struct {
	Name    string `xml:"Name"`    // Gateway Name.
	Gateway string `xml:"Gateway"` // Subnet Gateway.
	Netmask string `xml:"Netmask"` // Subnet Netmask.
}

IpsecVpnSubnet represents subnet details. Type: IpsecVpnSubnetType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents subnet details. Since: 5.1

type IpsecVpnThirdPartyPeer

type IpsecVpnThirdPartyPeer struct {
	PeerID string `xml:"PeerId,omitempty"` // Id for the peer end point
}

IpsecVpnThirdPartyPeer represents details about a peer network

type LbAppProfile

type LbAppProfile struct {
	XMLName                       xml.Name                  `xml:"applicationProfile"`
	ID                            string                    `xml:"applicationProfileId,omitempty"`
	Name                          string                    `xml:"name,omitempty"`
	SslPassthrough                bool                      `xml:"sslPassthrough"`
	Template                      string                    `xml:"template,omitempty"`
	HttpRedirect                  *LbAppProfileHttpRedirect `xml:"httpRedirect,omitempty"`
	Persistence                   *LbAppProfilePersistence  `xml:"persistence,omitempty"`
	InsertXForwardedForHttpHeader bool                      `xml:"insertXForwardedFor"`
	ServerSslEnabled              bool                      `xml:"serverSslEnabled"`
}

LbAppProfile represents a load balancer application profile as per "vCloud Director API for NSX Programming Guide" https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

type LbAppProfileHttpRedirect

type LbAppProfileHttpRedirect struct {
	XMLName xml.Name `xml:"httpRedirect"`
	To      string   `xml:"to,omitempty"`
}

LbAppProfileHttpRedirect defines http redirect settings in LbAppProfile

type LbAppProfilePersistence

type LbAppProfilePersistence struct {
	XMLName    xml.Name `xml:"persistence"`
	Method     string   `xml:"method,omitempty"`
	CookieName string   `xml:"cookieName,omitempty"`
	CookieMode string   `xml:"cookieMode,omitempty"`
	Expire     int      `xml:"expire,omitempty"`
}

LbAppProfilePersistence defines persistence profile settings in LbAppProfile

type LbAppProfiles

type LbAppProfiles []LbAppProfile

type LbAppRule

type LbAppRule struct {
	XMLName xml.Name `xml:"applicationRule"`
	ID      string   `xml:"applicationRuleId,omitempty"`
	Name    string   `xml:"name,omitempty"`
	Script  string   `xml:"script,omitempty"`
}

LbAppRule represents a load balancer application rule as per "vCloud Director API for NSX Programming Guide" https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

type LbAppRules

type LbAppRules []LbAppRule

type LbGeneralParamsWithXml

type LbGeneralParamsWithXml struct {
	XMLName             xml.Name   `xml:"loadBalancer"`
	Enabled             bool       `xml:"enabled"`
	AccelerationEnabled bool       `xml:"accelerationEnabled"`
	Logging             *LbLogging `xml:"logging"`

	// This field is not used anywhere but needs to be passed through
	EnableServiceInsertion bool `xml:"enableServiceInsertion"`
	// Each configuration change has a version number
	Version string `xml:"version,omitempty"`

	// The below fields have `innerxml` tag so that they are not processed but instead
	// sent verbatim
	VirtualServers []InnerXML `xml:"virtualServer,omitempty"`
	Pools          []InnerXML `xml:"pool,omitempty"`
	AppProfiles    []InnerXML `xml:"applicationProfile,omitempty"`
	Monitors       []InnerXML `xml:"monitor,omitempty"`
	AppRules       []InnerXML `xml:"applicationRule,omitempty"`
}

LbGeneralParamsWithXml allows to enable/disable load balancing capabilities on specific edge gateway Reference: vCloud Director API for NSX Programming Guide https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

Warning. It nests all components (LbMonitor, LbPool, LbAppProfile, LbAppRule, LbVirtualServer) because Edge Gateway API is done so that if this data is not sent while enabling it would wipe all load balancer configurations. InnerXML type fields are used with struct tag `innerxml` to prevent any manipulation of configuration and sending it verbatim

type LbLogging

type LbLogging struct {
	Enable   bool   `xml:"enable"`
	LogLevel string `xml:"logLevel"`
}

LbLogging represents logging configuration for load balancer

type LbMonitor

type LbMonitor struct {
	XMLName    xml.Name `xml:"monitor"`
	ID         string   `xml:"monitorId,omitempty"`
	Type       string   `xml:"type"`
	Interval   int      `xml:"interval,omitempty"`
	Timeout    int      `xml:"timeout,omitempty"`
	MaxRetries int      `xml:"maxRetries,omitempty"`
	Method     string   `xml:"method,omitempty"`
	URL        string   `xml:"url,omitempty"`
	Expected   string   `xml:"expected,omitempty"`
	Name       string   `xml:"name,omitempty"`
	Send       string   `xml:"send,omitempty"`
	Receive    string   `xml:"receive,omitempty"`
	Extension  string   `xml:"extension,omitempty"`
}

LbMonitor defines health check parameters for a particular type of network traffic Reference: vCloud Director API for NSX Programming Guide https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

type LbMonitors

type LbMonitors []LbMonitor

type LbPool

type LbPool struct {
	XMLName             xml.Name      `xml:"pool"`
	ID                  string        `xml:"poolId,omitempty"`
	Name                string        `xml:"name"`
	Description         string        `xml:"description,omitempty"`
	Algorithm           string        `xml:"algorithm"`
	AlgorithmParameters string        `xml:"algorithmParameters,omitempty"`
	Transparent         bool          `xml:"transparent"`
	MonitorId           string        `xml:"monitorId,omitempty"`
	Members             LbPoolMembers `xml:"member,omitempty"`
}

LbPool represents a load balancer server pool as per "vCloud Director API for NSX Programming Guide" Type: LBPoolHealthCheckType https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

type LbPoolMember

type LbPoolMember struct {
	ID          string `xml:"memberId,omitempty"`
	Name        string `xml:"name"`
	IpAddress   string `xml:"ipAddress"`
	Weight      int    `xml:"weight,omitempty"`
	MonitorPort int    `xml:"monitorPort,omitempty"`
	Port        int    `xml:"port"`
	MaxConn     int    `xml:"maxConn,omitempty"`
	MinConn     int    `xml:"minConn,omitempty"`
	Condition   string `xml:"condition,omitempty"`
}

LbPoolMember represents a single member inside LbPool

type LbPoolMembers

type LbPoolMembers []LbPoolMember

type LbPools

type LbPools []LbPool

type LbVirtualServer

type LbVirtualServer struct {
	XMLName              xml.Name `xml:"virtualServer"`
	ID                   string   `xml:"virtualServerId,omitempty"`
	Name                 string   `xml:"name,omitempty"`
	Description          string   `xml:"description,omitempty"`
	Enabled              bool     `xml:"enabled"`
	IpAddress            string   `xml:"ipAddress"`
	Protocol             string   `xml:"protocol"`
	Port                 int      `xml:"port"`
	AccelerationEnabled  bool     `xml:"accelerationEnabled"`
	ConnectionLimit      int      `xml:"connectionLimit,omitempty"`
	ConnectionRateLimit  int      `xml:"connectionRateLimit,omitempty"`
	ApplicationProfileId string   `xml:"applicationProfileId,omitempty"`
	DefaultPoolId        string   `xml:"defaultPoolId,omitempty"`
	ApplicationRuleIds   []string `xml:"applicationRuleId,omitempty"`
}

LbVirtualServer represents a load balancer virtual server as per "vCloud Director API for NSX Programming Guide" https://code.vmware.com/docs/6900/vcloud-director-api-for-nsx-programming-guide

type LeaseSettingsSection

type LeaseSettingsSection struct {
	HREF                      string `xml:"href,attr,omitempty"`
	Type                      string `xml:"type,attr,omitempty"`
	DeploymentLeaseExpiration string `xml:"DeploymentLeaseExpiration,omitempty"`
	DeploymentLeaseInSeconds  int    `xml:"DeploymentLeaseInSeconds,omitempty"`
	Link                      *Link  `xml:"Link,omitempty"`
	StorageLeaseExpiration    string `xml:"StorageLeaseExpiration,omitempty"`
	StorageLeaseInSeconds     int    `xml:"StorageLeaseInSeconds,omitempty"`
}

LeaseSettingsSection represents vApp lease settings. Type: LeaseSettingsSectionType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents vApp lease settings. Since: 0.9

type Link struct {
	HREF string `xml:"href,attr"`
	ID   string `xml:"id,attr,omitempty"`
	Type string `xml:"type,attr,omitempty"`
	Name string `xml:"name,attr,omitempty"`
	Rel  string `xml:"rel,attr"`
}

Link extends reference type by adding relation attribute. Defines a hyper-link with a relationship, hyper-link reference, and an optional MIME type. Type: LinkType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Extends reference type by adding relation attribute. Defines a hyper-link with a relationship, hyper-link reference, and an optional MIME type. Since: 0.9

type LinkList []*Link

LinkList represents a list of links

func (LinkList) Find

func (l LinkList) Find(predicate LinkPredicate) *Link

Find the first occurrence that matches the predicate

func (LinkList) ForName

func (l LinkList) ForName(name, tpe, rel string) *Link

ForName finds a link for a given name and type

func (LinkList) ForType

func (l LinkList) ForType(tpe, rel string) *Link

ForType finds a link for a given type

type LinkPredicate

type LinkPredicate func(*Link) bool

LinkPredicate is a predicate for finding links in a link list

type LocalSubject

type LocalSubject struct {
	HREF string `xml:"href,attr"` // Required - The URL with the full identification of the subject
	Name string `xml:"name,attr"` // The name of the subject. Not needed in input, but it is returned on reading
	Type string `xml:"type,attr"` // Required - The MIME type of the subject. So far, we are using users, groups, and organizations
}

LocalSubject is the user, group, or organization to which control access settings apply.

type LocalityParams

type LocalityParams struct {
	// Elements
	ResourceEntity *Reference `xml:"ResourceEntity,omitempty"` // Reference to a Disk, or a VM.
}

LocalityParams represents locality parameters. Locality parameters provide a hint that may help the placement engine optimize placement of a VM with respect to another VM or an independent disk. Type: LocalityParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents locality parameters. Locality parameters provide a hint that may help the placement engine optimize placement of a VM with respect to another VM or an independent disk. Since: 5.1

type Media

type Media struct {
	HREF         string           `xml:"href,attr,omitempty"`
	Type         string           `xml:"type,attr,omitempty"`
	ID           string           `xml:"id,attr,omitempty"`
	OperationKey string           `xml:"operationKey,attr,omitempty"`
	Name         string           `xml:"name,attr"`
	Status       int64            `xml:"status,attr,omitempty"`
	ImageType    string           `xml:"imageType,attr,omitempty"`
	Size         int64            `xml:"size,attr,omitempty"`
	Description  string           `xml:"Description,omitempty"`
	Files        *FilesList       `xml:"Files,omitempty"`
	Link         LinkList         `xml:"Link,omitempty"`
	Tasks        *TasksInProgress `xml:"Tasks,omitempty"`
	Owner        *Reference       `xml:"Owner,omitempty"`
	Entity       *Entity          `xml:"Entity"`
}

Type: MediaType Namespace: http://www.vmware.com/vcloud/v1.5 https://vdc-repo.vmware.com/vmwb-repository/dcr-public/ca48e1bb-282b-4fdc-b827-649b819249ed/55142cf1-5bb8-4ab1-8d09-b84f717af5ec/doc/doc/types/MediaType.html Description: Represents Media image Since: 0.9

type MediaInsertOrEjectParams

type MediaInsertOrEjectParams struct {
	XMLName         xml.Name         `xml:"MediaInsertOrEjectParams"`
	Xmlns           string           `xml:"xmlns,attr,omitempty"`
	Media           *Reference       `xml:"Media"`
	VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"`
}

Parameters for inserting and ejecting virtual media for VM as CD/DVD Reference: vCloud API 30.0 - MediaInsertOrEjectParamsType https://code.vmware.com/apis/287/vcloud#/doc/doc/types/MediaInsertOrEjectParamsType.html

type MediaRecordType

type MediaRecordType struct {
	HREF               string    `xml:"href,attr,omitempty"`
	ID                 string    `xml:"id,attr,omitempty"`
	Type               string    `xml:"type,attr,omitempty"`
	OwnerName          string    `xml:"ownerName,attr,omitempty"`
	CatalogName        string    `xml:"catalogName,attr,omitempty"`
	IsPublished        bool      `xml:"isPublished,attr,omitempty"`
	Name               string    `xml:"name,attr"`
	Vdc                string    `xml:"vdc,attr,omitempty"`
	VdcName            string    `xml:"vdcName,attr,omitempty"`
	Org                string    `xml:"org,attr,omitempty"`
	CreationDate       string    `xml:"creationDate,attr,omitempty"`
	IsBusy             bool      `xml:"isBusy,attr,omitempty"`
	StorageB           int64     `xml:"storageB,attr,omitempty"`
	Owner              string    `xml:"owner,attr,omitempty"`
	Catalog            string    `xml:"catalog,attr,omitempty"`
	CatalogItem        string    `xml:"catalogItem,attr,omitempty"`
	Status             string    `xml:"status,attr,omitempty"`
	StorageProfileName string    `xml:"storageProfileName,attr,omitempty"`
	Version            int64     `xml:"version,attr,omitempty"`
	LastSuccessfulSync string    `xml:"lastSuccessfulSync,attr,omitempty"`
	TaskStatusName     string    `xml:"taskStatusName,attr,omitempty"`
	IsInCatalog        bool      `xml:"isInCatalog,attr,omitempty"`
	Task               string    `xml:"task,attr,omitempty"`
	IsIso              bool      `xml:"isIso,attr,omitempty"`
	IsVdcEnabled       bool      `xml:"isVdcEnabled,attr,omitempty"`
	TaskStatus         string    `xml:"taskStatus,attr,omitempty"`
	TaskDetails        string    `xml:"taskDetails,attr,omitempty"`
	Link               *Link     `xml:"Link,omitempty"`
	Metadata           *Metadata `xml:"Metadata,omitempty"`
}

Type: MediaRecord Namespace: http://www.vmware.com/vcloud/v1.5 https://code.vmware.com/apis/287/vcloud#/doc/doc/operations/GET-MediasFromQuery.html Issue that description partly matches with what is returned Description: Represents Media record Since: 1.5

type MediaSection

type MediaSection struct {
	MediaSettings []*MediaSettings `xml:"MediaSettings"`
}

MediaSection from VM/VmSpecSection struct

type MediaSettings

type MediaSettings struct {
	DeviceId    string     `xml:"DeviceId,omitempty"`    // Describes the media device whose media mount is being specified here. This deviceId must match the RASD.InstanceID attribute in the VirtualHardwareSection of the vApp's OVF description.
	MediaImage  *Reference `xml:"MediaImage,omitempty"`  // The media image that is mounted onto the device. This property can be 'null' which represents that no media is mounted on the device.
	MediaType   string     `xml:"MediaType,omitempty"`   // Specified the type of media that is mounted onto the device.
	MediaState  string     `xml:"MediaState,omitempty"`  // Specifies the state of the media device.
	UnitNumber  int        `xml:"UnitNumber"`            // Specified the type of media that is mounted onto the device.
	BusNumber   int        `xml:"BusNumber"`             //	The bus number of the media device controller.
	AdapterType string     `xml:"AdapterType,omitempty"` // The type of controller, e.g. IDE vs SCSI and if SCSI bus-logic vs LSI logic
}

MediaSettings from VM/VmSpecSection/MediaSection struct

type MemoryResourceMb

type MemoryResourceMb struct {
	Configured  int64  `xml:"Configured"`            // The amount of resource configured on the virtual machine.
	Reservation *int64 `xml:"Reservation,omitempty"` // The amount of reservation of this resource on the underlying virtualization infrastructure.
	Limit       *int64 `xml:"Limit,omitempty"`       // The limit for how much of this resource can be consumed on the underlying virtualization infrastructure. This is only valid when the resource allocation is not unlimited.
	SharesLevel string `xml:"SharesLevel,omitempty"` //	Pre-determined relative priorities according to which the non-reserved portion of this resource is made available to the virtualized workload.
	Shares      *int   `xml:"Shares,omitempty"`      // Custom priority for the resource. This is a read-only, unless the share level is CUSTOM.
}

MemoryResourceMb from VM/VmSpecSection struct

type Metadata

type Metadata struct {
	XMLName       xml.Name         `xml:"Metadata"`
	Xmlns         string           `xml:"xmlns,attr"`
	HREF          string           `xml:"href,attr"`
	Type          string           `xml:"type,attr,omitempty"`
	Xsi           string           `xml:"xmlns:xsi,attr"`
	Link          []*Link          `xml:"Link,omitempty"`
	MetadataEntry []*MetadataEntry `xml:"MetadataEntry,omitempty"`
}

Type: MetadataType Namespace: http://www.vmware.com/vcloud/v1.5 Description: User-defined metadata associated with with an object. Since: 1.5

type MetadataEntry

type MetadataEntry struct {
	Xmlns      string      `xml:"xmlns,attr"`
	HREF       string      `xml:"href,attr"`
	Type       string      `xml:"type,attr,omitempty"`
	Xsi        string      `xml:"xmlns:xsi,attr"`
	Domain     string      `xml:"Domain,omitempty"` // A value of SYSTEM places this MetadataEntry in the SYSTEM domain. Omit or leave empty to place this MetadataEntry in the GENERAL domain.
	Key        string      `xml:"Key"`              // An arbitrary key name. Length cannot exceed 256 UTF-8 characters.
	Link       []*Link     `xml:"Link,omitempty"`   //A reference to an entity or operation associated with this object.
	TypedValue *TypedValue `xml:"TypedValue"`
}

Type: MetadataEntryType Namespace: http://www.vmware.com/vcloud/v1.5

type MetadataValue

type MetadataValue struct {
	XMLName    xml.Name    `xml:"MetadataValue"`
	Xsi        string      `xml:"xmlns:xsi,attr"`
	Xmlns      string      `xml:"xmlns,attr"`
	TypedValue *TypedValue `xml:"TypedValue"`
}

type NSXError

type NSXError struct {
	XMLName    xml.Name `xml:"error"`
	ErrorCode  string   `xml:"errorCode"`
	Details    string   `xml:"details"`
	ModuleName string   `xml:"moduleName"`
}

NSXError is the standard error message type used in the NSX API which is proxied by vCD. It has attached method `Error() string` and implements Go's default `type error` interface.

func (NSXError) Error

func (nsxErr NSXError) Error() string

Error method implements Go's default `error` interface for NSXError and formats NSX error output for human readable output.

type NatOneToOneBasicRule

type NatOneToOneBasicRule struct {
	Xmlns string `xml:"xmlns,attr,omitempty"`
	// Elements
	MappingMode       string `xml:"MappingMode"`       // One of: automatic (map IP addresses automatically), manual (map IP addresses manually using ExternalIpAddress and InternalIpAddress)
	ExternalIPAddress string `xml:"ExternalIpAddress"` // External IP address to map.
	InternalIPAddress string `xml:"InternalIpAddress"` // Internal IP address to map.
}

NatOneToOneBasicRule represents the NAT basic rule for one to one mapping of internal and external IP addresses from a network. Type: NatOneToOneBasicRuleType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the NAT basic rule for one to one mapping of internal and external IP addresses from a network. Since: 0.9

type NatOneToOneVMRule

type NatOneToOneVMRule struct {
	Xmlns string `xml:"xmlns,attr,omitempty"`
	// Elements
	MappingMode       string  `xml:"MappingMode"`       // Mapping mode.
	ExternalIPAddress *string `xml:"ExternalIpAddress"` // External IP address to map.
	VAppScopedVMID    string  `xml:"VAppScopedVmId"`    // VAppScopedVmId of VM to which this rule applies.
	VMNicID           int     `xml:"VmNicId"`           // VM NIC ID to which this rule applies.
}

NatOneToOneVMRule represents the NAT rule for one to one mapping of VM NIC and external IP addresses from a network. Type: NatOneToOneVmRuleType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the NAT rule for one to one mapping of VM NIC and external IP addresses from a network. Since: 0.9

type NatPortForwardingRule

type NatPortForwardingRule struct {
	ExternalIPAddress string `xml:"ExternalIpAddress"`  // External IP address to map.
	ExternalPort      int    `xml:"ExternalPort"`       // External port to forward to.
	InternalIPAddress string `xml:"InternalIpAddress"`  // Internal IP address to map.
	InternalPort      int    `xml:"InternalPort"`       // Internal port to forward to.
	Protocol          string `xml:"Protocol,omitempty"` // Protocol to forward. One of: TCP (forward TCP packets), UDP (forward UDP packets), TCP_UDP (forward TCP and UDP packets).
}

NatPortForwardingRule represents the NAT rule for port forwarding between internal IP/port and external IP/port. Type: NatPortForwardingRuleType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the NAT rule for port forwarding between internal IP/port and external IP/port. Since: 0.9

type NatRule

type NatRule struct {
	Xmlns string `xml:"xmlns,attr,omitempty"`
	// Elements
	Description        string                 `xml:"Description,omitempty"`        // A description of the rule.
	RuleType           string                 `xml:"RuleType,omitempty"`           // Type of NAT rule. One of: SNAT (source NAT), DNAT (destination NAT)
	IsEnabled          *bool                  `xml:"IsEnabled"`                    // Used to enable or disable the firewall rule.
	ID                 string                 `xml:"Id,omitempty"`                 // Firewall rule identifier.
	GatewayNatRule     *GatewayNatRule        `xml:"GatewayNatRule,omitempty"`     // Defines SNAT and DNAT types.
	OneToOneBasicRule  *NatOneToOneBasicRule  `xml:"OneToOneBasicRule,omitempty"`  // Maps one internal IP address to one external IP address.
	OneToOneVMRule     *NatOneToOneVMRule     `xml:"OneToOneVmRule,omitempty"`     // Maps one VM NIC to one external IP addresses.
	PortForwardingRule *NatPortForwardingRule `xml:"PortForwardingRule,omitempty"` // Port forwarding internal to external IP addresses.
	VMRule             *NatVMRule             `xml:"VmRule,omitempty"`             // Port forwarding VM NIC to external IP addresses.
}

NatRule represents a NAT rule. Type: NatRuleType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a NAT rule. Since: 0.9

type NatService

type NatService struct {
	Xmlns string `xml:"xmlns,attr,omitempty"`

	IsEnabled  bool       `xml:"IsEnabled"`            // Enable or disable the service using this flag
	NatType    string     `xml:"NatType,omitempty"`    // One of: ipTranslation (use IP translation), portForwarding (use port forwarding)
	Policy     string     `xml:"Policy,omitempty"`     // One of: allowTraffic (Allow all traffic), allowTrafficIn (Allow inbound traffic only)
	NatRule    []*NatRule `xml:"NatRule,omitempty"`    // A NAT rule.
	ExternalIP string     `xml:"ExternalIp,omitempty"` // External IP address for rule.
}

NatService represents a NAT network service. Type: NatServiceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a NAT network service. Since:

type NatVMRule

type NatVMRule struct {
	ExternalIPAddress string `xml:"ExternalIpAddress,omitempty"` // External IP address to map.
	ExternalPort      int    `xml:"ExternalPort"`                // External port to forward to.
	VAppScopedVMID    string `xml:"VAppScopedVmId"`              // VAppScopedVmId of VM to which this rule applies.
	VMNicID           int    `xml:"VmNicId"`                     // VM NIC ID to which this rule applies.
	InternalPort      int    `xml:"InternalPort"`                // Internal port to forward to.
	Protocol          string `xml:"Protocol,omitempty"`          // Protocol to forward. One of: TCP (forward TCP packets), UDP (forward UDP packets), TCP_UDP (forward TCP and UDP packets).
}

NatVMRule represents the NAT rule for port forwarding between VM NIC/port and external IP/port. Type: NatVmRuleType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the NAT rule for port forwarding between VM NIC/port and external IP/port. Since: 0.9

type NetworkAssignment

type NetworkAssignment struct {
	// Attributes
	InnerNetwork     string `xml:"innerNetwork,attr"`     // Name of the network as specified in the Vm.
	ContainerNetwork string `xml:"containerNetwork,attr"` // Name of the vApp network to map to.
}

NetworkAssignment maps a network name specified in a Vm to the network name of a vApp network defined in the VApp that contains the Vm Type: NetworkAssignmentType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Maps a network name specified in a Vm to the network name of a vApp network defined in the VApp that contains the Vm Since: 0.9

type NetworkConfigSection

type NetworkConfigSection struct {
	// Extends OVF Section_Type
	// FIXME: Fix the OVF section
	XMLName xml.Name `xml:"NetworkConfigSection"`
	Xmlns   string   `xml:"xmlns,attr,omitempty"`
	Ovf     string   `xml:"xmlns:ovf,attr,omitempty"`

	Info string `xml:"ovf:Info"`
	//
	HREF          string                     `xml:"href,attr,omitempty"`
	Type          string                     `xml:"type,attr,omitempty"`
	Link          *Link                      `xml:"Link,omitempty"`
	NetworkConfig []VAppNetworkConfiguration `xml:"NetworkConfig,omitempty"`
}

NetworkConfigSection is container for vApp networks. Type: NetworkConfigSectionType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for vApp networks. Since: 0.9

func (NetworkConfigSection) NetworkNames

func (n NetworkConfigSection) NetworkNames() []string

NetworkNames allows to extract network names

type NetworkConfiguration

type NetworkConfiguration struct {
	Xmlns                          string           `xml:"xmlns,attr,omitempty"`
	BackwardCompatibilityMode      bool             `xml:"BackwardCompatibilityMode"`
	IPScopes                       *IPScopes        `xml:"IpScopes,omitempty"`
	ParentNetwork                  *Reference       `xml:"ParentNetwork,omitempty"`
	FenceMode                      string           `xml:"FenceMode"`
	RetainNetInfoAcrossDeployments *bool            `xml:"RetainNetInfoAcrossDeployments,omitempty"`
	Features                       *NetworkFeatures `xml:"Features,omitempty"`

	// SubInterface and DistributedInterface are mutually exclusive
	// When they are both nil, it means the "internal" interface (the default) will be used.
	// When one of them is set, the corresponding interface will be used.
	// They cannot be both set (we'll get an API error if we do).
	SubInterface         *bool `xml:"SubInterface,omitempty"`
	DistributedInterface *bool `xml:"DistributedInterface,omitempty"`
	GuestVlanAllowed     *bool `xml:"GuestVlanAllowed,omitempty"`
}

NetworkConfiguration is the configuration applied to a network. This is an abstract base type. The concrete types include those for vApp and Organization wide networks. Type: NetworkConfigurationType Namespace: http://www.vmware.com/vcloud/v1.5 Description: The configurations applied to a network. This is an abstract base type. The concrete types include those for vApp and Organization wide networks. Since: 0.9

type NetworkConnection

type NetworkConnection struct {
	Network                 string `xml:"network,attr"`                      // Name of the network to which this NIC is connected.
	NeedsCustomization      bool   `xml:"needsCustomization,attr,omitempty"` // True if this NIC needs customization.
	NetworkConnectionIndex  int    `xml:"NetworkConnectionIndex"`            // Virtual slot number associated with this NIC. First slot number is 0.
	IPAddress               string `xml:"IpAddress,omitempty"`               // IP address assigned to this NIC.
	ExternalIPAddress       string `xml:"ExternalIpAddress,omitempty"`       // If the network to which this NIC connects provides NAT services, the external address assigned to this NIC appears here.
	IsConnected             bool   `xml:"IsConnected"`                       // If the virtual machine is undeployed, this value specifies whether the NIC should be connected upon deployment. If the virtual machine is deployed, this value reports the current status of this NIC's connection, and can be updated to change that connection status.
	MACAddress              string `xml:"MACAddress,omitempty"`              // MAC address associated with the NIC.
	IPAddressAllocationMode string `xml:"IpAddressAllocationMode"`           // IP address allocation mode for this connection. One of: POOL (A static IP address is allocated automatically from a pool of addresses.) DHCP (The IP address is obtained from a DHCP service.) MANUAL (The IP address is assigned manually in the IpAddress element.) NONE (No IP addressing mode specified.)
	NetworkAdapterType      string `xml:"NetworkAdapterType,omitempty"`
}

NetworkConnection represents a network connection in the virtual machine. Type: NetworkConnectionType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a network connection in the virtual machine. Since: 0.9

type NetworkConnectionSection

type NetworkConnectionSection struct {
	// Extends OVF Section_Type
	// FIXME: Fix the OVF section
	XMLName xml.Name `xml:"NetworkConnectionSection"`
	Xmlns   string   `xml:"xmlns,attr,omitempty"`
	Ovf     string   `xml:"xmlns:ovf,attr,omitempty"`

	Info string `xml:"ovf:Info"`
	//
	HREF                          string               `xml:"href,attr,omitempty"`
	Type                          string               `xml:"type,attr,omitempty"`
	PrimaryNetworkConnectionIndex int                  `xml:"PrimaryNetworkConnectionIndex"`
	NetworkConnection             []*NetworkConnection `xml:"NetworkConnection,omitempty"`
	Link                          *Link                `xml:"Link,omitempty"`
}

NetworkConnectionSection the container for the network connections of this virtual machine. Type: NetworkConnectionSectionType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for the network connections of this virtual machine. Since: 0.9

type NetworkFeatures

type NetworkFeatures struct {
	DhcpService          *DhcpService          `xml:"DhcpService,omitempty"`          // Substitute for NetworkService. DHCP service settings
	FirewallService      *FirewallService      `xml:"FirewallService,omitempty"`      // Substitute for NetworkService. Firewall service settings
	NatService           *NatService           `xml:"NatService,omitempty"`           // Substitute for NetworkService. NAT service settings
	StaticRoutingService *StaticRoutingService `xml:"StaticRoutingService,omitempty"` // Substitute for NetworkService. Static Routing service settings

}

NetworkFeatures represents features of a network. Type: NetworkFeaturesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents features of a network. Since:

type NetworkProvider

type NetworkProvider struct {
	Name string `json:"name,omitempty"`
	ID   string `json:"id"`
}

NetworkProvider can be NSX-T manager or vCenter. ID is sufficient for creation purpose.

type NetworksList

type NetworksList struct {
	Networks []*Reference `xml:"Network,omitempty"`
}

NetworksListType contains a list of references to Org Networks Type: NetworksListType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of organization Networks. Since: 0.9

type NsxtEdgeCluster added in v2.11.9

type NsxtEdgeCluster struct {
	// ID contains edge cluster ID (UUID format)
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	// NodeCount shows number of nodes in the edge cluster
	NodeCount int `json:"nodeCount"`
	// NodeType usually holds "EDGE_NODE"
	NodeType string `json:"nodeType"`
	// DeploymentType (e.g. "VIRTUAL_MACHINE")
	DeploymentType string `json:"deploymentType"`
}

NsxtEdgeCluster is a struct to represent logical grouping of NSX-T Edge virtual machines.

type NsxtTier0Router

type NsxtTier0Router struct {
	ID          string `json:"id,omitempty"`
	Description string `json:"description"`
	DisplayName string `json:"displayName"`
}

NsxtTier0Router defines NSX-T Tier 0 router

type OVFItem

type OVFItem struct {
	XMLName         xml.Name `xml:"vcloud:Item"`
	XmlnsRasd       string   `xml:"xmlns:rasd,attr"`
	XmlnsVCloud     string   `xml:"xmlns:vcloud,attr"`
	XmlnsXsi        string   `xml:"xmlns:xsi,attr"`
	XmlnsVmw        string   `xml:"xmlns:vmw,attr,omitempty"`
	VCloudHREF      string   `xml:"vcloud:href,attr"`
	VCloudType      string   `xml:"vcloud:type,attr"`
	AllocationUnits string   `xml:"rasd:AllocationUnits"`
	Description     string   `xml:"rasd:Description"`
	ElementName     string   `xml:"rasd:ElementName"`
	InstanceID      int      `xml:"rasd:InstanceID"`
	Reservation     int      `xml:"rasd:Reservation"`
	ResourceType    int      `xml:"rasd:ResourceType"`
	VirtualQuantity int      `xml:"rasd:VirtualQuantity"`
	Weight          int      `xml:"rasd:Weight"`
	CoresPerSocket  *int     `xml:"vmw:CoresPerSocket,omitempty"`
	Link            *Link    `xml:"vcloud:Link"`
}

OVFItem is a horrible kludge to process OVF, needs to be fixed with proper types.

type OpenAPIEdgeGateway added in v2.11.9

type OpenAPIEdgeGateway struct {
	Status string `json:"status,omitempty"`
	ID     string `json:"id,omitempty"`
	// Name of edge gateway
	Name string `json:"name"`
	// Description of edge gateway
	Description string `json:"description"`
	// OrgVdc holds the organization vDC or vDC Group that this edge gateway belongs to. If the ownerRef is set to a VDC
	// Group, this gateway will be available across all the participating Organization vDCs in the VDC Group.
	OrgVdc *OpenApiReference `json:"orgVdc,omitempty"`
	// Org holds the organization to which the gateway belongs.
	Org *OpenApiReference `json:"orgRef,omitempty"`
	// EdgeGatewayUplink defines uplink connections for the edge gateway.
	EdgeGatewayUplinks []EdgeGatewayUplinks `json:"edgeGatewayUplinks"`
	// DistributedRoutingEnabled is a flag indicating whether distributed routing is enabled or not. The default is false.
	DistributedRoutingEnabled *bool `json:"distributedRoutingEnabled,omitempty"`
	// EdgeClusterConfig holds Edge Cluster Configuration for the Edge Gateway. Can be specified if a gateway needs to be
	// placed on a specific set of Edge Clusters. For NSX-T Edges, user should specify the ID of the NSX-T edge cluster as
	// the value of primaryEdgeCluster's backingId. The gateway defaults to the Edge Cluster of the connected External
	// Network's backing Tier-0 router, if nothing is specified.
	//
	// Note. The value of secondaryEdgeCluster will be set to NULL for NSX-T edge gateways. For NSX-V Edges, this is
	// read-only and the legacy API must be used for edge specific placement.
	EdgeClusterConfig *OpenAPIEdgeGatewayEdgeClusterConfig `json:"edgeClusterConfig,omitempty"`
	// OrgVdcNetworkCount holds the number of Org VDC networks connected to the gateway.
	OrgVdcNetworkCount *int `json:"orgVdcNetworkCount,omitempty"`
	// GatewayBacking must contain backing details of the edge gateway only if importing an NSX-T router.
	GatewayBacking *OpenAPIEdgeGatewayBacking `json:"gatewayBacking,omitempty"`

	// ServiceNetworkDefinition holds network definition in CIDR form that DNS and DHCP service on an NSX-T edge will run
	// on. The subnet prefix length must be 27. This property applies to creating or importing an NSX-T Edge. This is not
	// supported for VMC. If nothing is set, the default is 192.168.255.225/27. The DHCP listener IP network is on
	// 192.168.255.225/30. The DNS listener IP network is on 192.168.255.228/32. This field cannot be updated.
	ServiceNetworkDefinition string `json:"serviceNetworkDefinition,omitempty"`
}

OpenAPIEdgeGateway structure supports marshalling both - NSX-V and NSX-T edge gateways as returned by OpenAPI endpoint (cloudapi/1.0.0edgeGateways/), but the endpoint only allows to create NSX-T edge gateways.

type OpenAPIEdgeGatewayBacking added in v2.11.9

type OpenAPIEdgeGatewayBacking struct {
	BackingID       string          `json:"backingId,omitempty"`
	GatewayType     string          `json:"gatewayType,omitempty"`
	NetworkProvider NetworkProvider `json:"networkProvider"`
}

OpenAPIEdgeGatewayBacking specifies edge gateway backing details

type OpenAPIEdgeGatewayEdgeCluster added in v2.11.9

type OpenAPIEdgeGatewayEdgeCluster struct {
	EdgeClusterRef OpenApiReference `json:"edgeClusterRef"`
	BackingID      string           `json:"backingId"`
}

OpenAPIEdgeGatewayEdgeCluster allows to specify edge cluster reference

type OpenAPIEdgeGatewayEdgeClusterConfig added in v2.11.9

type OpenAPIEdgeGatewayEdgeClusterConfig struct {
	PrimaryEdgeCluster   OpenAPIEdgeGatewayEdgeCluster `json:"primaryEdgeCluster,omitempty"`
	SecondaryEdgeCluster OpenAPIEdgeGatewayEdgeCluster `json:"secondaryEdgeCluster,omitempty"`
}

type OpenAPIEdgeGatewaySubnetValue added in v2.11.9

type OpenAPIEdgeGatewaySubnetValue struct {
	// Gateway specified subnet gateway
	Gateway string `json:"gateway"`
	// PrefixLength from CIDR format (e.g. 24 from 192.168.1.1/24)
	PrefixLength int `json:"prefixLength"`
	// DNSSuffix can only be used for reading NSX-V edge gateway
	DNSSuffix string `json:"dnsSuffix,omitempty"`
	// DNSServer1 can only be used for reading NSX-V edge gateway
	DNSServer1 string `json:"dnsServer1,omitempty"`
	// DNSServer2 can only be used for reading NSX-V edge gateway
	DNSServer2 string `json:"dnsServer2,omitempty"`
	// IPRanges contain IP allocations
	IPRanges *OpenApiIPRanges `json:"ipRanges,omitempty"`
	// Enabled toggles if the subnet is enabled
	Enabled              bool   `json:"enabled"`
	TotalIPCount         int    `json:"totalIpCount,omitempty"`
	UsedIPCount          int    `json:"usedIpCount,omitempty"`
	PrimaryIP            string `json:"primaryIp,omitempty"`
	AutoAllocateIPRanges bool   `json:"autoAllocateIpRanges,omitempty"`
}

OpenAPIEdgeGatewaySubnetValue holds one subnet definition in external network

type OpenAPIEdgeGatewaySubnets added in v2.11.9

type OpenAPIEdgeGatewaySubnets struct {
	Values []OpenAPIEdgeGatewaySubnetValue `json:"values"`
}

OpenAPIEdgeGatewaySubnets lists slice of OpenAPIEdgeGatewaySubnetValue values

type OpenApiError

type OpenApiError struct {
	MinorErrorCode string `json:"minorErrorCode"`
	Message        string `json:"message"`
	StackTrace     string `json:"stackTrace"`
}

OpenApiError helps to marshal and provider meaningful `Error` for

func (OpenApiError) Error

func (openApiError OpenApiError) Error() string

Error method implements Go's default `error` interface for CloudAPI errors formats them for human readable output.

func (OpenApiError) ErrorWithStack

func (openApiError OpenApiError) ErrorWithStack() string

ErrorWithStack is the same as `Error()`, but also includes stack trace returned by API which is usually lengthy.

type OpenApiIPRangeValues added in v2.11.9

type OpenApiIPRangeValues = ExternalNetworkV2IPRange

OpenApiIPRangeValues is a type alias to reuse the same definitions with appropriate names

type OpenApiIPRanges added in v2.11.9

type OpenApiIPRanges = ExternalNetworkV2IPRanges

OpenApiIPRanges is a type alias to reuse the same definitions with appropriate names

type OpenApiPages

type OpenApiPages struct {
	// ResultTotal reports total results available
	ResultTotal int `json:"resultTotal,omitempty"`
	// PageCount reports total result pages available
	PageCount int `json:"pageCount,omitempty"`
	// Page reports current page of result
	Page int `json:"page,omitempty"`
	// PageSize reports page size
	PageSize int `json:"pageSize,omitempty"`
	// Associations ...
	Associations interface{} `json:"associations,omitempty"`
	// Values holds types depending on the endpoint therefore `json.RawMessage` is used to dynamically unmarshal into
	// specific type as required
	Values json.RawMessage `json:"values,omitempty"`
}

OpenApiPages unwraps pagination for "Get All" endpoints in OpenAPI. Values kept in json.RawMessage helps to decouple marshalling paging related information from exact type related information. Paging can be handled dynamically this way while values can be marshaled into exact types.

type OpenApiReference added in v2.11.9

type OpenApiReference struct {
	Name string `json:"name,omitempty"`
	ID   string `json:"id,omitempty"`
}

OpenApiReference is a generic reference type commonly used throughout OpenAPI endpoints

type Org

type Org struct {
	HREF         string           `xml:"href,attr,omitempty"`
	Type         string           `xml:"type,attr,omitempty"`
	ID           string           `xml:"id,attr,omitempty"`
	OperationKey string           `xml:"operationKey,attr,omitempty"`
	Name         string           `xml:"name,attr"`
	Description  string           `xml:"Description,omitempty"`
	FullName     string           `xml:"FullName"`
	IsEnabled    bool             `xml:"IsEnabled,omitempty"`
	Link         LinkList         `xml:"Link,omitempty"`
	Tasks        *TasksInProgress `xml:"Tasks,omitempty"`
}

Org represents the user view of a vCloud Director organization. Type: OrgType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the user view of a vCloud Director organization. Since: 0.9

type OrgFederationSettings

type OrgFederationSettings struct {
	HREF string   `xml:"href,attr,omitempty"` // The URI of the entity.
	Type string   `xml:"type,attr,omitempty"` // The MIME type of the entity.
	Link LinkList `xml:"Link,omitempty"`      // A reference to an entity or operation associated with this object.

	Enabled bool `xml:"Enabled,omitempty"`
}

type OrgGeneralSettings

type OrgGeneralSettings struct {
	HREF string   `xml:"href,attr,omitempty"` // The URI of the entity.
	Type string   `xml:"type,attr,omitempty"` // The MIME type of the entity.
	Link LinkList `xml:"Link,omitempty"`      // A reference to an entity or operation associated with this object.

	CanPublishCatalogs       bool `xml:"CanPublishCatalogs,omitempty"`
	DeployedVMQuota          int  `xml:"DeployedVMQuota,omitempty"`
	StoredVMQuota            int  `xml:"StoredVmQuota,omitempty"`
	UseServerBootSequence    bool `xml:"UseServerBootSequence,omitempty"`
	DelayAfterPowerOnSeconds int  `xml:"DelayAfterPowerOnSeconds,omitempty"`
}

OrgGeneralSettingsType represents the general settings for a vCloud Director organization. Type: OrgGeneralSettingsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the user view of a vCloud Director organization. Since: 0.9

type OrgGroupList

type OrgGroupList struct {
	Group []*Reference `xml:"GroupReference,omitempty"`
}

type OrgLdapGroupAttributes

type OrgLdapGroupAttributes struct {
	ObjectClass          string `xml:"ObjectClass"`
	ObjectIdentifier     string `xml:"ObjectIdentifier"`
	GroupName            string `xml:"GroupName"`
	Membership           string `xml:"Membership"`
	BackLinkIdentifier   string `xml:"BackLinkIdentifier,omitempty"`
	MembershipIdentifier string `xml:"MembershipIdentifier"`
}

OrgLdapGroupAttributes represents the ldap group attribute settings for a vCloud Director organization. Type: OrgLdapGroupAttributesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the ldap group attribute settings of a vCloud Director organization. Since: 0.9 Note. Order of these fields matter and API will error if it is changed

type OrgLdapSettingsType

type OrgLdapSettingsType struct {
	XMLName xml.Name `xml:"OrgLdapSettings"`
	Xmlns   string   `xml:"xmlns,attr,omitempty"`
	HREF    string   `xml:"href,attr,omitempty"` // The URI of the entity.
	Type    string   `xml:"type,attr,omitempty"` // The MIME type of the entity.
	Link    LinkList `xml:"Link,omitempty"`      // A reference to an entity or operation associated with this object.

	CustomUsersOu         string                 `xml:"CustomUsersOu,omitempty"`         // If OrgLdapMode is SYSTEM, specifies an LDAP attribute=value pair to use for OU (organizational unit).
	OrgLdapMode           string                 `xml:"OrgLdapMode,omitempty"`           // LDAP mode you want
	CustomOrgLdapSettings *CustomOrgLdapSettings `xml:"CustomOrgLdapSettings,omitempty"` // Needs to be set if user chooses custom mode
}

OrgLdapSettingsType represents the ldap settings for a vCloud Director organization. Type: OrgLdapSettingsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the ldap settings of a vCloud Director organization. Since: 0.9

type OrgLdapUserAttributes

type OrgLdapUserAttributes struct {
	ObjectClass               string `xml:"ObjectClass"`
	ObjectIdentifier          string `xml:"ObjectIdentifier"`
	Username                  string `xml:"UserName,omitempty"`
	Email                     string `xml:"Email"`
	FullName                  string `xml:"FullName"`
	GivenName                 string `xml:"GivenName"`
	Surname                   string `xml:"Surname"`
	Telephone                 string `xml:"Telephone"`
	GroupMembershipIdentifier string `xml:"GroupMembershipIdentifier"`
	GroupBackLinkIdentifier   string `xml:"GroupBackLinkIdentifier,omitempty"`
}

OrgLdapUserAttributesType represents the ldap user attribute settings for a vCloud Director organization. Type: OrgLdapUserAttributesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the ldap user attribute settings of a vCloud Director organization. Since: 0.9 Note. Order of these fields matter and API will error if it is changed.

type OrgList

type OrgList struct {
	Link LinkList `xml:"Link,omitempty"`
	Org  []*Org   `xml:"Org,omitempty"`
}

OrgList represents a lists of Organizations Type: OrgType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of vCloud Director organizations. Since: 0.9

type OrgRoleType

type OrgRoleType struct {
	RoleReference []*Reference `xml:"RoleReference,omitempty"`
}

List of available roles in the organization

type OrgSettings

type OrgSettings struct {
	//attributes
	HREF string `xml:"href,attr,omitempty"` // The URI of the entity.
	Type string `xml:"type,attr,omitempty"` // The MIME type of the entity.
	//elements
	Link                    LinkList                   `xml:"Link,omitempty"`               // A reference to an entity or operation associated with this object.
	OrgGeneralSettings      *OrgGeneralSettings        `xml:"OrgGeneralSettings,omitempty"` // General Settings for the org, not-required
	OrgVAppLeaseSettings    *VAppLeaseSettings         `xml:"VAppLeaseSettings,omitempty"`
	OrgVAppTemplateSettings *VAppTemplateLeaseSettings `xml:"VAppTemplateLeaseSettings,omitempty"` // Vapp template lease settings, not required
	OrgLdapSettings         *OrgLdapSettingsType       `xml:"OrgLdapSettings,omitempty"`           //LDAP settings, not-requried, defaults to none

}

OrgSettingsType represents the settings for a vCloud Director organization. Type: OrgSettingsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the settings of a vCloud Director organization. Since: 0.9

type OrgUserList

type OrgUserList struct {
	User []*Reference `xml:"UserReference,omitempty"`
}

List of the users within the organization

type OrgVDCNetwork

type OrgVDCNetwork struct {
	XMLName         xml.Name              `xml:"OrgVdcNetwork"`
	Xmlns           string                `xml:"xmlns,attr,omitempty"`
	HREF            string                `xml:"href,attr,omitempty"`
	Type            string                `xml:"type,attr,omitempty"`
	ID              string                `xml:"id,attr,omitempty"`
	OperationKey    string                `xml:"operationKey,attr,omitempty"`
	Name            string                `xml:"name,attr"`
	Status          string                `xml:"status,attr,omitempty"`
	Link            []Link                `xml:"Link,omitempty"`
	Description     string                `xml:"Description,omitempty"`
	Configuration   *NetworkConfiguration `xml:"Configuration,omitempty"`
	EdgeGateway     *Reference            `xml:"EdgeGateway,omitempty"`
	ServiceConfig   *GatewayFeatures      `xml:"ServiceConfig,omitempty"` // Specifies the service configuration for an isolated Org VDC networks
	IsShared        bool                  `xml:"IsShared"`
	VimPortGroupRef []*VimObjectRef       `xml:"VimPortGroupRef,omitempty"` // Needed to set up DHCP inside ServiceConfig
	Tasks           *TasksInProgress      `xml:"Tasks,omitempty"`
}

OrgVDCNetwork represents an Org VDC network in the vCloud model. Type: OrgVdcNetworkType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents an Org VDC network in the vCloud model. Since: 5.1

type Owner

type Owner struct {
	HREF string     `xml:"href,attr,omitempty"`
	Type string     `xml:"type,attr,omitempty"`
	Link LinkList   `xml:"Link,omitempty"`
	User *Reference `xml:"User"`
}

Owner represents the owner of this entity. Type: OwnerType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the owner of this entity. Since: 1.5

type PortGroupRecordType

type PortGroupRecordType struct {
	Xmlns         string  `xml:"xmlns,attr,omitempty"`
	HREF          string  `xml:"href,attr,omitempty"`
	Id            string  `xml:"id,attr,omitempty"`
	Type          string  `xml:"type,attr,omitempty"`
	MoRef         string  `xml:"moref,attr,omitempty"`
	Name          string  `xml:"name,attr,omitempty"`
	PortgroupType string  `xml:"portgroupType,attr,omitempty"`
	Vc            string  `xml:"vc,attr,omitempty"`
	VcName        string  `xml:"vcName,attr,omitempty"`
	IsVCEnabled   bool    `xml:"isVCEnabled,attr,omitempty"`
	Network       string  `xml:"network,attr,omitempty"`
	NetworkName   string  `xml:"networkName,attr,omitempty"`
	ScopeType     int     `xml:"scopeType,attr,omitempty"` // Scope of network using the portgroup(1=Global, 2=Organization, 3=vApp)
	Link          []*Link `xml:"Link,omitempty"`
}

Represents port group Reference: vCloud API 27.0 - Port group type https://code.vmware.com/apis/72/doc/doc/types/QueryResultPortgroupRecordType.html

type ProductSection

type ProductSection struct {
	Info     string      `xml:"Info,omitempty"`
	Property []*Property `xml:"http://schemas.dmtf.org/ovf/envelope/1 Property,omitempty"`
}

type ProductSectionList

type ProductSectionList struct {
	XMLName        xml.Name        `xml:"ProductSectionList"`
	Ovf            string          `xml:"xmlns:ovf,attr,omitempty"`
	Xmlns          string          `xml:"xmlns,attr"`
	ProductSection *ProductSection `xml:"http://schemas.dmtf.org/ovf/envelope/1 ProductSection,omitempty"`
}

func (*ProductSectionList) SortByPropertyKeyName

func (p *ProductSectionList) SortByPropertyKeyName()

SortByPropertyKeyName allows to sort ProductSectionList property slice by key name as the API is does not always return an ordered slice

type Property

type Property struct {
	Key              string `xml:"http://schemas.dmtf.org/ovf/envelope/1 key,attr,omitempty"`
	Label            string `xml:"http://schemas.dmtf.org/ovf/envelope/1 Label,omitempty"`
	Description      string `xml:"http://schemas.dmtf.org/ovf/envelope/1 Description,omitempty"`
	DefaultValue     string `xml:"http://schemas.dmtf.org/ovf/envelope/1 value,attr"`
	Value            *Value `xml:"http://schemas.dmtf.org/ovf/envelope/1 Value,omitempty"`
	Type             string `xml:"http://schemas.dmtf.org/ovf/envelope/1 type,attr,omitempty"`
	UserConfigurable bool   `xml:"http://schemas.dmtf.org/ovf/envelope/1 userConfigurable,attr"`
}

type PublishExternalCatalogParams

type PublishExternalCatalogParams struct {
	IsCachedEnabled          bool   `xml:"IsCacheEnabled,omitempty"`
	IsPublishedExternally    bool   `xml:"IsPublishedExternally,omitempty"`
	Password                 string `xml:"Password,omitempty"`
	PreserveIdentityInfoFlag bool   `xml:"PreserveIdentityInfoFlag,omitempty"`
	CatalogPublishedUrl      string `xml:"catalogPublishedUrl,omitempty"`
}

PublishExternalCatalogParamsType represents the configuration parameters of a catalog published externally Type: PublishExternalCatalogParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the configuration parameters of a catalog published externally. Since: 5.5

type QueryResultCatalogItemType

type QueryResultCatalogItemType struct {
	HREF         string    `xml:"href,attr,omitempty"`         // The URI of the entity.
	ID           string    `xml:"id,attr,omitempty"`           // Catalog Item ID.
	Type         string    `xml:"type,attr,omitempty"`         // The MIME type of the entity.
	Entity       string    `xml:"entity,attr,omitempty"`       // Entity reference or ID
	EntityName   string    `xml:"entityName,attr,omitempty"`   // Entity name
	EntityType   string    `xml:"entityType,attr,omitempty"`   // Entity name
	Catalog      string    `xml:"catalog,attr,omitempty"`      // Catalog reference or ID
	CatalogName  string    `xml:"catalogName,attr,omitempty"`  // Catalog name
	OwnerName    string    `xml:"ownerName,attr,omitempty"`    // Owner name
	Owner        string    `xml:"owner,attr,omitempty"`        // Owner reference or ID
	IsPublished  bool      `xml:"isPublished,attr,omitempty"`  // True if this entity is in a published catalog
	Vdc          string    `xml:"vdc,attr,omitempty"`          // VDC reference or ID
	VdcName      string    `xml:"vdcName,attr,omitempty"`      // VDC name
	IsVdcEnabled bool      `xml:"isVdcEnabled,attr,omitempty"` // True if the containing VDC is enabled
	CreationDate string    `xml:"creationDate,attr,omitempty"` // Creation date
	IsExpired    bool      `xml:"isExpired,attr,omitempty"`    // True if this entity is expired
	Status       string    `xml:"status,attr,omitempty"`       // Status
	Name         string    `xml:"name,attr,omitempty"`         // Catalog Item name.
	Link         *Link     `xml:"Link,omitempty"`
	Metadata     *Metadata `xml:"Metadata,omitempty"`
}

QueryResultCatalogItemType represents a catalog item as query result

type QueryResultEdgeGatewayRecordType

type QueryResultEdgeGatewayRecordType struct {
	// Attributes
	HREF                string `xml:"href,attr,omitempty"`                // The URI of the entity.
	Type                string `xml:"type,attr,omitempty"`                // The MIME type of the entity.
	Name                string `xml:"name,attr,omitempty"`                // EdgeGateway name.
	Vdc                 string `xml:"vdc,attr,omitempty"`                 // VDC Reference or ID
	OrgVdcName          string `xml:"orgVdcName,attr,omitempty"`          // VDC name
	NumberOfExtNetworks int    `xml:"numberOfExtNetworks,attr,omitempty"` // Number of external networks connected to the edgeGateway.	Yes	Yes
	NumberOfOrgNetworks int    `xml:"numberOfOrgNetworks,attr,omitempty"` // Number of org VDC networks connected to the edgeGateway	Yes	Yes
	IsBusy              bool   `xml:"isBusy,attr"`                        // True if this Edge Gateway is busy.	Yes	Yes
	GatewayStatus       string `xml:"gatewayStatus,attr,omitempty"`       //
	HaStatus            string `xml:"haStatus,attr,omitempty"`            // High Availability Status of the edgeGateway	Yes	Yes
}

QueryResultEdgeGatewayRecordType represents an edge gateway record as query result.

type QueryResultEdgeGatewayRecordsType

type QueryResultEdgeGatewayRecordsType struct {
	// Attributes
	HREF     string  `xml:"href,attr,omitempty"`     // The URI of the entity.
	Type     string  `xml:"type,attr,omitempty"`     // The MIME type of the entity.
	Name     string  `xml:"name,attr,omitempty"`     // The name of the entity.
	Page     int     `xml:"page,attr,omitempty"`     // Page of the result set that this container holds. The first page is page number 1.
	PageSize int     `xml:"pageSize,attr,omitempty"` // Page size, as a number of records or references.
	Total    float64 `xml:"total,attr,omitempty"`    // Total number of records or references in the container.
	// Elements
	Link              []*Link                             `xml:"Link,omitempty"`    // A reference to an entity or operation associated with this object.
	EdgeGatewayRecord []*QueryResultEdgeGatewayRecordType `xml:"EdgeGatewayRecord"` // A record representing a EdgeGateway result.
}

QueryResultEdgeGatewayRecordsType is a container for query results in records format. Type: QueryResultRecordsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for query results in records format. Since: 1.5

type QueryResultNetworkPoolRecordType

type QueryResultNetworkPoolRecordType struct {
	// Attributes
	HREF            string `xml:"href,attr,omitempty"` // The URI of the entity.
	Name            string `xml:"name,attr,omitempty"` // Network pool name.
	IsBusy          bool   `xml:"isBusy,attr,omitempty"`
	NetworkPoolType int    `xml:"networkPoolType,attr,omitempty"`
}

QueryResultNetworkPoolRecordType represents a network pool as query result.

type QueryResultNsxtManagerRecordType

type QueryResultNsxtManagerRecordType struct {
	Xmlns      string  `xml:"xmlns,attr,omitempty"`
	Name       string  `xml:"name,attr"`
	URL        string  `xml:"url,attr"`
	HREF       string  `xml:"href,attr"`
	Site       string  `xml:"site,attr"`
	LocationId string  `xml:"locationId,attr"`
	SiteName   string  `xml:"siteName,attr"`
	Link       []*Link `xml:"Link,omitempty"`
}

type QueryResultOrgVdcNetworkRecordType

type QueryResultOrgVdcNetworkRecordType struct {
	Xmlns              string    `xml:"xmlns,attr,omitempty"`
	HREF               string    `xml:"href,attr,omitempty"`
	Id                 string    `xml:"id,attr,omitempty"`
	Type               string    `xml:"type,attr,omitempty"`
	Name               string    `xml:"name,attr,omitempty"`
	DefaultGateway     string    `xml:"defaultGateway,attr,omitempty"`
	Netmask            string    `xml:"netmask,attr,omitempty"`
	Dns1               string    `xml:"dns1,attr,omitempty"`
	Dns2               string    `xml:"dns2,attr,omitempty"`
	DnsSuffix          string    `xml:"dnsSuffix,attr,omitempty"`
	LinkType           int       `xml:"linkType,attr,omitempty"` // 0 = direct, 1 = routed, 2 = isolated
	ConnectedTo        string    `xml:"connectedTo,attr,omitempty"`
	Vdc                string    `xml:"vdc,attr,omitempty"`
	IsBusy             bool      `xml:"isBusy,attr,omitempty"`
	IsShared           bool      `xml:"isShared,attr,omitempty"`
	VdcName            string    `xml:"vdcName,attr,omitempty"`
	IsIpScopeInherited bool      `xml:"isIpScopeInherited,attr,omitempty"`
	Link               []*Link   `xml:"Link,omitempty"`
	Metadata           *Metadata `xml:"Metadata,omitempty"`
}

Represents org VDC Network Reference: vCloud API 27.0 - Org VDC Network https://code.vmware.com/apis/72/doc/doc/types/QueryResultOrgVdcNetworkRecordType.html

type QueryResultOrgVdcStorageProfileRecordType

type QueryResultOrgVdcStorageProfileRecordType struct {
	// Attributes
	HREF                    string `xml:"href,attr,omitempty"` // The URI of the entity.
	Name                    string `xml:"name,attr,omitempty"` // Storage Profile name.
	VdcHREF                 string `xml:"vdc,attr,omitempty"`
	VdcName                 string `xml:"vdcName,attr,omitempty"`
	IsDefaultStorageProfile bool   `xml:"isDefaultStorageProfile,attr,omitempty"`
	IsEnabled               bool   `xml:"isEnabled,attr,omitempty"`
	IsVdcBusy               bool   `xml:"isVdcBusy,attr,omitempty"`
	NumberOfConditions      int    `xml:"numberOfConditions,attr,omitempty"`
	StorageUsedMB           int    `xml:"storageUsedMB,attr,omitempty"`
	StorageLimitMB          int    `xml:"storageLimitMB,attr,omitempty"`
}

QueryResultOrgVdcStorageProfileRecordType represents a storage profile as query result.

type QueryResultProviderVdcStorageProfileRecordType

type QueryResultProviderVdcStorageProfileRecordType struct {
	// Attributes
	HREF                 string `xml:"href,attr,omitempty"` // The URI of the entity.
	Name                 string `xml:"name,attr,omitempty"` // Provider VDC Storage Profile name.
	ProviderVdcHREF      string `xml:"providerVdc,attr,omitempty"`
	VcHREF               string `xml:"vc,attr,omitempty"`
	StorageProfileMoref  string `xml:"storageProfileMoref,attr,omitempty"`
	IsEnabled            bool   `xml:"isEnabled,attr,omitempty"`
	StorageProvisionedMB int64  `xml:"storageProvisionedMB,attr,omitempty"`
	StorageRequestedMB   int64  `xml:"storageRequestedMB,attr,omitempty"`
	StorageTotalMB       int64  `xml:"storageTotalMB,attr,omitempty"`
	StorageUsedMB        int64  `xml:"storageUsedMB,attr,omitempty"`
	NumberOfConditions   int    `xml:"numberOfConditions,attr,omitempty"`
}

QueryResultProviderVdcStorageProfileRecordType represents a Provider VDC storage profile as query result.

type QueryResultRecordsType

type QueryResultRecordsType struct {
	// Attributes
	HREF     string  `xml:"href,attr,omitempty"`     // The URI of the entity.
	Type     string  `xml:"type,attr,omitempty"`     // The MIME type of the entity.
	Name     string  `xml:"name,attr,omitempty"`     // The name of the entity.
	Page     int     `xml:"page,attr,omitempty"`     // Page of the result set that this container holds. The first page is page number 1.
	PageSize int     `xml:"pageSize,attr,omitempty"` // Page size, as a number of records or references.
	Total    float64 `xml:"total,attr,omitempty"`    // Total number of records or references in the container.
	// Elements
	Link                            []*Link                                           `xml:"Link,omitempty"`                  // A reference to an entity or operation associated with this object.
	EdgeGatewayRecord               []*QueryResultEdgeGatewayRecordType               `xml:"EdgeGatewayRecord"`               // A record representing a EdgeGateway result.
	VMRecord                        []*QueryResultVMRecordType                        `xml:"VMRecord"`                        // A record representing a VM result.
	AdminVMRecord                   []*QueryResultVMRecordType                        `xml:"AdminVMRecord"`                   // A record representing a Admin VM result.
	VAppRecord                      []*QueryResultVAppRecordType                      `xml:"VAppRecord"`                      // A record representing a VApp result.
	AdminVAppRecord                 []*QueryResultVAppRecordType                      `xml:"AdminVAppRecord"`                 // A record representing a VApp result as admin.
	OrgVdcStorageProfileRecord      []*QueryResultOrgVdcStorageProfileRecordType      `xml:"OrgVdcStorageProfileRecord"`      // A record representing storage profiles
	MediaRecord                     []*MediaRecordType                                `xml:"MediaRecord"`                     // A record representing media
	AdminMediaRecord                []*MediaRecordType                                `xml:"AdminMediaRecord"`                // A record representing Admin media
	VMWProviderVdcRecord            []*QueryResultVMWProviderVdcRecordType            `xml:"VMWProviderVdcRecord"`            // A record representing a Provider VDC result.
	ProviderVdcStorageProfileRecord []*QueryResultProviderVdcStorageProfileRecordType `xml:"ProviderVdcStorageProfileRecord"` // A record representing a Provider VDC storage profile result
	NetworkPoolRecord               []*QueryResultNetworkPoolRecordType               `xml:"NetworkPoolRecord"`               // A record representing a network pool
	DiskRecord                      []*DiskRecordType                                 `xml:"DiskRecord"`                      // A record representing a independent Disk.
	AdminDiskRecord                 []*DiskRecordType                                 `xml:"AdminDiskRecord"`                 // A record representing a independent Disk.
	VirtualCenterRecord             []*QueryResultVirtualCenterRecordType             `xml:"VirtualCenterRecord"`             // A record representing a vSphere server
	PortGroupRecord                 []*PortGroupRecordType                            `xml:"PortgroupRecord"`                 // A record representing a port group
	OrgVdcNetworkRecord             []*QueryResultOrgVdcNetworkRecordType             `xml:"OrgVdcNetworkRecord"`             // A record representing a org VDC network
	CatalogRecord                   []*CatalogRecord                                  `xml:"CatalogRecord"`                   // A record representing a catalog
	AdminCatalogRecord              []*CatalogRecord                                  `xml:"AdminCatalogRecord"`              // A record representing an admin catalog
	CatalogItemRecord               []*QueryResultCatalogItemType                     `xml:"CatalogItemRecord"`               // A record representing a catalog item
	AdminCatalogItemRecord          []*QueryResultCatalogItemType                     `xml:"AdminCatalogItemRecord"`          // A record representing an admin catalog item
	VappTemplateRecord              []*QueryResultVappTemplateType                    `xml:"VAppTemplateRecord"`              // A record representing a vApp template
	AdminVappTemplateRecord         []*QueryResultVappTemplateType                    `xml:"AdminVAppTemplateRecord"`         // A record representing an admin vApp template
	NsxtManagerRecord               []*QueryResultNsxtManagerRecordType               `xml:"NsxTManagerRecord"`               // A record representing NSX-T manager
}

type QueryResultVAppRecordType

type QueryResultVAppRecordType struct {
	// Attributes
	HREF                    string    `xml:"href,attr,omitempty"`         // The URI of the entity.
	Name                    string    `xml:"name,attr"`                   // The name of the entity.
	CreationDate            string    `xml:"creationDate,attr,omitempty"` // Creation date/time of the vApp.
	Busy                    bool      `xml:"isBusy,attr,omitempty"`
	Deployed                bool      `xml:"isDeployed,attr,omitempty"` // True if the vApp is deployed.
	Enabled                 bool      `xml:"isEnabled,attr,omitempty"`
	Expired                 bool      `xml:"isExpired,attr,omitempty"`
	MaintenanceMode         bool      `xml:"isInMaintenanceMode,attr,omitempty"`
	Public                  bool      `xml:"isPublic,attr,omitempty"`
	OwnerName               string    `xml:"ownerName,attr,omitempty"`
	Status                  string    `xml:"status,attr,omitempty"`
	VdcHREF                 string    `xml:"vdc,attr,omitempty"`
	VdcName                 string    `xml:"vdcName,attr,omitempty"`
	NumberOfVMs             int       `xml:"numberOfVMs,attr,omitempty"`
	NumberOfCPUs            int       `xml:"numberOfCpus,attr,omitempty"`
	CpuAllocationMhz        int       `xml:"cpuAllocationMhz,attr,omitempty"`
	CpuAllocationInMhz      int       `xml:"cpuAllocationInMhz,attr,omitempty"`
	StorageKB               int       `xml:"storageKB,attr,omitempty"`
	MemoryAllocationMB      int       `xml:"memoryAllocationMB,attr,omitempty"`
	AutoDeleteNotified      bool      `xml:"isAutoDeleteNotified,attr,omitempty"`
	AutoUndeployNotified    bool      `xml:"isAutoUndeployNotified,attr,omitempty"`
	VdcEnabled              bool      `xml:"isVdcEnabled,attr,omitempty"`
	HonorBootOrder          bool      `xml:"honorBookOrder,attr,omitempty"`
	HighestSupportedVersion int       `xml:"pvdcHighestSupportedHardwareVersion,attr,omitempty"`
	LowestHardwareVersion   int       `xml:"lowestHardwareVersionInVApp,attr,omitempty"`
	TaskHREF                string    `xml:"task,attr,omitempty"`
	TaskStatusName          string    `xml:"taskStatusName,attr,omitempty"`
	TaskStatus              string    `xml:"TaskStatus,attr,omitempty"`
	TaskDetails             string    `xml:"taskDetails,attr,omitempty"`
	MetaData                *Metadata `xml:"Metadata,omitempty"`
}

QueryResultVAppRecordType represents a VM record as query result.

type QueryResultVMRecordType

type QueryResultVMRecordType struct {
	// Attributes
	HREF                     string    `xml:"href,attr,omitempty"` // The URI of the entity.
	ID                       string    `xml:"id,attr,omitempty"`
	Name                     string    `xml:"name,attr,omitempty"`          // VM name.
	Type                     string    `xml:"type,attr,omitempty"`          // Contains the type of the resource.
	ContainerName            string    `xml:"containerName,attr,omitempty"` // The name of the vApp or vApp template that contains this VM.
	ContainerID              string    `xml:"container,attr,omitempty"`     // The ID of the vApp or vApp template that contains this VM.
	OwnerName                string    `xml:"ownerName,attr,omitempty"`
	Owner                    string    `xml:"owner,attr,omitempty"`
	VdcHREF                  string    `xml:"vdc,attr,omitempty"`
	VAppTemplate             bool      `xml:"isVAppTemplate,attr,omitempty"`
	Deleted                  bool      `xml:"isDeleted,attr,omitempty"`
	GuestOS                  string    `xml:"guestOs,attr,omitempty"`
	Cpus                     int       `xml:"numberOfCpus,attr,omitempty"`
	MemoryMB                 int       `xml:"memoryMB,attr,omitempty"`
	Status                   string    `xml:"status,attr,omitempty"`
	NetworkName              string    `xml:"networkName,attr,omitempty"`
	NetworkHref              string    `xml:"network,attr,omitempty"`
	IpAddress                string    `xml:"ipAddress,attr,omitempty"` // If configured, the IP Address of the VM on the primary network, otherwise empty.
	Busy                     bool      `xml:"isBusy,attr,omitempty"`
	Deployed                 bool      `xml:"isDeployed,attr,omitempty"` // True if the virtual machine is deployed.
	Published                bool      `xml:"isPublished,attr,omitempty"`
	CatalogName              string    `xml:"catalogName,attr,omitempty"`
	HardwareVersion          int       `xml:"hardwareVersion,attr,omitempty"`
	VmToolsStatus            string    `xml:"vmToolsStatus,attr,omitempty"`
	MaintenanceMode          bool      `xml:"isInMaintenanceMode,attr,omitempty"`
	AutoNature               bool      `xml:"isAutoNature,attr,omitempty"` //  	True if the parent vApp is a managed vApp
	StorageProfileName       string    `xml:"storageProfileName,attr,omitempty"`
	GcStatus                 string    `xml:"gcStatus,attr,omitempty"` // GC status of this VM.
	AutoUndeployDate         string    `xml:"autoUndeployDate,attr,omitempty"`
	AutoDeleteDate           string    `xml:"autoDeleteDate,attr,omitempty"`
	AutoUndeployNotified     bool      `xml:"isAutoUndeployNotified,attr,omitempty"`
	AutoDeleteNotified       bool      `xml:"isAutoDeleteNotified,attr,omitempty"`
	IsComputePolicyCompliant bool      `xml:"isComputePolicyCompliant,attr,omitempty"`
	VmSizingPolicyId         string    `xml:"vmSizingPolicyId,attr,omitempty"`
	VmPlacementPolicyId      string    `xml:"vmPlacementPolicyId,attr,omitempty"`
	Encrypted                bool      `xml:"encrypted,attr,omitempty"`
	DateCreated              string    `xml:"dateCreated,attr,omitempty"`
	TotalStorageAllocatedMb  string    `xml:"totalStorageAllocatedMb,attr,omitempty"`
	IsExpired                bool      `xml:"isExpired,attr,omitempty"`
	Link                     []*Link   `xml:"Link,omitempty"`
	MetaData                 *Metadata `xml:"Metadata,omitempty"`
}

QueryResultVMRecordType represents a VM record as query result.

type QueryResultVMWProviderVdcRecordType

type QueryResultVMWProviderVdcRecordType struct {
	// Attributes
	HREF                    string `xml:"href,attr,omitempty"` // The URI of the entity.
	Name                    string `xml:"name,attr,omitempty"` // Provider VDC name.
	Status                  string `xml:"status,attr,omitempty"`
	IsBusy                  bool   `xml:"isBusy,attr,omitempty"`
	IsDeleted               bool   `xml:"isDeleted,attr,omitempty"`
	IsEnabled               bool   `xml:"isEnabled,attr,omitempty"`
	CpuAllocationMhz        int    `xml:"cpuAllocationMhz,attr,omitempty"`
	CpuLimitMhz             int    `xml:"cpuLimitMhz,attr,omitempty"`
	CpuUsedMhz              int    `xml:"cpuUsedMhz,attr,omitempty"`
	NumberOfDatastores      int    `xml:"numberOfDatastores,attr,omitempty"`
	NumberOfStorageProfiles int    `xml:"numberOfStorageProfiles,attr,omitempty"`
	NumberOfVdcs            int    `xml:"numberOfVdcs,attr,omitempty"`
	MemoryAllocationMB      int64  `xml:"memoryAllocationMB,attr,omitempty"`
	MemoryLimitMB           int64  `xml:"memoryLimitMB,attr,omitempty"`
	MemoryUsedMB            int64  `xml:"memoryUsedMB,attr,omitempty"`
	StorageAllocationMB     int64  `xml:"storageAllocationMB,attr,omitempty"`
	StorageLimitMB          int64  `xml:"storageLimitMB,attr,omitempty"`
	StorageUsedMB           int64  `xml:"storageUsedMB,attr,omitempty"`
	CpuOverheadMhz          int64  `xml:"cpuOverheadMhz,attr,omitempty"`
	StorageOverheadMB       int64  `xml:"storageOverheadMB,attr,omitempty"`
	MemoryOverheadMB        int64  `xml:"memoryOverheadMB,attr,omitempty"`
}

QueryResultVMWProviderVdcRecordType represents a Provider VDC as query result.

type QueryResultVappTemplateType

type QueryResultVappTemplateType struct {
	HREF               string    `xml:"href,attr,omitempty"`               // The URI of the entity.
	ID                 string    `xml:"id,attr,omitempty"`                 // vApp template ID.
	Type               string    `xml:"type,attr,omitempty"`               // The MIME type of the entity.
	OwnerName          string    `xml:"ownerName,attr,omitempty"`          // Owner name
	CatalogName        string    `xml:"catalogName,attr,omitempty"`        // Catalog name
	IsPublished        bool      `xml:"isPublished,attr,omitempty"`        // True if this entity is in a published catalog
	Name               string    `xml:"name,attr,omitempty"`               // vApp template name.
	Description        string    `xml:"description,attr,omitempty"`        // vApp template description.
	Vdc                string    `xml:"vdc,attr,omitempty"`                // VDC reference or ID
	VdcName            string    `xml:"vdcName,attr,omitempty"`            // VDC name
	Org                string    `xml:"org,attr,omitempty"`                // Organization reference or ID
	CreationDate       string    `xml:"creationDate,attr,omitempty"`       // Creation date
	IsBusy             bool      `xml:"isBusy,attr,omitempty"`             // True if the vApp template is busy
	IsGoldMaster       bool      `xml:"isGoldMaster,attr,omitempty"`       // True if the vApp template is a gold master
	IsEnabled          bool      `xml:"isEnabled,attr,omitempty"`          // True if the vApp template is enabled
	Status             string    `xml:"status,attr,omitempty"`             // Status
	IsDeployed         bool      `xml:"isDeployed,attr,omitempty"`         // True if this entity is deployed
	IsExpired          bool      `xml:"isExpired,attr,omitempty"`          // True if this entity is expired
	StorageProfileName string    `xml:"storageProfileName,attr,omitempty"` // Storage profile name
	Version            string    `xml:"version,attr,omitempty"`            // Storage profile name
	LastSuccessfulSync string    `xml:"lastSuccessfulSync,attr,omitempty"` // Date of last successful sync
	Link               *Link     `xml:"Link,omitempty"`
	Metadata           *Metadata `xml:"Metadata,omitempty"`
}

QueryResultVappTemplateType represents a vApp template as query result

type QueryResultVirtualCenterRecordType

type QueryResultVirtualCenterRecordType struct {
	HREF          string `xml:"href,attr,omitempty"`
	Name          string `xml:"name,attr,omitempty"`
	IsBusy        bool   `xml:"isBusy,attr,omitempty"`
	IsEnabled     bool   `xml:"isEnabled,attr,omitempty"`
	IsSupported   bool   `xml:"isSupported,attr,omitempty"`
	ListenerState string `xml:"listenerState,attr,omitempty"`
	Status        string `xml:"status,attr,omitempty"`
	Url           string `xml:"url,attr,omitempty"`
	UserName      string `xml:"userName,attr,omitempty"`
	VcVersion     string `xml:"vcVersion,attr,omitempty"`
	UUID          string `xml:"uuid,attr,omitempty"`
	VsmIP         string `xml:"vsmIP,attr,omitempty"`
}

Type: QueryResultVirtualCenterRecordType Namespace: http://www.vmware.com/vcloud/v1.5 https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/QueryResultVirtualCenterRecordType.html Description: Type for a single virtualCenter query result in records format. Since: 1.5

type ReComposeVAppParams

type ReComposeVAppParams struct {
	XMLName xml.Name `xml:"RecomposeVAppParams"`
	Ovf     string   `xml:"xmlns:ovf,attr"`
	Xsi     string   `xml:"xmlns:xsi,attr"`
	Xmlns   string   `xml:"xmlns,attr"`
	// Attributes
	Name        string `xml:"name,attr,omitempty"`        // Typically used to name or identify the subject of the request. For example, the name of the object being created or modified.
	Deploy      bool   `xml:"deploy,attr"`                // True if the vApp should be deployed at instantiation. Defaults to true.
	PowerOn     bool   `xml:"powerOn,attr"`               // True if the vApp should be powered-on at instantiation. Defaults to true.
	LinkedClone bool   `xml:"linkedClone,attr,omitempty"` // Reserved. Unimplemented.
	// Elements
	Description         string                       `xml:"Description,omitempty"`         // Optional description.
	VAppParent          *Reference                   `xml:"VAppParent,omitempty"`          // Reserved. Unimplemented.
	InstantiationParams *InstantiationParams         `xml:"InstantiationParams,omitempty"` // Instantiation parameters for the composed vApp.
	SourcedItem         *SourcedCompositionItemParam `xml:"SourcedItem,omitempty"`         // Composition item. One of: vApp vAppTemplate Vm.
	AllEULAsAccepted    bool                         `xml:"AllEULAsAccepted,omitempty"`
	DeleteItem          *DeleteItem                  `xml:"DeleteItem,omitempty"`
}

type RecomposeVAppParamsForEmptyVm

type RecomposeVAppParamsForEmptyVm struct {
	XMLName          xml.Name    `xml:"RecomposeVAppParams"`
	XmlnsVcloud      string      `xml:"xmlns,attr"`
	XmlnsOvf         string      `xml:"xmlns:ovf,attr"`
	CreateItem       *CreateItem `xml:"CreateItem,omitempty"`
	AllEULAsAccepted bool        `xml:"AllEULAsAccepted,omitempty"`
}

RecomposeVAppParamsForEmptyVm represents a vApp structure which allows to create VM.

type Reference

type Reference struct {
	HREF string `xml:"href,attr,omitempty"`
	ID   string `xml:"id,attr,omitempty"`
	Type string `xml:"type,attr,omitempty"`
	Name string `xml:"name,attr,omitempty"`
}

Reference is a reference to a resource. Contains an href attribute and optional name and type attributes. Type: ReferenceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: A reference to a resource. Contains an href attribute and optional name and type attributes. Since: 0.9

type ResourceEntities

type ResourceEntities struct {
	ResourceEntity []*ResourceReference `xml:"ResourceEntity,omitempty"`
}

ResourceEntities is a container for references to ResourceEntity objects in this vDC. Type: ResourceEntitiesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for references to ResourceEntity objects in this vDC. Since: 0.9

type ResourceReference

type ResourceReference struct {
	HREF   string `xml:"href,attr"`
	ID     string `xml:"id,attr,omitempty"`
	Type   string `xml:"type,attr,omitempty"`
	Name   string `xml:"name,attr,omitempty"`
	Status string `xml:"status,attr,omitempty"`
}

ResourceReference represents a reference to a resource. Contains an href attribute, a resource status attribute, and optional name and type attributes. Type: ResourceReferenceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a reference to a resource. Contains an href attribute, a resource status attribute, and optional name and type attributes. Since: 0.9

type RightsType

type RightsType struct {
	Links          LinkList     `xml:"Link,omitempty"`
	RightReference []*Reference `xml:"RightReference,omitempty"`
}

List of available rights in the organization

type Role

type Role struct {
	ID          string `json:"id,omitempty"`
	Name        string `json:"name"`
	Description string `json:"description"`
	BundleKey   string `json:"bundleKey"`
	ReadOnly    bool   `json:"readOnly"`
}

Role defines access roles in VCD

type SnapshotItem

type SnapshotItem struct {
	Created   string `xml:"created,attr,omitempty"`
	PoweredOn bool   `xml:"poweredOn,attr,omitempty"`
	Size      int    `xml:"size,attr,omitempty"`
}

Each snapshot listed in the SnapshotSection

type SnapshotSection

type SnapshotSection struct {
	// Extends OVF Section_Type
	XMLName  xml.Name        `xml:"SnapshotSection"`
	Info     string          `xml:"Info"`
	HREF     string          `xml:"href,attr,omitempty"`
	Type     string          `xml:"type,attr,omitempty"`
	Snapshot []*SnapshotItem `xml:"Snapshot,omitempty"`
}

SnapshotSection from VM struct

type SourcedCompositionItemParam

type SourcedCompositionItemParam struct {
	// Attributes
	SourceDelete bool `xml:"sourceDelete,attr,omitempty"` // True if the source item should be deleted after composition is complete.
	// Elements
	Source              *Reference           `xml:"Source"`                        // Reference to a vApp, vApp template or virtual machine to include in the composition. Changing the name of the newly created VM by specifying name attribute is deprecated. Include VmGeneralParams element instead.
	VMGeneralParams     *VMGeneralParams     `xml:"VmGeneralParams,omitempty"`     // Specify name, description, and other properties of a VM during instantiation.
	VAppScopedLocalID   string               `xml:"VAppScopedLocalId,omitempty"`   // If Source references a Vm, this value provides a unique identifier for the Vm in the scope of the composed vApp.
	InstantiationParams *InstantiationParams `xml:"InstantiationParams,omitempty"` // If Source references a Vm this can include any of the following OVF sections: VirtualHardwareSection OperatingSystemSection NetworkConnectionSection GuestCustomizationSection.
	NetworkAssignment   []*NetworkAssignment `xml:"NetworkAssignment,omitempty"`   // If Source references a Vm, this element maps a network name specified in the Vm to the network name of a vApp network defined in the composed vApp.
	StorageProfile      *Reference           `xml:"StorageProfile,omitempty"`      // If Source references a Vm, this element contains a reference to a storage profile to be used for the Vm. The specified storage profile must exist in the organization vDC that contains the composed vApp. If not specified, the default storage profile for the vDC is used.
	LocalityParams      *LocalityParams      `xml:"LocalityParams,omitempty"`      // Represents locality parameters. Locality parameters provide a hint that may help the placement engine optimize placement of a VM and an independent a Disk so that the VM can make efficient use of the disk.
	ComputePolicy       *ComputePolicy       `xml:"ComputePolicy,omitempty"`       // accessible only from version API 33.0
}

SourcedCompositionItemParam represents a vApp, vApp template or Vm to include in a composed vApp. Type: SourcedCompositionItemParamType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a vApp, vApp template or Vm to include in a composed vApp. Since: 0.9

type StaticRoute

type StaticRoute struct {
	Name             string     `xml:"Name"`                       // Name for the static route.
	Network          string     `xml:"Network"`                    // Network specification in CIDR.
	NextHopIP        string     `xml:"NextHopIp"`                  // IP Address of Next Hop router/gateway.
	Interface        string     `xml:"Interface,omitempty"`        // Interface to use for static routing. Internal and External are the supported values.
	GatewayInterface *Reference `xml:"GatewayInterface,omitempty"` // Gateway interface to which static route is bound.
}

StaticRoute represents a static route entry Type: StaticRouteType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Since:

type StaticRoutingService

type StaticRoutingService struct {
	IsEnabled   bool           `xml:"IsEnabled"`             // Enable or disable the service using this flag
	StaticRoute []*StaticRoute `xml:"StaticRoute,omitempty"` // Details of each Static Route.
}

StaticRoutingService represents Static Routing network service. Type: StaticRoutingServiceType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents Static Routing network service. Since: 1.5

type SubAllocation

type SubAllocation struct {
	EdgeGateway *Reference `xml:"EdgeGateway,omitempty"` // Edge gateway that uses this sub allocation.
	IPRanges    *IPRanges  `xml:"IpRanges,omitempty"`    // IP range sub allocated to the edge gateway.
}

SubAllocation IP range sub allocated to an edge gateway. Type: SubAllocationType Namespace: http://www.vmware.com/vcloud/v1.5 Description: IP range sub allocated to an edge gateway. Since: 5.1

type SubAllocations

type SubAllocations struct {
	// Attributes
	HREF string `xml:"href,attr,omitempty"` // The URI of the entity.
	Type string `xml:"type,attr,omitempty"` // The MIME type of the entity.
	// Elements
	Link          LinkList       `xml:"Link,omitempty"`          // A reference to an entity or operation associated with this object.
	SubAllocation *SubAllocation `xml:"SubAllocation,omitempty"` // IP Range sub allocated to a edge gateway.
}

SubAllocations a list of IP addresses that are sub allocated to edge gateways. Type: SubAllocationsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: A list of IP addresses that are sub allocated to edge gateways. Since: 5.1

type SubnetParticipation

type SubnetParticipation struct {
	Gateway            string    `xml:"Gateway"`                      // Gateway for subnet
	Netmask            string    `xml:"Netmask"`                      // Netmask for the subnet.
	IPAddress          string    `xml:"IpAddress,omitempty"`          // Ip Address to be assigned. Keep empty or omit element for auto assignment
	IPRanges           *IPRanges `xml:"IpRanges,omitempty"`           // Range of IP addresses available for external interfaces.
	UseForDefaultRoute bool      `xml:"UseForDefaultRoute,omitempty"` // True if this network is default route for the gateway.
}

SubnetParticipation allows to chose which subnets a gateway can be a part of Type: SubnetParticipationType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Allows to chose which subnets a gateway can be part of Since: 5.1

Note. Field order is important and should not be changed as API returns errors if IPRanges come before Gateway and Netmask

type SupportedHardwareVersions

type SupportedHardwareVersions struct {
	SupportedHardwareVersion []string `xml:"SupportedHardwareVersion,omitempty"` // A virtual hardware version supported in this vDC.
}

SupportedHardwareVersions contains a list of VMware virtual hardware versions supported in this vDC. Type: SupportedHardwareVersionsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Contains a list of VMware virtual hardware versions supported in this vDC. Since: 1.5

type Task

type Task struct {
	HREF             string           `xml:"href,attr,omitempty"`             // The URI of the entity.
	Type             string           `xml:"type,attr,omitempty"`             // The MIME type of the entity.
	ID               string           `xml:"id,attr,omitempty"`               // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused.
	OperationKey     string           `xml:"operationKey,attr,omitempty"`     // Optional unique identifier to support idempotent semantics for create and delete operations.
	Name             string           `xml:"name,attr"`                       // The name of the entity.
	Status           string           `xml:"status,attr"`                     // The execution status of the task. One of queued, preRunning, running, success, error, aborted
	Operation        string           `xml:"operation,attr,omitempty"`        // A message describing the operation that is tracked by this task.
	OperationName    string           `xml:"operationName,attr,omitempty"`    // The short name of the operation that is tracked by this task.
	ServiceNamespace string           `xml:"serviceNamespace,attr,omitempty"` // Identifier of the service that created the task. It must not start with com.vmware.vcloud and the length must be between 1 and 128 symbols.
	StartTime        string           `xml:"startTime,attr,omitempty"`        // The date and time the system started executing the task. May not be present if the task has not been executed yet.
	EndTime          string           `xml:"endTime,attr,omitempty"`          // The date and time that processing of the task was completed. May not be present if the task is still being executed.
	ExpiryTime       string           `xml:"expiryTime,attr,omitempty"`       // The date and time at which the task resource will be destroyed and no longer available for retrieval. May not be present if the task has not been executed or is still being executed.
	CancelRequested  bool             `xml:"cancelRequested,attr,omitempty"`  // Whether user has requested this processing to be canceled.
	Description      string           `xml:"Description,omitempty"`           // Optional description.
	Details          string           `xml:"Details,omitempty"`               // Detailed message about the task. Also contained by the Owner entity when task status is preRunning.
	Error            *Error           `xml:"Error,omitempty"`                 // Represents error information from a failed task.
	Link             *Link            `xml:"Link,omitempty"`                  // A reference to an entity or operation associated with this object.
	Organization     *Reference       `xml:"Organization,omitempty"`          // The organization to which the User belongs.
	Owner            *Reference       `xml:"Owner,omitempty"`                 // Reference to the owner of the task. This is typically the object that the task is creating or updating.
	Progress         int              `xml:"Progress,omitempty"`              // Read-only indicator of task progress as an approximate percentage between 0 and 100. Not available for all tasks.
	Tasks            *TasksInProgress `xml:"Tasks,omitempty"`                 // A list of queued, running, or recently completed tasks associated with this entity.
	User             *Reference       `xml:"User,omitempty"`                  // The user who started the task.

}

Task represents an asynchronous operation in vCloud Director. Type: TaskType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents an asynchronous operation in vCloud Director. Since: 0.9 Comments added from https://code.vmware.com/apis/912/vmware-cloud-director/doc/doc/types/TaskType.html

type TasksInProgress

type TasksInProgress struct {
	// Elements
	Task []*Task `xml:"Task"` // A task.
}

TasksInProgress is a list of queued, running, or recently completed tasks. Type: TasksInProgressType Namespace: http://www.vmware.com/vcloud/v1.5 Description: A list of queued, running, or recently completed tasks. Since: 0.9

type TasksList

type TasksList struct {
	XMLName xml.Name `xml:"TasksList"`
	Task    []*Task  `xml:"Task,omitempty"`
}

Namespace: http://www.vmware.com/vcloud/v1.5 Retrieve a list of tasks

type TypedValue

type TypedValue struct {
	XsiType string `xml:"xsi:type,attr"`
	Value   string `xml:"Value"`
}

type UndeployVAppParams

type UndeployVAppParams struct {
	Xmlns               string `xml:"xmlns,attr"`
	UndeployPowerAction string `xml:"UndeployPowerAction,omitempty"`
}

UndeployVAppParams parameters to an undeploy vApp request. Type: UndeployVAppParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Parameters to an undeploy vApp request. Since: 0.9

type User

type User struct {
	XMLName         xml.Name         `xml:"User"`
	Xmlns           string           `xml:"xmlns,attr"`
	Href            string           `xml:"href,attr"`
	Type            string           `xml:"type,attr"`
	ID              string           `xml:"id,attr"`
	OperationKey    string           `xml:"operationKey,attr"`
	Name            string           `xml:"name,attr"`
	Links           LinkList         `xml:"Link,omitempty"`
	Description     string           `xml:"Description,omitempty"`
	FullName        string           `xml:"FullName,omitempty"`
	EmailAddress    string           `xml:"EmailAddress,omitempty"`
	Telephone       string           `xml:"Telephone,omitempty"`
	IsEnabled       bool             `xml:"IsEnabled,omitempty"`
	IsLocked        bool             `xml:"IsLocked,omitempty"`
	IM              string           `xml:"IM,omitempty"`
	NameInSource    string           `xml:"NameInSource,omitempty"`
	IsExternal      bool             `xml:"IsExternal,omitempty"`
	ProviderType    string           `xml:"ProviderType,omitempty"`
	IsGroupRole     bool             `xml:"IsGroupRole,omitempty"`
	StoredVmQuota   int              `xml:"StoredVmQuota,omitempty"`
	DeployedVmQuota int              `xml:"DeployedVmQuota,omitempty"`
	Role            *Reference       `xml:"Role,omitempty"`
	GroupReferences *GroupReference  `xml:"GroupReferences,omitempty"`
	Password        string           `xml:"Password,omitempty"`
	Tasks           *TasksInProgress `xml:"Tasks"`
}

Represents an org user Reference: vCloud API 27.0 - UserType https://code.vmware.com/apis/442/vcloud-director#/doc/doc/types/UserType.html Note that the order of fields is important. If this structure needs to change, the field order must be preserved.

type VApp

type VApp struct {
	// Attributes
	HREF                  string `xml:"href,attr,omitempty"`                  // The URI of the entity.
	Type                  string `xml:"type,attr,omitempty"`                  // The MIME type of the entity.
	ID                    string `xml:"id,attr,omitempty"`                    // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused.
	OperationKey          string `xml:"operationKey,attr,omitempty"`          // Optional unique identifier to support idempotent semantics for create and delete operations.
	Name                  string `xml:"name,attr"`                            // The name of the entity.
	Status                int    `xml:"status,attr,omitempty"`                // Creation status of the resource entity.
	Deployed              bool   `xml:"deployed,attr,omitempty"`              // True if the virtual machine is deployed.
	OvfDescriptorUploaded bool   `xml:"ovfDescriptorUploaded,attr,omitempty"` // Read-only indicator that the OVF descriptor for this vApp has been uploaded.
	// Elements
	Link                 LinkList              `xml:"Link,omitempty"`                 // A reference to an entity or operation associated with this object.
	NetworkConfigSection *NetworkConfigSection `xml:"NetworkConfigSection,omitempty"` // Represents vAPP network configuration
	Description          string                `xml:"Description,omitempty"`          // Optional description.
	Tasks                *TasksInProgress      `xml:"Tasks,omitempty"`                // A list of queued, running, or recently completed tasks associated with this entity.
	Files                *FilesList            `xml:"Files,omitempty"`                // Represents a list of files to be transferred (uploaded or downloaded). Each File in the list is part of the ResourceEntity.
	VAppParent           *Reference            `xml:"VAppParent,omitempty"`           // Reserved. Unimplemented.
	// TODO: OVF Sections to be implemented
	// Section OVF_Section `xml:"Section"`
	DateCreated       string          `xml:"DateCreated,omitempty"`       // Creation date/time of the vApp.
	Owner             *Owner          `xml:"Owner,omitempty"`             // vApp owner.
	InMaintenanceMode bool            `xml:"InMaintenanceMode,omitempty"` // True if this vApp is in maintenance mode. Prevents users from changing vApp metadata.
	Children          *VAppChildren   `xml:"Children,omitempty"`          // Container for virtual machines included in this vApp.
	ProductSection    *ProductSection `xml:"ProductSection,omitempty"`
}

VApp represents a vApp Type: VAppType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a vApp. Since: 0.9

type VAppChildren

type VAppChildren struct {
	VM []*VM `xml:"Vm,omitempty"` // Represents a virtual machine.
}

VAppChildren is a container for virtual machines included in this vApp. Type: VAppChildrenType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for virtual machines included in this vApp. Since: 0.9

type VAppLeaseSettings

type VAppLeaseSettings struct {
	HREF string   `xml:"href,attr,omitempty"` // The URI of the entity.
	Type string   `xml:"type,attr,omitempty"` // The MIME type of the entity.
	Link LinkList `xml:"Link,omitempty"`      // A reference to an entity or operation associated with this object.

	DeleteOnStorageLeaseExpiration   *bool `xml:"DeleteOnStorageLeaseExpiration,omitempty"`
	DeploymentLeaseSeconds           *int  `xml:"DeploymentLeaseSeconds,omitempty"`
	StorageLeaseSeconds              *int  `xml:"StorageLeaseSeconds,omitempty"`
	PowerOffOnRuntimeLeaseExpiration *bool `xml:"PowerOffOnRuntimeLeaseExpiration,omitempty"`
}

type VAppNetwork

type VAppNetwork struct {
	Xmlns    string `xml:"xmlns,attr,omitempty"`
	HREF     string `xml:"href,attr,omitempty"`
	Type     string `xml:"type,attr,omitempty"`
	ID       string `xml:"id,attr,omitempty"`
	Name     string `xml:"name,attr"`
	Deployed *bool  `xml:"deployed,attr"` // True if the network is deployed.

	Link          *Link                 `xml:"Link,omitempty"`
	Description   string                `xml:"Description,omitempty"`
	Tasks         *TasksInProgress      `xml:"Tasks,omitempty"`
	Configuration *NetworkConfiguration `xml:"Configuration"`
}

VAppNetwork represents a vApp network configuration Used as input PUT /network/{id} Type: VAppNetworkType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a vApp network configuration. Since: 0.9

type VAppNetworkConfiguration

type VAppNetworkConfiguration struct {
	HREF        string `xml:"href,attr,omitempty"`
	Type        string `xml:"type,attr,omitempty"`
	ID          string `xml:"id,attr,omitempty"`
	NetworkName string `xml:"networkName,attr"`

	Link          *Link                 `xml:"Link,omitempty"`
	Description   string                `xml:"Description,omitempty"`
	Configuration *NetworkConfiguration `xml:"Configuration"`
	IsDeployed    bool                  `xml:"IsDeployed"`
}

VAppNetworkConfiguration represents a vApp network configuration Used in vApp network configuration actions as part of vApp type, VApp.NetworkConfigSection.NetworkConfig or directly as NetworkConfigSection.NetworkConfig for various API calls. Type: VAppNetworkConfigurationType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a vApp network configuration. Since: 0.9

type VAppTemplate

type VAppTemplate struct {
	// Attributes
	HREF                  string `xml:"href,attr,omitempty"`                  // The URI of the entity.
	Type                  string `xml:"type,attr,omitempty"`                  // The MIME type of the entity.
	ID                    string `xml:"id,attr,omitempty"`                    // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused.
	OperationKey          string `xml:"operationKey,attr,omitempty"`          // Optional unique identifier to support idempotent semantics for create and delete operations.
	Name                  string `xml:"name,attr"`                            // The name of the entity.
	Status                int    `xml:"status,attr,omitempty"`                // Creation status of the resource entity.
	OvfDescriptorUploaded string `xml:"ovfDescriptorUploaded,attr,omitempty"` // True if the OVF descriptor for this template has been uploaded.
	GoldMaster            bool   `xml:"goldMaster,attr,omitempty"`            // True if this template is a gold master.
	// Elements
	Link                  LinkList              `xml:"Link,omitempty"`                  // A reference to an entity or operation associated with this object.
	Description           string                `xml:"Description,omitempty"`           // Optional description.
	Tasks                 *TasksInProgress      `xml:"Tasks,omitempty"`                 // A list of queued, running, or recently completed tasks associated with this entity.
	Files                 *FilesList            `xml:"Files,omitempty"`                 // Represents a list of files to be transferred (uploaded or downloaded). Each File in the list is part of the ResourceEntity.
	Owner                 *Owner                `xml:"Owner,omitempty"`                 // vAppTemplate owner.
	Children              *VAppTemplateChildren `xml:"Children,omitempty"`              // Container for virtual machines included in this vApp template.
	VAppScopedLocalID     string                `xml:"VAppScopedLocalId"`               // A unique identifier for the Vm in the scope of the vApp template.
	DefaultStorageProfile string                `xml:"DefaultStorageProfile,omitempty"` // The name of the storage profile to be used for this object. The named storage profile must exist in the organization vDC that contains the object. If not specified, the default storage profile for the vDC is used.
	DateCreated           string                `xml:"DateCreated,omitempty"`           // Creation date/time of the template.
	// FIXME: Upstream bug? Missing NetworkConfigSection, LeaseSettingSection and
	// CustomizationSection at least, NetworkConnectionSection is required when
	// using ComposeVApp action in the context of a Children VM (still
	// referenced by VAppTemplateType).
	NetworkConfigSection     *NetworkConfigSection     `xml:"NetworkConfigSection,omitempty"`
	NetworkConnectionSection *NetworkConnectionSection `xml:"NetworkConnectionSection,omitempty"`
	LeaseSettingsSection     *LeaseSettingsSection     `xml:"LeaseSettingsSection,omitempty"`
	CustomizationSection     *CustomizationSection     `xml:"CustomizationSection,omitempty"`
}

VAppTemplate represents a vApp template. Type: VAppTemplateType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a vApp template. Since: 0.9

type VAppTemplateChildren

type VAppTemplateChildren struct {
	// Elements
	VM []*VAppTemplate `xml:"Vm"` // Represents a virtual machine in this vApp template.
}

VAppTemplateChildren is a container for virtual machines included in this vApp template. Type: VAppTemplateChildrenType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for virtual machines included in this vApp template. Since: 0.9

type VAppTemplateLeaseSettings

type VAppTemplateLeaseSettings struct {
	HREF string   `xml:"href,attr,omitempty"` // The URI of the entity.
	Type string   `xml:"type,attr,omitempty"` // The MIME type of the entity.
	Link LinkList `xml:"Link,omitempty"`      // A reference to an entity or operation associated with this object.

	DeleteOnStorageLeaseExpiration *bool `xml:"DeleteOnStorageLeaseExpiration,omitempty"`
	StorageLeaseSeconds            *int  `xml:"StorageLeaseSeconds,omitempty"`
}

VAppTemplateLeaseSettings represents the vapp template lease settings for a vCloud Director organization. Type: VAppTemplateLeaseSettingsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the vapp template lease settings of a vCloud Director organization. Since: 0.9

type VCloud

type VCloud struct {
	XMLName     xml.Name `xml:"VCloud"`
	Xmlns       string   `xml:"xmlns,attr,omitempty"`
	Name        string   `xml:"name,attr"`
	HREF        string   `xml:"href,attr"`
	Type        string   `xml:"type,attr,omitempty"`
	Description string   `xml:"Description"` // Contains VCD version, build number and build timestamp
	Link        *Link    `xml:"Link,omitempty"`
}

Structure returned by /api/admin call

type VCloudExtension

type VCloudExtension struct {
	Required bool `xml:"required,attr,omitempty"`
}

General purpose extension element Not related to extension services Reference: vCloud API 30.0 - DiskAttachOrDetachParamsType https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/VCloudExtensionType.html

type VDCList

type VDCList struct {
	Vdcs []*Reference `xml:"Vdc,omitempty"`
}

VDCList contains a list of references to Org VDCs Type: VdcListType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of organization vDCs. Since: 0.9

type VM

type VM struct {
	// Attributes
	XMLName xml.Name `xml:"Vm"`
	Ovf     string   `xml:"xmlns:ovf,attr,omitempty"`
	Xsi     string   `xml:"xmlns:xsi,attr,omitempty"`
	Xmlns   string   `xml:"xmlns,attr,omitempty"`

	HREF                    string `xml:"href,attr,omitempty"`                    // The URI of the entity.
	Type                    string `xml:"type,attr,omitempty"`                    // The MIME type of the entity.
	ID                      string `xml:"id,attr,omitempty"`                      // The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused
	OperationKey            string `xml:"operationKey,attr,omitempty"`            // Optional unique identifier to support idempotent semantics for create and delete operations.
	Name                    string `xml:"name,attr"`                              // The name of the entity.
	Status                  int    `xml:"status,attr,omitempty"`                  // Creation status of the resource entity.
	Deployed                bool   `xml:"deployed,attr,omitempty"`                // True if the virtual machine is deployed.
	NeedsCustomization      bool   `xml:"needsCustomization,attr,omitempty"`      // True if this virtual machine needs customization.
	NestedHypervisorEnabled bool   `xml:"nestedHypervisorEnabled,attr,omitempty"` // True if hardware-assisted CPU virtualization capabilities in the host should be exposed to the guest operating system.
	// Elements
	Link        LinkList         `xml:"Link,omitempty"`        // A reference to an entity or operation associated with this object.
	Description string           `xml:"Description,omitempty"` // Optional description.
	Tasks       *TasksInProgress `xml:"Tasks,omitempty"`       // A list of queued, running, or recently completed tasks associated with this entity.
	Files       *FilesList       `xml:"FilesList,omitempty"`   // Represents a list of files to be transferred (uploaded or downloaded). Each File in the list is part of the ResourceEntity.
	VAppParent  *Reference       `xml:"VAppParent,omitempty"`  // Reserved. Unimplemented.
	// TODO: OVF Sections to be implemented
	// Section OVF_Section `xml:"Section,omitempty"
	DateCreated string `xml:"DateCreated,omitempty"` // Creation date/time of the vApp.

	// Section ovf:VirtualHardwareSection
	VirtualHardwareSection *VirtualHardwareSection `xml:"VirtualHardwareSection,omitempty"`

	// FIXME: Upstream bug? Missing NetworkConnectionSection
	NetworkConnectionSection *NetworkConnectionSection `xml:"NetworkConnectionSection,omitempty"`

	VAppScopedLocalID string `xml:"VAppScopedLocalId,omitempty"` // A unique identifier for the virtual machine in the scope of the vApp.

	Snapshots *SnapshotSection `xml:"SnapshotSection,omitempty"`

	VmSpecSection *VmSpecSection `xml:"VmSpecSection,omitempty"`

	// GuestCustomizationSection contains settings for VM customization like admin password, SID
	// changes, domain join configuration, etc
	GuestCustomizationSection *GuestCustomizationSection `xml:"GuestCustomizationSection,omitempty"`

	VMCapabilities *VmCapabilities `xml:"VmCapabilities,omitempty"` // Allows you to specify certain capabilities of this virtual machine.
	StorageProfile *Reference      `xml:"StorageProfile,omitempty"` // A reference to a storage profile to be used for this object. The specified storage profile must exist in the organization vDC that contains the object. If not specified, the default storage profile for the vDC is used.
	ProductSection *ProductSection `xml:"ProductSection,omitempty"`
	ComputePolicy  *ComputePolicy  `xml:"ComputePolicy,omitempty"` // accessible only from version API 33.0
	Media          *Reference      `xml:"Media,omitempty"`         // Reference to the media object to insert in a new VM.
}

VM represents a virtual machine Type: VmType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a virtual machine. Since: 0.9

type VMDiskChange

type VMDiskChange struct {
	XMLName xml.Name `xml:"Vm"`
	Ovf     string   `xml:"xmlns:ovf,attr,omitempty"`
	Xsi     string   `xml:"xmlns:xsi,attr,omitempty"`
	Xmlns   string   `xml:"xmlns,attr,omitempty"`

	HREF string `xml:"href,attr,omitempty"` // The URI of the VM entity.
	Type string `xml:"type,attr,omitempty"` // The MIME type of the entity - application/vnd.vmware.vcloud.vm+xml
	Name string `xml:"name,attr"`           // VM name
	ID   string `xml:"id,attr,omitempty"`   // VM ID. The entity identifier, expressed in URN format. The value of this attribute uniquely identifies the entity, persists for the life of the entity, and is never reused.

	VmSpecSection *VmSpecSection `xml:"VmSpecSection,omitempty"` // Container for the specification of this virtual machine. This is an alternative to using ovf:VirtualHardwareSection + ovf:OperatingSystemSection
}

VMDiskChange represents a virtual machine only with Disk setting update part

type VMGeneralParams

type VMGeneralParams struct {
	// Elements
	Name               string `xml:"Name,omitempty"`               // Name of VM
	Description        string `xml:"Description,omitempty"`        // VM description
	NeedsCustomization bool   `xml:"NeedsCustomization,omitempty"` // True if this VM needs guest customization
	RegenerateBiosUuid bool   `xml:"RegenerateBiosUuid,omitempty"` // True if BIOS UUID of the virtual machine should be regenerated so that it is unique, and not the same as the source virtual machine's BIOS UUID.
}

VMGeneralParams a set of overrides to source VM properties to apply to target VM during copying. Type: VmGeneralParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: A set of overrides to source VM properties to apply to target VM during copying. Since: 5.6

type VMSelection

type VMSelection struct {
	VAppScopedVMID string `xml:"VAppScopedVmId"` // VAppScopedVmId of VM to which this rule applies.
	VMNicID        int    `xml:"VmNicId"`        // VM NIC ID to which this rule applies.
	IPType         string `xml:"IpType"`         // The value can be one of:- assigned: assigned internal IP be automatically choosen. NAT: NATed external IP will be automatically choosen.
}

VMSelection represents details of an vm+nic+iptype selection. Type: VmSelectionType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents details of an vm+nic+iptype selection. Since: 5.1

type VMWNetworkPool

type VMWNetworkPool struct {
	HREF        string           `xml:"href,attr,omitempty"`
	Id          string           `xml:"id,attr,omitempty"`
	Type        string           `xml:"type,attr,omitempty"`
	Name        string           `xml:"name,attr"`
	Status      int              `xml:"status,attr,omitempty"`
	Description string           `xml:"netmask,omitempty"`
	Tasks       *TasksInProgress `xml:"Tasks,omitempty"`
}

Represents org VDC Network Reference: vCloud API 27.0 - Network Pool https://code.vmware.com/apis/72/vcloud-director#/doc/doc/types/VMWNetworkPoolType.html

type VMs

type VMs struct {
	HREF        string       `xml:"href,attr,omitempty"`
	Type        string       `xml:"type,attr,omitempty"`
	Link        LinkList     `xml:"Link,omitempty"`
	VMReference []*Reference `xml:"VmReference,omitempty"`
}

VMs represents a list of virtual machines. Type: VmsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents a list of virtual machines. Since: 5.1

type Value

type Value struct {
	Value string `xml:"http://schemas.dmtf.org/ovf/envelope/1 value,attr,omitempty"`
}

type VcdSamlMetadata

type VcdSamlMetadata struct {
	XMLName xml.Name `xml:"EntityDescriptor"`
	Text    string   `xml:",chardata"`
	ID      string   `xml:"ID,attr"`
	// EntityID is the configured vCD Entity ID which is used in ADFS authentication request
	EntityID string `xml:"entityID,attr"`
}

VcdSamlMetadata helps to marshal vCD SAML Metadata endpoint response https://1.1.1.1/cloud/org/my-org/saml/metadata/alias/vcd

Note. This structure is not complete and has many more fields.

type Vdc

type Vdc struct {
	HREF         string `xml:"href,attr,omitempty"`
	Type         string `xml:"type,attr,omitempty"`
	ID           string `xml:"id,attr,omitempty"`
	OperationKey string `xml:"operationKey,attr,omitempty"`
	Name         string `xml:"name,attr"`
	Status       int    `xml:"status,attr,omitempty"`

	Link                 LinkList             `xml:"Link,omitempty"`
	Description          string               `xml:"Description,omitempty"`
	Tasks                *TasksInProgress     `xml:"Tasks,omitempty"`
	AllocationModel      string               `xml:"AllocationModel"`
	ComputeCapacity      []*ComputeCapacity   `xml:"ComputeCapacity"`
	ResourceEntities     []*ResourceEntities  `xml:"ResourceEntities,omitempty"`
	AvailableNetworks    []*AvailableNetworks `xml:"AvailableNetworks,omitempty"`
	Capabilities         []*Capabilities      `xml:"Capabilities,omitempty"`
	NicQuota             int                  `xml:"NicQuota"`
	NetworkQuota         int                  `xml:"NetworkQuota"`
	UsedNetworkCount     int                  `xml:"UsedNetworkCount,omitempty"`
	VMQuota              int                  `xml:"VmQuota"`
	IsEnabled            bool                 `xml:"IsEnabled"`
	VdcStorageProfiles   *VdcStorageProfiles  `xml:"VdcStorageProfiles"`
	DefaultComputePolicy *Reference           `xml:"DefaultComputePolicy"`
}

Vdc represents the user view of an organization VDC. Type: VdcType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the user view of an organization VDC. Since: 0.9

type VdcComputePolicy

type VdcComputePolicy struct {
	ID                         string   `json:"id,omitempty"`
	Description                string   `json:"description,omitempty"`
	Name                       string   `json:"name"`
	CPUSpeed                   *int     `json:"cpuSpeed,omitempty"`
	Memory                     *int     `json:"memory,omitempty"`
	CPUCount                   *int     `json:"cpuCount,omitempty"`
	CoresPerSocket             *int     `json:"coresPerSocket,omitempty"`
	MemoryReservationGuarantee *float64 `json:"memoryReservationGuarantee,omitempty"`
	CPUReservationGuarantee    *float64 `json:"cpuReservationGuarantee,omitempty"`
	CPULimit                   *int     `json:"cpuLimit,omitempty"`
	MemoryLimit                *int     `json:"memoryLimit,omitempty"`
	CPUShares                  *int     `json:"cpuShares,omitempty"`
	MemoryShares               *int     `json:"memoryShares,omitempty"`
	ExtraConfigs               *struct {
		AdditionalProp1 string `json:"additionalProp1,omitempty"`
		AdditionalProp2 string `json:"additionalProp2,omitempty"`
		AdditionalProp3 string `json:"additionalProp3,omitempty"`
	} `json:"extraConfigs,omitempty"`
	PvdcComputePolicyRef *struct {
		Name string `json:"name,omitempty"`
		ID   string `json:"id,omitempty"`
	} `json:"pvdcComputePolicyRef,omitempty"`
	PvdcComputePolicy *struct {
		Name string `json:"name,omitempty"`
		ID   string `json:"id,omitempty"`
	} `json:"pvdcComputePolicy,omitempty"`
	CompatibleVdcTypes []string `json:"compatibleVdcTypes,omitempty"`
	IsSizingOnly       bool     `json:"isSizingOnly,omitempty"`
	PvdcID             string   `json:"pvdcId,omitempty"`
	NamedVMGroups      [][]struct {
		Name string `json:"name,omitempty"`
		ID   string `json:"id,omitempty"`
	} `json:"namedVmGroups,omitempty"`
	LogicalVMGroupReferences []struct {
		Name string `json:"name,omitempty"`
		ID   string `json:"id,omitempty"`
	} `json:"logicalVmGroupReferences,omitempty"`
	IsAutoGenerated bool `json:"isAutoGenerated,omitempty"`
}

VdcComputePolicy is represented as VM sizing policy in UI

type VdcComputePolicyReferences

type VdcComputePolicyReferences struct {
	Xmlns                     string       `xml:"xmlns,attr"`
	HREF                      string       `xml:"href,attr,omitempty"`
	Type                      string       `xml:"type,attr,omitempty"`
	Link                      *Link        `xml:"Link,omitempty"`
	VdcComputePolicyReference []*Reference `xml:"VdcComputePolicyReference,omitempty"`
}

type VdcConfiguration

type VdcConfiguration struct {
	XMLName         xml.Name           `xml:"CreateVdcParams"`
	Xmlns           string             `xml:"xmlns,attr"`
	Name            string             `xml:"name,attr"`
	Description     string             `xml:"Description,omitempty"`
	AllocationModel string             `xml:"AllocationModel"` // Flex supported from 32.0
	ComputeCapacity []*ComputeCapacity `xml:"ComputeCapacity"`
	NicQuota        int                `xml:"NicQuota,omitempty"`
	NetworkQuota    int                `xml:"NetworkQuota,omitempty"`
	VmQuota         int                `xml:"VmQuota,omitempty"`
	IsEnabled       bool               `xml:"IsEnabled,omitempty"`
	// Create uses VdcStorageProfileConfiguration and fetch AdminVdcStorageProfile or VdcStorageProfile
	VdcStorageProfile        []*VdcStorageProfileConfiguration `xml:"VdcStorageProfile"`
	ResourceGuaranteedMemory *float64                          `xml:"ResourceGuaranteedMemory,omitempty"`
	ResourceGuaranteedCpu    *float64                          `xml:"ResourceGuaranteedCpu,omitempty"`
	VCpuInMhz                int64                             `xml:"VCpuInMhz,omitempty"`
	IsThinProvision          bool                              `xml:"IsThinProvision,omitempty"`
	NetworkPoolReference     *Reference                        `xml:"NetworkPoolReference,omitempty"`
	ProviderVdcReference     *Reference                        `xml:"ProviderVdcReference"`
	UsesFastProvisioning     bool                              `xml:"UsesFastProvisioning,omitempty"`
	OverCommitAllowed        bool                              `xml:"OverCommitAllowed,omitempty"`
	VmDiscoveryEnabled       bool                              `xml:"VmDiscoveryEnabled,omitempty"`
	IsElastic                *bool                             `xml:"IsElastic,omitempty"`             // Supported from 32.0 for the Flex model
	IncludeMemoryOverhead    *bool                             `xml:"IncludeMemoryOverhead,omitempty"` // Supported from 32.0 for the Flex model
}

VdcConfiguration models the payload for creating a VDC. Type: CreateVdcParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Parameters for creating an organization VDC Since: 5.1 https://code.vmware.com/apis/220/vcloud#/doc/doc/types/CreateVdcParamsType.html

type VdcStorageProfile

type VdcStorageProfile struct {
	Xmlns                     string                         `xml:"xmlns,attr"`
	Name                      string                         `xml:"name,attr"`
	Enabled                   bool                           `xml:"Enabled,omitempty"`
	Units                     string                         `xml:"Units"`
	Limit                     int64                          `xml:"Limit"`
	Default                   bool                           `xml:"Default"`
	IopsSettings              *VdcStorageProfileIopsSettings `xml:"IopsSettingsint64"`
	StorageUsedMB             int64                          `xml:"StorageUsedMB"`
	IopsAllocated             int64                          `xml:"IopsAllocated"`
	ProviderVdcStorageProfile *Reference                     `xml:"ProviderVdcStorageProfile"`
}

VdcStorageProfile represents the parameters for fetched storage profile Type: VdcStorageProfileParamsType Namespace: http://www.vmware.com/vcloud/v1.5 https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VdcStorageProfileType.html https://vdc-repo.vmware.com/vmwb-repository/dcr-public/71e12563-bc11-4d64-821d-92d30f8fcfa1/7424bf8e-aec2-44ad-be7d-b98feda7bae0/doc/doc/types/AdminVdcStorageProfileType.html

type VdcStorageProfileConfiguration

type VdcStorageProfileConfiguration struct {
	Enabled                   bool       `xml:"Enabled,omitempty"`
	Units                     string     `xml:"Units"`
	Limit                     int64      `xml:"Limit"`
	Default                   bool       `xml:"Default"`
	ProviderVdcStorageProfile *Reference `xml:"ProviderVdcStorageProfile"`
}

VdcStorageProfileConfiguration represents the parameters to assign a storage profile in creation of organization vDC. Type: VdcStorageProfileParamsType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Represents the parameters to create a storage profile in an organization vDC. Since: 5.1 https://code.vmware.com/apis/220/vcloud#/doc/doc/types/VdcStorageProfileParamsType.html

type VdcStorageProfileIopsSettings

type VdcStorageProfileIopsSettings struct {
	Xmlns                   string `xml:"xmlns,attr"`
	Enabled                 bool   `xml:"enabled"`
	DiskIopsMax             int64  `xml:"diskIopsMax,"`
	DiskIopsDefault         int64  `xml:"diskIopsDefault"`
	StorageProfileIopsLimit int64  `xml:"storageProfileIopsLimit,omitempty"`
	DiskIopsPerGbMax        int64  `xml:"diskIopsPerGbMax"`
}

VdcStorageProfileIopsSettings represents the parameters for VDC storage profiles Iops settings. Type: VdcStorageProfileIopsSettings https://vdc-repo.vmware.com/vmwb-repository/dcr-public/71e12563-bc11-4d64-821d-92d30f8fcfa1/7424bf8e-aec2-44ad-be7d-b98feda7bae0/doc/doc/types/VdcStorageProfileIopsSettingsType.html

type VdcStorageProfiles

type VdcStorageProfiles struct {
	VdcStorageProfile []*Reference `xml:"VdcStorageProfile,omitempty"`
}

VdcStorageProfiles is a container for references to storage profiles associated with a vDC. Element: VdcStorageProfiles Type: VdcStorageProfilesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Container for references to storage profiles associated with a vDC. Since: 5.1

type VendorTemplate

type VendorTemplate struct {
	Name string `xml:"Name"` // Name of the vendor template. This is required.
	ID   string `xml:"Id"`   // ID of the vendor template. This is required.
}

VendorTemplate is information about a vendor service template. This is optional. Type: VendorTemplateType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Information about a vendor service template. This is optional. Since: 5.1

type VimObjectRef

type VimObjectRef struct {
	VimServerRef  *Reference `xml:"VimServerRef"`
	MoRef         string     `xml:"MoRef"`
	VimObjectType string     `xml:"VimObjectType"`
}

Type: VimObjectRefType Namespace: http://www.vmware.com/vcloud/extension/v1.5 https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VimObjectRefsType.html Description: Represents the Managed Object Reference (MoRef) and the type of a vSphere object. Since: 0.9

type VimObjectRefs

type VimObjectRefs struct {
	VimObjectRef []*VimObjectRef `xml:"VimObjectRef"`
}

Type: VimObjectRefsType Namespace: http://www.vmware.com/vcloud/extension/v1.5 https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/types/VimObjectRefsType.html Description: List of VimObjectRef elements. Since: 0.9

type VirtualHardwareConnection

type VirtualHardwareConnection struct {
	IPAddress         string `xml:"ipAddress,attr,omitempty"`
	PrimaryConnection bool   `xml:"primaryNetworkConnection,attr,omitempty"`
	IpAddressingMode  string `xml:"ipAddressingMode,attr,omitempty"`
	NetworkName       string `xml:",chardata"`
}

Connection info from ResourceType=10 (Network Interface)

type VirtualHardwareHostResource

type VirtualHardwareHostResource struct {
	BusType           int    `xml:"busType,attr,omitempty"`
	BusSubType        string `xml:"busSubType,attr,omitempty"`
	Capacity          int    `xml:"capacity,attr,omitempty"`
	StorageProfile    string `xml:"storageProfileHref,attr,omitempty"`
	OverrideVmDefault bool   `xml:"storageProfileOverrideVmDefault,attr,omitempty"`
	Disk              string `xml:"disk,attr,omitempty"`
}

HostResource info from ResourceType=17 (Hard Disk) Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0, Page 188 - 189 https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ def8435d-a54a-4923-b26a-e2d1915b09c3/vcloud_sp_api_guide_30_0.pdf

type VirtualHardwareItem

type VirtualHardwareItem struct {
	XMLName             xml.Name                       `xml:"Item"`
	ResourceType        int                            `xml:"ResourceType,omitempty"`
	ResourceSubType     string                         `xml:"ResourceSubType,omitempty"`
	ElementName         string                         `xml:"ElementName,omitempty"`
	Description         string                         `xml:"Description,omitempty"`
	InstanceID          int                            `xml:"InstanceID,omitempty"`
	AutomaticAllocation bool                           `xml:"AutomaticAllocation,omitempty"`
	Address             string                         `xml:"Address,omitempty"`
	AddressOnParent     int                            `xml:"AddressOnParent,omitempty"`
	AllocationUnits     string                         `xml:"AllocationUnits,omitempty"`
	Reservation         int                            `xml:"Reservation,omitempty"`
	VirtualQuantity     int                            `xml:"VirtualQuantity,omitempty"`
	Weight              int                            `xml:"Weight,omitempty"`
	CoresPerSocket      int                            `xml:"CoresPerSocket,omitempty"`
	Connection          []*VirtualHardwareConnection   `xml:"Connection,omitempty"`
	HostResource        []*VirtualHardwareHostResource `xml:"HostResource,omitempty"`
	Link                []*Link                        `xml:"Link,omitempty"`
	// Reference: https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/operations/GET-DisksRasdItemsList-vApp.html
	Parent int `xml:"Parent,omitempty"`
}

Each ovf:Item parsed from the ovf:VirtualHardwareSection

type VirtualHardwareSection

type VirtualHardwareSection struct {
	// Extends OVF Section_Type
	XMLName xml.Name `xml:"VirtualHardwareSection"`
	Xmlns   string   `xml:"vcloud,attr,omitempty"`

	Info string                 `xml:"Info"`
	HREF string                 `xml:"href,attr,omitempty"`
	Type string                 `xml:"type,attr,omitempty"`
	Item []*VirtualHardwareItem `xml:"Item,omitempty"`
}

ovf:VirtualHardwareSection from VM struct

type VmAffinityRule

type VmAffinityRule struct {
	XMLName         xml.Name         `xml:"VmAffinityRule"`
	Xmlns           string           `xml:"xmlns,attr"`
	HREF            string           `xml:"href,attr,omitempty"`
	ID              string           `xml:"id,attr,omitempty"`
	Name            string           `xml:"Name"`
	OperationKey    string           `xml:"OperationKey,attr,omitempty"` // Optional unique identifier to support idempotent semantics for create and delete operations
	IsEnabled       *bool            `xml:"IsEnabled"`                   // True if the affinity rule is enabled
	IsMandatory     *bool            `xml:"IsMandatory"`                 // True if this affinity rule is mandatory. When a rule is mandatory, a host failover will not power on the VM if doing so would violate the rule
	Polarity        string           `xml:"Polarity"`                    // The polarity of this rule. One of: Affinity, Anti-Affinity
	VmReferences    []*VMs           `xml:"VmReferences"`                // A list of VmReferences under a specific VM affinity rule.
	Link            []*Link          `xml:"Link,omitempty"`              //
	VCloudExtension *VCloudExtension `xml:"VCloudExtension,omitempty"`   // An optional extension element that can contain an arbitrary number of elements and attributes
}

VmAffinityRule defines an affinity (or anti-affinity) rule for a group of VmReferences` https://code.vmware.com/apis/722/doc/doc/types/VmAffinityRuleType.html

type VmAffinityRules

type VmAffinityRules struct {
	HREF           string            `xml:"href,attr,omitempty"`
	Type           string            `xml:"type,attr,omitempty"`
	Link           *Link             `xml:"Link,omitempty"` //
	VmAffinityRule []*VmAffinityRule `xml:"VmAffinityRule,omitempty"`
}

VmAffinityRules defines a list of VmAffinityRule

type VmCapabilities

type VmCapabilities struct {
	Xmlns               string   `xml:"xmlns,attr"`
	HREF                string   `xml:"href,attr,omitempty"`
	Type                string   `xml:"type,attr,omitempty"`
	MemoryHotAddEnabled bool     `xml:"MemoryHotAddEnabled,omitempty"`
	CPUHotAddEnabled    bool     `xml:"CpuHotAddEnabled,omitempty"`
	Link                LinkList `xml:"Link,omitempty"`
}

VmCapabilities allows you to specify certain capabilities of this virtual machine. Type: VmCapabilitiesType Namespace: http://www.vmware.com/vcloud/v1.5 Description: Allows you to specify certain capabilities of this virtual machine. Since: 5.1

type VmPendingQuestion

type VmPendingQuestion struct {
	XMLName    xml.Name                      `xml:"VmPendingQuestion"`
	Xmlns      string                        `xml:"xmlns,attr,omitempty"`
	Type       string                        `xml:"type,attr"`
	HREF       string                        `xml:"href,attr"`
	Link       LinkList                      `xml:"Link,omitempty"`
	Question   string                        `xml:"Question"`
	QuestionId string                        `xml:"QuestionId"`
	Choices    []*VmQuestionAnswerChoiceType `xml:"Choices"`
}

Parameters for VM pending questions Reference: vCloud API 27.0 - VmPendingQuestionType https://code.vmware.com/apis/287/vcloud#/doc/doc/types/VmPendingQuestionType.html

type VmQueryFilter

type VmQueryFilter int

VmQueryFilter defines how we search VMs

const (
	// VmQueryFilterAll defines a no-filter search, i.e. will return all elements
	VmQueryFilterAll VmQueryFilter = iota

	// VmQueryFilterOnlyDeployed defines a filter for deployed VMs
	VmQueryFilterOnlyDeployed

	// VmQueryFilterOnlyTemplates defines a filter for VMs inside a template
	VmQueryFilterOnlyTemplates
)

func (VmQueryFilter) String

func (qf VmQueryFilter) String() string

String converts a VmQueryFilter into the corresponding filter needed by the query to get the wanted result

type VmQuestionAnswer

type VmQuestionAnswer struct {
	XMLName    xml.Name `xml:"VmQuestionAnswer"`
	Xmlns      string   `xml:"xmlns,attr,omitempty"`
	ChoiceId   int      `xml:"ChoiceId"`
	QuestionId string   `xml:"QuestionId"`
}

Parameters for VM question answer Reference: vCloud API 27.0 - VmQuestionAnswerType https://code.vmware.com/apis/287/vcloud#/doc/doc/types/VmQuestionAnswerType.html

type VmQuestionAnswerChoiceType

type VmQuestionAnswerChoiceType struct {
	Id   int    `xml:"Id"`
	Text string `xml:"Text,omitempty"`
}

Parameters for VM question answer choice Reference: vCloud API 27.0 - VmQuestionAnswerChoiceType https://code.vmware.com/apis/287/vcloud#/doc/doc/types/VmQuestionAnswerChoiceType.html

type VmSpecSection

type VmSpecSection struct {
	Modified          *bool             `xml:"Modified,attr,omitempty"`
	Info              string            `xml:"ovf:Info"`
	OsType            string            `xml:"OsType,omitempty"`            // The type of the OS. This parameter may be omitted when using the VmSpec to update the contents of an existing VM.
	NumCpus           *int              `xml:"NumCpus,omitempty"`           // Number of CPUs. This parameter may be omitted when using the VmSpec to update the contents of an existing VM.
	NumCoresPerSocket *int              `xml:"NumCoresPerSocket,omitempty"` // Number of cores among which to distribute CPUs in this virtual machine. This parameter may be omitted when using the VmSpec to update the contents of an existing VM.
	CpuResourceMhz    *CpuResourceMhz   `xml:"CpuResourceMhz,omitempty"`    // CPU compute resources. This parameter may be omitted when using the VmSpec to update the contents of an existing VM.
	MemoryResourceMb  *MemoryResourceMb `xml:"MemoryResourceMb"`            // Memory compute resources. This parameter may be omitted when using the VmSpec to update the contents of an existing VM.
	MediaSection      *MediaSection     `xml:"MediaSection,omitempty"`      // The media devices of this VM.
	DiskSection       *DiskSection      `xml:"DiskSection,omitempty"`       // virtual disks of this VM.
	HardwareVersion   *HardwareVersion  `xml:"HardwareVersion"`             // vSphere name of Virtual Hardware Version of this VM. Example: vmx-13 - This parameter may be omitted when using the VmSpec to update the contents of an existing VM.
	VmToolsVersion    string            `xml:"VmToolsVersion,omitempty"`    // VMware tools version of this VM.
	VirtualCpuType    string            `xml:"VirtualCpuType,omitempty"`    // The capabilities settings for this VM. This parameter may be omitted when using the VmSpec to update the contents of an existing VM.
	TimeSyncWithHost  *bool             `xml:"TimeSyncWithHost,omitempty"`  // Synchronize the VM's time with the host.
}

VmSpecSection from VM struct

type Vms

type Vms struct {
	XMLName     xml.Name   `xml:"Vms"`
	Xmlns       string     `xml:"xmlns,attr,omitempty"`
	Type        string     `xml:"type,attr"`
	HREF        string     `xml:"href,attr"`
	VmReference *Reference `xml:"VmReference,omitempty"`
}

Represents a list of virtual machines Reference: vCloud API 30.0 - VmsType https://code.vmware.com/apis/287/vcloud?h=Director#/doc/doc/types/FilesListType.html

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL