Changes in progress for v3.0.0 are available at .changes/v3.0.0 until the release.
- Added CSE 4.2.2 and 4.2.3 support (#723)
- Added CRUD operations for External Endpoints:
VCDClient.CreateExternalEndpoint
,VCDClient.GetAllExternalEndpoints
,VCDClient.GetExternalEndpoint
,VCDClient.GetExternalEndpointById
,ExternalEndpoint.Update
andExternalEndpoint.Delete
(#696) - Added CRUD operations for API Filters:
VCDClient.CreateApiFilter
,VCDClient.GetAllApiFilters
,VCDClient.GetApiFilterById
,ApiFilter.Update
andApiFilter.Delete
(#696, #697) - Added Read and Update operations for ALB Virtual Service HTTP Request Rules via
NsxtAlbVirtualService.GetAllHttpRequestRules
andNsxtAlbVirtualService.UpdateHttpRequestRules
(#706) - Added Read and Update operations for ALB Virtual Service HTTP Response Rules via
NsxtAlbVirtualService.GetAllHttpResponseRules
andNsxtAlbVirtualService.UpdateHttpResponseRules
(#706) - Added Read and Update operations for ALB Virtual Service HTTP Security Rules via
NsxtAlbVirtualService.GetAllHttpSecurityRules
andNsxtAlbVirtualService.UpdateHttpSecurityRules
(#706)
- Added
OpenAPIEdgeGateway.NonDistributedRoutingEnabled
andConnection.ConnectionTypeValue
forOpenApiOrgVdcNetwork
child to support configuring non distributed Org VDC networks in NSX-T Edge Gateways (#698) - Improved
types.NetworkConnection
structure to support VM Secondary IP allocations (IPv6) (#694) - Added
Client.CustomAdfsCookie
and configuration functionWithSamlAdfsAndCookie
that might be beneficial for ADFS server lookup query when using SAML auth (#699) - SAML ADFS auth flow will use Bearer token instead the old one (#699)
- Added VM Hardware Upgrade method
vm.UpgradeHardwareVersion
(#701) - Added
OrgPasswordPolicySettings
type to be able to set account lockout properties for an Organization (#702) - Added methods
VCDClient.GetAllTier0RouterInterfaces
andVCDClient.GetTier0RouterInterfaceByName
that help to lookup NSX-T Tier-0 Router Interfaces (#704) - Added
IpSpaceUplink.Interfaces
field that can associate Tier-0 Router Interfaces to IP Space Uplinks on VCD 10.5+ (#704) - Added field
QueryResultVMRecordType.VmNameInVc
(#705)
- Fixed Issue 1287 Read-only org sharing prevents sharing to users (#693)
- Fixed an XML error when updating a VM spec section:
Undeclared namespace prefix "ns5"
(#697)
- Modifies
Test_CreateDeleteEdgeGatewayAdvanced
to avoid its failure as VCD returnsConnected: true
when retrieving the Edge Gateway data (#697)
- Added types
SolutionLandingZone
andtypes.SolutionLandingZone
for Solution Add-on Landing Zone configuration (#665) - Added method
DefinedEntity.Refresh
to reload RDE state (#665) - Added
VCDClient
methodsCreateSolutionLandingZone
,GetAllSolutionLandingZones
,GetExactlyOneSolutionLandingZone
,GetSolutionLandingZoneById
for handling Solution Landing Zones (#665) - Added
SolutionLandingZone
methodsRefresh
,RdeId
,Update
,Delete
to help handling of Solution Landing Zones (#665) - Added
VM
methodsGetExtraConfig
,UpdateExtraConfig
,DeleteExtraConfig
to manage VM extra-configuration (#666, #691) - Added
Client
methodGetSite
to retrieve generic data about the current site (#669) - Added
Client
methodsGetSiteAssociationData
andGetSiteRawAssociationData
to retrieve association about from current site (#669) - Added
Client
methodsGetSiteAssociations
andQueryAllSiteAssociations
to retrieve all site associations from current site (#669) - Added
Client
methodGetSiteAssociationBySiteId
to retrieve a specific site association from current site (#669) - Added
Client
methodCheckSiteAssociation
to check the status of a site association (#669) - Added
Client
methodsSetSiteAssociationAsync
andSetSiteAssociation
to set a site association with current site (#669) - Added
Client
methodsRemoveSiteAssociationAsync
andRemoveSiteAssociation
to delete a site association from current site (#669) - Added
Client
methodQueryAllOrgAssociations
andGetOrgAssociations
to retrieve all org associations visible to current user (#669) - Added
AdminOrg
methodGetOrgAssociationByOrgId
to retrieve a specific organization association from current org (#669) - Added
AdminOrg
methodsGetOrgAssociationData
andGetOrgRawAssociationData
to retrieve association about from current org (#669) - Added
AdminOrg
methodCheckOrgAssociation
to check the status of an org association (#669) - Added
AdminOrg
methodsSetOrgAssociationAsync
andSetOrgAssociation
to set an organization association with current org (#669) - Added
AdminOrg
methodsRemoveOrgAssociationAsync
andRemoveOrgAssociation
to delete an organization association from current org (#669) - Added function
RawDataToStructuredXml
andReadXmlDataFromFile
to extract specific data from string or file (#669) - Added
AdminOrg
methodsQueryAllOrgs
,QueryOrgByName
,QueryOrgByID
to query organizations (#612,#669) - Added
AdminOrg
methodsGetAllOrgs
andGetAllOpenApiOrgVdcNetworks
to retrieve organizations and networks available to current user (#669) - Added types
SolutionAddOn
,SolutionAddOnConfig
andtypes.SolutionAddOn
for Solution Add-on Landing configuration (#670) - Added
VCDClient
methodsCreateSolutionAddOn
,GetAllSolutionAddons
,GetSolutionAddonById
,GetSolutionAddonByName
for handling Solution Add-Ons (#670) - Added
SolutionAddOn
methodsUpdate
,RdeId
,Delete
to help handling of Solution Landing Zones (#670) - Added
VCDClient
methodTrustAddOnImageCertificate
to trust certificate if it is not yet trusted (#670) - Added
AdminOrg
methodsGetOpenIdConnectSettings
,SetOpenIdConnectSettings
andDeleteOpenIdConnectSettings
to manage OpenID Connect settings (#671) - Added autoscaling capabilities when creating or updating CSE Kubernetes clusters, with
CseWorkerPoolSettings.Autoscaler
andCseWorkerPoolUpdateInput.Autoscaler
, that allows to configure this mechanism on specific worker pools (#678) - Added types
SolutionAddOnInstance
andtypes.SolutionAddOnInstance
for Solution Add-on Instance management (#679) - Added
VCDClient
methodsGetAllSolutionAddonInstanceByName
,GetAllSolutionAddonInstances
,GetSolutionAddOnInstanceById
(#679) - Added
SolutionAddOn
methodsCreateSolutionAddOnInstance
,GetAllInstances
,GetInstanceByName
,ValidateInputs
,ConvertInputTypes
(#679) - Added
SolutionAddOnInstance
methodsGetParentSolutionAddOn
,ReadCreationInputValues
Delete
,RdeId
,Publishing
(#679) - Added methods to create, read, update and delete VDC Templates:
VCDClient.CreateVdcTemplate
,VCDClient.GetVdcTemplateById
,VCDClient.GetVdcTemplateByName
,VdcTemplate.Update
andVdcTemplate.Delete
(#686) - Added methods to manage the access settings of VDC Templates:
VdcTemplate.SetAccessControl
andVdcTemplate.GetAccessControl
(#686) - Added the
VdcTemplate.InstantiateVdcAsync
andVdcTemplate.InstantiateVdc
methods to instantiate VDC Templates (#686) - Added the
VCDClient.QueryAdminVdcTemplates
andOrg.QueryVdcTemplates
methods to get all VDC Template records (#686) - Added types
DataSolution
andtypes.DataSolution
for Data Storage Extension (DSE) management (#689) - Added
DataSolution
methodsRdeId
,Name
,Update
,Publish
,Unpublish
,PublishRightsBundle
,UnpublishRightsBundle
,PublishAccessControls
,UnpublishAccessControls
,GetAllAccessControls
,GetAllAccessControlsForTenant
,GetAllInstanceTemplates
,PublishAllInstanceTemplates
,UnPublishAllInstanceTemplates
,GetAllDataSolutionOrgConfigs
,GetDataSolutionOrgConfigForTenant
(#689) - Added
VCDClient
methodsGetAllDataSolutions
,GetDataSolutionById
,GetDataSolutionByName
,GetAllInstanceTemplates
(#689) - Added types
DataSolutionInstanceTemplate
andtypes.DataSolutionInstanceTemplate
for Data Storage Extension (DSE) Solution Instance Template management (#689) - Added
DataSolutionInstanceTemplate
methodsName
,GetAllAccessControls
,GetAllAccessControlsForTenant
,Publish
,Unpublish
,RdeId
(#689) - Added types
DataSolutionOrgConfig
andtypes.DataSolutionOrgConfig
for Data Storage Extension (DSE) Solution Instance Org Configuration management (#689) - Added
DataSolutionOrgConfig
methodsCreateDataSolutionOrgConfig
,GetAllDataSolutionOrgConfigs
,Delete
,RdeId
(#689)
- Improved log traceability by sending
X-VMWARE-VCLOUD-CLIENT-REQUEST-ID
header in requests. The header will be formatted in such format162-2024-04-11-08-41-34-171-
where the first number (162
) is the API call sequence number in the life of that particular process followed by a hyphen separated date time with millisecond precision (2024-04-11-08-41-34-171
for April 11th of year 2024 at time 08:41:34.171). The trailing hyphen-
is here to separate response headerX-Vmware-Vcloud-Request-Id
suffix with double hyphen162-2024-04-11-08-41-34-171--40d78874-27a3-4cad-bd43-2764f557226b
(#656) - Fix bug in
Client.GetSpecificApiVersionOnCondition
that could result in using unsupported API version (#658) - Added fields
NatAndFirewallServiceIntention
andNetworkRouteAdvertisementIntention
totypes.ExternalNetworkV2
, which allow users to configure NAT, Firewall and Route Advertisement intentions for provider gateways in VCD 10.5.1+ (#660) - Added field
ActionValue
totypes.NsxtFirewallRule
instead ofAction
that is deprecated in VCD API. It allows users to useREJECT
option (#661) - Added
DetectedGuestOS
toQueryResultVMRecordType
(#673) - Added convenience method
DefinedEntity.State()
that will automatically check if path to*State
has no nil pointers (#679) - Added method
NsxtEdgeGateway.GetUsedAndUnusedExternalIPAddressCountWithLimit
to count used and unused IPs assigned to Edge Gateway. It supports alimitTo
argument that can prevent exhausting system resources when counting IPs in assigned subnets (#682) - Added
Message
field totypes.DefinedEntity
that can return a message for an RDE (#689) - Added convenience method
DefinedEntity.State()
that can return string value of state (#689) - Added
DefinedEntity
methodsSetAccessControl
,GetAllAccessControls
,GetAccessControlById
,DeleteAccessControl
for managing RDE ACLs (#689)
- Fixed a bug that caused CSE Kubernetes cluster creation to fail when the configured Organization VDC Network belongs to a VDC Group (#674)
- Patched
vm.UpdateNetworkConnectionSection
method that could sometimes fail due to Go's XML library mishandling XML namespaces when VCD returns irregular payload (#677) - Patched
VdcGroup.CreateDistributedFirewallRule
method that returned incorrect single rule whenoptionalAboveRuleId
is specified (#680) - Patched bug in core OpenAPI handling function
getOpenApiHighestElevatedVersion
that could sometimes choose unsupported API versions in future VCD versions (#683) - Fixed an error that occurred when updating an Edge Gateway configuration, with an Edge cluster configuration section
(
OpenAPIEdgeGatewayEdgeClusterConfig
). If this section was added, the update operation failed in VCD 10.6+ (#688) - Patched
vm.updateExtraConfig
method that could sometimes fail due to random mishandling of XML namespaces in upstream libraries (#690)
- Patched
Test_NsxtL2VpnTunnel
to match PresharedKey of VCD 10.5.1.1+ as it started returning******
instead of PSK itself when performing GET (#659) - Amended the test
Test_RdeAndRdeType
to be compatible with VCD 10.6+ (#681) - Amended many tests to set
ResourceGuaranteedMemory
when spawning aFlex
VDC (#684, #685)
- Added method
Client.QueryVappNetworks
to retrieve all vApp networks (#657) - Added
VApp
methodsQueryAllVappNetworks
,QueryVappNetworks
,QueryVappOrgNetworks
to retrieve various types of vApp networks (#657)
- Fixed an issue that prevented CSE Kubernetes clusters from being upgraded to an OVA with higher Kubernetes version but same TKG version, and to an OVA with a higher patch version of Kubernetes (#663)
- Fixed an issue that prevented CSE Kubernetes clusters from being upgraded to TKG v2.5.0 with Kubernetes v1.26.11 as it performed an invalid upgrade of CoreDNS (#663)
- Fixed an issue that prevented reading the SSH Public Key from provisioned CSE Kubernetes clusters (#663)
- Added the type
CseKubernetesCluster
to manage Container Service Extension Kubernetes clusters for versions 4.1.0, 4.1.1, 4.2.0 and 4.2.1 (#645, #653, #655) - Added methods
Org.CseCreateKubernetesCluster
andOrg.CseCreateKubernetesClusterAsync
to create Kubernetes clusters in a VCD appliance with Container Service Extension installed (#645, #653, #655) - Added methods
VCDClient.CseGetKubernetesClusterById
andOrg.CseGetKubernetesClustersByName
to retrieve a Container Service Extension Kubernetes cluster (#645, #653, #655) - Added the method
CseKubernetesCluster.GetKubeconfig
to retrieve the kubeconfig of a provisioned Container Service Extension Kubernetes cluster (#645, #653, #655) - Added the method
CseKubernetesCluster.Refresh
to refresh the information and properties of an existing Container Service Extension Kubernetes cluster (#645, #653, #655) - Added methods to update a Container Service Extension Kubernetes cluster:
CseKubernetesCluster.UpdateWorkerPools
,CseKubernetesCluster.AddWorkerPools
,CseKubernetesCluster.UpdateControlPlane
,CseKubernetesCluster.UpgradeCluster
,CseKubernetesCluster.SetNodeHealthCheck
andCseKubernetesCluster.SetAutoRepairOnErrors
(#645, #653, #655) - Added the method
CseKubernetesCluster.GetSupportedUpgrades
to retrieve all the valid TKGm OVAs that a given Container Service Extension Kubernetes cluster can use to be upgraded (#645, #653, #655) - Added the method
CseKubernetesCluster.Delete
to delete a cluster (#645, #653, #655) - Added types
CseClusterSettings
,CseControlPlaneSettings
,CseWorkerPoolSettings
andCseDefaultStorageClassSettings
to configure the Container Service Extension Kubernetes clusters creation process (#645, #653, #655) - Added types
CseClusterUpdateInput
,CseControlPlaneUpdateInput
andCseWorkerPoolUpdateInput
to configure the Container Service Extension Kubernetes clusters update process (#645, #653, #655) - Added method
client.QueryVmList
to search VMs across VDCs (#646)
- Added missing field
vdcName
totypes.QueryResultVMRecordType
(#646) - Added
VCDClient.GetAllIpSpaceFloatingIpSuggestions
andtypes.IpSpaceFloatingIpSuggestion
to retrieve IP Space IP suggestions (#648) - Added support for VM disk consolidation using
vm.ConsolidateDisksAsync
andvm.ConsolidateDisks
(#650) - Added public method
VApp.GetParentVDC
to retrieve parent VDC of vApp (previously it was private) (#652) - Added methods
Catalog.CaptureVappTemplate
,Catalog.CaptureVappTemplateAsync
and typetypes.CaptureVAppParams
that add support for creating catalog template from existing vApp (#652) - Added method
Org.GetVAppByHref
to retrieve a vApp by given HREF (#652) - Added methods
VAppTemplate.GetCatalogItemHref
andVAppTemplate.GetCatalogItemId
that can return related catalog item ID and HREF (#652)
-
Removed the conditional API call with outdated API version from
Client.GetStorageProfileByHref
so it works with the newest VCD versions (#639) -
Added a delay for all LDAP tests
Test_LDAP
after LDAP configuration, but before using them (#643) -
Added internal generic functions to handle CRUD operations for inner and outer entities (#644)
-
Added section about OpenAPI CRUD functions to
CODING_GUIDELINES.md
[#644] -
Converted
DefinedEntityType
,DefinedEntity
,DefinedInterface
,IpSpace
,IpSpaceUplink
,DistributedFirewall
,DistributedFirewallRule
,NsxtSegmentProfileTemplate
,GetAllIpDiscoveryProfiles
,GetAllMacDiscoveryProfiles
,GetAllSpoofGuardProfiles
,GetAllQoSProfiles
,GetAllSegmentSecurityProfiles
to use newly introduced generic CRUD functions (#644)
- Added support for VMware Cloud Director 10.5.1
- Added metadata support to Runtime Defined Entities with methods
rde.GetMetadataByKey
,rde.GetMetadataById
rde.GetMetadata
,rde.AddMetadata
and generic metadata methodsopenApiMetadataEntry.Update
andopenApiMetadataEntry.Delete
(#557, #632) - Added methods
SetReadOnlyAccessControl
andIsSharedReadOnly
forCatalog
andAdminCatalog
, to handle read-only catalog sharing (#559) - Added
Firmware
field toVmSpecSection
type andBootOptions
toVm
type (#607) - Added
Vdc
methodsGetHardwareVersion
,GetHighestHardwareVersion
,FindOsFromId
(#607) - Added
VM
methodsUpdateBootOptions
,UpdateBootOptionsAsync
(#607) - API calls for
AddRawVM
,CreateStandaloneVmAsync
,VM.Refresh
,VM.UpdateVmSpecSectionAsync
,addEmptyVmAsyncV10
,getVMByHrefV10
andUpdateBootOptionsAsync
get elevated to API version37.1
if available, forVmSpecSection.Firmware
andBootOptions
support (#607) - Added
VCDClient
methodsCreateNetworkPool
,CreateStandaloneVmAsync
,CreateNetworkPoolGeneve
,CreateNetworkPoolVlan
,CreateNetworkPoolPortGroup
to create a network pool (#613) - Added method
VCDClient.GetAllNsxtTransportZones
to retrieve all NSX-T transport zones (#613) - Added method
VCDClient.GetAllVcenterDistributedSwitches
to retrieve all distributed switches (#613) - Added method
VCDClient.QueryNsxtManagers
to retrieve all NSX-T managers (#613) - Added
NetworkPool
methodsUpdate
,Delete
,GetOpenApiUrl
to manage a network pool (#613) - Added
NsxtManager
type and functionVCDClient.GetNsxtManagerByName
(#618) - Added support for Segment Profile Template management using new types
NsxtSegmentProfileTemplate
andtypes.NsxtSegmentProfileTemplate
(#618) - Added support for reading Segment Profiles provided by NSX-T via functions
GetAllIpDiscoveryProfiles
,GetIpDiscoveryProfileByName
,GetAllMacDiscoveryProfiles
,GetMacDiscoveryProfileByName
,GetAllSpoofGuardProfiles
,GetSpoofGuardProfileByName
,GetAllQoSProfiles
,GetQoSProfileByName
,GetAllSegmentSecurityProfiles
,GetSegmentSecurityProfileByName
(#618) - Added support for setting default Segment Profiles for NSX-T Org VDC Networks
OpenApiOrgVdcNetwork.GetSegmentProfile()
,OpenApiOrgVdcNetwork.UpdateSegmentProfile()
(#618) - Added support for setting global default Segment Profiles
VCDClient.GetGlobalDefaultSegmentProfileTemplates()
,VCDClient.UpdateGlobalDefaultSegmentProfileTemplates()
(#618) - Added new
types
for NSX-T L2 VPN Tunnel session managementNsxtL2VpnTunnel
,EdgeL2VpnStretchedNetwork
,types.EdgeL2VpnTunnelStatistics
,types.EdgeL2VpnTunnelStatus
(#619) - Added new
NsxtEdgeGateway
methodsCreateL2VpnTunnel
,GetAllL2VpnTunnels
,GetL2VpnTunnelByName
,GetL2VpnTunnelById
for creation and retrieval of NSX-T L2 VPN Tunnel sessions (#619) - Added
NsxtL2VpnTunnel
methodsRefresh
,Update
,Statistics
,Status
,Delete
(#619) - Added method
Catalog.UploadMediaFile
to upload any file as catalog Media (#621,#622) - Added method
Media.Download
to download a Media item as a byte stream (#622) - Added
VAppTemplate
methodsGetLease
andRenewLease
to retrieve and change storage lease (#623) - Added
NsxtEdgeGateway
methodsGetDnsConfig
andUpdateDnsConfig
(#627) - Added types
types.NsxtEdgeGatewayDns
,types.NsxtDnsForwarderZoneConfig
for creation and management of DNS forwarder configuration (#627) - Added
NsxtEdgeGatewayDns
methodsRefresh
,Update
andDelete
(#627) - Add type
VgpuProfile
and its methodsGetAllVgpuProfiles
,GetVgpuProfilesByProviderVdc
,GetVgpuProfileById
,GetVgpuProfileByName
,GetVgpuProfileByTenantFacingName
,Update
andRefresh
for managing vGPU profiles (#633) - Update
ComputePolicyV2
type with new fields for managing vGPU policies (#633)
- Added catalog parent retrieval to
client.GetCatalogByHref
andclient.GetAdminCatalogByHref
to facilitate tenant context handling (#559) - Add
VdcGroup.ForceDelete
function to optionally force VDC Group removal, which can be used for removing VDC Group with child elements (#597) - Bumped up minimal API version to 37.0 (drops support for VCD 10.3.x) (#609)
- Add struct
IopsResource
totypes.DiskSettings
(in replacement of dropped fieldiops
) initially supported in API 37.0 (#609) - Add field
SslEnabled
to structtypes.NsxtAlbPool
initially supported in API 37.0 (#609) - New method
NsxtEdgeGateway.GetAllocatedIpCountByUplinkType
complementing existingNsxtEdgeGateway.GetAllocatedIpCount
. It will return allocated IP counts by uplink types (works with VCD 10.4.1+) (#610) - New method
NsxtEdgeGateway.GetPrimaryNetworkAllocatedIpCount
that will return total allocated IP count for primary uplink (T0 or T0 VRF) (#610) - New field
types.EdgeGatewayUplinks.BackingType
that defines backing type of NSX-T Edge Gateway Uplink (#610) - NSX-T Edge Gateway functions
GetNsxtEdgeGatewayById
,GetNsxtEdgeGatewayByName
,GetNsxtEdgeGatewayByNameAndOwnerId
,GetAllNsxtEdgeGateways
,CreateNsxtEdgeGateway
,Refresh
,Update
will additionally sort uplinks to ensure that element 0 contains primary network (T0 or T0 VRF) (#610) - Makes
DefinedEntityType
methodSetBehaviorAccessControls
more robust to avoid NullPointerException errors in VCD when the input is a nil slice (#615) types.IpSpace
support Firewall and NAT rule autocreation configuration usingtypes.DefaultGatewayServiceConfig
on VCD 10.5.0+ (#628)- Added metadata ignore support for Runtime Defined Entity metadata methods
rde.GetMetadataByKey
,rde.GetMetadata
,rde.AddMetadata
,rde.UpdateMetadata
andrde.DeleteMetadata
(#632)
- Added handling of catalog creation task, which was leaving the catalog not ready for action in some cases (#590, #602)
- Fix nil pointer dereference bug while fetching a NSX-V Backed Edge Gateway (#594)
- Fix vApp network related tests (#595)
- Fixed Issue #1098 crash in VDC creation (#598)
- Addressed Issue 1134: Can't use SYSTEM
ldap_mode
(#625)
- Deprecated
UpdateInternalDisksAsync
in favor ofUpdateVmSpecSectionAsync
(#607)
-
Improved the testing configuration to allow customizing the UI Plugin path (#599)
-
Added a configurable timeout to the testing options available in the Makefile (#600)
-
Improved test
Test_NsxtApplicationPortProfileTenant
(#601) -
Added explicit removal for many resources in tests (#605)
-
Improved test
Test_InsertOrEjectMedia
(#608) -
Addressed
gosec
2.17.0 errors (#608) -
Changed
Test_AddNewVMFromMultiVmTemplate
to use preloaded vApp template (#609) -
Amended
testMetadataIgnore
, used by all metadata tests, to be compatible with VCD 10.5.1 (#629)
- Removed field
iops
fromtypes.DiskSettings
(dropped in API version 37.0) (#609)
- Added NSX-T Edge Gateway DHCP forwarding configuration support
NsxtEdgeGateway.GetDhcpForwarder
andNsxtEdgeGateway.UpdateDhcpForwarder
(#573) - Added methods to create, get, publish and delete UI Plugins
VCDClient.AddUIPlugin
,VCDClient.GetAllUIPlugins
,VCDClient.GetUIPluginById
,VCDClient.GetUIPlugin
,UIPlugin.Update
,UIPlugin.GetPublishedTenants
,UIPlugin.PublishAll
,UIPlugin.UnpublishAll
,UIPlugin.Publish
,UIPlugin.Unpublish
,UIPlugin.IsTheSameAs
andUIPlugin.Delete
(#575) - Added AdminOrg methods
GetFederationSettings
,SetFederationSettings
,UnsetFederationSettings
to handle organization SAML settings (#576) - Added AdminOrg methods
GetServiceProviderSamlMetadata
andRetrieveServiceProviderSamlMetadata
to retrieve service provider metadata for current organization (#576) - Added method
Client.RetrieveRemoteDocument
to download a document from a URL (#576) - Added function
ValidateSamlServiceProviderMetadata
to validate service oprovider metadata (#576) - Added function
GetErrorMessageFromErrorSlice
to return a single string from a slice of errors (#576) - Added Service Account CRUD support via
ServiceAccount
andtypes.ServiceAccount
:VCDClient.CreateServiceAccount
,Org.GetServiceAccountById
,Org.GetAllServiceAccounts
,Org.GetServiceAccountByName
,ServiceAccount.Update
,ServiceAccount.Authorize
,ServiceAccount.Grant
,ServiceAccount.Refresh
,ServiceAccount.Revoke
,ServiceAccount.Delete
,ServiceAccount.GetInitialApiToken
(#577) - Added API Token CRUD support via
Token
andtypes.Token
:VCDClient.CreateToken
,VCDClient.GetTokenById
,VCDClient.GetAllTokens
,VCDClient.GetTokenByNameAndUsername
,VCDClient.RegisterToken
,Token.GetInitialApiToken
,Token.Delete
,Client.GetApiToken
(#577) - Added IP Space CRUD support via
IpSpace
andtypes.IpSpace
andVCDClient.CreateIpSpace
,VCDClient.GetAllIpSpaceSummaries
,VCDClient.GetIpSpaceById
,VCDClient.GetIpSpaceByName
,VCDClient.GetIpSpaceByNameAndOrgId
,IpSpace.Update
,IpSpace.Delete
(#578) - Added IP Space Uplink CRUD support via
IpSpaceUplink
andtypes.IpSpaceUplink
andVCDClient.CreateIpSpaceUplink
,VCDClient.GetAllIpSpaceUplinks
,VCDClient.GetIpSpaceUplinkById
,VCDClient.GetIpSpaceUplinkByName
,IpSpaceUplink.Update
,IpSpaceUplink.Delete
(#579) - Added IP Space Allocation CRUD support via
IpSpaceIpAllocation
,types.IpSpaceIpAllocation
,types.IpSpaceIpAllocationRequest
,types.IpSpaceIpAllocationRequestResult
. MethodsIpSpace.AllocateIp
,Org.IpSpaceAllocateIp
,Org.GetIpSpaceAllocationByTypeAndValue
,IpSpace.GetAllIpSpaceAllocations
,Org.GetIpSpaceAllocationById
,IpSpaceIpAllocation.Update
,IpSpaceIpAllocation.Delete
(#579) - Added IP Space Org assignment to support Custom Quotas via
IpSpaceOrgAssignment
,types.IpSpaceOrgAssignment
,IpSpace.GetAllOrgAssignments
,IpSpace.GetOrgAssignmentById
,IpSpace.GetOrgAssignmentByOrgName
,IpSpace.GetOrgAssignmentByOrgId
,IpSpaceOrgAssignment.Update
(#579) - Added method
VCDClient.QueryNsxtManagerByHref
to retrieve a NSX-T manager by its ID/HREF (#580) - Added method
VCDClient.CreateProviderVdc
to create a Provider VDC (#580) - Added method
VCDClient.ResourcePoolsFromIds
to convert list of IDs to resource pools (#580) - Added
ProviderVdcExtended
methodsAddResourcePools
,AddStorageProfiles
,Delete
,DeleteResourcePools
,DeleteStorageProfiles
,Disable
,Enable
,GetResourcePools
,IsEnabled
,Rename
,Update
to fully manage a provider VDC (#580) - Added method
NetworkPool.GetOpenApiUrl
to generate the full URL of a network pool (#580) - Added
ResourcePool
methodsGetAvailableHardwareVersions
andGetDefaultHardwareVersion
to get hardware versions (#580) - Added
VCDClient
methodGetAllResourcePools
to retrieve all resource pools regardless of vCenter affiliation (#580) - Added
VCDClient
methodGetAllVcenters
to retrieve all vCenters (#580) - Added
VCDClient
methodsGetNetworkPoolById
,GetNetworkPoolByName
,GetNetworkPoolSummaries
to retrieve network pools (#580) - Added
VCDClient
methodsGetVcenterById
,GetVcenterByName
to retrieve vCenters (#580) - Added
VCenter
methodsGetAllResourcePools
,VCenter.GetResourcePoolById
,VCenter.GetResourcePoolByName
to retrieve resource pools (#580) - Added
VCenter
methodsGetAllStorageProfiles
,GetStorageProfileById
,GetStorageProfileByName
to retrieve storage profiles (#580) - Added method
VCenter.GetVimServerUrl
to retrieve the full URL of a vCenter within a VCD (#580) - Added NSX-T Edge Gateway SLAAC Profile (DHCPv6) configuration support
NsxtEdgeGateway.GetSlaacProfile
andNsxtEdgeGateway.UpdateSlaacProfile
(#582) - Added RDE Defined Interface Behaviors support with methods
DefinedInterface.AddBehavior
,DefinedInterface.GetAllBehaviors
,DefinedInterface.GetBehaviorById
DefinedInterface.GetBehaviorByName
,DefinedInterface.UpdateBehavior
andDefinedInterface.DeleteBehavior
(#584) - Added RDE Defined Entity Type Behaviors support with methods
DefinedEntityType.GetAllBehaviors
,DefinedEntityType.GetBehaviorById
DefinedEntityType.GetBehaviorByName
,DefinedEntityType.UpdateBehaviorOverride
andDefinedEntityType.DeleteBehaviorOverride
(#584) - Added RDE Defined Entity Type Behavior Access Controls support with methods
DefinedEntityType.GetAllBehaviorsAccessControls
andDefinedEntityType.SetBehaviorAccessControls
(#584) - Added method to invoke Behaviors on Defined Entities
DefinedEntity.InvokeBehavior
andDefinedEntity.InvokeBehaviorAndMarshal
(#584) - Added support for NSX-T Edge Gateway Static Route configuration via types
NsxtEdgeGatewayStaticRoute
,types.NsxtEdgeGatewayStaticRoute
and methodsNsxtEdgeGateway.CreateStaticRoute
,NsxtEdgeGateway.GetAllStaticRoutes
,NsxtEdgeGateway.GetStaticRouteByNetworkCidr
,NsxtEdgeGateway.GetStaticRouteByName
,NsxtEdgeGateway.GetStaticRouteById
,NsxtEdgeGatewayStaticRoute.Update
,NsxtEdgeGatewayStaticRoute.Delete
(#586) - Added types and methods
DistributedFirewallRule
,VdcGroup.CreateDistributedFirewallRule
,DistributedFirewallRule.Update
,.DistributedFirewallRuleDelete
to manage NSX-T Distributed Firewall Rules one by one (opposed to managing all at once usingDistributedFirewall
) (#587) - Added method
Vdc.CreateVappFromTemplate
to create a vApp from a vApp template containing one or more VMs (#588) - Added method
Vdc.CloneVapp
to create a vApp from another vApp (#588) - Added method
VApp.DiscardSuspendedState
to take a vApp out of suspended state (#588)
ExternalNetworkV2
now supports IP Spaces on VCD 10.4.1+ with new fieldsUsingIpSpace
andDedicatedOrg
(#579)- Added a new function
WithIgnoredMetadata
to configure theClient
to ignore specific metadata entries in all non-deprecated metadata CRUD methods (#581) - NSX-T ALB Virtual Service supports IPv6 Virtual Service using field
IPv6VirtualIpAddress
intypes.NsxtAlbVirtualService
for VCD 10.4.0+ (#582) - Added field
EnableDualSubnetNetwork
to enable Dual-Stack mode for Org VDC networks intypes.OpenApiOrgVdcNetwork
(#582)
- Fixed Issue #1066 - Not possible to handle more than 128 storage profiles (#580)
- Fixed a bug that caused
Client.GetCertificateFromLibraryByName
andAdminOrg.GetCertificateFromLibraryByName
to fail retrieving certificates with:
character in the name (#589)
- Deprecated method
Vdc.InstantiateVAppTemplate
(wrong implementation and result) in favor ofVdc.CreateVappFromTemplate
(#588)
- Internal - replaced 'takeStringPointer', 'takeIntAddress', 'takeBoolPointer' with generic 'addrOf' (#571)
- Changed Org enablement status during tests for VCD 10.4.2, to circumvent a VCD bug that prevents creation of disabled Orgs (#572)
- Skipped test
Test_VdcDuplicatedVmPlacementPolicyGetsACleanError
in 10.4.2 as the relevant bug we check for is fixed in that version (#574) - Added
unit
step to GitHub Actions (#583)
- Added method
AdminVdc.IsNsxv
to detect whether an Admin VDC is NSX-V (#521) - Added function
NewNsxvDistributedFirewall
to create a new NSX-V distributed firewall (#521) - Added
NsxvDistributedFirewall
methodsGetConfiguration
,IsEnabled
,Enable
,Disable
,UpdateConfiguration
,Refresh
to handle CRUD operations with NSX-V distributed firewalls (#521) - Added
NsxvDistributedFirewall
methodsGetServices
,GetServiceGroups
,GetServiceById
,GetServiceByName
,GetServiceGroupById
,GetServiceGroupByName
to retrieve specific services or service groups (#521) - Added
NsxvDistributedFirewall
methodsGetServicesByRegex
andGetServiceGroupsByRegex
to search services or service groups by regular expression (#521) - Added support for Runtime Defined Entity Interfaces with client methods
VCDClient.CreateDefinedInterface
,VCDClient.GetAllDefinedInterfaces
,VCDClient.GetDefinedInterface
,VCDClient.GetDefinedInterfaceById
and methods to manipulate themDefinedInterface.Update
,DefinedInterface.Delete
(#527, #566) - Added method
VM.GetEnvironment
to retrieve OVF Environment (#528) - Added
NsxtEdgeGateway.Refresh
method to reload NSX-T Edge Gateway structure (#532) - Added
NsxtEdgeGateway.GetUsedIpAddresses
method to fetch used IP addresses in NSX-T Edge Gateway (#532) - Added
NsxtEdgeGateway.GetUsedIpAddressSlice
method to fetch used IP addresses in a slice (#532) - Added
NsxtEdgeGateway.GetUnusedExternalIPAddresses
method that can help to find an unused IP address in an Edge Gateway by given constraints (#532,#567) - Added
NsxtEdgeGateway.GetAllUnusedExternalIPAddresses
method that can return all unused IP addresses in an Edge Gateway (#532,#567) - Added
NsxtEdgeGateway.GetAllocatedIpCount
method that sums upTotalIPCount
fields in all subnets (#532) - Added
NsxtEdgeGateway.QuickDeallocateIpCount
andNsxtEdgeGateway.DeallocateIpCount
methods to manually alter Edge Gateway body for IP deallocation (#532) - Added support for Runtime Defined Entity instances with methods
DefinedEntityType.GetAllRdes
,DefinedEntityType.GetRdeByName
,DefinedEntityType.GetRdeById
,DefinedEntityType.CreateRde
and methods to manipulate themDefinedEntity.Resolve
,DefinedEntity.Update
,DefinedEntity.Delete
(#544) - Added generic
Client
methodsOpenApiPostItemAndGetHeaders
andOpenApiGetItemAndHeaders
to be able to retrieve the response headers when performing a POST or GET operation to an OpenAPI endpoint (#544) - Added support for Runtime Defined Entity Types with client methods
VCDClient.CreateRdeType
,VCDClient.GetAllRdeTypes
,VCDClient.GetRdeType
,VCDClient.GetRdeTypeById
and methods to manipulate themDefinedEntityType.Update
,DefinedEntityType.Delete
(#545, #566) - Added support for NSX-T DHCP Bindings via
OpenApiOrgVdcNetworkDhcpBinding
,types.OpenApiOrgVdcNetworkDhcpBinding
and functionsOpenApiOrgVdcNetwork.CreateOpenApiOrgVdcNetworkDhcpBinding
,OpenApiOrgVdcNetwork.GetAllOpenApiOrgVdcNetworkDhcpBindings
,OpenApiOrgVdcNetwork.GetOpenApiOrgVdcNetworkDhcpBindingById
,OpenApiOrgVdcNetwork.GetOpenApiOrgVdcNetworkDhcpBindingByName
,OpenApiOrgVdcNetworkDhcpBinding.Update
,OpenApiOrgVdcNetworkDhcpBinding.Refresh
,OpenApiOrgVdcNetworkDhcpBinding.Delete
(#561) - Added QoS Profile lookup functions
GetAllNsxtEdgeGatewayQosProfiles
andGetNsxtEdgeGatewayQosProfileByDisplayName
(#563) - Added NSX-T Edge Gateway QoS (Rate Limiting) configuration support
NsxtEdgeGateway.GetQoS
andNsxtEdgeGateway.UpdateQoS
(#563) - Added support for importable Distributed Virtual Port Group (DVPG) read via types
VcenterImportableDvpg
andtypes.VcenterImportableDvpg
and methodsVCDClient.GetVcenterImportableDvpgByName
,VCDClient.GetAllVcenterImportableDvpgs
,Vdc.GetVcenterImportableDvpgByName
,Vdc.GetAllVcenterImportableDvpgs
(#564)
- NSX-T ALB settings for Edge Gateway gained support for IPv6 service network definition (VCD 10.4.0+)
and Transparent mode (VCD 10.4.1+) by adding new fields to
types.NsxtAlbConfig
and automatically elevating API up to 37.1 (#549) - Added support for using subnet prefix length while creating vApp networks (#550)
- Improve NSX-T IPSec VPN type
types.NsxtIpSecVpnTunnel
to support 'Certificate' Authentication mode (#553) - Added new field
TransparentModeEnabled
totypes.NsxtAlbVirtualService
which allows to preserve client IP for NSX-T ALB Virtual Service (VCD 10.4.1+) (#560) - Added new field
MemberGroupRef
totypes.NsxtAlbPool
which allows to define NSX-T ALB Pool membership by using Edge Firewall Group (NsxtFirewallGroup
) instead of plain IPs (VCD 10.4.1+) (#560) types.OpenApiOrgVdcNetwork
got a new read only fieldOrgVdcIsNsxTBacked
(available since API 36.0) which indicates if an Org Network is backed by NSX-T and a functionOpenApiOrgVdcNetwork.IsNsxt()
(#561)- Added
SetServiceAccountApiToken
method ofVCDClient
that allows authenticating using a service account token file and handles the refresh token rotation (#562)
- Fixed a bug that prevented returning a specific error while authenticating client with invalid password (#536)
- Fixed accessing uninitialized
Features
field while updating a vApp network (#550)
- Created
Test_RenameCatalog
for making sure the contents of the Catalog don't change after rename (#546)
- Added client methods
GetCatalogByHref
,GetCatalogById
,GetCatalogByName
to retrieve Catalogs without an Org object (#537) - Added client methods
GetAdminCatalogByHref
,GetAdminCatalogById
,GetAdminCatalogByName
to retrieve AdminCatalogs without an AdminOrg object (#537) - Added method
VAppTemplate.GetVappTemplateRecord
to retrieve a VAppTemplate query record (#537)
- Removed URL checks from
CreateCatalogFromSubscriptionAsync
to allow catalog creation from non-VCD entities, such as vSphere shared library (#537) - Fixed flaky test
Test_CatalogAccessAsOrgUsers
that failed randomly for timing issues (#540)
- Amended a quirky test
Test_CreateOrgVdcWithFlex
that failed randomly due to recovered VDC Storage Profiles being unordered (#538) - Amended a quirky test
Test_VMPowerOnPowerOff
that failed due to the testing VM not being powered off fast enough (#538)
- Added
VCDClient.GetAllAssignedVdcComputePoliciesV2
to retrieve Compute Policies without the need of anAdminVdc
receiver (#530) - Added
client
methodsQueryCatalogRecords
andGetCatalogByHref
(#531)
- Fixed issue that caused VM Group retrieval to fail if the Provider VDC had more than one Resource Pool (#530)
- Fixed issue that prevented Org update because of wrong field position in LDAP settings (#533)
- Added new functions to get vApp Templates
Catalog.GetVAppTemplateByName
,Catalog.GetVAppTemplateById
,Catalog.GetVAppTemplateByNameOrId
,Vdc.GetVAppTemplateByName
,VCDClient.GetVAppTemplateByHref
andVCDClient.GetVAppTemplateById
(#495, #520) - Added new functions to query vApp Templates by name
Catalog.QueryVappTemplateWithName
,Vdc.QueryVappTemplateWithName
,AdminVdc.QueryVappTemplateWithName
(#495) - Added new functions to delete vApp Templates
VAppTemplate.DeleteAsync
andVAppTemplate.Delete
(#495) - Added new functions to extract information from vApp Templates
VAppTemplate.GetCatalogName
andVAppTemplate.GetVdcName
(#495) - Added
Client.TestConnection
method to check remote VCD endpoints (#447, #501) - Added
Client.TestConnectionWithDefaults
method that usesClient.TestConnection
with some default values (#447, #501) - Changed behavior of
Client.OpenApiPostItem
andClient.OpenApiPostItemSync
so they accept response code 200 OK as valid. The reason isTestConnection
endpoint requires a POST request and returns a 200OK when successful (#447, #501) - Added new methods
VCDClient.GetProviderVdcByHref
,VCDClient.GetProviderVdcById
,VCDClient.GetProviderVdcByName
andProviderVdc.Refresh
to retrieve Provider VDCs (#502) - Added new methods
VCDClient.GetProviderVdcExtendedByHref
,VCDClient.GetProviderVdcExtendedById
,VCDClient.GetProviderVdcExtendedByName
andProviderVdcExtended.Refresh
to retrieve the extended flavor of Provider VDCs (#502) - Added new methods
ProviderVdcExtended.ToProviderVdc
, to convert from an extended Provider VDC to a regular one (#502) - Added new methods
ProviderVdc.GetMetadata
,ProviderVdc.AddMetadataEntry
,ProviderVdc.AddMetadataEntryAsync
,ProviderVdc.MergeMetadataAsync
,ProviderVdc.MergeMetadata
,ProviderVdc.DeleteMetadataEntry
andProviderVdc.DeleteMetadataEntryAsync
to manage Provider VDCs metadata (#502) - Added new methods
VCDClient.GetVmGroupById
,VCDClient.GetVmGroupByNamedVmGroupIdAndProviderVdcUrn
andVCDClient.GetVmGroupByNameAndProviderVdcUrn
to retrieve VM Groups. These are useful to create VM Placement Policies (#504) - Added new methods
VCDClient.GetLogicalVmGroupById
,VCDClient.CreateLogicalVmGroup
andLogicalVmGroup.Delete
to manage Logical VM Groups. These are useful to create VM Placement Policies (#504) - Added the function
VCDClient.GetMetadataByKeyAndHref
to get a specific metadata value using an entity reference (#510) - Added the functions
VCDClient.AddMetadataEntryWithVisibilityByHrefAsync
andVCDClient.AddMetadataEntryWithVisibilityByHref
to add metadata with both visibility and domain to any entity by using its reference (#510) - Added the functions
VCDClient.MergeMetadataWithVisibilityByHrefAsync
andVCDClient.MergeMetadataWithVisibilityByHref
to merge metadata data supporting also visibility and domain (#510) - Added the functions
VCDClient.DeleteMetadataEntryWithDomainByHrefAsync
andVCDClient.DeleteMetadataEntryWithDomainByHref
to delete metadata from an entity using its reference (#510) - Added the function
GetMetadataByKey
to the following entities:VM
,Vdc
,AdminVdc
,ProviderVdc
,VApp
,VAppTemplate
,MediaRecord
,Media
,Catalog
,AdminCatalog
,Org
,AdminOrg
,Disk
,OrgVDCNetwork
,CatalogItem
,OpenApiOrgVdcNetwork
to get a specific metadata value (#510) - Added the functions
AddMetadataEntryWithVisibilityAsync
andAddMetadataEntryWithVisibility
to the following entities:VM
,AdminVdc
,ProviderVdc
,VApp
,VAppTemplate
,MediaRecord
,Media
,AdminCatalog
,AdminOrg
,Disk
,OrgVDCNetwork
,CatalogItem
,OpenApiOrgVdcNetwork
to add metadata with both visibility and domain to them (#510) - Added the functions
MergeMetadataWithMetadataValuesAsync
andMergeMetadataWithMetadataValues
to the following entities:VM
,AdminVdc
,ProviderVdc
,VApp
,VAppTemplate
,MediaRecord
,Media
,AdminCatalog
,AdminOrg
,Disk
,OrgVDCNetwork
,CatalogItem
,OpenApiOrgVdcNetwork
to merge metadata data supporting also visibility and domain (#510) - Added the functions
DeleteMetadataEntryWithDomainAsync
andDeleteMetadataEntryWithDomain
to the following entities:VM
,AdminVdc
,ProviderVdc
,VApp
,VAppTemplate
,MediaRecord
,Media
,AdminCatalog
,AdminOrg
,Disk
,OrgVDCNetwork
,CatalogItem
,OpenApiOrgVdcNetwork
to delete metadata with the domain, that allows deleting metadata present in SYSTEM (#510) - Added
AdminOrg
methodsCreateCatalogFromSubscriptionAsync
andCreateCatalogFromSubscription
to create a subscribed catalog (#511) - Added method
AdminCatalog.FullSubscriptionUrl
to return the subscription URL of a published catalog (#511) - Added method
AdminCatalog.WaitForTasks
to wait for catalog tasks to complete (#511) - Added method
AdminCatalog.UpdateSubscriptionParams
to modify the terms of an existing subscription (#511) - Added methods
Catalog.QueryTaskList
andAdminCatalog.QueryTaskList
to retrieve the tasks associated with a catalog (#511) - Added function
IsValidUrl
to determine if a URL is valid (#511) - Added
AdminCatalog
methodsSync
andLaunchSync
to synchronise a subscribed catalog (#511) - Added method
AdminCatalog.GetCatalogHref
to retrieve the HREF of a regular catalog (#511) - Added
AdminCatalog
methodsQueryCatalogItemList
,QueryVappTemplateList
, andQueryMediaList
to retrieve lists of dependent items (#511) - Added
AdminCatalog
methodsLaunchSynchronisationVappTemplates
,LaunchSynchronisationAllVappTemplates
,LaunchSynchronisationMediaItems
, andLaunchSynchronisationAllMediaItems
to start synchronisation of dependent items (#511) - Added
AdminCatalog
methodsGetCatalogItemByHref
andQueryCatalogItem
to retrieve a single Catalog Item (#511) - Added method
CatalogItem.LaunchSync
to start synchronisation of a catalog item (#511) - Added method
CatalogItem.Refresh
to get fresh contents for a catalog item (#511) - Added function
WaitResource
to wait for tasks associated to a gioven resource (#511) - Added function
MinimalShowTask
to display task progress with minimal info (#511) - Added functions
ResourceInProgress
andResourceComplete
to check on task activity for a given entity (#511) - Added functions
SkimTasksList
,SkimTasksListMonitor
,WaitTaskListCompletion
,WaitTaskListCompletionMonitor
to process lists of tasks and lists of task IDs (#511) - Added
Client
methodsGetTaskByHREF
andGetTaskById
to retrieve individual tasks (#511) - Implemented
QueryItem
forTask
andAdminTask
(GetHref
,GetName
,GetType
,GetParentId
,GetParentName
,GetMetadataValue
,GetDate
) (#511) - Added
VCDClient.QueryMediaById
to query a media record using a media ID (#520) - Added
Vdc.QueryVappSynchronizedVmTemplate
to query a VM inside a vApp Template that must be synchronized in the catalog [#520] - Added
VCDClient.QueryVmInVAppTemplateByHref
andVCDClient.QuerySynchronizedVmInVAppTemplateByHref
to query a VM inside a vApp Template by using the latter's hyper-reference (#520) - Added
VCDClient.QuerySynchronizedVAppTemplateById
to get a synchronized vApp Template query record from a vApp Template ID (#520)
- Bumped Default API Version to V36.0 (VCD 10.3+) #500
- Added method
VM.Shutdown
to shut down guest OS (#413, #496) - Added support for MoRef ID on VM record type. Using the MoRef ID, we can then correlate that back to vCenter Server and find the VM with matching MoRef ID (#491)
- Added support for querying VdcStorageProfile:
- functions
QueryAdminOrgVdcStorageProfileByID
andQueryOrgVdcStorageProfileByID
- query types
QtOrgVdcStorageProfile
andQtAdminOrgVdcStorageProfile
- data struct
QueryResultAdminOrgVdcStorageProfileRecordType
(non admin struct already was here) (#499)
- functions
- Created new VDC Compute Policies CRUD methods using OpenAPI v2.0.0:
VCDClient.GetVdcComputePolicyV2ById
,VCDClient.GetAllVdcComputePoliciesV2
,VCDClient.CreateVdcComputePolicyV2
,VdcComputePolicyV2.Update
,VdcComputePolicyV2.Delete
andAdminVdc.GetAllAssignedVdcComputePoliciesV2
. This version supports more filtering options likeisVgpuPolicy
(#502, #504, #507) - Simplified
Test_LDAP
by using a pre-configured LDAP server (#505) - Added VCDClient.GetAllNsxtEdgeClusters for lookup of NSX-T Edge Clusters in wider scopes - Provider VDC, VDC Group or VDC (#512)
- Switched VDC.GetAllNsxtEdgeClusters to use 'orgVdcId' filter instead of '_context' (now deprecated) (#512)
- Created
VM.UpdateComputePolicyV2
andVM.UpdateComputePolicyV2Async
that uses v2.0.0 of VDC Compute Policy endpoint of OpenAPI and allows updating VM Sizing Policies and also VM Placement Policies for a given VM (#513) - Added
[]tenant
structure to simplify org user testing (#515) - Improved
Vdc.QueryVappVmTemplate
to avoid querying VMs in vApp Templates that are not synchronized in the catalog (#520)
- Changed
VdcComputePolicy.Description
to a non-omitempty pointer, to be able to send null values to VCD to set empty descriptions. (#504) - Fixed issue #514 "ignoring pagination in network queries" (#518)
- Fixed type
types.AdminVdc.ResourcePoolRefs
to make unmarshaling work (read-only) (#494) - Fixed Test_NsxtSecurityGroupGetAssociatedVms which had name clash (#498)
- Deprecated OpenAPI v1.0.0 VDC Compute Policies CRUD methods in favor of v2.0.0 ones:
Client.GetVdcComputePolicyById
,Client.GetAllVdcComputePolicies
,Client.CreateVdcComputePolicy
VdcComputePolicy.Update
,VdcComputePolicy.Delete
andAdminVdc.GetAllAssignedVdcComputePolicies
(#504) - Deprecated the functions
VCDClient.AddMetadataEntryByHrefAsync
andVCDClient.AddMetadataEntryByHref
in favor ofVCDClient.AddMetadataEntryWithVisibilityByHrefAsync
andVCDClient.AddMetadataEntryWithVisibilityByHref
(#510) - Deprecated the functions
VCDClient.MergeMetadataByHrefAsync
andVCDClient.MergeMetadataByHref
in favor ofVCDClient.MergeMetadataWithVisibilityByHrefAsync
andVCDClient.MergeMetadataWithVisibilityByHref
(#510) - Deprecated the functions
AddMetadataEntryAsync
andAddMetadataEntry
from the following entities:VM
,Vdc
,AdminVdc
,ProviderVdc
,VApp
,VAppTemplate
,MediaRecord
,Media
,AdminCatalog
,AdminOrg
,Disk
,OrgVDCNetwork
,CatalogItem
in favor of theirAddMetadataEntryWithVisibilityAsync
andAddMetadataEntryWithVisibility
counterparts (#510) - Deprecated the functions
MergeMetadataAsync
andMergeMetadataAsync
from the following entities:VM
,Vdc
,AdminVdc
,ProviderVdc
,VApp
,VAppTemplate
,MediaRecord
,Media
,AdminCatalog
,AdminOrg
,Disk
,OrgVDCNetwork
,CatalogItem
in favor of theirMergeMetadataWithMetadataValuesAsync
andMergeMetadataWithMetadataValues
counterparts (#510) - Deprecated the functions
DeleteMetadata
andDeleteMetadataAsync
from the following entities:VM
,Vdc
,AdminVdc
,ProviderVdc
,VApp
,VAppTemplate
,MediaRecord
,Media
,AdminCatalog
,AdminOrg
,Disk
,OrgVDCNetwork
,CatalogItem
in favor of theirDeleteMetadataWithDomainAsync
andDeleteMetadataWithDomain
counterparts (#510)
- Switched
go.mod
to use Go 1.19 (#511) - Ran
make fmt
using Go 1.19 release (fmt
automatically changes doc comment structure). This will preventmake static
errors when running tests in pipeline using Go 1.19 (#497) - Updated branding
vCloud Director
->VMware Cloud Director
(#497) - package
io/ioutil
is deprecated as of Go 1.16.staticcheck
started complaining about usage of deprecated packages. As a result packagesio
oros
are used (still the same functions are used) (#497) - Adjusted
staticcheck
version naming to new format (from2021.1.2
tov0.3.3
) (#497] - Added a new GitHub Action to run
gosec
on every push and pull request [#516) - Improved documentation for
types.OpenApiOrgVdcNetworkDhcp
(#517)
- Added support for
DnsServers
onOpenApiOrgVdcNetworkDhcp
struct (#465) - Added new methods
Org.GetAllSecurityTaggedEntities
,Org.GetAllSecurityTaggedEntitiesByName
,Org.GetAllSecurityTagValues
,VM.GetVMSecurityTags
,Org.UpdateSecurityTag
andVM.UpdateVMSecurityTags
to deal with security tags (#467) - Added new structs
types.SecurityTag
,types.SecurityTaggedEntity
,types.SecurityTagValue
andtypes.EntitySecurityTags
(#467) - Added
Vdc.GetControlAccess
,Vdc.SetControlAccess
andVdc.DeleteControlAccess
to get, set and delete control access capabilities to VDCs (#470) - Added support to set, get and delete metadata to CatalogItem with the methods
CatalogItem.AddMetadataEntry
,CatalogItem.AddMetadataEntryAsync
,CatalogItem.GetMetadata
,CatalogItem.DeleteMetadataEntry
andCatalogItem.DeleteMetadataEntryAsync
. (#471) - Added
AdminCatalog.MergeMetadata
,AdminCatalog.MergeMetadataAsync
,AdminOrg.MergeMetadata
,AdminOrg.MergeMetadataAsync
,CatalogItem.MergeMetadata
,CatalogItem.MergeMetadataAsync
,Disk.MergeMetadata
,Disk.MergeMetadataAsync
,Media.MergeMetadata
,Media.MergeMetadataAsync
,MediaRecord.MergeMetadata
,MediaRecord.MergeMetadataAsync
,OpenAPIOrgVdcNetwork.MergeMetadata
,OpenAPIOrgVdcNetwork.MergeMetadataAsync
,OrgVDCNetwork.MergeMetadata
,OrgVDCNetwork.MergeMetadataAsync
,VApp.MergeMetadata
,VApp.MergeMetadataAsync
,VAppTemplate.MergeMetadata
,VAppTemplate.MergeMetadataAsync
,VM.MergeMetadata
,VM.MergeMetadataAsync
,Vdc.MergeMetadata
,Vdc.MergeMetadataAsync
to merge metadata, which both updates existing metadata with same key and adds new entries for the non-existent ones (#473) - Added NSX-T Edge Gateway methods
NsxtEdgeGateway.GetNsxtRouteAdvertisement
,NsxtEdgeGateway.GetNsxtRouteAdvertisementWithContext
,NsxtEdgeGateway.UpdateNsxtRouteAdvertisement
,NsxtEdgeGateway.UpdateNsxtRouteAdvertisementWithContext
,NsxtEdgeGateway.DeleteNsxtRouteAdvertisement
andNsxtEdgeGateway.DeleteNsxtRouteAdvertisementWithContext
that allow to manage NSX-T Route Advertisement (#478, #480) - Added new methods
NsxtEdgeGateway.GetBgpConfiguration
,NsxtEdgeGateway.UpdateBgpConfiguration
,NsxtEdgeGateway.DisableBgpConfiguration
for BGP Configuration management on NSX-T Edge Gateway (#480) - Added new structs
types.EdgeBgpConfig
,types.EdgeBgpGracefulRestartConfig
,types.EdgeBgpConfigVersion
for BGP Configuration management on NSX-T Edge Gateway (#480) - Added support for Dynamic Security Groups in VCD 10.3 by expanding
types.NsxtFirewallGroup
to accommodate fields required for Dynamic Security Groups, implemented automatic API elevation to v36.0. Added New functionsVdcGroup.CreateNsxtFirewallGroup
,NsxtFirewallGroup.IsDynamicSecurityGroup
(#487) - Added support for managing NSX-T Edge Gateway BGP IP Prefix Lists. It is done by adding types
EdgeBgpIpPrefixList
andtypes.EdgeBgpIpPrefixList
with functionsCreateBgpIpPrefixList
,GetAllBgpIpPrefixLists
,GetBgpIpPrefixListByName
,GetBgpIpPrefixListById
,Update
andDelete
(#488) - Added support for managing NSX-T Edge Gateway BGP Neighbor. It is done by adding types
EdgeBgpNeighbor
andtypes.EdgeBgpNeighbor
with functionsCreateBgpNeighbor
,GetAllBgpNeighbors
,GetBgpNeighborByIp
,GetBgpNeighborById
,Update
andDelete
(#489)
- Added methods
client.CreateVdcComputePolicy
,client.GetVdcComputePolicyById
,client.GetAllVdcComputePolicies
(#468) - Added additional methods for convenience of NSX-T Org Network DHCP handling
OpenApiOrgVdcNetwork.GetOpenApiOrgVdcNetworkDhcp
,OpenApiOrgVdcNetwork.DeletNetworkDhcp
OpenApiOrgVdcNetwork.UpdateDhcp
(#469) - Added additional support for UDF type ISO files in
catalog.UploadMediaImage
(#479) - Added
SupportedFeatureSet
attribute toNsxtAlbServiceEngineGroup
andNsxtAlbConfig
to support v37.0 license management for AVI Load Balancer and replaceLicenseType
fromNsxtAlbController
(#485)
- Fixed method
adminOrg.FindCatalogRecords
to escape name in query URL (#466) - Fixed method
vm.WaitForDhcpIpByNicIndexes
to ignore not found Edge Gateway (#481)
- Deprecated
org.GetVdcComputePolicyById
,adminOrg.GetVdcComputePolicyById
(#468) - Deprecated
org.GetAllVdcComputePolicies
,adminOrg.GetAllVdcComputePolicies
,org.CreateVdcComputePolicy
(#468)
- Added support for Shareable disks, i.e., independent disks that can be attached to multiple VMs which is available from API v35.0 onwards. Also added UUID to the Disk structure which is a new member that is returned from v36.0 onwards. This member holds a UUID that can be used to correlate the disk that is attached to a particular VM from the VCD side and the VM host side. (#383)
- Added support for uploading OVF using URL
catalog.UploadOvfByLink
(#422, #426) - Added support for updating vApp template
vAppTemplate.UpdateAsync
andvAppTemplate.Update
(#422) - Added methods
catalog.PublishToExternalOrganizations
andadminCatalog.PublishToExternalOrganizations
(#424) - Added types
types.MetadataStringValue
,types.MetadataNumberValue
,types.MetadataDateTimeValue
andtypes.MetadataBooleanValue
for adding different kind of metadata to entities (#430) - Added support to set, get and delete metadata to AdminCatalog with the methods
AdminCatalog.AddMetadataEntry
,AdminCatalog.AddMetadataEntryAsync
,AdminCatalog.GetMetadata
,AdminCatalog.DeleteMetadataEntry
andAdminCatalog.DeleteMetadataEntryAsync
. (#430) - Added support to get metadata from Catalog with method
Catalog.GetMetadata
(#430) - Added to
VM
andVApp
the methodsDeleteMetadataEntry
,DeleteMetadataEntryAsync
,AddMetadataEntry
andAddMetadataEntryAsync
so it follows the same convention as the rest of entities that uses metadata. (#430) - Added methods
vm.ChangeCPU
andvm.ChangeMemory
which uses the latest API structure instead of deprecated ones (#432) - Added environment variable
GOVCD_API_VERSION
so API version can be set manually (#434) - Added support to set, get and delete metadata to AdminOrg with the methods
AdminOrg.AddMetadataEntry
,AdminOrg.AddMetadataEntryAsync
,AdminOrg.GetMetadata
,AdminOrg.DeleteMetadataEntry
andAdminOrg.DeleteMetadataEntryAsync
. (#438) - Added support to get metadata to Org with the method
Org.GetMetadata
. (#438) - Added support to set, get and delete metadata to Disk with the methods
Disk.AddMetadataEntry
,Disk.AddMetadataEntryAsync
,Disk.GetMetadata
,Disk.DeleteMetadataEntry
andDisk.DeleteMetadataEntryAsync
. (#438) - Added new structure
AnyTypeEdgeGateway
which supports retreving both types of Edge Gateways (NSX-V and NSX-T) with methodsAdminOrg.GetAnyTypeEdgeGatewayById
,Org.GetAnyTypeEdgeGatewayById
,AnyTypeEdgeGateway.IsNsxt
,AnyTypeEdgeGateway.IsNsxv
,AnyTypeEdgeGateway.GetNsxtEdgeGateway
(#443) - Added functions
VdcGroup.GetCapabilities
,VdcGroup.IsNsxt
,VdcGroup.GetOpenApiOrgVdcNetworkByName
,VdcGroup.GetAllOpenApiOrgVdcNetworks
,Org.GetOpenApiOrgVdcNetworkByNameAndOwnerId
(#443) - Added method
AdminOrg.FindCatalogRecords
that allows to querytypes.CatalogRecord
by their catalog name. (#450) - Added methods
Client.QueryWithNotEncodedParamsWithHeaders
andClient.QueryWithNotEncodedParamsWithApiVersionWithHeaders
so HTTP headers can be added now when doing API queries. (#450) - Added functions
VdcGroup.GetNsxtFirewallGroupByName
andVdcGroup.GetNsxtFirewallGroupById
(#451) - Added support for for Network Context Profile lookup using
GetAllNetworkContextProfiles
andGetNetworkContextProfilesByNameScopeAndContext
functions (#452) - Added support for NSX-T Distributed Firewall rule management using type
DistributedFirewall
andVdcGroup.GetDistributedFirewall
,VdcGroup.UpdateDistributedFirewall
,VdcGroup.DeleteAllDistributedFirewallRules
,DistributedFirewall.DeleteAllRules
(#452) - Added support to set, get and delete metadata to the following resources via its HREF:
catalog
,catalog item
,edge gateway
,independent disk
,media
,network
,org
,PVDC
,PVDC storage profile
,vApp
,vApp template
,VDC
andVDC storage profile
; with the methodsVCDClient.GetMetadataByHref
,VCDClient.AddMetadataEntryByHref
,VCDClient.AddMetadataEntryByHrefAsync
,VCDClient.DeleteMetadataEntryByHref
andVCDClient.DeleteMetadataEntryByHrefAsync
(#454) - Added functions
VdcGroup.GetOpenApiOrgVdcNetworkById
andVdcGroup.CreateOpenApiOrgVdcNetwork
(#456) - New method added
Disk.GetAttachedVmsHrefs
(#436)
- Bumped Default API Version to V35.0 (#434)
- Disk methods have now the ability to access new properties from API version 36.0. They are:
DiskRecordType.SharingType
,DiskRecordType.UUID
,DiskRecordType.Encrypted
,Disk.SharingType
,Disk.UUID
andDisk.Encrypted
(#436) - Added support for
User
entities imported from LDAP, withIsExternal
property (#439) - Added support for users list attribute for
Group
(#439) - Improved
group.Update()
to avoid sending the users list to VCD to avoid unwanted errors (#449) - NSX-T Edge Gateway now supports VDC Groups by switching from
OrgVdc
toOwnerRef
field. Additional methodsNsxtEdgeGateway.MoveToVdcOrVdcGroup()
,Org.GetNsxtEdgeGatewayByNameAndOwnerId()
,VdcGroup.GetNsxtEdgeGatewayByName()
,VdcGroup.GetAllNsxtEdgeGateways()
,org.GetVdcGroupById
(#440) - Added additional helper functions
OwnerIsVdcGroup()
,OwnerIsVdc()
,VdcGroup.GetCapabilities()
,VdcGroup.IsNsxt()
(#440) - Added support to set, get and delete metadata to VDC Networks with the methods
OrgVDCNetwork.AddMetadataEntry
,OrgVDCNetwork.AddMetadataEntryAsync
,OrgVDCNetwork.GetMetadata
,OrgVDCNetwork.DeleteMetadataEntry
andOrgVDCNetwork.DeleteMetadataEntryAsync
(#442) - Added
CanPublishExternally
andCanSubscribe
attributes toOrgGeneralSettings
struct. (#444) - Added workaround to tests for Org Catalog publishing bug when dealing with LDAP (#458)
- Added clean-up actions to some tests that were uploading vAppTemplates/medias to catalogs (#458)
- Added support to set, get and delete metadata to OpenAPI VDC Networks through XML with the methods
OpenApiOrgVdcNetwork.AddMetadataEntry
,OpenApiOrgVdcNetwork.GetMetadata
,OpenApiOrgVdcNetwork.DeleteMetadataEntry
(#459) - Added
Vdc.GetNsxtAppPortProfileByName
andVdcGroup.GetNsxtAppPortProfileByName
for NSX-T Application Port Profile lookup (#460)
- Fixed Issue #431 "Wrong order in Task structure" (#433)
- Fixed Issue where VDC creation with storage profile
enabled=false
wasn't working.VdcStorageProfile.enabled
andVdcStorageProfileConfiguration.enabled
changed to pointers (#433) - Fixed method
client.GetStorageProfileByHref
to return IOPSIopsSettings
(#435) Vms.VmReference
changed to array to fix incorrect deserialization (#436)Catalog.QueryMediaList
method was not working becausefmt.Sprintf
was being misused (#441)
- Deprecated
vm.DeleteMetadata
in favor ofvm.DeleteMetadataEntry
(#430) - Deprecated
vm.AddMetadata
in favor ofvm.AddMetadataEntry
(#430) - Deprecated
vdc.DeleteMetadata
in favor ofvdc.DeleteMetadataEntry
(#430) - Deprecated
vdc.AddMetadata
in favor ofvdc.AddMetadataEntry
(#430) - Deprecated
vdc.AddMetadataAsync
in favor ofvdc.AddMetadataEntryAsync
(#430) - Deprecated
vdc.DeleteMetadataAsync
in favor ofvdc.DeleteMetadataEntryAsync
(#430) - Deprecated
vApp.DeleteMetadata
in favor ofvApp.DeleteMetadataEntry
(#430) - Deprecated
vApp.AddMetadata
in favor ofvApp.AddMetadataEntry
(#430) - Deprecated
vAppTemplate.AddMetadata
in favor ofvAppTemplate.AddMetadataEntry
(#430) - Deprecated
vAppTemplate.AddMetadataAsync
in favor ofvAppTemplate.AddMetadataEntryAsync
(#430) - Deprecated
vAppTemplate.DeleteMetadata
in favor ofvAppTemplate.DeleteMetadataEntry
(#430) - Deprecated
vAppTemplate.DeleteMetadataAsync
in favor ofvAppTemplate.DeleteMetadataEntryAsync
(#430) - Deprecated
mediaRecord.AddMetadata
in favor ofmediaRecord.AddMetadataEntry
(#430) - Deprecated
mediaRecord.AddMetadataAsync
in favor ofmediaRecord.AddMetadataEntryAsync
(#430) - Deprecated
mediaRecord.DeleteMetadata
in favor ofmediaRecord.DeleteMetadataEntry
(#430) - Deprecated
mediaRecord.DeleteMetadataAsync
in favor ofmediaRecord.DeleteMetadataEntryAsync
(#430) - Deprecated
media.AddMetadata
in favor ofmedia.AddMetadataEntry
(#430) - Deprecated
media.AddMetadataAsync
in favor ofmedia.AddMetadataEntryAsync
(#430) - Deprecated
media.DeleteMetadata
in favor ofmedia.DeleteMetadataEntry
(#430) - Deprecated
media.DeleteMetadataAsync
in favor ofmedia.DeleteMetadataEntryAsync
(#430) - Deprecated
vm.ChangeMemorySize
in favor ofvm.ChangeMemory
(#432) - Deprecated
vm.ChangeCPUCount
andvm.ChangeCPUCountWithCore
in favor ofvm.ChangeCPU
(#432)
- Bumped
staticcheck
version to 2022.1 with Go 1.18 support (#457)
- Added type
NsxtAlbConfig
and functionsNsxtEdgeGateway.UpdateAlbSettings
,NsxtEdgeGateway.GetAlbSettings
,NsxtEdgeGateway.DisableAlb
(#403) - Added types
Certificate
andtypes.CertificateLibraryItem
for handling Certificates in Certificate Library with corresponding methodsclient.GetCertificateFromLibraryById
,client.AddCertificateToLibrary
,client.GetAllCertificatesFromLibrary
,client.GetCertificateFromLibraryByName
,adminOrg.GetCertificateFromLibraryById
,adminOrg.AddCertificateToLibrary
,adminOrg.GetAllCertificatesFromLibrary
,adminOrg.GetCertificateFromLibraryByName
,certificate.Update
,certificate.Delete
(#404) - Added support for ALB Service Engine Group Assignment to NSX-T Edge Gateway via type
NsxtAlbServiceEngineGroupAssignment
and functionsGetAllAlbServiceEngineGroupAssignments
,GetAlbServiceEngineGroupAssignmentById
,GetAlbServiceEngineGroupAssignmentByName
,CreateAlbServiceEngineGroupAssignment
,Update
,Delete
(#405) - Added type
types.ApiTokenRefresh
to contain data from API token refresh (#406) - Added method
VCDClient.GetBearerTokenFromApiToken
to get a bearer token from an API token (#406) - Added method
VCDClient.SetApiToken
to set a token and get a bearer token using and API token and get token details in return (#406) - Added types
VdcGroup
,types.VdcGroup
,types.ParticipatingOrgVdcs
,types.CandidateVdc
,types.DfwPolicies
andtypes.DefaultPolicy
for handling VDC groups with corresponding methodsadminOrg.CreateNsxtVdcGroup
,adminOrg.CreateVdcGroup
,adminOrg.GetAllNsxtVdcGroupCandidates
,adminOrg.GetAllVdcGroupCandidates
,adminOrg.GetAllVdcGroups
,adminOrg.GetVdcGroupByName
,adminOrg.GetVdcGroupById
,vdcGroup.Update
,vdcGroup.GenericUpdate
,vdcGroup.Delete
,vdcGroup.DisableDefaultPolicy
,vdcGroup.EnableDefaultPolicy
,vdcGroup.GetDfwPolicies
,vdcGroup.DeActivateDfw
,vdcGroup.ActivateDfw
,vdcGroup.UpdateDefaultDfwPolicies
,vdcGroup.UpdateDfwPolicies
(#410) - Added support for ALB Pool to NSX-T Edge Gateway via type
NsxtAlbPool
and functionsGetAllAlbPools
,GetAllAlbPoolSummaries
,GetAlbPoolByName
,GetAlbPoolById
,CreateNsxtAlbPool
,nsxtAlbPool.Update
,nsxtAlbPool.Delete
(#414) - Added support for ALB Virtual Services to NSX-T Edge Gateway via type
NsxtAlbVirtualService
and functionsGetAllAlbVirtualServices
,GetAllAlbGetAllAlbVirtualServiceSummaries
,GetAlbVirtualServiceByName
,GetAlbVirtualServiceById
,CreateNsxtAlbVirtualService
,NsxtAlbVirtualService.Update
,NsxtAlbVirtualService.Delete
(#417)
VCDClient.SetToken
has now the ability of transparently setting a bearer token when receiving an API token (#406)- Removed Coverity warnings from code (#408, #412)
- Added session info to go-vcloud-director logs (#409)
- Added type
types.UpdateLeaseSettingsSection
to handle vApp lease settings. (#420) - Added methods
vApp.GetLease
andvApp.RenewLease
, to query the state of the vApp lease and eventually modify it. (#420) - Added
LeaseSettingsSection
totypes.VApp
structure. (#420)
- Fixed Issue #728:
vm.UpdateInternalDisksAsync()
didn't send VM description and as a result would delete VM description (#418) - Removed hardcoded 0 value for Weight field in
ChangeCPUCountWithCore
function to avoid overriding shares (#419) - Fixed issue #421 "Wrong xml name in SourcedVmTemplateParams" (#420)
- Added method
AdminVdc.AddStorageProfile
(#393) - Added method
AdminVdc.AddStorageProfileWait
(#393) - Added method
AdminVdc.RemoveStorageProfile
(#393) - Added method
AdminVdc.RemoveStorageProfileWait
(#393) - Added method
AdminVdc.SetDefaultStorageProfile
(#393) - Added method
AdminVdc.GetDefaultStorageProfileReference
(#393) - Added method
VCDClient.GetStorageProfileByHref
(#393) - Added method
Client.GetStorageProfileByHref
(#393) - Added method
VCDClient.QueryProviderVdcStorageProfileByName
(#393) - Added method
Client.QueryAllProviderVdcStorageProfiles
(#393) - Added method
Client.QueryProviderVdcStorageProfiles
(#393) - Added types
NsxtAlbController
andtypes.NsxtAlbController
for handling NSX-T ALB Controllers with corresponding functionsGetAllAlbControllers
,GetAlbControllerByName
,GetAlbControllerById
,GetAlbControllerByUrl
,CreateNsxtAlbController
,Update
,Delete
(#398) - Added types
NsxtAlbCloud
andtypes.NsxtAlbCloud
for handling NSX-T ALB Clouds with corresponding functionsGetAllAlbClouds
,GetAlbCloudByName
,GetAlbCloudById
,CreateAlbCloud
,Delete
(#398) - Added type
NsxtAlbImportableCloud
andtypes.NsxtAlbImportableCloud
for listing NSX-T ALB Importable Clouds with corresponding functionsGetAllAlbImportableClouds
,GetAlbImportableCloudByName
,GetAlbImportableCloudById
(#398) - Added types
NsxtAlbServiceEngineGroup
andtypes.NsxtAlbServiceEngineGroup
for handling NSX-T ALB Service Engine Groups with corresponding functionsGetAllNsxtAlbServiceEngineGroups
,GetAlbServiceEngineGroupByName
,GetAlbServiceEngineGroupById
,CreateNsxtAlbServiceEngineGroup
,Update
,Delete
,Sync
(#398) - Added types
NsxtAlbImportableServiceEngineGroups
andtypes.NsxtAlbImportableServiceEngineGroups
for listing NSX-T ALB Importable Service Engine Groups with corresponding functionsGetAllAlbImportableServiceEngineGroups
,GetAlbImportableServiceEngineGroupByName
,GetAlbImportableServiceEngineGroupById
(#398)
-
External network type ExternalNetworkV2 automatically elevates API version to maximum available out of 33.0, 35.0 and 36.0, so that new functionality can be consumed. It uses a controlled version elevation mechanism to consume the newer features, but at the same time remain tested by not choosing the latest untested version blindly (more information in openapi_endpoints.go) (#399)
-
Added new field BackingTypeValue in favor of deprecated BackingType to types.ExternalNetworkV2Backing (#399)
-
Added new function
GetFilteredNsxtImportableSwitches
to query NSX-T Importable Switches (Segments) (#399) -
Added
.changes
directory for changelog items (#391) -
Aligned build tags to match go fmt with Go 1.17 (#396)
-
Improved
test-tags.sh
script to handle new build tag format (#396)
-
Fixed handling of
staticcheck
in GitGub Actions (#391) -
Fixed Issue #390:
catalog.Delete()
ignores returned task and responds immediately which could have caused failures (#392) -
Fixed Issue #395 "BUG: can't update EGW - there is no ownerRef field" (#397)
- Deprecated
GetStorageProfileByHref
in favor of eitherclient.GetStorageProfileByHref
orvcdClient.GetStorageProfileByHref
(#393) - Deprecated
QueryProviderVdcStorageProfileByName
in favor ofVCDClient.QueryProviderVdcStorageProfileByName
(#393) - Deprecated
VCDClient.QueryProviderVdcStorageProfiles
in favor of eitherclient.QueryProviderVdcStorageProfiles
orclient.QueryAllProviderVdcStorageProfiles
(#393) - Deprecated
Vdc.GetDefaultStorageProfileReference
in favor ofadminVdc.GetDefaultStorageProfileReference
(#393)
BUGS FIXED:
- org.GetCatalogByName and org.GetCatalogById could not retrieve shared catalogs from different Orgs #389
- Improved error handling and function receiver name in client #379
- Added method
vdc.QueryEdgeGateway
#364 - Deprecated
vdc.GetEdgeGatewayRecordsType
#364 - Dropped support for VCD 9.7 which is EOL now #371
- Bumped Default API Version to V33.0 #371
- Methods
GetVDCById
andGetVDCByName
forOrg
now use queries behind the scenes because Org structure does not list child VDCs anymore #371, #376, #382 - Methods
GetCatalogById
andGetCatalogByName
forOrg
now use queries behind the scenes because Org structure does not list child Catalogs anymore #371, #376 - Drop legacy authentication mechanism (vcdAuthorize) and use only new Cloud API provided (vcdCloudApiAuthorize) as API V33.0 is sufficient for it #371
- Added NSX-T Firewall Group type (which represents a Security Group or an IP Set) support by using
structures
NsxtFirewallGroup
andNsxtFirewallGroupMemberVms
. The following methods are introduced for managing Security Groups and Ip Sets:Vdc.CreateNsxtFirewallGroup
,NsxtEdgeGateway.CreateNsxtFirewallGroup
,Org.GetAllNsxtFirewallGroups
,Vdc.GetAllNsxtFirewallGroups
,Org.GetNsxtFirewallGroupByName
,Vdc.GetNsxtFirewallGroupByName
,NsxtEdgeGateway.GetNsxtFirewallGroupByName
,Org.GetNsxtFirewallGroupById
,Vdc.GetNsxtFirewallGroupById
,NsxtEdgeGateway.GetNsxtFirewallGroupById
,NsxtFirewallGroup.Update
,NsxtFirewallGroup.Delete
,NsxtFirewallGroup.GetAssociatedVms
,NsxtFirewallGroup.IsSecurityGroup
,NsxtFirewallGroup.IsIpSet
#368 - Added methods Org.QueryVmList and Org.QueryVmById to find VM by ID in an Org #368
- Added
NsxtAppPortProfile
andtypes.NsxtAppPortProfile
for NSX-T Application Port Profile management #378 - Deprecated methods
vdc.ComposeRawVApp
andvdc.ComposeVApp
#387 - Added method
vdc.CreateRawVApp
#387 - Removed deprecated method
adminOrg.GetRole
- Added Tenant Context management functions
Client.RemoveCustomHeader
,Client.SetCustomHeader
,WithHttpHeader
, and many private methods to retrieve tenant context down the hierarchy. More details inCODING_GUIDELINES.md
#380 - Added Rights management methods
AdminOrg.GetAllRights
,AdminOrg.GetAllRightsCategories
,AdminOrg.GetRightById
,AdminOrg.GetRightByName
,Client.GetAllRights
,Client.GetAllRightsCategories
,Client.GetRightById
,Client.GetRightByName
,client.GetRightsCategoryById
,AdminOrg.GetRightsCategoryById
#380 - Added Global Role management methods
Client.GetAllGlobalRoles
,Client.CreateGlobalRole
,Client.GetGlobalRoleById
,Client.GetGlobalRoleByName
,GlobalRole.AddRights
,GlobalRole.Delete
,GlobalRole.GetRights
,GlobalRole.GetTenants
,GlobalRole.PublishAllTenants
,GlobalRole.PublishTenants
,GlobalRole.RemoveAllRights
,GlobalRole.RemoveRights
,GlobalRole.ReplacePublishedTenants
,GlobalRole.UnpublishAllTenants
,GlobalRole.UnpublishTenants
,GlobalRole.Update
,GlobalRole.UpdateRights
#380 - Added Rights Bundle management methods
Client.CreateRightsBundle
,Client.GetAllRightsBundles
,Client.GetRightsBundleById
,Client.GetRightsBundleByName
,RightsBundle.AddRights
,RightsBundle.Delete
,RightsBundle.GetRights
,RightsBundle.GetTenants
,RightsBundle.PublishAllTenants
,RightsBundle.PublishTenants
,RightsBundle.RemoveAllRights
,RightsBundle.RemoveRights
,RightsBundle.ReplacePublishedTenants
,RightsBundle.UnpublishAllTenants
,RightsBundle.UnpublishTenants
,RightsBundle.Update
,RightsBundle.UpdateRights
#380 - Added Role managemnt methods
AdminOrg.GetAllRoles
,AdminOrg.GetRoleById
,AdminOrg.GetRoleByName
,Client.GetAllRoles
,Role.AddRights
,Role.GetRights
,Role.RemoveAllRights
,Role.RemoveRights
,Role.UpdateRights
#380 - Added convenience function
FindMissingImpliedRights
#380 - Added methods
NsxtEdgeGateway.UpdateNsxtFirewall()
,NsxtEdgeGateway.GetNsxtFirewall()
,nsxtFirewall.DeleteAllRules()
,nsxtFirewall.DeleteRuleById
#381 - Added NSX-T NAT support with types
NsxtNatRule
andtypes.NsxtNatRule
as well as methodsedge.GetAllNsxtNatRules
,edge.GetNsxtNatRuleByName
,edge.GetNsxtNatRuleById
,edge.CreateNatRule
,nsxtNatRule.Update
,nsxtNatRule.Delete
,nsxtNatRule.IsEqualTo
#382 - Added
NsxtIpSecVpnTunnel
andtypes.NsxtIpSecVpnTunnel
for NSX-T IPsec VPN Tunnel configuration #385
BREAKING CHANGES:
- Added parameter
description
to methodvdc.ComposeRawVapp
#372 - Added methods
vapp.Rename
,vapp.UpdateDescription
,vapp.UpdateNameDescription
#372 - Field
types.Disk.Size
is replaced withtypes.Disk.SizeMb
as size in Kilobytes is not supported in V33.0 #371 - Field
types.DiskRecordType.SizeB
is replaced withtypes.DiskRecordType.SizeMb
as size in Kilobytes is not supported in V33.0 #371 - Added parameter
additionalHeader map[string]string
to functionsClient.OpenApiDeleteItem
,Client.OpenApiGetAllItems
,Client.OpenApiGetItem
,Client.OpenApiPostItem
,Client.OpenApiPutItem
,Client.OpenApiPutItemAsync
,Client.OpenApiPutItemSync
#380 - Renamed functions
GetOpenApiRoleById
->GetRoleById
,GetOpenApiRoleByName
->GetRoleByName
,GetAllOpenApiRoles
->GetAllRoles
#380
IMPROVEMENTS:
- Only send xml.Header when payload is not empty (some WAFs block empty requests with XML header) #367
- Improved test entity cleanup to find standalone VMs in any VDC (not only default NSX-V one) #368
- Improved test entity cleanup to allow specifying parent VDC for vApp removals #368
- Cleanup a few unnecessary type conversions detected by new staticcheck version #381
- Improved
OpenApiGetAllItems
to still follow pages in VCD endpoints with BUG which don't return 'nextPage' link for pagination #378 - Improved LDAP container related tests to use correct port mapping for latest LDAP container version #378
- Added structure and methods to handle Org VDC networks using OpenAPI -
OpenApiOrgVdcNetwork
. It supports VCD 9.7+ for all networks types for NSX-V and NSX-T backed VDCs #354 - Added
NsxtImportableSwitch
structure withGetNsxtImportableSwitchByName
andGetAllNsxtImportableSwitches
to lookup NSX-T segments for use in NSX-T Imported networks #354 - Added
vdc.IsNsxt
andvdc.IsNsxv
methods to verify if VDC is backed by NSX-T or NSX-V #354 - Added types
types.CreateVmParams
andtypes.InstantiateVmTemplateParams
#356 - Added VDC methods
CreateStandaloneVMFromTemplate
,CreateStandaloneVMFromTemplateAsync
CreateStandaloneVm
,CreateStandaloneVmAsync
#356 - Added VDC methods
QueryVmByName
,QueryVmById
,QueryVmList
#356 - Added VM methods
Delete
,DeleteAsync
#356 - Added VDC methods
GetOpenApiOrgVdcNetworkDhcp
,UpdateOpenApiOrgVdcNetworkDhcp
andDeleteOpenApiOrgVdcNetworkDhcp
for OpenAPI management of Org Network DHCP configurations #357
BREAKING CHANGES:
- Renamed
types.VM
totypes.Vm
to facilitate implementation of standalone VM #356
BUGS FIXED:
- Converted IPAddress field for IPAddresses struct to array #350
IMPROVEMENTS:
- Added generic OpenAPI entity cleanup for tests 348
- Added functions to retrieve and use VCD version
client.GetVcdVersion
,client.GetVcdShortVersion
,client.GetVcdFullVersion
,client.VersionEqualOrGreater
#339 - Added methods
VM.UpdateStorageProfile
,VM.UpdateStorageProfileAsync
#338 - Added methods
adminVdc.UpdateStorageProfile
#340 - Added transparent support for bearer tokens #341
- Added transparent connection using
cloudapi/1.0.0/sessions
when access throughapi/sessions
is disabled - Added functions
edge.GetLbAppRules
,edge.GetLbServerPools
,edge.GetLbAppProfiles
,edge.GetNsxvNatRules
,client.GetOrgList
- Exported private function
client.maxSupportedVersion
toclient.MaxSupportedVersion
- Able to upload an OVF without ovf:size defined in File part. Some bug fix for uploading OVA/OVF. #331
- Add support for handling catalog storage profile (
adminOrg.CreateCatalogWithStorageProfile
,org.CreateCatalogWithStorageProfile
,adminCatalog.Update
) #345 - Add convenience functions
AdminOrg.GetAllStorageProfileReferences
,AdminOrg.GetStorageProfileReferenceById
,AdminOrg.GetAllVDCs
#345 - Added VCD 10.1+ functions
(vdc *Vdc) GetNsxtEdgeClusterByName
and(vdc *Vdc) GetAllNsxtEdgeClusters
for NSX-T Edge Cluster lookup #344 - Added VCD 10.1+ NSX-T Edge Gateway management functions
GetNsxtEdgeGatewayById
,GetNsxtEdgeGatewayByName
,GetAllNsxtEdgeGateways
,CreateNsxtEdgeGateway
,Update
,Delete
#344
BREAKING CHANGES:
- type.VdcConfiguration (used for creation) changed the type for storage profile from
[]*VdcStorageProfile
to[]*VdcStorageProfileConfiguration
- Improved testing tags isolation #320
- Added command
make tagverify
to check tags isolation tests #320 - Added methods
Client.GetAccessControl
,Client.SetAccessControl
#329 - Added methods
VApp.GetAccessControl
,VApp.SetAccessControl
,VApp.RemoveAccessControl
,VApp.IsShared
#329 - Added methods
AdminCatalog.GetAccessControl
,AdminCatalog.SetAccessControl
,AdminCatalog.RemoveAccessControl
,AdminCatalog.IsShared
#329 - Added methods
Catalog.GetAccessControl
,Catalog.SetAccessControl
,Catalog.RemoveAccessControl
,Catalog.IsShared
#329 - Added methods
Vdc.GetVappAccessControl
,AdminOrg.GetCatalogAccessControl
,Org.GetCatalogAccessControl
#329 - Added methods
Vdc.QueryVappList
,Vdc.GetVappList
,AdminVdc.GetVappList
,client.GetQueryType
#329 - Added VM and vApp to search query engine #329
- Added tenant context for access control methods #329
- Loosen up
Test_LBAppRule
for invalid application script check to work with different error engine in VCD 10.2 #326 - Update VDC dynamic func to handle API version 35.0 #327
- Added methods
vm.UpdateVmCpuAndMemoryHotAdd
andvm.UpdateVmCpuAndMemoryHotAddAsyc
#324 - Introduce low level OpenAPI client functions
OpenApiGetAllItems
,OpenApiPostItemSync
,OpenApiPostItemAsync
,OpenApiPostItem
,OpenApiGetItem
,OpenApiPutItem
,OpenApiPutItemSync
,OpenApiPutItemAsync
,OpenApiDeleteItem
,OpenApiIsSupported
,OpenApiBuildEndpoints
#325, #333 - Add OVF file upload support in UploadOvf function besides OVA. The input should be OVF file path inside the OVF folder. It will check if input file is XML content type, if yes, skip some OVA steps (like unpacking), if not, keep the old logic. #323
- Dropped support for VMware Cloud Director 9.5 #330
- Deprecated Vdc.UploadMediaImage because it no longer works with API V32.0+ #330
- Add methods
vapp.AddNewVMWithComputePolicy
,org.GetVdcComputePolicyById
,adminOrg.GetVdcComputePolicyById
,org.GetAllVdcComputePolicies
,adminOrg.GetAllVdcComputePolicies
,adminOrg.CreateVdcComputePolicy
,vdcComputePolicy.Update
,vdcComputePolicy.Delete
,adminVdc.GetAllAssignedVdcComputePolicies
andadminVdc.SetAssignedComputePolicies
[#334] (#334) - Introduce NSX-T support for adminOrg.CreateOrgVdc() #332
- Introduce NSX-T support for external network using OpenAPI endpoint and
ExternalNetworkV2
type methods includingCreateExternalNetworkV2
,GetExternalNetworkById
,GetAllExternalNetworks
,ExternalNetworkV2.Update
, andExternalNetworkV2.DELETE
#335 - Introduce NSX-T Query functions
client.QueryNsxtManagerByName
andclient.GetImportableNsxtTier0RouterByName
#335 - Add HTTP User-Agent header
go-vcloud-director
to all API calls and allow to customize it usingWithHttpUserAgent
configuration options function #336
- Changed signature for
FindAdminCatalogRecords
, which now returns normalized type[]*types.CatalogRecord
#298 - Added methods
catalog.QueryVappTemplateList
,catalog.QueryCatalogItemList
,client.queryWithMetadataFields
,client.queryByMetadataFilter
#298 - Added query engine based on
client.SearchByFilter
, typeFilterDef
, and interfaceQueryItem
#298 - Added methods
adminOrg.QueryCatalogList
andorg.QueryCatalogList
#298 - Removed code that handled specific cases for API 29.0 and 30.0. This library now supports VCD versions from 9.5 to 10.1 included.
- Added
vdc.QueryVappVmTemplate
and changedvapp.AddNewVMWithStorageProfile
to allow creating VM from VM template. - Enhanced tests command line with flags that can be used instead of environment variables. #305
- Improve logging security of debug output for API requests and responses #306
- Append log files by default instead of overwriting.
GOVCD_LOG_OVERWRITE=true
environment variable can set to overwrite log file on every initialization #307 - Add configuration option
WithSamlAdfs
toNewVCDClient()
to support SAML authentication using Active Directory Federations Services (ADFS) as IdP using WS-TRUST auth endpoint "/adfs/services/trust/13/usernamemixed" #304 - Implemented VM affinity rules CRUD:
vdc.CreateVmAffinityRuleAsync
,vdc. CreateVmAffinityRule
,vdc.GetAllVmAffinityRuleList
,vdc.GetVmAffinityRuleList
,vdc.GetVmAntiAffinityRuleList
vdc.GetVmAffinityRuleByHref
,vdc.GetVmAffinityRulesByName
,vdc.GetVmAffinityRuleById
,vdc.GetVmAffinityRuleByNameOrId
,VmAffinityRule.Delete
,VmAffinityRule.Update
,VmAffinityRule.SetMandatory
,VmAffinityRule.SetEnabled
,VmAffinityRule.Refresh
#313 - Add method
client.QueryVmList
#313 - Add support for group management using
CreateGroup
,GetGroupByHref
,GetGroupById
,GetGroupByName
,GetGroupByNameOrId
,Delete
,Update
,NewGroup
functions #314 - Add LDAP administration functions for Org
LdapConfigure
,GetLdapConfiguration
, andLdapDisable
#314 - Added methods
vapp.UpdateNetworkFirewallRules
,vapp.UpdateNetworkFirewallRulesAsync
,vapp.GetVappNetworkById
,vapp.GetVappNetworkByName
andvapp.GetVappNetworkByNameOrId
#308 - Added methods
vapp.UpdateNetworkNatRulesAsync
,vapp.UpdateNetworkNatRulesAsync
,vapp.RemoveAllNetworkFirewallRules
andvapp.RemoveAllNetworkNatRules
#316 - Added methods
vapp.UpdateNetworkStaticRouting
,vapp.UpdateNetworkStaticRoutingAsync
andvapp.RemoveAllNetworkStaticRoutes
#318
- Added methods
OrgVdcNetwork.Update
,OrgVdcNetwork.UpdateAsync
, andOrgVdcNetwork.Rename
#292 - Added methods
EdgeGateway.Update
andEdgeGateway.UpdateAsync
#292 - Increment vCD API version used from 29.0 to 31.0
- Add fields
AdminVdc.UniversalNetworkPoolReference and VM.Media
- Add fields
- Added methods
vapp.AddEmptyVm
,vapp.AddEmptyVmAsync
andvdc.QueryAllMedia
#296
NOTES:
- Improved test in function
deleteVapp()
to avoid deletion errors during test suite run #297
BUGS FIXED:
- Fix issue in Queries with vCD 10 version, which do not return network pool or provider VDC#293
- Session timeout for media, catalog item upload #294
- Fix
vapp.RemoveNetwork
,vapp.RemoveNetworkAsync
to useDELETE
API call instead of update which can apply incorrect remaining vApp network configurations #299
- Moved
VCDClient.supportedVersions
toVCDClient.Client.supportedVersions
#274 - Added methods
VM.AddInternalDisk
,VM.GetInternalDiskById
,VM.DeleteInternalDisk
,VM.UpdateInternalDisks
andVM.UpdateInternalDisksAsync
#272 - Added methods
vdc.GetEdgeGatewayReferenceList
andcatalog.GetVappTemplateByHref
#278 - Improved functions to not expect XML namespaces provided in argument structure #284
- Change
int
andbool
fields from types.VAppTemplateLeaseSettings and VAppLeaseSettings into pointers - Added method
catalog.GetVappTemplateByHref
, and expose methodsvdc.GetEdgeGatewayByHref
andvdc.GetEdgeGatewayRecordsType
- Added methods
adminOrg.CreateOrgVdc
,adminOrg.CreateOrgVdcAsync
and improved existing to support Flex VDC model. These new methods are dynamic as they change invocation behind the scenes based on vCD version #285 - Deprecated functions
adminOrg.CreateVdc
andadminOrg.CreateVdcWait
#285 - Added methods
EdgeGateway.GetAllNsxvDhcpLeases()
,EdgeGateway.GetNsxvActiveDhcpLeaseByMac()
VM.WaitForDhcpIpByNicIndexes()
,VM.GetParentVApp()
,VM.GetParentVdc()
#283 types.GetGuestCustomizationSection
now uses pointers for all bool values to distinguish between empty and false value #291- Deprecated functions
Vapp.Customize()
andVM.Customize()
in favor ofvm.SetGuestCustomizationSection
#291 - Added methods
vapp.AddNetwork
,vapp.AddNetworkAsync
,vapp.AddOrgNetwork
,vapp.AddOrgNetworkAsync
,vapp.UpdateNetwork
,vapp.UpdateNetworkAsync
,vapp.UpdateOrgNetwork
,vapp.UpdateOrgNetworkAsync
,vapp.RemoveNetwork
,vapp.RemoveNetworkAsync
andGetUuidFromHref
#289 - Deprecated functions
vapp.RemoveIsolatedNetwork
,vapp.AddRAWNetworkConfig
andvapp.AddIsolatedNetwork
#289
BUGS FIXED:
- A data race in catalog/media item upload status reporting #288
Vapp.Customize()
andVM.Customize()
ignoreschangeSid
value and always set it to true #291
BUGS FIXED:
- Fix a bug where functions
GetAnyVnicIndexByNetworkName
andGetVnicIndexByNetworkNameAndType
would not find vNic index when user is authenticated as org admin (not sysadmin) #275
- Change fields ResourceGuaranteedCpu, VCpuInMhz, IsThinProvision, NetworkPoolReference, ProviderVdcReference and UsesFastProvisioning in AdminVdc to pointers to allow understand if value was returned or not.
- Added method VApp.AddNewVMWithStorageProfile that adds a VM with custom storage profile.
- Added command
make static
to run staticcheck on all packages - Added
make static
to Travis regular checks - Added ability to connect to the vCD using an authorization token
- Added method
VCDClient.SetToken
- Added method
VCDClient.GetAuthResponse
- Added script
scripts/get_token.sh
- Incremented vCD API version used from 27.0 to 29.0
- Remove fields
VdcEnabled
,VAppParentHREF
,VAppParentName
,HighestSupportedVersion
,VmToolsVersion
,TaskHREF
,TaskStatusName
,TaskDetails
,TaskStatus
fromQueryResultVMRecordType
- Added fields
ID, Type, ContainerName, ContainerID, OwnerName, Owner, NetworkHref, IpAddress, CatalogName, VmToolsStatus, GcStatus, AutoUndeployDate, AutoDeleteDate, AutoUndeployNotified, AutoDeleteNotified, Link, MetaData
toQueryResultVMRecordType
,DistributedInterface
toNetworkConfiguration
andRegenerateBiosUuid
toVMGeneralParams
- Change to pointers
DistributedRoutingEnabled
inGatewayConfiguration
andDistributedInterface
inNetworkConfiguration
- Remove fields
- Added new field to type
GatewayConfiguration
:FipsModeEnabled
- #267 - Change bool to bool pointer for fields in type
GatewayConfiguration
:HaEnabled
,UseDefaultRouteForDNSRelay
,AdvancedNetworkingEnabled
- #267 - Added method
EdgeGateway.GetLbVirtualServers
that gets all virtual servers configured on NSX load balancer. #266 - Added method
EdgeGateway.GetLbServerPools
that gets all pools configured on NSX load balancer. #266 - Added method
EdgeGateway.GetLbServiceMonitors
that gets all service monitors configured on NSX load balancer. #266 - Added field
SubInterface
toNetworkConfiguration
. #321 - Added methods
Vdc.FindEdgeGatewayNameByNetwork
andVdc.GetNetworkList
- Added IP set handling functions
CreateNsxvIpSet
,UpdateNsxvIpSet
,GetNsxvIpSetByName
,GetNsxvIpSetById
,GetNsxvIpSetByNameOrId
,GetAllNsxvIpSets
,DeleteNsxvIpSetById
,DeleteNsxvIpSetByName
#269 - Added
UpdateDhcpRelay
,GetDhcpRelay
andResetDhcpRelay
methods for Edge Gatway DHCP relay management #271 - Added methods which allow override API versions
NewRequestWitNotEncodedParamsWithApiVersion
,ExecuteTaskRequestWithApiVersion
,ExecuteRequestWithoutResponseWithApiVersion
,ExecuteRequestWithApiVersion
#274
BUGS FIXED:
- Remove parentheses from filtering since they weren't treated correctly in some environment [#256] (#256)
- Take into account all subnets (SubnetParticipation) on edge gateway interface instead of the first one #260
- Fix
OrgVdcNetwork
data structure to retrieve description. Previously, the description would not be retrieved because it was misplaced in the sequence.
- Deprecated functions
GetOrgByName
andGetAdminOrgByName
- Deprecated methods
AdminOrg.FetchUserByName
,AdminOrg.FetchUserById
,AdminOrg.FetchUserByNameOrId
,AdminOrg.GetRole
. - Added method
VCDClient.GetOrgByName
and relatedGetOrgById
,GetOrgByNameOrId
- Added method
VCDClient.GetAdminOrgByName
and relatedGetAdminOrgById
,GetAdminOrgByNameOrId
- Added methods
AdminOrg.GetUserByName
,GetUserById
,GetUserByNameOrId
,GetRoleReference
. - Added method
VCDClient.QueryProviderVdcs
- Added method
VCDClient.QueryProviderVdcStorageProfiles
- Added method
VCDClient.QueryNetworkPools
- Added get/add/delete metadata functions for vApp template and media item #225.
- Added
UpdateNetworkConnectionSection
for updating VM network configuration [#229](https://gifiltering which in some env wasn'tthub.com//pull/229) - Added
PowerOnAndForceCustomization
,GetGuestCustomizationStatus
,BlockWhileGuestCustomizationStatus
#229 - Deprecated methods
AdminOrg.GetAdminVdcByName
,AdminOrg.GetVdcByName
,AdminOrg.FindAdminCatalog
,AdminOrg.FindCatalog
- Deprecated methods
Catalog.FindCatalogItem
,Org.FindCatalog
,Org.GetVdcByName
- Deprecated function
GetExternalNetwork
- Added methods
Org.GetCatalogByName
and relatedOrg.GetCatalogById
,GetCatalogItemByNameOrId
- Added methods
VCDClient.GetExternalNetworkByName
and relatedGetExternalNetworkById
andGetExternalNetworkByNameOrId
- Added methods
AdminOrg.GetCatalogByName
and relatedOrg.GetCatalogById
,GetCatalogByNameOrId
- Added methods
AdminOrg.GetAdminCatalogByName
and relatedOrg.GetAdminCatalogById
,GetAdminCatalogByNameOrId
- Added methods
Org.GetVDCByName
and relatedGetVDCById
,GetVDCByNameOrId
- Added methods
AdminOrg.GetVDCByName
and relatedGetVDCById
,GetVDCByNameOrId
- Added methods
AdminOrg.GetAdminVDCByName
and relatedGetAdminVDCById
,GetAdminVDCByNameOrId
- Added methods
Catalog.Refresh
andAdminCatalog.Refresh
- Added method
vm.GetVirtualHardwareSection
to retrieve virtual hardware items #200 - Added methods
vm.SetProductSectionList
andvm.GetProductSectionList
allowing to manipulate VM guest properties #235 - Added methods
vapp.SetProductSectionList
andvapp.GetProductSectionList
allowing to manipulate vApp guest properties #235 - Added method GetStorageProfileByHref
- Added methods
CreateNsxvNatRule()
,UpdateNsxvNatRule()
,GetNsxvNatRuleById()
,DeleteNsxvNatRuleById()
which use the proxied NSX-V API of advanced edge gateway for handling NAT rules #241 - Added methods
GetVnicIndexByNetworkNameAndType()
andGetNetworkNameAndTypeByVnicIndex()
#241 - Added methods
Vdc.GetVappByHref
,Vdc.GetVAppByName
and relatedGetVAppById
,GetVAppByNameOrId
- Added methods
Client.GetVMByHref
Vapp.GetVAMByName
and relatedGetVMById
,GetVAMByNameOrId
- Deprecated methods
Client.FindVMByHREF
,Vdc.FindVMByName
,Vdc.FindVAppByID
, andVdc.FindVAppByName
- Added methods
Vm.GetGuestCustomizationSection
andVm.SetGuestCustomizationSection
- Added methods
CreateNsxvFirewallRule()
,UpdateNsxvFirewallRule()
,GetNsxvFirewallRuleById()
,DeleteNsxvFirewallRuleById()
which use the proxied NSX-V API of advanced edge gateway for handling firewall rules #247 - Added methods
GetFirewallParams()
,UpdateFirewallParams()
for changing global firewall settings #247 - Added method
GetAnyVnicIndexByNetworkName()
to for easier interface (vNic) lookup in edge gateway #247 - Added method
ExecuteParamRequestWithCustomError()
which adds query parameter support on top ofExecuteRequestWithCustomError()
#247 - Deprecated methods
VDC.FindDiskByHREF
andFindDiskByHREF
- Added methods
VDC.GetDiskByHref
VDC.GetDisksByName
and relatedGetDiskById
- Added new methods
Catalog.QueryMedia
,Catalog.GetMediaByName
,Catalog.GetMediaById
,Catalog.GetMediaByNameOrId
,AdminCatalog.QueryMedia
,AdminCatalog.GetMediaByName
,AdminCatalog.GetMediaById
,AdminCatalog.GetMediaByNameOrId
,MediaRecord.Refresh
,MediaRecord.Delete
,MediaRecord.GetMetadata
,MediaRecord.AddMetadata
,MediaRecord.AddMetadataAsync
,MediaRecord.DeleteMetadata
,MediaRecord.DeleteMetadataAsync
,Media.GetMetadata
,Media.AddMetadata
,Media.AddMetadataAsync
,Media.DeleteMetadata
,Media.DeleteMetadataAsync
#245 - Deprecated methods
Vdc.FindMediaImage
,MediaItem
,RemoveMediaImageIfExists
,MediaItem.Delete
,FindMediaAsCatalogItem
,*MediaItem.Refresh
,MediaItem.GetMetadata
,MediaItem.AddMetadata
,MediaItem.AddMetadataAsync
,MediaItem.DeleteMetadata
,MediaItem.DeleteMetadataAsync
#245 - Added method
VDC.QueryDisks
#255
IMPROVEMENTS:
- Move methods for
AdminOrg
,AdminCatalog
,AdminVdc
to new filesadminorg.go
,admincatalog.go
,adminvdc.go
. - Added default value for HTTP timeout (600s) which is configurable
BUGS FIXED:
- Fix bug in AdminOrg.Update, where OrgGeneralSettings would not update correctly if it contained only one property
- Fix bug in External network creation and get when description wasn't populated.
- Fix bug in VDC creation when name with space caused an error
- Fix bug in Org Delete, which would remove catalogs shared from other organizations.
- Fix Vcd.StorageProfiles type from array to single.
- Fix AdminOrg.CreateUserSimple, where the Telephone field was ignored.
BUG FIXES:
- Remove
omitempty
struct tags from load balancer component boolean fields to allow sendingfalse
values to API #222
- Added edge gateway create/delete functions #130.
- Added edge gateway global load balancer configuration support (e.g. enable/disable) #219
- Added load balancer service monitor #196
- Added load balancer server pool #205
- Added load balancer application profile #208
- Added load balancer application rule #212
- Added load balancer virtual server #215
- Added functions for refreshing, getting and update Org VDC #206
- Added VDC meta data create/get/delete functions #203
- Added org user create/delete/update functions #18
- Added load balancer application profile #208
- Added edge gateway SNAT/DNAT rule functions which support org VDC network and external network #225
- Added edge gateway SNAT/DNAT rule functions which work with IDs #244
FEATURES:
- Added external network get/create/delete functions
- Added metadata add/remove functions to VM.
- Added ability to do vCD version checks and comparison #174 using VCDClient.APIVCDMaxVersionIs(string) and VCDClient.APIClientVersionIs(string).
- Added ability to override currently used vCD API version WithAPIVersion(string) #174.
- Added ability to enable nested hypervisor option for VM with VM.ToggleNestedHypervisor(bool) #219.
BREAKING CHANGES:
- vApp metadata now is attached to the vApp rather to first VM in vApp.
- vApp metadata is no longer added to first VM in vApp it will be added to vApp directly instead.
IMPROVEMENTS:
- Refactored code by introducing helper function to handle API calls. New functions ExecuteRequest, ExecuteTaskRequest, ExecuteRequestWithoutResponse
- Added authorization request header for media file and catalog item upload
- Tests files are now all tagged. Running them through Makefile works as before, but manual execution requires specific tags. Run
go test -v .
for tags list.
ARCHITECTURAL:
- Project switched to using Go modules. It is worth having a look at README.md to understand how Go modules impact build and development.
FEATURES:
- New insert and eject media functions
IMPROVEMENTS:
- vApp vapp.PowerOn() implicitly waits for vApp to exit "UNRESOLVED" state which occurs shortly after creation and causes vapp.PowerOn() failure.
- VM has new functions which allows to configure cores for CPU. VM.ChangeCPUCountWithCore()
BREAKING CHANGES:
- Deprecate vApp.ChangeCPUCountWithCore() and vApp.ChangeCPUCount()