Changes in progress for v3.1.0 are available at .changes/v3.0.1 until the release.
- Added
RegionStoragePolicyandtypes.RegionStoragePolicystructures to read Region Storage Policies with methodsRegion.GetAllStoragePolicies,Region.GetStoragePolicyByName,Region.GetStoragePolicyByIdVCDClient.GetRegionStoragePolicyById(#711, #721) - Added
ContentLibraryandtypes.ContentLibrarystructures to manage Content Libraries with methodsVCDClient.CreateContentLibrary,VCDClient.GetAllContentLibraries,VCDClient.GetContentLibraryByName,VCDClient.GetContentLibraryById,ContentLibrary.Update,ContentLibrary.Delete(#711, #721, #735, #757, #770) - Add trusted certificate management types
TrustedCertificateandtypes.TrustedCertificatetogether withVCDClient.AutoTrustCertificate,VCDClient.CreateTrustedCertificate,TmOrg.CreateTrustedCertificate,VCDClient.GetAllTrustedCertificates,TmOrg.GetAllTrustedCertificates,VCDClient.GetTrustedCertificateByName,TmOrg.GetTrustedCertificateByName,VCDClient.GetTrustedCertificateById,TmOrg.GetTrustedCertificateById,TrustedCertificate.Update,TrustedCertificate.Delete(#714, #746) - vCenter management types
VCenterandtypes.VSphereVirtualCenteradds Create, Update and Delete methods:VCDClient.CreateVcenter,VCDClient.GetAllVCenters,VCDClient.GetVCenterByName,VCDClient.GetVCenterById,VCenter.Update,VCenter.Delete,VCenter.RefreshVcenter,VCenter.Refresh(#714, #724, #747, #753, #756, #759, #760, #767, #771) - Add NSX-T Manager management types
NsxtManagerOpenApi,types.NsxtManagerOpenApiand methodsVCDClient.CreateNsxtManagerOpenApi,VCDClient.GetAllNsxtManagersOpenApi,VCDClient.GetNsxtManagerOpenApiById,VCDClient.GetNsxtManagerOpenApiByName,TmNsxtManager.Update,TmNsxtManager.Delete(#714, #722, #747, #771) - Added async vCenter creation function
VCDClient.CreateVcenterAsyncthat exposes the creation task of as it is needed in some cases to retrieve ID of incomplete vCenter creation (#736) - Added
TmOrgandtypes.TmOrgstructure for OpenAPI management of Organizations with methodsVCDClient.CreateTmOrg,VCDClient.GetAllTmOrgs,VCDClient.GetTmOrgByName,VCDClient.GetTmOrgById,TmOrg.Update,TmOrg.Delete,TmOrg.Disable(#716) - Added
ContentLibraryItemandtypes.ContentLibraryItemstructures to manage Content Library Items with methodsContentLibrary.CreateContentLibraryItem,ContentLibrary.GetAllContentLibraryItems,ContentLibrary.GetContentLibraryItemByName,ContentLibrary.GetContentLibraryItemById,ContentLibraryItem.Update,ContentLibraryItem.Delete,VCDClient.GetContentLibraryItemById(#717, #724, #733, #734, #762, #766) - Added
VCDClient.GetNsxtManagerOpenApiByUrlmethod to retrieve configured NSX-T Manager entry based on URL (#718) - Added
VCDClient.GetVCenterByUrlmethod to retrieve configured vCenter server entry based on URL (#718) - Added
VCenter.RefreshStorageProfilesto refresh storage profiles available in vCenter server (#718) - Added
Regionandtypes.Regionstructures for OpenAPI management of Regions with methodsVCDClient.CreateRegion,VCDClient.CreateRegionAsync,VCDClient.GetAllRegions,VCDClient.GetRegionByName,VCDClient.GetRegionById,Region.Update,Region.Delete[#718, #737, #769] - Added
Supervisorandtypes.Supervisorstructure for reading available SupervisorsVCDClient.GetAllSupervisors,VCDClient.GetSupervisorById,VCDClient.GetSupervisorByName,VCDClient.GetSupervisorByNameAndVcenterId,Vcenter.GetAllSupervisors,Vcenter.GetSupervisorByName(#718) - Added
SupervisorZoneandtypes.SupervisorZonestructure for reading available Supervisor ZonesSupervisor.GetAllSupervisorZones,Supervisor.GetSupervisorZoneById,Supervisor.GetSupervisorZoneByName,Supervisor.,VCDClient.GetAllSupervisors,VCDClient.GetSupervisorById,VCDClient.GetSupervisorByName,Vcenter.GetAllSupervisors(#718) - Added types
RegionQuotaandtypes.TmVdcfor managing Tenant Manager Org VDCs with methodsVCDClient.CreateRegionQuota,VCDClient.GetAllRegionQuotas,VCDClient.GetRegionQuotaByName,VCDClient.GetRegionQuotaByNameAndOrgId,VCDClient.GetRegionQuotaById,RegionQuota.Update,RegionQuota.Delete,VCDClient.AssignVmClassesToRegionQuota,RegionQuota.AssignVmClasses,VCDClient.GetVmClassesFromRegionQuota(#720, #738, #748, #782) - Added types
Zoneandtypes.Zonefor reading Region Zones with methodsVCDClient.GetAllZones,VCDClient.GetZoneByName,VCDClient.GetZoneById,Region.GetAllZones,Region.GetZoneByName(#720) - Added
TmIpSpaceandtypes.TmIpSpacestructures for OpenAPI management of TM IP Spaces with methodsVCDClient.CreateTmIpSpace,VCDClient.CreateTmIpSpaceAsync,VCDClient.GetAllTmIpSpaces,VCDClient.GetTmIpSpaceByName,VCDClient.GetTmIpSpaceById,VCDClient.GetTmIpSpaceByNameAndRegionId,TmIpSpace.Update,TmIpSpace.Delete(#724, #769) - Added
TmProviderGatewayandtypes.TmProviderGatewaystructures and methodsVCDClient.CreateTmProviderGateway,VCDClient.GetAllTmProviderGateways,VCDClient.GetTmProviderGatewayByName,VCDClient.GetTmProviderGatewayById,VCDClient.GetTmProviderGatewayByNameAndRegionId,TmProviderGateway.Update,TmProviderGateway.Deleteto manage Provider Gateways (#725) - Added
TmTier0Gatewayandtypes.TmTier0Gatewaystructures and methodsVCDClient.GetAllTmTier0GatewaysWithContext,VCDClient.GetTmTier0GatewayWithContextByNameto read Tier 0 Gateways that are available for TM consumption (#725) - Added
TmIpSpaceAssociationandtypes.TmIpSpaceAssociationstructures and methodsVCDClient.CreateTmIpSpaceAssociation,VCDClient.GetAllTmIpSpaceAssociations,VCDClient.GetTmIpSpaceAssociationById,VCDClient.GetAllTmIpSpaceAssociationsByProviderGatewayId,VCDClient.GetAllTmIpSpaceAssociationsByIpSpaceId,TmIpSpaceAssociation.Deleteto manage IP Space associations with Provider Gateways (#725) - Added
VCDClient.CreateTmProviderGatewaythat exposes the creation task it is needed in some cases to retrieve ID of incomplete Provider Gateway creation (#739) - Added types
StorageClassandtypes.StorageClassfor reading Tenant Manager Storage Classes with methodsVCDClient.GetAllStorageClasses,Region.GetStorageClassByName,VCDClient.GetStorageClassByName,VCDClient.GetStorageClassById(#726) - Added types
TmEdgeClusterandtypes.TmEdgeClusterfor reading TM Edge Clusters and managing their QoS settingsVCDClient.GetAllTmEdgeClusters,VCDClient.GetTmEdgeClusterByName,VCDClient.GetTmEdgeClusterByNameAndRegionId,VCDClient.GetTmEdgeClusterById,VCDClient.TmSyncEdgeClusters,TmEdgeCluster.Update,TmEdgeCluster.Delete,TmEdgeCluster.GetTransportNodeStatus(#730, #735) - Created new type
TmLdapSettingsto manage LDAP settings for the Tenant Manager (#732, #746) - Added methods
VCDClient.TmLdapConfigure,TmOrg.LdapConfigure,VCDClient.TmLdapDisable,TmOrg.LdapDisable,VCDClient.TmGetLdapConfiguration,TmOrg.GetLdapConfigurationto configure LDAP in Tenant Manager and regular Organizations (#732, #746, #774) - Added types
RegionQuotaStoragePolicy,types.VirtualDatacenterStoragePoliciesandtypes.VirtualDatacenterStoragePolicyto manage VDC Storage Policies, with methodsVCDClient.CreateRegionQuotaStoragePolicies,RegionQuota.CreateStoragePolicies,VCDClient.GetAllRegionQuotaStoragePolicies,RegionQuota.GetAllStoragePolicies,RegionQuota.GetStoragePolicyByName,VCDClient.GetRegionQuotaStoragePolicyById,RegionQuota.GetStoragePolicyById,VCDClient.UpdateRegionQuotaStoragePolicy,RegionQuotaStoragePolicy.Update,VCDClient.DeleteRegionQuotaStoragePolicy,RegionQuotaStoragePolicy.Delete(#734, #748) Added typetypes.TmOrgNetworkingSettingsand methodsTmOrg.GetOrgNetworkingSettings,TmOrg.UpdateOrgNetworkingSettingsfor managing Organization Networking Settings (#741) - Added types
TmRegionalNetworkingSettingandtypes.TmRegionalNetworkingSettingfor managing Org Regional Networking ConfigurationVCDClient.CreateTmRegionalNetworkingSetting,VCDClient.CreateTmRegionalNetworkingSettingAsync,VCDClient.GetAllTmRegionalNetworkingSettings,VCDClient.GetTmRegionalNetworkingSettingByName,VCDClient.GetTmRegionalNetworkingSettingById,VCDClient.GetTmRegionalNetworkingSettingByNameAndOrgId,VCDClient.GetTmRegionalNetworkingSettingByNameAndRegionId,TmRegionalNetworkingSetting.Update,TmRegionalNetworkingSetting.Delete(#743) - Added type
types.TmRegionalNetworkingVpcConnectivityProfileand methodsTmRegionalNetworkingSetting.GetDefaultVpcConnectivityProfileandTmRegionalNetworkingSetting.UpdateDefaultVpcConnectivityProfilefor managing Regional Networking VPC QoS (#744) - Added types
OpenApiUserandtypes.OpenApiUserfor managing Org Users using OpenAPIVCDClient.CreateUser,VCDClient.GetAllUsers,VCDClient.GetUserByName,VCDClient.GetUserById,OpenApiUser.Update,OpenApiUser.Delete(#745, #755) - Added types
RegionVirtualMachineClassto read Region VM Classes with methodsVCDClient.GetAllRegionVirtualMachineClasses,VCDClient.GetRegionVirtualMachineClassByNameAndRegionId,VCDClient.GetRegionVirtualMachineClassById(#748) - Added new types package
ccitypesfor CCI related types (#751) - Added
Clientlow level API interaction methodsGetEntityUrl,PostEntity,GetEntity,DeleteEntity(#751) - Added
types.TmOrgSettingsstructure for OpenAPI management of Organization Settings with methodsTmOrg.GetSettings,TmOrg.UpdateSettings(#716) - Added
*VCDClientmethodsUpdateFeatureFlag,GetFeatureFlagById,GetAllFeatureFlags(#776)
- Improve authentication and API endpoint lookup mechanism to be compatible with API v40.0 (#708)
vcdEndpointinNewVCDClientdoes not require the URL to contain/apisuffix (#765)- Remove a workaround that was used for certificate management endpoint with a typo on VCD < 10.3 (#767)
- Updated CCI types to v1alpha2 (#772)
- Fixed panic when OIDC server doesn't provide claim mappings on well-known endpoint (#742)
- Bumped module version from
v2tov3:github.com/vmware/go-vcloud-director/v3(#715) - Generic entity handling type
crudConfiggets new boolean fieldrequiresTmto enforce entity requirement for TM (#716) - Added a new generic internal method
createInnerEntityAsyncto handle async resource creation and Task exposure (#736) - Fix
staticcheck2025.1 compatibility (#750) - Bump
gosecto v2.22.1 (#752) - Bump golang.org/x/net from 0.33.0 to 0.38.0 (#775)
- 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.UpdateandExternalEndpoint.Delete(#696) - Added CRUD operations for API Filters:
VCDClient.CreateApiFilter,VCDClient.GetAllApiFilters,VCDClient.GetApiFilterById,ApiFilter.UpdateandApiFilter.Delete(#696, #697) - Added Read and Update operations for ALB Virtual Service HTTP Request Rules via
NsxtAlbVirtualService.GetAllHttpRequestRulesandNsxtAlbVirtualService.UpdateHttpRequestRules(#706) - Added Read and Update operations for ALB Virtual Service HTTP Response Rules via
NsxtAlbVirtualService.GetAllHttpResponseRulesandNsxtAlbVirtualService.UpdateHttpResponseRules(#706) - Added Read and Update operations for ALB Virtual Service HTTP Security Rules via
NsxtAlbVirtualService.GetAllHttpSecurityRulesandNsxtAlbVirtualService.UpdateHttpSecurityRules(#706)
- Added
OpenAPIEdgeGateway.NonDistributedRoutingEnabledandConnection.ConnectionTypeValueforOpenApiOrgVdcNetworkchild to support configuring non distributed Org VDC networks in NSX-T Edge Gateways (#698) - Improved
types.NetworkConnectionstructure to support VM Secondary IP allocations (IPv6) (#694) - Added
Client.CustomAdfsCookieand configuration functionWithSamlAdfsAndCookiethat 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
OrgPasswordPolicySettingstype to be able to set account lockout properties for an Organization (#702) - Added methods
VCDClient.GetAllTier0RouterInterfacesandVCDClient.GetTier0RouterInterfaceByNamethat help to lookup NSX-T Tier-0 Router Interfaces (#704) - Added
IpSpaceUplink.Interfacesfield 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_CreateDeleteEdgeGatewayAdvancedto avoid its failure as VCD returnsConnected: truewhen retrieving the Edge Gateway data (#697)
- Added types
SolutionLandingZoneandtypes.SolutionLandingZonefor Solution Add-on Landing Zone configuration (#665) - Added method
DefinedEntity.Refreshto reload RDE state (#665) - Added
VCDClientmethodsCreateSolutionLandingZone,GetAllSolutionLandingZones,GetExactlyOneSolutionLandingZone,GetSolutionLandingZoneByIdfor handling Solution Landing Zones (#665) - Added
SolutionLandingZonemethodsRefresh,RdeId,Update,Deleteto help handling of Solution Landing Zones (#665) - Added
VMmethodsGetExtraConfig,UpdateExtraConfig,DeleteExtraConfigto manage VM extra-configuration (#666, #691) - Added
ClientmethodGetSiteto retrieve generic data about the current site (#669) - Added
ClientmethodsGetSiteAssociationDataandGetSiteRawAssociationDatato retrieve association about from current site (#669) - Added
ClientmethodsGetSiteAssociationsandQueryAllSiteAssociationsto retrieve all site associations from current site (#669) - Added
ClientmethodGetSiteAssociationBySiteIdto retrieve a specific site association from current site (#669) - Added
ClientmethodCheckSiteAssociationto check the status of a site association (#669) - Added
ClientmethodsSetSiteAssociationAsyncandSetSiteAssociationto set a site association with current site (#669) - Added
ClientmethodsRemoveSiteAssociationAsyncandRemoveSiteAssociationto delete a site association from current site (#669) - Added
ClientmethodQueryAllOrgAssociationsandGetOrgAssociationsto retrieve all org associations visible to current user (#669) - Added
AdminOrgmethodGetOrgAssociationByOrgIdto retrieve a specific organization association from current org (#669) - Added
AdminOrgmethodsGetOrgAssociationDataandGetOrgRawAssociationDatato retrieve association about from current org (#669) - Added
AdminOrgmethodCheckOrgAssociationto check the status of an org association (#669) - Added
AdminOrgmethodsSetOrgAssociationAsyncandSetOrgAssociationto set an organization association with current org (#669) - Added
AdminOrgmethodsRemoveOrgAssociationAsyncandRemoveOrgAssociationto delete an organization association from current org (#669) - Added function
RawDataToStructuredXmlandReadXmlDataFromFileto extract specific data from string or file (#669) - Added
AdminOrgmethodsQueryAllOrgs,QueryOrgByName,QueryOrgByIDto query organizations (#612,#669) - Added
AdminOrgmethodsGetAllOrgsandGetAllOpenApiOrgVdcNetworksto retrieve organizations and networks available to current user (#669) - Added types
SolutionAddOn,SolutionAddOnConfigandtypes.SolutionAddOnfor Solution Add-on Landing configuration (#670) - Added
VCDClientmethodsCreateSolutionAddOn,GetAllSolutionAddons,GetSolutionAddonById,GetSolutionAddonByNamefor handling Solution Add-Ons (#670) - Added
SolutionAddOnmethodsUpdate,RdeId,Deleteto help handling of Solution Landing Zones (#670) - Added
VCDClientmethodTrustAddOnImageCertificateto trust certificate if it is not yet trusted (#670) - Added
AdminOrgmethodsGetOpenIdConnectSettings,SetOpenIdConnectSettingsandDeleteOpenIdConnectSettingsto manage OpenID Connect settings (#671) - Added autoscaling capabilities when creating or updating CSE Kubernetes clusters, with
CseWorkerPoolSettings.AutoscalerandCseWorkerPoolUpdateInput.Autoscaler, that allows to configure this mechanism on specific worker pools (#678) - Added types
SolutionAddOnInstanceandtypes.SolutionAddOnInstancefor Solution Add-on Instance management (#679) - Added
VCDClientmethodsGetAllSolutionAddonInstanceByName,GetAllSolutionAddonInstances,GetSolutionAddOnInstanceById(#679) - Added
SolutionAddOnmethodsCreateSolutionAddOnInstance,GetAllInstances,GetInstanceByName,ValidateInputs,ConvertInputTypes(#679) - Added
SolutionAddOnInstancemethodsGetParentSolutionAddOn,ReadCreationInputValuesDelete,RdeId,Publishing(#679) - Added methods to create, read, update and delete VDC Templates:
VCDClient.CreateVdcTemplate,VCDClient.GetVdcTemplateById,VCDClient.GetVdcTemplateByName,VdcTemplate.UpdateandVdcTemplate.Delete(#686) - Added methods to manage the access settings of VDC Templates:
VdcTemplate.SetAccessControlandVdcTemplate.GetAccessControl(#686) - Added the
VdcTemplate.InstantiateVdcAsyncandVdcTemplate.InstantiateVdcmethods to instantiate VDC Templates (#686) - Added the
VCDClient.QueryAdminVdcTemplatesandOrg.QueryVdcTemplatesmethods to get all VDC Template records (#686) - Added types
DataSolutionandtypes.DataSolutionfor Data Storage Extension (DSE) management (#689) - Added
DataSolutionmethodsRdeId,Name,Update,Publish,Unpublish,PublishRightsBundle,UnpublishRightsBundle,PublishAccessControls,UnpublishAccessControls,GetAllAccessControls,GetAllAccessControlsForTenant,GetAllInstanceTemplates,PublishAllInstanceTemplates,UnPublishAllInstanceTemplates,GetAllDataSolutionOrgConfigs,GetDataSolutionOrgConfigForTenant(#689) - Added
VCDClientmethodsGetAllDataSolutions,GetDataSolutionById,GetDataSolutionByName,GetAllInstanceTemplates(#689) - Added types
DataSolutionInstanceTemplateandtypes.DataSolutionInstanceTemplatefor Data Storage Extension (DSE) Solution Instance Template management (#689) - Added
DataSolutionInstanceTemplatemethodsName,GetAllAccessControls,GetAllAccessControlsForTenant,Publish,Unpublish,RdeId(#689) - Added types
DataSolutionOrgConfigandtypes.DataSolutionOrgConfigfor Data Storage Extension (DSE) Solution Instance Org Configuration management (#689) - Added
DataSolutionOrgConfigmethodsCreateDataSolutionOrgConfig,GetAllDataSolutionOrgConfigs,Delete,RdeId(#689)
- Improved log traceability by sending
X-VMWARE-VCLOUD-CLIENT-REQUEST-IDheader 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-171for April 11th of year 2024 at time 08:41:34.171). The trailing hyphen-is here to separate response headerX-Vmware-Vcloud-Request-Idsuffix with double hyphen162-2024-04-11-08-41-34-171--40d78874-27a3-4cad-bd43-2764f557226b(#656) - Fix bug in
Client.GetSpecificApiVersionOnConditionthat could result in using unsupported API version (#658) - Added fields
NatAndFirewallServiceIntentionandNetworkRouteAdvertisementIntentiontotypes.ExternalNetworkV2, which allow users to configure NAT, Firewall and Route Advertisement intentions for provider gateways in VCD 10.5.1+ (#660) - Added field
ActionValuetotypes.NsxtFirewallRuleinstead ofActionthat is deprecated in VCD API. It allows users to useREJECToption (#661) - Added
DetectedGuestOStoQueryResultVMRecordType(#673) - Added convenience method
DefinedEntity.State()that will automatically check if path to*Statehas no nil pointers (#679) - Added method
NsxtEdgeGateway.GetUsedAndUnusedExternalIPAddressCountWithLimitto count used and unused IPs assigned to Edge Gateway. It supports alimitToargument that can prevent exhausting system resources when counting IPs in assigned subnets (#682) - Added
Messagefield totypes.DefinedEntitythat can return a message for an RDE (#689) - Added convenience method
DefinedEntity.State()that can return string value of state (#689) - Added
DefinedEntitymethodsSetAccessControl,GetAllAccessControls,GetAccessControlById,DeleteAccessControlfor 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.UpdateNetworkConnectionSectionmethod that could sometimes fail due to Go's XML library mishandling XML namespaces when VCD returns irregular payload (#677) - Patched
VdcGroup.CreateDistributedFirewallRulemethod that returned incorrect single rule whenoptionalAboveRuleIdis specified (#680) - Patched bug in core OpenAPI handling function
getOpenApiHighestElevatedVersionthat 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.updateExtraConfigmethod that could sometimes fail due to random mishandling of XML namespaces in upstream libraries (#690)
- Patched
Test_NsxtL2VpnTunnelto match PresharedKey of VCD 10.5.1.1+ as it started returning******instead of PSK itself when performing GET (#659) - Amended the test
Test_RdeAndRdeTypeto be compatible with VCD 10.6+ (#681) - Amended many tests to set
ResourceGuaranteedMemorywhen spawning aFlexVDC (#684, #685)
- Added method
Client.QueryVappNetworksto retrieve all vApp networks (#657) - Added
VAppmethodsQueryAllVappNetworks,QueryVappNetworks,QueryVappOrgNetworksto 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
CseKubernetesClusterto 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.CseCreateKubernetesClusterandOrg.CseCreateKubernetesClusterAsyncto create Kubernetes clusters in a VCD appliance with Container Service Extension installed (#645, #653, #655) - Added methods
VCDClient.CseGetKubernetesClusterByIdandOrg.CseGetKubernetesClustersByNameto retrieve a Container Service Extension Kubernetes cluster (#645, #653, #655) - Added the method
CseKubernetesCluster.GetKubeconfigto retrieve the kubeconfig of a provisioned Container Service Extension Kubernetes cluster (#645, #653, #655) - Added the method
CseKubernetesCluster.Refreshto 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.SetNodeHealthCheckandCseKubernetesCluster.SetAutoRepairOnErrors(#645, #653, #655) - Added the method
CseKubernetesCluster.GetSupportedUpgradesto 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.Deleteto delete a cluster (#645, #653, #655) - Added types
CseClusterSettings,CseControlPlaneSettings,CseWorkerPoolSettingsandCseDefaultStorageClassSettingsto configure the Container Service Extension Kubernetes clusters creation process (#645, #653, #655) - Added types
CseClusterUpdateInput,CseControlPlaneUpdateInputandCseWorkerPoolUpdateInputto configure the Container Service Extension Kubernetes clusters update process (#645, #653, #655) - Added method
client.QueryVmListto search VMs across VDCs (#646)
- Added missing field
vdcNametotypes.QueryResultVMRecordType(#646) - Added
VCDClient.GetAllIpSpaceFloatingIpSuggestionsandtypes.IpSpaceFloatingIpSuggestionto retrieve IP Space IP suggestions (#648) - Added support for VM disk consolidation using
vm.ConsolidateDisksAsyncandvm.ConsolidateDisks(#650) - Added public method
VApp.GetParentVDCto retrieve parent VDC of vApp (previously it was private) (#652) - Added methods
Catalog.CaptureVappTemplate,Catalog.CaptureVappTemplateAsyncand typetypes.CaptureVAppParamsthat add support for creating catalog template from existing vApp (#652) - Added method
Org.GetVAppByHrefto retrieve a vApp by given HREF (#652) - Added methods
VAppTemplate.GetCatalogItemHrefandVAppTemplate.GetCatalogItemIdthat can return related catalog item ID and HREF (#652)
-
Removed the conditional API call with outdated API version from
Client.GetStorageProfileByHrefso it works with the newest VCD versions (#639) -
Added a delay for all LDAP tests
Test_LDAPafter 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,GetAllSegmentSecurityProfilesto 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.GetMetadataByIdrde.GetMetadata,rde.AddMetadataand generic metadata methodsopenApiMetadataEntry.UpdateandopenApiMetadataEntry.Delete(#557, #632) - Added methods
SetReadOnlyAccessControlandIsSharedReadOnlyforCatalogandAdminCatalog, to handle read-only catalog sharing (#559) - Added
Firmwarefield toVmSpecSectiontype andBootOptionstoVmtype (#607) - Added
VdcmethodsGetHardwareVersion,GetHighestHardwareVersion,FindOsFromId(#607) - Added
VMmethodsUpdateBootOptions,UpdateBootOptionsAsync(#607) - API calls for
AddRawVM,CreateStandaloneVmAsync,VM.Refresh,VM.UpdateVmSpecSectionAsync,addEmptyVmAsyncV10,getVMByHrefV10andUpdateBootOptionsAsyncget elevated to API version37.1if available, forVmSpecSection.FirmwareandBootOptionssupport (#607) - Added
VCDClientmethodsCreateNetworkPool,CreateStandaloneVmAsync,CreateNetworkPoolGeneve,CreateNetworkPoolVlan,CreateNetworkPoolPortGroupto create a network pool (#613) - Added method
VCDClient.GetAllNsxtTransportZonesto retrieve all NSX-T transport zones (#613) - Added method
VCDClient.GetAllVcenterDistributedSwitchesto retrieve all distributed switches (#613) - Added method
VCDClient.QueryNsxtManagersto retrieve all NSX-T managers (#613) - Added
NetworkPoolmethodsUpdate,Delete,GetOpenApiUrlto manage a network pool (#613) - Added
NsxtManagertype and functionVCDClient.GetNsxtManagerByName(#618) - Added support for Segment Profile Template management using new types
NsxtSegmentProfileTemplateandtypes.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
typesfor NSX-T L2 VPN Tunnel session managementNsxtL2VpnTunnel,EdgeL2VpnStretchedNetwork,types.EdgeL2VpnTunnelStatistics,types.EdgeL2VpnTunnelStatus(#619) - Added new
NsxtEdgeGatewaymethodsCreateL2VpnTunnel,GetAllL2VpnTunnels,GetL2VpnTunnelByName,GetL2VpnTunnelByIdfor creation and retrieval of NSX-T L2 VPN Tunnel sessions (#619) - Added
NsxtL2VpnTunnelmethodsRefresh,Update,Statistics,Status,Delete(#619) - Added method
Catalog.UploadMediaFileto upload any file as catalog Media (#621,#622) - Added method
Media.Downloadto download a Media item as a byte stream (#622) - Added
VAppTemplatemethodsGetLeaseandRenewLeaseto retrieve and change storage lease (#623) - Added
NsxtEdgeGatewaymethodsGetDnsConfigandUpdateDnsConfig(#627) - Added types
types.NsxtEdgeGatewayDns,types.NsxtDnsForwarderZoneConfigfor creation and management of DNS forwarder configuration (#627) - Added
NsxtEdgeGatewayDnsmethodsRefresh,UpdateandDelete(#627) - Add type
VgpuProfileand its methodsGetAllVgpuProfiles,GetVgpuProfilesByProviderVdc,GetVgpuProfileById,GetVgpuProfileByName,GetVgpuProfileByTenantFacingName,UpdateandRefreshfor managing vGPU profiles (#633) - Update
ComputePolicyV2type with new fields for managing vGPU policies (#633)
- Added catalog parent retrieval to
client.GetCatalogByHrefandclient.GetAdminCatalogByHrefto facilitate tenant context handling (#559) - Add
VdcGroup.ForceDeletefunction 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
IopsResourcetotypes.DiskSettings(in replacement of dropped fieldiops) initially supported in API 37.0 (#609) - Add field
SslEnabledto structtypes.NsxtAlbPoolinitially supported in API 37.0 (#609) - New method
NsxtEdgeGateway.GetAllocatedIpCountByUplinkTypecomplementing existingNsxtEdgeGateway.GetAllocatedIpCount. It will return allocated IP counts by uplink types (works with VCD 10.4.1+) (#610) - New method
NsxtEdgeGateway.GetPrimaryNetworkAllocatedIpCountthat will return total allocated IP count for primary uplink (T0 or T0 VRF) (#610) - New field
types.EdgeGatewayUplinks.BackingTypethat defines backing type of NSX-T Edge Gateway Uplink (#610) - NSX-T Edge Gateway functions
GetNsxtEdgeGatewayById,GetNsxtEdgeGatewayByName,GetNsxtEdgeGatewayByNameAndOwnerId,GetAllNsxtEdgeGateways,CreateNsxtEdgeGateway,Refresh,Updatewill additionally sort uplinks to ensure that element 0 contains primary network (T0 or T0 VRF) (#610) - Makes
DefinedEntityTypemethodSetBehaviorAccessControlsmore robust to avoid NullPointerException errors in VCD when the input is a nil slice (#615) types.IpSpacesupport Firewall and NAT rule autocreation configuration usingtypes.DefaultGatewayServiceConfigon VCD 10.5.0+ (#628)- Added metadata ignore support for Runtime Defined Entity metadata methods
rde.GetMetadataByKey,rde.GetMetadata,rde.AddMetadata,rde.UpdateMetadataandrde.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
UpdateInternalDisksAsyncin 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
gosec2.17.0 errors (#608) -
Changed
Test_AddNewVMFromMultiVmTemplateto use preloaded vApp template (#609) -
Amended
testMetadataIgnore, used by all metadata tests, to be compatible with VCD 10.5.1 (#629)
- Removed field
iopsfromtypes.DiskSettings(dropped in API version 37.0) (#609)
- Added NSX-T Edge Gateway DHCP forwarding configuration support
NsxtEdgeGateway.GetDhcpForwarderandNsxtEdgeGateway.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.IsTheSameAsandUIPlugin.Delete(#575) - Added AdminOrg methods
GetFederationSettings,SetFederationSettings,UnsetFederationSettingsto handle organization SAML settings (#576) - Added AdminOrg methods
GetServiceProviderSamlMetadataandRetrieveServiceProviderSamlMetadatato retrieve service provider metadata for current organization (#576) - Added method
Client.RetrieveRemoteDocumentto download a document from a URL (#576) - Added function
ValidateSamlServiceProviderMetadatato validate service oprovider metadata (#576) - Added function
GetErrorMessageFromErrorSliceto return a single string from a slice of errors (#576) - Added Service Account CRUD support via
ServiceAccountandtypes.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
Tokenandtypes.Token:VCDClient.CreateToken,VCDClient.GetTokenById,VCDClient.GetAllTokens,VCDClient.GetTokenByNameAndUsername,VCDClient.RegisterToken,Token.GetInitialApiToken,Token.Delete,Client.GetApiToken(#577) - Added IP Space CRUD support via
IpSpaceandtypes.IpSpaceandVCDClient.CreateIpSpace,VCDClient.GetAllIpSpaceSummaries,VCDClient.GetIpSpaceById,VCDClient.GetIpSpaceByName,VCDClient.GetIpSpaceByNameAndOrgId,IpSpace.Update,IpSpace.Delete(#578) - Added IP Space Uplink CRUD support via
IpSpaceUplinkandtypes.IpSpaceUplinkandVCDClient.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.QueryNsxtManagerByHrefto retrieve a NSX-T manager by its ID/HREF (#580) - Added method
VCDClient.CreateProviderVdcto create a Provider VDC (#580) - Added method
VCDClient.ResourcePoolsFromIdsto convert list of IDs to resource pools (#580) - Added
ProviderVdcExtendedmethodsAddResourcePools,AddStorageProfiles,Delete,DeleteResourcePools,DeleteStorageProfiles,Disable,Enable,GetResourcePools,IsEnabled,Rename,Updateto fully manage a provider VDC (#580) - Added method
NetworkPool.GetOpenApiUrlto generate the full URL of a network pool (#580) - Added
ResourcePoolmethodsGetAvailableHardwareVersionsandGetDefaultHardwareVersionto get hardware versions (#580) - Added
VCDClientmethodGetAllResourcePoolsto retrieve all resource pools regardless of vCenter affiliation (#580) - Added
VCDClientmethodGetAllVcentersto retrieve all vCenters (#580) - Added
VCDClientmethodsGetNetworkPoolById,GetNetworkPoolByName,GetNetworkPoolSummariesto retrieve network pools (#580) - Added
VCDClientmethodsGetVcenterById,GetVcenterByNameto retrieve vCenters (#580) - Added
VCentermethodsGetAllResourcePools,VCenter.GetResourcePoolById,VCenter.GetResourcePoolByNameto retrieve resource pools (#580) - Added
VCentermethodsGetAllStorageProfiles,GetStorageProfileById,GetStorageProfileByNameto retrieve storage profiles (#580) - Added method
VCenter.GetVimServerUrlto retrieve the full URL of a vCenter within a VCD (#580) - Added NSX-T Edge Gateway SLAAC Profile (DHCPv6) configuration support
NsxtEdgeGateway.GetSlaacProfileandNsxtEdgeGateway.UpdateSlaacProfile(#582) - Added RDE Defined Interface Behaviors support with methods
DefinedInterface.AddBehavior,DefinedInterface.GetAllBehaviors,DefinedInterface.GetBehaviorByIdDefinedInterface.GetBehaviorByName,DefinedInterface.UpdateBehaviorandDefinedInterface.DeleteBehavior(#584) - Added RDE Defined Entity Type Behaviors support with methods
DefinedEntityType.GetAllBehaviors,DefinedEntityType.GetBehaviorByIdDefinedEntityType.GetBehaviorByName,DefinedEntityType.UpdateBehaviorOverrideandDefinedEntityType.DeleteBehaviorOverride(#584) - Added RDE Defined Entity Type Behavior Access Controls support with methods
DefinedEntityType.GetAllBehaviorsAccessControlsandDefinedEntityType.SetBehaviorAccessControls(#584) - Added method to invoke Behaviors on Defined Entities
DefinedEntity.InvokeBehaviorandDefinedEntity.InvokeBehaviorAndMarshal(#584) - Added support for NSX-T Edge Gateway Static Route configuration via types
NsxtEdgeGatewayStaticRoute,types.NsxtEdgeGatewayStaticRouteand methodsNsxtEdgeGateway.CreateStaticRoute,NsxtEdgeGateway.GetAllStaticRoutes,NsxtEdgeGateway.GetStaticRouteByNetworkCidr,NsxtEdgeGateway.GetStaticRouteByName,NsxtEdgeGateway.GetStaticRouteById,NsxtEdgeGatewayStaticRoute.Update,NsxtEdgeGatewayStaticRoute.Delete(#586) - Added types and methods
DistributedFirewallRule,VdcGroup.CreateDistributedFirewallRule,DistributedFirewallRule.Update,.DistributedFirewallRuleDeleteto manage NSX-T Distributed Firewall Rules one by one (opposed to managing all at once usingDistributedFirewall) (#587) - Added method
Vdc.CreateVappFromTemplateto create a vApp from a vApp template containing one or more VMs (#588) - Added method
Vdc.CloneVappto create a vApp from another vApp (#588) - Added method
VApp.DiscardSuspendedStateto take a vApp out of suspended state (#588)
ExternalNetworkV2now supports IP Spaces on VCD 10.4.1+ with new fieldsUsingIpSpaceandDedicatedOrg(#579)- Added a new function
WithIgnoredMetadatato configure theClientto ignore specific metadata entries in all non-deprecated metadata CRUD methods (#581) - NSX-T ALB Virtual Service supports IPv6 Virtual Service using field
IPv6VirtualIpAddressintypes.NsxtAlbVirtualServicefor VCD 10.4.0+ (#582) - Added field
EnableDualSubnetNetworkto 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.GetCertificateFromLibraryByNameandAdminOrg.GetCertificateFromLibraryByNameto 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_VdcDuplicatedVmPlacementPolicyGetsACleanErrorin 10.4.2 as the relevant bug we check for is fixed in that version (#574) - Added
unitstep to GitHub Actions (#583)
- Added method
AdminVdc.IsNsxvto detect whether an Admin VDC is NSX-V (#521) - Added function
NewNsxvDistributedFirewallto create a new NSX-V distributed firewall (#521) - Added
NsxvDistributedFirewallmethodsGetConfiguration,IsEnabled,Enable,Disable,UpdateConfiguration,Refreshto handle CRUD operations with NSX-V distributed firewalls (#521) - Added
NsxvDistributedFirewallmethodsGetServices,GetServiceGroups,GetServiceById,GetServiceByName,GetServiceGroupById,GetServiceGroupByNameto retrieve specific services or service groups (#521) - Added
NsxvDistributedFirewallmethodsGetServicesByRegexandGetServiceGroupsByRegexto 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.GetDefinedInterfaceByIdand methods to manipulate themDefinedInterface.Update,DefinedInterface.Delete(#527, #566) - Added method
VM.GetEnvironmentto retrieve OVF Environment (#528) - Added
NsxtEdgeGateway.Refreshmethod to reload NSX-T Edge Gateway structure (#532) - Added
NsxtEdgeGateway.GetUsedIpAddressesmethod to fetch used IP addresses in NSX-T Edge Gateway (#532) - Added
NsxtEdgeGateway.GetUsedIpAddressSlicemethod to fetch used IP addresses in a slice (#532) - Added
NsxtEdgeGateway.GetUnusedExternalIPAddressesmethod that can help to find an unused IP address in an Edge Gateway by given constraints (#532,#567) - Added
NsxtEdgeGateway.GetAllUnusedExternalIPAddressesmethod that can return all unused IP addresses in an Edge Gateway (#532,#567) - Added
NsxtEdgeGateway.GetAllocatedIpCountmethod that sums upTotalIPCountfields in all subnets (#532) - Added
NsxtEdgeGateway.QuickDeallocateIpCountandNsxtEdgeGateway.DeallocateIpCountmethods 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.CreateRdeand methods to manipulate themDefinedEntity.Resolve,DefinedEntity.Update,DefinedEntity.Delete(#544) - Added generic
ClientmethodsOpenApiPostItemAndGetHeadersandOpenApiGetItemAndHeadersto 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.GetRdeTypeByIdand methods to manipulate themDefinedEntityType.Update,DefinedEntityType.Delete(#545, #566) - Added support for NSX-T DHCP Bindings via
OpenApiOrgVdcNetworkDhcpBinding,types.OpenApiOrgVdcNetworkDhcpBindingand functionsOpenApiOrgVdcNetwork.CreateOpenApiOrgVdcNetworkDhcpBinding,OpenApiOrgVdcNetwork.GetAllOpenApiOrgVdcNetworkDhcpBindings,OpenApiOrgVdcNetwork.GetOpenApiOrgVdcNetworkDhcpBindingById,OpenApiOrgVdcNetwork.GetOpenApiOrgVdcNetworkDhcpBindingByName,OpenApiOrgVdcNetworkDhcpBinding.Update,OpenApiOrgVdcNetworkDhcpBinding.Refresh,OpenApiOrgVdcNetworkDhcpBinding.Delete(#561) - Added QoS Profile lookup functions
GetAllNsxtEdgeGatewayQosProfilesandGetNsxtEdgeGatewayQosProfileByDisplayName(#563) - Added NSX-T Edge Gateway QoS (Rate Limiting) configuration support
NsxtEdgeGateway.GetQoSandNsxtEdgeGateway.UpdateQoS(#563) - Added support for importable Distributed Virtual Port Group (DVPG) read via types
VcenterImportableDvpgandtypes.VcenterImportableDvpgand 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.NsxtAlbConfigand 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.NsxtIpSecVpnTunnelto support 'Certificate' Authentication mode (#553) - Added new field
TransparentModeEnabledtotypes.NsxtAlbVirtualServicewhich allows to preserve client IP for NSX-T ALB Virtual Service (VCD 10.4.1+) (#560) - Added new field
MemberGroupReftotypes.NsxtAlbPoolwhich allows to define NSX-T ALB Pool membership by using Edge Firewall Group (NsxtFirewallGroup) instead of plain IPs (VCD 10.4.1+) (#560) types.OpenApiOrgVdcNetworkgot 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
SetServiceAccountApiTokenmethod ofVCDClientthat 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
Featuresfield while updating a vApp network (#550)
- Created
Test_RenameCatalogfor making sure the contents of the Catalog don't change after rename (#546)
- Added client methods
GetCatalogByHref,GetCatalogById,GetCatalogByNameto retrieve Catalogs without an Org object (#537) - Added client methods
GetAdminCatalogByHref,GetAdminCatalogById,GetAdminCatalogByNameto retrieve AdminCatalogs without an AdminOrg object (#537) - Added method
VAppTemplate.GetVappTemplateRecordto retrieve a VAppTemplate query record (#537)
- Removed URL checks from
CreateCatalogFromSubscriptionAsyncto allow catalog creation from non-VCD entities, such as vSphere shared library (#537) - Fixed flaky test
Test_CatalogAccessAsOrgUsersthat failed randomly for timing issues (#540)
- Amended a quirky test
Test_CreateOrgVdcWithFlexthat failed randomly due to recovered VDC Storage Profiles being unordered (#538) - Amended a quirky test
Test_VMPowerOnPowerOffthat failed due to the testing VM not being powered off fast enough (#538)
- Added
VCDClient.GetAllAssignedVdcComputePoliciesV2to retrieve Compute Policies without the need of anAdminVdcreceiver (#530) - Added
clientmethodsQueryCatalogRecordsandGetCatalogByHref(#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.GetVAppTemplateByHrefandVCDClient.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.DeleteAsyncandVAppTemplate.Delete(#495) - Added new functions to extract information from vApp Templates
VAppTemplate.GetCatalogNameandVAppTemplate.GetVdcName(#495) - Added
Client.TestConnectionmethod to check remote VCD endpoints (#447, #501) - Added
Client.TestConnectionWithDefaultsmethod that usesClient.TestConnectionwith some default values (#447, #501) - Changed behavior of
Client.OpenApiPostItemandClient.OpenApiPostItemSyncso they accept response code 200 OK as valid. The reason isTestConnectionendpoint requires a POST request and returns a 200OK when successful (#447, #501) - Added new methods
VCDClient.GetProviderVdcByHref,VCDClient.GetProviderVdcById,VCDClient.GetProviderVdcByNameandProviderVdc.Refreshto retrieve Provider VDCs (#502) - Added new methods
VCDClient.GetProviderVdcExtendedByHref,VCDClient.GetProviderVdcExtendedById,VCDClient.GetProviderVdcExtendedByNameandProviderVdcExtended.Refreshto 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.DeleteMetadataEntryandProviderVdc.DeleteMetadataEntryAsyncto manage Provider VDCs metadata (#502) - Added new methods
VCDClient.GetVmGroupById,VCDClient.GetVmGroupByNamedVmGroupIdAndProviderVdcUrnandVCDClient.GetVmGroupByNameAndProviderVdcUrnto retrieve VM Groups. These are useful to create VM Placement Policies (#504) - Added new methods
VCDClient.GetLogicalVmGroupById,VCDClient.CreateLogicalVmGroupandLogicalVmGroup.Deleteto manage Logical VM Groups. These are useful to create VM Placement Policies (#504) - Added the function
VCDClient.GetMetadataByKeyAndHrefto get a specific metadata value using an entity reference (#510) - Added the functions
VCDClient.AddMetadataEntryWithVisibilityByHrefAsyncandVCDClient.AddMetadataEntryWithVisibilityByHrefto add metadata with both visibility and domain to any entity by using its reference (#510) - Added the functions
VCDClient.MergeMetadataWithVisibilityByHrefAsyncandVCDClient.MergeMetadataWithVisibilityByHrefto merge metadata data supporting also visibility and domain (#510) - Added the functions
VCDClient.DeleteMetadataEntryWithDomainByHrefAsyncandVCDClient.DeleteMetadataEntryWithDomainByHrefto delete metadata from an entity using its reference (#510) - Added the function
GetMetadataByKeyto the following entities:VM,Vdc,AdminVdc,ProviderVdc,VApp,VAppTemplate,MediaRecord,Media,Catalog,AdminCatalog,Org,AdminOrg,Disk,OrgVDCNetwork,CatalogItem,OpenApiOrgVdcNetworkto get a specific metadata value (#510) - Added the functions
AddMetadataEntryWithVisibilityAsyncandAddMetadataEntryWithVisibilityto the following entities:VM,AdminVdc,ProviderVdc,VApp,VAppTemplate,MediaRecord,Media,AdminCatalog,AdminOrg,Disk,OrgVDCNetwork,CatalogItem,OpenApiOrgVdcNetworkto add metadata with both visibility and domain to them (#510) - Added the functions
MergeMetadataWithMetadataValuesAsyncandMergeMetadataWithMetadataValuesto the following entities:VM,AdminVdc,ProviderVdc,VApp,VAppTemplate,MediaRecord,Media,AdminCatalog,AdminOrg,Disk,OrgVDCNetwork,CatalogItem,OpenApiOrgVdcNetworkto merge metadata data supporting also visibility and domain (#510) - Added the functions
DeleteMetadataEntryWithDomainAsyncandDeleteMetadataEntryWithDomainto the following entities:VM,AdminVdc,ProviderVdc,VApp,VAppTemplate,MediaRecord,Media,AdminCatalog,AdminOrg,Disk,OrgVDCNetwork,CatalogItem,OpenApiOrgVdcNetworkto delete metadata with the domain, that allows deleting metadata present in SYSTEM (#510) - Added
AdminOrgmethodsCreateCatalogFromSubscriptionAsyncandCreateCatalogFromSubscriptionto create a subscribed catalog (#511) - Added method
AdminCatalog.FullSubscriptionUrlto return the subscription URL of a published catalog (#511) - Added method
AdminCatalog.WaitForTasksto wait for catalog tasks to complete (#511) - Added method
AdminCatalog.UpdateSubscriptionParamsto modify the terms of an existing subscription (#511) - Added methods
Catalog.QueryTaskListandAdminCatalog.QueryTaskListto retrieve the tasks associated with a catalog (#511) - Added function
IsValidUrlto determine if a URL is valid (#511) - Added
AdminCatalogmethodsSyncandLaunchSyncto synchronise a subscribed catalog (#511) - Added method
AdminCatalog.GetCatalogHrefto retrieve the HREF of a regular catalog (#511) - Added
AdminCatalogmethodsQueryCatalogItemList,QueryVappTemplateList, andQueryMediaListto retrieve lists of dependent items (#511) - Added
AdminCatalogmethodsLaunchSynchronisationVappTemplates,LaunchSynchronisationAllVappTemplates,LaunchSynchronisationMediaItems, andLaunchSynchronisationAllMediaItemsto start synchronisation of dependent items (#511) - Added
AdminCatalogmethodsGetCatalogItemByHrefandQueryCatalogItemto retrieve a single Catalog Item (#511) - Added method
CatalogItem.LaunchSyncto start synchronisation of a catalog item (#511) - Added method
CatalogItem.Refreshto get fresh contents for a catalog item (#511) - Added function
WaitResourceto wait for tasks associated to a gioven resource (#511) - Added function
MinimalShowTaskto display task progress with minimal info (#511) - Added functions
ResourceInProgressandResourceCompleteto check on task activity for a given entity (#511) - Added functions
SkimTasksList,SkimTasksListMonitor,WaitTaskListCompletion,WaitTaskListCompletionMonitorto process lists of tasks and lists of task IDs (#511) - Added
ClientmethodsGetTaskByHREFandGetTaskByIdto retrieve individual tasks (#511) - Implemented
QueryItemforTaskandAdminTask(GetHref,GetName,GetType,GetParentId,GetParentName,GetMetadataValue,GetDate) (#511) - Added
VCDClient.QueryMediaByIdto query a media record using a media ID (#520) - Added
Vdc.QueryVappSynchronizedVmTemplateto query a VM inside a vApp Template that must be synchronized in the catalog [#520] - Added
VCDClient.QueryVmInVAppTemplateByHrefandVCDClient.QuerySynchronizedVmInVAppTemplateByHrefto query a VM inside a vApp Template by using the latter's hyper-reference (#520) - Added
VCDClient.QuerySynchronizedVAppTemplateByIdto 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.Shutdownto 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
QueryAdminOrgVdcStorageProfileByIDandQueryOrgVdcStorageProfileByID - query types
QtOrgVdcStorageProfileandQtAdminOrgVdcStorageProfile - 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.DeleteandAdminVdc.GetAllAssignedVdcComputePoliciesV2. This version supports more filtering options likeisVgpuPolicy(#502, #504, #507) - Simplified
Test_LDAPby 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.UpdateComputePolicyV2andVM.UpdateComputePolicyV2Asyncthat 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
[]tenantstructure to simplify org user testing (#515) - Improved
Vdc.QueryVappVmTemplateto avoid querying VMs in vApp Templates that are not synchronized in the catalog (#520)
- Changed
VdcComputePolicy.Descriptionto 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.ResourcePoolRefsto 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.CreateVdcComputePolicyVdcComputePolicy.Update,VdcComputePolicy.DeleteandAdminVdc.GetAllAssignedVdcComputePolicies(#504) - Deprecated the functions
VCDClient.AddMetadataEntryByHrefAsyncandVCDClient.AddMetadataEntryByHrefin favor ofVCDClient.AddMetadataEntryWithVisibilityByHrefAsyncandVCDClient.AddMetadataEntryWithVisibilityByHref(#510) - Deprecated the functions
VCDClient.MergeMetadataByHrefAsyncandVCDClient.MergeMetadataByHrefin favor ofVCDClient.MergeMetadataWithVisibilityByHrefAsyncandVCDClient.MergeMetadataWithVisibilityByHref(#510) - Deprecated the functions
AddMetadataEntryAsyncandAddMetadataEntryfrom the following entities:VM,Vdc,AdminVdc,ProviderVdc,VApp,VAppTemplate,MediaRecord,Media,AdminCatalog,AdminOrg,Disk,OrgVDCNetwork,CatalogItemin favor of theirAddMetadataEntryWithVisibilityAsyncandAddMetadataEntryWithVisibilitycounterparts (#510) - Deprecated the functions
MergeMetadataAsyncandMergeMetadataAsyncfrom the following entities:VM,Vdc,AdminVdc,ProviderVdc,VApp,VAppTemplate,MediaRecord,Media,AdminCatalog,AdminOrg,Disk,OrgVDCNetwork,CatalogItemin favor of theirMergeMetadataWithMetadataValuesAsyncandMergeMetadataWithMetadataValuescounterparts (#510) - Deprecated the functions
DeleteMetadataandDeleteMetadataAsyncfrom the following entities:VM,Vdc,AdminVdc,ProviderVdc,VApp,VAppTemplate,MediaRecord,Media,AdminCatalog,AdminOrg,Disk,OrgVDCNetwork,CatalogItemin favor of theirDeleteMetadataWithDomainAsyncandDeleteMetadataWithDomaincounterparts (#510)
- Switched
go.modto use Go 1.19 (#511) - Ran
make fmtusing Go 1.19 release (fmtautomatically changes doc comment structure). This will preventmake staticerrors when running tests in pipeline using Go 1.19 (#497) - Updated branding
vCloud Director->VMware Cloud Director(#497) - package
io/ioutilis deprecated as of Go 1.16.staticcheckstarted complaining about usage of deprecated packages. As a result packagesioorosare used (still the same functions are used) (#497) - Adjusted
staticcheckversion naming to new format (from2021.1.2tov0.3.3) (#497] - Added a new GitHub Action to run
gosecon every push and pull request [#516) - Improved documentation for
types.OpenApiOrgVdcNetworkDhcp(#517)
- Added support for
DnsServersonOpenApiOrgVdcNetworkDhcpstruct (#465) - Added new methods
Org.GetAllSecurityTaggedEntities,Org.GetAllSecurityTaggedEntitiesByName,Org.GetAllSecurityTagValues,VM.GetVMSecurityTags,Org.UpdateSecurityTagandVM.UpdateVMSecurityTagsto deal with security tags (#467) - Added new structs
types.SecurityTag,types.SecurityTaggedEntity,types.SecurityTagValueandtypes.EntitySecurityTags(#467) - Added
Vdc.GetControlAccess,Vdc.SetControlAccessandVdc.DeleteControlAccessto 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.DeleteMetadataEntryandCatalogItem.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.MergeMetadataAsyncto 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.DeleteNsxtRouteAdvertisementandNsxtEdgeGateway.DeleteNsxtRouteAdvertisementWithContextthat allow to manage NSX-T Route Advertisement (#478, #480) - Added new methods
NsxtEdgeGateway.GetBgpConfiguration,NsxtEdgeGateway.UpdateBgpConfiguration,NsxtEdgeGateway.DisableBgpConfigurationfor BGP Configuration management on NSX-T Edge Gateway (#480) - Added new structs
types.EdgeBgpConfig,types.EdgeBgpGracefulRestartConfig,types.EdgeBgpConfigVersionfor BGP Configuration management on NSX-T Edge Gateway (#480) - Added support for Dynamic Security Groups in VCD 10.3 by expanding
types.NsxtFirewallGroupto 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
EdgeBgpIpPrefixListandtypes.EdgeBgpIpPrefixListwith functionsCreateBgpIpPrefixList,GetAllBgpIpPrefixLists,GetBgpIpPrefixListByName,GetBgpIpPrefixListById,UpdateandDelete(#488) - Added support for managing NSX-T Edge Gateway BGP Neighbor. It is done by adding types
EdgeBgpNeighborandtypes.EdgeBgpNeighborwith functionsCreateBgpNeighbor,GetAllBgpNeighbors,GetBgpNeighborByIp,GetBgpNeighborById,UpdateandDelete(#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.DeletNetworkDhcpOpenApiOrgVdcNetwork.UpdateDhcp(#469) - Added additional support for UDF type ISO files in
catalog.UploadMediaImage(#479) - Added
SupportedFeatureSetattribute toNsxtAlbServiceEngineGroupandNsxtAlbConfigto support v37.0 license management for AVI Load Balancer and replaceLicenseTypefromNsxtAlbController(#485)
- Fixed method
adminOrg.FindCatalogRecordsto escape name in query URL (#466) - Fixed method
vm.WaitForDhcpIpByNicIndexesto 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.UpdateAsyncandvAppTemplate.Update(#422) - Added methods
catalog.PublishToExternalOrganizationsandadminCatalog.PublishToExternalOrganizations(#424) - Added types
types.MetadataStringValue,types.MetadataNumberValue,types.MetadataDateTimeValueandtypes.MetadataBooleanValuefor 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.DeleteMetadataEntryandAdminCatalog.DeleteMetadataEntryAsync. (#430) - Added support to get metadata from Catalog with method
Catalog.GetMetadata(#430) - Added to
VMandVAppthe methodsDeleteMetadataEntry,DeleteMetadataEntryAsync,AddMetadataEntryandAddMetadataEntryAsyncso it follows the same convention as the rest of entities that uses metadata. (#430) - Added methods
vm.ChangeCPUandvm.ChangeMemorywhich uses the latest API structure instead of deprecated ones (#432) - Added environment variable
GOVCD_API_VERSIONso 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.DeleteMetadataEntryandAdminOrg.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.DeleteMetadataEntryandDisk.DeleteMetadataEntryAsync. (#438) - Added new structure
AnyTypeEdgeGatewaywhich 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.FindCatalogRecordsthat allows to querytypes.CatalogRecordby their catalog name. (#450) - Added methods
Client.QueryWithNotEncodedParamsWithHeadersandClient.QueryWithNotEncodedParamsWithApiVersionWithHeadersso HTTP headers can be added now when doing API queries. (#450) - Added functions
VdcGroup.GetNsxtFirewallGroupByNameandVdcGroup.GetNsxtFirewallGroupById(#451) - Added support for for Network Context Profile lookup using
GetAllNetworkContextProfilesandGetNetworkContextProfilesByNameScopeAndContextfunctions (#452) - Added support for NSX-T Distributed Firewall rule management using type
DistributedFirewallandVdcGroup.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,VDCandVDC storage profile; with the methodsVCDClient.GetMetadataByHref,VCDClient.AddMetadataEntryByHref,VCDClient.AddMetadataEntryByHrefAsync,VCDClient.DeleteMetadataEntryByHrefandVCDClient.DeleteMetadataEntryByHrefAsync(#454) - Added functions
VdcGroup.GetOpenApiOrgVdcNetworkByIdandVdcGroup.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.UUIDandDisk.Encrypted(#436) - Added support for
Userentities imported from LDAP, withIsExternalproperty (#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
OrgVdctoOwnerReffield. 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.DeleteMetadataEntryandOrgVDCNetwork.DeleteMetadataEntryAsync(#442) - Added
CanPublishExternallyandCanSubscribeattributes toOrgGeneralSettingsstruct. (#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.GetNsxtAppPortProfileByNameandVdcGroup.GetNsxtAppPortProfileByNamefor 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=falsewasn't working.VdcStorageProfile.enabledandVdcStorageProfileConfiguration.enabledchanged to pointers (#433) - Fixed method
client.GetStorageProfileByHrefto return IOPSIopsSettings(#435) Vms.VmReferencechanged to array to fix incorrect deserialization (#436)Catalog.QueryMediaListmethod was not working becausefmt.Sprintfwas being misused (#441)
- Deprecated
vm.DeleteMetadatain favor ofvm.DeleteMetadataEntry(#430) - Deprecated
vm.AddMetadatain favor ofvm.AddMetadataEntry(#430) - Deprecated
vdc.DeleteMetadatain favor ofvdc.DeleteMetadataEntry(#430) - Deprecated
vdc.AddMetadatain favor ofvdc.AddMetadataEntry(#430) - Deprecated
vdc.AddMetadataAsyncin favor ofvdc.AddMetadataEntryAsync(#430) - Deprecated
vdc.DeleteMetadataAsyncin favor ofvdc.DeleteMetadataEntryAsync(#430) - Deprecated
vApp.DeleteMetadatain favor ofvApp.DeleteMetadataEntry(#430) - Deprecated
vApp.AddMetadatain favor ofvApp.AddMetadataEntry(#430) - Deprecated
vAppTemplate.AddMetadatain favor ofvAppTemplate.AddMetadataEntry(#430) - Deprecated
vAppTemplate.AddMetadataAsyncin favor ofvAppTemplate.AddMetadataEntryAsync(#430) - Deprecated
vAppTemplate.DeleteMetadatain favor ofvAppTemplate.DeleteMetadataEntry(#430) - Deprecated
vAppTemplate.DeleteMetadataAsyncin favor ofvAppTemplate.DeleteMetadataEntryAsync(#430) - Deprecated
mediaRecord.AddMetadatain favor ofmediaRecord.AddMetadataEntry(#430) - Deprecated
mediaRecord.AddMetadataAsyncin favor ofmediaRecord.AddMetadataEntryAsync(#430) - Deprecated
mediaRecord.DeleteMetadatain favor ofmediaRecord.DeleteMetadataEntry(#430) - Deprecated
mediaRecord.DeleteMetadataAsyncin favor ofmediaRecord.DeleteMetadataEntryAsync(#430) - Deprecated
media.AddMetadatain favor ofmedia.AddMetadataEntry(#430) - Deprecated
media.AddMetadataAsyncin favor ofmedia.AddMetadataEntryAsync(#430) - Deprecated
media.DeleteMetadatain favor ofmedia.DeleteMetadataEntry(#430) - Deprecated
media.DeleteMetadataAsyncin favor ofmedia.DeleteMetadataEntryAsync(#430) - Deprecated
vm.ChangeMemorySizein favor ofvm.ChangeMemory(#432) - Deprecated
vm.ChangeCPUCountandvm.ChangeCPUCountWithCorein favor ofvm.ChangeCPU(#432)
- Bumped
staticcheckversion to 2022.1 with Go 1.18 support (#457)
- Added type
NsxtAlbConfigand functionsNsxtEdgeGateway.UpdateAlbSettings,NsxtEdgeGateway.GetAlbSettings,NsxtEdgeGateway.DisableAlb(#403) - Added types
Certificateandtypes.CertificateLibraryItemfor 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
NsxtAlbServiceEngineGroupAssignmentand functionsGetAllAlbServiceEngineGroupAssignments,GetAlbServiceEngineGroupAssignmentById,GetAlbServiceEngineGroupAssignmentByName,CreateAlbServiceEngineGroupAssignment,Update,Delete(#405) - Added type
types.ApiTokenRefreshto contain data from API token refresh (#406) - Added method
VCDClient.GetBearerTokenFromApiTokento get a bearer token from an API token (#406) - Added method
VCDClient.SetApiTokento 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.DfwPoliciesandtypes.DefaultPolicyfor 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
NsxtAlbPooland functionsGetAllAlbPools,GetAllAlbPoolSummaries,GetAlbPoolByName,GetAlbPoolById,CreateNsxtAlbPool,nsxtAlbPool.Update,nsxtAlbPool.Delete(#414) - Added support for ALB Virtual Services to NSX-T Edge Gateway via type
NsxtAlbVirtualServiceand functionsGetAllAlbVirtualServices,GetAllAlbGetAllAlbVirtualServiceSummaries,GetAlbVirtualServiceByName,GetAlbVirtualServiceById,CreateNsxtAlbVirtualService,NsxtAlbVirtualService.Update,NsxtAlbVirtualService.Delete(#417)
VCDClient.SetTokenhas 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.UpdateLeaseSettingsSectionto handle vApp lease settings. (#420) - Added methods
vApp.GetLeaseandvApp.RenewLease, to query the state of the vApp lease and eventually modify it. (#420) - Added
LeaseSettingsSectiontotypes.VAppstructure. (#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
ChangeCPUCountWithCorefunction 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
NsxtAlbControllerandtypes.NsxtAlbControllerfor handling NSX-T ALB Controllers with corresponding functionsGetAllAlbControllers,GetAlbControllerByName,GetAlbControllerById,GetAlbControllerByUrl,CreateNsxtAlbController,Update,Delete(#398) - Added types
NsxtAlbCloudandtypes.NsxtAlbCloudfor handling NSX-T ALB Clouds with corresponding functionsGetAllAlbClouds,GetAlbCloudByName,GetAlbCloudById,CreateAlbCloud,Delete(#398) - Added type
NsxtAlbImportableCloudandtypes.NsxtAlbImportableCloudfor listing NSX-T ALB Importable Clouds with corresponding functionsGetAllAlbImportableClouds,GetAlbImportableCloudByName,GetAlbImportableCloudById(#398) - Added types
NsxtAlbServiceEngineGroupandtypes.NsxtAlbServiceEngineGroupfor handling NSX-T ALB Service Engine Groups with corresponding functionsGetAllNsxtAlbServiceEngineGroups,GetAlbServiceEngineGroupByName,GetAlbServiceEngineGroupById,CreateNsxtAlbServiceEngineGroup,Update,Delete,Sync(#398) - Added types
NsxtAlbImportableServiceEngineGroupsandtypes.NsxtAlbImportableServiceEngineGroupsfor 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
GetFilteredNsxtImportableSwitchesto query NSX-T Importable Switches (Segments) (#399) -
Added
.changesdirectory for changelog items (#391) -
Aligned build tags to match go fmt with Go 1.17 (#396)
-
Improved
test-tags.shscript to handle new build tag format (#396)
-
Fixed handling of
staticcheckin 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
GetStorageProfileByHrefin favor of eitherclient.GetStorageProfileByHreforvcdClient.GetStorageProfileByHref(#393) - Deprecated
QueryProviderVdcStorageProfileByNamein favor ofVCDClient.QueryProviderVdcStorageProfileByName(#393) - Deprecated
VCDClient.QueryProviderVdcStorageProfilesin favor of eitherclient.QueryProviderVdcStorageProfilesorclient.QueryAllProviderVdcStorageProfiles(#393) - Deprecated
Vdc.GetDefaultStorageProfileReferencein 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
GetVDCByIdandGetVDCByNameforOrgnow use queries behind the scenes because Org structure does not list child VDCs anymore #371, #376, #382 - Methods
GetCatalogByIdandGetCatalogByNameforOrgnow 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
NsxtFirewallGroupandNsxtFirewallGroupMemberVms. 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
NsxtAppPortProfileandtypes.NsxtAppPortProfilefor NSX-T Application Port Profile management #378 - Deprecated methods
vdc.ComposeRawVAppandvdc.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
NsxtNatRuleandtypes.NsxtNatRuleas well as methodsedge.GetAllNsxtNatRules,edge.GetNsxtNatRuleByName,edge.GetNsxtNatRuleById,edge.CreateNatRule,nsxtNatRule.Update,nsxtNatRule.Delete,nsxtNatRule.IsEqualTo#382 - Added
NsxtIpSecVpnTunnelandtypes.NsxtIpSecVpnTunnelfor NSX-T IPsec VPN Tunnel configuration #385
BREAKING CHANGES:
- Added parameter
descriptionto methodvdc.ComposeRawVapp#372 - Added methods
vapp.Rename,vapp.UpdateDescription,vapp.UpdateNameDescription#372 - Field
types.Disk.Sizeis replaced withtypes.Disk.SizeMbas size in Kilobytes is not supported in V33.0 #371 - Field
types.DiskRecordType.SizeBis replaced withtypes.DiskRecordType.SizeMbas size in Kilobytes is not supported in V33.0 #371 - Added parameter
additionalHeader map[string]stringto 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
OpenApiGetAllItemsto 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
NsxtImportableSwitchstructure withGetNsxtImportableSwitchByNameandGetAllNsxtImportableSwitchesto lookup NSX-T segments for use in NSX-T Imported networks #354 - Added
vdc.IsNsxtandvdc.IsNsxvmethods to verify if VDC is backed by NSX-T or NSX-V #354 - Added types
types.CreateVmParamsandtypes.InstantiateVmTemplateParams#356 - Added VDC methods
CreateStandaloneVMFromTemplate,CreateStandaloneVMFromTemplateAsyncCreateStandaloneVm,CreateStandaloneVmAsync#356 - Added VDC methods
QueryVmByName,QueryVmById,QueryVmList#356 - Added VM methods
Delete,DeleteAsync#356 - Added VDC methods
GetOpenApiOrgVdcNetworkDhcp,UpdateOpenApiOrgVdcNetworkDhcpandDeleteOpenApiOrgVdcNetworkDhcpfor OpenAPI management of Org Network DHCP configurations #357
BREAKING CHANGES:
- Renamed
types.VMtotypes.Vmto 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/sessionswhen access throughapi/sessionsis disabled - Added functions
edge.GetLbAppRules,edge.GetLbServerPools,edge.GetLbAppProfiles,edge.GetNsxvNatRules,client.GetOrgList - Exported private function
client.maxSupportedVersiontoclient.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) GetNsxtEdgeClusterByNameand(vdc *Vdc) GetAllNsxtEdgeClustersfor 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
[]*VdcStorageProfileto[]*VdcStorageProfileConfiguration
- Improved testing tags isolation #320
- Added command
make tagverifyto 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_LBAppRulefor 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.UpdateVmCpuAndMemoryHotAddandvm.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.GetAllAssignedVdcComputePoliciesandadminVdc.SetAssignedComputePolicies[#334] (https://github.com/vmware/go-vcloud-director/pull/334) - Introduce NSX-T support for adminOrg.CreateOrgVdc() #332
- Introduce NSX-T support for external network using OpenAPI endpoint and
ExternalNetworkV2type methods includingCreateExternalNetworkV2,GetExternalNetworkById,GetAllExternalNetworks,ExternalNetworkV2.Update, andExternalNetworkV2.DELETE#335 - Introduce NSX-T Query functions
client.QueryNsxtManagerByNameandclient.GetImportableNsxtTier0RouterByName#335 - Add HTTP User-Agent header
go-vcloud-directorto all API calls and allow to customize it usingWithHttpUserAgentconfiguration 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.QueryCatalogListandorg.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.QueryVappVmTemplateand changedvapp.AddNewVMWithStorageProfileto 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=trueenvironment variable can set to overwrite log file on every initialization #307 - Add configuration option
WithSamlAdfstoNewVCDClient()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.GetVmAntiAffinityRuleListvdc.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,NewGroupfunctions #314 - Add LDAP administration functions for Org
LdapConfigure,GetLdapConfiguration, andLdapDisable#314 - Added methods
vapp.UpdateNetworkFirewallRules,vapp.UpdateNetworkFirewallRulesAsync,vapp.GetVappNetworkById,vapp.GetVappNetworkByNameandvapp.GetVappNetworkByNameOrId#308 - Added methods
vapp.UpdateNetworkNatRulesAsync,vapp.UpdateNetworkNatRulesAsync,vapp.RemoveAllNetworkFirewallRulesandvapp.RemoveAllNetworkNatRules#316 - Added methods
vapp.UpdateNetworkStaticRouting,vapp.UpdateNetworkStaticRoutingAsyncandvapp.RemoveAllNetworkStaticRoutes#318
- Added methods
OrgVdcNetwork.Update,OrgVdcNetwork.UpdateAsync, andOrgVdcNetwork.Rename#292 - Added methods
EdgeGateway.UpdateandEdgeGateway.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.AddEmptyVmAsyncandvdc.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.RemoveNetworkAsyncto useDELETEAPI call instead of update which can apply incorrect remaining vApp network configurations #299
- Moved
VCDClient.supportedVersionstoVCDClient.Client.supportedVersions#274 - Added methods
VM.AddInternalDisk,VM.GetInternalDiskById,VM.DeleteInternalDisk,VM.UpdateInternalDisksandVM.UpdateInternalDisksAsync#272 - Added methods
vdc.GetEdgeGatewayReferenceListandcatalog.GetVappTemplateByHref#278 - Improved functions to not expect XML namespaces provided in argument structure #284
- Change
intandboolfields from types.VAppTemplateLeaseSettings and VAppLeaseSettings into pointers - Added method
catalog.GetVappTemplateByHref, and expose methodsvdc.GetEdgeGatewayByHrefandvdc.GetEdgeGatewayRecordsType - Added methods
adminOrg.CreateOrgVdc,adminOrg.CreateOrgVdcAsyncand 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.CreateVdcandadminOrg.CreateVdcWait#285 - Added methods
EdgeGateway.GetAllNsxvDhcpLeases(),EdgeGateway.GetNsxvActiveDhcpLeaseByMac()VM.WaitForDhcpIpByNicIndexes(),VM.GetParentVApp(),VM.GetParentVdc()#283 types.GetGuestCustomizationSectionnow 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.RemoveNetworkAsyncandGetUuidFromHref#289 - Deprecated functions
vapp.RemoveIsolatedNetwork,vapp.AddRAWNetworkConfigandvapp.AddIsolatedNetwork#289
BUGS FIXED:
- A data race in catalog/media item upload status reporting #288
Vapp.Customize()andVM.Customize()ignoreschangeSidvalue and always set it to true #291
BUGS FIXED:
- Fix a bug where functions
GetAnyVnicIndexByNetworkNameandGetVnicIndexByNetworkNameAndTypewould 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 staticto run staticcheck on all packages - Added
make staticto 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,TaskStatusfromQueryResultVMRecordType - Added fields
ID, Type, ContainerName, ContainerID, OwnerName, Owner, NetworkHref, IpAddress, CatalogName, VmToolsStatus, GcStatus, AutoUndeployDate, AutoDeleteDate, AutoUndeployNotified, AutoDeleteNotified, Link, MetaDatatoQueryResultVMRecordType,DistributedInterfacetoNetworkConfigurationandRegenerateBiosUuidtoVMGeneralParams - Change to pointers
DistributedRoutingEnabledinGatewayConfigurationandDistributedInterfaceinNetworkConfiguration
- 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.GetLbVirtualServersthat gets all virtual servers configured on NSX load balancer. #266 - Added method
EdgeGateway.GetLbServerPoolsthat gets all pools configured on NSX load balancer. #266 - Added method
EdgeGateway.GetLbServiceMonitorsthat gets all service monitors configured on NSX load balancer. #266 - Added field
SubInterfacetoNetworkConfiguration. #321 - Added methods
Vdc.FindEdgeGatewayNameByNetworkandVdc.GetNetworkList - Added IP set handling functions
CreateNsxvIpSet,UpdateNsxvIpSet,GetNsxvIpSetByName,GetNsxvIpSetById,GetNsxvIpSetByNameOrId,GetAllNsxvIpSets,DeleteNsxvIpSetById,DeleteNsxvIpSetByName#269 - Added
UpdateDhcpRelay,GetDhcpRelayandResetDhcpRelaymethods 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] (https://github.com/vmware/go-vcloud-director/pull/256)
- Take into account all subnets (SubnetParticipation) on edge gateway interface instead of the first one #260
- Fix
OrgVdcNetworkdata structure to retrieve description. Previously, the description would not be retrieved because it was misplaced in the sequence.
- Deprecated functions
GetOrgByNameandGetAdminOrgByName - Deprecated methods
AdminOrg.FetchUserByName,AdminOrg.FetchUserById,AdminOrg.FetchUserByNameOrId,AdminOrg.GetRole. - Added method
VCDClient.GetOrgByNameand relatedGetOrgById,GetOrgByNameOrId - Added method
VCDClient.GetAdminOrgByNameand 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
UpdateNetworkConnectionSectionfor updating VM network configuration [#229](https://gifiltering which in some env wasn'tthub.com/vmware/go-vcloud-director/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.GetCatalogByNameand relatedOrg.GetCatalogById,GetCatalogItemByNameOrId - Added methods
VCDClient.GetExternalNetworkByNameand relatedGetExternalNetworkByIdandGetExternalNetworkByNameOrId - Added methods
AdminOrg.GetCatalogByNameand relatedOrg.GetCatalogById,GetCatalogByNameOrId - Added methods
AdminOrg.GetAdminCatalogByNameand relatedOrg.GetAdminCatalogById,GetAdminCatalogByNameOrId - Added methods
Org.GetVDCByNameand relatedGetVDCById,GetVDCByNameOrId - Added methods
AdminOrg.GetVDCByNameand relatedGetVDCById,GetVDCByNameOrId - Added methods
AdminOrg.GetAdminVDCByNameand relatedGetAdminVDCById,GetAdminVDCByNameOrId - Added methods
Catalog.RefreshandAdminCatalog.Refresh - Added method
vm.GetVirtualHardwareSectionto retrieve virtual hardware items #200 - Added methods
vm.SetProductSectionListandvm.GetProductSectionListallowing to manipulate VM guest properties #235 - Added methods
vapp.SetProductSectionListandvapp.GetProductSectionListallowing 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.GetVAppByNameand relatedGetVAppById,GetVAppByNameOrId - Added methods
Client.GetVMByHrefVapp.GetVAMByNameand relatedGetVMById,GetVAMByNameOrId - Deprecated methods
Client.FindVMByHREF,Vdc.FindVMByName,Vdc.FindVAppByID, andVdc.FindVAppByName - Added methods
Vm.GetGuestCustomizationSectionandVm.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.FindDiskByHREFandFindDiskByHREF - Added methods
VDC.GetDiskByHrefVDC.GetDisksByNameand 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,AdminVdcto 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
omitemptystruct tags from load balancer component boolean fields to allow sendingfalsevalues 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()