govcd

package
v3.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2025 License: Apache-2.0 Imports: 42 Imported by: 6

Documentation

Index

Constants

View Source
const (
	OrgUserRoleOrganizationAdministrator = "Organization Administrator"
	OrgUserRoleCatalogAuthor             = "Catalog Author"
	OrgUserRoleVappAuthor                = "vApp Author"
	OrgUserRoleVappUser                  = "vApp User"
	OrgUserRoleConsoleAccessOnly         = "Console Access Only"
	OrgUserRoleDeferToIdentityProvider   = "Defer to Identity Provider"

	// Allowed values for provider types
	OrgUserProviderIntegrated = "INTEGRATED" // The user is created locally or imported from LDAP
	OrgUserProviderSAML       = "SAML"       // The user is imported from a SAML identity provider.
	OrgUserProviderOAUTH      = "OAUTH"      // The user is imported from an OAUTH identity provider
)
View Source
const ApiTokenHeader = "API-token"
View Source
const AuthorizationHeader = "X-Vcloud-Authorization"

AuthorizationHeader header key used by default to set the authorization token.

View Source
const BearerTokenHeader = "X-Vmware-Vcloud-Access-Token"

BearerTokenHeader is the header key containing a bearer token #nosec G101 -- This is not a credential, it's just the header key

View Source
const LabelOrgs = "Organization"

Variables

View Source
var ErrorEntityNotFound = errors.New(errorEntityNotFoundMessage)

Used to check the validity of provider type on creation

View Source
var (

	// SupportedMetadataTypes are the metadata types recognized so far. "NONE" is the same as ""
	SupportedMetadataTypes = []string{"NONE", "STRING", "NUMBER", "BOOLEAN", "DATETIME"}
)

Functions

func BuildUrnWithUuid

func BuildUrnWithUuid(urnPrefix, uuid string) (string, error)

BuildUrnWithUuid helps to build valid URNs where APIs require URN format, but other API responds with UUID (or extracted from HREF)

func ContainsNotFound

func ContainsNotFound(err error) bool

ContainsNotFound is a convenience function, similar to os.IsNotExist that checks whether a given error contains a "Not found" error. It is almost the same as `IsNotFound` but checks if an error contains substring ErrorEntityNotFound

func FindMissingImpliedRights

func FindMissingImpliedRights(client *Client, rights []types.OpenApiReference) ([]types.OpenApiReference, error)

FindMissingImpliedRights returns a list of the rights that are implied in the rights provided as input

func GetAllNetworkContextProfiles

func GetAllNetworkContextProfiles(client *Client, queryParameters url.Values) ([]*types.NsxtNetworkContextProfile, error)

GetAllNetworkContextProfiles retrieves a slice of types.NsxtNetworkContextProfile This function requires at least a filter value for 'context_id' which can be one of: * Org VDC ID - to get Network Context Profiles scoped for VDC * Network provider ID - to get Network Context Profiles scoped for attached NSX-T environment * VDC Group ID - to get Network Context Profiles scoped for attached NSX-T environment

func GetErrorMessageFromErrorSlice

func GetErrorMessageFromErrorSlice(errors []error) string

GetErrorMessageFromErrorSlice returns a single error message from a list of error

func GetExternalNetworkByName deprecated

func GetExternalNetworkByName(vcdClient *VCDClient, networkName string) (*types.ExternalNetworkReference, error)

Deprecated: please use GetExternalNetwork function instead

func GetNetworkContextProfilesByNameScopeAndContext

func GetNetworkContextProfilesByNameScopeAndContext(client *Client, name, scope, contextId string) (*types.NsxtNetworkContextProfile, error)

GetNetworkContextProfilesByScopeAndName retrieves a single NSX-T Network Context Profile by name and context ID. All fields - name, scope and contextId are mandatory

contextId is mandatory and can be one off: * Org VDC ID - to get Network Context Profiles scoped for VDC * Network provider ID - to get Network Context Profiles scoped for attached NSX-T environment * VDC Group ID - to get Network Context Profiles scoped for attached NSX-T environment

scope can be one off: * SYSTEM * PROVIDER * TENANT

func GetNetworkPoolByHREF

func GetNetworkPoolByHREF(client *VCDClient, href string) (*types.VMWNetworkPool, error)

GetNetworkPoolByHREF functions fetches an network pool using VDC client and network pool href

func GetStorageProfileByHref

func GetStorageProfileByHref(vcdClient *VCDClient, url string) (*types.VdcStorageProfile, error)

GetStorageProfileByHref fetches storage profile using provided HREF. Deprecated: use client.GetStorageProfileByHref or vcdClient.GetStorageProfileByHref

func GetTokenFromFile

func GetTokenFromFile(tokenFilename string) (*types.ApiTokenRefresh, error)

GetTokenFromFile reads an API token from a given file

func GetUuidFromHref

func GetUuidFromHref(href string, idAtEnd bool) (string, error)

Returns the UUID part of an HREF Similar to getBareEntityUuid, but tailored to HREF

func IsNotFound

func IsNotFound(err error) bool

IsNotFound is a convenience function, similar to os.IsNotExist that checks whether a given error is a "Not found" error, such as

if isNotFound(err) {
   // do what is needed in case of not found
}

func IsUuid

func IsUuid(identifier string) bool

IsUuid returns true if the identifier is a bare UUID

func IsValidUrl

func IsValidUrl(str string) bool

IsValidUrl returns true if the given URL is complete and usable

func IsVappNetwork

func IsVappNetwork(networkConfig *types.NetworkConfiguration) bool

IsVappNetwork allows to identify if given network config is a vApp network and not a vApp Org network

func LogAdminCatalog

func LogAdminCatalog(catalog types.AdminCatalog)

func LogAdminOrg

func LogAdminOrg(org types.AdminOrg)

func LogCatalog

func LogCatalog(catalog types.Catalog)

func LogCatalogItem

func LogCatalogItem(catalogItem types.CatalogItem)

func LogDisk

func LogDisk(disk types.Disk)

func LogEdgeGateway

func LogEdgeGateway(edgeGateway types.EdgeGateway)

func LogExternalNetwork

func LogExternalNetwork(network types.ExternalNetwork)

func LogNetwork

func LogNetwork(conf types.OrgVDCNetwork)

func LogOrg

func LogOrg(org types.Org)

func LogTask

func LogTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool)

func LogUser

func LogUser(user types.User)

func LogVapp

func LogVapp(vapp types.VApp)

func LogVdc

func LogVdc(vdc types.Vdc)

func LogVm

func LogVm(vm types.Vm)

func MinimalShowTask

func MinimalShowTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool)

func OwnerIsVdc

func OwnerIsVdc(urn string) bool

OwnerIsVdc evaluates a given URN and returns true if it is a VDC

func OwnerIsVdcGroup

func OwnerIsVdcGroup(urn string) bool

OwnerIsVdcGroup evaluates given URN and returns true if it is a VDC Group

func ParseErr

func ParseErr(bodyType types.BodyType, resp *http.Response, errType error) error

ParseErr takes an error XML resp, error interface for unmarshalling and returns a single string for use in error messages.

func QueryAdminOrgVdcStorageProfileByID

func QueryAdminOrgVdcStorageProfileByID(vcdCli *VCDClient, id string) (*types.QueryResultAdminOrgVdcStorageProfileRecordType, error)

QueryAdminOrgVdcStorageProfileByID finds a StorageProfile of VDC by ID as admin

func QueryDistributedPortGroup

func QueryDistributedPortGroup(vcdCli *VCDClient, name string) ([]*types.PortGroupRecordType, error)

Find a Distributed port group by name

func QueryNetworkPoolByName

func QueryNetworkPoolByName(vcdCli *VCDClient, name string) ([]*types.QueryResultNetworkPoolRecordType, error)

QueryNetworkPoolByName finds a network pool by name

func QueryNetworkPortGroup

func QueryNetworkPortGroup(vcdCli *VCDClient, name string) ([]*types.PortGroupRecordType, error)

Find a Network port group by name

func QueryOrgVdcNetworkByName

func QueryOrgVdcNetworkByName(vcdCli *VCDClient, name string) ([]*types.QueryResultOrgVdcNetworkRecordType, error)

QueryOrgVdcNetworkByName finds a org VDC network by name which has edge gateway as reference

func QueryOrgVdcStorageProfileByID

func QueryOrgVdcStorageProfileByID(vcdCli *VCDClient, id string) (*types.QueryResultOrgVdcStorageProfileRecordType, error)

QueryOrgVdcStorageProfileByID finds a StorageProfile of VDC by ID

func QueryPortGroups

func QueryPortGroups(vcdCli *VCDClient, filter string) ([]*types.PortGroupRecordType, error)

Find a list of Port groups matching the filter parameter.

func QueryProviderVdcByName

func QueryProviderVdcByName(vcdCli *VCDClient, name string) ([]*types.QueryResultVMWProviderVdcRecordType, error)

QueryProviderVdcByName finds a provider VDC by name

func QueryProviderVdcStorageProfileByName

func QueryProviderVdcStorageProfileByName(vcdCli *VCDClient, name string) ([]*types.QueryResultProviderVdcStorageProfileRecordType, error)

QueryProviderVdcStorageProfileByName finds a provider VDC storage profile by name Deprecated: wrong implementation. Use VCDClient.QueryProviderVdcStorageProfileByName

func QueryVirtualCenters

func QueryVirtualCenters(vcdClient *VCDClient, filter string) ([]*types.QueryResultVirtualCenterRecordType, error)

Find a list of Virtual Centers matching the filter parameter. Filter constructing guide: https://pubs.vmware.com/vcloud-api-1-5/wwhelp/wwhimpl/js/html/wwhelp.htm#href=api_prog/GUID-CDF04296-5EB5-47E1-9BEC-228837C584CE.html Possible parameters are any attribute from QueryResultVirtualCenterRecordType struct E.g. filter could look like: name==vC1

func QueryVmList

func QueryVmList(vmType types.VmQueryFilter, client *Client, searchParams map[string]string) ([]*types.QueryResultVMRecordType, error)

QueryVmList retrieves a list of VMs across all VDC, using parameters defined in searchParams

func RawDataToStructuredXml

func RawDataToStructuredXml[dataType any](rawData []byte) (*dataType, error)

RawDataToStructuredXml reads an input byte stream and attempts decoding an expected data type Examples: orgSettingData, err := RawDataToStructuredXml[types.OrgAssociationMember](data) siteSettingData, err := RawDataToStructuredXml[types.SiteAssociationMember](data)

func ReadXmlDataFromFile

func ReadXmlDataFromFile[dataType any](fileName string) (*dataType, error)

ReadXmlDataFromFile reads the contents of a file and attempts decoding an expected data type Examples: orgSettingData, err := ReadXmlDataFromFile[types.OrgAssociationMember]("./data/org1-association-data.xml") siteSettingData, err := ReadXmlDataFromFile[types.SiteAssociationMember]("./data/site1-association-data.xml")

func RemoveMediaImageIfExists

func RemoveMediaImageIfExists(vdc Vdc, mediaName string) error

Looks for media and, if found, will delete it. Deprecated: Use catalog.RemoveMediaIfExist

func RemoveOrgVdcNetworkIfExists

func RemoveOrgVdcNetworkIfExists(vdc Vdc, networkName string) error

RemoveOrgVdcNetworkIfExists looks for an Org Vdc network and, if found, will delete it.

func ResourceComplete

func ResourceComplete(tasksInProgress *types.TasksInProgress) bool

ResourceComplete return true is none of its tasks are running

func ResourceInProgress

func ResourceInProgress(tasksInProgress *types.TasksInProgress) bool

ResourceInProgress returns true if any of the provided tasks is still running

func SaveApiTokenToFile

func SaveApiTokenToFile(filename, userAgent string, apiToken *types.ApiTokenRefresh) error

func SaveServiceAccountToFile

func SaveServiceAccountToFile(filename, useragent string, saToken *types.ApiTokenRefresh) error

SaveServiceAccountToFile saves the API token of the Service Account to a file

func ShowAdminCatalog

func ShowAdminCatalog(catalog types.AdminCatalog)

func ShowAdminOrg

func ShowAdminOrg(org types.AdminOrg)

func ShowCatalog

func ShowCatalog(catalog types.Catalog)

func ShowCatalogItem

func ShowCatalogItem(catalogItem types.CatalogItem)

func ShowDisk

func ShowDisk(disk types.Disk)

func ShowEdgeGateway

func ShowEdgeGateway(edgeGateway types.EdgeGateway)

func ShowExternalNetwork

func ShowExternalNetwork(network types.ExternalNetwork)

func ShowNetwork

func ShowNetwork(conf types.OrgVDCNetwork)

func ShowOrg

func ShowOrg(org types.Org)

func ShowTask

func ShowTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool)

func ShowUser

func ShowUser(user types.User)

func ShowVapp

func ShowVapp(vapp types.VApp)

func ShowVdc

func ShowVdc(vdc types.Vdc)

func ShowVm

func ShowVm(vm types.Vm)

func SimpleLogTask

func SimpleLogTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool)

func SimpleShowTask

func SimpleShowTask(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool)

func SkimTasksList

func SkimTasksList(taskList []*Task) ([]*Task, []*Task, error)

SkimTasksList checks a list of tasks and returns a list of tasks still in progress and a list of failed ones

func SkimTasksListMonitor

func SkimTasksListMonitor(taskList []*Task, monitoringFunc TaskMonitoringFunc) ([]*Task, []*Task, error)

SkimTasksListMonitor checks a list of tasks and returns a list of tasks in progress and a list of failed ones It can optionally do something with each task by means of a monitoring function

func ValidateSamlServiceProviderMetadata

func ValidateSamlServiceProviderMetadata(metadataText string) []error

ValidateSamlServiceProviderMetadata tells whether a given string contains valid XML that defines SAML service provider metadata Returns nil on valid data, and an array of errors for invalid data

func VcloudRequestIdBuilderFunc

func VcloudRequestIdBuilderFunc() string

VcloudRequestIdBuilderFunc can be used in 'WithVcloudRequestIdFunc' It would populate 'X-Vmware-Vcloud-Client-Request-Id' formatted so: {sequence-number}-{date-time-hyphen-separated} (e.g. 1-2024-04-13-01-58-25-733-)

func WaitResource

func WaitResource(refresh func() (*types.TasksInProgress, error)) error

WaitResource waits for the tasks associated to a given resource to complete

Types

type AdminCatalog

type AdminCatalog struct {
	AdminCatalog *types.AdminCatalog
	// contains filtered or unexported fields
}

AdminCatalog is a admin view of a VMware Cloud Director Catalog To be able to get an AdminCatalog representation, users must have admin credentials to the System org. AdminCatalog is used for creating, updating, and deleting a Catalog. Definition: https://code.vmware.com/apis/220/vcloud#/doc/doc/types/AdminCatalogType.html

func CreateCatalog

func CreateCatalog(client *Client, links types.LinkList, Name, Description string) (AdminCatalog, error)

CreateCatalog creates a catalog with specified name and description

func CreateCatalogWithStorageProfile

func CreateCatalogWithStorageProfile(client *Client, links types.LinkList, Name, Description string, storageProfiles *types.CatalogStorageProfiles) (*AdminCatalog, error)

CreateCatalogWithStorageProfile is like CreateCatalog, but allows to specify storage profile

func NewAdminCatalog

func NewAdminCatalog(client *Client) *AdminCatalog

func NewAdminCatalogWithParent

func NewAdminCatalogWithParent(client *Client, parent organization) *AdminCatalog

func (*AdminCatalog) AddMetadataEntry

func (adminCatalog *AdminCatalog) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds AdminCatalog metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use AdminCatalog.AddMetadataEntryWithVisibility instead

func (*AdminCatalog) AddMetadataEntryAsync

func (adminCatalog *AdminCatalog) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds AdminCatalog metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use AdminCatalog.AddMetadataEntryWithVisibilityAsync instead

func (*AdminCatalog) AddMetadataEntryWithVisibility

func (adminCatalog *AdminCatalog) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver AdminCatalog and waits for the task to finish.

func (*AdminCatalog) AddMetadataEntryWithVisibilityAsync

func (adminCatalog *AdminCatalog) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given AdminCatalog with the given key, value, type and visibility and returns the task.

func (*AdminCatalog) Delete

func (adminCatalog *AdminCatalog) Delete(force, recursive bool) error

Delete deletes the Catalog, returning an error if the vCD call fails. Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Catalog.html

func (*AdminCatalog) DeleteMetadataEntry

func (adminCatalog *AdminCatalog) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes AdminCatalog metadata depending on key provided as input and waits for the task to finish. Deprecated: Use AdminCatalog.DeleteMetadataEntryWithDomain instead

func (*AdminCatalog) DeleteMetadataEntryAsync

func (adminCatalog *AdminCatalog) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes AdminCatalog metadata depending on key provided as input and returns a task. Deprecated: Use AdminCatalog.DeleteMetadataEntryWithDomainAsync instead

func (*AdminCatalog) DeleteMetadataEntryWithDomain

func (adminCatalog *AdminCatalog) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes AdminCatalog metadata associated to the input key and waits for the task to finish.

func (*AdminCatalog) DeleteMetadataEntryWithDomainAsync

func (adminCatalog *AdminCatalog) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes AdminCatalog metadata associated to the input key and returns the task.

func (*AdminCatalog) FullSubscriptionUrl

func (cat *AdminCatalog) FullSubscriptionUrl() (string, error)

FullSubscriptionUrl returns the subscription URL from a publishing catalog adding the HOST if needed

func (AdminCatalog) GetAccessControl

func (adminCatalog AdminCatalog) GetAccessControl(useTenantContext bool) (*types.ControlAccessParams, error)

GetAccessControl retrieves the access control information for this catalog

func (*AdminCatalog) GetCatalogHref

func (cat *AdminCatalog) GetCatalogHref() (string, error)

GetCatalogHref retrieves the regular catalog HREF from an admin catalog

func (*AdminCatalog) GetCatalogItemByHref

func (cat *AdminCatalog) GetCatalogItemByHref(catalogItemHref string) (*CatalogItem, error)

GetCatalogItemByHref finds a CatalogItem by HREF On success, returns a pointer to the CatalogItem structure and a nil error On failure, returns a nil pointer and an error

func (*AdminCatalog) GetMediaByHref

func (adminCatalog *AdminCatalog) GetMediaByHref(mediaHref string) (*Media, error)

GetMediaByHref finds a Media by HREF On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*AdminCatalog) GetMediaById

func (adminCatalog *AdminCatalog) GetMediaById(mediaId string) (*Media, error)

GetMediaById finds a Media by ID On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*AdminCatalog) GetMediaByName

func (adminCatalog *AdminCatalog) GetMediaByName(mediaName string, refresh bool) (*Media, error)

GetMediaByName finds a Media by Name On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*AdminCatalog) GetMediaByNameOrId

func (adminCatalog *AdminCatalog) GetMediaByNameOrId(identifier string, refresh bool) (*Media, error)

GetMediaByNameOrId finds a Media by Name or ID On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*AdminCatalog) GetMetadata

func (adminCatalog *AdminCatalog) GetMetadata() (*types.Metadata, error)

GetMetadata returns AdminCatalog metadata.

func (*AdminCatalog) GetMetadataByKey

func (adminCatalog *AdminCatalog) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns AdminCatalog metadata corresponding to the given key and domain.

func (AdminCatalog) IsShared

func (adminCatalog AdminCatalog) IsShared(useTenantContext bool) (bool, error)

IsShared shows whether a catalog is shared or not, regardless of the number of subjects sharing it

func (*AdminCatalog) IsSharedReadOnly

func (cat *AdminCatalog) IsSharedReadOnly() (bool, error)

IsSharedReadOnly returns the state of the catalog read-only sharing to all organizations

func (*AdminCatalog) LaunchSync

func (cat *AdminCatalog) LaunchSync() (*Task, error)

LaunchSync starts synchronisation of a subscribed AdminCatalog

func (*AdminCatalog) LaunchSynchronisationAllMediaItems

func (cat *AdminCatalog) LaunchSynchronisationAllMediaItems() ([]*Task, error)

LaunchSynchronisationAllMediaItems waits for existing tasks to complete and then starts synchronisation of all media items for a given catalog TODO re-implement without the non-documented task-related fields

func (*AdminCatalog) LaunchSynchronisationAllVappTemplates

func (cat *AdminCatalog) LaunchSynchronisationAllVappTemplates() ([]*Task, error)

LaunchSynchronisationAllVappTemplates waits for existing tasks to complete and then starts synchronisation of all vApp templates for a given catalog TODO: re-implement without the undocumented task-related fields

func (*AdminCatalog) LaunchSynchronisationMediaItems

func (cat *AdminCatalog) LaunchSynchronisationMediaItems(nameList []string) ([]*Task, error)

LaunchSynchronisationMediaItems waits for existing tasks to complete and then starts synchronisation of a list of media items TODO: re-implement without the undocumented task-related fields

func (*AdminCatalog) LaunchSynchronisationVappTemplates

func (cat *AdminCatalog) LaunchSynchronisationVappTemplates(nameList []string) ([]*Task, error)

LaunchSynchronisationVappTemplates starts synchronisation of a list of vApp templates

func (*AdminCatalog) MergeMetadata

func (adminCatalog *AdminCatalog) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges AdminCatalog metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use AdminCatalog.MergeMetadataWithMetadataValues

func (*AdminCatalog) MergeMetadataAsync

func (adminCatalog *AdminCatalog) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges AdminCatalog metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use AdminCatalog.MergeMetadataWithMetadataValuesAsync

func (*AdminCatalog) MergeMetadataWithMetadataValues

func (adminCatalog *AdminCatalog) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver AdminCatalog and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*AdminCatalog) MergeMetadataWithMetadataValuesAsync

func (adminCatalog *AdminCatalog) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges AdminCatalog metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*AdminCatalog) PublishToExternalOrganizations

func (cat *AdminCatalog) PublishToExternalOrganizations(publishExternalCatalog types.PublishExternalCatalogParams) error

PublishToExternalOrganizations publishes a catalog to external organizations.

func (*AdminCatalog) QueryCatalogItem

func (catalog *AdminCatalog) QueryCatalogItem(name string) (*types.QueryResultCatalogItemType, error)

QueryCatalogItem returns a named Catalog Item for the given catalog

func (*AdminCatalog) QueryCatalogItemList

func (catalog *AdminCatalog) QueryCatalogItemList() ([]*types.QueryResultCatalogItemType, error)

QueryCatalogItemList returns a list of Catalog Item for the given admin catalog

func (*AdminCatalog) QueryMedia

func (adminCatalog *AdminCatalog) QueryMedia(mediaName string) (*MediaRecord, error)

QueryMedia returns media image found in system using `name` and `catalog name` as query.

func (*AdminCatalog) QueryMediaList

func (catalog *AdminCatalog) QueryMediaList() ([]*types.MediaRecordType, error)

QueryMediaList retrieves a list of media items for the Admin Catalog

func (*AdminCatalog) QueryTaskList

func (catalog *AdminCatalog) QueryTaskList(filter map[string]string) ([]*types.QueryResultTaskRecordType, error)

QueryTaskList retrieves a list of tasks associated to the Admin Catalog

func (*AdminCatalog) QueryVappTemplateList

func (catalog *AdminCatalog) QueryVappTemplateList() ([]*types.QueryResultVappTemplateType, error)

QueryVappTemplateList returns a list of vApp templates for the given catalog

func (*AdminCatalog) QueryVappTemplateWithName

func (catalog *AdminCatalog) QueryVappTemplateWithName(vAppTemplateName string) (*types.QueryResultVappTemplateType, error)

QueryVappTemplateWithName returns one vApp template for the given Catalog with the given name. Returns an error if it finds more than one.

func (*AdminCatalog) Refresh

func (adminCatalog *AdminCatalog) Refresh() error

Refresh fetches a fresh copy of the Admin Catalog

func (AdminCatalog) RemoveAccessControl

func (adminCatalog AdminCatalog) RemoveAccessControl(useTenantContext bool) error

RemoveAccessControl is a shortcut to SetAccessControl with all access disabled

func (*AdminCatalog) RemoveMediaIfExists

func (adminCatalog *AdminCatalog) RemoveMediaIfExists(mediaName string) error

Looks for media and, if found, will delete it.

func (AdminCatalog) SetAccessControl

func (adminCatalog AdminCatalog) SetAccessControl(accessControl *types.ControlAccessParams, useTenantContext bool) error

SetAccessControl changes the access control information for this catalog

func (*AdminCatalog) SetReadOnlyAccessControl

func (cat *AdminCatalog) SetReadOnlyAccessControl(isPublished bool) error

SetReadOnlyAccessControl will create or rescind the read-only AdminCatalog sharing to all organizations

func (*AdminCatalog) Sync

func (cat *AdminCatalog) Sync() error

Sync synchronises a subscribed AdminCatalog

func (*AdminCatalog) Update

func (adminCatalog *AdminCatalog) Update() error

Update updates the Catalog definition from current Catalog struct contents. Any differences that may be legally applied will be updated. Returns an error if the call to vCD fails. Update automatically performs a refresh with the admin catalog it gets back from the rest api Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/PUT-Catalog.html

func (*AdminCatalog) UpdateSubscriptionParams

func (catalog *AdminCatalog) UpdateSubscriptionParams(params types.ExternalCatalogSubscription) error

UpdateSubscriptionParams modifies the subscription parameters of an already subscribed catalog

func (*AdminCatalog) UploadOvf

func (adminCatalog *AdminCatalog) UploadOvf(ovaFileName, itemName, description string, uploadPieceSize int64) (UploadTask, error)

UploadOvf uploads an ova file to a catalog. This method only uploads bits to vCD spool area. Returns errors if any occur during upload from vCD or upload process. On upload fail client may need to remove vCD catalog item which waits for files to be uploaded. Files from ova are extracted to system temp folder "govcd+random number" and left for inspection on error.

func (*AdminCatalog) WaitForTasks

func (cat *AdminCatalog) WaitForTasks() error

WaitForTasks waits for the catalog's tasks to complete

type AdminOrg

type AdminOrg struct {
	AdminOrg *types.AdminOrg

	TenantContext *TenantContext
	// contains filtered or unexported fields
}

AdminOrg gives an admin representation of an org. Administrators can delete and update orgs with an admin org object. AdminOrg includes all members of the Org element, and adds several elements that can be viewed and modified only by system administrators. Definition: https://code.vmware.com/apis/220/vcloud#/doc/doc/types/AdminOrgType.html

func GetAdminOrgByName

func GetAdminOrgByName(vcdClient *VCDClient, orgName string) (AdminOrg, error)

If user specifies valid organization name, then this returns an admin organization object. If no valid org is found, it returns an empty org and no error. Otherwise returns an empty AdminOrg and an error. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/GET-Organization-AdminView.html Deprecated: Use vcdClient.GetAdminOrgByName instead

func NewAdminOrg

func NewAdminOrg(cli *Client) *AdminOrg

func (*AdminOrg) AddCertificateToLibrary

func (adminOrg *AdminOrg) AddCertificateToLibrary(certificateConfig *types.CertificateLibraryItem) (*Certificate, error)

AddCertificateToLibrary uploads certificates with configuration details

func (*AdminOrg) AddMetadataEntry

func (adminOrg *AdminOrg) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds AdminOrg metadata key/value pair provided as input to the corresponding organization seen as administrator and waits for completion. Deprecated: Use AdminOrg.AddMetadataEntryWithVisibility instead

func (*AdminOrg) AddMetadataEntryAsync

func (adminOrg *AdminOrg) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds AdminOrg metadata key/value pair provided as input to the corresponding organization seen as administrator and returns a task. Deprecated: Use AdminOrg.AddMetadataEntryWithVisibilityAsync instead

func (*AdminOrg) AddMetadataEntryWithVisibility

func (adminOrg *AdminOrg) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver AdminOrg and waits for the task to finish.

func (*AdminOrg) AddMetadataEntryWithVisibilityAsync

func (adminOrg *AdminOrg) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given AdminOrg with the given key, value, type and visibility and returns the task.

func (AdminOrg) CheckOrgAssociation

func (org AdminOrg) CheckOrgAssociation(orgId string, timeout time.Duration) (string, time.Duration, error)

CheckOrgAssociation polls the state of a given Org association until it becomes active, or a timeout is reached. Note: this method should be called only after both sides have performed the data association upload.

func (*AdminOrg) CreateCatalog

func (adminOrg *AdminOrg) CreateCatalog(name, description string) (AdminCatalog, error)

CreateCatalog creates a catalog with given name and description under the given organization. Returns an AdminCatalog that contains a creation task. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-CreateCatalog.html

func (*AdminOrg) CreateCatalogFromSubscription

func (org *AdminOrg) CreateCatalogFromSubscription(subscription types.ExternalCatalogSubscription,
	storageProfiles *types.CatalogStorageProfiles,
	catalogName, password string, localCopy bool, timeout time.Duration) (*AdminCatalog, error)

CreateCatalogFromSubscription is a wrapper around CreateCatalogFromSubscriptionAsync After catalog creation, it waits for the import tasks to complete within a given timeout

func (*AdminOrg) CreateCatalogFromSubscriptionAsync

func (org *AdminOrg) CreateCatalogFromSubscriptionAsync(subscription types.ExternalCatalogSubscription,
	storageProfiles *types.CatalogStorageProfiles,
	catalogName, password string, localCopy bool) (*AdminCatalog, error)

CreateCatalogFromSubscriptionAsync creates a new catalog by subscribing to a published catalog Parameter subscription needs to be filled manually

func (*AdminOrg) CreateCatalogWithStorageProfile

func (adminOrg *AdminOrg) CreateCatalogWithStorageProfile(name, description string, storageProfiles *types.CatalogStorageProfiles) (*AdminCatalog, error)

CreateCatalogWithStorageProfile is like CreateCatalog, but allows to specify storage profile

func (*AdminOrg) CreateGroup

func (adminOrg *AdminOrg) CreateGroup(group *types.Group) (*OrgGroup, error)

CreateGroup creates a group in Org. Supported provider types are `OrgUserProviderIntegrated` and `OrgUserProviderSAML`.

Note. This request will return HTTP 403 if Org is not configured for SAML or LDAP usage.

func (*AdminOrg) CreateNsxtEdgeGateway

func (adminOrg *AdminOrg) CreateNsxtEdgeGateway(edgeGatewayConfig *types.OpenAPIEdgeGateway) (*NsxtEdgeGateway, error)

CreateNsxtEdgeGateway allows to create NSX-T edge gateway for Org admins

func (*AdminOrg) CreateNsxtVdcGroup

func (adminOrg *AdminOrg) CreateNsxtVdcGroup(name, description, startingVdcId string, participatingVdcIds []string) (*VdcGroup, error)

CreateNsxtVdcGroup create NSX-T VDC group with provided VDC IDs. More generic creation method available also - CreateVdcGroup

func (*AdminOrg) CreateOrgVdc

func (adminOrg *AdminOrg) CreateOrgVdc(vdcConfiguration *types.VdcConfiguration) (*Vdc, error)

CreateOrgVdc creates a VDC with the given params under the given organization and waits for the asynchronous task to complete. Returns an AdminVdc pointer and an error.

func (*AdminOrg) CreateOrgVdcAsync

func (adminOrg *AdminOrg) CreateOrgVdcAsync(vdcConfiguration *types.VdcConfiguration) (Task, error)

CreateOrgVdcAsync creates a VDC with the given params under the given organization. Returns a Task and an error.

func (*AdminOrg) CreateRole

func (adminOrg *AdminOrg) CreateRole(newRole *types.Role) (*Role, error)

CreateRole creates a new role as a tenant administrator

func (*AdminOrg) CreateUser

func (adminOrg *AdminOrg) CreateUser(userConfiguration *types.User) (*OrgUser, error)

CreateUser creates an OrgUser from a full configuration structure The timeOut variable is the maximum time we wait for the user to be ready (This operation does not return a task) This function returns as soon as the user has been created, which could be as little as 200ms or as much as Client.MaxRetryTimeout Mandatory fields are: Name, Role, Password. https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/POST-CreateUser.html

func (*AdminOrg) CreateUserSimple

func (adminOrg *AdminOrg) CreateUserSimple(userData OrgUserConfiguration) (*OrgUser, error)

CreateUserSimple creates an org user from a simplified structure

func (*AdminOrg) CreateVdc

func (adminOrg *AdminOrg) CreateVdc(vdcConfiguration *types.VdcConfiguration) (Task, error)

CreateVdc creates a VDC with the given params under the given organization. Returns an AdminVdc. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-VdcConfiguration.html Deprecated in favor of adminOrg.CreateOrgVdcAsync

func (*AdminOrg) CreateVdcComputePolicy

func (org *AdminOrg) CreateVdcComputePolicy(newVdcComputePolicy *types.VdcComputePolicy) (*VdcComputePolicy, error)

CreateVdcComputePolicy creates a new VDC Compute Policy using OpenAPI endpoint Deprecated: use VCDClient.CreateVdcComputePolicyV2

func (*AdminOrg) CreateVdcGroup

func (adminOrg *AdminOrg) CreateVdcGroup(vdcGroup *types.VdcGroup) (*VdcGroup, error)

CreateVdcGroup create VDC group with provided VDC ref. Only supports NSX-T VDCs.

func (*AdminOrg) CreateVdcWait

func (adminOrg *AdminOrg) CreateVdcWait(vdcDefinition *types.VdcConfiguration) error

Creates the VDC and waits for the asynchronous task to complete. Deprecated in favor of adminOrg.CreateOrgVdc

func (*AdminOrg) Delete

func (adminOrg *AdminOrg) Delete(force bool, recursive bool) error

Deletes the org, returning an error if the vCD call fails. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Organization.html

func (*AdminOrg) DeleteMetadataEntry

func (adminOrg *AdminOrg) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes metadata of the corresponding organization with the given key, and waits for completion Deprecated: Use AdminOrg.DeleteMetadataEntryWithDomain instead

func (*AdminOrg) DeleteMetadataEntryAsync

func (adminOrg *AdminOrg) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes metadata of the corresponding organization with the given key, and returns a task. Deprecated: Use AdminOrg.DeleteMetadataEntryWithDomainAsync instead

func (*AdminOrg) DeleteMetadataEntryWithDomain

func (adminOrg *AdminOrg) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes AdminOrg metadata associated to the input key and waits for the task to finish.

func (*AdminOrg) DeleteMetadataEntryWithDomainAsync

func (adminOrg *AdminOrg) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes AdminOrg metadata associated to the input key and returns the task.

func (*AdminOrg) DeleteOpenIdConnectSettings

func (adminOrg *AdminOrg) DeleteOpenIdConnectSettings() error

DeleteOpenIdConnectSettings deletes the current OpenID Connect settings from a given Organization

func (*AdminOrg) Disable

func (adminOrg *AdminOrg) Disable() error

Disables the org. Returns an error if the call to vCD fails. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-DisableOrg.html

func (*AdminOrg) FetchUserByHref

func (adminOrg *AdminOrg) FetchUserByHref(href string) (*OrgUser, error)

FetchUserByHref returns a user by its HREF Deprecated: use GetUserByHref instead

func (*AdminOrg) FetchUserById

func (adminOrg *AdminOrg) FetchUserById(id string, refresh bool) (*OrgUser, error)

FetchUserById returns a user by its ID Deprecated: use GetUserById instead

func (*AdminOrg) FetchUserByName

func (adminOrg *AdminOrg) FetchUserByName(name string, refresh bool) (*OrgUser, error)

FetchUserByName returns a user by its Name Deprecated: use GetUserByName instead

func (*AdminOrg) FetchUserByNameOrId

func (adminOrg *AdminOrg) FetchUserByNameOrId(identifier string, refresh bool) (*OrgUser, error)

FetchUserById returns a user by its Name or ID Deprecated: use GetUserByNameOrId instead

func (*AdminOrg) FindAdminCatalog

func (adminOrg *AdminOrg) FindAdminCatalog(catalogName string) (AdminCatalog, error)

Given a valid catalog name, FindAdminCatalog returns an AdminCatalog object. If no catalog is found, then returns an empty AdminCatalog and no error. Otherwise it returns an error. Function allows user to use an AdminOrg to also fetch a Catalog. If user does not have proper credentials to perform administrator tasks then function returns an error. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/GET-Catalog-AdminView.html Deprecated: Use adminOrg.GetAdminCatalog instead

func (*AdminOrg) FindAdminCatalogRecords

func (adminOrg *AdminOrg) FindAdminCatalogRecords(name string) ([]*types.CatalogRecord, error)

FindAdminCatalogRecords uses catalog name to return AdminCatalogRecord information.

func (*AdminOrg) FindCatalog

func (adminOrg *AdminOrg) FindCatalog(catalogName string) (Catalog, error)

Given a valid catalog name, FindCatalog returns a Catalog object. If no catalog is found, then returns an empty catalog and no error. Otherwise it returns an error. Function allows user to use an AdminOrg to also fetch a Catalog. Deprecated: Use adminOrg.GetCatalogByName instead

func (*AdminOrg) FindCatalogRecords

func (adminOrg *AdminOrg) FindCatalogRecords(name string) ([]*types.CatalogRecord, error)

FindCatalogRecords given a catalog name, retrieves the catalogRecords for a given organization

func (*AdminOrg) GetAdminCatalogByHref

func (adminOrg *AdminOrg) GetAdminCatalogByHref(catalogHref string) (*AdminCatalog, error)

GetAdminCatalogByHref finds an AdminCatalog by HREF On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetAdminCatalogById

func (adminOrg *AdminOrg) GetAdminCatalogById(catalogId string, refresh bool) (*AdminCatalog, error)

GetCatalogById finds an AdminCatalog by ID On success, returns a pointer to the AdminCatalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetAdminCatalogByName

func (adminOrg *AdminOrg) GetAdminCatalogByName(catalogName string, refresh bool) (*AdminCatalog, error)

GetCatalogByName finds an AdminCatalog by Name On success, returns a pointer to the AdminCatalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetAdminCatalogByNameOrId

func (adminOrg *AdminOrg) GetAdminCatalogByNameOrId(identifier string, refresh bool) (*AdminCatalog, error)

GetAdminCatalogByNameOrId finds an AdminCatalog by name or ID On success, returns a pointer to the AdminCatalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetAdminVDCByHref

func (adminOrg *AdminOrg) GetAdminVDCByHref(vdcHref string) (*AdminVdc, error)

GetAdminVDCByHref retrieves a VDC using a direct call with the HREF

func (*AdminOrg) GetAdminVDCById

func (adminOrg *AdminOrg) GetAdminVDCById(vdcId string, refresh bool) (*AdminVdc, error)

GetAdminVDCById finds an Admin VDC by ID On success, returns a pointer to the AdminVdc structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetAdminVDCByName

func (adminOrg *AdminOrg) GetAdminVDCByName(vdcName string, refresh bool) (*AdminVdc, error)

GetAdminVDCByName finds an Admin VDC by Name On success, returns a pointer to the AdminVdc structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetAdminVDCByNameOrId

func (adminOrg *AdminOrg) GetAdminVDCByNameOrId(identifier string, refresh bool) (*AdminVdc, error)

GetAdminVDCByNameOrId finds an Admin VDC by Name Or ID On success, returns a pointer to the AdminVdc structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetAdminVdcByName

func (adminOrg *AdminOrg) GetAdminVdcByName(vdcname string) (AdminVdc, error)

GetAdminVdcByName function uses a valid VDC name and returns a admin VDC object. If no VDC is found, then it returns an empty VDC and no error. Otherwise it returns an empty VDC and an error. Deprecated: Use adminOrg.GetAdminVDCByName

func (*AdminOrg) GetAllCertificatesFromLibrary

func (adminOrg *AdminOrg) GetAllCertificatesFromLibrary(queryParameters url.Values) ([]*Certificate, error)

GetAllCertificatesFromLibrary r retrieves all available certificates from certificate library. Query parameters can be supplied to perform additional filtering

func (*AdminOrg) GetAllNsxtEdgeGateways

func (adminOrg *AdminOrg) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error)

GetAllNsxtEdgeGateways allows to retrieve all NSX-T edge gateways for Org Admins

func (*AdminOrg) GetAllNsxtVdcGroupCandidates

func (adminOrg *AdminOrg) GetAllNsxtVdcGroupCandidates(startingVdcId string, queryParameters url.Values) ([]*types.CandidateVdc, error)

GetAllNsxtVdcGroupCandidates returns NSXT candidate VDCs for VDC group

func (*AdminOrg) GetAllOpenApiOrgVdcNetworks

func (adminOrg *AdminOrg) GetAllOpenApiOrgVdcNetworks(queryParameters url.Values, multiSite bool) ([]*OpenApiOrgVdcNetwork, error)

GetAllOpenApiOrgVdcNetworks checks all Org VDC networks available to the current user When 'multiSite' is set, it will also check the networks available from associated organizations

func (*AdminOrg) GetAllRights

func (adminOrg *AdminOrg) GetAllRights(queryParameters url.Values) ([]*types.Right, error)

GetAllRights retrieves all available rights. Query parameters can be supplied to perform additional filtering

func (*AdminOrg) GetAllRightsCategories

func (adminOrg *AdminOrg) GetAllRightsCategories(queryParameters url.Values) ([]*types.RightsCategory, error)

GetAllRightsCategories retrieves all rights categories. Query parameters can be supplied to perform additional filtering

func (*AdminOrg) GetAllRoles

func (adminOrg *AdminOrg) GetAllRoles(queryParameters url.Values) ([]*Role, error)

GetAllRoles retrieves all roles as tenant user. Query parameters can be supplied to perform additional filtering

func (*AdminOrg) GetAllStorageProfileReferences

func (adminOrg *AdminOrg) GetAllStorageProfileReferences(refresh bool) ([]*types.Reference, error)

GetAllStorageProfileReferences traverses all depending VDCs and returns a slice of storage profile references available in those VDCs

func (*AdminOrg) GetAllVDCs

func (adminOrg *AdminOrg) GetAllVDCs(refresh bool) ([]*Vdc, error)

GetAllVDCs returns all depending VDCs for a particular Org

func (*AdminOrg) GetAllVdcComputePolicies

func (org *AdminOrg) GetAllVdcComputePolicies(queryParameters url.Values) ([]*VdcComputePolicy, error)

GetAllVdcComputePolicies retrieves all VDC compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering Deprecated: use VCDClient.GetAllVdcComputePoliciesV2

func (*AdminOrg) GetAllVdcGroupCandidates

func (adminOrg *AdminOrg) GetAllVdcGroupCandidates(queryParameters url.Values) ([]*types.CandidateVdc, error)

GetAllVdcGroupCandidates returns candidate VDCs for VDC group

func (*AdminOrg) GetAllVdcGroups

func (adminOrg *AdminOrg) GetAllVdcGroups(queryParameters url.Values) ([]*VdcGroup, error)

GetAllVdcGroups retrieves all VDC groups. Query parameters can be supplied to perform additional filtering

func (*AdminOrg) GetAnyTypeEdgeGatewayById

func (adminOrg *AdminOrg) GetAnyTypeEdgeGatewayById(id string) (*AnyTypeEdgeGateway, error)

GetNsxtEdgeGatewayById allows retrieving NSX-T or NSX-V Edge Gateway by ID for Org admins

func (*AdminOrg) GetCatalogAccessControl

func (org *AdminOrg) GetCatalogAccessControl(catalogIdentifier string, useTenantContext bool) (*types.ControlAccessParams, error)

GetCatalogAccessControl is a convenience method to retrieve access control for a catalog from an organization. The input variable catalogIdentifier can be either the catalog name or its ID

func (*AdminOrg) GetCatalogByHref

func (adminOrg *AdminOrg) GetCatalogByHref(catalogHref string) (*Catalog, error)

GetCatalogByHref finds a Catalog by HREF On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetCatalogById

func (adminOrg *AdminOrg) GetCatalogById(catalogId string, refresh bool) (*Catalog, error)

GetCatalogById finds a Catalog by ID On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetCatalogByName

func (adminOrg *AdminOrg) GetCatalogByName(catalogName string, refresh bool) (*Catalog, error)

GetCatalogByName finds a Catalog by Name On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetCatalogByNameOrId

func (adminOrg *AdminOrg) GetCatalogByNameOrId(identifier string, refresh bool) (*Catalog, error)

GetCatalogByNameOrId finds a Catalog by name or ID On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetCertificateFromLibraryById

func (adminOrg *AdminOrg) GetCertificateFromLibraryById(id string) (*Certificate, error)

GetCertificateFromLibraryById Returns certificate from library of certificates from Org context

func (*AdminOrg) GetCertificateFromLibraryByName

func (adminOrg *AdminOrg) GetCertificateFromLibraryByName(name string) (*Certificate, error)

GetCertificateFromLibraryByName retrieves certificate from certificate library by given name

func (*AdminOrg) GetFederationSettings

func (adminOrg *AdminOrg) GetFederationSettings() (*types.OrgFederationSettings, error)

GetFederationSettings retrieves the current federation (SAML) settings for a given organization

func (*AdminOrg) GetGroupByHref

func (adminOrg *AdminOrg) GetGroupByHref(href string) (*OrgGroup, error)

GetGroupByHref retrieves group by HREF

func (*AdminOrg) GetGroupById

func (adminOrg *AdminOrg) GetGroupById(id string, refresh bool) (*OrgGroup, error)

GetGroupById retrieves group by Id

func (*AdminOrg) GetGroupByName

func (adminOrg *AdminOrg) GetGroupByName(name string, refresh bool) (*OrgGroup, error)

GetGroupByName retrieves group by Name

func (*AdminOrg) GetGroupByNameOrId

func (adminOrg *AdminOrg) GetGroupByNameOrId(identifier string, refresh bool) (*OrgGroup, error)

GetGroupByNameOrId retrieves group by Name or Id. Id is prioritized for search

func (*AdminOrg) GetLdapConfiguration

func (adminOrg *AdminOrg) GetLdapConfiguration() (*types.OrgLdapSettingsType, error)

GetLdapConfiguration retrieves LDAP configuration structure

func (*AdminOrg) GetMetadata

func (adminOrg *AdminOrg) GetMetadata() (*types.Metadata, error)

GetMetadata returns the AdminOrg metadata of the corresponding organization seen as administrator

func (*AdminOrg) GetMetadataByKey

func (adminOrg *AdminOrg) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns the AdminOrg metadata corresponding to the given key and domain. Note: Requires system administrator privileges.

func (*AdminOrg) GetNsxtEdgeGatewayById

func (adminOrg *AdminOrg) GetNsxtEdgeGatewayById(id string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayById allows retrieving NSX-T edge gateway by ID for Org admins

func (*AdminOrg) GetNsxtEdgeGatewayByName

func (adminOrg *AdminOrg) GetNsxtEdgeGatewayByName(name string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayByName allows retrieving NSX-T edge gateway by Name for Org admins

func (*AdminOrg) GetOpenIdConnectSettings

func (adminOrg *AdminOrg) GetOpenIdConnectSettings() (*types.OrgOAuthSettings, error)

GetOpenIdConnectSettings retrieves the current OpenID Connect settings for a given Organization

func (AdminOrg) GetOrgAssociationByOrgId

func (org AdminOrg) GetOrgAssociationByOrgId(orgId string) (*types.OrgAssociationMember, error)

GetOrgAssociationByOrgId retrieves a single Org association by the ID of the associated Org Note that there could be only one association between two organization

func (AdminOrg) GetOrgAssociationData

func (org AdminOrg) GetOrgAssociationData() (*types.OrgAssociationMember, error)

GetOrgAssociationData retrieves the structured data needed to start an association with another Org This is useful when we have control of both Orgs from the same client

func (AdminOrg) GetOrgAssociations

func (org AdminOrg) GetOrgAssociations() ([]*types.OrgAssociationMember, error)

GetOrgAssociations retrieves all associations available for the given Org

func (AdminOrg) GetOrgRawAssociationData

func (org AdminOrg) GetOrgRawAssociationData() ([]byte, error)

GetOrgRawAssociationData retrieves the raw (XML) data needed to start an association with another Org This is useful when we want to save this data to a file for future use

func (*AdminOrg) GetRightById

func (adminOrg *AdminOrg) GetRightById(id string) (*types.Right, error)

func (*AdminOrg) GetRightByName

func (adminOrg *AdminOrg) GetRightByName(name string) (*types.Right, error)

GetRightByName retrieves right by given name

func (*AdminOrg) GetRightsCategoryById

func (adminOrg *AdminOrg) GetRightsCategoryById(id string) (*types.RightsCategory, error)

GetRightsCategoryById retrieves a rights category from its ID

func (*AdminOrg) GetRoleById

func (adminOrg *AdminOrg) GetRoleById(id string) (*Role, error)

GetRoleById retrieves role by given ID

func (*AdminOrg) GetRoleByName

func (adminOrg *AdminOrg) GetRoleByName(name string) (*Role, error)

GetRoleByName retrieves role by given name

func (*AdminOrg) GetRoleReference

func (adminOrg *AdminOrg) GetRoleReference(roleName string) (*types.Reference, error)

GetRoleReference finds a role within the organization

func (*AdminOrg) GetServiceProviderSamlMetadata

func (adminOrg *AdminOrg) GetServiceProviderSamlMetadata() (*types.VcdSamlMetadata, error)

GetServiceProviderSamlMetadata retrieves the service provider SAML metadata of the given Org

func (*AdminOrg) GetStorageProfileReferenceById

func (adminOrg *AdminOrg) GetStorageProfileReferenceById(id string, refresh bool) (*types.Reference, error)

GetStorageProfileReferenceById finds storage profile reference by specified ID in Org or returns ErrorEntityNotFound

func (*AdminOrg) GetUserByHref

func (adminOrg *AdminOrg) GetUserByHref(href string) (*OrgUser, error)

GetUserByHref returns a user by its HREF, without need for searching in the adminOrg user list

func (*AdminOrg) GetUserById

func (adminOrg *AdminOrg) GetUserById(id string, refresh bool) (*OrgUser, error)

GetUserById retrieves a user within an admin organization by ID Returns a valid user if it exists. If it doesn't, returns nil and ErrorEntityNotFound If argument refresh is true, the AdminOrg will be refreshed before searching. This is usually done after creating, modifying, or deleting users. If it is false, it will search within the data already in memory (useful when looping through the users and we know that no changes have occurred in the meantime)

func (*AdminOrg) GetUserByName

func (adminOrg *AdminOrg) GetUserByName(name string, refresh bool) (*OrgUser, error)

GetUserByName retrieves a user within an admin organization by name Returns a valid user if it exists. If it doesn't, returns nil and ErrorEntityNotFound If argument refresh is true, the AdminOrg will be refreshed before searching. This is usually done after creating, modifying, or deleting users. If it is false, it will search within the data already in memory (useful when looping through the users and we know that no changes have occurred in the meantime)

func (*AdminOrg) GetUserByNameOrId

func (adminOrg *AdminOrg) GetUserByNameOrId(identifier string, refresh bool) (*OrgUser, error)

GetUserByNameOrId retrieves a user within an admin organization by either name or ID Returns a valid user if it exists. If it doesn't, returns nil and ErrorEntityNotFound If argument refresh is true, the AdminOrg will be refreshed before searching. This is usually done after creating, modifying, or deleting users. If it is false, it will search within the data already in memory (useful when looping through the users and we know that no changes have occurred in the meantime)

func (*AdminOrg) GetVDCByHref

func (adminOrg *AdminOrg) GetVDCByHref(vdcHref string) (*Vdc, error)

GetVDCByHref retrieves a VDC using a direct call with the HREF

func (*AdminOrg) GetVDCById

func (adminOrg *AdminOrg) GetVDCById(vdcId string, refresh bool) (*Vdc, error)

GetVDCById finds a VDC by ID On success, returns a pointer to the Vdc structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetVDCByName

func (adminOrg *AdminOrg) GetVDCByName(vdcName string, refresh bool) (*Vdc, error)

GetVDCByName finds a VDC by Name On success, returns a pointer to the Vdc structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetVDCByNameOrId

func (adminOrg *AdminOrg) GetVDCByNameOrId(identifier string, refresh bool) (*Vdc, error)

GetVDCByNameOrId finds a VDC by name or ID On success, returns a pointer to the VDC structure and a nil error On failure, returns a nil pointer and an error

func (*AdminOrg) GetVdcByName

func (adminOrg *AdminOrg) GetVdcByName(vdcname string) (Vdc, error)

If user specifies valid vdc name then this returns a vdc object. If no vdc is found, then it returns an empty vdc and no error. Otherwise it returns an empty vdc and an error. This function allows users to use an AdminOrg to fetch a vdc as well. Deprecated: Use adminOrg.GetVDCByName instead

func (*AdminOrg) GetVdcComputePolicyById

func (org *AdminOrg) GetVdcComputePolicyById(id string) (*VdcComputePolicy, error)

GetVdcComputePolicyById retrieves VDC compute policy by given ID Deprecated: use VCDClient.GetVdcComputePolicyV2ById

func (*AdminOrg) GetVdcGroupById

func (adminOrg *AdminOrg) GetVdcGroupById(id string) (*VdcGroup, error)

GetVdcGroupById Returns VDC group using provided ID

func (*AdminOrg) GetVdcGroupByName

func (adminOrg *AdminOrg) GetVdcGroupByName(name string) (*VdcGroup, error)

GetVdcGroupByName retrieves VDC group by given name When the name contains commas, semicolons or asterisks, the encoding is rejected by the API in VCD. For this reason, when one or more commas, semicolons or asterisks are present we run the search brute force, by fetching all VDC groups and comparing the names. Also, url.QueryEscape as well as url.Values.Encode() both encode the space as a + character. So we use search brute force too. Reference to issue: https://github.com/golang/go/issues/4013 https://github.com/czos/goamz/pull/11/files

func (*AdminOrg) LdapConfigure

func (adminOrg *AdminOrg) LdapConfigure(settings *types.OrgLdapSettingsType) (*types.OrgLdapSettingsType, error)

LdapConfigure allows to configure LDAP mode in use by the Org

func (*AdminOrg) LdapDisable

func (adminOrg *AdminOrg) LdapDisable() error

LdapDisable wraps LdapConfigure to disable LDAP configuration for org

func (*AdminOrg) MergeMetadata

func (adminOrg *AdminOrg) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges AdminOrg metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use AdminOrg.MergeMetadataWithMetadataValues

func (*AdminOrg) MergeMetadataAsync

func (adminOrg *AdminOrg) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges AdminOrg metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use AdminOrg.MergeMetadataWithMetadataValuesAsync

func (*AdminOrg) MergeMetadataWithMetadataValues

func (adminOrg *AdminOrg) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver AdminOrg and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*AdminOrg) MergeMetadataWithMetadataValuesAsync

func (adminOrg *AdminOrg) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges AdminOrg metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*AdminOrg) QueryCatalogList

func (adminOrg *AdminOrg) QueryCatalogList() ([]*types.CatalogRecord, error)

QueryCatalogList returns a list of catalogs for this organization

func (*AdminOrg) Refresh

func (adminOrg *AdminOrg) Refresh() error

Given an adminorg with a valid HREF, the function refetches the adminorg and updates the user's adminorg data. Otherwise if the function fails, it returns an error. Users should use refresh whenever they have a stale org due to the creation/update/deletion of a resource within the org or the org itself.

func (*AdminOrg) RemoveOrgAssociation

func (org *AdminOrg) RemoveOrgAssociation(associationHref string) error

RemoveOrgAssociation removes an Org association, waiting for completion

func (*AdminOrg) RemoveOrgAssociationAsync

func (org *AdminOrg) RemoveOrgAssociationAsync(associationHref string) (Task, error)

RemoveOrgAssociationAsync removes an Org association without waiting for completion

func (*AdminOrg) RetrieveServiceProviderSamlMetadata

func (adminOrg *AdminOrg) RetrieveServiceProviderSamlMetadata() (string, error)

RetrieveServiceProviderSamlMetadata retrieves the SAML metadata of the given Org

func (*AdminOrg) SearchByFilter

func (org *AdminOrg) SearchByFilter(queryType string, criteria *FilterDef) ([]QueryItem, string, error)

SearchByFilter runs the search for a specific Org

func (*AdminOrg) SetFederationSettings

func (adminOrg *AdminOrg) SetFederationSettings(settings *types.OrgFederationSettings) (*types.OrgFederationSettings, error)

SetFederationSettings creates or replaces federation (SAML) settings for a given organization

func (*AdminOrg) SetOpenIdConnectSettings

func (adminOrg *AdminOrg) SetOpenIdConnectSettings(settings types.OrgOAuthSettings) (*types.OrgOAuthSettings, error)

SetOpenIdConnectSettings sets the OpenID Connect configuration for a given Organization. If the well-known configuration endpoint is provided, the configuration is automatically retrieved from that URL. If other fields have been set in the input structure, the corresponding values retrieved from the well-known endpoint are overridden. If there are no fields set, the configuration retrieved from the well-known configuration endpoint is applied as-is. ClientId and ClientSecret properties are always mandatory, with and without well-known endpoint. This method returns an error if the settings can't be saved in VCD for any reason or if the provided settings are wrong.

func (*AdminOrg) SetOrgAssociation

func (org *AdminOrg) SetOrgAssociation(associationData types.OrgAssociationMember) error

SetOrgAssociation sets a new Org association, waiting for completion

func (*AdminOrg) SetOrgAssociationAsync

func (org *AdminOrg) SetOrgAssociationAsync(associationData types.OrgAssociationMember) (Task, error)

SetOrgAssociationAsync sets a new Org association without waiting for completion

func (*AdminOrg) UnsetFederationSettings

func (adminOrg *AdminOrg) UnsetFederationSettings() error

UnsetFederationSettings removes federation (SAML) settings for a given organization

func (*AdminOrg) Update

func (adminOrg *AdminOrg) Update() (Task, error)

Updates the Org definition from current org struct contents. Any differences that may be legally applied will be updated. Returns an error if the call to vCD fails. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/PUT-Organization.html

type AdminVdc

type AdminVdc struct {
	AdminVdc *types.AdminVdc
	// contains filtered or unexported fields
}

func NewAdminVdc

func NewAdminVdc(cli *Client) *AdminVdc

func (*AdminVdc) AddMetadataEntry

func (adminVdc *AdminVdc) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds VDC metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use AdminVdc.AddMetadataEntryWithVisibility instead

func (*AdminVdc) AddMetadataEntryAsync

func (adminVdc *AdminVdc) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds AdminVdc metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use AdminVdc.AddMetadataEntryWithVisibilityAsync instead

func (*AdminVdc) AddMetadataEntryWithVisibility

func (adminVdc *AdminVdc) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver AdminVdc and waits for the task to finish.

func (*AdminVdc) AddMetadataEntryWithVisibilityAsync

func (adminVdc *AdminVdc) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given AdminVdc with the given key, value, type and visibility and returns the task.

func (*AdminVdc) AddStorageProfile

func (vdc *AdminVdc) AddStorageProfile(storageProfile *types.VdcStorageProfileConfiguration, description string) (Task, error)

AddStorageProfile adds a storage profile to a VDC

func (*AdminVdc) AddStorageProfileWait

func (vdc *AdminVdc) AddStorageProfileWait(storageProfile *types.VdcStorageProfileConfiguration, description string) error

AddStorageProfileWait adds a storage profile to a VDC and return a refreshed VDC

func (*AdminVdc) DeleteMetadataEntry

func (adminVdc *AdminVdc) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes AdminVdc metadata by key provided as input and waits for the task to finish. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.DeleteMetadataEntryWithDomain

func (*AdminVdc) DeleteMetadataEntryAsync

func (adminVdc *AdminVdc) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes VDC metadata depending on key provided as input and returns the task. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.DeleteMetadataEntryWithDomainAsync

func (*AdminVdc) DeleteMetadataEntryWithDomain

func (adminVdc *AdminVdc) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes AdminVdc metadata associated to the input key and waits for the task to finish. Note: Requires system administrator privileges.

func (*AdminVdc) DeleteMetadataEntryWithDomainAsync

func (adminVdc *AdminVdc) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes AdminVdc metadata associated to the input key and returns the task.

func (*AdminVdc) DeleteVdcNetworkProfile

func (adminVdc *AdminVdc) DeleteVdcNetworkProfile() error

DeleteVdcNetworkProfile deletes VDC Network Profile Configuration

func (*AdminVdc) GetAllAssignedVdcComputePolicies

func (vdc *AdminVdc) GetAllAssignedVdcComputePolicies(queryParameters url.Values) ([]*VdcComputePolicy, error)

GetAllAssignedVdcComputePolicies retrieves all VDC assigned compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering Deprecated: use AdminVdc.GetAllAssignedVdcComputePoliciesV2

func (*AdminVdc) GetAllAssignedVdcComputePoliciesV2

func (vdc *AdminVdc) GetAllAssignedVdcComputePoliciesV2(queryParameters url.Values) ([]*VdcComputePolicyV2, error)

GetAllAssignedVdcComputePoliciesV2 retrieves all VDC assigned Compute Policies (V2) using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering

func (*AdminVdc) GetDefaultStorageProfileReference

func (adminVdc *AdminVdc) GetDefaultStorageProfileReference() (*types.Reference, error)

GetDefaultStorageProfileReference finds the default storage profile for the VDC

func (*AdminVdc) GetMetadata

func (adminVdc *AdminVdc) GetMetadata() (*types.Metadata, error)

GetMetadata returns AdminVdc metadata.

func (*AdminVdc) GetMetadataByKey

func (adminVdc *AdminVdc) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns AdminVdc metadata corresponding to the given key and domain.

func (*AdminVdc) GetVappList

func (vdc *AdminVdc) GetVappList() []*types.ResourceReference

GetVappList returns the list of vApps for an Admin VDC

func (*AdminVdc) GetVdcNetworkProfile

func (adminVdc *AdminVdc) GetVdcNetworkProfile() (*types.VdcNetworkProfile, error)

GetVdcNetworkProfile retrieves VDC Network Profile configuration vdc.Vdc.ID must be set and valid present

func (*AdminVdc) IsNsxv

func (adminVdc *AdminVdc) IsNsxv() bool

IsNsxv is a convenience function to check if the Admin VDC is backed by NSX-V Provider VDC

func (*AdminVdc) MergeMetadata

func (adminVdc *AdminVdc) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges AdminVdc metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use AdminVdc.MergeMetadataWithMetadataValues

func (*AdminVdc) MergeMetadataAsync

func (adminVdc *AdminVdc) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges AdminVdc metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use AdminVdc.MergeMetadataWithMetadataValuesAsync

func (*AdminVdc) MergeMetadataWithMetadataValues

func (adminVdc *AdminVdc) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver AdminVdc and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*AdminVdc) MergeMetadataWithMetadataValuesAsync

func (adminVdc *AdminVdc) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges AdminVdc metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*AdminVdc) QueryCatalogItemList

func (vdc *AdminVdc) QueryCatalogItemList() ([]*types.QueryResultCatalogItemType, error)

QueryCatalogItemList returns a list of Catalog Item for the given Admin VDC

func (*AdminVdc) QueryCompatibleStorageProfiles

func (adminVdc *AdminVdc) QueryCompatibleStorageProfiles() ([]*types.QueryResultProviderVdcStorageProfileRecordType, error)

QueryCompatibleStorageProfiles retrieves all storage profiles belonging to the same provider VDC to which the Org VDC belongs

func (*AdminVdc) QueryVappTemplateList

func (vdc *AdminVdc) QueryVappTemplateList() ([]*types.QueryResultVappTemplateType, error)

QueryVappTemplateList returns a list of vApp templates for the given VDC

func (*AdminVdc) QueryVappTemplateWithName

func (vdc *AdminVdc) QueryVappTemplateWithName(vAppTemplateName string) (*types.QueryResultVappTemplateType, error)

QueryVappTemplateWithName returns one vApp template for the given VDC with the given name. Returns an error if it finds more than one.

func (*AdminVdc) Refresh

func (adminVdc *AdminVdc) Refresh() error

Given an adminVdc with a valid HREF, the function refresh the adminVdc and updates the adminVdc data. Returns an error on failure Users should use refresh whenever they suspect a stale VDC due to the creation/update/deletion of a resource within the the VDC itself.

func (*AdminVdc) RemoveStorageProfile

func (vdc *AdminVdc) RemoveStorageProfile(storageProfileName string) (Task, error)

RemoveStorageProfile remove a storage profile from a VDC

func (*AdminVdc) RemoveStorageProfileWait

func (vdc *AdminVdc) RemoveStorageProfileWait(storageProfileName string) error

RemoveStorageProfileWait removes a storege profile from a VDC and returns a refreshed VDC or an error

func (*AdminVdc) SetAssignedComputePolicies

func (vdc *AdminVdc) SetAssignedComputePolicies(computePolicyReferences types.VdcComputePolicyReferences) (*types.VdcComputePolicyReferences, error)

SetAssignedComputePolicies assign(set) Compute Policies to the receiver VDC.

func (*AdminVdc) SetDefaultStorageProfile

func (vdc *AdminVdc) SetDefaultStorageProfile(storageProfileName string) error

SetDefaultStorageProfile sets a given storage profile as default This operation will automatically unset the previous default storage profile.

func (*AdminVdc) Update

func (adminVdc *AdminVdc) Update() (AdminVdc, error)

Update function updates an Admin VDC from current VDC struct contents. Any differences that may be legally applied will be updated. Returns an empty AdminVdc struct and error if the call to vCD fails. API Documentation: https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/operations/PUT-Vdc.html

func (*AdminVdc) UpdateAsync

func (adminVdc *AdminVdc) UpdateAsync() (Task, error)

UpdateAsync updates VDC from current VDC struct contents. Any differences that may be legally applied will be updated. Returns an error if the call to vCD fails. API Documentation: https://vdc-repo.vmware.com/vmwb-repository/dcr-public/7a028e78-bd37-4a6a-8298-9c26c7eeb9aa/09142237-dd46-4dee-8326-e07212fb63a8/doc/doc/operations/PUT-Vdc.html

func (*AdminVdc) UpdateStorageProfile

func (vdc *AdminVdc) UpdateStorageProfile(storageProfileId string, storageProfile *types.AdminVdcStorageProfile) (*types.AdminVdcStorageProfile, error)

UpdateStorageProfile updates VDC storage profile and returns refreshed VDC or error.

func (*AdminVdc) UpdateVdcNetworkProfile

func (adminVdc *AdminVdc) UpdateVdcNetworkProfile(vdcNetworkProfileConfig *types.VdcNetworkProfile) (*types.VdcNetworkProfile, error)

UpdateVdcNetworkProfile updates the VDC Network Profile configuration

type AnyTypeEdgeGateway

type AnyTypeEdgeGateway struct {
	EdgeGateway *types.OpenAPIEdgeGateway
	// contains filtered or unexported fields
}

AnyTypeEdgeGateway is a common structure which fetches any type of Edge Gateway (NSX-T or NSX-V) using OpenAPI endpoint. It can be useful to identify type of Edge Gateway or just retrieve common fields - like OwnerRef. There is also a function GetNsxtEdgeGateway to convert it to NsxtEdgeGateway (if it is an NSX-T one)

func (*AnyTypeEdgeGateway) GetNsxtEdgeGateway

func (anyTypeGateway *AnyTypeEdgeGateway) GetNsxtEdgeGateway() (*NsxtEdgeGateway, error)

GetNsxtEdgeGateway converts `AnyTypeEdgeGateway` to `NsxtEdgeGateway` if it is an NSX-T one

func (*AnyTypeEdgeGateway) IsNsxt

func (anyTypeGateway *AnyTypeEdgeGateway) IsNsxt() bool

IsNsxt checks if Edge Gateways is NSX-T backed

func (*AnyTypeEdgeGateway) IsNsxv

func (anyTypeGateway *AnyTypeEdgeGateway) IsNsxv() bool

IsNsxv checks if Edge Gateways is NSX-V backed

type ApiFilter

type ApiFilter struct {
	ApiFilter *types.ApiFilter
	// contains filtered or unexported fields
}

ApiFilter is a type for handling API Filters.

func (*ApiFilter) Delete

func (ApiFilter *ApiFilter) Delete() error

Delete deletes the receiver API Filter.

func (*ApiFilter) Update

func (ApiFilter *ApiFilter) Update(ep types.ApiFilter) error

Update updates the receiver API Filter with the values given by the input.

type Catalog

type Catalog struct {
	Catalog *types.Catalog
	// contains filtered or unexported fields
}

func NewCatalog

func NewCatalog(client *Client) *Catalog

func (*Catalog) CaptureVappTemplate

func (cat *Catalog) CaptureVappTemplate(captureParams *types.CaptureVAppParams) (*VAppTemplate, error)

CaptureVappTemplate captures a vApp template from an existing vApp

func (*Catalog) CaptureVappTemplateAsync

func (cat *Catalog) CaptureVappTemplateAsync(captureParams *types.CaptureVAppParams) (Task, error)

CaptureVappTemplateAsync triggers vApp template capturing task and returns it

Note. If 'CaptureVAppParams.CopyTpmOnInstantiate' is set, it will be unset for VCD versions before 10.4.2 as it would break API call

func (*Catalog) Delete

func (catalog *Catalog) Delete(force, recursive bool) error

Delete deletes the Catalog, returning an error if the vCD call fails. Link to API call: https://code.vmware.com/apis/1046/vmware-cloud-director/doc/doc/operations/DELETE-Catalog.html

func (*Catalog) FindCatalogItem

func (cat *Catalog) FindCatalogItem(catalogItemName string) (CatalogItem, error)

If catalog item is a valid CatalogItem and the call succeeds, then the function returns a CatalogItem. If the item does not exist, then it returns an empty CatalogItem. If the call fails at any point, it returns an error. Deprecated: use GetCatalogItemByName instead

func (Catalog) GetAccessControl

func (catalog Catalog) GetAccessControl(useTenantContext bool) (*types.ControlAccessParams, error)

GetAccessControl retrieves the access control information for this catalog

func (*Catalog) GetCatalogItemByHref

func (cat *Catalog) GetCatalogItemByHref(catalogItemHref string) (*CatalogItem, error)

GetCatalogItemByHref finds a CatalogItem by HREF On success, returns a pointer to the CatalogItem structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetCatalogItemById

func (cat *Catalog) GetCatalogItemById(catalogItemId string, refresh bool) (*CatalogItem, error)

GetCatalogItemById finds a Catalog Item by ID On success, returns a pointer to the CatalogItem structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetCatalogItemByName

func (cat *Catalog) GetCatalogItemByName(catalogItemName string, refresh bool) (*CatalogItem, error)

GetCatalogItemByName finds a CatalogItem by Name On success, returns a pointer to the CatalogItem structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetCatalogItemByNameOrId

func (cat *Catalog) GetCatalogItemByNameOrId(identifier string, refresh bool) (*CatalogItem, error)

GetCatalogItemByNameOrId finds a Catalog Item by Name or ID. On success, returns a pointer to the CatalogItem structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetMediaByHref

func (cat *Catalog) GetMediaByHref(mediaHref string) (*Media, error)

GetMediaByHref finds a Media by HREF On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetMediaById

func (catalog *Catalog) GetMediaById(mediaId string) (*Media, error)

GetMediaById finds a Media by ID On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetMediaByName

func (cat *Catalog) GetMediaByName(mediaName string, refresh bool) (*Media, error)

GetMediaByName finds a Media by Name On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetMediaByNameOrId

func (cat *Catalog) GetMediaByNameOrId(identifier string, refresh bool) (*Media, error)

GetMediaByNameOrId finds a Media by Name or ID On success, returns a pointer to the Media structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetMetadata

func (catalog *Catalog) GetMetadata() (*types.Metadata, error)

GetMetadata returns Catalog metadata.

func (*Catalog) GetMetadataByKey

func (catalog *Catalog) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns Catalog metadata corresponding to the given key and domain.

func (*Catalog) GetVAppTemplateById

func (cat *Catalog) GetVAppTemplateById(vAppTemplateId string) (*VAppTemplate, error)

GetVAppTemplateById finds a vApp Template by ID. On success, returns a pointer to the VAppTemplate structure and a nil error. On failure, returns a nil pointer and an error.

func (*Catalog) GetVAppTemplateByName

func (cat *Catalog) GetVAppTemplateByName(vAppTemplateName string) (*VAppTemplate, error)

GetVAppTemplateByName finds a VAppTemplate by Name On success, returns a pointer to the VAppTemplate structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetVAppTemplateByNameOrId

func (cat *Catalog) GetVAppTemplateByNameOrId(identifier string, refresh bool) (*VAppTemplate, error)

GetVAppTemplateByNameOrId finds a vApp Template by Name or ID. On success, returns a pointer to the VAppTemplate structure and a nil error On failure, returns a nil pointer and an error

func (*Catalog) GetVappTemplateByHref

func (cat *Catalog) GetVappTemplateByHref(href string) (*VAppTemplate, error)

GetVappTemplateByHref finds a vApp template by HREF On success, returns a pointer to the vApp template structure and a nil error On failure, returns a nil pointer and an error

func (Catalog) IsShared

func (catalog Catalog) IsShared(useTenantContext bool) (bool, error)

IsShared shows whether a catalog is shared or not, regardless of the number of subjects sharing it

func (*Catalog) IsSharedReadOnly

func (cat *Catalog) IsSharedReadOnly() (bool, error)

IsSharedReadOnly returns the state of the catalog read-only sharing to all organizations

func (*Catalog) PublishToExternalOrganizations

func (cat *Catalog) PublishToExternalOrganizations(publishExternalCatalog types.PublishExternalCatalogParams) error

PublishToExternalOrganizations publishes a catalog to external organizations.

func (*Catalog) QueryCatalogItemList

func (catalog *Catalog) QueryCatalogItemList() ([]*types.QueryResultCatalogItemType, error)

QueryCatalogItemList returns a list of Catalog Item for the given catalog

func (*Catalog) QueryMedia

func (catalog *Catalog) QueryMedia(mediaName string) (*MediaRecord, error)

QueryMedia returns media image found in system using `name` and `catalog name` as query.

func (*Catalog) QueryMediaList

func (catalog *Catalog) QueryMediaList() ([]*types.MediaRecordType, error)

QueryMediaList retrieves a list of media items for the catalog

func (*Catalog) QueryTaskList

func (catalog *Catalog) QueryTaskList(filter map[string]string) ([]*types.QueryResultTaskRecordType, error)

QueryTaskList retrieves a list of tasks associated to the Catalog

func (*Catalog) QueryVappTemplateList

func (catalog *Catalog) QueryVappTemplateList() ([]*types.QueryResultVappTemplateType, error)

QueryVappTemplateList returns a list of vApp templates for the given catalog

func (*Catalog) QueryVappTemplateWithName

func (catalog *Catalog) QueryVappTemplateWithName(vAppTemplateName string) (*types.QueryResultVappTemplateType, error)

QueryVappTemplateWithName returns one vApp template for the given Catalog with the given name. Returns an error if it finds more than one.

func (*Catalog) Refresh

func (cat *Catalog) Refresh() error

Refresh gets a fresh copy of the catalog from vCD

func (Catalog) RemoveAccessControl

func (catalog Catalog) RemoveAccessControl(useTenantContext bool) error

RemoveAccessControl is a shortcut to SetAccessControl with all access disabled

func (*Catalog) SearchByFilter

func (catalog *Catalog) SearchByFilter(queryType, parentField string, criteria *FilterDef) ([]QueryItem, string, error)

SearchByFilter runs the search for a specific catalog The 'parentField' argument defines which filter will be added, depending on the items we search for:

  • 'catalog' contains the catalog HREF or ID
  • 'catalogName' contains the catalog name

func (Catalog) SetAccessControl

func (catalog Catalog) SetAccessControl(accessControl *types.ControlAccessParams, useTenantContext bool) error

SetAccessControl changes the access control information for this catalog

func (*Catalog) SetReadOnlyAccessControl

func (cat *Catalog) SetReadOnlyAccessControl(isPublished bool) error

SetReadOnlyAccessControl will create or rescind the read-only catalog sharing to all organizations

func (*Catalog) UploadMediaFile

func (cat *Catalog) UploadMediaFile(fileName, mediaDescription, filePath string, uploadPieceSize int64, checkFileIsIso bool) (UploadTask, error)

UploadMediaFile uploads any file to the catalog. However, if checkFileIsIso is true, only .ISO are allowed.

func (*Catalog) UploadMediaImage

func (cat *Catalog) UploadMediaImage(mediaName, mediaDescription, filePath string, uploadPieceSize int64) (UploadTask, error)

UploadMediaImage uploads a media image to the catalog

func (*Catalog) UploadOvf

func (cat *Catalog) UploadOvf(ovaFileName, itemName, description string, uploadPieceSize int64) (UploadTask, error)

UploadOvf uploads an ova/ovf file to a catalog. This method only uploads bits to vCD spool area. ovaFileName should be the path of OVA or OVF file(not ovf folder) itself. For OVF, user need to make sure all the files that OVF depends on exist and locate under the same folder. Returns errors if any occur during upload from vCD or upload process. On upload fail client may need to remove vCD catalog item which waits for files to be uploaded. Files from ova are extracted to system temp folder "govcd+random number" and left for inspection on error.

func (cat *Catalog) UploadOvfByLink(ovfUrl, itemName, description string) (Task, error)

UploadOvfByLink uploads an OVF file to a catalog from remote URL. Returns errors if any occur during upload from VCD or upload process. On upload fail client may need to remove VCD catalog item which is in failed state.

func (*Catalog) WaitForTasks

func (cat *Catalog) WaitForTasks() error

WaitForTasks waits for the catalog's tasks to complete

type CatalogItem

type CatalogItem struct {
	CatalogItem *types.CatalogItem
	// contains filtered or unexported fields
}

func FindMediaAsCatalogItem

func FindMediaAsCatalogItem(org *Org, catalogName, mediaName string) (CatalogItem, error)

Finds media in catalog and returns catalog item Deprecated: Use catalog.GetMediaByName()

func NewCatalogItem

func NewCatalogItem(cli *Client) *CatalogItem

func (*CatalogItem) AddMetadataEntry

func (catalogItem *CatalogItem) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds CatalogItem metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use CatalogItem.AddMetadataEntryWithVisibility instead

func (*CatalogItem) AddMetadataEntryAsync

func (catalogItem *CatalogItem) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds CatalogItem metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use CatalogItem.AddMetadataEntryWithVisibilityAsync instead

func (*CatalogItem) AddMetadataEntryWithVisibility

func (catalogItem *CatalogItem) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver CatalogItem and waits for the task to finish.

func (*CatalogItem) AddMetadataEntryWithVisibilityAsync

func (catalogItem *CatalogItem) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given Catalog Item with the given key, value, type and visibility and returns the task.

func (*CatalogItem) Delete

func (catalogItem *CatalogItem) Delete() error

Delete deletes the Catalog Item, returning an error if the vCD call fails. Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-CatalogItem.html

func (*CatalogItem) DeleteMetadataEntry

func (catalogItem *CatalogItem) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes CatalogItem metadata depending on key provided as input and waits for the task to finish. Deprecated: Use CatalogItem.DeleteMetadataEntryWithDomain instead

func (*CatalogItem) DeleteMetadataEntryAsync

func (catalogItem *CatalogItem) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes CatalogItem metadata depending on key provided as input and returns a task. Deprecated: Use CatalogItem.DeleteMetadataEntryWithDomainAsync instead

func (*CatalogItem) DeleteMetadataEntryWithDomain

func (catalogItem *CatalogItem) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes CatalogItem metadata associated to the input key and waits for the task to finish.

func (*CatalogItem) DeleteMetadataEntryWithDomainAsync

func (catalogItem *CatalogItem) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes CatalogItem metadata associated to the input key and returns the task.

func (*CatalogItem) GetMetadata

func (catalogItem *CatalogItem) GetMetadata() (*types.Metadata, error)

GetMetadata returns CatalogItem metadata.

func (*CatalogItem) GetMetadataByKey

func (catalogItem *CatalogItem) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns CatalogItem metadata corresponding to the given key and domain.

func (*CatalogItem) GetVAppTemplate

func (catalogItem *CatalogItem) GetVAppTemplate() (VAppTemplate, error)

func (*CatalogItem) LaunchSync

func (item *CatalogItem) LaunchSync() (*Task, error)

LaunchSync starts synchronisation of a subscribed Catalog item

func (*CatalogItem) MergeMetadata

func (catalogItem *CatalogItem) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges CatalogItem metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use CatalogItem.MergeMetadataWithMetadataValues

func (*CatalogItem) MergeMetadataAsync

func (catalogItem *CatalogItem) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges CatalogItem metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use CatalogItem.MergeMetadataWithMetadataValuesAsync

func (*CatalogItem) MergeMetadataWithMetadataValues

func (catalogItem *CatalogItem) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver CatalogItem and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*CatalogItem) MergeMetadataWithMetadataValuesAsync

func (catalogItem *CatalogItem) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges CatalogItem metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*CatalogItem) Refresh

func (item *CatalogItem) Refresh() error

Refresh retrieves a fresh copy of the catalog Item

type Certificate

type Certificate struct {
	CertificateLibrary *types.CertificateLibraryItem
	Href               string
	// contains filtered or unexported fields
}

Certificate is a structure defining a certificate in VCD It is called "Certificate Library" in the UI, and "Certificate Library item" in the API

func (*Certificate) Delete

func (certificate *Certificate) Delete() error

Delete deletes certificate from Certificate library

func (*Certificate) SameAs

func (certificate *Certificate) SameAs(pem string) (bool, error)

SameAs returns true if the certificate text matches the text of the provided PEM (without the BEGIN CERTIFICATE and END CERTIFICATE markers)

func (*Certificate) Update

func (certificate *Certificate) Update() (*Certificate, error)

Update updates existing Certificate. Allows changing only alias and description

type Client

type Client struct {
	APIVersion       string      // The API version required
	VCDToken         string      // Access Token (authorization header)
	VCDAuthHeader    string      // Authorization header
	VCDHREF          url.URL     // VCD API ENDPOINT
	Http             http.Client // HttpClient is the client to use. Default will be used if not provided.
	IsSysAdmin       bool        // flag if client is connected as system administrator
	UsingBearerToken bool        // flag if client is using a bearer token
	UsingAccessToken bool        // flag if client is using an API token

	// MaxRetryTimeout specifies a time limit (in seconds) for retrying requests made by the SDK
	// where VMware Cloud Director may take time to respond and retry mechanism is needed.
	// This must be >0 to avoid instant timeout errors.
	MaxRetryTimeout int

	// UseSamlAdfs specifies if SAML auth is used for authenticating vCD instead of local login.
	// The following conditions must be met so that authentication SAML authentication works:
	// * SAML IdP (Identity Provider) is Active Directory Federation Service (ADFS)
	// * Authentication endpoint "/adfs/services/trust/13/usernamemixed" must be enabled on ADFS
	// server
	UseSamlAdfs bool
	// CustomAdfsRptId allows to set custom Relaying Party Trust identifier. By default vCD Entity
	// ID is used as Relaying Party Trust identifier.
	CustomAdfsRptId string

	// CustomAdfsCookie
	// Placeholder {{.Org}} (if specified) will be replaced with real org
	// E.g "sso-preferred=yes; sso_redirect_org={{.Org}}"
	CustomAdfsCookie string

	// UserAgent to send for API queries. Standard format is described as:
	// "User-Agent: <product> / <product-version> <comment>"
	UserAgent string

	// RequestIdFunc is a function that would return an unique string to be used for
	// 'X-Vmware-Vcloud-Client-Request-Id' which helps log tracing
	// Function `WithVcloudRequestIdFunc` contains more details
	RequestIdFunc func() string

	// IgnoredMetadata allows to ignore metadata entries when using the methods defined in metadata_v2.go
	IgnoredMetadata []IgnoredMetadata
	// contains filtered or unexported fields
}

Client provides a client to VMware Cloud Director, values can be populated automatically using the Authenticate method.

func (*Client) APIClientVersionIs

func (client *Client) APIClientVersionIs(versionConstraint string) bool

APIClientVersionIs allows to compare against currently used API version VCDClient.Client.APIVersion. Can be useful to validate if a certain feature can be used or not. It does not require for the client to be authenticated.

Format: ">= 27.0, < 32.0", ">= 30.0", "= 27.0"

vCD version mapping to API version support https://code.vmware.com/doc/preview?id=8072

func (*Client) APIVCDMaxVersionIs

func (client *Client) APIVCDMaxVersionIs(versionConstraint string) bool

APIVCDMaxVersionIs compares against maximum vCD supported API version from /api/versions (not necessarily the currently used one). This allows to check what is the maximum API version that vCD instance supports and can be used to guess vCD product version. API 31.0 support was first introduced in vCD 9.5 (as per https://code.vmware.com/doc/preview?id=8072). Therefore APIMaxVerIs(">= 31.0") implies that you have vCD 9.5 or newer running inside. It does not require for the client to be authenticated.

Format: ">= 27.0, < 32.0", ">= 30.0", "= 27.0"

vCD version mapping to API version support https://code.vmware.com/doc/preview?id=8072

func (*Client) AddCertificateToLibrary

func (client *Client) AddCertificateToLibrary(certificateConfig *types.CertificateLibraryItem) (*Certificate, error)

AddCertificateToLibrary uploads certificates with configuration details

func (Client) CheckSiteAssociation

func (client Client) CheckSiteAssociation(siteId string, timeout time.Duration) (string, time.Duration, error)

CheckSiteAssociation polls the state of a given site association until it becomes active, or a timeout is reached. Note: this method should be called only after both sides have performed the data association upload.

func (*Client) CountMatchingCertificates

func (client *Client) CountMatchingCertificates(pem string) (int, error)

CountMatchingCertificates searches among all certificates and return the number of certificates with the text that matches the given PEM

func (*Client) CreateGlobalRole

func (client *Client) CreateGlobalRole(newGlobalRole *types.GlobalRole) (*GlobalRole, error)

CreateGlobalRole creates a new global role as a system administrator

func (*Client) CreateRightsBundle

func (client *Client) CreateRightsBundle(newRightsBundle *types.RightsBundle) (*RightsBundle, error)

CreateRightsBundle creates a new rights bundle as a system administrator

func (*Client) CreateVdcComputePolicy

func (client *Client) CreateVdcComputePolicy(newVdcComputePolicy *types.VdcComputePolicy) (*VdcComputePolicy, error)

CreateVdcComputePolicy creates a new VDC Compute Policy using OpenAPI endpoint Deprecated: use VCDClient.CreateVdcComputePolicyV2

func (*Client) DeleteEntity

func (client *Client) DeleteEntity(urlRef *url.URL, params url.Values, additionalHeader map[string]string) error

func (*Client) ExecuteParamRequestWithCustomError

func (client *Client) ExecuteParamRequestWithCustomError(pathURL string, params map[string]string,
	requestType, contentType, errorMessage string, payload interface{}, errType error) (*http.Response, error)

ExecuteParamRequestWithCustomError behaves exactly like ExecuteRequestWithCustomError but accepts query parameter specification

func (*Client) ExecuteRequest

func (client *Client) ExecuteRequest(pathURL, requestType, contentType, errorMessage string, payload, out interface{}) (*http.Response, error)

ExecuteRequest helper function creates request, runs it, check responses and parses out interface from response. pathURL - request URL requestType - HTTP method type contentType - value to set for "Content-Type" errorMessage - error message to return when error happens payload - XML struct which will be marshalled and added as body/payload out - structure to be used for unmarshalling xml E.g. unmarshalledAdminOrg := &types.AdminOrg{} client.ExecuteRequest(adminOrg.AdminOrg.HREF, http.MethodGet, "", "error refreshing organization: %s", nil, unmarshalledAdminOrg)

func (*Client) ExecuteRequestWithApiVersion

func (client *Client) ExecuteRequestWithApiVersion(pathURL, requestType, contentType, errorMessage string, payload, out interface{}, apiVersion string) (*http.Response, error)

ExecuteRequestWithApiVersion helper function creates request, runs it, check responses and parses out interface from response. pathURL - request URL requestType - HTTP method type contentType - value to set for "Content-Type" errorMessage - error message to return when error happens payload - XML struct which will be marshalled and added as body/payload out - structure to be used for unmarshalling xml apiVersion - api version which will be used in request E.g. unmarshalledAdminOrg := &types.AdminOrg{} client.ExecuteRequest(adminOrg.AdminOrg.HREF, http.MethodGet, "", "error refreshing organization: %s", nil, unmarshalledAdminOrg)

func (*Client) ExecuteRequestWithCustomError

func (client *Client) ExecuteRequestWithCustomError(pathURL, requestType, contentType, errorMessage string,
	payload interface{}, errType error) (*http.Response, error)

ExecuteRequestWithCustomError sends the request and checks for 2xx response. If the returned status code was not as expected - the returned error will be unmarshalled to `errType` which implements Go's standard `error` interface.

func (*Client) ExecuteRequestWithoutResponse

func (client *Client) ExecuteRequestWithoutResponse(pathURL, requestType, contentType, errorMessage string, payload interface{}) error

ExecuteRequestWithoutResponse helper function creates request, runs it, checks response and do not expect any values from it. pathURL - request URL requestType - HTTP method type contentType - value to set for "Content-Type" errorMessage - error message to return when error happens payload - XML struct which will be marshalled and added as body/payload E.g. client.ExecuteRequestWithoutResponse(catalogItemHREF.String(), http.MethodDelete, "", "error deleting Catalog item: %s", nil)

func (*Client) ExecuteRequestWithoutResponseWithApiVersion

func (client *Client) ExecuteRequestWithoutResponseWithApiVersion(pathURL, requestType, contentType, errorMessage string, payload interface{}, apiVersion string) error

ExecuteRequestWithoutResponseWithApiVersion helper function creates request, runs it, checks response and do not expect any values from it. pathURL - request URL requestType - HTTP method type contentType - value to set for "Content-Type" errorMessage - error message to return when error happens payload - XML struct which will be marshalled and added as body/payload apiVersion - api version which will be used in request E.g. client.ExecuteRequestWithoutResponse(catalogItemHREF.String(), http.MethodDelete, "", "error deleting Catalog item: %s", nil)

func (*Client) ExecuteTaskRequest

func (client *Client) ExecuteTaskRequest(pathURL, requestType, contentType, errorMessage string, payload interface{}) (Task, error)

ExecuteTaskRequest helper function creates request, runs it, checks response and parses task from response. pathURL - request URL requestType - HTTP method type contentType - value to set for "Content-Type" errorMessage - error message to return when error happens payload - XML struct which will be marshalled and added as body/payload E.g. client.ExecuteTaskRequest(updateDiskLink.HREF, http.MethodPut, updateDiskLink.Type, "error updating disk: %s", xmlPayload)

func (*Client) ExecuteTaskRequestWithApiVersion

func (client *Client) ExecuteTaskRequestWithApiVersion(pathURL, requestType, contentType, errorMessage string, payload interface{}, apiVersion string) (Task, error)

ExecuteTaskRequestWithApiVersion helper function creates request, runs it, checks response and parses task from response. pathURL - request URL requestType - HTTP method type contentType - value to set for "Content-Type" errorMessage - error message to return when error happens payload - XML struct which will be marshalled and added as body/payload apiVersion - api version which will be used in request E.g. client.ExecuteTaskRequest(updateDiskLink.HREF, http.MethodPut, updateDiskLink.Type, "error updating disk: %s", xmlPayload)

func (*Client) FindVMByHREF deprecated

func (client *Client) FindVMByHREF(vmHREF string) (VM, error)

Deprecated: use client.GetVMByHref instead

func (Client) GetAccessControl

func (client Client) GetAccessControl(href, entityType, entityName string, headerValues map[string]string) (*types.ControlAccessParams, error)

GetAccessControl retrieves the access control information for the requested entity

func (*Client) GetAdminCatalogByHref

func (client *Client) GetAdminCatalogByHref(catalogHref string) (*AdminCatalog, error)

GetAdminCatalogByHref allows retrieving a catalog from HREF, without a fully qualified AdminOrg object

func (*Client) GetAdminCatalogById

func (client *Client) GetAdminCatalogById(catalogId string) (*AdminCatalog, error)

GetAdminCatalogById allows retrieving a catalog from ID, without a fully qualified AdminOrg object

func (*Client) GetAdminCatalogByName

func (client *Client) GetAdminCatalogByName(parentOrg, catalogName string) (*AdminCatalog, error)

GetAdminCatalogByName allows retrieving a catalog from name, without a fully qualified AdminOrg object

func (*Client) GetAllCertificatesFromLibrary

func (client *Client) GetAllCertificatesFromLibrary(queryParameters url.Values) ([]*Certificate, error)

GetAllCertificatesFromLibrary retrieves all available certificates from certificate library. Query parameters can be supplied to perform additional filtering

func (*Client) GetAllGlobalRoles

func (client *Client) GetAllGlobalRoles(queryParameters url.Values) ([]*GlobalRole, error)

GetAllGlobalRoles retrieves all global roles. Query parameters can be supplied to perform additional filtering Only System administrator can handle global roles

func (*Client) GetAllRights

func (client *Client) GetAllRights(queryParameters url.Values) ([]*types.Right, error)

GetAllRights retrieves all available rights. Query parameters can be supplied to perform additional filtering

func (*Client) GetAllRightsBundles

func (client *Client) GetAllRightsBundles(queryParameters url.Values) ([]*RightsBundle, error)

GetAllRightsBundles retrieves all rights bundles. Query parameters can be supplied to perform additional filtering

func (*Client) GetAllRightsCategories

func (client *Client) GetAllRightsCategories(queryParameters url.Values) ([]*types.RightsCategory, error)

GetAllRightsCategories retrieves all rights categories. Query parameters can be supplied to perform additional filtering

func (*Client) GetAllRoles

func (client *Client) GetAllRoles(queryParameters url.Values) ([]*Role, error)

GetAllRoles retrieves all roles as System administrator. Query parameters can be supplied to perform additional filtering

func (*Client) GetAllVdcComputePolicies

func (client *Client) GetAllVdcComputePolicies(queryParameters url.Values) ([]*VdcComputePolicy, error)

GetAllVdcComputePolicies retrieves all VDC compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering Deprecated: use VCDClient.GetAllVdcComputePoliciesV2

func (*Client) GetCatalogByHref

func (client *Client) GetCatalogByHref(catalogHref string) (*Catalog, error)

GetCatalogByHref allows retrieving a catalog from HREF, without a fully qualified Org object

func (*Client) GetCatalogById

func (client *Client) GetCatalogById(catalogId string) (*Catalog, error)

GetCatalogById allows retrieving a catalog from ID, without a fully qualified Org object

func (*Client) GetCatalogByName

func (client *Client) GetCatalogByName(parentOrg, catalogName string) (*Catalog, error)

GetCatalogByName allows retrieving a catalog from name, without a fully qualified Org object

func (*Client) GetCertificateFromLibraryById

func (client *Client) GetCertificateFromLibraryById(id string) (*Certificate, error)

GetCertificateFromLibraryById Returns certificate from library of certificates from System Context

func (*Client) GetCertificateFromLibraryByName

func (client *Client) GetCertificateFromLibraryByName(name string) (*Certificate, error)

GetCertificateFromLibraryByName retrieves certificate from certificate library by given name

func (*Client) GetEntity

func (client *Client) GetEntity(urlRef *url.URL, params url.Values, outType interface{}, additionalHeader map[string]string) error

func (*Client) GetEntityUrl

func (client *Client) GetEntityUrl(endpoint ...string) (*url.URL, error)

func (*Client) GetGlobalRoleById

func (client *Client) GetGlobalRoleById(id string) (*GlobalRole, error)

GetGlobalRoleById retrieves global role by given ID

func (*Client) GetGlobalRoleByName

func (client *Client) GetGlobalRoleByName(name string) (*GlobalRole, error)

GetGlobalRoleByName retrieves a global role by given name

func (Client) GetQueryType

func (client Client) GetQueryType(queryType string) string

GetQueryType is an utility function to get the appropriate query type depending on the user's role

func (*Client) GetRightById

func (client *Client) GetRightById(id string) (*types.Right, error)

func (*Client) GetRightByName

func (client *Client) GetRightByName(name string) (*types.Right, error)

GetRightByName retrieves right by given name

func (*Client) GetRightsBundleById

func (client *Client) GetRightsBundleById(id string) (*RightsBundle, error)

GetRightsBundleById retrieves rights bundle by given ID

func (*Client) GetRightsBundleByName

func (client *Client) GetRightsBundleByName(name string) (*RightsBundle, error)

GetRightsBundleByName retrieves rights bundle by given name

func (*Client) GetRightsCategoryById

func (client *Client) GetRightsCategoryById(id string) (*types.RightsCategory, error)

GetRightsCategoryById retrieves a rights category from its ID

func (*Client) GetSessionInfo

func (client *Client) GetSessionInfo() (*types.CurrentSessionInfo, error)

GetSessionInfo collects the basic session information for a VCD connection

func (Client) GetSite

func (client Client) GetSite() (*types.Site, error)

GetSite retrieves the data for the current site (VCD)

func (Client) GetSiteAssociationBySiteId

func (client Client) GetSiteAssociationBySiteId(siteId string) (*types.SiteAssociationMember, error)

GetSiteAssociationBySiteId retrieves a single site association by the ID of the associated site Note that there could be only one association between two sites

func (Client) GetSiteAssociationData

func (client Client) GetSiteAssociationData() (*types.SiteAssociationMember, error)

GetSiteAssociationData retrieves the structured data needed to start an association with another site This is useful when we have control of both sites from the same client

func (Client) GetSiteAssociations

func (client Client) GetSiteAssociations() ([]*types.SiteAssociationMember, error)

GetSiteAssociations retrieves all current site associations If no associations are available, it returns an empty slice with no error

func (Client) GetSiteRawAssociationData

func (client Client) GetSiteRawAssociationData() ([]byte, error)

GetSiteRawAssociationData retrieves the raw (XML) data needed to start an association with another site This is useful when we want to save this data to a file for future use

func (*Client) GetSpecificApiVersionOnCondition

func (client *Client) GetSpecificApiVersionOnCondition(vcdApiVersionCondition, wantedApiVersionOrMinimumRequired string) string

GetSpecificApiVersionOnCondition returns default version or wantedApiVersion if it is connected to version described in vcdApiVersionCondition e.g. values ">= 32.0", "32.0" returns 32.0 if vCD version is above or 9.7 Note. This function will always respect minimum supported API version which is defined in client.APIVersion. If the wantedApiVersionOrMinimumRequired is less than minimum supported version, this function will return the minimum supported version. This means that it must be be well tested when client.APIVersion is bumped to avoid unexpected errors due to newer API version being used.

func (*Client) GetStorageProfileByHref

func (client *Client) GetStorageProfileByHref(url string) (*types.VdcStorageProfile, error)

GetStorageProfileByHref fetches a storage profile using its HREF.

func (*Client) GetTaskByHREF

func (client *Client) GetTaskByHREF(taskHref string) (*Task, error)

GetTaskByHREF retrieves a task by its HREF

func (*Client) GetTaskById

func (client *Client) GetTaskById(taskId string) (*Task, error)

GetTaskById retrieves a task by ID

func (*Client) GetVMByHref

func (client *Client) GetVMByHref(vmHref string) (*VM, error)

GetVMByHref returns a VM reference by running a vCD API call If no valid VM is found, it returns a nil VM reference and an error Note that the pointer receiver here is a Client instead of a VApp, because there are cases where we know the VM HREF but not which VApp it belongs to.

func (*Client) GetVcdFullVersion

func (client *Client) GetVcdFullVersion() (VcdVersion, error)

GetVcdFullVersion returns the full VCD version information as a structure

func (*Client) GetVcdShortVersion

func (client *Client) GetVcdShortVersion() (string, error)

GetVcdShortVersion returns the VCD version (three digits, no build info)

func (*Client) GetVcdVersion

func (client *Client) GetVcdVersion() (string, time.Time, error)

GetVcdVersion finds the VCD version and the time of build

func (*Client) GetVdcComputePolicyById

func (client *Client) GetVdcComputePolicyById(id string) (*VdcComputePolicy, error)

GetVdcComputePolicyById retrieves VDC compute policy by given ID Deprecated: Use VCDClient.GetVdcComputePolicyV2ById instead

func (*Client) IsTm

func (client *Client) IsTm() bool

func (*Client) MatchingCertificatesInLibrary

func (client *Client) MatchingCertificatesInLibrary(pem string) ([]*Certificate, error)

MatchingCertificatesInLibrary searches among all certificates and return all certificates with the text that matches the given PEM

func (*Client) MaxSupportedVersion

func (client *Client) MaxSupportedVersion() (string, error)

MaxSupportedVersion parses supported version list and returns the highest version in string format.

func (*Client) NewRequest

func (client *Client) NewRequest(params map[string]string, method string, reqUrl url.URL, body io.Reader) *http.Request

NewRequest creates a new HTTP request and applies necessary auth headers if set.

func (*Client) NewRequestWitNotEncodedParams

func (client *Client) NewRequestWitNotEncodedParams(params map[string]string, notEncodedParams map[string]string, method string, reqUrl url.URL, body io.Reader) *http.Request

NewRequestWitNotEncodedParams allows passing complex values params that shouldn't be encoded like for queries. e.g. /query?filter=name=foo

func (*Client) NewRequestWitNotEncodedParamsWithApiVersion

func (client *Client) NewRequestWitNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, method string, reqUrl url.URL, body io.Reader, apiVersion string) *http.Request

NewRequestWitNotEncodedParamsWithApiVersion allows passing complex values params that shouldn't be encoded like for queries. e.g. /query?filter=name=foo * params - request parameters * notEncodedParams - request parameters which will be added not encoded * method - request type * reqUrl - request url * body - request body * apiVersion - provided Api version overrides default Api version value used in request parameter

func (*Client) NewRequestWithApiVersion

func (client *Client) NewRequestWithApiVersion(params map[string]string, method string, reqUrl url.URL, body io.Reader, apiVersion string) *http.Request

NewRequestWithApiVersion creates a new HTTP request and applies necessary auth headers if set. Allows to override default request API Version

func (*Client) OpenApiBuildEndpoint

func (client *Client) OpenApiBuildEndpoint(endpoint ...string) (*url.URL, error)

OpenApiBuildEndpoint helps to construct OpenAPI endpoint by using already configured VCD HREF while requiring only the last bit for endpoint. This is a variadic function and multiple pieces can be supplied for convenience. Leading '/' is added automatically. Sample URL construct: https://HOST/cloudapi/endpoint

func (*Client) OpenApiDeleteItem

func (client *Client) OpenApiDeleteItem(apiVersion string, urlRef *url.URL, params url.Values, additionalHeader map[string]string) error

OpenApiDeleteItem is a low level OpenAPI client function to perform DELETE request for any item. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') It handles synchronous and asynchronous tasks. When a task is synchronous - it will block until it is finished.

func (*Client) OpenApiGetAllItems

func (client *Client) OpenApiGetAllItems(apiVersion string, urlRef *url.URL, queryParams url.Values, outType interface{}, additionalHeader map[string]string) error

OpenApiGetAllItems retrieves and accumulates all pages then parsing them to a single 'outType' object. It works by at first crawling pages and accumulating all responses into []json.RawMessage (as strings). Because there is no intermediate unmarshalling to exact `outType` for every page it unmarshals into response struct in one go. 'outType' must be a slice of object (e.g. []*types.OpenAPIEdgeGateway) because this response contains slice of structs.

Note. Query parameter 'pageSize' is defaulted to 128 (maximum supported) unless it is specified in queryParams

func (*Client) OpenApiGetItem

func (client *Client) OpenApiGetItem(apiVersion string, urlRef *url.URL, params url.Values, outType interface{}, additionalHeader map[string]string) error

OpenApiGetItem is a low level OpenAPI client function to perform GET request for any item. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') It responds with HTTP 403: Forbidden - If the user is not authorized or the entity does not exist. When HTTP 403 is returned this function returns "ErrorEntityNotFound: API_ERROR" so that one can use ContainsNotFound(err) to differentiate when an object was not found from any other error.

func (*Client) OpenApiGetItemAndHeaders

func (client *Client) OpenApiGetItemAndHeaders(apiVersion string, urlRef *url.URL, params url.Values, outType interface{}, additionalHeader map[string]string) (http.Header, error)

OpenApiGetItemAndHeaders is a low level OpenAPI client function to perform GET request for any item and return all the headers. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') It responds with HTTP 403: Forbidden - If the user is not authorized or the entity does not exist. When HTTP 403 is returned this function returns "ErrorEntityNotFound: API_ERROR" so that one can use ContainsNotFound(err) to differentiate when an object was not found from any other error.

func (*Client) OpenApiIsSupported

func (client *Client) OpenApiIsSupported() bool

OpenApiIsSupported allows to check whether VCD supports OpenAPI. Each OpenAPI endpoint however is introduced with different VCD API versions so this is just a general check if OpenAPI is supported at all. Particular endpoint introduction version can be checked in self hosted docs (https://HOSTNAME/docs/)

func (*Client) OpenApiPostItem

func (client *Client) OpenApiPostItem(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error

OpenApiPostItem is a low level OpenAPI client function to perform POST request for item supporting synchronous or asynchronous requests. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways'). When a task is synchronous - it will track task until it is finished and pick reference to marshal outType.

func (*Client) OpenApiPostItemAndGetHeaders

func (client *Client) OpenApiPostItemAndGetHeaders(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) (http.Header, error)

OpenApiPostItemAndGetHeaders is a low level OpenAPI client function to perform POST request for item supporting synchronous or asynchronous requests, that returns also the response headers. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways'). When a task is synchronous - it will track task until it is finished and pick reference to marshal outType.

func (*Client) OpenApiPostItemAsync

func (client *Client) OpenApiPostItemAsync(apiVersion string, urlRef *url.URL, params url.Values, payload interface{}) (Task, error)

OpenApiPostItemAsync is a low level OpenAPI client function to perform POST request for items that support asynchronous requests. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways') that supports asynchronous requests. It will return an error if item does not support asynchronous request (does not respond with HTTP 202).

Note. Even though it may return error if the item does not support asynchronous request - the object may still be created. OpenApiPostItem would handle both cases and always return created item.

func (*Client) OpenApiPostItemAsyncWithHeaders

func (client *Client) OpenApiPostItemAsyncWithHeaders(apiVersion string, urlRef *url.URL, params url.Values, payload interface{}, additionalHeader map[string]string) (Task, error)

OpenApiPostItemAsyncWithHeaders is a low level OpenAPI client function to perform POST request for items that support asynchronous requests. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways') that supports asynchronous requests. It will return an error if item does not support asynchronous request (does not respond with HTTP 202).

Note. Even though it may return error if the item does not support asynchronous request - the object may still be created. OpenApiPostItem would handle both cases and always return created item.

func (*Client) OpenApiPostItemSync

func (client *Client) OpenApiPostItemSync(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}) error

OpenApiPostItemSync is a low level OpenAPI client function to perform POST request for items that support synchronous requests. The urlRef must point to POST endpoint (e.g. '/1.0.0/edgeGateways') that supports synchronous requests. It will return an error when endpoint does not support synchronous requests (HTTP response status code is not 200 or 201). Response will be unmarshalled into outType.

Note. Even though it may return error if the item does not support synchronous request - the object may still be created. OpenApiPostItem would handle both cases and always return created item.

func (*Client) OpenApiPostUrlEncoded

func (client *Client) OpenApiPostUrlEncoded(apiVersion string, urlRef *url.URL, params url.Values, payloadMap map[string]string, outType interface{}, additionalHeaders map[string]string) error

OpenApiPostUrlEncoded is a non-standard function used to send a POST request with `x-www-form-urlencoded` format. Accepts a map in format of key:value, marshals the response body in JSON format to outType. If additionalHeader contains a "Content-Type" header, it will be overwritten to "x-www-form-urlencoded"

func (*Client) OpenApiPutItem

func (client *Client) OpenApiPutItem(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error

OpenApiPutItem is a low level OpenAPI client function to perform PUT request for any item. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') It handles synchronous and asynchronous tasks. When a task is synchronous - it will block until it is finished.

func (*Client) OpenApiPutItemAndGetHeaders

func (client *Client) OpenApiPutItemAndGetHeaders(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) (http.Header, error)

OpenApiPutItemAndGetHeaders is a low level OpenAPI client function to perform PUT request for any item and return the response headers. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') It handles synchronous and asynchronous tasks. When a task is synchronous - it will block until it is finished.

func (*Client) OpenApiPutItemAsync

func (client *Client) OpenApiPutItemAsync(apiVersion string, urlRef *url.URL, params url.Values, payload interface{}, additionalHeader map[string]string) (Task, error)

OpenApiPutItemAsync is a low level OpenAPI client function to perform PUT request for items that support asynchronous requests. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') that supports asynchronous requests. It will return an error if item does not support asynchronous request (does not respond with HTTP 202).

Note. Even though it may return error if the item does not support asynchronous request - the object may still be created. OpenApiPutItem would handle both cases and always return created item.

func (*Client) OpenApiPutItemSync

func (client *Client) OpenApiPutItemSync(apiVersion string, urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error

OpenApiPutItemSync is a low level OpenAPI client function to perform PUT request for items that support synchronous requests. The urlRef must point to ID of exact item (e.g. '/1.0.0/edgeGateways/{EDGE_ID}') and support synchronous requests. It will return an error when endpoint does not support synchronous requests (HTTP response status code is not 201). Response will be unmarshalled into outType.

Note. Even though it may return error if the item does not support synchronous request - the object may still be updated. OpenApiPutItem would handle both cases and always return updated item.

func (*Client) PostEntity

func (client *Client) PostEntity(urlRef *url.URL, params url.Values, payload, outType interface{}, additionalHeader map[string]string) error

func (Client) QueryAllOrgAssociations

func (client Client) QueryAllOrgAssociations(params, notEncodedParams map[string]string) ([]*types.QueryResultOrgAssociationRecord, error)

QueryAllOrgAssociations retrieve all site associations with optional search parameters

func (*Client) QueryAllProviderVdcStorageProfiles

func (client *Client) QueryAllProviderVdcStorageProfiles() ([]*types.QueryResultProviderVdcStorageProfileRecordType, error)

QueryAllProviderVdcStorageProfiles gets the list of provider VDC storage profiles from ALL provider VDCs

func (Client) QueryAllSiteAssociations

func (client Client) QueryAllSiteAssociations(params, notEncodedParams map[string]string) ([]*types.QueryResultSiteAssociationRecord, error)

QueryAllSiteAssociations retrieves all site associations for the current site

func (*Client) QueryAllVdcs

func (client *Client) QueryAllVdcs() ([]*types.QueryResultOrgVdcRecordType, error)

QueryAllVdcs returns all Org VDCs in a VCD instance

This function requires "System" user or returns an error

func (*Client) QueryCatalogRecords

func (client *Client) QueryCatalogRecords(name string, ctx TenantContext) ([]*types.CatalogRecord, error)

QueryCatalogRecords given a catalog name, retrieves the catalogRecords that match its name Returns a list of catalog records for such name, empty list if none was found

func (*Client) QueryProviderVdcStorageProfiles

func (client *Client) QueryProviderVdcStorageProfiles(providerVdcHref string) ([]*types.QueryResultProviderVdcStorageProfileRecordType, error)

QueryProviderVdcStorageProfiles gets the list of provider VDC storage profiles for a given Provider VDC

func (*Client) QueryTaskList

func (client *Client) QueryTaskList(filter map[string]string) ([]*types.QueryResultTaskRecordType, error)

QueryTaskList performs a query for tasks according to a specific filter

func (*Client) QueryVappList

func (client *Client) QueryVappList() ([]*types.QueryResultVAppRecordType, error)

QueryVappList returns a list of all vApps in all the organizations available to the caller

func (*Client) QueryVappNetworks

func (client *Client) QueryVappNetworks(values map[string]string) ([]*types.QueryResultVappNetworkRecordType, error)

QueryVappNetworks returns all vApp networks visible to the client

func (*Client) QueryVmList

func (client *Client) QueryVmList(filter types.VmQueryFilter) ([]*types.QueryResultVMRecordType, error)

QueryVmList returns a list of all VMs in all the organizations available to the caller

func (*Client) QueryWithNotEncodedParams

func (client *Client) QueryWithNotEncodedParams(params map[string]string, notEncodedParams map[string]string) (Results, error)

QueryWithNotEncodedParams uses Query API to search for requested data

func (*Client) QueryWithNotEncodedParamsWithApiVersion

func (client *Client) QueryWithNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, apiVersion string) (Results, error)

QueryWithNotEncodedParams uses Query API to search for requested data

func (*Client) QueryWithNotEncodedParamsWithApiVersionWithHeaders

func (client *Client) QueryWithNotEncodedParamsWithApiVersionWithHeaders(params map[string]string, notEncodedParams map[string]string, apiVersion string, headers map[string]string) (Results, error)

func (*Client) QueryWithNotEncodedParamsWithHeaders

func (client *Client) QueryWithNotEncodedParamsWithHeaders(params map[string]string, notEncodedParams map[string]string, headers map[string]string) (Results, error)

func (*Client) RemoveCustomHeader

func (client *Client) RemoveCustomHeader()

RemoveCustomHeader remove custom header values from the client

func (*Client) RemoveProvidedCustomHeaders

func (client *Client) RemoveProvidedCustomHeaders(values map[string]string)

RemoveProvidedCustomHeaders removes custom header values from the client

func (Client) RemoveSiteAssociation

func (client Client) RemoveSiteAssociation(associationHref string) error

RemoveSiteAssociation removes a site association, waiting for completion

func (Client) RemoveSiteAssociationAsync

func (client Client) RemoveSiteAssociationAsync(associationHref string) (Task, error)

RemoveSiteAssociationAsync removes a site association without waiting for completion

func (*Client) RetrieveRemoteDocument

func (client *Client) RetrieveRemoteDocument(metadataUrl string) ([]byte, error)

RetrieveRemoteDocument gets the contents of a given URL

func (*Client) SearchByFilter

func (client *Client) SearchByFilter(queryType string, criteria *FilterDef) ([]QueryItem, string, error)

SearchByFilter is a generic filter that can operate on entities that implement the QueryItem interface It requires a queryType and a set of criteria. Returns a list of QueryItem interface elements, which can be cast back to the wanted real type Also returns a human readable text of the conditions being passed and how they matched the data found See "## Query engine" in CODING_GUIDELINES.md for more info

func (*Client) SetAccessControl

func (client *Client) SetAccessControl(accessControl *types.ControlAccessParams, href, entityType, entityName string, headerValues map[string]string) error

SetAccessControl changes the access control information for this entity There are two ways of setting the access: with accessControl.IsSharedToEveryone = true we give access to everyone with accessControl.IsSharedToEveryone = false, accessControl.AccessSettings defines which subjects can access the vApp For each setting we must provide: * The subject (HREF and Type are mandatory) * The access level (one of ReadOnly, Change, FullControl)

func (*Client) SetCustomHeader

func (client *Client) SetCustomHeader(values map[string]string)

SetCustomHeader adds custom HTTP header values to a client

func (Client) SetSiteAssociation

func (client Client) SetSiteAssociation(associationData types.SiteAssociationMember) error

SetSiteAssociation sets a new site association, waiting for completion

func (Client) SetSiteAssociationAsync

func (client Client) SetSiteAssociationAsync(associationData types.SiteAssociationMember) (Task, error)

SetSiteAssociationAsync sets a new site association without waiting for completion

func (Client) SkimTasksList

func (client Client) SkimTasksList(taskIdList []string) ([]string, []string, error)

SkimTasksList checks a list of task IDs and returns a list of IDs for tasks in progress and a list of IDs for failed ones

func (*Client) TestConnection

func (client *Client) TestConnection(testConnection types.TestConnection) (*types.TestConnectionResult, error)

TestConnection calls API to test a connection against a VCD, including SSL handshake and hostname verification.

func (*Client) TestConnectionWithDefaults

func (client *Client) TestConnectionWithDefaults(subscriptionURL string) (bool, error)

TestConnectionWithDefaults calls TestConnection given a subscriptionURL. The rest of parameters are set as default. It returns whether it could reach the server and establish SSL connection or not.

func (*Client) VersionEqualOrGreater

func (client *Client) VersionEqualOrGreater(compareTo string, howManyDigits int) (bool, error)

VersionEqualOrGreater return true if the current version is the same or greater than the one being compared. If howManyDigits is > 3, the comparison includes the build. Examples:

client version is 1.2.3.1234
compare version is 1.2.3.2000

function return true if howManyDigits is <= 3, but false if howManyDigits is > 3

client version is 1.2.3.1234
compare version is 1.1.1.0

function returns true regardless of value of howManyDigits

func (*Client) WaitForRouteAdvertisementTasks

func (client *Client) WaitForRouteAdvertisementTasks() error

WaitForRouteAdvertisementTasks is a convenience function to query for unfinished Route Advertisement tasks. An exact case for it was that updating some IP Space related objects (IP Spaces, IP Space Uplinks). Updating such an object sometimes results in a separate task for Route Advertisement being spun up (name="ipSpaceUplinkRouteAdvertisementSync"). When such task is running - other operations may fail so it is best to wait for completion of such task before triggering any other jobs.

func (Client) WaitTaskListCompletion

func (client Client) WaitTaskListCompletion(taskIdList []string, ignoreFailed bool) ([]string, error)

WaitTaskListCompletion waits until all tasks in the list are completed, removed, or failed Returns a list of failed tasks and an error

type ContentLibrary

type ContentLibrary struct {
	ContentLibrary *types.ContentLibrary
	// contains filtered or unexported fields
}

ContentLibrary defines the Content Library data structure

func (*ContentLibrary) CreateContentLibraryItem

func (cl *ContentLibrary) CreateContentLibraryItem(config *types.ContentLibraryItem, args ContentLibraryItemUploadArguments) (*ContentLibraryItem, error)

CreateContentLibraryItem creates a Content Library Item with the given file located in 'FilePath' parameter, which must be an OVA, OVF or ISO file. If OVF is uploaded, 'OvfFilesPaths' must be also set with the path of the referenced files.

func (*ContentLibrary) Delete

func (o *ContentLibrary) Delete(force, recursive bool) error

Delete deletes the receiver Content Library. The 'recursive' flag deletes the Content Library, including its content library items, in a single operation. The 'force' flag forcefully deletes the Content Library and its items.

func (*ContentLibrary) GetAllContentLibraryItems

func (cl *ContentLibrary) GetAllContentLibraryItems(queryParameters url.Values) ([]*ContentLibraryItem, error)

GetAllContentLibraryItems retrieves all Content Library Items with the given query parameters, which allow setting filters and other constraints

func (*ContentLibrary) GetContentLibraryItemById

func (cl *ContentLibrary) GetContentLibraryItemById(id string) (*ContentLibraryItem, error)

GetContentLibraryItemById retrieves a Content Library Item with the given ID

func (*ContentLibrary) GetContentLibraryItemByName

func (cl *ContentLibrary) GetContentLibraryItemByName(name string) (*ContentLibraryItem, error)

GetContentLibraryItemByName retrieves a Content Library Item with the given name

func (*ContentLibrary) Update

func (o *ContentLibrary) Update(contentLibraryConfig *types.ContentLibrary) (*ContentLibrary, error)

Update updates an existing Content Library with the given configuration

type ContentLibraryItem

type ContentLibraryItem struct {
	ContentLibraryItem *types.ContentLibraryItem
	// contains filtered or unexported fields
}

ContentLibraryItem defines the Content Library Item data structure

func (*ContentLibraryItem) Delete

func (cli *ContentLibraryItem) Delete() error

Delete deletes the receiver Content Library Item

func (*ContentLibraryItem) Update

func (o *ContentLibraryItem) Update(contentLibraryItemConfig *types.ContentLibraryItem) (*ContentLibraryItem, error)

Update updates an existing Content Library Item with the given configuration

type ContentLibraryItemUploadArguments

type ContentLibraryItemUploadArguments struct {
	FilePath        string   // Path to the main file to upload
	OvfFilesPaths   []string // OVF only: Path to the files referenced by the OVF
	UploadPieceSize int64    // When uploading big files, the payloads are divided into chunks of this size in bytes. Defaults to 'defaultPieceSize'
}

ContentLibraryItemUploadArguments defines the required arguments for Content Library Item uploads

type CseClusterEvent

type CseClusterEvent struct {
	Name         string
	Type         string
	ResourceId   string
	ResourceName string
	OccurredAt   time.Time
	Details      string
}

CseClusterEvent is an event that has occurred during the lifetime of a Container Service Extension (CSE) Kubernetes cluster.

type CseClusterSettings

type CseClusterSettings struct {
	CseVersion              semver.Version
	Name                    string
	OrganizationId          string
	VdcId                   string
	NetworkId               string
	KubernetesTemplateOvaId string
	ControlPlane            CseControlPlaneSettings
	WorkerPools             []CseWorkerPoolSettings
	DefaultStorageClass     *CseDefaultStorageClassSettings // Optional
	Owner                   string                          // Optional, if not set will pick the current session user from the VCDClient
	ApiToken                string
	NodeHealthCheck         bool
	PodCidr                 string
	ServiceCidr             string
	SshPublicKey            string
	VirtualIpSubnet         string
	AutoRepairOnErrors      bool
}

CseClusterSettings defines the required configuration of a Container Service Extension (CSE) Kubernetes cluster.

type CseClusterUpdateInput

type CseClusterUpdateInput struct {
	KubernetesTemplateOvaId *string
	ControlPlane            *CseControlPlaneUpdateInput
	WorkerPools             *map[string]CseWorkerPoolUpdateInput // Maps a node pool name with its contents
	NewWorkerPools          *[]CseWorkerPoolSettings
	NodeHealthCheck         *bool
	AutoRepairOnErrors      *bool
}

CseClusterUpdateInput defines the required configuration that a Container Service Extension (CSE) Kubernetes cluster needs in order to be updated.

type CseControlPlaneSettings

type CseControlPlaneSettings struct {
	MachineCount      int
	DiskSizeGi        int
	SizingPolicyId    string // Optional
	PlacementPolicyId string // Optional
	StorageProfileId  string // Optional
	Ip                string // Optional
}

CseControlPlaneSettings defines the required configuration of a Control Plane of a Container Service Extension (CSE) Kubernetes cluster.

type CseControlPlaneUpdateInput

type CseControlPlaneUpdateInput struct {
	MachineCount int
}

CseControlPlaneUpdateInput defines the required configuration that the Control Plane of the Container Service Extension (CSE) Kubernetes cluster needs in order to be updated.

type CseDefaultStorageClassSettings

type CseDefaultStorageClassSettings struct {
	StorageProfileId string
	Name             string
	ReclaimPolicy    string // Must be either "delete" or "retain"
	Filesystem       string // Must be either "ext4" or "xfs"
}

CseDefaultStorageClassSettings defines the required configuration of a Default Storage Class of a Container Service Extension (CSE) Kubernetes cluster.

type CseKubernetesCluster

type CseKubernetesCluster struct {
	CseClusterSettings
	ID                         string
	Etag                       string
	KubernetesVersion          semver.Version
	TkgVersion                 semver.Version
	CapvcdVersion              semver.Version
	ClusterResourceSetBindings []string
	CpiVersion                 semver.Version
	CsiVersion                 semver.Version
	State                      string
	Events                     []CseClusterEvent
	// contains filtered or unexported fields
}

CseKubernetesCluster is a type for managing an existing Kubernetes cluster created by the Container Service Extension (CSE)

func (*CseKubernetesCluster) AddWorkerPools

func (cluster *CseKubernetesCluster) AddWorkerPools(input []CseWorkerPoolSettings, refresh bool) error

AddWorkerPools executes an update on the receiver cluster to add new Worker Pools. If refresh=true, it retrieves the latest state of the cluster from VCD before updating.

func (*CseKubernetesCluster) Delete

func (cluster *CseKubernetesCluster) Delete(timeout time.Duration) error

Delete deletes a CSE Kubernetes cluster, waiting the specified amount of time. If the timeout is reached, this method returns an error, even if the cluster is already marked for deletion.

func (*CseKubernetesCluster) GetKubeconfig

func (cluster *CseKubernetesCluster) GetKubeconfig(refresh bool) (string, error)

GetKubeconfig retrieves the Kubeconfig from an existing CSE Kubernetes cluster that is in provisioned state. If refresh=true, it retrieves the latest state of the cluster from VCD before requesting the Kubeconfig.

func (*CseKubernetesCluster) GetSupportedUpgrades

func (cluster *CseKubernetesCluster) GetSupportedUpgrades(refreshOvas bool) ([]*types.VAppTemplate, error)

GetSupportedUpgrades queries all vApp Templates from VCD, one by one, and returns those that can be used for upgrading the cluster. As retrieving all OVAs one by one from VCD is expensive, the first time this method is called the returned OVAs are cached to avoid querying VCD again multiple times. If refreshOvas=true, this cache is cleared out and this method will query VCD for every vApp Template again. Therefore, the refreshOvas flag should be set to true only when VCD has new OVAs that need to be considered or after a cluster upgrade. NOTE: Any refresh operation from other methods will cause the cache to be cleared.

func (*CseKubernetesCluster) Refresh

func (cluster *CseKubernetesCluster) Refresh() error

Refresh gets the latest information about the receiver CSE Kubernetes cluster and updates its properties. All cached fields such as the supported OVAs list (from CseKubernetesCluster.GetSupportedUpgrades) are also cleared.

func (*CseKubernetesCluster) SetAutoRepairOnErrors

func (cluster *CseKubernetesCluster) SetAutoRepairOnErrors(autoRepairOnErrors bool, refresh bool) error

SetAutoRepairOnErrors executes an update on the receiver cluster to change the flag that controls the auto-repair capabilities of CSE. If refresh=true, it retrieves the latest state of the cluster from VCD before updating. NOTE: This method can only be used in CSE versions < 4.1.1

func (*CseKubernetesCluster) SetNodeHealthCheck

func (cluster *CseKubernetesCluster) SetNodeHealthCheck(healthCheckEnabled bool, refresh bool) error

SetNodeHealthCheck executes an update on the receiver cluster to enable or disable the machine health check capabilities. If refresh=true, it retrieves the latest state of the cluster from VCD before updating.

func (*CseKubernetesCluster) Update

func (cluster *CseKubernetesCluster) Update(input CseClusterUpdateInput, refresh bool) error

Update executes an update on the receiver CSE Kubernetes Cluster on any of the allowed parameters defined in the input type. If refresh=true, it retrieves the latest state of the cluster from VCD before updating.

func (*CseKubernetesCluster) UpdateControlPlane

func (cluster *CseKubernetesCluster) UpdateControlPlane(input CseControlPlaneUpdateInput, refresh bool) error

UpdateControlPlane executes an update on the receiver cluster to change the existing control plane. If refresh=true, it retrieves the latest state of the cluster from VCD before updating.

func (*CseKubernetesCluster) UpdateWorkerPools

func (cluster *CseKubernetesCluster) UpdateWorkerPools(input map[string]CseWorkerPoolUpdateInput, refresh bool) error

UpdateWorkerPools executes an update on the receiver cluster to change the existing Worker Pools. The input is a map where the key is the Worker pool unique name, and the value is the update payload for that Worker Pool. If refresh=true, it retrieves the latest state of the cluster from VCD before updating. WARNING: At least one worker pool must have one or more nodes running, otherwise the cluster will be left in an unusable state.

func (*CseKubernetesCluster) UpgradeCluster

func (cluster *CseKubernetesCluster) UpgradeCluster(kubernetesTemplateOvaId string, refresh bool) error

UpgradeCluster executes an update on the receiver cluster to upgrade the Kubernetes template of the cluster. If the cluster is not upgradeable or the OVA is incorrect, this method will return an error. If refresh=true, it retrieves the latest state of the cluster from VCD before updating.

type CseWorkerPoolAutoscaler

type CseWorkerPoolAutoscaler struct {
	MaxSize int
	MinSize int
}

CseWorkerPoolAutoscaler defines the required configuration of the Autoscaling capabilities of a CSE Kubernetes cluster Worker Pool.

type CseWorkerPoolSettings

type CseWorkerPoolSettings struct {
	Name              string
	MachineCount      int // If the Autoscaler is enabled, this field is ignored
	DiskSizeGi        int
	SizingPolicyId    string                   // Optional
	PlacementPolicyId string                   // Optional
	VGpuPolicyId      string                   // Optional
	StorageProfileId  string                   // Optional
	Autoscaler        *CseWorkerPoolAutoscaler // Optional, enables the Autoscaler if not nil. If it is nil for all worker pools, the Autoscaler will be disabled
}

CseWorkerPoolSettings defines the required configuration of a Worker Pool of a Container Service Extension (CSE) Kubernetes cluster.

type CseWorkerPoolUpdateInput

type CseWorkerPoolUpdateInput struct {
	MachineCount int                      // If the Autoscaler is enabled, this field is ignored
	Autoscaler   *CseWorkerPoolAutoscaler // Optional, enables the Autoscaler if not nil. If it is nil for all worker pools, the Autoscaler will be disabled
}

CseWorkerPoolUpdateInput defines the required configuration that a Worker Pool of the Container Service Extension (CSE) Kubernetes cluster needs in order to be updated.

type DataSolution

type DataSolution struct {
	DataSolution  *types.DataSolution
	DefinedEntity *DefinedEntity
	// contains filtered or unexported fields
}

DataSolution represents Data Solution entities and their repository configurations as can be seen in "Container Registry" UI view

func (*DataSolution) GetAccessControlById

func (ds *DataSolution) GetAccessControlById(id string) (*types.DefinedEntityAccess, error)

GetAccessControlById retrieves ACL by ID

func (*DataSolution) GetAllAccessControls

func (ds *DataSolution) GetAllAccessControls(queryParameters url.Values) ([]*types.DefinedEntityAccess, error)

GetAllAccessControls for a Data Solution

func (*DataSolution) GetAllAccessControlsForTenant

func (ds *DataSolution) GetAllAccessControlsForTenant(tenantId string) ([]*types.DefinedEntityAccess, error)

GetAllAccessControlsForTenant retrieves all ACLs that apply for a specific Tenant

func (*DataSolution) GetAllDataSolutionOrgConfigs

func (ds *DataSolution) GetAllDataSolutionOrgConfigs() ([]*DataSolutionOrgConfig, error)

GetAllDataSolutionOrgConfigs retrieves all available Data Solution Org Configs for a given Data Solution

func (*DataSolution) GetAllInstanceTemplates

func (ds *DataSolution) GetAllInstanceTemplates() ([]*DataSolutionInstanceTemplate, error)

GetAllInstanceTemplates retrieves all Data Solution Instance Templates for a given Data Solution

func (*DataSolution) GetDataSolutionOrgConfigForTenant

func (ds *DataSolution) GetDataSolutionOrgConfigForTenant(tenantId string) (*DataSolutionOrgConfig, error)

GetDataSolutionOrgConfigForTenant retrieves all available Data Solution Org Configs for a given Data Solution and then uses local filter to find the one for given tenantId

func (*DataSolution) Name

func (dsCfg *DataSolution) Name() string

Name extracts the name from inside RDE configuration. This name is used in UI and is not always the same as RDE name. It is guaranteed to persist.

func (*DataSolution) Publish

Publish Data Solution to a tenant It is a bundle of operations that mimics what UI does when performing "publish" operation * Publish rights bundle 'vmware:dataSolutionsRightsBundle' to the tenant * Provision access to particular Data Solution * Always provision access to special Data Solution 'VCD Data Solutions'. This is the package that will install Data Solutions Operator (DSO) to Kubernetes cluster * Publish all templates of the given instance. Note: UI will not show instance templates until the tenant installs Data Solutions Operator (DSO)

func (*DataSolution) PublishAccessControls

func (ds *DataSolution) PublishAccessControls(tenantId string) (*types.DefinedEntityAccess, error)

PublishAccessControls provisions ACL for a given tenant

func (*DataSolution) PublishAllInstanceTemplates

func (ds *DataSolution) PublishAllInstanceTemplates(tenantId string) ([]*types.DefinedEntityAccess, error)

PublishAllInstanceTemplates creates Access Controls for all available Data Solution Instance Templates

func (*DataSolution) PublishRightsBundle

func (ds *DataSolution) PublishRightsBundle(tenantIds []string) error

PublishRightsBundle publishes "vmware:dataSolutionsRightsBundle" rights bundle

func (*DataSolution) RdeId

func (dsCfg *DataSolution) RdeId() string

RdeId is a shorthand function to retrieve parent RDE ID for a Data Solution.

func (*DataSolution) UnPublishAllInstanceTemplates

func (ds *DataSolution) UnPublishAllInstanceTemplates(tenantId string) error

UnPublishAllInstanceTemplates removes all ACLs of a given Data Solution from specified tenantId

func (*DataSolution) Unpublish

func (ds *DataSolution) Unpublish(tenantId string) error

Unpublish Data Solution to a slice of tenants It is a bundle of operations that mimics what UI does when unpublishing and attempts to revert what is done in 'Publish' method * Remove access from given Data Solution

Note. This method (and UI) is asymmetric in comparison to 'Publish' operation. It _does not_ do the following operations: * Unpublish all Data Solution Templates * Unpublish access for Data Solutions Operator (DSO) * Unpublish rights bundle 'vmware:dataSolutionsRightsBundle'

func (*DataSolution) UnpublishAccessControls

func (ds *DataSolution) UnpublishAccessControls(tenantId string) error

UnpublishAccessControls removes ACLs for a given tenant

func (*DataSolution) UnpublishRightsBundle

func (ds *DataSolution) UnpublishRightsBundle(tenantIds []string) error

UnpublishRightsBundle removes "vmware:dataSolutionsRightsBundle" rights bundle from tenant

func (*DataSolution) Update

func (ds *DataSolution) Update(cfg *types.DataSolution) (*DataSolution, error)

Update Data Solution with given configuration

type DataSolutionInstanceTemplate

type DataSolutionInstanceTemplate struct {
	DataSolutionInstanceTemplate *types.DataSolutionInstanceTemplate
	DefinedEntity                *DefinedEntity
	// contains filtered or unexported fields
}

DataSolutionInstanceTemplate represents Data Solution Instance Templates that come with Data Solutions

func (*DataSolutionInstanceTemplate) GetAllAccessControls

func (dst *DataSolutionInstanceTemplate) GetAllAccessControls(queryParameters url.Values) ([]*types.DefinedEntityAccess, error)

GetAllAccessControls retrieves all Access Controls for a given Data Solution Instance Template

func (*DataSolutionInstanceTemplate) GetAllAccessControlsForTenant

func (dst *DataSolutionInstanceTemplate) GetAllAccessControlsForTenant(tenantId string) ([]*types.DefinedEntityAccess, error)

GetAllAccessControlsForTenant retrieves all Access Controls for a given tenant

func (*DataSolutionInstanceTemplate) Name

Name extracts the name from inside RDE configuration. This name is used in UI.

func (*DataSolutionInstanceTemplate) Publish

Publish a single Data Solution Instance Template to a given tenant

func (*DataSolutionInstanceTemplate) RdeId

func (dst *DataSolutionInstanceTemplate) RdeId() string

RdeId is a shortcut of SolutionEntity.DefinedEntity.DefinedEntity.ID

func (*DataSolutionInstanceTemplate) Unpublish

func (dst *DataSolutionInstanceTemplate) Unpublish(tenantId string) error

Unpublish a single Data Solution Instance Template for a given tenant

type DataSolutionOrgConfig

type DataSolutionOrgConfig struct {
	DataSolutionOrgConfig *types.DataSolutionOrgConfig
	DefinedEntity         *DefinedEntity
	// contains filtered or unexported fields
}

DataSolutionOrgConfig structure represents Data Solution Org Configuration. This configuration can carry additional information to Data Solutions if they require it. At the moment of implementation the only known Data Solution that requires this configuration is `Confluent Platform` that uses this structure to store licensing data.

func (*DataSolutionOrgConfig) Delete

func (dsOrgCfg *DataSolutionOrgConfig) Delete() error

Delete Data Solution Org Config

func (*DataSolutionOrgConfig) RdeId

func (dsOrgCfg *DataSolutionOrgConfig) RdeId() string

RdeId is a shortcut of SolutionEntity.DefinedEntity.DefinedEntity.ID

type DateItem

type DateItem struct {
	Name       string
	Date       string
	Entity     interface{}
	EntityType string
}

type DefinedEntity

type DefinedEntity struct {
	DefinedEntity *types.DefinedEntity
	Etag          string // Populated by VCDClient.GetRdeById, DefinedEntityType.GetRdeById, DefinedEntity.Update
	// contains filtered or unexported fields
}

DefinedEntity represents an instance of a Runtime Defined Entity (RDE)

func (*DefinedEntity) AddMetadata

func (rde *DefinedEntity) AddMetadata(metadataEntry types.OpenApiMetadataEntry) (*OpenApiMetadataEntry, error)

AddMetadata adds metadata to the receiver DefinedEntity.

func (*DefinedEntity) Delete

func (rde *DefinedEntity) Delete() error

Delete deletes the receiver Runtime Defined Entity.

func (*DefinedEntity) DeleteAccessControl

func (de *DefinedEntity) DeleteAccessControl(acl *types.DefinedEntityAccess) error

DeleteAccessControl removes a given Access Control

func (*DefinedEntity) GetAccessControlById

func (de *DefinedEntity) GetAccessControlById(id string) (*types.DefinedEntityAccess, error)

GetAccessControlById gets all Defined Entity Access Controls from the receiver DefinedEntity.

func (*DefinedEntity) GetAllAccessControls

func (de *DefinedEntity) GetAllAccessControls(queryParameters url.Values) ([]*types.DefinedEntityAccess, error)

GetAllAccessControls gets all Defined Entity Access Controls from the receiver DefinedEntity. Query parameters can be supplied to modify search criteria.

func (*DefinedEntity) GetMetadata

func (rde *DefinedEntity) GetMetadata() ([]*OpenApiMetadataEntry, error)

GetMetadata returns all the metadata from a DefinedEntity. NOTE: The obtained metadata doesn't have ETags, use GetMetadataById or GetMetadataByKey to obtain a ETag for a specific entry.

func (*DefinedEntity) GetMetadataById

func (rde *DefinedEntity) GetMetadataById(id string) (*OpenApiMetadataEntry, error)

GetMetadataById returns a unique DefinedEntity metadata entry corresponding to the given domain, namespace and key. The domain and namespace are only needed when there's more than one entry with the same key.

func (*DefinedEntity) GetMetadataByKey

func (rde *DefinedEntity) GetMetadataByKey(domain, namespace, key string) (*OpenApiMetadataEntry, error)

GetMetadataByKey returns a unique DefinedEntity metadata entry corresponding to the given domain, namespace and key. The domain and namespace are only needed when there's more than one entry with the same key. This is a more costly operation than GetMetadataById due to ETags, so use that preferred option whenever possible.

func (*DefinedEntity) InvokeBehavior

func (rde *DefinedEntity) InvokeBehavior(behaviorId string, invocation types.BehaviorInvocation) (string, error)

InvokeBehavior calls a Behavior identified by the given ID with the given execution parameters. Returns the invocation result as a raw string.

func (*DefinedEntity) InvokeBehaviorAndMarshal

func (rde *DefinedEntity) InvokeBehaviorAndMarshal(behaviorId string, invocation types.BehaviorInvocation, output interface{}) error

InvokeBehaviorAndMarshal calls a Behavior identified by the given ID with the given execution parameters. Returns the invocation result marshaled with the input object.

func (*DefinedEntity) Refresh

func (rde *DefinedEntity) Refresh() error

Refresh reloads RDE

func (*DefinedEntity) Resolve

func (rde *DefinedEntity) Resolve() error

Resolve needs to be called after an RDE is successfully created. It makes the receiver RDE usable if the JSON entity is valid, reaching a state of RESOLVED. If it fails, the state will be RESOLUTION_ERROR, and it will need to Update the JSON entity. Resolving a RDE populates the ETag field in the receiver object.

func (*DefinedEntity) SetAccessControl

func (de *DefinedEntity) SetAccessControl(acl *types.DefinedEntityAccess) (*types.DefinedEntityAccess, error)

SetAccessControl sets Defined Entity Access Control

func (*DefinedEntity) State

func (rde *DefinedEntity) State() string

State is a function to check if any of the elements in the path to 'rde.DefinedEntity.State' are nil and return 'string' value instead of '*string'

func (*DefinedEntity) Update

func (rde *DefinedEntity) Update(rdeToUpdate types.DefinedEntity) error

Update updates the receiver Runtime Defined Entity with the values given by the input. This method is useful if rde.Resolve() failed and a JSON entity change is needed. Updating a RDE populates the ETag field in the receiver object.

type DefinedEntityType

type DefinedEntityType struct {
	DefinedEntityType *types.DefinedEntityType
	// contains filtered or unexported fields
}

DefinedEntityType is a type for handling Runtime Defined Entity (RDE) Type definitions. Note. Running a few of these operations in parallel may corrupt database in VCD (at least <= 10.4.2)

func (*DefinedEntityType) CreateRde

func (rdeType *DefinedEntityType) CreateRde(entity types.DefinedEntity, tenantContext *TenantContext) (*DefinedEntity, error)

CreateRde creates an entity of the type of the receiver Runtime Defined Entity (RDE) type. The input doesn't need to specify the type ID, as it gets it from the receiver RDE type. The input tenant context allows to create the RDE in a given org if the creator is a System admin. NOTE: After RDE creation, some actor should Resolve it, otherwise the RDE state will be "PRE_CREATED" and the generated VCD task will remain at 1% until resolved.

func (*DefinedEntityType) Delete

func (rdeType *DefinedEntityType) Delete() error

Delete deletes the receiver Runtime Defined Entity Type. Only a System administrator can delete RDE Types.

func (*DefinedEntityType) DeleteBehaviorOverride

func (rdeType *DefinedEntityType) DeleteBehaviorOverride(behaviorId string) error

DeleteBehaviorOverride removes a Behavior specified by its ID from the receiver Defined Entity Type. The ID can be the Interface Behavior ID or the Type Behavior ID (the overridden one).

func (*DefinedEntityType) GetAllBehaviors

func (rdeType *DefinedEntityType) GetAllBehaviors(queryParameters url.Values) ([]*types.Behavior, error)

GetAllBehaviors retrieves all the Behaviors of the receiver RDE Type.

func (*DefinedEntityType) GetAllBehaviorsAccessControls

func (det *DefinedEntityType) GetAllBehaviorsAccessControls(queryParameters url.Values) ([]*types.BehaviorAccess, error)

GetAllBehaviorsAccessControls gets all the Behaviors Access Controls from the receiver DefinedEntityType. Query parameters can be supplied to modify pagination.

func (*DefinedEntityType) GetAllRdes

func (rdeType *DefinedEntityType) GetAllRdes(queryParameters url.Values) ([]*DefinedEntity, error)

GetAllRdes gets all the RDE instances of the receiver type.

func (*DefinedEntityType) GetBehaviorById

func (rdeType *DefinedEntityType) GetBehaviorById(id string) (*types.Behavior, error)

GetBehaviorById retrieves a unique Behavior that belongs to the receiver RDE Type and is determined by the input ID. The ID can be a RDE Interface Behavior ID or a RDE Type overridden Behavior ID.

func (*DefinedEntityType) GetBehaviorByName

func (rdeType *DefinedEntityType) GetBehaviorByName(name string) (*types.Behavior, error)

GetBehaviorByName retrieves a unique Behavior that belongs to the receiver RDE Type and is named after the input.

func (*DefinedEntityType) GetRdeById

func (rdeType *DefinedEntityType) GetRdeById(id string) (*DefinedEntity, error)

GetRdeById gets a Runtime Defined Entity by its ID. Getting a RDE by ID populates the ETag field in the returned object.

func (*DefinedEntityType) GetRdesByName

func (rdeType *DefinedEntityType) GetRdesByName(name string) ([]*DefinedEntity, error)

GetRdesByName gets RDE instances with the given name that belongs to the receiver type. VCD allows to have many RDEs with the same name, hence this function returns a slice.

func (*DefinedEntityType) SetBehaviorAccessControls

func (det *DefinedEntityType) SetBehaviorAccessControls(acls []*types.BehaviorAccess) error

SetBehaviorAccessControls sets the given slice of BehaviorAccess to the receiver Defined Entity Type. If the input is nil, it removes all access controls from the receiver Defined Entity Type.

func (*DefinedEntityType) Update

func (rdeType *DefinedEntityType) Update(rdeTypeToUpdate types.DefinedEntityType) error

Update updates the receiver Runtime Defined Entity Type with the values given by the input. Only a System administrator can create RDE Types.

func (*DefinedEntityType) UpdateBehaviorOverride

func (rdeType *DefinedEntityType) UpdateBehaviorOverride(behavior types.Behavior) (*types.Behavior, error)

UpdateBehaviorOverride overrides an Interface Behavior. Only Behavior description and execution can be overridden. It returns the new Behavior, result of the override (with a new ID).

type DefinedInterface

type DefinedInterface struct {
	DefinedInterface *types.DefinedInterface
	// contains filtered or unexported fields
}

DefinedInterface is a type for handling Defined Interfaces, from the Runtime Defined Entities framework, in VCD. This is often referred as Runtime Defined Entity Interface or RDE Interface in documentation.

func (*DefinedInterface) AddBehavior

func (di *DefinedInterface) AddBehavior(behavior types.Behavior) (*types.Behavior, error)

AddBehavior adds a new Behavior to the receiver DefinedInterface. Only allowed if the Interface is not in use.

func (*DefinedInterface) Delete

func (di *DefinedInterface) Delete() error

Delete deletes the receiver Defined Interface. Only System administrator can delete Defined Interfaces.

func (*DefinedInterface) DeleteBehavior

func (di *DefinedInterface) DeleteBehavior(behaviorId string) error

DeleteBehavior removes a Behavior specified by its ID from the receiver Defined Interface.

func (*DefinedInterface) GetAllBehaviors

func (di *DefinedInterface) GetAllBehaviors(queryParameters url.Values) ([]*types.Behavior, error)

GetAllBehaviors retrieves all the Behaviors of the receiver Defined Interface.

func (*DefinedInterface) GetBehaviorById

func (di *DefinedInterface) GetBehaviorById(id string) (*types.Behavior, error)

GetBehaviorById retrieves a unique Behavior that belongs to the receiver Defined Interface and is determined by the input ID.

func (*DefinedInterface) GetBehaviorByName

func (di *DefinedInterface) GetBehaviorByName(name string) (*types.Behavior, error)

GetBehaviorByName retrieves a unique Behavior that belongs to the receiver Defined Interface and is named after the input.

func (*DefinedInterface) Update

func (di *DefinedInterface) Update(definedInterface types.DefinedInterface) error

Update updates the receiver Defined Interface with the values given by the input. Only System administrator can update Defined Interfaces.

func (*DefinedInterface) UpdateBehavior

func (di *DefinedInterface) UpdateBehavior(behavior types.Behavior) (*types.Behavior, error)

UpdateBehavior updates a Behavior specified by the input.

type DhcpSettings

type DhcpSettings struct {
	IsEnabled        bool
	MaxLeaseTime     int
	DefaultLeaseTime int
	IPRange          *types.IPRange
}

struct type used to pass information for vApp network DHCP

type Disk

type Disk struct {
	Disk *types.Disk
	// contains filtered or unexported fields
}

Independent disk

func FindDiskByHREF

func FindDiskByHREF(client *Client, href string) (*Disk, error)

Find an independent disk by VDC client and disk href Deprecated: Use VDC.GetDiskByHref()

func NewDisk

func NewDisk(cli *Client) *Disk

Init independent disk struct

func (*Disk) AddMetadataEntry

func (disk *Disk) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds metadata key/value pair provided as input to the corresponding independent disk and waits for completion. Deprecated: Use Disk.AddMetadataEntryWithVisibility instead

func (*Disk) AddMetadataEntryAsync

func (disk *Disk) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds metadata key/value pair provided as input to the corresponding independent disk and returns a task. Deprecated: Use Disk.AddMetadataEntryWithVisibilityAsync instead

func (*Disk) AddMetadataEntryWithVisibility

func (disk *Disk) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver Disk and waits for the task to finish.

func (*Disk) AddMetadataEntryWithVisibilityAsync

func (disk *Disk) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given Disk with the given key, value, type and visibility and returns the task.

func (*Disk) AttachedVM

func (disk *Disk) AttachedVM() (*types.Reference, error)

Get a VM that is attached the disk An independent disk can be attached to at most one virtual machine. If the disk isn't attached to any VM, return empty VM reference and no error. Otherwise return the first VM reference and no error. Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 107, https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf

func (*Disk) Delete

func (disk *Disk) Delete() (Task, error)

Remove an independent disk 1 Verify the independent disk is not connected to any VM 2 Delete the independent disk. Make a DELETE request to the URL in the rel="remove" link in the Disk 3 Return task of independent disk deletion If the independent disk is connected to a VM, the task will be failed. Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 106 - 107, https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf

func (*Disk) DeleteMetadataEntry

func (disk *Disk) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes metadata of the corresponding independent disk with the given key, and waits for completion Deprecated: Use Disk.DeleteMetadataEntryWithDomain instead

func (*Disk) DeleteMetadataEntryAsync

func (disk *Disk) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes metadata of the corresponding independent disk with the given key, and returns a task. Deprecated: Use Disk.DeleteMetadataEntryWithDomainAsync instead

func (*Disk) DeleteMetadataEntryWithDomain

func (disk *Disk) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes Disk metadata associated to the input key and waits for the task to finish.

func (*Disk) DeleteMetadataEntryWithDomainAsync

func (disk *Disk) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes Disk metadata associated to the input key and returns the task.

func (*Disk) GetAttachedVmsHrefs

func (disk *Disk) GetAttachedVmsHrefs() ([]string, error)

Get a VMs HREFs that is attached to the disk An independent disk can be attached to at most one virtual machine. If the disk isn't attached to any VM, return empty slice. Otherwise return the list of VMs HREFs.

func (*Disk) GetMetadata

func (disk *Disk) GetMetadata() (*types.Metadata, error)

GetMetadata returns the metadata of the corresponding independent disk

func (*Disk) GetMetadataByKey

func (disk *Disk) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns the metadata corresponding to the given key and domain.

func (*Disk) MergeMetadata

func (disk *Disk) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges Disk metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use Disk.MergeMetadataWithMetadataValues

func (*Disk) MergeMetadataAsync

func (disk *Disk) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges Disk metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use Disk.MergeMetadataWithMetadataValuesAsync

func (*Disk) MergeMetadataWithMetadataValues

func (disk *Disk) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver Disk and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*Disk) MergeMetadataWithMetadataValuesAsync

func (disk *Disk) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges Disk metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*Disk) Refresh

func (disk *Disk) Refresh() error

Refresh the disk information by disk href

func (*Disk) Update

func (disk *Disk) Update(newDiskInfo *types.Disk) (Task, error)

Update an independent disk 1 Verify the independent disk is not connected to any VM 2 Use newDiskInfo to change update the independent disk 3 Return task of independent disk update If the independent disk is connected to a VM, the task will be failed. Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 104 - 106, https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf

type DiskRecord

type DiskRecord struct {
	Disk *types.DiskRecordType
	// contains filtered or unexported fields
}

Independent disk query record

func NewDiskRecord

func NewDiskRecord(cli *Client) *DiskRecord

Create instance with reference to types.DiskRecordType

type DistributedFirewall

type DistributedFirewall struct {
	DistributedFirewallRuleContainer *types.DistributedFirewallRules

	VdcGroup *VdcGroup
	// contains filtered or unexported fields
}

DistributedFirewall contains a types.DistributedFirewallRules which handles Distributed Firewall rules in a VDC Group

func (*DistributedFirewall) DeleteAllRules

func (firewall *DistributedFirewall) DeleteAllRules() error

DeleteAllRules removes all Distributed Firewall rules

Note. This function works only with `default` policy as this was the only supported when this functions was created

type DistributedFirewallRule

type DistributedFirewallRule struct {
	Rule *types.DistributedFirewallRule

	VdcGroup *VdcGroup
	// contains filtered or unexported fields
}

DistributedFirewallRule is a representation of a single rule

func (*DistributedFirewallRule) Delete

func (dfwRule *DistributedFirewallRule) Delete() error

Delete a single Distributed Firewall Rule

func (*DistributedFirewallRule) Update

Update a single Distributed Firewall Rule

type EdgeBgpIpPrefixList

type EdgeBgpIpPrefixList struct {
	EdgeBgpIpPrefixList *types.EdgeBgpIpPrefixList
	// contains filtered or unexported fields
}

EdgeBgpIpPrefixList helps to configure BGP IP Prefix Lists in NSX-T Edge Gateways

func (*EdgeBgpIpPrefixList) Delete

func (bgpIpPrefixListCfg *EdgeBgpIpPrefixList) Delete() error

Delete deletes existing BGP IP Prefix List

func (*EdgeBgpIpPrefixList) Update

func (bgpIpPrefixListCfg *EdgeBgpIpPrefixList) Update(bgpIpPrefixList *types.EdgeBgpIpPrefixList) (*EdgeBgpIpPrefixList, error)

Update updates existing BGP IP Prefix List with new configuration and returns it

type EdgeBgpNeighbor

type EdgeBgpNeighbor struct {
	EdgeBgpNeighbor *types.EdgeBgpNeighbor
	// contains filtered or unexported fields
}

EdgeBgpNeighbor represents NSX-T Edge Gateway BGP Neighbor

func (*EdgeBgpNeighbor) Delete

func (bgpNeighbor *EdgeBgpNeighbor) Delete() error

Delete deletes existing BGP Neighbor

func (*EdgeBgpNeighbor) Update

func (bgpNeighbor *EdgeBgpNeighbor) Update(bgpNeighborConfig *types.EdgeBgpNeighbor) (*EdgeBgpNeighbor, error)

Update updates existing BGP Neighbor with new configuration and returns it

type EdgeGateway

type EdgeGateway struct {
	EdgeGateway *types.EdgeGateway
	// contains filtered or unexported fields
}

func CreateAndConfigureEdgeGateway

func CreateAndConfigureEdgeGateway(vcdClient *VCDClient, orgName, vdcName, egwName string, egwConfiguration *types.EdgeGateway) (EdgeGateway, error)

CreateAndConfigureEdgeGateway creates an edge gateway using a full configuration structure

func CreateEdgeGateway

func CreateEdgeGateway(vcdClient *VCDClient, egwc EdgeGatewayCreation) (EdgeGateway, error)

CreateEdgeGateway creates an edge gateway using a simplified configuration structure

func NewEdgeGateway

func NewEdgeGateway(cli *Client) *EdgeGateway

func (*EdgeGateway) AddDNATRule

func (egw *EdgeGateway) AddDNATRule(ruleDetails NatRule) (*types.NatRule, error)

AddDNATRule creates DNAT rule and returns the NAT struct that was created or an error. Allows assigning a specific Org VDC or an external network. When edge gateway is advanced vCD API uses element <tag> to map with NSX edge gateway ID. A known issue is that updating rule using User interface resets <tag> and as result mapping is lost. Getting using NatRule.ID won't be valid anymore. Old functions AddNATPortMapping and AddNATMapping assigned rule only to first external network

func (*EdgeGateway) AddDhcpPool

func (egw *EdgeGateway) AddDhcpPool(network *types.OrgVDCNetwork, dhcppool []interface{}) (Task, error)

AddDhcpPool adds (or updates) the DHCP pool connected to a specific network. TODO: this is legacy code from 2015, which requires a Terraform structure to work. It may need some re-thinking.

func (*EdgeGateway) AddIpsecVPN

func (egw *EdgeGateway) AddIpsecVPN(ipsecVPNConfig *types.EdgeGatewayServiceConfiguration) (Task, error)

func (*EdgeGateway) AddNATMapping deprecated

func (egw *EdgeGateway) AddNATMapping(natType, externalIP, internalIP string) (Task, error)

Deprecated: Use eGW.AddNATRule()

func (*EdgeGateway) AddNATPortMapping deprecated

func (egw *EdgeGateway) AddNATPortMapping(natType, externalIP, externalPort, internalIP, internalPort, protocol, icmpSubType string) (Task, error)

Deprecated: Use eGW.AddNATPortMappingWithUplink()

func (egw *EdgeGateway) AddNATPortMappingWithUplink(network *types.OrgVDCNetwork, natType, externalIP, externalPort, internalIP, internalPort, protocol, icmpSubType string) (Task, error)

Deprecated: Use eGW.AddDNATRule() or eGW.CreateNsxvNatRule() for NSX-V

func (*EdgeGateway) AddNATRule deprecated

func (egw *EdgeGateway) AddNATRule(network *types.OrgVDCNetwork, natType, externalIP, internalIP string) (Task, error)

Deprecated: Use eGW.AddSNATRule() or eGW.AddDNATRule()

func (*EdgeGateway) AddNATRuleAsync

func (egw *EdgeGateway) AddNATRuleAsync(ruleDetails NatRule) (Task, error)

AddNATRuleAsync creates NAT rule and return task or err Allows assigning specific network Org VDC or external. Old function AddNATPortMapping and AddNATMapping function shouldn't be used because assigns rule to first external network

func (*EdgeGateway) AddSNATRule

func (egw *EdgeGateway) AddSNATRule(networkHref, externalIP, internalIP, description string) (*types.NatRule, error)

AddSNATRule creates SNAT rule and returns created NAT rule or error. Allows assigning a specific Org VDC or an external network. Old functions AddNATPortMapping and AddNATMapping aren't correct as assigned rule only to first external network

func (*EdgeGateway) Create1to1Mapping

func (egw *EdgeGateway) Create1to1Mapping(internal, external, description string) (Task, error)

func (*EdgeGateway) CreateFirewallRules

func (egw *EdgeGateway) CreateFirewallRules(defaultAction string, rules []*types.FirewallRule) (Task, error)

func (*EdgeGateway) CreateLbAppProfile

func (egw *EdgeGateway) CreateLbAppProfile(lbAppProfileConfig *types.LbAppProfile) (*types.LbAppProfile, error)

CreateLbAppProfile creates a load balancer application profile based on mandatory fields. It is a synchronous operation. It returns created object with all fields (including ID) populated or an error.

func (*EdgeGateway) CreateLbAppRule

func (egw *EdgeGateway) CreateLbAppRule(lbAppRuleConfig *types.LbAppRule) (*types.LbAppRule, error)

CreateLbAppRule creates a load balancer application rule based on mandatory fields. It is a synchronous operation. It returns created object with all fields (including ID) populated or an error.

func (*EdgeGateway) CreateLbServerPool

func (egw *EdgeGateway) CreateLbServerPool(lbPoolConfig *types.LbPool) (*types.LbPool, error)

CreateLbServerPool creates a load balancer server pool based on mandatory fields. It is a synchronous operation. It returns created object with all fields (including ID) populated or an error. Name and Algorithm fields must be populated.

func (*EdgeGateway) CreateLbServiceMonitor

func (egw *EdgeGateway) CreateLbServiceMonitor(lbMonitorConfig *types.LbMonitor) (*types.LbMonitor, error)

CreateLbServiceMonitor creates a load balancer service monitor based on mandatory fields. It is a synchronous operation. It returns created object with all fields (including ID) populated or an error.

func (*EdgeGateway) CreateLbVirtualServer

func (egw *EdgeGateway) CreateLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer) (*types.LbVirtualServer, error)

CreateLbVirtualServer creates a load balancer virtual server based on mandatory fields. It is a synchronous operation. It returns created object with all fields (including ID) populated or an error. Name, Protocol, Port and IpAddress fields must be populated

func (*EdgeGateway) CreateNsxvFirewallRule

func (egw *EdgeGateway) CreateNsxvFirewallRule(firewallRuleConfig *types.EdgeFirewallRule, aboveRuleId string) (*types.EdgeFirewallRule, error)

CreateNsxvFirewallRule creates firewall rule using proxied NSX-V API. It is a synchronous operation. It returns an object with all fields populated (including ID) If aboveRuleId is not empty, it will send a query parameter aboveRuleId= which instructs NSX to place this rule above the specified rule ID

func (*EdgeGateway) CreateNsxvNatRule

func (egw *EdgeGateway) CreateNsxvNatRule(natRuleConfig *types.EdgeNatRule) (*types.EdgeNatRule, error)

CreateNsxvNatRule creates NAT rule using proxied NSX-V API. It is a synchronuous operation. It returns an object with all fields populated (including ID)

func (*EdgeGateway) Delete

func (egw *EdgeGateway) Delete(force bool, recursive bool) error

Deletes the edge gateway, returning an error with the operation result. https://code.vmware.com/apis/442/vcloud-director/doc/doc/operations/DELETE-EdgeGateway.html

func (*EdgeGateway) DeleteAsync

func (egw *EdgeGateway) DeleteAsync(force bool, recursive bool) (Task, error)

Deletes the edge gateway, returning a task and an error with the operation result. https://code.vmware.com/apis/442/vcloud-director/doc/doc/operations/DELETE-EdgeGateway.html

func (*EdgeGateway) DeleteLbAppProfile

func (egw *EdgeGateway) DeleteLbAppProfile(lbAppProfileConfig *types.LbAppProfile) error

DeleteLbAppProfile is able to delete the types.LbAppProfile type by Name and/or ID. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) DeleteLbAppProfileById

func (egw *EdgeGateway) DeleteLbAppProfileById(id string) error

DeleteLbAppProfileById wraps DeleteLbAppProfile and requires only ID for deletion

func (*EdgeGateway) DeleteLbAppProfileByName

func (egw *EdgeGateway) DeleteLbAppProfileByName(name string) error

DeleteLbAppProfileByName wraps DeleteLbAppProfile and requires only Name for deletion

func (*EdgeGateway) DeleteLbAppRule

func (egw *EdgeGateway) DeleteLbAppRule(lbAppRuleConfig *types.LbAppRule) error

DeleteLbAppRule is able to delete the types.LbAppRule type by Name and/or ID. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) DeleteLbAppRuleById

func (egw *EdgeGateway) DeleteLbAppRuleById(id string) error

DeleteLBAppRuleById wraps DeleteLbAppRule and requires only ID for deletion

func (*EdgeGateway) DeleteLbAppRuleByName

func (egw *EdgeGateway) DeleteLbAppRuleByName(name string) error

DeleteLbAppRuleByName wraps DeleteLbAppRule and requires only Name for deletion

func (*EdgeGateway) DeleteLbServerPool

func (egw *EdgeGateway) DeleteLbServerPool(lbPoolConfig *types.LbPool) error

DeleteLbServerPool is able to delete the types.LbPool type by Name and/or ID. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) DeleteLbServerPoolById

func (egw *EdgeGateway) DeleteLbServerPoolById(id string) error

DeleteLbServerPoolById wraps DeleteLbServerPool and requires only ID for deletion

func (*EdgeGateway) DeleteLbServerPoolByName

func (egw *EdgeGateway) DeleteLbServerPoolByName(name string) error

DeleteLbServerPoolByName wraps DeleteLbServerPool and requires only Name for deletion

func (*EdgeGateway) DeleteLbServiceMonitor

func (egw *EdgeGateway) DeleteLbServiceMonitor(lbMonitorConfig *types.LbMonitor) error

DeleteLbServiceMonitor is able to delete the types.LbMonitor type by Name and/or ID. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) DeleteLbServiceMonitorById

func (egw *EdgeGateway) DeleteLbServiceMonitorById(id string) error

DeleteLbServiceMonitorById wraps DeleteLbServiceMonitor and requires only ID for deletion

func (*EdgeGateway) DeleteLbServiceMonitorByName

func (egw *EdgeGateway) DeleteLbServiceMonitorByName(name string) error

DeleteLbServiceMonitorByName wraps DeleteLbServiceMonitor and requires only Name for deletion

func (*EdgeGateway) DeleteLbVirtualServer

func (egw *EdgeGateway) DeleteLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer) error

DeleteLbVirtualServer is able to delete the types.LbVirtualServer type by Name and/or ID. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) DeleteLbVirtualServerById

func (egw *EdgeGateway) DeleteLbVirtualServerById(id string) error

DeleteLbVirtualServerById wraps DeleteLbVirtualServer and requires only ID for deletion

func (*EdgeGateway) DeleteLbVirtualServerByName

func (egw *EdgeGateway) DeleteLbVirtualServerByName(name string) error

DeleteLbVirtualServerByName wraps DeleteLbVirtualServer and requires only Name for deletion

func (*EdgeGateway) DeleteNsxvFirewallRuleById

func (egw *EdgeGateway) DeleteNsxvFirewallRuleById(id string) error

DeleteNsxvFirewallRuleById deletes types.EdgeFirewallRule by real (not the number shown in UI) firewall rule ID as shown in the UI using proxied NSX-V API. It returns and error `ErrorEntityNotFound` if the firewall rule is not found.

func (*EdgeGateway) DeleteNsxvNatRuleById

func (egw *EdgeGateway) DeleteNsxvNatRuleById(id string) error

DeleteNsxvNatRuleById deletes types.EdgeNatRule by NAT rule ID as shown in the UI using proxied NSX-V API. It returns and error `ErrorEntityNotFound` if the NAT rule is now found.

func (*EdgeGateway) GetAllNsxvDhcpLeases

func (egw *EdgeGateway) GetAllNsxvDhcpLeases() ([]*types.EdgeDhcpLeaseInfo, error)

GetAllNsxvDhcpLeases retrieves all DHCP leases defined in NSX-V edge gateway

func (*EdgeGateway) GetAllNsxvFirewallRules

func (egw *EdgeGateway) GetAllNsxvFirewallRules() ([]*types.EdgeFirewallRule, error)

GetAllNsxvFirewallRules retrieves all firewall rules and returns []*types.EdgeFirewallRule or an error of type ErrorEntityNotFound if there are no firewall rules

func (*EdgeGateway) GetAnyVnicIndexByNetworkName

func (egw *EdgeGateway) GetAnyVnicIndexByNetworkName(networkName string) (*int, string, error)

GetAnyVnicIndexByNetworkName parses XML structure of vNic mapping to networks in edge gateway XML and returns *int of vNic index and network type by network name networkName cannot be empty networkType will be one of: 'internal', 'uplink', 'trunk', 'subinterface'

Warning: this function assumes that there are no duplicate network names attached. If it is so this function will return the first network

func (*EdgeGateway) GetDhcpRelay

func (egw *EdgeGateway) GetDhcpRelay() (*types.EdgeDhcpRelay, error)

GetDhcpRelay retrieves a structure of *types.EdgeDhcpRelay with all DHCP relay settings present on a particular edge gateway.

func (*EdgeGateway) GetFirewallConfig

func (egw *EdgeGateway) GetFirewallConfig() (*types.FirewallConfigWithXml, error)

GetFirewallConfig retrieves firewall configuration and can be used to alter main configuration options. These are 3 fields only: FirewallConfigWithXml.Enabled, FirewallConfigWithXml.DefaultPolicy.LoggingEnabled and FirewallConfigWithXml.DefaultPolicy.Action

func (*EdgeGateway) GetLBGeneralParams

func (egw *EdgeGateway) GetLBGeneralParams() (*types.LbGeneralParamsWithXml, error)

GetLBGeneralParams retrieves load balancer configuration of `&types.LoadBalancer` and can be used to access global configuration options. These are 4 fields only: LoadBalancer.Enabled, LoadBalancer.AccelerationEnabled, LoadBalancer.Logging.Enable, LoadBalancer.Logging.LogLevel

func (*EdgeGateway) GetLbAppProfileById

func (egw *EdgeGateway) GetLbAppProfileById(id string) (*types.LbAppProfile, error)

GetLbAppProfileById wraps getLbAppProfile and needs only an ID for lookup

func (*EdgeGateway) GetLbAppProfileByName

func (egw *EdgeGateway) GetLbAppProfileByName(name string) (*types.LbAppProfile, error)

GetLbAppProfileByName wraps getLbAppProfile and needs only a Name for lookup

func (*EdgeGateway) GetLbAppProfiles

func (egw *EdgeGateway) GetLbAppProfiles() ([]*types.LbAppProfile, error)

GetLbAppProfiles returns a list of all LB application profiles in a given edge gateway

func (*EdgeGateway) GetLbAppRuleById

func (egw *EdgeGateway) GetLbAppRuleById(id string) (*types.LbAppRule, error)

ReadLBAppRuleById wraps getLbAppRule and needs only an ID for lookup

func (*EdgeGateway) GetLbAppRuleByName

func (egw *EdgeGateway) GetLbAppRuleByName(name string) (*types.LbAppRule, error)

GetLbAppRuleByName wraps getLbAppRule and needs only a Name for lookup

func (*EdgeGateway) GetLbAppRules

func (egw *EdgeGateway) GetLbAppRules() ([]*types.LbAppRule, error)

GetLbAppRules returns a list of all LB application rules for a given edge gateway

func (*EdgeGateway) GetLbServerPoolById

func (egw *EdgeGateway) GetLbServerPoolById(id string) (*types.LbPool, error)

GetLbServerPoolByName wraps getLbServerPool and needs only an ID for lookup

func (*EdgeGateway) GetLbServerPoolByName

func (egw *EdgeGateway) GetLbServerPoolByName(name string) (*types.LbPool, error)

GetLbServerPoolByName wraps getLbServerPool and needs only a Name for lookup

func (*EdgeGateway) GetLbServerPools

func (egw *EdgeGateway) GetLbServerPools() ([]*types.LbPool, error)

GetLbServerPools return all created server pools without filtering.

func (*EdgeGateway) GetLbServiceMonitorById

func (egw *EdgeGateway) GetLbServiceMonitorById(id string) (*types.LbMonitor, error)

GetLbServiceMonitorById wraps getLbServiceMonitor and needs only an ID for lookup

func (*EdgeGateway) GetLbServiceMonitorByName

func (egw *EdgeGateway) GetLbServiceMonitorByName(name string) (*types.LbMonitor, error)

GetLbServiceMonitorByName wraps getLbServiceMonitor and needs only a Name for lookup

func (*EdgeGateway) GetLbServiceMonitors

func (egw *EdgeGateway) GetLbServiceMonitors() ([]*types.LbMonitor, error)

GetLbServiceMonitors return all service monitors without filtering

func (*EdgeGateway) GetLbVirtualServerById

func (egw *EdgeGateway) GetLbVirtualServerById(id string) (*types.LbVirtualServer, error)

GetLbVirtualServerById wraps getLbVirtualServers and needs only an ID for lookup

func (*EdgeGateway) GetLbVirtualServerByName

func (egw *EdgeGateway) GetLbVirtualServerByName(name string) (*types.LbVirtualServer, error)

GetLbVirtualServerByName wraps getLbVirtualServers and needs only a Name for lookup

func (*EdgeGateway) GetLbVirtualServers

func (egw *EdgeGateway) GetLbVirtualServers() ([]*types.LbVirtualServer, error)

GetLbVirtualServers is getting all virtual servers without filtering anything

func (*EdgeGateway) GetNatRule

func (egw *EdgeGateway) GetNatRule(id string) (*types.NatRule, error)

GetNatRule returns NAT rule or error.

func (*EdgeGateway) GetNetworkNameAndTypeByVnicIndex

func (egw *EdgeGateway) GetNetworkNameAndTypeByVnicIndex(vNicIndex int) (string, string, error)

GetNetworkNameAndTypeByVnicIndex returns network name and network type for given vNic index returned networkType can be one of: 'internal', 'uplink', 'trunk', 'subinterface'

func (*EdgeGateway) GetNetworks

func (egw *EdgeGateway) GetNetworks() ([]SimpleNetworkIdentifier, error)

GetNetworks returns the list of networks associated with an edge gateway In the return structure, an interfaceType of "uplink" indicates an external network, while "internal" is for Org VDC routed networks

func (*EdgeGateway) GetNsxvActiveDhcpLeaseByMac

func (egw *EdgeGateway) GetNsxvActiveDhcpLeaseByMac(mac string) (*types.EdgeDhcpLeaseInfo, error)

GetNsxvActiveDhcpLeaseByMac finds active DHCP lease for a given hardware address (MAC)

func (*EdgeGateway) GetNsxvFirewallRuleById

func (egw *EdgeGateway) GetNsxvFirewallRuleById(id string) (*types.EdgeFirewallRule, error)

GetNsxvFirewallRuleById retrieves types.EdgeFirewallRule by real (not the number shown in UI) firewall rule ID as shown in the UI using proxied NSX-V API. It returns and error `ErrorEntityNotFound` if the firewall rule is not found

func (*EdgeGateway) GetNsxvNatRuleById

func (egw *EdgeGateway) GetNsxvNatRuleById(id string) (*types.EdgeNatRule, error)

GetNsxvNatRuleById retrieves types.EdgeNatRule by NAT rule ID as shown in the UI using proxied NSX-V API. It returns and error `ErrorEntityNotFound` if the NAT rule is not found.

func (*EdgeGateway) GetNsxvNatRules

func (egw *EdgeGateway) GetNsxvNatRules() ([]*types.EdgeNatRule, error)

GetNsxvNatRules returns a list of all NAT rules in a given edge gateway

func (*EdgeGateway) GetVnicIndexByNetworkNameAndType

func (egw *EdgeGateway) GetVnicIndexByNetworkNameAndType(networkName, networkType string) (*int, error)

GetVnicIndexByNetworkNameAndType returns *int of vNic index for specified network name and network type networkType one of: 'internal', 'uplink', 'trunk', 'subinterface' networkName cannot be empty

func (*EdgeGateway) HasAdvancedNetworking

func (egw *EdgeGateway) HasAdvancedNetworking() bool

HasAdvancedNetworking returns true if the edge gateway has advanced network configuration enabled

func (*EdgeGateway) HasDefaultGateway

func (egw *EdgeGateway) HasDefaultGateway() bool

HasDefaultGateway returns true if the edge gateway uses one of the external networks as default gateway

func (*EdgeGateway) Refresh

func (egw *EdgeGateway) Refresh() error

func (*EdgeGateway) Remove1to1Mapping

func (egw *EdgeGateway) Remove1to1Mapping(internal, external string) (Task, error)

func (*EdgeGateway) RemoveIpsecVPN

func (egw *EdgeGateway) RemoveIpsecVPN() (Task, error)

Removes an Edge Gateway VPN, by passing an empty configuration

func (*EdgeGateway) RemoveNATMapping deprecated

func (egw *EdgeGateway) RemoveNATMapping(natType, externalIP, internalIP, port string) (Task, error)

Deprecated: use one of RemoveNATRuleAsync, RemoveNATRule

func (*EdgeGateway) RemoveNATPortMapping deprecated

func (egw *EdgeGateway) RemoveNATPortMapping(natType, externalIP, externalPort, internalIP, internalPort string) (Task, error)

Deprecated: use one of RemoveNATRuleAsync, RemoveNATRule

func (*EdgeGateway) RemoveNATRule

func (egw *EdgeGateway) RemoveNATRule(id string) error

RemoveNATRule removes NAT removes NAT rule identified by ID and handles task. Returns error if issues rise. Old functions RemoveNATPortMapping and RemoveNATMapping removed using rule details and expected interface to be of external network type.

func (*EdgeGateway) RemoveNATRuleAsync

func (egw *EdgeGateway) RemoveNATRuleAsync(id string) (Task, error)

RemoveNATRuleAsync removes NAT rule or returns an error. Old functions RemoveNATPortMapping and RemoveNATMapping removed using rule details and expected interface to be of external network type.

func (*EdgeGateway) ResetDhcpRelay

func (egw *EdgeGateway) ResetDhcpRelay() error

ResetDhcpRelay removes all configuration by sending a DELETE request for DHCP relay configuration endpoint

func (*EdgeGateway) Update

func (egw *EdgeGateway) Update() error

Update is a wrapper around UpdateAsync The pointer receiver is refreshed after update

func (*EdgeGateway) UpdateAsync

func (egw *EdgeGateway) UpdateAsync() (Task, error)

UpdateAsync updates the edge gateway in place with the information contained in the internal structure

func (*EdgeGateway) UpdateDhcpRelay

func (egw *EdgeGateway) UpdateDhcpRelay(dhcpRelayConfig *types.EdgeDhcpRelay) (*types.EdgeDhcpRelay, error)

UpdateDhcpRelay updates DHCP relay settings for a particular edge gateway and returns them. The feature itself enables you to leverage your existing DHCP infrastructure from within NSX without any interruption to the IP address management in your environment. DHCP messages are relayed from virtual machine(s) to the designated DHCP server(s) in the physical world. This enables IP addresses within NSX to continue to be in sync with IP addresses in other environments.

func (*EdgeGateway) UpdateFirewallConfig

func (egw *EdgeGateway) UpdateFirewallConfig(enabled, defaultLoggingEnabled bool, defaultAction string) (*types.FirewallConfigWithXml, error)

UpdateFirewallConfig allows to update firewall configuration. It accepts three fields (Enabled, DefaultLoggingEnabled, DefaultAction) and uses them to construct types.FirewallConfigWithXml without altering other options to prevent config corruption. They are represented in firewall configuration page in the UI.

func (*EdgeGateway) UpdateLBGeneralParams

func (egw *EdgeGateway) UpdateLBGeneralParams(enabled, accelerationEnabled, loggingEnabled bool, logLevel string) (*types.LbGeneralParamsWithXml, error)

UpdateLBGeneralParams allows to update global load balancer configuration. It accepts four fields (Enabled, AccelerationEnabled, Logging.Enable, Logging.LogLevel) and uses them to construct types.LbGeneralParamsWithXml without altering other options to prevent config corruption. They are represented in load balancer global configuration tab in the UI.

func (*EdgeGateway) UpdateLbAppProfile

func (egw *EdgeGateway) UpdateLbAppProfile(lbAppProfileConfig *types.LbAppProfile) (*types.LbAppProfile, error)

UpdateLbAppProfile updates types.LbAppProfile with all fields. At least name or ID must be specified. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) UpdateLbAppRule

func (egw *EdgeGateway) UpdateLbAppRule(lbAppRuleConfig *types.LbAppRule) (*types.LbAppRule, error)

UpdateLbAppRule updates types.LbAppRule with all fields. At least name or ID must be specified. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) UpdateLbServerPool

func (egw *EdgeGateway) UpdateLbServerPool(lbPoolConfig *types.LbPool) (*types.LbPool, error)

UpdateLbServerPool updates types.LbPool with all fields. At least name or ID must be specified. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match. Name and Algorithm fields must be populated.

func (*EdgeGateway) UpdateLbServiceMonitor

func (egw *EdgeGateway) UpdateLbServiceMonitor(lbMonitorConfig *types.LbMonitor) (*types.LbMonitor, error)

UpdateLbServiceMonitor updates types.LbMonitor with all fields. At least name or ID must be specified. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match.

func (*EdgeGateway) UpdateLbVirtualServer

func (egw *EdgeGateway) UpdateLbVirtualServer(lbVirtualServerConfig *types.LbVirtualServer) (*types.LbVirtualServer, error)

UpdateLbVirtualServer updates types.LbVirtualServer with all fields. At least name or ID must be specified. If both - Name and ID are specified it performs a lookup by ID and returns an error if the specified name and found name do not match. Name, Protocol, Port and IpAddress fields must be populated

func (*EdgeGateway) UpdateNatRule

func (egw *EdgeGateway) UpdateNatRule(natRule *types.NatRule) (*types.NatRule, error)

UpdateNatRule updates NAT rule and handles task. Returns updated NAT rule or error.

func (*EdgeGateway) UpdateNatRuleAsync

func (egw *EdgeGateway) UpdateNatRuleAsync(natRule *types.NatRule) (Task, error)

UpdateNatRuleAsync updates NAT rule and returns task or error.

func (*EdgeGateway) UpdateNsxvFirewallRule

func (egw *EdgeGateway) UpdateNsxvFirewallRule(firewallRuleConfig *types.EdgeFirewallRule) (*types.EdgeFirewallRule, error)

UpdateNsxvFirewallRule updates types.EdgeFirewallRule with all fields using proxied NSX-V API. Real firewall rule ID (not the number shown in UI) is mandatory to perform the update.

func (*EdgeGateway) UpdateNsxvNatRule

func (egw *EdgeGateway) UpdateNsxvNatRule(natRuleConfig *types.EdgeNatRule) (*types.EdgeNatRule, error)

UpdateNsxvNatRule updates types.EdgeNatRule with all fields using proxied NSX-V API. ID is mandatory to perform the update.

type EdgeGatewayCreation

type EdgeGatewayCreation struct {
	ExternalNetworks           []string // List of external networks to be linked to this gateway
	DefaultGateway             string   // Which network should be used as default gateway (empty name = no default gateway)
	OrgName                    string   // parent Org
	VdcName                    string   // parent VDC
	Name                       string   // edge gateway name
	Description                string   // Optional description
	BackingConfiguration       string   // Type of backing configuration (compact, full)
	AdvancedNetworkingEnabled  bool     // enable advanced gateway
	HAEnabled                  bool     // enable HA
	UseDefaultRouteForDNSRelay bool     // True if the default gateway should be used as the DNS relay
	DistributedRoutingEnabled  bool     // If advanced networking enabled, also enable distributed routing
}

Simple structure to pass Edge Gateway creation parameters.

type EjectTask

type EjectTask struct {
	*Task
	// contains filtered or unexported fields
}

func NewEjectTask

func NewEjectTask(task *Task, vm *VM) *EjectTask

Creates wrapped Task which is dedicated for eject media functionality and provides additional functionality to answer VM questions

func (*EjectTask) WaitInspectTaskCompletion

func (ejectTask *EjectTask) WaitInspectTaskCompletion(isAnswerYes bool, delay time.Duration) error

function which handles answers for ejecting

func (*EjectTask) WaitTaskCompletion

func (ejectTask *EjectTask) WaitTaskCompletion(isAnswerYes bool) error

Checks the status of the task every 3 seconds and returns when the eject task is either completed or failed

type Envelope

type Envelope struct {
	File []struct {
		HREF      string `xml:"href,attr"`
		ID        string `xml:"id,attr"`
		Size      int    `xml:"size,attr"`
		ChunkSize int    `xml:"chunkSize,attr"`
	} `xml:"References>File"`
}

Envelope is a ovf description root element. File contains information for vmdk files. Namespace: http://schemas.dmtf.org/ovf/envelope/1 Description: Envelope is a ovf description root element. File contains information for vmdk files..

type ExtendedSessionInfo

type ExtendedSessionInfo struct {
	User           string
	Org            string
	Roles          []string
	Rights         []string
	Version        string
	ConnectionType string
}

ExtendedSessionInfo collects data regarding a VCD connection

type ExternalEndpoint

type ExternalEndpoint struct {
	ExternalEndpoint *types.ExternalEndpoint
	// contains filtered or unexported fields
}

ExternalEndpoint is a type for handling External Endpoints.

func (*ExternalEndpoint) Delete

func (externalEndpoint *ExternalEndpoint) Delete() error

Delete deletes the receiver External Endpoint. Note: To delete an External Endpoint, it must be disabled, otherwise the operation will fail.

func (*ExternalEndpoint) Update

func (externalEndpoint *ExternalEndpoint) Update(ep types.ExternalEndpoint) error

Update updates the receiver External Endpoint with the values given by the input. Note: Vendor, name and version can't be changed. Modifying them will have no effect.

type ExternalNetwork

type ExternalNetwork struct {
	ExternalNetwork *types.ExternalNetwork
	// contains filtered or unexported fields
}

func GetExternalNetwork

func GetExternalNetwork(vcdClient *VCDClient, networkName string) (*ExternalNetwork, error)

GetExternalNetwork returns an ExternalNetwork reference if the network name matches an existing one. If no valid external network is found, it returns an empty ExternalNetwork reference and an error Deprecated: use vcdClient.GetExternalNetworkByName instead

func NewExternalNetwork

func NewExternalNetwork(cli *Client) *ExternalNetwork

func (*ExternalNetwork) Delete

func (externalNetwork *ExternalNetwork) Delete() (Task, error)

func (*ExternalNetwork) DeleteWait

func (externalNetwork *ExternalNetwork) DeleteWait() error

func (ExternalNetwork) Refresh

func (externalNetwork ExternalNetwork) Refresh() error

type ExternalNetworkV2

type ExternalNetworkV2 struct {
	ExternalNetwork *types.ExternalNetworkV2
	// contains filtered or unexported fields
}

ExternalNetworkV2 is a type for version 2 of external network which uses OpenAPI endpoint to manage external networks of both types (NSX-V and NSX-T)

func CreateExternalNetworkV2

func CreateExternalNetworkV2(vcdClient *VCDClient, newExtNet *types.ExternalNetworkV2) (*ExternalNetworkV2, error)

CreateExternalNetworkV2 creates a new external network using OpenAPI endpoint. It can create NSX-V and NSX-T backed networks based on what ExternalNetworkV2.NetworkBackings is provided. types.ExternalNetworkV2 has documented fields.

func GetAllExternalNetworksV2

func GetAllExternalNetworksV2(vcdClient *VCDClient, queryParameters url.Values) ([]*ExternalNetworkV2, error)

GetAllExternalNetworksV2 retrieves all external networks using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering

func GetExternalNetworkV2ById

func GetExternalNetworkV2ById(vcdClient *VCDClient, id string) (*ExternalNetworkV2, error)

GetExternalNetworkV2ById retrieves external network by given ID using OpenAPI endpoint

func GetExternalNetworkV2ByName

func GetExternalNetworkV2ByName(vcdClient *VCDClient, name string) (*ExternalNetworkV2, error)

GetExternalNetworkV2ByName retrieves external network by given name using OpenAPI endpoint. Returns an error if not exactly one network is found.

func (*ExternalNetworkV2) Delete

func (extNet *ExternalNetworkV2) Delete() error

Delete deletes external network using OpenAPI endpoint

func (*ExternalNetworkV2) Update

func (extNet *ExternalNetworkV2) Update() (*ExternalNetworkV2, error)

Update updates existing external network using OpenAPI endpoint

type FilterDef

type FilterDef struct {
	// A collection of filters (with keys from SupportedFilters)
	Filters map[string]string

	// A list of metadata filters
	Metadata []MetadataDef

	// If true, the query will include metadata fields and search for exact values.
	// Otherwise, the engine will collect metadata fields and search by regexp
	UseMetadataApiFilter bool
}

FilterDef defines all the criteria used by the engine to retrieve data

func NewFilterDef

func NewFilterDef() *FilterDef

NewFilterDef builds a new filter definition

func (*FilterDef) AddFilter

func (fd *FilterDef) AddFilter(key, value string) error

AddFilter adds a new filter to the criteria

func (*FilterDef) AddMetadataFilter

func (fd *FilterDef) AddMetadataFilter(key, value, valueType string, isSystem, useMetadataApiFilter bool) error

AddMetadataFilter adds a new metadata filter to an existing set

type FilterMatch

type FilterMatch struct {
	Criteria     *FilterDef
	ExpectedName string
	Entity       interface{}
	EntityType   string
}

FilterMatch contains a filter, the name of the item that is expected to match, and the item itself

func HelperMakeFiltersFromCatalogItem

func HelperMakeFiltersFromCatalogItem(catalog *Catalog) ([]FilterMatch, error)

func HelperMakeFiltersFromCatalogs

func HelperMakeFiltersFromCatalogs(org *AdminOrg) ([]FilterMatch, error)

func HelperMakeFiltersFromEdgeGateways

func HelperMakeFiltersFromEdgeGateways(vdc *Vdc) ([]FilterMatch, error)

HelperMakeFiltersFromEdgeGateways looks at the existing edge gateways and creates a set of criteria to retrieve each of them

func HelperMakeFiltersFromMedia

func HelperMakeFiltersFromMedia(vdc *Vdc, catalogName string) ([]FilterMatch, error)

func HelperMakeFiltersFromNetworks

func HelperMakeFiltersFromNetworks(vdc *Vdc) ([]FilterMatch, error)

HelperMakeFiltersFromNetworks looks at the existing networks and creates a set of criteria to retrieve each of them

func HelperMakeFiltersFromOrgVdc

func HelperMakeFiltersFromOrgVdc(org *Org) ([]FilterMatch, error)

func HelperMakeFiltersFromVappTemplate

func HelperMakeFiltersFromVappTemplate(catalog *Catalog) ([]FilterMatch, error)

type GlobalRole

type GlobalRole struct {
	GlobalRole *types.GlobalRole
	// contains filtered or unexported fields
}

func (*GlobalRole) AddRights

func (globalRole *GlobalRole) AddRights(newRights []types.OpenApiReference) error

AddRights adds a collection of rights to a global role

func (*GlobalRole) Delete

func (globalRole *GlobalRole) Delete() error

Delete deletes global role

func (*GlobalRole) GetRights

func (globalRole *GlobalRole) GetRights(queryParameters url.Values) ([]*types.Right, error)

GetRights retrieves all rights belonging to a given Global Role. Query parameters can be supplied to perform additional filtering

func (*GlobalRole) GetTenants

func (globalRole *GlobalRole) GetTenants(queryParameters url.Values) ([]types.OpenApiReference, error)

GetTenants retrieves all tenants associated to a given Global Role. Query parameters can be supplied to perform additional filtering

func (*GlobalRole) PublishAllTenants

func (globalRole *GlobalRole) PublishAllTenants() error

PublishAllTenants publishes a global role to all tenants

func (*GlobalRole) PublishTenants

func (globalRole *GlobalRole) PublishTenants(tenants []types.OpenApiReference) error

PublishTenants publishes a global role to one or more tenants, adding to tenants that may already been there

func (*GlobalRole) RemoveAllRights

func (globalRole *GlobalRole) RemoveAllRights() error

RemoveAllRights removes all rights from a global role

func (*GlobalRole) RemoveRights

func (globalRole *GlobalRole) RemoveRights(removeRights []types.OpenApiReference) error

RemoveRights removes specific rights from a global role

func (*GlobalRole) ReplacePublishedTenants

func (globalRole *GlobalRole) ReplacePublishedTenants(tenants []types.OpenApiReference) error

ReplacePublishedTenants publishes a global role to one or more tenants, removing the tenants already present

func (*GlobalRole) UnpublishAllTenants

func (globalRole *GlobalRole) UnpublishAllTenants() error

UnpublishAllTenants remove publication status of a global role from all tenants

func (*GlobalRole) UnpublishTenants

func (globalRole *GlobalRole) UnpublishTenants(tenants []types.OpenApiReference) error

UnpublishTenants remove tenats from a global role

func (*GlobalRole) Update

func (globalRole *GlobalRole) Update() (*GlobalRole, error)

Update updates existing global role

func (*GlobalRole) UpdateRights

func (globalRole *GlobalRole) UpdateRights(newRights []types.OpenApiReference) error

UpdateRights replaces existing rights with the given collection of rights

type IgnoredMetadata

type IgnoredMetadata struct {
	ObjectType *string        // Type of the object that has the metadata as defined in the API documentation https://developer.vmware.com/apis/1601/vmware-cloud-director, for example "catalog", "disk", "org"...
	ObjectName *string        // Name of the object
	KeyRegex   *regexp.Regexp // A regular expression to filter out metadata keys
	ValueRegex *regexp.Regexp // A regular expression to filter out metadata values
}

IgnoredMetadata is a structure that defines the metadata entries that should be ignored by the VCD Client. The filtering works in such a way that all the non-nil pointers in an instance of this struct are evaluated with a logical AND. For example, ignoredMetadata.ObjectType = "org", ignoredMetadata.ObjectName = "foo" will ignore all metadata from Organizations whose name is "foo", with any key and any value. Note: This struct is only used by metadata_v2.go methods. Note 2: Filtering by ObjectName is not possible in the "ByHref" methods from VCDClient.

func (IgnoredMetadata) String

func (im IgnoredMetadata) String() string

type InspectionFunc

type InspectionFunc func(task *types.Task, howManyTimes int, elapsed time.Duration, first, last bool)

InspectionFunc is a callback function that can be passed to task.WaitInspectTaskCompletion to perform user defined operations * task is the task object being processed * howManyTimes is the number of times the task has been refreshed * elapsed is how much time since the task was initially processed * first is true if this is the first refresh of the task * last is true if the function is being called for the last time.

type IpSpace

type IpSpace struct {
	IpSpace *types.IpSpace
	// contains filtered or unexported fields
}

IpSpace provides structured approach to allocating public and private IP addresses by preventing the use of overlapping IP addresses across organizations and organization VDCs.

An IP space consists of a set of defined non-overlapping IP ranges and small CIDR blocks that are reserved and used during the consumption aspect of the IP space life cycle. An IP space can be either IPv4 or IPv6, but not both.

Every IP space has an internal scope and an external scope. The internal scope of an IP space is a list of CIDR notations that defines the exact span of IP addresses in which all ranges and blocks must be contained in. The external scope defines the total span of IP addresses to which the IP space has access, for example the internet or a WAN.

func (*IpSpace) AllocateIp

func (ipSpace *IpSpace) AllocateIp(orgId, orgName string, ipAllocationConfig *types.IpSpaceIpAllocationRequest) ([]types.IpSpaceIpAllocationRequestResult, error)

AllocateIp performs IP Allocation request for a specific Org and returns the result

func (*IpSpace) Delete

func (ipSpace *IpSpace) Delete() error

Delete deletes IP Space

func (*IpSpace) GetAllIpSpaceAllocations

func (ipSpace *IpSpace) GetAllIpSpaceAllocations(allocationType string, queryParameters url.Values) ([]*IpSpaceIpAllocation, error)

GetAllIpSpaceAllocations retrieves all IP Allocations for a particular IP Space allocationType can be 'FLOATING_IP' (types.IpSpaceIpAllocationTypeFloatingIp) or 'IP_PREFIX' (types.IpSpaceIpAllocationTypeIpPrefix)

func (*IpSpace) GetAllOrgAssignments

func (ipSpace *IpSpace) GetAllOrgAssignments(queryParameters url.Values) ([]*IpSpaceOrgAssignment, error)

GetAllOrgAssignments retrieves all IP Space Org assignments within an IP Space

Note. Org assignments are implicitly created after NSX-T Edge Gateway backed by Provider gateway using IP Spaces is being created.

func (*IpSpace) GetOrgAssignmentById

func (ipSpace *IpSpace) GetOrgAssignmentById(id string) (*IpSpaceOrgAssignment, error)

GetOrgAssignmentById retrieves IP Space Org Assignment with a given ID

func (*IpSpace) GetOrgAssignmentByOrgId

func (ipSpace *IpSpace) GetOrgAssignmentByOrgId(orgId string) (*IpSpaceOrgAssignment, error)

GetOrgAssignmentById retrieves IP Space Org Assignment with a given Org ID

func (*IpSpace) GetOrgAssignmentByOrgName

func (ipSpace *IpSpace) GetOrgAssignmentByOrgName(orgName string) (*IpSpaceOrgAssignment, error)

GetOrgAssignmentById retrieves IP Space Org Assignment with a given Org Name

func (*IpSpace) Update

func (ipSpace *IpSpace) Update(ipSpaceConfig *types.IpSpace) (*IpSpace, error)

Update updates IP Space with new config

type IpSpaceIpAllocation

type IpSpaceIpAllocation struct {
	IpSpaceIpAllocation *types.IpSpaceIpAllocation
	IpSpaceId           string
	// contains filtered or unexported fields
}

IpSpaceIpAllocation handles IP Space IP allocation requests

func (*IpSpaceIpAllocation) Delete

func (ipSpaceAllocation *IpSpaceIpAllocation) Delete() error

Delete removes IP Allocation

func (*IpSpaceIpAllocation) Update

func (ipSpaceAllocation *IpSpaceIpAllocation) Update(ipSpaceAllocationConfig *types.IpSpaceIpAllocation) (*IpSpaceIpAllocation, error)

Update updates IP Allocation with a given configuration

type IpSpaceOrgAssignment

type IpSpaceOrgAssignment struct {
	IpSpaceOrgAssignment *types.IpSpaceOrgAssignment
	IpSpaceId            string
	// contains filtered or unexported fields
}

IpSpaceOrgAssignment handles Custom Quotas (name in UI) for a particular Org. They complement default quotas which are being set in IP Space itself. The behavior of IpSpaceOrgAssignment is specific - whenever an NSX-T Edge Gateway backed by Provider gateway using IP Spaces is being created - Org Assignment is created implicitly. One can look up that assignment by IP Space and Org to update `types.IpSpaceOrgAssignment.CustomQuotas` field

func (*IpSpaceOrgAssignment) Update

func (ipSpaceOrgAssignment *IpSpaceOrgAssignment) Update(ipSpaceOrgAssignmentConfig *types.IpSpaceOrgAssignment) (*IpSpaceOrgAssignment, error)

Update Org Assignment

type IpSpaceUplink struct {
	IpSpaceUplink *types.IpSpaceUplink
	// contains filtered or unexported fields
}

IpSpaceUplink provides the capability to assign one or more IP Spaces as Uplinks to External Networks

func (*IpSpaceUplink) Delete

func (ipSpaceUplink *IpSpaceUplink) Delete() error

Delete IP Space Uplink

func (*IpSpaceUplink) Update

func (ipSpaceUplink *IpSpaceUplink) Update(ipSpaceUplinkConfig *types.IpSpaceUplink) (*IpSpaceUplink, error)

Update IP Space Uplink

type LogicalVmGroup

type LogicalVmGroup struct {
	LogicalVmGroup *types.LogicalVmGroup
	// contains filtered or unexported fields
}

LogicalVmGroup is used to create VM Placement Policies.

func (*LogicalVmGroup) Delete

func (logicalVmGroup *LogicalVmGroup) Delete() error

Delete deletes the receiver Logical VM Group

type Media

type Media struct {
	Media *types.Media
	// contains filtered or unexported fields
}

func NewMedia

func NewMedia(cli *Client) *Media

func (*Media) AddMetadata deprecated

func (media *Media) AddMetadata(key string, value string) (*Media, error)

Deprecated: use Media.AddMetadataEntry.

func (*Media) AddMetadataAsync deprecated

func (media *Media) AddMetadataAsync(key string, value string) (Task, error)

Deprecated: use Media.AddMetadataEntryAsync.

func (*Media) AddMetadataEntry

func (media *Media) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds Media metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use Media.AddMetadataEntryWithVisibility instead

func (*Media) AddMetadataEntryAsync

func (media *Media) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds Media metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use Media.AddMetadataEntryWithVisibilityAsync instead

func (*Media) AddMetadataEntryWithVisibility

func (media *Media) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver Media and waits for the task to finish.

func (*Media) AddMetadataEntryWithVisibilityAsync

func (media *Media) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given Media with the given key, value, type and visibility and returns the task.

func (*Media) Delete

func (media *Media) Delete() (Task, error)

Deletes the Media Item, returning an error if the vCD call fails. Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Media.html

func (*Media) DeleteMetadata deprecated

func (media *Media) DeleteMetadata(key string) error

Deprecated: use Media.DeleteMetadataEntry.

func (*Media) DeleteMetadataAsync deprecated

func (media *Media) DeleteMetadataAsync(key string) (Task, error)

Deprecated: use Media.DeleteMetadataEntryAsync.

func (*Media) DeleteMetadataEntry

func (media *Media) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes Media metadata depending on key provided as input and waits for the task to finish. Deprecated: Use Media.DeleteMetadataEntryWithDomain instead

func (*Media) DeleteMetadataEntryAsync

func (media *Media) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes Media metadata depending on key provided as input and returns the task. Deprecated: Use Media.DeleteMetadataEntryWithDomainAsync instead

func (*Media) DeleteMetadataEntryWithDomain

func (media *Media) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes Media metadata associated to the input key and waits for the task to finish.

func (*Media) DeleteMetadataEntryWithDomainAsync

func (media *Media) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes Media metadata associated to the input key and returns the task.

func (*Media) Download

func (media *Media) Download() ([]byte, error)

Download gets the contents of a media item as a byte stream NOTE: the whole item will be saved in local memory. Do not attempt this operation for very large items

func (*Media) GetMetadata

func (media *Media) GetMetadata() (*types.Metadata, error)

GetMetadata returns Media metadata.

func (*Media) GetMetadataByKey

func (media *Media) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns Media metadata corresponding to the given key and domain.

func (*Media) MergeMetadata

func (media *Media) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges Media metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use Media.MergeMetadataWithMetadataValues

func (*Media) MergeMetadataAsync

func (media *Media) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges Media metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use Media.MergeMetadataWithMetadataValuesAsync

func (*Media) MergeMetadataWithMetadataValues

func (media *Media) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver Media and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*Media) MergeMetadataWithMetadataValuesAsync

func (media *Media) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges Media metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*Media) Refresh

func (media *Media) Refresh() error

Refresh refreshes the media information by href

type MediaItem deprecated

type MediaItem struct {
	MediaItem *types.MediaRecordType
	// contains filtered or unexported fields
}

Deprecated: use MediaRecord

func NewMediaItem deprecated

func NewMediaItem(vdc *Vdc) *MediaItem

Deprecated: use NewMediaRecord

func (*MediaItem) AddMetadata

func (mediaItem *MediaItem) AddMetadata(key string, value string) (*MediaItem, error)

AddMetadata adds metadata key/value pair provided as input. Deprecated: Use MediaRecord.AddMetadata.

func (*MediaItem) AddMetadataAsync deprecated

func (mediaItem *MediaItem) AddMetadataAsync(key string, value string) (Task, error)

Deprecated: use MediaItem.AddMetadataEntryAsync.

func (*MediaItem) Delete

func (mediaItem *MediaItem) Delete() (Task, error)

Deletes the Media Item, returning an error if the vCD call fails. Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Media.html Deprecated: Use MediaRecord.Delete

func (*MediaItem) DeleteMetadata

func (mediaItem *MediaItem) DeleteMetadata(key string) error

DeleteMetadata deletes metadata depending on key provided as input from media item. Deprecated: Use MediaRecord.DeleteMetadata.

func (*MediaItem) DeleteMetadataAsync

func (mediaItem *MediaItem) DeleteMetadataAsync(key string) (Task, error)

DeleteMetadataAsync deletes metadata depending on key provided as input from MediaItem. Deprecated: Use MediaRecord.DeleteMetadataAsync.

func (*MediaItem) GetMetadata

func (mediaItem *MediaItem) GetMetadata() (*types.Metadata, error)

GetMetadata returns MediaItem metadata. Deprecated: Use MediaRecord.GetMetadata.

func (*MediaItem) Refresh

func (mediaItem *MediaItem) Refresh() error

Refresh refreshes the media item information by href Deprecated: Use MediaRecord.Refresh

type MediaRecord

type MediaRecord struct {
	MediaRecord *types.MediaRecordType
	// contains filtered or unexported fields
}

func NewMediaRecord

func NewMediaRecord(cli *Client) *MediaRecord

func (*MediaRecord) AddMetadata deprecated

func (mediaRecord *MediaRecord) AddMetadata(key string, value string) (*MediaRecord, error)

Deprecated: use MediaRecord.AddMetadataEntry.

func (*MediaRecord) AddMetadataAsync deprecated

func (mediaRecord *MediaRecord) AddMetadataAsync(key string, value string) (Task, error)

Deprecated: use MediaRecord.AddMetadataEntryAsync.

func (*MediaRecord) AddMetadataEntry

func (mediaRecord *MediaRecord) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds MediaRecord metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use MediaRecord.AddMetadataEntryWithVisibility instead

func (*MediaRecord) AddMetadataEntryAsync

func (mediaRecord *MediaRecord) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds MediaRecord metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use MediaRecord.AddMetadataEntryWithVisibilityAsync instead

func (*MediaRecord) AddMetadataEntryWithVisibility

func (mediaRecord *MediaRecord) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver MediaRecord and waits for the task to finish.

func (*MediaRecord) AddMetadataEntryWithVisibilityAsync

func (mediaRecord *MediaRecord) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given MediaRecord with the given key, value, type and visibility and returns the task.

func (*MediaRecord) Delete

func (mediaRecord *MediaRecord) Delete() (Task, error)

Deletes the Media Item, returning an error if the vCD call fails. Link to API call: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Media.html

func (*MediaRecord) DeleteMetadata deprecated

func (mediaRecord *MediaRecord) DeleteMetadata(key string) error

Deprecated: use MediaRecord.DeleteMetadataEntry.

func (*MediaRecord) DeleteMetadataAsync deprecated

func (mediaRecord *MediaRecord) DeleteMetadataAsync(key string) (Task, error)

Deprecated: use MediaRecord.DeleteMetadataEntryAsync.

func (*MediaRecord) DeleteMetadataEntry

func (mediaRecord *MediaRecord) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes MediaRecord metadata depending on key provided as input and waits for the task to finish. Deprecated: Use MediaRecord.DeleteMetadataEntryWithDomain instead

func (*MediaRecord) DeleteMetadataEntryAsync

func (mediaRecord *MediaRecord) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes MediaRecord metadata depending on key provided as input and returns the task. Deprecated: Use MediaRecord.DeleteMetadataEntryWithDomainAsync instead

func (*MediaRecord) DeleteMetadataEntryWithDomain

func (mediaRecord *MediaRecord) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes MediaRecord metadata associated to the input key and waits for the task to finish.

func (*MediaRecord) DeleteMetadataEntryWithDomainAsync

func (mediaRecord *MediaRecord) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes MediaRecord metadata associated to the input key and returns the task.

func (*MediaRecord) GetMetadata

func (mediaRecord *MediaRecord) GetMetadata() (*types.Metadata, error)

GetMetadata returns MediaRecord metadata.

func (*MediaRecord) GetMetadataByKey

func (mediaRecord *MediaRecord) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns MediaRecord metadata corresponding to the given key and domain.

func (*MediaRecord) MergeMetadata

func (mediaRecord *MediaRecord) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges MediaRecord metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use MediaRecord.MergeMetadataWithMetadataValues

func (*MediaRecord) MergeMetadataAsync

func (mediaRecord *MediaRecord) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges MediaRecord metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use MediaRecord.MergeMetadataWithMetadataValuesAsync

func (*MediaRecord) MergeMetadataWithMetadataValues

func (mediaRecord *MediaRecord) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver MediaRecord and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*MediaRecord) MergeMetadataWithMetadataValuesAsync

func (mediaRecord *MediaRecord) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges MediaRecord metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*MediaRecord) Refresh

func (mediaRecord *MediaRecord) Refresh() error

Refresh refreshes the media information by href

type MetadataDef

type MetadataDef struct {
	Key      string      // name of the field (addressed as metadata:key)
	Type     string      // Type of the field (one of SupportedMetadataTypes)
	Value    interface{} // contents of the metadata field
	IsSystem bool        // if true, the metadata field will be addressed as metadata@SYSTEM:key
}

MetadataDef defines a metadata structure

type MetadataFilter

type MetadataFilter struct {
	Type  string
	Value string
}

MetadataFilter is a definition of a value used to filter metadata. It is made of a Type (such as 'STRING', 'INT', 'BOOL") and a Value, which is the value we want to search for.

type NatRule

type NatRule struct {
	NatType      string
	NetworkHref  string
	ExternalIP   string
	ExternalPort string
	InternalIP   string
	InternalPort string
	Protocol     string
	IcmpSubType  string
	Description  string
}

Struct which covers NAT rule fields

type NetworkPool

type NetworkPool struct {
	NetworkPool *types.NetworkPool
	// contains filtered or unexported fields
}

func (*NetworkPool) Delete

func (np *NetworkPool) Delete() error

Delete removes a network pool

func (*NetworkPool) GetOpenApiUrl

func (np *NetworkPool) GetOpenApiUrl() (string, error)

GetOpenApiUrl retrieves the full URL of a network pool

func (*NetworkPool) Update

func (np *NetworkPool) Update() error

Update will change all changeable network pool items

type NsxtAlbCloud

type NsxtAlbCloud struct {
	NsxtAlbCloud *types.NsxtAlbCloud
	// contains filtered or unexported fields
}

NsxtAlbCloud helps to use the virtual infrastructure provided by NSX Advanced Load Balancer, register NSX-T Cloud instances with VMware Cloud Director by consuming NsxtAlbImportableCloud.

func (*NsxtAlbCloud) Delete

func (nsxtAlbCloud *NsxtAlbCloud) Delete() error

Delete removes NSX-T ALB Cloud configuration

func (*NsxtAlbCloud) GetAlbImportableServiceEngineGroupById

func (nsxtAlbCloud *NsxtAlbCloud) GetAlbImportableServiceEngineGroupById(parentAlbCloudUrn, id string) (*NsxtAlbImportableServiceEngineGroups, error)

GetAlbImportableServiceEngineGroupById Note. ID filtering is performed on client side

func (*NsxtAlbCloud) GetAlbImportableServiceEngineGroupByName

func (nsxtAlbCloud *NsxtAlbCloud) GetAlbImportableServiceEngineGroupByName(parentAlbCloudUrn, name string) (*NsxtAlbImportableServiceEngineGroups, error)

GetAlbImportableServiceEngineGroupByName returns importable NSX-T ALB Clouds.

func (*NsxtAlbCloud) GetAllAlbImportableServiceEngineGroups

func (nsxtAlbCloud *NsxtAlbCloud) GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn string, queryParameters url.Values) ([]*NsxtAlbImportableServiceEngineGroups, error)

GetAllAlbImportableServiceEngineGroups lists all Importable Service Engine Groups available in ALB Controller

type NsxtAlbController

type NsxtAlbController struct {
	NsxtAlbController *types.NsxtAlbController
	// contains filtered or unexported fields
}

NsxtAlbController helps to integrate VMware Cloud Director with NSX-T Advanced Load Balancer deployment. Controller instances are registered with VMware Cloud Director instance. Controller instances serve as a central control plane for the load-balancing services provided by NSX-T Advanced Load Balancer. To configure an NSX-T ALB one needs to supply AVI Controller endpoint, credentials and license to be used.

func (*NsxtAlbController) Delete

func (nsxtAlbController *NsxtAlbController) Delete() error

Delete deletes existing NSX-T ALB Controller

func (*NsxtAlbController) GetAlbImportableCloudByName

func (nsxtAlbController *NsxtAlbController) GetAlbImportableCloudByName(name string) (*NsxtAlbImportableCloud, error)

GetAlbImportableCloudByName is attached to NsxtAlbController type for a convenient parent/child relationship

func (*NsxtAlbController) GetAllAlbImportableClouds

func (nsxtAlbController *NsxtAlbController) GetAllAlbImportableClouds(queryParameters url.Values) ([]*NsxtAlbImportableCloud, error)

GetAllAlbImportableClouds is attached to NsxtAlbController type for a convenient parent/child relationship

func (*NsxtAlbController) Update

func (nsxtAlbController *NsxtAlbController) Update(albControllerConfig *types.NsxtAlbController) (*NsxtAlbController, error)

Update updates existing NSX-T ALB Controller with new supplied albControllerConfig configuration

type NsxtAlbImportableCloud

type NsxtAlbImportableCloud struct {
	NsxtAlbImportableCloud *types.NsxtAlbImportableCloud
	// contains filtered or unexported fields
}

NsxtAlbImportableCloud allows user to list importable NSX-T ALB Clouds. Each importable cloud can only be imported once by using NsxtAlbCloud construct. It has a flag AlreadyImported which hints if it is already consumed or not.

type NsxtAlbImportableServiceEngineGroups

type NsxtAlbImportableServiceEngineGroups struct {
	NsxtAlbImportableServiceEngineGroups *types.NsxtAlbImportableServiceEngineGroups
	// contains filtered or unexported fields
}

NsxtAlbImportableServiceEngineGroups provides capability to list all Importable Service Engine Groups available in ALB Controller so that they can be consumed by NsxtAlbServiceEngineGroup

Note. The API does not return Importable Service Engine Group once it is consumed.

type NsxtAlbPool

type NsxtAlbPool struct {
	NsxtAlbPool *types.NsxtAlbPool
	// contains filtered or unexported fields
}

NsxtAlbPool defines configuration of a single NSX-T ALB Pool. Pools maintain the list of servers assigned to them and perform health monitoring, load balancing, persistence. A pool may only be used or referenced by only one virtual service at a time.

func (*NsxtAlbPool) Delete

func (nsxtAlbPool *NsxtAlbPool) Delete() error

Delete deletes NSX-T ALB Pool

func (*NsxtAlbPool) Update

func (nsxtAlbPool *NsxtAlbPool) Update(albPoolConfig *types.NsxtAlbPool) (*NsxtAlbPool, error)

Update updates NSX-T ALB Pool based on supplied configuration

type NsxtAlbServiceEngineGroup

type NsxtAlbServiceEngineGroup struct {
	NsxtAlbServiceEngineGroup *types.NsxtAlbServiceEngineGroup
	// contains filtered or unexported fields
}

NsxtAlbServiceEngineGroup provides virtual service management capabilities for tenants. This entity can be created by referencing a backing importable service engine group - NsxtAlbImportableServiceEngineGroups.

A service engine group is an isolation domain that also defines shared service engine properties, such as size, network access, and failover. Resources in a service engine group can be used for different virtual services, depending on your tenant needs. These resources cannot be shared between different service engine groups.

func (*NsxtAlbServiceEngineGroup) Delete

func (nsxtAlbServiceEngineGroup *NsxtAlbServiceEngineGroup) Delete() error

Delete deletes NSX-T ALB Service Engine Group configuration

func (*NsxtAlbServiceEngineGroup) Sync

func (nsxtAlbServiceEngineGroup *NsxtAlbServiceEngineGroup) Sync() error

Sync syncs a specified Load Balancer Service Engine Group. It requests the HA mode and the maximum number of supported Virtual Services for this Service Engine Group from the Load Balancer, and updates vCD's local record of these properties.

func (*NsxtAlbServiceEngineGroup) Update

func (nsxtAlbServiceEngineGroup *NsxtAlbServiceEngineGroup) Update(albSEGroupConfig *types.NsxtAlbServiceEngineGroup) (*NsxtAlbServiceEngineGroup, error)

Update updates existing ALB Controller with new supplied albControllerConfig configuration

type NsxtAlbServiceEngineGroupAssignment

type NsxtAlbServiceEngineGroupAssignment struct {
	NsxtAlbServiceEngineGroupAssignment *types.NsxtAlbServiceEngineGroupAssignment
	// contains filtered or unexported fields
}

NsxtAlbServiceEngineGroupAssignment handles Service Engine Group Assignment to NSX-T Edge Gateways

func (*NsxtAlbServiceEngineGroupAssignment) Delete

func (nsxtEdgeAlbServiceEngineGroup *NsxtAlbServiceEngineGroupAssignment) Delete() error

Delete deletes NSX-T ALB Service Engine Group Assignment

func (*NsxtAlbServiceEngineGroupAssignment) Update

Update updates existing ALB Service Engine Group Assignment with new supplied assignmentConfig configuration

type NsxtAlbVirtualService

type NsxtAlbVirtualService struct {
	NsxtAlbVirtualService *types.NsxtAlbVirtualService
	// contains filtered or unexported fields
}

NsxtAlbVirtualService combines Load Balancer Pools with Service Engine Groups and exposes a virtual service on defined VIP (virtual IP address) while optionally allowing to use encrypted traffic

func (*NsxtAlbVirtualService) Delete

func (nsxtAlbVirtualService *NsxtAlbVirtualService) Delete() error

Delete deletes NSX-T ALB Virtual Service

func (*NsxtAlbVirtualService) GetAllHttpRequestRules

func (nsxtAlbVirtualService *NsxtAlbVirtualService) GetAllHttpRequestRules(queryParameters url.Values) ([]*types.AlbVsHttpRequestRule, error)

GetAllHttpRequestRules returns all ALB Virtual Service HTTP Request Rules

func (*NsxtAlbVirtualService) GetAllHttpResponseRules

func (nsxtAlbVirtualService *NsxtAlbVirtualService) GetAllHttpResponseRules(queryParameters url.Values) ([]*types.AlbVsHttpResponseRule, error)

GetAllHttpRequestRules returns all ALB Virtual Service HTTP Response Rules

func (*NsxtAlbVirtualService) GetAllHttpSecurityRules

func (nsxtAlbVirtualService *NsxtAlbVirtualService) GetAllHttpSecurityRules(queryParameters url.Values) ([]*types.AlbVsHttpSecurityRule, error)

GetAllHttpRequestRules returns all ALB Virtual Service HTTP Security Rules

func (*NsxtAlbVirtualService) Update

func (nsxtAlbVirtualService *NsxtAlbVirtualService) Update(albVirtualServiceConfig *types.NsxtAlbVirtualService) (*NsxtAlbVirtualService, error)

Update updates NSX-T ALB Virtual Service based on supplied configuration

func (*NsxtAlbVirtualService) UpdateHttpRequestRules

func (nsxtAlbVirtualService *NsxtAlbVirtualService) UpdateHttpRequestRules(config *types.AlbVsHttpRequestRules) (*types.AlbVsHttpRequestRules, error)

UpdateHttpRequestRules sets ALB Virtual Service HTTP Request Rules

func (*NsxtAlbVirtualService) UpdateHttpResponseRules

func (nsxtAlbVirtualService *NsxtAlbVirtualService) UpdateHttpResponseRules(config *types.AlbVsHttpResponseRules) (*types.AlbVsHttpResponseRules, error)

UpdateHttpRequestRules sets ALB Virtual Service HTTP Response Rules

func (*NsxtAlbVirtualService) UpdateHttpSecurityRules

func (nsxtAlbVirtualService *NsxtAlbVirtualService) UpdateHttpSecurityRules(config *types.AlbVsHttpSecurityRules) (*types.AlbVsHttpSecurityRules, error)

UpdateHttpRequestRules sets ALB Virtual Service HTTP Security Rules

type NsxtAppPortProfile

type NsxtAppPortProfile struct {
	NsxtAppPortProfile *types.NsxtAppPortProfile
	// contains filtered or unexported fields
}

NsxtAppPortProfile uses OpenAPI endpoint to operate NSX-T Application Port Profiles It can have 3 types of scopes: * SYSTEM - Read-only (The ones that are provided by SYSTEM). Constant `types.ApplicationPortProfileScopeSystem` * PROVIDER - Created by Provider on a particular network provider (NSX-T manager). Constant `types.ApplicationPortProfileScopeProvider` * TENANT (Created by Tenant at Org VDC level). Constant `types.ApplicationPortProfileScopeTenant`

More details about scope in documentation for types.NsxtAppPortProfile

func (*NsxtAppPortProfile) Delete

func (appPortProfile *NsxtAppPortProfile) Delete() error

Delete allows users to delete NSX-T Application Port Profile

func (*NsxtAppPortProfile) Update

func (appPortProfile *NsxtAppPortProfile) Update(appPortProfileConfig *types.NsxtAppPortProfile) (*NsxtAppPortProfile, error)

Update allows users to update NSX-T Application Port Profile

type NsxtEdgeCluster

type NsxtEdgeCluster struct {
	NsxtEdgeCluster *types.NsxtEdgeCluster
	// contains filtered or unexported fields
}

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

type NsxtEdgeGateway

type NsxtEdgeGateway struct {
	EdgeGateway *types.OpenAPIEdgeGateway
	// contains filtered or unexported fields
}

NsxtEdgeGateway uses OpenAPI endpoint to operate NSX-T Edge Gateways

func (*NsxtEdgeGateway) CreateBgpIpPrefixList

func (egw *NsxtEdgeGateway) CreateBgpIpPrefixList(bgpIpPrefixList *types.EdgeBgpIpPrefixList) (*EdgeBgpIpPrefixList, error)

CreateBgpIpPrefixList creates a BGP IP Prefix List with supplied configuration

Note. VCD 10.2 versions do not automatically return ID for created BGP IP Prefix List. To work around it this code automatically retrieves the entity by Name after the task is finished. This function may fail on VCD 10.2 if duplicate BGP IP Prefix Lists exist.

func (*NsxtEdgeGateway) CreateBgpNeighbor

func (egw *NsxtEdgeGateway) CreateBgpNeighbor(bgpNeighborConfig *types.EdgeBgpNeighbor) (*EdgeBgpNeighbor, error)

CreateBgpNeighbor creates BGP Neighbor with the given configuration

func (*NsxtEdgeGateway) CreateIpSecVpnTunnel

func (egw *NsxtEdgeGateway) CreateIpSecVpnTunnel(ipSecVpnConfig *types.NsxtIpSecVpnTunnel) (*NsxtIpSecVpnTunnel, error)

CreateIpSecVpnTunnel creates IPsec VPN Tunnel and returns it

func (*NsxtEdgeGateway) CreateL2VpnTunnel

func (egw *NsxtEdgeGateway) CreateL2VpnTunnel(tunnel *types.NsxtL2VpnTunnel) (*NsxtL2VpnTunnel, error)

CreateL2VpnTunnel creates a L2 VPN Tunnel on the provided NSX-T Edge Gateway and returns the tunnel

func (*NsxtEdgeGateway) CreateNatRule

func (egw *NsxtEdgeGateway) CreateNatRule(natRuleConfig *types.NsxtNatRule) (*NsxtNatRule, error)

CreateNatRule creates a NAT rule and returns it.

Note. API has a limitation, that it does not return ID for created rule. To work around it this function creates a NAT rule, fetches all rules and finds a rule with exactly the same field values and returns it (including ID) There is still a slight risk to retrieve wrong ID if exactly the same rule already exists.

func (*NsxtEdgeGateway) CreateNsxtFirewallGroup

func (egw *NsxtEdgeGateway) CreateNsxtFirewallGroup(firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error)

CreateNsxtFirewallGroup allows users to create NSX-T Firewall Group

func (*NsxtEdgeGateway) CreateStaticRoute

func (egw *NsxtEdgeGateway) CreateStaticRoute(staticRouteConfig *types.NsxtEdgeGatewayStaticRoute) (*NsxtEdgeGatewayStaticRoute, error)

CreateStaticRoute based on type definition

func (*NsxtEdgeGateway) DeallocateIpCount

func (egw *NsxtEdgeGateway) DeallocateIpCount(deallocateIpCount int) error

DeallocateIpCount modifies the structure to deallocate IP addresses from the Edge Gateway uplinks.

Notes: * This function does not call Update() on the Edge Gateway and it is up to the caller to perform this operation (or use NsxtEdgeGateway.QuickDeallocateIpCount which wraps this function and performs API call) * Use `QuickAddAllocatedIPCount` field in the uplink structure to leverage VCD API directly for allocating IP addresses.

func (*NsxtEdgeGateway) Delete

func (egw *NsxtEdgeGateway) Delete() error

Delete allows deleting NSX-T edge gateway for sysadmins

func (*NsxtEdgeGateway) DeleteNsxtRouteAdvertisement

func (egw *NsxtEdgeGateway) DeleteNsxtRouteAdvertisement() error

DeleteNsxtRouteAdvertisement method is the same as DeleteNsxtRouteAdvertisementWithContext but sending TenantContext by default

func (*NsxtEdgeGateway) DeleteNsxtRouteAdvertisementWithContext

func (egw *NsxtEdgeGateway) DeleteNsxtRouteAdvertisementWithContext(useTenantContext bool) error

DeleteNsxtRouteAdvertisementWithContext deletes the list of subnets that will be advertised.

func (*NsxtEdgeGateway) DisableAlb

func (egw *NsxtEdgeGateway) DisableAlb() error

DisableAlb is a shortcut wrapping UpdateAlbSettings which disables ALB configuration

func (*NsxtEdgeGateway) DisableBgpConfiguration

func (egw *NsxtEdgeGateway) DisableBgpConfiguration() error

DisableBgpConfiguration performs an `UpdateBgpConfiguration` and preserve all field values as they were, but explicitly sets Enabled to false.

func (*NsxtEdgeGateway) GetAlbSettings

func (egw *NsxtEdgeGateway) GetAlbSettings() (*types.NsxtAlbConfig, error)

GetAlbSettings retrieves NSX-T ALB settings for a particular Edge Gateway

func (*NsxtEdgeGateway) GetAllBgpIpPrefixLists

func (egw *NsxtEdgeGateway) GetAllBgpIpPrefixLists(queryParameters url.Values) ([]*EdgeBgpIpPrefixList, error)

GetAllBgpIpPrefixLists retrieves all BGP IP Prefix Lists in a given NSX-T Edge Gateway with optional queryParameters

func (*NsxtEdgeGateway) GetAllBgpNeighbors

func (egw *NsxtEdgeGateway) GetAllBgpNeighbors(queryParameters url.Values) ([]*EdgeBgpNeighbor, error)

GetAllBgpNeighbors retrieves all BGP Neighbors with an optional filter

func (*NsxtEdgeGateway) GetAllIpSecVpnTunnels

func (egw *NsxtEdgeGateway) GetAllIpSecVpnTunnels(queryParameters url.Values) ([]*NsxtIpSecVpnTunnel, error)

GetAllIpSecVpnTunnels returns all IPsec VPN Tunnel configurations

func (*NsxtEdgeGateway) GetAllL2VpnTunnels

func (egw *NsxtEdgeGateway) GetAllL2VpnTunnels(queryParameters url.Values) ([]*NsxtL2VpnTunnel, error)

GetAllL2VpnTunnels fetches all L2 VPN tunnels that are created on the Edge Gateway.

func (*NsxtEdgeGateway) GetAllNatRules

func (egw *NsxtEdgeGateway) GetAllNatRules(queryParameters url.Values) ([]*NsxtNatRule, error)

GetAllNatRules retrieves all NAT rules with an optional queryParameters filter.

func (*NsxtEdgeGateway) GetAllNsxtFirewallGroups

func (egw *NsxtEdgeGateway) GetAllNsxtFirewallGroups(queryParameters url.Values, firewallGroupType string) ([]*NsxtFirewallGroup, error)

GetAllNsxtFirewallGroups allows users to retrieve all NSX-T Firewall Groups in a particular Edge Gateway firewallGroupType can be one of the following: * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups * types.FirewallGroupTypeIpSet - for NSX-T IP Sets * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups

func (*NsxtEdgeGateway) GetAllStaticRoutes

func (egw *NsxtEdgeGateway) GetAllStaticRoutes(queryParameters url.Values) ([]*NsxtEdgeGatewayStaticRoute, error)

GetAllStaticRoutes retrieves all Static Routes for a particular NSX-T Edge Gateway

func (*NsxtEdgeGateway) GetAllUnusedExternalIPAddresses

func (egw *NsxtEdgeGateway) GetAllUnusedExternalIPAddresses(refresh bool) ([]netip.Addr, error)

GetAllUnusedExternalIPAddresses will retrieve all unassigned IP addresses for Edge Gateway It is similar to GetUnusedExternalIPAddresses but returns all unused IPs instead of a specific amount

Note. In case a very large subnet of IPv6 is present this function might exhaust memory. Please use GetUnusedExternalIPAddressesWithCountLimit in such cases

func (*NsxtEdgeGateway) GetAllocatedIpCount

func (egw *NsxtEdgeGateway) GetAllocatedIpCount(refresh bool) (int, error)

GetAllocatedIpCount traverses all subnets in Edge Gateway and returns a count of allocated IP count for each subnet in each uplink

func (*NsxtEdgeGateway) GetAllocatedIpCountByUplinkType

func (egw *NsxtEdgeGateway) GetAllocatedIpCountByUplinkType(refresh bool, uplinkType string) (int, error)

GetAllocatedIpCountByUplinkType will return a sum of allocated IPs for particular `uplinkType` `uplinkType` can be one of 'NSXT_TIER0', 'NSXT_VRF_TIER0', 'IMPORTED_T_LOGICAL_SWITCH'

Note. This function is based on BackingType field and requires at least VCD 10.4.1

func (*NsxtEdgeGateway) GetBgpConfiguration

func (egw *NsxtEdgeGateway) GetBgpConfiguration() (*types.EdgeBgpConfig, error)

GetBgpConfiguration retrieves BGP Configuration for NSX-T Edge Gateway

func (*NsxtEdgeGateway) GetBgpIpPrefixListById

func (egw *NsxtEdgeGateway) GetBgpIpPrefixListById(id string) (*EdgeBgpIpPrefixList, error)

GetBgpIpPrefixListById retrieves BGP IP Prefix List By ID

func (*NsxtEdgeGateway) GetBgpIpPrefixListByName

func (egw *NsxtEdgeGateway) GetBgpIpPrefixListByName(name string) (*EdgeBgpIpPrefixList, error)

GetBgpIpPrefixListByName retrieves BGP IP Prefix List By Name It is meant to retrieve exactly one entry: * Will fail if more than one entry with the same name found * Will return an error containing `ErrorEntityNotFound` if no entries are found

Note. API does not support filtering by 'name' field therefore filtering is performed on client side

func (*NsxtEdgeGateway) GetBgpNeighborById

func (egw *NsxtEdgeGateway) GetBgpNeighborById(id string) (*EdgeBgpNeighbor, error)

GetBgpNeighborById retrieves BGP Neighbor By ID

func (*NsxtEdgeGateway) GetBgpNeighborByIp

func (egw *NsxtEdgeGateway) GetBgpNeighborByIp(neighborIpAddress string) (*EdgeBgpNeighbor, error)

GetBgpNeighborByIp retrieves BGP Neighbor by Neighbor IP address It is meant to retrieve exactly one entry: * Will fail if more than one entry with the same Neighbor IP found (should not happen as uniqueness is enforced by API) * Will return an error containing `ErrorEntityNotFound` if no entries are found

Note. API does not support filtering by 'neighborIpAddress' field therefore filtering is performed on client side

func (*NsxtEdgeGateway) GetDhcpForwarder

func (egw *NsxtEdgeGateway) GetDhcpForwarder() (*types.NsxtEdgeGatewayDhcpForwarder, error)

GetDhcpForwarder gets DHCP forwarder configuration for an NSX-T Edge Gateway

func (*NsxtEdgeGateway) GetDnsConfig

func (egw *NsxtEdgeGateway) GetDnsConfig() (*NsxtEdgeGatewayDns, error)

GetDnsConfig retrieves the DNS configuration for the underlying edge gateway

func (*NsxtEdgeGateway) GetIpSecVpnTunnelById

func (egw *NsxtEdgeGateway) GetIpSecVpnTunnelById(id string) (*NsxtIpSecVpnTunnel, error)

GetIpSecVpnTunnelById retrieves single IPsec VPN Tunnel by ID

func (*NsxtEdgeGateway) GetIpSecVpnTunnelByName

func (egw *NsxtEdgeGateway) GetIpSecVpnTunnelByName(name string) (*NsxtIpSecVpnTunnel, error)

GetIpSecVpnTunnelByName retrieves single IPsec VPN Tunnel by Name.

Note. Name uniqueness is not enforced therefore it might exist a few IPsec VPN Tunnels with the same name. An error will be returned in that case.

func (*NsxtEdgeGateway) GetL2VpnTunnelById

func (egw *NsxtEdgeGateway) GetL2VpnTunnelById(id string) (*NsxtL2VpnTunnel, error)

GetL2VpnTunnelById gets the L2 VPN Tunnel by its ID

func (*NsxtEdgeGateway) GetL2VpnTunnelByName

func (egw *NsxtEdgeGateway) GetL2VpnTunnelByName(name string) (*NsxtL2VpnTunnel, error)

GetL2VpnTunnelByName gets the L2 VPN Tunnel by name

func (*NsxtEdgeGateway) GetNatRuleById

func (egw *NsxtEdgeGateway) GetNatRuleById(id string) (*NsxtNatRule, error)

GetNatRuleById finds a NAT rule by ID and returns it

func (*NsxtEdgeGateway) GetNatRuleByName

func (egw *NsxtEdgeGateway) GetNatRuleByName(name string) (*NsxtNatRule, error)

GetNatRuleByName finds a NAT rule by Name and returns it

Note. API does not enforce name uniqueness therefore an error will be thrown if two rules with the same name exist

func (*NsxtEdgeGateway) GetNsxtFirewall

func (egw *NsxtEdgeGateway) GetNsxtFirewall() (*NsxtFirewall, error)

GetNsxtFirewall retrieves all firewall rules system, default and user defined rules

func (*NsxtEdgeGateway) GetNsxtFirewallGroupById

func (egw *NsxtEdgeGateway) GetNsxtFirewallGroupById(id string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupById retrieves NSX-T Firewall Group by ID

func (*NsxtEdgeGateway) GetNsxtFirewallGroupByName

func (egw *NsxtEdgeGateway) GetNsxtFirewallGroupByName(name string, firewallGroupType string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupByName allows users to retrieve Firewall Group by Name in a particular Edge Gateway firewallGroupType can be one of the following: * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups * types.FirewallGroupTypeIpSet - for NSX-T IP Sets * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups

Note. One might get an error if IP Set and Security Group exist with the same name (two objects of the same type cannot exist) and firewallGroupType is left empty.

func (*NsxtEdgeGateway) GetNsxtRouteAdvertisement

func (egw *NsxtEdgeGateway) GetNsxtRouteAdvertisement() (*types.RouteAdvertisement, error)

GetNsxtRouteAdvertisement method is the same as GetNsxtRouteAdvertisementWithContext but sending TenantContext by default

func (*NsxtEdgeGateway) GetNsxtRouteAdvertisementWithContext

func (egw *NsxtEdgeGateway) GetNsxtRouteAdvertisementWithContext(useTenantContext bool) (*types.RouteAdvertisement, error)

GetNsxtRouteAdvertisementWithContext retrieves the list of subnets that will be advertised so that the Edge Gateway can route out to the connected external network.

func (*NsxtEdgeGateway) GetPrimaryNetworkAllocatedIpCount

func (egw *NsxtEdgeGateway) GetPrimaryNetworkAllocatedIpCount(refresh bool) (int, error)

GetPrimaryNetworkAllocatedIpCount returns total count of allocated IPs for first NSX-T Edge Gateway uplink

func (*NsxtEdgeGateway) GetQoS

func (egw *NsxtEdgeGateway) GetQoS() (*types.NsxtEdgeGatewayQos, error)

GetQoS retrieves QoS (rate limiting) configuration for an NSX-T Edge Gateway

func (*NsxtEdgeGateway) GetSlaacProfile

func (egw *NsxtEdgeGateway) GetSlaacProfile() (*types.NsxtEdgeGatewaySlaacProfile, error)

GetSlaacProfile gets SLAAC (Stateless Address Autoconfiguration) Profile configuration for an NSX-T Edge Gateway. Note. It represents DHCPv6 Edge Gateway configuration in UI

func (*NsxtEdgeGateway) GetStaticRouteById

func (egw *NsxtEdgeGateway) GetStaticRouteById(id string) (*NsxtEdgeGatewayStaticRoute, error)

GetStaticRouteById retrieves Static Route by given ID

func (*NsxtEdgeGateway) GetStaticRouteByName

func (egw *NsxtEdgeGateway) GetStaticRouteByName(name string) (*NsxtEdgeGatewayStaticRoute, error)

GetStaticRouteByName retrieves Static Route by name

Note. It will return an error if more than one items is found

func (*NsxtEdgeGateway) GetStaticRouteByNetworkCidr

func (egw *NsxtEdgeGateway) GetStaticRouteByNetworkCidr(networkCidr string) (*NsxtEdgeGatewayStaticRoute, error)

GetStaticRouteByNetworkCidr retrieves Static Route by network CIDR

Note. It will return an error if more than one items is found

func (*NsxtEdgeGateway) GetUnusedExternalIPAddresses

func (egw *NsxtEdgeGateway) GetUnusedExternalIPAddresses(requiredIpCount int, optionalSubnet netip.Prefix, refresh bool) ([]netip.Addr, error)

GetUnusedExternalIPAddresses will retrieve a requiredIpCount of unused IP addresses for Edge Gateway Arguments: * `requiredIpCount` (how many unuseds IPs should be returned). It will fail and return an error if all IPs specified in 'requiredIpCount' cannot be found. * `optionalSubnet` is specified (CIDR notation, e.g. 192.168.1.0/24), it will look for an IP in this subnet only. * `refresh` defines if Edge Gateway structure should be retrieved with latest data before performing IP lookup operation

Input and return arguments are using Go's native 'netip' package for IP addressing. This ensures correct support for IPv4 and IPv6 IPs. `netip.ParseAddr`, `netip.ParsePrefix`, `netip.Addr.String` functions can be used for conversion from/to strings

This function performs below listed steps: 1. Retrieves a complete list of IPs in Edge Gateway uplinks (returns error if none are found) 2. if 'optionalSubnet' was specified - filter IP addresses to only fall into that subnet 3. Retrieves all used IP addresses in Edge Gateway using dedicated API endpoint 4. Subtracts used IP addresses from available list of IPs in uplink (optionally filtered by optionalSubnet in step 2) 5. Checks if 'requiredIpCount' criteria is met, returns error otherwise 6. Returns required amount of unused IPs (as defined in 'requiredIpCount')

Notes: * This function uses Go's builtin `netip` package to avoid any string processing of IPs and supports IPv4 and IPv6 addressing. * If an unused IP is not found it will return 'netip.Addr{}' (not using *netip.Addr{} to match library semantics) and an error * It will return an error if any of uplink IP ranges End IP address is lower than Start IP address

func (*NsxtEdgeGateway) GetUsedAndUnusedExternalIPAddressCountWithLimit

func (egw *NsxtEdgeGateway) GetUsedAndUnusedExternalIPAddressCountWithLimit(refresh bool, limitTo int64) (int64, int64, error)

GetUsedAndUnusedExternalIPAddressCountWithLimit will count IPs and can limit their total count up to 'limitTo' which can be used to count IPs with huge IPv6 subnets

Return order - usedIpCount, unusedIpCount, error

func (*NsxtEdgeGateway) GetUsedIpAddressSlice

func (egw *NsxtEdgeGateway) GetUsedIpAddressSlice(refresh bool) ([]netip.Addr, error)

GetUsedIpAddressSlice retrieves a list of used IP addresses in an Edge Gateway and returns it using native Go type '[]netip.Addr'

func (*NsxtEdgeGateway) GetUsedIpAddresses

func (egw *NsxtEdgeGateway) GetUsedIpAddresses(queryParameters url.Values) ([]*types.GatewayUsedIpAddress, error)

GetUsedIpAddresses uses dedicated endpoint to retrieve used IP addresses in an Edge Gateway

func (*NsxtEdgeGateway) MoveToVdcOrVdcGroup

func (egw *NsxtEdgeGateway) MoveToVdcOrVdcGroup(vdcOrVdcGroupId string) (*NsxtEdgeGateway, error)

MoveToVdcOrVdcGroup moves NSX-T Edge Gateway to another VDC. This can cover such scenarios: * Move from VDC to VDC Group * Move from VDC Group to VDC (which is part of that VDC Group)

This function is just an Update operation with OwnerRef changed to vdcGroupId, but it is more convenient to use it. Note. NSX-T Edge Gateway cannot be moved directly from one VDC to another

func (*NsxtEdgeGateway) QuickDeallocateIpCount

func (egw *NsxtEdgeGateway) QuickDeallocateIpCount(ipCount int) (*NsxtEdgeGateway, error)

QuickDeallocateIpCount refreshes Edge Gateway structure and deallocates specified ipCount from it by modifying Uplink structure and calling Update() on it.

Notes: * This is a reverse operation to QuickAllocateIpCount and is provided for convenience as the API does not support negative values for QuickAddAllocatedIPCount field * This function modifies Edge Gateway structure and calls update. To only modify structure, please use `NsxtEdgeGateway.DeallocateIpCount` function

func (*NsxtEdgeGateway) Refresh

func (egw *NsxtEdgeGateway) Refresh() error

Refresh reloads NSX-T Edge Gateway contents

func (*NsxtEdgeGateway) Update

func (egw *NsxtEdgeGateway) Update(edgeGatewayConfig *types.OpenAPIEdgeGateway) (*NsxtEdgeGateway, error)

Update allows updating NSX-T edge gateway for Org admins

func (*NsxtEdgeGateway) UpdateAlbSettings

func (egw *NsxtEdgeGateway) UpdateAlbSettings(config *types.NsxtAlbConfig) (*types.NsxtAlbConfig, error)

UpdateAlbSettings updates NSX-T ALB settings for a particular Edge Gateway

func (*NsxtEdgeGateway) UpdateBgpConfiguration

func (egw *NsxtEdgeGateway) UpdateBgpConfiguration(bgpConfig *types.EdgeBgpConfig) (*types.EdgeBgpConfig, error)

UpdateBgpConfiguration updates BGP configuration on NSX-T Edge Gateway

Note. Update of BGP configuration requires version to be specified in 'Version' field. This function automatically handles it.

func (*NsxtEdgeGateway) UpdateDhcpForwarder

func (egw *NsxtEdgeGateway) UpdateDhcpForwarder(dhcpForwarderConfig *types.NsxtEdgeGatewayDhcpForwarder) (*types.NsxtEdgeGatewayDhcpForwarder, error)

UpdateDhcpForwarder updates DHCP forwarder configuration for an NSX-T Edge Gateway

func (*NsxtEdgeGateway) UpdateDnsConfig

func (egw *NsxtEdgeGateway) UpdateDnsConfig(updatedConfig *types.NsxtEdgeGatewayDns) (*NsxtEdgeGatewayDns, error)

UpdateDnsConfig updates the DNS configuration for the Edge Gateway

func (*NsxtEdgeGateway) UpdateNsxtFirewall

func (egw *NsxtEdgeGateway) UpdateNsxtFirewall(firewallRules *types.NsxtFirewallRuleContainer) (*NsxtFirewall, error)

UpdateNsxtFirewall allows user to set new firewall rules or update existing ones. The API does not have POST endpoint and always uses PUT endpoint for creating and updating.

func (*NsxtEdgeGateway) UpdateNsxtRouteAdvertisement

func (egw *NsxtEdgeGateway) UpdateNsxtRouteAdvertisement(enable bool, subnets []string) (*types.RouteAdvertisement, error)

UpdateNsxtRouteAdvertisement method is the same as UpdateNsxtRouteAdvertisementWithContext but sending TenantContext by default

func (*NsxtEdgeGateway) UpdateNsxtRouteAdvertisementWithContext

func (egw *NsxtEdgeGateway) UpdateNsxtRouteAdvertisementWithContext(enable bool, subnets []string, useTenantContext bool) (*types.RouteAdvertisement, error)

UpdateNsxtRouteAdvertisementWithContext updates the list of subnets that will be advertised so that the Edge Gateway can route out to the connected external network.

func (*NsxtEdgeGateway) UpdateQoS

func (egw *NsxtEdgeGateway) UpdateQoS(qosConfig *types.NsxtEdgeGatewayQos) (*types.NsxtEdgeGatewayQos, error)

UpdateQoS updates QoS (rate limiting) configuration for an NSX-T Edge Gateway

func (*NsxtEdgeGateway) UpdateSlaacProfile

func (egw *NsxtEdgeGateway) UpdateSlaacProfile(slaacProfileConfig *types.NsxtEdgeGatewaySlaacProfile) (*types.NsxtEdgeGatewaySlaacProfile, error)

UpdateSlaacProfile creates a SLAAC (Stateless Address Autoconfiguration) profile or updates the existing one if it already exists. Note. It represents DHCPv6 Edge Gateway configuration in UI

type NsxtEdgeGatewayDns

type NsxtEdgeGatewayDns struct {
	NsxtEdgeGatewayDns *types.NsxtEdgeGatewayDns

	EdgeGatewayId string
	// contains filtered or unexported fields
}

NsxtEdgeGatewayDns can be used to configure DNS on NSX-T Edge Gateway.

func (*NsxtEdgeGatewayDns) Delete

func (dns *NsxtEdgeGatewayDns) Delete() error

Delete deletes the DNS configuration for the Edge Gateway

func (*NsxtEdgeGatewayDns) Refresh

func (dns *NsxtEdgeGatewayDns) Refresh() error

Refresh refreshes the DNS configuration for the Edge Gateway

func (*NsxtEdgeGatewayDns) Update

func (dns *NsxtEdgeGatewayDns) Update(updatedConfig *types.NsxtEdgeGatewayDns) (*NsxtEdgeGatewayDns, error)

Update updates the DNS configuration for the underlying Edge Gateway

type NsxtEdgeGatewayQosProfile

type NsxtEdgeGatewayQosProfile struct {
	NsxtEdgeGatewayQosProfile *types.NsxtEdgeGatewayQosProfile
	// contains filtered or unexported fields
}

NsxtEdgeGatewayQosProfiles uses OpenAPI endpoint to fetch NSX-T Edge Gateway QoS Profiles defined in NSX-T Manager. They can be used to configure QoS on NSX-T Edge Gateway.

type NsxtEdgeGatewayStaticRoute

type NsxtEdgeGatewayStaticRoute struct {
	NsxtEdgeGatewayStaticRoute *types.NsxtEdgeGatewayStaticRoute
	// contains filtered or unexported fields
}

NsxtEdgeGatewayStaticRoute represents NSX-T Edge Gateway Static Route

func (*NsxtEdgeGatewayStaticRoute) Delete

func (staticRoute *NsxtEdgeGatewayStaticRoute) Delete() error

Delete Static Route

func (*NsxtEdgeGatewayStaticRoute) Update

Update Static Route

type NsxtFirewall

type NsxtFirewall struct {
	NsxtFirewallRuleContainer *types.NsxtFirewallRuleContainer
	// contains filtered or unexported fields
}

NsxtFirewall contains a types.NsxtFirewallRuleContainer which encloses three types of rules - system, default and user defined rules. User defined rules are the only ones that can be modified, others are read-only.

func (*NsxtFirewall) DeleteAllRules

func (firewall *NsxtFirewall) DeleteAllRules() error

DeleteAllRules allows users to delete all NSX-T Firewall rules in a particular Edge Gateway

func (*NsxtFirewall) DeleteRuleById

func (firewall *NsxtFirewall) DeleteRuleById(id string) error

DeleteRuleById allows users to delete NSX-T Firewall Rule By ID

type NsxtFirewallGroup

type NsxtFirewallGroup struct {
	NsxtFirewallGroup *types.NsxtFirewallGroup
	// contains filtered or unexported fields
}

NsxtFirewallGroup uses OpenAPI endpoint to operate NSX-T Security Groups and IP Sets which use the same Firewall Group API endpoint

IP sets are groups of objects to which the firewall rules apply. Combining multiple objects into IP sets helps reduce the total number of firewall rules to be created.

Security groups are groups of Org Vdc networks to which distributed firewall rules apply. Grouping networks helps you to reduce the total number of distributed firewall rules to be created.

func (*NsxtFirewallGroup) Delete

func (firewallGroup *NsxtFirewallGroup) Delete() error

Delete allows users to delete NSX-T Firewall Group

func (*NsxtFirewallGroup) GetAssociatedVms

func (firewallGroup *NsxtFirewallGroup) GetAssociatedVms() ([]*types.NsxtFirewallGroupMemberVms, error)

GetAssociatedVms allows users to retrieve a list of references to child VMs (with vApps when they exist).

Note. Only Security Groups have associated VMs. Executing it on an IP Set will return an error similar to: "only Security Groups have associated VMs. This Firewall Group has type 'IP_SET'"

func (*NsxtFirewallGroup) IsDynamicSecurityGroup

func (firewallGroup *NsxtFirewallGroup) IsDynamicSecurityGroup() bool

IsDynamicSecurityGroup allows users to check if Firewall Group is a Dynamic Security Group

func (*NsxtFirewallGroup) IsIpSet

func (firewallGroup *NsxtFirewallGroup) IsIpSet() bool

IsIpSet allows users to check if Firewall Group is an IP Set

func (*NsxtFirewallGroup) IsSecurityGroup

func (firewallGroup *NsxtFirewallGroup) IsSecurityGroup() bool

IsSecurityGroup allows users to check if Firewall Group is a Static Security Group

func (*NsxtFirewallGroup) Update

func (firewallGroup *NsxtFirewallGroup) Update(firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error)

Update allows users to update NSX-T Firewall Group

type NsxtImportableSwitch

type NsxtImportableSwitch struct {
	NsxtImportableSwitch *types.NsxtImportableSwitch
	// contains filtered or unexported fields
}

NsxtImportableSwitch is a read only object to retrieve NSX-T segments (importable switches) to be used for Org VDC imported network.

type NsxtIpSecVpnTunnel

type NsxtIpSecVpnTunnel struct {
	NsxtIpSecVpn *types.NsxtIpSecVpnTunnel
	// contains filtered or unexported fields
}

NsxtIpSecVpnTunnel offers site-to-site connectivity between an Edge Gateway and remote sites which also use NSX-T Data Center or which have either third-party hardware routers or VPN gateways that support IPsec. Policy-based IPsec VPN requires a VPN policy to be applied to packets to determine which traffic is to be protected by IPsec before being passed through a VPN tunnel. This type of VPN is considered static because when a local network topology and configuration change, the VPN policy settings must also be updated to accommodate the changes. NSX-T Data Center Edge Gateways support split tunnel configuration, with IPsec traffic taking routing precedence. VMware Cloud Director supports automatic route redistribution when you use IPsec VPN on an NSX-T edge gateway.

func (*NsxtIpSecVpnTunnel) Delete

func (ipSecVpn *NsxtIpSecVpnTunnel) Delete() error

Delete allows users to delete NSX-T IPsec VPN Tunnel

func (*NsxtIpSecVpnTunnel) GetStatus

func (ipSecVpn *NsxtIpSecVpnTunnel) GetStatus() (*types.NsxtIpSecVpnTunnelStatus, error)

GetStatus returns status of IPsec VPN Tunnel.

Note. This is not being immediately populated and may appear after some time depending on NsxtIpSecVpnTunnelSecurityProfile.DpdConfiguration

func (*NsxtIpSecVpnTunnel) GetTunnelConnectionProperties

func (ipSecVpn *NsxtIpSecVpnTunnel) GetTunnelConnectionProperties() (*types.NsxtIpSecVpnTunnelSecurityProfile, error)

GetTunnelConnectionProperties retrieves IPsec VPN Tunnel Security Profile

func (*NsxtIpSecVpnTunnel) IsEqualTo

func (ipSecVpn *NsxtIpSecVpnTunnel) IsEqualTo(vpnConfig *types.NsxtIpSecVpnTunnel) bool

IsEqualTo helps to find NSX-T IPsec VPN Tunnel Configuration Combination of LocalAddress and RemoteAddress has to be unique (enforced by API). This is a list of fields compared: * LocalEndpoint.LocalAddress * RemoteEndpoint.RemoteAddress

func (*NsxtIpSecVpnTunnel) Update

func (ipSecVpn *NsxtIpSecVpnTunnel) Update(ipSecVpnConfig *types.NsxtIpSecVpnTunnel) (*NsxtIpSecVpnTunnel, error)

Update updates NSX-T IPsec VPN Tunnel configuration with newly supplied data.

func (*NsxtIpSecVpnTunnel) UpdateTunnelConnectionProperties

func (ipSecVpn *NsxtIpSecVpnTunnel) UpdateTunnelConnectionProperties(ipSecVpnTunnelConnectionProperties *types.NsxtIpSecVpnTunnelSecurityProfile) (*types.NsxtIpSecVpnTunnelSecurityProfile, error)

UpdateTunnelConnectionProperties allows user to customize IPsec VPN Tunnel Security Profile when the default one does not fit requirements.

type NsxtL2VpnTunnel

type NsxtL2VpnTunnel struct {
	NsxtL2VpnTunnel *types.NsxtL2VpnTunnel
	// contains filtered or unexported fields
}

NsxtL2VpnTunnel extends an organization VDC by enabling virtual machines to maintain their network connectivity across geographical boundaries while keeping the same IP address. The connection is secured with a route-based IPSec tunnel between the two sides of the tunnel. The L2 VPN service can be configured on an NSX-T edge gateway in a VMware Cloud Director environment to create a L2 VPN tunnel. Virtual machines remain on the same subnet, which extends the organization VDC by stretching its network. This way, an edge gateway at one site can provide all services to virtual machines on the other site.

func (*NsxtL2VpnTunnel) Delete

func (l2Vpn *NsxtL2VpnTunnel) Delete() error

Delete deletes the L2 VPN Tunnel On versions up to 10.5.0 (as of writing) there is a bug with deleting CLIENT tunnels. If there are any networks attached to the tunnel, the DELETE call will fail the amount of times the resource was updated, so the best choice is to remove the networks and then call Delete(), or call Delete() in a loop until it's successful.

func (*NsxtL2VpnTunnel) Refresh

func (l2Vpn *NsxtL2VpnTunnel) Refresh() error

Refresh updates the provided NsxtL2VpnTunnel and returns an error if it failed

func (*NsxtL2VpnTunnel) Statistics

func (l2Vpn *NsxtL2VpnTunnel) Statistics() (*types.EdgeL2VpnTunnelStatistics, error)

Statistics retrieves connection statistics for a given L2 VPN Tunnel configured on an Edge Gateway.

func (*NsxtL2VpnTunnel) Status

func (l2Vpn *NsxtL2VpnTunnel) Status() (*types.EdgeL2VpnTunnelStatus, error)

Status retrieves status of a given L2 VPN Tunnel.

func (*NsxtL2VpnTunnel) Update

func (l2Vpn *NsxtL2VpnTunnel) Update(tunnelParams *types.NsxtL2VpnTunnel) (*NsxtL2VpnTunnel, error)

Update updates the L2 VPN tunnel with the provided parameters as the argument

type NsxtManager

type NsxtManager struct {
	NsxtManager *types.NsxtManager
	VCDClient   *VCDClient
}

func (*NsxtManager) Urn

func (nsxtManager *NsxtManager) Urn() (string, error)

Urn ensures that a URN is returned insted of plain UUID because VCD returns UUID, but requires URN in other APIs quite often.

type NsxtManagerOpenApi

type NsxtManagerOpenApi struct {
	NsxtManagerOpenApi *types.NsxtManagerOpenApi
	// contains filtered or unexported fields
}

func (*NsxtManagerOpenApi) BuildHref

func (t *NsxtManagerOpenApi) BuildHref() string

BuildHref returns an HREF for an NSX-T Manager Sample path https://{PATH}/api/admin/extension/nsxtManagers/48a6dbe1-9b4e-4a75-9947-9d87a3006496

func (*NsxtManagerOpenApi) Delete

func (t *NsxtManagerOpenApi) Delete() error

Delete NSX-T Manager configuration

func (*NsxtManagerOpenApi) Update

func (t *NsxtManagerOpenApi) Update(TmNsxtManagerConfig *types.NsxtManagerOpenApi) (*NsxtManagerOpenApi, error)

Update NSX-T Manager configuration

type NsxtNatRule

type NsxtNatRule struct {
	NsxtNatRule *types.NsxtNatRule
	// contains filtered or unexported fields
}

NsxtNatRule describes a single NAT rule of 5 different Rule Types - DNAT`, `NO_DNAT`, `SNAT`, `NO_SNAT`, 'REFLEXIVE' 'REFLEXIVE' is only supported in API 35.2 (VCD 10.2.2+)

A SNAT or a DNAT rule on an Edge Gateway in the VMware Cloud Director environment is always configured from the perspective of your organization VDC. DNAT and NO_DNAT - outside traffic going inside SNAT and NO_SNAT - inside traffic going outside More docs in https://docs.vmware.com/en/VMware-Cloud-Director/10.2/VMware-Cloud-Director-Tenant-Portal-Guide/GUID-9E43E3DC-C028-47B3-B7CA-59F0ED40E0A6.html

Note. This structure and all its API calls will require at least API version 34.0, but will elevate it to 35.2 if possible because API 35.2 introduces support for 2 new fields FirewallMatch and Priority.

func (*NsxtNatRule) Delete

func (nsxtNat *NsxtNatRule) Delete() error

Delete deletes NSX-T NAT rule

func (*NsxtNatRule) IsEqualTo

func (nsxtNat *NsxtNatRule) IsEqualTo(rule *types.NsxtNatRule) bool

IsEqualTo allows to check if a rule has exactly the same fields (except ID) to the supplied rule This validation is very tricky because minor version changes impact how fields are return. This function relies on most common and stable fields: * Name * Enabled * Description * ExternalAddresses * InternalAddresses * ApplicationPortProfile.ID

func (*NsxtNatRule) Update

func (nsxtNat *NsxtNatRule) Update(natRuleConfig *types.NsxtNatRule) (*NsxtNatRule, error)

Update allows users to update NSX-T NAT rule

type NsxtSegmentProfileTemplate

type NsxtSegmentProfileTemplate struct {
	NsxtSegmentProfileTemplate *types.NsxtSegmentProfileTemplate
	VCDClient                  *VCDClient
}

NsxtSegmentProfileTemplate contains a structure for configuring Segment Profile Templates

func (*NsxtSegmentProfileTemplate) Delete

func (spt *NsxtSegmentProfileTemplate) Delete() error

Delete allows deleting NSX-T Segment Profile Template

func (*NsxtSegmentProfileTemplate) Update

func (spt *NsxtSegmentProfileTemplate) Update(nsxtSegmentProfileTemplateConfig *types.NsxtSegmentProfileTemplate) (*NsxtSegmentProfileTemplate, error)

Update Segment Profile Template

type NsxtTier0Router

type NsxtTier0Router struct {
	NsxtTier0Router *types.NsxtTier0Router
	// contains filtered or unexported fields
}

NsxtTier0Router

type NsxvDistributedFirewall

type NsxvDistributedFirewall struct {
	VdcId         string                       // The ID of the VDC
	Configuration *types.FirewallConfiguration // The latest firewall configuration
	Etag          string

	Services      []types.Application      // The list of services for this VDC
	ServiceGroups []types.ApplicationGroup // The list of service groups for this VDC
	// contains filtered or unexported fields
}

NsxvDistributedFirewall defines a distributed firewall for a NSX-V VDC

func NewNsxvDistributedFirewall

func NewNsxvDistributedFirewall(client *Client, vdcId string) *NsxvDistributedFirewall

NewNsxvDistributedFirewall creates a new NsxvDistributedFirewall

func (*NsxvDistributedFirewall) Disable

func (dfw *NsxvDistributedFirewall) Disable() error

Disable removes the availability of a distributed firewall WARNING: it also removes all rules

func (*NsxvDistributedFirewall) Enable

func (dfw *NsxvDistributedFirewall) Enable() error

Enable makes the distributed firewall available It fails with a non-NSX-V VDC

func (*NsxvDistributedFirewall) GetConfiguration

func (dfw *NsxvDistributedFirewall) GetConfiguration() (*types.FirewallConfiguration, error)

GetConfiguration retrieves the configuration of a distributed firewall

func (*NsxvDistributedFirewall) GetServiceById

func (dfw *NsxvDistributedFirewall) GetServiceById(serviceId string) (*types.Application, error)

GetServiceById retrieves a single service, identified by its ID, for the current VDC If the list of services was already retrieved, it uses it, otherwise fetches new ones. Returns ErrorEntityNotFound when the requested services was not found

func (*NsxvDistributedFirewall) GetServiceByName

func (dfw *NsxvDistributedFirewall) GetServiceByName(serviceName string) (*types.Application, error)

GetServiceByName retrieves a single service, identified by its name, for the current VDC If the list of services was already retrieved, it uses it, otherwise fetches new ones. Returns ErrorEntityNotFound when the requested service was not found

func (*NsxvDistributedFirewall) GetServiceGroupById

func (dfw *NsxvDistributedFirewall) GetServiceGroupById(serviceGroupId string) (*types.ApplicationGroup, error)

GetServiceGroupById retrieves a single service group, identified by its ID, for the current VDC If the list of service groups was already retrieved, it uses it, otherwise fetches new ones. Returns ErrorEntityNotFound when the requested service group was not found

func (*NsxvDistributedFirewall) GetServiceGroupByName

func (dfw *NsxvDistributedFirewall) GetServiceGroupByName(serviceGroupName string) (*types.ApplicationGroup, error)

GetServiceGroupByName retrieves a single service group, identified by its name, for the current VDC If the list of service groups was already retrieved, it uses it, otherwise fetches new ones. Returns ErrorEntityNotFound when the requested service group was not found

func (*NsxvDistributedFirewall) GetServiceGroups

func (dfw *NsxvDistributedFirewall) GetServiceGroups(refresh bool) ([]types.ApplicationGroup, error)

GetServiceGroups retrieves the list of services for the current VDC If `refresh` = false and the services were already retrieved in a previous operation, then it returns the internal values instead of fetching new ones

func (*NsxvDistributedFirewall) GetServiceGroupsByRegex

func (dfw *NsxvDistributedFirewall) GetServiceGroupsByRegex(expression string) ([]types.ApplicationGroup, error)

GetServiceGroupsByRegex returns a list of services with their names matching the given regular expression It may return an empty list (without error)

func (*NsxvDistributedFirewall) GetServices

func (dfw *NsxvDistributedFirewall) GetServices(refresh bool) ([]types.Application, error)

GetServices retrieves the list of services for the current VCD If `refresh` = false and the services were already retrieved in a previous operation, then it returns the internal values instead of fetching new ones

func (*NsxvDistributedFirewall) GetServicesByRegex

func (dfw *NsxvDistributedFirewall) GetServicesByRegex(expression string) ([]types.Application, error)

GetServicesByRegex returns a list of services with their names matching the given regular expression It may return an empty list (without error)

func (*NsxvDistributedFirewall) IsEnabled

func (dfw *NsxvDistributedFirewall) IsEnabled() (bool, error)

IsEnabled returns true when the distributed firewall is enabled

func (*NsxvDistributedFirewall) Refresh

func (dfw *NsxvDistributedFirewall) Refresh() error

Refresh retrieves fresh values for the distributed firewall rules, services, and service groups

func (*NsxvDistributedFirewall) UpdateConfiguration

UpdateConfiguration will either create a new set of rules or update existing ones. If the firewall already contains rules, they are overwritten by the ones passed as parameters

type OpenApiMetadataEntry

type OpenApiMetadataEntry struct {
	MetadataEntry *types.OpenApiMetadataEntry

	Etag string // Allows concurrent operations with metadata
	// contains filtered or unexported fields
}

OpenApiMetadataEntry is a wrapper object for types.OpenApiMetadataEntry

func (*OpenApiMetadataEntry) Delete

func (entry *OpenApiMetadataEntry) Delete() error

Delete deletes the receiver metadata entry.

func (*OpenApiMetadataEntry) Update

func (entry *OpenApiMetadataEntry) Update(value interface{}, persistent bool) error

Update updates the metadata value from the receiver entry. Only the value and persistence of the entry can be updated. Re-create the entry in case you want to modify any of the other fields.

type OpenApiOrg

type OpenApiOrg struct {
	Org *types.OpenApiOrg
	// contains filtered or unexported fields
}

type OpenApiOrgVdcNetwork

type OpenApiOrgVdcNetwork struct {
	OpenApiOrgVdcNetwork *types.OpenApiOrgVdcNetwork
	// contains filtered or unexported fields
}

OpenApiOrgVdcNetwork uses OpenAPI endpoint to operate both - NSX-T and NSX-V Org VDC networks

func (*OpenApiOrgVdcNetwork) AddMetadataEntry

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds OpenApiOrgVdcNetwork metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use OpenApiOrgVdcNetwork.AddMetadataEntryWithVisibility instead

func (*OpenApiOrgVdcNetwork) AddMetadataEntryWithVisibility

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver OpenApiOrgVdcNetwork and waits for the task to finish. Note: It doesn't add metadata to networks that belong to a VDC Group. TODO: This function is currently using XML API underneath as OpenAPI metadata is still not supported.

func (*OpenApiOrgVdcNetwork) CreateOpenApiOrgVdcNetworkDhcpBinding

func (orgVdcNet *OpenApiOrgVdcNetwork) CreateOpenApiOrgVdcNetworkDhcpBinding(dhcpBindingConfig *types.OpenApiOrgVdcNetworkDhcpBinding) (*OpenApiOrgVdcNetworkDhcpBinding, error)

CreateOpenApiOrgVdcNetworkDhcpBinding allows to create DHCP binding for specific Org VDC network

func (*OpenApiOrgVdcNetwork) DeletNetworkDhcp

func (orgVdcNet *OpenApiOrgVdcNetwork) DeletNetworkDhcp() error

DeletNetworkDhcp allows to perform HTTP DELETE request on DHCP pool configuration for Org network

func (*OpenApiOrgVdcNetwork) Delete

func (orgVdcNet *OpenApiOrgVdcNetwork) Delete() error

Delete allows to delete Org VDC network

func (*OpenApiOrgVdcNetwork) DeleteMetadataEntry

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes OpenApiOrgVdcNetwork metadata depending on key provided as input and waits for the task to finish. Deprecated: Use OpenApiOrgVdcNetwork.DeleteMetadataEntryWithDomain

func (*OpenApiOrgVdcNetwork) DeleteMetadataEntryWithDomain

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes OpenApiOrgVdcNetwork metadata associated to the input key and waits for the task to finish. Note: It doesn't delete metadata from networks that belong to a VDC Group. TODO: This function is currently using XML API underneath as OpenAPI metadata is still not supported.

func (*OpenApiOrgVdcNetwork) GetAllOpenApiOrgVdcNetworkDhcpBindings

func (orgVdcNet *OpenApiOrgVdcNetwork) GetAllOpenApiOrgVdcNetworkDhcpBindings(queryParameters url.Values) ([]*OpenApiOrgVdcNetworkDhcpBinding, error)

GetAllOpenApiOrgVdcNetworkDhcpBindings allows to retrieve all DHCP binding configurations for specific Org VDC network

func (*OpenApiOrgVdcNetwork) GetMetadata

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) GetMetadata() (*types.Metadata, error)

GetMetadata returns OpenApiOrgVdcNetwork metadata. NOTE: This function cannot retrieve metadata if the network belongs to a VDC Group. TODO: This function is currently using XML API underneath as OpenAPI metadata is still not supported.

func (*OpenApiOrgVdcNetwork) GetMetadataByKey

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns OpenApiOrgVdcNetwork metadata corresponding to the given key and domain. NOTE: This function cannot retrieve metadata if the network belongs to a VDC Group. TODO: This function is currently using XML API underneath as OpenAPI metadata is still not supported.

func (*OpenApiOrgVdcNetwork) GetOpenApiOrgVdcNetworkDhcp

func (orgVdcNet *OpenApiOrgVdcNetwork) GetOpenApiOrgVdcNetworkDhcp() (*OpenApiOrgVdcNetworkDhcp, error)

GetOpenApiOrgVdcNetworkDhcp allows to retrieve DHCP configuration for specific Org VDC network

func (*OpenApiOrgVdcNetwork) GetOpenApiOrgVdcNetworkDhcpBindingById

func (orgVdcNet *OpenApiOrgVdcNetwork) GetOpenApiOrgVdcNetworkDhcpBindingById(id string) (*OpenApiOrgVdcNetworkDhcpBinding, error)

GetOpenApiOrgVdcNetworkDhcpBindingById allows to retrieve DHCP binding configuration

func (*OpenApiOrgVdcNetwork) GetOpenApiOrgVdcNetworkDhcpBindingByName

func (orgVdcNet *OpenApiOrgVdcNetwork) GetOpenApiOrgVdcNetworkDhcpBindingByName(name string) (*OpenApiOrgVdcNetworkDhcpBinding, error)

GetOpenApiOrgVdcNetworkDhcpBindingByName allows to retrieve DHCP binding configuration by name

func (*OpenApiOrgVdcNetwork) GetSegmentProfile

func (orgVdcNet *OpenApiOrgVdcNetwork) GetSegmentProfile() (*types.OrgVdcNetworkSegmentProfiles, error)

GetSegmentProfile retrieves Segment Profile configuration for a single Org VDC Network

func (*OpenApiOrgVdcNetwork) GetType

func (orgVdcNet *OpenApiOrgVdcNetwork) GetType() string

GetType returns type of Org VDC network

func (*OpenApiOrgVdcNetwork) IsDhcpEnabled

func (orgVdcNet *OpenApiOrgVdcNetwork) IsDhcpEnabled() bool

IsDhcpEnabled returns true if DHCP is enabled for NSX-T Org VDC network, false otherwise

func (*OpenApiOrgVdcNetwork) IsDirect

func (orgVdcNet *OpenApiOrgVdcNetwork) IsDirect() bool

IsDirect returns true if the network type is direct (NSX-V only)

func (*OpenApiOrgVdcNetwork) IsImported

func (orgVdcNet *OpenApiOrgVdcNetwork) IsImported() bool

IsImported returns true if the network type is imported (NSX-T only)

func (*OpenApiOrgVdcNetwork) IsIsolated

func (orgVdcNet *OpenApiOrgVdcNetwork) IsIsolated() bool

IsIsolated returns true if the network type is isolated (NSX-V and NSX-T)

func (*OpenApiOrgVdcNetwork) IsNsxt

func (orgVdcNet *OpenApiOrgVdcNetwork) IsNsxt() bool

IsNsxt returns true if the network is backed by NSX-T

func (*OpenApiOrgVdcNetwork) IsRouted

func (orgVdcNet *OpenApiOrgVdcNetwork) IsRouted() bool

IsRouted returns true if the network type is isolated (NSX-V and NSX-T)

func (*OpenApiOrgVdcNetwork) MergeMetadata

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges OpenApiOrgVdcNetwork metadata provided as a key-value map of type `typedValue` with the already present in VCD, and waits for the task to finish. Deprecated: Use OpenApiOrgVdcNetwork.MergeMetadataWithMetadataValues

func (*OpenApiOrgVdcNetwork) MergeMetadataWithMetadataValues

func (openApiOrgVdcNetwork *OpenApiOrgVdcNetwork) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver OpenApiOrgVdcNetwork and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes. Note: It doesn't merge metadata to networks that belong to a VDC Group. TODO: This function is currently using XML API underneath as OpenAPI metadata is still not supported.

func (*OpenApiOrgVdcNetwork) Update

func (orgVdcNet *OpenApiOrgVdcNetwork) Update(OrgVdcNetworkConfig *types.OpenApiOrgVdcNetwork) (*OpenApiOrgVdcNetwork, error)

Update allows to update Org VDC network

func (*OpenApiOrgVdcNetwork) UpdateDhcp

func (orgVdcNet *OpenApiOrgVdcNetwork) UpdateDhcp(orgVdcNetworkDhcpConfig *types.OpenApiOrgVdcNetworkDhcp) (*OpenApiOrgVdcNetworkDhcp, error)

UpdateDhcp updates DHCP configuration for specific Org VDC network

func (*OpenApiOrgVdcNetwork) UpdateSegmentProfile

func (orgVdcNet *OpenApiOrgVdcNetwork) UpdateSegmentProfile(entityConfig *types.OrgVdcNetworkSegmentProfiles) (*types.OrgVdcNetworkSegmentProfiles, error)

UpdateSegmentProfile updates a Segment Profile with a given configuration

type OpenApiOrgVdcNetworkDhcp

type OpenApiOrgVdcNetworkDhcp struct {
	OpenApiOrgVdcNetworkDhcp *types.OpenApiOrgVdcNetworkDhcp
	// contains filtered or unexported fields
}

OpenApiOrgVdcNetwork uses OpenAPI endpoint to operate both - NSX-T and NSX-V Org VDC network DHCP settings

type OpenApiOrgVdcNetworkDhcpBinding

type OpenApiOrgVdcNetworkDhcpBinding struct {
	OpenApiOrgVdcNetworkDhcpBinding *types.OpenApiOrgVdcNetworkDhcpBinding

	// ParentOrgVdcNetworkId is used to construct the URL for the DHCP binding as it contains Org
	// VDC network ID in the path
	ParentOrgVdcNetworkId string
	// contains filtered or unexported fields
}

OpenApiOrgVdcNetworkDhcpBinding handles IPv4 and IPv6 DHCP bindings for NSX-T Org VDC networks. Note. To create DHCP bindings, DHCP must be enabled on the network first (see `OpenApiOrgVdcNetworkDhcp`)

func (*OpenApiOrgVdcNetworkDhcpBinding) Delete

func (dhcpBinding *OpenApiOrgVdcNetworkDhcpBinding) Delete() error

Delete removes DHCP binding by performing HTTP DELETE request on DHCP binding

func (*OpenApiOrgVdcNetworkDhcpBinding) Refresh

func (dhcpBinding *OpenApiOrgVdcNetworkDhcpBinding) Refresh() error

Refresh DHCP binding configuration. Mainly useful for retrieving latest `Version` field` of DHCP binding before performing update

func (*OpenApiOrgVdcNetworkDhcpBinding) Update

Update allows to update DHCP configuration

Note. This API requires `Version` field to be sent in the request and this function does it automatically

type OpenApiUser

type OpenApiUser struct {
	User *types.OpenApiUser

	TenantContext *TenantContext
	// contains filtered or unexported fields
}

func (*OpenApiUser) Delete

func (o *OpenApiUser) Delete() error

Delete User

func (*OpenApiUser) Update

func (o *OpenApiUser) Update(cfg *types.OpenApiUser) (*OpenApiUser, error)

Update User with a given config

type Org

type Org struct {
	Org *types.Org

	TenantContext *TenantContext
	// contains filtered or unexported fields
}

func GetOrgByName

func GetOrgByName(vcdClient *VCDClient, orgName string) (Org, error)

If user specifies a valid organization name, then this returns a organization object. If no valid org is found, it returns an empty org and no error. Otherwise it returns an error and an empty Org object Deprecated: Use vcdClient.GetOrgByName instead

func NewOrg

func NewOrg(client *Client) *Org

func (*Org) CreateCatalog

func (org *Org) CreateCatalog(name, description string) (Catalog, error)

CreateCatalog creates a catalog with given name and description under the given organization. Returns an Catalog that contains a creation task. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-CreateCatalog.html

func (*Org) CreateCatalogWithStorageProfile

func (org *Org) CreateCatalogWithStorageProfile(name, description string, storageProfiles *types.CatalogStorageProfiles) (*Catalog, error)

CreateCatalogWithStorageProfile is like CreateCatalog but additionally allows to specify storage profiles

func (*Org) CreateNsxtAppPortProfile

func (org *Org) CreateNsxtAppPortProfile(appPortProfileConfig *types.NsxtAppPortProfile) (*NsxtAppPortProfile, error)

CreateNsxtAppPortProfile allows users to create NSX-T Application Port Profile definition. It can have 3 types of scopes: * SYSTEM (The ones that are provided by SYSTEM) Read-only * PROVIDER (Created by Provider globally) * TENANT (Create by tenant at Org level) More details about scope in documentation for types.NsxtAppPortProfile

func (*Org) CreateOpenApiOrgVdcNetwork

func (org *Org) CreateOpenApiOrgVdcNetwork(orgVdcNetworkConfig *types.OpenApiOrgVdcNetwork) (*OpenApiOrgVdcNetwork, error)

CreateOpenApiOrgVdcNetwork allows to create NSX-T or NSX-V Org VDC network

func (*Org) CseCreateKubernetesCluster

func (org *Org) CseCreateKubernetesCluster(clusterData CseClusterSettings, timeout time.Duration) (*CseKubernetesCluster, error)

CseCreateKubernetesCluster creates a Kubernetes cluster with the data given as input (CseClusterSettings). If the given timeout is 0, it waits forever for the cluster creation.

If the timeout is reached and the cluster is not available (in "provisioned" state), it will return a non-nil CseKubernetesCluster with only the cluster ID and an error. This means that the cluster will be left in VCD in any state, and it can be retrieved afterward with Org.CseGetKubernetesClusterById and the returned ID.

If the cluster is created correctly, returns all the available data in CseKubernetesCluster or an error if some of the fields of the created cluster cannot be calculated or retrieved.

func (*Org) CseCreateKubernetesClusterAsync

func (org *Org) CseCreateKubernetesClusterAsync(clusterSettings CseClusterSettings) (string, error)

CseCreateKubernetesClusterAsync creates a Kubernetes cluster with the data given as input (CseClusterSettings), but does not wait for the creation process to finish, so it doesn't monitor for any errors during the process. It returns just the ID of the created cluster. One can manually check the status of the cluster with VCDClient.CseGetKubernetesClusterById and the result of this method.

func (*Org) CseGetKubernetesClustersByName

func (org *Org) CseGetKubernetesClustersByName(cseVersion semver.Version, name string) ([]*CseKubernetesCluster, error)

CseGetKubernetesClustersByName retrieves all the CSE Kubernetes clusters from VCD with the given name that belong to the receiver Organization. Note: The clusters retrieved won't have a valid ETag to perform operations on them. Use VCDClient.CseGetKubernetesClusterById for that instead.

func (*Org) FindCatalog

func (org *Org) FindCatalog(catalogName string) (Catalog, error)

Given a valid catalog name, FindCatalog returns a Catalog object. If no catalog is found, then returns an empty catalog and no error. Otherwise it returns an error. Deprecated: use org.GetCatalogByName instead

func (*Org) GetAllNsxtAppPortProfiles

func (org *Org) GetAllNsxtAppPortProfiles(queryParameters url.Values, scope string) ([]*NsxtAppPortProfile, error)

GetAllNsxtAppPortProfiles returns all NSX-T Application Port Profiles for specific scope More details about scope in documentation for types.NsxtAppPortProfile

func (*Org) GetAllNsxtEdgeGateways

func (org *Org) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error)

GetAllNsxtEdgeGateways allows to retrieve all NSX-T edge gateways for Org users

func (*Org) GetAllNsxtFirewallGroups

func (org *Org) GetAllNsxtFirewallGroups(queryParameters url.Values, firewallGroupType string) ([]*NsxtFirewallGroup, error)

GetAllNsxtFirewallGroups allows users to retrieve all Firewall Groups for Org firewallGroupType can be one of the following: * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups * types.FirewallGroupTypeIpSet - for NSX-T IP Sets * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups

It is possible to add additional filtering by using queryParameters of type 'url.Values'. One special filter is `_context==` filtering. Value can be one of the following:

* Org Vdc Network ID (_context==networkId) - Returns all the firewall groups which the specified network is a member of.

* Edge Gateway ID (_context==edgeGatewayId) - Returns all the firewall groups which are available to the specific edge gateway. Or use a shorthand NsxtEdgeGateway.GetAllNsxtFirewallGroups() which automatically injects this filter.

* Network Provider ID (_context==networkProviderId) - Returns all the firewall groups which are available under a specific network provider. This context requires system admin privilege. 'networkProviderId' is NSX-T manager ID

func (*Org) GetAllOpenApiOrgVdcNetworks

func (org *Org) GetAllOpenApiOrgVdcNetworks(queryParameters url.Values) ([]*OpenApiOrgVdcNetwork, error)

GetAllOpenApiOrgVdcNetworks allows to retrieve all NSX-T or NSX-V Org VDC networks in Org

Note. If pageSize > 32 it will be limited to maximum of 32 in this function because API validation does not allow for higher number

func (*Org) GetAllSecurityTagValues

func (org *Org) GetAllSecurityTagValues(queryParameters url.Values) ([]types.SecurityTagValue, error)

GetAllSecurityTagValues Retrieves the list of security tags that are in the organization and can be reused to tag an entity. The list of tags include tags assigned to entities within the organization. This function works from API v36.0 (VCD 10.3.0+)

func (*Org) GetAllSecurityTaggedEntities

func (org *Org) GetAllSecurityTaggedEntities(queryParameters url.Values) ([]types.SecurityTaggedEntity, error)

GetAllSecurityTaggedEntities Retrieves the list of entities that have at least one tag assigned to it. queryParameters allows users to pass filters: I.e: filter=(tag==Web;entityType==vm) This function works from API v36.0 (VCD 10.3.0+)

func (*Org) GetAllSecurityTaggedEntitiesByName

func (org *Org) GetAllSecurityTaggedEntitiesByName(securityTagName string) ([]types.SecurityTaggedEntity, error)

GetAllSecurityTaggedEntitiesByName wraps GetAllSecurityTaggedEntities and returns ErrorEntityNotFound if nothing was found This function works from API v36.0 (VCD 10.3.0+)

func (*Org) GetAllServiceAccounts

func (org *Org) GetAllServiceAccounts(queryParams url.Values) ([]*ServiceAccount, error)

GetAllServiceAccounts gets all service accounts with the specified query parameters

func (*Org) GetAllVdcComputePolicies

func (org *Org) GetAllVdcComputePolicies(queryParameters url.Values) ([]*VdcComputePolicy, error)

GetAllVdcComputePolicies retrieves all VDC compute policies using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering Deprecated: use VCDClient.GetAllVdcComputePoliciesV2

func (*Org) GetAnyTypeEdgeGatewayById

func (org *Org) GetAnyTypeEdgeGatewayById(id string) (*AnyTypeEdgeGateway, error)

GetNsxtEdgeGatewayById allows retrieving NSX-T or NSX-V Edge Gateway by ID for Org users

func (*Org) GetCatalogAccessControl

func (org *Org) GetCatalogAccessControl(catalogIdentifier string, useTenantContext bool) (*types.ControlAccessParams, error)

GetCatalogAccessControl is a convenience method to retrieve access control for a catalog from an organization. The input variable catalogIdentifier can be either the catalog name or its ID

func (*Org) GetCatalogByHref

func (org *Org) GetCatalogByHref(catalogHref string) (*Catalog, error)

GetCatalogByHref finds a Catalog by HREF On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*Org) GetCatalogById

func (org *Org) GetCatalogById(catalogId string, refresh bool) (*Catalog, error)

GetCatalogById finds a Catalog by ID On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*Org) GetCatalogByName

func (org *Org) GetCatalogByName(catalogName string, refresh bool) (*Catalog, error)

GetCatalogByName finds a Catalog by Name On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

refresh has no effect here, but is kept to preserve signature

func (*Org) GetCatalogByNameOrId

func (org *Org) GetCatalogByNameOrId(identifier string, refresh bool) (*Catalog, error)

GetCatalogByNameOrId finds a Catalog by name or ID On success, returns a pointer to the Catalog structure and a nil error On failure, returns a nil pointer and an error

func (*Org) GetIpSpaceAllocationById

func (org *Org) GetIpSpaceAllocationById(ipSpaceId, allocationId string) (*IpSpaceIpAllocation, error)

GetIpSpaceAllocationById retrieves IP Allocation in a given IP Space by IDs

func (*Org) GetIpSpaceAllocationByTypeAndValue

func (org *Org) GetIpSpaceAllocationByTypeAndValue(ipSpaceId string, allocationType, value string, queryParameters url.Values) (*IpSpaceIpAllocation, error)

GetIpSpaceAllocationByTypeAndValue retrieves IP Space allocation by its type and value allocationType can be 'FLOATING_IP' (types.IpSpaceIpAllocationTypeFloatingIp) or 'IP_PREFIX' (types.IpSpaceIpAllocationTypeIpPrefix)

func (*Org) GetMetadata

func (org *Org) GetMetadata() (*types.Metadata, error)

GetMetadata returns the Org metadata of the corresponding organization seen as administrator

func (*Org) GetMetadataByKey

func (org *Org) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns the Org metadata corresponding to the given key and domain.

func (*Org) GetNsxtAppPortProfileById

func (org *Org) GetNsxtAppPortProfileById(id string) (*NsxtAppPortProfile, error)

GetNsxtAppPortProfileById retrieves NSX-T Application Port Profile by ID

func (*Org) GetNsxtAppPortProfileByName

func (org *Org) GetNsxtAppPortProfileByName(name, scope string) (*NsxtAppPortProfile, error)

GetNsxtAppPortProfileByName allows users to retrieve Application Port Profiles for specific scope. More details in documentation for types.NsxtAppPortProfile

Note. Names are enforced to be unique per scope

func (*Org) GetNsxtEdgeGatewayById

func (org *Org) GetNsxtEdgeGatewayById(id string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayById allows retrieving NSX-T edge gateway by ID for Org users

func (*Org) GetNsxtEdgeGatewayByName

func (org *Org) GetNsxtEdgeGatewayByName(name string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayByName allows retrieving NSX-T edge gateway by Name for Org admins

func (*Org) GetNsxtEdgeGatewayByNameAndOwnerId

func (org *Org) GetNsxtEdgeGatewayByNameAndOwnerId(edgeGatewayName, ownerId string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayByNameAndOwnerId looks up NSX-T Edge Gateway by name and its owner ID (owner can be VDC or VDC Group).

func (*Org) GetNsxtFirewallGroupById

func (org *Org) GetNsxtFirewallGroupById(id string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupById retrieves NSX-T Firewall Group by ID

func (*Org) GetNsxtFirewallGroupByName

func (org *Org) GetNsxtFirewallGroupByName(name, firewallGroupType string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupByName allows users to retrieve Firewall Group by Name firewallGroupType can be one of the following: * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups * types.FirewallGroupTypeIpSet - for NSX-T IP Sets * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups

Note. One might get an error if IP Set and Security Group exist with the same name (two objects of the same type cannot exist) and firewallGroupType is left empty.

func (*Org) GetOpenApiOrgVdcNetworkById

func (org *Org) GetOpenApiOrgVdcNetworkById(id string) (*OpenApiOrgVdcNetwork, error)

GetOpenApiOrgVdcNetworkById allows to retrieve both - NSX-T and NSX-V Org VDC networks

func (*Org) GetOpenApiOrgVdcNetworkByNameAndOwnerId

func (org *Org) GetOpenApiOrgVdcNetworkByNameAndOwnerId(name, ownerId string) (*OpenApiOrgVdcNetwork, error)

GetOpenApiOrgVdcNetworkByNameAndOwnerId allows to retrieve both - NSX-T and NSX-V Org VDC networks by network name and Owner (VDC or VDC Group) ID

func (*Org) GetServiceAccountById

func (org *Org) GetServiceAccountById(serviceAccountId string) (*ServiceAccount, error)

GetServiceAccountById gets a Service Account by its ID

func (*Org) GetServiceAccountByName

func (org *Org) GetServiceAccountByName(name string) (*ServiceAccount, error)

GetServiceAccountByName gets a service account by its name

func (*Org) GetTaskList

func (org *Org) GetTaskList() (*types.TasksList, error)

GetTaskList returns Tasks for Organization and error.

func (*Org) GetVAppByHref

func (org *Org) GetVAppByHref(vappHref string) (*VApp, error)

GetVappByHref returns a vApp reference by running a VCD API call If no valid vApp is found, it returns a nil VApp reference and an error

func (*Org) GetVDCByHref

func (org *Org) GetVDCByHref(vdcHref string) (*Vdc, error)

GetVDCByHref finds a VDC by HREF On success, returns a pointer to the VDC structure and a nil error On failure, returns a nil pointer and an error

func (*Org) GetVDCById

func (org *Org) GetVDCById(vdcId string, refresh bool) (*Vdc, error)

GetVDCById finds a VDC by ID On success, returns a pointer to the VDC structure and a nil error On failure, returns a nil pointer and an error

refresh has no effect and is kept to preserve signature

func (*Org) GetVDCByName

func (org *Org) GetVDCByName(vdcName string, refresh bool) (*Vdc, error)

GetVDCByName finds a VDC by Name On success, returns a pointer to the VDC structure and a nil error On failure, returns a nil pointer and an error

refresh has no effect and is kept to preserve signature

func (*Org) GetVDCByNameOrId

func (org *Org) GetVDCByNameOrId(identifier string, refresh bool) (*Vdc, error)

GetVDCByNameOrId finds a VDC by name or ID On success, returns a pointer to the VDC structure and a nil error On failure, returns a nil pointer and an error

refresh has no effect and is kept to preserve signature

func (*Org) GetVdcByName

func (org *Org) GetVdcByName(vdcname string) (Vdc, error)

GetVdcByName if user specifies valid vdc name then this returns a vdc object. If no vdc is found, then it returns an empty vdc and no error. Otherwise it returns an empty vdc and an error. Deprecated: use org.GetVDCByName instead

func (*Org) GetVdcComputePolicyById

func (org *Org) GetVdcComputePolicyById(id string) (*VdcComputePolicy, error)

GetVdcComputePolicyById retrieves VDC compute policy by given ID Deprecated: use VCDClient.GetVdcComputePolicyV2ById

func (*Org) GetVdcGroupById

func (org *Org) GetVdcGroupById(id string) (*VdcGroup, error)

GetVdcGroupById Returns VDC group using provided ID

func (*Org) IpSpaceAllocateIp

func (org *Org) IpSpaceAllocateIp(ipSpaceId string, ipAllocationConfig *types.IpSpaceIpAllocationRequest) ([]types.IpSpaceIpAllocationRequestResult, error)

IpSpaceAllocateIp performs IP allocation request for a specific IP Space

func (*Org) QueryCatalogList

func (org *Org) QueryCatalogList() ([]*types.CatalogRecord, error)

QueryCatalogList returns a list of catalogs for this organization

func (*Org) QueryOrgVdcList

func (org *Org) QueryOrgVdcList() ([]*types.QueryResultOrgVdcRecordType, error)

QueryOrgVdcList returns all Org VDCs using query endpoint

Note. Being a 'System' user it will not return any VDC

func (*Org) QueryVdcTemplates

func (org *Org) QueryVdcTemplates() ([]*types.QueryResultOrgVdcTemplateRecordType, error)

QueryVdcTemplates gets the list of VDC Templates from the receiver Org, as a tenant

func (*Org) QueryVmById

func (org *Org) QueryVmById(id string) (*VM, error)

QueryVmById retrieves a standalone VM by ID in an Org It can also retrieve a standard VM (created from vApp)

func (*Org) QueryVmList

func (org *Org) QueryVmList(filter types.VmQueryFilter) ([]*types.QueryResultVMRecordType, error)

QueryVmList returns a list of all VMs in a given Org

func (*Org) Refresh

func (org *Org) Refresh() error

Given an org with a valid HREF, the function refetches the org and updates the user's org data. Otherwise if the function fails, it returns an error. Users should use refresh whenever they have a stale org due to the creation/update/deletion of a resource within the org or the org itself.

func (*Org) SearchByFilter

func (org *Org) SearchByFilter(queryType string, criteria *FilterDef) ([]QueryItem, string, error)

SearchByFilter runs the search for a specific Org

func (*Org) UpdateSecurityTag

func (org *Org) UpdateSecurityTag(securityTag *types.SecurityTag) (*types.SecurityTag, error)

UpdateSecurityTag updates the entities associated with a Security Tag. Only the list of tagged entities can be updated. The name cannot be updated. Any other existing entities not in the list will be untagged. This function works from API v36.0 (VCD 10.3.0+)

type OrgGroup

type OrgGroup struct {
	Group *types.Group

	AdminOrg *AdminOrg // needed to be able to update, as the list of roles is found in the Org
	// contains filtered or unexported fields
}

OrgGroup defines group structure

func NewGroup

func NewGroup(cli *Client, org *AdminOrg) *OrgGroup

NewGroup creates a new group structure which still needs to have Group attribute populated

func (*OrgGroup) Delete

func (group *OrgGroup) Delete() error

Delete removes a group

func (*OrgGroup) Update

func (group *OrgGroup) Update() error

Update allows to update group. vCD API allows to update only role

type OrgUser

type OrgUser struct {
	User *types.User

	AdminOrg *AdminOrg // needed to be able to update, as the list of roles is found in the Org
	// contains filtered or unexported fields
}

Definition of an OrgUser

func NewUser

func NewUser(cli *Client, org *AdminOrg) *OrgUser

NewUser creates an empty user

func (*OrgUser) ChangePassword

func (user *OrgUser) ChangePassword(newPass string) error

ChangePassword changes user's password Constraints: the password must be non-empty, with a minimum of 6 characters

func (*OrgUser) ChangeRole

func (user *OrgUser) ChangeRole(roleName string) error

ChangeRole changes a user's role Fails is we try to set the same role as the current one. Also fails if the provided role name is not found.

func (*OrgUser) Delete

func (user *OrgUser) Delete(takeOwnership bool) error

Delete removes the user, returning an error if the call fails. if requested, it will attempt to take ownership before the removal. API Documentation: https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/DELETE-User.html Note: in the GUI we need to disable the user before deleting. There is no such constraint with the API.

Expected behaviour: with takeOwnership = true, all entities owned by the user being deleted will be transferred to the caller. with takeOwnership = false, if the user own catalogs, networks, or running VMs/vApps, the call will fail.

If the user owns only powered-off VMs/vApps, the call will succeeds and the
VMs/vApps will be removed.

func (*OrgUser) Disable

func (user *OrgUser) Disable() error

Disable disables a user, if it is enabled. Fails otherwise.

func (*OrgUser) Enable

func (user *OrgUser) Enable() error

Enable enables a user if it was disabled. Fails otherwise.

func (*OrgUser) GetRoleName

func (user *OrgUser) GetRoleName() string

GetRoleName retrieves the name of the role currently assigned to the user

func (*OrgUser) TakeOwnership

func (user *OrgUser) TakeOwnership() error

TakeOwnership takes ownership of the user's objects. Ownership is transferred to the caller. This is a call to make before deleting. Calling user.DeleteTakeOwnership() will run TakeOwnership before the actual user removal. API Documentation: https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/POST-TakeOwnership.html

func (*OrgUser) Unlock

func (user *OrgUser) Unlock() error

Unlock unlocks a user that was locked out by the system. Note that there is no procedure to LOCK a user: it is locked by the system when it exceeds the number of unauthorized access attempts

func (*OrgUser) Update

func (user *OrgUser) Update() error

Update updates the user, using its own configuration data returning an error if the call fails. API Documentation: https://code.vmware.com/apis/442/vcloud-director#/doc/doc/operations/PUT-User.html

func (*OrgUser) UpdateSimple

func (user *OrgUser) UpdateSimple(userData OrgUserConfiguration) error

UpdateSimple updates the user, using ALL the fields in userData structure returning an error if the call fails. Careful: DeployedVmQuota and StoredVmQuota use a `0` value to mean "unlimited"

type OrgUserConfiguration

type OrgUserConfiguration struct {
	Name            string // Mandatory
	Password        string // Mandatory
	RoleName        string // Mandatory
	ProviderType    string // Optional: defaults to "INTEGRATED"
	IsEnabled       bool   // Optional: defaults to false
	IsLocked        bool   // Only used for updates
	IsExternal      bool   // Optional: defaults to false
	DeployedVmQuota int    // Optional: 0 means "unlimited"
	StoredVmQuota   int    // Optional: 0 means "unlimited"
	FullName        string // Optional
	Description     string // Optional
	EmailAddress    string // Optional
	Telephone       string // Optional
	IM              string // Optional
}

Simplified structure to insert or modify an organization user

type OrgVDCNetwork

type OrgVDCNetwork struct {
	OrgVDCNetwork *types.OrgVDCNetwork
	// contains filtered or unexported fields
}

OrgVDCNetwork an org vdc network client

func NewOrgVDCNetwork

func NewOrgVDCNetwork(cli *Client) *OrgVDCNetwork

NewOrgVDCNetwork creates an org vdc network client

func (*OrgVDCNetwork) AddMetadataEntry

func (orgVdcNetwork *OrgVDCNetwork) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds OrgVDCNetwork metadata typedValue and key/value pair provided as input and waits for the task to finish. Note: Requires system administrator privileges. Deprecated: Use OrgVDCNetwork.AddMetadataEntryWithVisibility instead

func (*OrgVDCNetwork) AddMetadataEntryAsync

func (orgVdcNetwork *OrgVDCNetwork) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds OrgVDCNetwork metadata typedValue and key/value pair provided as input and returns the task. Note: Requires system administrator privileges. Deprecated: Use OrgVDCNetwork.AddMetadataEntryWithVisibilityAsync instead

func (*OrgVDCNetwork) AddMetadataEntryWithVisibility

func (orgVdcNetwork *OrgVDCNetwork) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver OrgVDCNetwork and waits for the task to finish. Note: Requires system administrator privileges.

func (*OrgVDCNetwork) AddMetadataEntryWithVisibilityAsync

func (orgVdcNetwork *OrgVDCNetwork) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given OrgVDCNetwork with the given key, value, type and visibility and returns the task. Note: Requires system administrator privileges.

func (*OrgVDCNetwork) Delete

func (orgVdcNet *OrgVDCNetwork) Delete() (Task, error)

Delete a network. Fails if the network is busy. Returns a task to monitor the deletion.

func (*OrgVDCNetwork) DeleteMetadataEntry

func (orgVdcNetwork *OrgVDCNetwork) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes OrgVDCNetwork metadata depending on key provided as input and waits for the task to finish. Note: Requires system administrator privileges. Deprecated: Use OrgVDCNetwork.DeleteMetadataEntryWithDomain instead

func (*OrgVDCNetwork) DeleteMetadataEntryAsync

func (orgVdcNetwork *OrgVDCNetwork) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes OrgVDCNetwork metadata depending on key provided as input and returns a task. Note: Requires system administrator privileges. Deprecated: Use OrgVDCNetwork.DeleteMetadataEntryWithDomainAsync instead

func (*OrgVDCNetwork) DeleteMetadataEntryWithDomain

func (orgVdcNetwork *OrgVDCNetwork) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes OrgVDCNetwork metadata associated to the input key and waits for the task to finish. Note: Requires system administrator privileges.

func (*OrgVDCNetwork) DeleteMetadataEntryWithDomainAsync

func (orgVdcNetwork *OrgVDCNetwork) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes OrgVDCNetwork metadata associated to the input key and returns the task. Note: Requires system administrator privileges.

func (*OrgVDCNetwork) GetMetadata

func (orgVdcNetwork *OrgVDCNetwork) GetMetadata() (*types.Metadata, error)

GetMetadata returns OrgVDCNetwork metadata.

func (*OrgVDCNetwork) GetMetadataByKey

func (orgVdcNetwork *OrgVDCNetwork) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns OrgVDCNetwork metadata corresponding to the given key and domain.

func (*OrgVDCNetwork) MergeMetadata

func (orgVdcNetwork *OrgVDCNetwork) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges OrgVDCNetwork metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges. Deprecated: Use OrgVDCNetwork.MergeMetadataWithMetadataValues

func (*OrgVDCNetwork) MergeMetadataAsync

func (orgVdcNetwork *OrgVDCNetwork) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges OrgVDCNetwork metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges. Deprecated: Use OrgVDCNetwork.MergeMetadataWithMetadataValuesAsync

func (*OrgVDCNetwork) MergeMetadataWithMetadataValues

func (orgVdcNetwork *OrgVDCNetwork) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver OrgVDCNetwork and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes. Note: Requires system administrator privileges.

func (*OrgVDCNetwork) MergeMetadataWithMetadataValuesAsync

func (orgVdcNetwork *OrgVDCNetwork) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges OrgVDCNetwork metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges.

func (*OrgVDCNetwork) Refresh

func (orgVdcNet *OrgVDCNetwork) Refresh() error

func (*OrgVDCNetwork) Rename

func (orgVdcNet *OrgVDCNetwork) Rename(newName string) error

Rename is a wrapper around Update(), where we only change the name of the network Since the purpose is explicitly changing the name, the function will fail if the new name is not different from the existing one

func (*OrgVDCNetwork) Update

func (orgVdcNet *OrgVDCNetwork) Update() error

Update is a wrapper around UpdateAsync, where we explicitly wait for the task to finish. The pointer receiver is refreshed after update

func (*OrgVDCNetwork) UpdateAsync

func (orgVdcNet *OrgVDCNetwork) UpdateAsync() (Task, error)

UpdateAsync will change the contents of a network using the information in the receiver data structure.

type ProviderVdc

type ProviderVdc struct {
	ProviderVdc *types.ProviderVdc
	// contains filtered or unexported fields
}

ProviderVdc is the basic Provider VDC structure, contains the minimum set of attributes.

func (*ProviderVdc) AddMetadataEntry

func (providerVdc *ProviderVdc) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds Provider VDC metadata typedValue and key/value pair provided as input and waits for the task to finish. Note: Requires system administrator privileges. Deprecated: Use ProviderVdc.AddMetadataEntryWithVisibility instead

func (*ProviderVdc) AddMetadataEntryAsync

func (providerVdc *ProviderVdc) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds Provider VDC metadata typedValue and key/value pair provided as input and returns the task. Note: Requires system administrator privileges. Deprecated: Use ProviderVdc.AddMetadataEntryWithVisibilityAsync instead

func (*ProviderVdc) AddMetadataEntryWithVisibility

func (providerVdc *ProviderVdc) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver ProviderVdc and waits for the task to finish. Note: Requires system administrator privileges.

func (*ProviderVdc) AddMetadataEntryWithVisibilityAsync

func (providerVdc *ProviderVdc) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given ProviderVdc with the given key, value, type and visibility and returns the task. Note: Requires system administrator privileges.

func (*ProviderVdc) DeleteMetadataEntry

func (providerVdc *ProviderVdc) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes Provider VDC metadata by key provided as input and waits for the task to finish. Note: Requires system administrator privileges. Deprecated: Use ProviderVdc.DeleteMetadataEntryWithDomain

func (*ProviderVdc) DeleteMetadataEntryAsync

func (providerVdc *ProviderVdc) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes Provider VDC metadata depending on key provided as input and returns the task. Note: Requires system administrator privileges. Deprecated: Use ProviderVdc.DeleteMetadataEntryWithDomainAsync

func (*ProviderVdc) DeleteMetadataEntryWithDomain

func (providerVdc *ProviderVdc) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes ProviderVdc metadata associated to the input key and waits for the task to finish. Note: Requires system administrator privileges.

func (*ProviderVdc) DeleteMetadataEntryWithDomainAsync

func (providerVdc *ProviderVdc) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes ProviderVdc metadata associated to the input key and returns the task. Note: Requires system administrator privileges.

func (*ProviderVdc) GetMetadata

func (providerVdc *ProviderVdc) GetMetadata() (*types.Metadata, error)

GetMetadata returns ProviderVdc metadata. Note: Requires system administrator privileges.

func (*ProviderVdc) GetMetadataByKey

func (providerVdc *ProviderVdc) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns ProviderVdc metadata corresponding to the given key and domain. Note: Requires system administrator privileges.

func (*ProviderVdc) MergeMetadata

func (providerVdc *ProviderVdc) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges Provider VDC metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges. Deprecated: Use ProviderVdc.MergeMetadataWithMetadataValues

func (*ProviderVdc) MergeMetadataAsync

func (providerVdc *ProviderVdc) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges Provider VDC metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges. Deprecated: Use ProviderVdc.MergeMetadataWithMetadataValuesAsync

func (*ProviderVdc) MergeMetadataWithMetadataValues

func (providerVdc *ProviderVdc) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver ProviderVdc and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes. Note: Requires system administrator privileges.

func (*ProviderVdc) MergeMetadataWithMetadataValuesAsync

func (providerVdc *ProviderVdc) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges Provider VDC metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges.

func (*ProviderVdc) Refresh

func (providerVdc *ProviderVdc) Refresh() error

Refresh updates the contents of the Provider VDC associated to the receiver object.

type ProviderVdcExtended

type ProviderVdcExtended struct {
	VMWProviderVdc *types.VMWProviderVdc
	// contains filtered or unexported fields
}

ProviderVdcExtended is the extended Provider VDC structure, contains same attributes as ProviderVdc plus some more.

func (*ProviderVdcExtended) AddResourcePools

func (pvdc *ProviderVdcExtended) AddResourcePools(resourcePools []*ResourcePool) error

AddResourcePools adds resource pools to the Provider VDC

func (*ProviderVdcExtended) AddStorageProfiles

func (pvdc *ProviderVdcExtended) AddStorageProfiles(storageProfileNames []string) error

AddStorageProfiles adds the given storage profiles in this provider VDC

func (*ProviderVdcExtended) Delete

func (pvdc *ProviderVdcExtended) Delete() (Task, error)

Delete removes a Provider VDC The provider VDC must be disabled for deletion to succeed Deletion will also fail if the Provider VDC is backing other resources, such as organization VDCs

func (*ProviderVdcExtended) DeleteResourcePools

func (pvdc *ProviderVdcExtended) DeleteResourcePools(resourcePools []*ResourcePool) error

DeleteResourcePools removes resource pools from the Provider VDC

func (*ProviderVdcExtended) DeleteStorageProfiles

func (pvdc *ProviderVdcExtended) DeleteStorageProfiles(storageProfiles []string) error

DeleteStorageProfiles removes storage profiles from the Provider VDC

func (*ProviderVdcExtended) Disable

func (pvdc *ProviderVdcExtended) Disable() error

Disable changes the Provider VDC state from enabled to disabled

func (*ProviderVdcExtended) Enable

func (pvdc *ProviderVdcExtended) Enable() error

Enable changes the Provider VDC state from disabled to enabled

func (*ProviderVdcExtended) GetResourcePools

func (pvdc *ProviderVdcExtended) GetResourcePools() ([]*types.QueryResultResourcePoolRecordType, error)

GetResourcePools returns the Resource Pools belonging to this provider VDC

func (*ProviderVdcExtended) IsEnabled

func (pvdc *ProviderVdcExtended) IsEnabled() bool

IsEnabled shows whether the Provider VDC is enabled

func (*ProviderVdcExtended) Refresh

func (providerVdcExtended *ProviderVdcExtended) Refresh() error

Refresh updates the contents of the extended Provider VDC associated to the receiver object.

func (*ProviderVdcExtended) Rename

func (pvdc *ProviderVdcExtended) Rename(name, description string) error

Rename changes name and/or description from a provider VDC

func (*ProviderVdcExtended) ToProviderVdc

func (providerVdcExtended *ProviderVdcExtended) ToProviderVdc() (*ProviderVdc, error)

ToProviderVdc converts the receiver ProviderVdcExtended into the subset ProviderVdc

func (*ProviderVdcExtended) Update

func (pvdc *ProviderVdcExtended) Update() error

Update can change some of the provider VDC internals In practical terms, only name and description are guaranteed to be changed through this method. The other admitted changes need to go through separate API calls

type QueryAdminCatalog

type QueryAdminCatalog types.AdminCatalogRecord

func (QueryAdminCatalog) GetDate

func (catalog QueryAdminCatalog) GetDate() string

func (QueryAdminCatalog) GetHref

func (catalog QueryAdminCatalog) GetHref() string

func (QueryAdminCatalog) GetIp

func (catalog QueryAdminCatalog) GetIp() string

func (QueryAdminCatalog) GetMetadataValue

func (catalog QueryAdminCatalog) GetMetadataValue(key string) string

func (QueryAdminCatalog) GetName

func (catalog QueryAdminCatalog) GetName() string

func (QueryAdminCatalog) GetParentId

func (catalog QueryAdminCatalog) GetParentId() string

func (QueryAdminCatalog) GetParentName

func (catalog QueryAdminCatalog) GetParentName() string

func (QueryAdminCatalog) GetType

func (catalog QueryAdminCatalog) GetType() string

type QueryAdminTask

type QueryAdminTask types.QueryResultTaskRecordType

func (QueryAdminTask) GetDate

func (task QueryAdminTask) GetDate() string

func (QueryAdminTask) GetHref

func (task QueryAdminTask) GetHref() string

-------------------------------------------------------------- AdminTask --------------------------------------------------------------

func (QueryAdminTask) GetIp

func (task QueryAdminTask) GetIp() string

func (QueryAdminTask) GetMetadataValue

func (task QueryAdminTask) GetMetadataValue(key string) string

func (QueryAdminTask) GetName

func (task QueryAdminTask) GetName() string

func (QueryAdminTask) GetParentId

func (task QueryAdminTask) GetParentId() string

func (QueryAdminTask) GetParentName

func (task QueryAdminTask) GetParentName() string

func (QueryAdminTask) GetType

func (task QueryAdminTask) GetType() string

type QueryCatalog

type QueryCatalog types.CatalogRecord

func (QueryCatalog) GetDate

func (catalog QueryCatalog) GetDate() string

func (QueryCatalog) GetHref

func (catalog QueryCatalog) GetHref() string

-------------------------------------------------------------- catalog --------------------------------------------------------------

func (QueryCatalog) GetIp

func (catalog QueryCatalog) GetIp() string

func (QueryCatalog) GetMetadataValue

func (catalog QueryCatalog) GetMetadataValue(key string) string

func (QueryCatalog) GetName

func (catalog QueryCatalog) GetName() string

func (QueryCatalog) GetParentId

func (catalog QueryCatalog) GetParentId() string

func (QueryCatalog) GetParentName

func (catalog QueryCatalog) GetParentName() string

func (QueryCatalog) GetType

func (catalog QueryCatalog) GetType() string

type QueryCatalogItem

type QueryCatalogItem types.QueryResultCatalogItemType

func (QueryCatalogItem) GetDate

func (catItem QueryCatalogItem) GetDate() string

func (QueryCatalogItem) GetHref

func (catItem QueryCatalogItem) GetHref() string

-------------------------------------------------------------- catalog item --------------------------------------------------------------

func (QueryCatalogItem) GetIp

func (catItem QueryCatalogItem) GetIp() string

func (QueryCatalogItem) GetMetadataValue

func (catItem QueryCatalogItem) GetMetadataValue(key string) string

func (QueryCatalogItem) GetName

func (catItem QueryCatalogItem) GetName() string

func (QueryCatalogItem) GetParentId

func (catItem QueryCatalogItem) GetParentId() string

func (QueryCatalogItem) GetParentName

func (catItem QueryCatalogItem) GetParentName() string

func (QueryCatalogItem) GetType

func (catItem QueryCatalogItem) GetType() string

type QueryEdgeGateway

type QueryEdgeGateway types.QueryResultEdgeGatewayRecordType

func (QueryEdgeGateway) GetDate

func (egw QueryEdgeGateway) GetDate() string

func (QueryEdgeGateway) GetHref

func (egw QueryEdgeGateway) GetHref() string

-------------------------------------------------------------- edge gateway --------------------------------------------------------------

func (QueryEdgeGateway) GetIp

func (egw QueryEdgeGateway) GetIp() string

func (QueryEdgeGateway) GetMetadataValue

func (egw QueryEdgeGateway) GetMetadataValue(key string) string

func (QueryEdgeGateway) GetName

func (egw QueryEdgeGateway) GetName() string

func (QueryEdgeGateway) GetParentId

func (egw QueryEdgeGateway) GetParentId() string

func (QueryEdgeGateway) GetParentName

func (egw QueryEdgeGateway) GetParentName() string

func (QueryEdgeGateway) GetType

func (egw QueryEdgeGateway) GetType() string

type QueryItem

type QueryItem interface {
	GetDate() string
	GetName() string
	GetType() string
	GetIp() string
	GetMetadataValue(key string) string
	GetParentName() string
	GetParentId() string
	GetHref() string
}

QueryItem is an entity that is used to evaluate a Condition

type QueryMedia

type QueryMedia types.MediaRecordType

func (QueryMedia) GetDate

func (media QueryMedia) GetDate() string

func (QueryMedia) GetHref

func (media QueryMedia) GetHref() string

-------------------------------------------------------------- media item --------------------------------------------------------------

func (QueryMedia) GetIp

func (media QueryMedia) GetIp() string

func (QueryMedia) GetMetadataValue

func (media QueryMedia) GetMetadataValue(key string) string

func (QueryMedia) GetName

func (media QueryMedia) GetName() string

func (QueryMedia) GetParentId

func (media QueryMedia) GetParentId() string

func (QueryMedia) GetParentName

func (media QueryMedia) GetParentName() string

func (QueryMedia) GetType

func (media QueryMedia) GetType() string

type QueryOrg

func (QueryOrg) GetDate

func (org QueryOrg) GetDate() string

func (QueryOrg) GetHref

func (org QueryOrg) GetHref() string

-------------------------------------------------------------- Organization --------------------------------------------------------------

func (QueryOrg) GetIp

func (org QueryOrg) GetIp() string

func (QueryOrg) GetMetadataValue

func (org QueryOrg) GetMetadataValue(key string) string

func (QueryOrg) GetName

func (org QueryOrg) GetName() string

func (QueryOrg) GetParentId

func (org QueryOrg) GetParentId() string

func (QueryOrg) GetParentName

func (org QueryOrg) GetParentName() string

func (QueryOrg) GetType

func (org QueryOrg) GetType() string

type QueryOrgVdc

func (QueryOrgVdc) GetDate

func (orgVdc QueryOrgVdc) GetDate() string

func (QueryOrgVdc) GetHref

func (orgVdc QueryOrgVdc) GetHref() string

-------------------------------------------------------------- Org VDC --------------------------------------------------------------

func (QueryOrgVdc) GetIp

func (orgVdc QueryOrgVdc) GetIp() string

func (QueryOrgVdc) GetMetadataValue

func (orgVdc QueryOrgVdc) GetMetadataValue(key string) string

func (QueryOrgVdc) GetName

func (orgVdc QueryOrgVdc) GetName() string

func (QueryOrgVdc) GetParentId

func (orgVdc QueryOrgVdc) GetParentId() string

func (QueryOrgVdc) GetParentName

func (orgVdc QueryOrgVdc) GetParentName() string

func (QueryOrgVdc) GetType

func (orgVdc QueryOrgVdc) GetType() string

type QueryOrgVdcNetwork

type QueryOrgVdcNetwork types.QueryResultOrgVdcNetworkRecordType

func (QueryOrgVdcNetwork) GetDate

func (network QueryOrgVdcNetwork) GetDate() string

func (QueryOrgVdcNetwork) GetHref

func (network QueryOrgVdcNetwork) GetHref() string

-------------------------------------------------------------- Org VDC network --------------------------------------------------------------

func (QueryOrgVdcNetwork) GetIp

func (network QueryOrgVdcNetwork) GetIp() string

func (QueryOrgVdcNetwork) GetMetadataValue

func (network QueryOrgVdcNetwork) GetMetadataValue(key string) string

func (QueryOrgVdcNetwork) GetName

func (network QueryOrgVdcNetwork) GetName() string

func (QueryOrgVdcNetwork) GetParentId

func (network QueryOrgVdcNetwork) GetParentId() string

func (QueryOrgVdcNetwork) GetParentName

func (network QueryOrgVdcNetwork) GetParentName() string

func (QueryOrgVdcNetwork) GetType

func (network QueryOrgVdcNetwork) GetType() string

type QueryTask

func (QueryTask) GetDate

func (task QueryTask) GetDate() string

func (QueryTask) GetHref

func (task QueryTask) GetHref() string

-------------------------------------------------------------- Task --------------------------------------------------------------

func (QueryTask) GetIp

func (task QueryTask) GetIp() string

func (QueryTask) GetMetadataValue

func (task QueryTask) GetMetadataValue(key string) string

func (QueryTask) GetName

func (task QueryTask) GetName() string

func (QueryTask) GetParentId

func (task QueryTask) GetParentId() string

func (QueryTask) GetParentName

func (task QueryTask) GetParentName() string

func (QueryTask) GetType

func (task QueryTask) GetType() string

type QueryVAppTemplate

type QueryVAppTemplate types.QueryResultVappTemplateType

All the Query* types are localizations of Query records that can be returned from a query. Each one of these implements the QueryItem interface

func (QueryVAppTemplate) GetDate

func (vappTemplate QueryVAppTemplate) GetDate() string

func (QueryVAppTemplate) GetHref

func (vappTemplate QueryVAppTemplate) GetHref() string

-------------------------------------------------------------- vApp template --------------------------------------------------------------

func (QueryVAppTemplate) GetIp

func (vappTemplate QueryVAppTemplate) GetIp() string

func (QueryVAppTemplate) GetMetadataValue

func (vappTemplate QueryVAppTemplate) GetMetadataValue(key string) string

func (QueryVAppTemplate) GetName

func (vappTemplate QueryVAppTemplate) GetName() string

func (QueryVAppTemplate) GetParentId

func (vappTemplate QueryVAppTemplate) GetParentId() string

func (QueryVAppTemplate) GetParentName

func (vappTemplate QueryVAppTemplate) GetParentName() string

func (QueryVAppTemplate) GetType

func (vappTemplate QueryVAppTemplate) GetType() string

type QueryVapp

func (QueryVapp) GetDate

func (vapp QueryVapp) GetDate() string

func (QueryVapp) GetHref

func (vapp QueryVapp) GetHref() string

-------------------------------------------------------------- vApp --------------------------------------------------------------

func (QueryVapp) GetIp

func (vapp QueryVapp) GetIp() string

func (QueryVapp) GetMetadataValue

func (vapp QueryVapp) GetMetadataValue(key string) string

func (QueryVapp) GetName

func (vapp QueryVapp) GetName() string

func (QueryVapp) GetParentId

func (vapp QueryVapp) GetParentId() string

func (QueryVapp) GetParentName

func (vapp QueryVapp) GetParentName() string

func (QueryVapp) GetType

func (vapp QueryVapp) GetType() string

type QueryVm

func (QueryVm) GetDate

func (vm QueryVm) GetDate() string

func (QueryVm) GetHref

func (vm QueryVm) GetHref() string

-------------------------------------------------------------- VM --------------------------------------------------------------

func (QueryVm) GetIp

func (vm QueryVm) GetIp() string

func (QueryVm) GetMetadataValue

func (vm QueryVm) GetMetadataValue(key string) string

func (QueryVm) GetName

func (vm QueryVm) GetName() string

func (QueryVm) GetParentId

func (vm QueryVm) GetParentId() string

func (QueryVm) GetParentName

func (vm QueryVm) GetParentName() string

func (QueryVm) GetType

func (vm QueryVm) GetType() string

type Region

type Region struct {
	Region *types.Region
	// contains filtered or unexported fields
}

func (*Region) Delete

func (r *Region) Delete() error

Delete Region

func (*Region) GetAllVmClasses

func (r *Region) GetAllVmClasses(queryParameters url.Values) ([]*types.RegionVirtualMachineClass, error)

GetAllVmClasses retrieves all VM Classes within a particular Region

func (*Region) GetAllZones

func (r *Region) GetAllZones(queryParameters url.Values) ([]*Zone, error)

GetAllZones retrieves all Region Zones within a particular Region

func (*Region) GetStorageClassByName

func (r *Region) GetStorageClassByName(name string) (*StorageClass, error)

GetStorageClassByName retrieves a Storage Class by name, that belongs to the given Region

func (*Region) GetStoragePolicyByName

func (r *Region) GetStoragePolicyByName(name string) (*RegionStoragePolicy, error)

GetStoragePolicyByName retrieves a Region Storage Policy by name, that belongs to the given Region

func (*Region) GetZoneByName

func (r *Region) GetZoneByName(name string) (*Zone, error)

GetZoneByName retrieves Region Zone by name within a particular Region

func (*Region) Update

func (r *Region) Update(RegionConfig *types.Region) (*Region, error)

Update Region with new configuration

type RegionQuota

type RegionQuota struct {
	TmVdc *types.TmVdc
	// contains filtered or unexported fields
}

RegionQuota defines Region Quota structure in Tenant Manager

func (*RegionQuota) AssignVmClasses

func (o *RegionQuota) AssignVmClasses(vmClasses *types.RegionVirtualMachineClasses) error

AssignVmClasses assigns VM Classes to the receiver Region Quota

func (*RegionQuota) CreateStoragePolicies

func (o *RegionQuota) CreateStoragePolicies(regionStoragePolicies *types.VirtualDatacenterStoragePolicies) ([]*RegionQuotaStoragePolicy, error)

CreateStoragePolicies creates new Region Quota Storage Policies in a Region Quota. The request will fail if the list of Storage Policies is empty. It returns the list of all Storage Policies that are available in the Region Quota after creation.

func (*RegionQuota) Delete

func (o *RegionQuota) Delete() error

Delete deletes the receiver Region Quota

func (*RegionQuota) GetAllStoragePolicies

func (regionQuota *RegionQuota) GetAllStoragePolicies(queryParameters url.Values) ([]*RegionQuotaStoragePolicy, error)

GetAllStoragePolicies retrieves all Region Quota Storage Policies from the given Region Quota

func (*RegionQuota) GetStoragePolicyById

func (rq *RegionQuota) GetStoragePolicyById(id string) (*RegionQuotaStoragePolicy, error)

GetStoragePolicyById retrieves a Region Quota Storage Policy by a given ID that must belong to the receiver Region Quota

func (*RegionQuota) GetStoragePolicyByName

func (regionQuota *RegionQuota) GetStoragePolicyByName(name string) (*RegionQuotaStoragePolicy, error)

GetStoragePolicyByName retrieves a Region Quota Storage Policy by the given name. This method runs in O(n) where n is the number of Storage Policies in the receiver Region Quota, as the endpoint does not support filtering.

func (*RegionQuota) Update

func (o *RegionQuota) Update(tmVdcConfig *types.TmVdc) (*RegionQuota, error)

Update updates the receiver Region Quota

type RegionQuotaStoragePolicy

type RegionQuotaStoragePolicy struct {
	VirtualDatacenterStoragePolicy *types.VirtualDatacenterStoragePolicy
	// contains filtered or unexported fields
}

RegionQuotaStoragePolicy defines Tenant Manager Virtual Datacenter Storage Policy structure

func (*RegionQuotaStoragePolicy) Delete

func (sp *RegionQuotaStoragePolicy) Delete() error

Delete deletes a Region Quota Storage Policy

func (*RegionQuotaStoragePolicy) Update

Update updates the receiver Region Quota Storage Policy

type RegionStoragePolicy

type RegionStoragePolicy struct {
	RegionStoragePolicy *types.RegionStoragePolicy
	// contains filtered or unexported fields
}

RegionStoragePolicy defines the Region Storage Policy data structure

type RegionVirtualMachineClass

type RegionVirtualMachineClass struct {
	RegionVirtualMachineClass *types.RegionVirtualMachineClass
	// contains filtered or unexported fields
}

RegionVirtualMachineClass defines a Region VM Class in VCFA

type ResourcePool

type ResourcePool struct {
	ResourcePool *types.ResourcePool
	// contains filtered or unexported fields
}

func (ResourcePool) GetAvailableHardwareVersions

func (rp ResourcePool) GetAvailableHardwareVersions() (*types.OpenApiSupportedHardwareVersions, error)

GetAvailableHardwareVersions finds the hardware versions of a given resource pool In addition to proper resource pools, this method also works for any entity that is retrieved as a resource pool, such as provider VDCs and Org VDCs

func (ResourcePool) GetDefaultHardwareVersion

func (rp ResourcePool) GetDefaultHardwareVersion() (string, error)

GetDefaultHardwareVersion retrieves the default hardware version for a given resource pool. The default version is usually the highest available, but it's not guaranteed

type Results

type Results struct {
	Results *types.QueryResultRecordsType
	// contains filtered or unexported fields
}

func NewResults

func NewResults(cli *Client) *Results

type RightsBundle

type RightsBundle struct {
	RightsBundle *types.RightsBundle
	// contains filtered or unexported fields
}

func (*RightsBundle) AddRights

func (rb *RightsBundle) AddRights(newRights []types.OpenApiReference) error

AddRights adds a collection of rights to a rights bundle

func (*RightsBundle) Delete

func (rb *RightsBundle) Delete() error

Delete deletes rights bundle

func (*RightsBundle) GetRights

func (rb *RightsBundle) GetRights(queryParameters url.Values) ([]*types.Right, error)

func (*RightsBundle) GetTenants

func (rb *RightsBundle) GetTenants(queryParameters url.Values) ([]types.OpenApiReference, error)

GetTenants retrieves all tenants associated to a given Rights Bundle. Query parameters can be supplied to perform additional filtering

func (*RightsBundle) PublishAllTenants

func (rb *RightsBundle) PublishAllTenants() error

PublishAllTenants removes publication status in rights bundle from one or more tenants

func (*RightsBundle) PublishTenants

func (rb *RightsBundle) PublishTenants(tenants []types.OpenApiReference) error

PublishTenants publishes a rights bundle to one or more tenants

func (*RightsBundle) RemoveAllRights

func (rb *RightsBundle) RemoveAllRights() error

RemoveAllRights removes all rights from a rights bundle

func (*RightsBundle) RemoveRights

func (rb *RightsBundle) RemoveRights(removeRights []types.OpenApiReference) error

RemoveRights removes specific rights from a rights bundle

func (*RightsBundle) ReplacePublishedTenants

func (rb *RightsBundle) ReplacePublishedTenants(tenants []types.OpenApiReference) error

ReplacePublishedTenants publishes a rights bundle to one or more tenants, removing the tenants already present

func (*RightsBundle) UnpublishAllTenants

func (rb *RightsBundle) UnpublishAllTenants() error

UnpublishAllTenants removes publication status in rights bundle from one or more tenants

func (*RightsBundle) UnpublishTenants

func (rb *RightsBundle) UnpublishTenants(tenants []types.OpenApiReference) error

UnpublishTenants removes publication status in rights bundle from one or more tenants

func (*RightsBundle) Update

func (rb *RightsBundle) Update() (*RightsBundle, error)

Update updates existing rights bundle

func (*RightsBundle) UpdateRights

func (rb *RightsBundle) UpdateRights(newRights []types.OpenApiReference) error

UpdateRights replaces existing rights with the given collection of rights

type Role

type Role struct {
	Role *types.Role

	TenantContext *TenantContext
	// contains filtered or unexported fields
}

Role uses OpenAPI endpoint to operate user roles

func (*Role) AddRights

func (role *Role) AddRights(newRights []types.OpenApiReference) error

AddRights adds a collection of rights to a role

func (*Role) Delete

func (role *Role) Delete() error

Delete deletes OpenAPI role

func (*Role) GetRights

func (role *Role) GetRights(queryParameters url.Values) ([]*types.Right, error)

GetRights retrieves all rights belonging to a given Role. Query parameters can be supplied to perform additional filtering

func (*Role) RemoveAllRights

func (role *Role) RemoveAllRights() error

RemoveAllRights removes all rights from a role

func (*Role) RemoveRights

func (role *Role) RemoveRights(removeRights []types.OpenApiReference) error

RemoveRights removes specific rights from a role

func (*Role) Update

func (role *Role) Update() (*Role, error)

Update updates existing OpenAPI role

func (*Role) UpdateRights

func (role *Role) UpdateRights(newRights []types.OpenApiReference) error

UpdateRights replaces existing rights with the given collection of rights

type ServiceAccount

type ServiceAccount struct {
	ServiceAccount *types.ServiceAccount
	// contains filtered or unexported fields
}

func (*ServiceAccount) Authorize

func (sa *ServiceAccount) Authorize() error

Authorize authorizes a service account and returns a DeviceID and UserCode which will be used while granting the request, and sets the Service Account in `Requested` status

func (*ServiceAccount) Delete

func (sa *ServiceAccount) Delete() error

Delete deletes a Service Account

func (*ServiceAccount) GetInitialApiToken

func (sa *ServiceAccount) GetInitialApiToken() (*types.ApiTokenRefresh, error)

GetInitialApiToken gets the initial API token for the Service Account and sets it in `Active` status

func (*ServiceAccount) Grant

func (sa *ServiceAccount) Grant() error

Grant Grants access to the Service Account and sets it in `Granted` status

func (*ServiceAccount) Refresh

func (sa *ServiceAccount) Refresh() error

Refresh updates the Service Account object

func (*ServiceAccount) Revoke

func (sa *ServiceAccount) Revoke() error

Revoke revokes the service account and its' API token and puts it back in 'Created' stage

func (*ServiceAccount) Update

func (sa *ServiceAccount) Update(saConfig *types.ServiceAccount) (*ServiceAccount, error)

Update updates the modifiable fields of a Service Account

type SimpleNetworkIdentifier

type SimpleNetworkIdentifier struct {
	Name          string
	InterfaceType string
}

Simplified structure used to list networks connected to an edge gateway

type SolutionAddOn

type SolutionAddOn struct {
	SolutionAddOnEntity *types.SolutionAddOn
	DefinedEntity       *DefinedEntity
	// contains filtered or unexported fields
}

SolutionAddOn is the main structure to handle Solution Add-Ons within Solution Landing Zone. It packs parent RDE and Solution Add-On entity itself

func (*SolutionAddOn) ConvertInputTypes

func (addon *SolutionAddOn) ConvertInputTypes(userInputs map[string]interface{}) (map[string]interface{}, error)

ConvertInputTypes will make sure that values will match types as defined in Add-On schema The needs for this operation comes from the fact that at least some of the Solution Add-Ons will fail if a boolean "false" is sent as a string

func (*SolutionAddOn) CreateSolutionAddOnInstance

func (addon *SolutionAddOn) CreateSolutionAddOnInstance(inputs map[string]interface{}) (*SolutionAddOnInstance, string, error)

CreateSolutionAddOnInstance instantiates a new Solution Add-On. Some inputs may be mandatory for creation depending on the Solution Add-On itself. Methods 'ValidateInputs' can help to dynamically validate inputs based on the requirements in Solution Add-On.

func (*SolutionAddOn) Delete

func (s *SolutionAddOn) Delete() error

func (*SolutionAddOn) GetAllInstances

func (addon *SolutionAddOn) GetAllInstances() ([]*SolutionAddOnInstance, error)

GetAllInstances retrieves all Solution Add-On Instances

func (*SolutionAddOn) GetInstanceByName

func (addon *SolutionAddOn) GetInstanceByName(name string) (*SolutionAddOnInstance, error)

GetInstanceByName retrieves Solution Add-On Instance by name for a particular Solution Add-On. It will return an error if there is more than one Solution Add-On Instance with such name.

func (*SolutionAddOn) RdeId

func (s *SolutionAddOn) RdeId() string

RdeId is a shortcut of SolutionEntity.DefinedEntity.DefinedEntity.ID

func (*SolutionAddOn) Update

func (s *SolutionAddOn) Update(saoCfg *types.SolutionAddOn) (*SolutionAddOn, error)

func (*SolutionAddOn) ValidateInputs

func (addon *SolutionAddOn) ValidateInputs(userInputs map[string]interface{}, validateOnlyRequired, isDeleteOperation bool) error

ValidateInputs will check if 'userInputs' match required fields as defined in the Solution Add-On itself. Error will contained detailed information about missing fields.

type SolutionAddOnConfig

type SolutionAddOnConfig struct {
	IsoFilePath          string
	User                 string
	CatalogItemId        string
	AutoTrustCertificate bool
}

SolutionAddOnConfig defines configuration for Solution Add-On creation which is used for 'VCDClient.CreateSolutionAddOn'.

type SolutionAddOnInstance

type SolutionAddOnInstance struct {
	SolutionAddOnInstance *types.SolutionAddOnInstance
	DefinedEntity         *DefinedEntity
	// contains filtered or unexported fields
}

func (*SolutionAddOnInstance) Delete

func (addonInstance *SolutionAddOnInstance) Delete(deleteInputs map[string]interface{}) (string, error)

Delete will delete a Solution Add-On instance with given 'deleteInputs'. Some fields in 'deleteInputs' might be mandatory for deletion of an instance. One can use 'ValidateInputs' method to check what inputs are defined for a particular Solution Add-On

func (*SolutionAddOnInstance) GetParentSolutionAddOn

func (addOnInstance *SolutionAddOnInstance) GetParentSolutionAddOn() (*SolutionAddOn, error)

GetParentSolutionAddOn retrieves parent Solution Add-On that is specified in the Prototype field

func (*SolutionAddOnInstance) Publishing

func (addonInstance *SolutionAddOnInstance) Publishing(scope []string, scopeAll bool) (string, error)

Publishing manages publish and Unpublish operations, which are managed in the same API call To unpublish, the `scopeAll` has to be `false and `scope` must be empty

func (*SolutionAddOnInstance) RdeId

func (addOnInstance *SolutionAddOnInstance) RdeId() string

RdeId is a shortcut to retrieve parent RDE ID

func (*SolutionAddOnInstance) ReadCreationInputValues

func (addOnInstance *SolutionAddOnInstance) ReadCreationInputValues(convertAllValuesToStrings bool) (map[string]interface{}, error)

ReadCreationInputValues will read all input values that were specified upon instance creation and return them either in their natural types, or all values converted to strings

type SolutionLandingZone

type SolutionLandingZone struct {
	// SolutionLandingZoneType defines internal content of RDE (`types.DefinedEntity.State`)
	SolutionLandingZoneType *types.SolutionLandingZoneType
	// DefinedEntity contains parent defined entity that contains SolutionLandingZoneType in
	// "Entity" field
	DefinedEntity *DefinedEntity
	// contains filtered or unexported fields
}

SolutionLandingZone controls VCD Solution Add-On Landing Zone. It does so by wrapping RDE for entity types vmware:solutions_organization:1.0.0.

Up to VCD 10.5.1.1 ,there can only be one single RDE instance for landing zone.

func (*SolutionLandingZone) Delete

func (slz *SolutionLandingZone) Delete() error

Delete removes the RDE that defines Solution Landing Zone

func (*SolutionLandingZone) RdeId

func (slz *SolutionLandingZone) RdeId() string

RdeId is a shorthand to retrieve ID of parent runtime defined entity

func (*SolutionLandingZone) Refresh

func (slz *SolutionLandingZone) Refresh() error

Refresh reloads parent RDE data

func (*SolutionLandingZone) Update

Update Solution Landing Zone

type StorageClass

type StorageClass struct {
	StorageClass *types.StorageClass
	// contains filtered or unexported fields
}

StorageClass defines the Storage Class data structure

type StorageProfile

type StorageProfile struct {
	StorageProfile *types.OpenApiStorageProfile
	// contains filtered or unexported fields
}

StorageProfile contains a storage profile in a given context (usually, a resource pool)

type StringMap

type StringMap map[string]string

type Supervisor

type Supervisor struct {
	Supervisor *types.Supervisor
	// contains filtered or unexported fields
}

Supervisor is a type for reading available Supervisors

func (*Supervisor) GetAllSupervisorZones

func (s *Supervisor) GetAllSupervisorZones(queryParameters url.Values) ([]*SupervisorZone, error)

GetAllSupervisorZones retrieves all Supervisor Zones in a given Supervisor

func (*Supervisor) GetSupervisorZoneById

func (s *Supervisor) GetSupervisorZoneById(id string) (*SupervisorZone, error)

GetSupervisorZoneById retrieves Supervisor by id

func (*Supervisor) GetSupervisorZoneByName

func (s *Supervisor) GetSupervisorZoneByName(name string) (*SupervisorZone, error)

GetSupervisorZoneByName retrieves Supervisor Zone by a given name

type SupervisorZone

type SupervisorZone struct {
	SupervisorZone *types.SupervisorZone
	// contains filtered or unexported fields
}

Supervisor is a type for reading Supervisor Zones

type SupportedVersions

type SupportedVersions struct {
	VersionInfos `xml:"VersionInfo"`
}

type Task

type Task struct {
	Task *types.Task
	// contains filtered or unexported fields
}

func CreateAndConfigureEdgeGatewayAsync

func CreateAndConfigureEdgeGatewayAsync(vcdClient *VCDClient, orgName, vdcName, egwName string, egwConfiguration *types.EdgeGateway) (Task, error)

CreateAndConfigureEdgeGatewayAsync creates an edge gateway using a full configuration structure

func CreateEdgeGatewayAsync

func CreateEdgeGatewayAsync(vcdClient *VCDClient, egwc EdgeGatewayCreation) (Task, error)

CreateEdgeGatewayAsync creates an edge gateway using a simplified configuration structure https://code.vmware.com/apis/442/vcloud-director/doc/doc/operations/POST-CreateEdgeGateway.html

Note. This function does not allow to pick exact subnet in external network to use for edge gateway. It will pick first one instead.

func CreateExternalNetwork

func CreateExternalNetwork(vcdClient *VCDClient, externalNetworkData *types.ExternalNetwork) (Task, error)

CreateExternalNetwork allows create external network and returns Task or error. types.ExternalNetwork struct is general and used for various types of networks. But for external network fence mode is always isolated, isInherited is false, parentNetwork is empty.

func CreateOrg

func CreateOrg(vcdClient *VCDClient, name string, fullName string, description string, settings *types.OrgSettings, isEnabled bool) (Task, error)

Creates an Admin Organization based on settings, description, and org name. The Organization created will have these settings specified in the settings parameter. The settings variable is defined in types.go. Method will fail unless user has an admin token. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/POST-CreateOrganization.html Organization creation in vCD has two bugs BZ 2177355, BZ 2228936 (fixes are in 9.1.0.3 and 9.5.0.2) which require organization settings to be provided as workarounds. At least one element among DelayAfterPowerOnSeconds, DeployedVMQuota, StoredVmQuota, UseServerBootSequence, getVdcQuota should be set when providing generalOrgSettings. If either VAppLeaseSettings or VAppTemplateLeaseSettings is provided then all elements need to have values, otherwise don't provide them at all. Overall elements must be in the correct order.

func NewTask

func NewTask(cli *Client) *Task

func WaitTaskListCompletion

func WaitTaskListCompletion(taskList []*Task) ([]*Task, error)

WaitTaskListCompletion continuously skims the task list until no tasks in progress are left

func WaitTaskListCompletionMonitor

func WaitTaskListCompletionMonitor(taskList []*Task, f TaskMonitoringFunc) ([]*Task, error)

WaitTaskListCompletionMonitor continuously skims the task list until no tasks in progress are left Using a TaskMonitoringFunc, it can display or log information as the list reduction happens

func (*Task) CancelTask

func (task *Task) CancelTask() error

CancelTask attempts a task cancellation, returning an error if cancellation fails

func (*Task) GetTaskProgress

func (task *Task) GetTaskProgress() (string, error)

GetTaskProgress retrieves the task progress as a string

func (*Task) Refresh

func (task *Task) Refresh() error

Refresh retrieves a fresh copy of the task

func (*Task) WaitInspectTaskCompletion

func (task *Task) WaitInspectTaskCompletion(inspectionFunc InspectionFunc, delay time.Duration) error

WaitInspectTaskCompletion is a customizable version of WaitTaskCompletion. Users can define the sleeping duration and an optional callback function for extra monitoring.

func (*Task) WaitTaskCompletion

func (task *Task) WaitTaskCompletion() error

WaitTaskCompletion checks the status of the task every 3 seconds and returns when the task is either completed or failed

type TaskMonitoringFunc

type TaskMonitoringFunc func(*types.Task)

TaskMonitoringFunc can run monitoring operations on a task

type TenantContext

type TenantContext struct {
	OrgId   string // The bare ID (without prefix) of an organization
	OrgName string // The organization name
}

TenantContext stores the information needed for an object to be used in the context of a given organization

type TmEdgeCluster

type TmEdgeCluster struct {
	TmEdgeCluster *types.TmEdgeCluster
	// contains filtered or unexported fields
}

TmEdgeCluster manages read operations for NSX-T Edge Clusters and their QoS settings

func (*TmEdgeCluster) Delete

func (e *TmEdgeCluster) Delete() error

Delete removes the QoS configuration for a given TM Edge Cluster as the Edge Cluster itself is not removable

func (*TmEdgeCluster) GetTransportNodeStatus

func (e *TmEdgeCluster) GetTransportNodeStatus() ([]*types.TmEdgeClusterTransportNodeStatus, error)

GetTransportNodeStatus retrieves status of all member transport nodes of specified Edge Cluster

func (*TmEdgeCluster) Update

func (e *TmEdgeCluster) Update(TmEdgeClusterConfig *types.TmEdgeCluster) (*TmEdgeCluster, error)

Update TM Edge Cluster with a given config Note. Only `DefaultQosConfig` structure is updatable

type TmIpSpace

type TmIpSpace struct {
	TmIpSpace *types.TmIpSpace
	// contains filtered or unexported fields
}

TmIpSpace provides configuration of mainly the external IP Prefixes that specifies the accessible external networks from the data center

func (*TmIpSpace) Delete

func (o *TmIpSpace) Delete() error

Delete TM IP Space

func (*TmIpSpace) Update

func (o *TmIpSpace) Update(TmIpSpaceConfig *types.TmIpSpace) (*TmIpSpace, error)

Update TM IP Space

type TmIpSpaceAssociation

type TmIpSpaceAssociation struct {
	TmIpSpaceAssociation *types.TmIpSpaceAssociation
	// contains filtered or unexported fields
}

TmIpSpaceAssociation manages associations between Provider Gateways and IP Spaces. Each association results in a separate entity. There is no update option. The first association is created automatically when a Provider Gateway (`TmProviderGateway`) is created.

func (*TmIpSpaceAssociation) Delete

func (o *TmIpSpaceAssociation) Delete() error

Delete the association

type TmOrg

type TmOrg struct {
	TmOrg *types.TmOrg
	// contains filtered or unexported fields
}

func (*TmOrg) CreateContentLibrary

func (org *TmOrg) CreateContentLibrary(config *types.ContentLibrary) (*ContentLibrary, error)

CreateContentLibrary creates a Content Library that belongs to the receiver Organization.

func (*TmOrg) CreateTrustedCertificate

func (org *TmOrg) CreateTrustedCertificate(config *types.TrustedCertificate) (*TrustedCertificate, error)

CreateTrustedCertificate creates an entry in the trusted certificate records of the receiver Organization

func (*TmOrg) Delete

func (o *TmOrg) Delete() error

Delete TM Organization

func (*TmOrg) Disable

func (o *TmOrg) Disable() error

Disable is a shortcut to disable TM Organization

func (*TmOrg) GetAllContentLibraries

func (org *TmOrg) GetAllContentLibraries(queryParameters url.Values) ([]*ContentLibrary, error)

GetAllContentLibraries retrieves all Content Libraries that belong to the receiver Organization and with the given query parameters, which allow setting filters and other constraints

func (*TmOrg) GetAllTrustedCertificates

func (org *TmOrg) GetAllTrustedCertificates(queryParameters url.Values) ([]*TrustedCertificate, error)

GetAllTrustedCertificates retrieves all trusted certificates with optional query filter from the receiver Organization

func (*TmOrg) GetContentLibraryById

func (org *TmOrg) GetContentLibraryById(id string) (*ContentLibrary, error)

GetContentLibraryById retrieves a Content Library with the given ID that belongs to the receiver Organization.

func (*TmOrg) GetContentLibraryByName

func (org *TmOrg) GetContentLibraryByName(name string) (*ContentLibrary, error)

GetContentLibraryByName retrieves a Content Library with the given name that belongs to the receiver Organization.

func (*TmOrg) GetLdapConfiguration

func (org *TmOrg) GetLdapConfiguration() (*types.OrgLdapSettingsType, error)

GetLdapConfiguration retrieves LDAP configuration structure of the given organization

func (*TmOrg) GetOrgNetworkingSettings

func (o *TmOrg) GetOrgNetworkingSettings() (*types.TmOrgNetworkingSettings, error)

GetOrgNetworkingSettings retrieves Organization specific network settings

func (*TmOrg) GetSettings

func (o *TmOrg) GetSettings() (*types.TmOrgSettings, error)

GetSettings retrieves Organization settings

func (*TmOrg) GetTrustedCertificateByAlias

func (org *TmOrg) GetTrustedCertificateByAlias(alias string) (*TrustedCertificate, error)

GetTrustedCertificateByAlias retrieves trusted certificate by alias from the receiver Organization

func (*TmOrg) GetTrustedCertificateById

func (org *TmOrg) GetTrustedCertificateById(id string) (*TrustedCertificate, error)

GetTrustedCertificateById retrieves trusted certificate by ID from the receiver Organization

func (*TmOrg) LdapConfigure

func (org *TmOrg) LdapConfigure(settings *types.OrgLdapSettingsType, trustSslCertificate bool) (*types.OrgLdapSettingsType, error)

LdapConfigure configures LDAP for the receiver Organization. If trustSslCertificate=true, it will automatically trust the certificate of LDAP server, only if settings.IsSsl=true. If settings.IsSsl=true and trustSslCertificate=false this method returns an error

func (*TmOrg) LdapDisable

func (org *TmOrg) LdapDisable() error

LdapDisable wraps LdapConfigure to disable LDAP configuration for the given organization Disabling LDAP does not remove any trusted certificate.

func (*TmOrg) Update

func (o *TmOrg) Update(tmOrgConfig *types.TmOrg) (*TmOrg, error)

Update TM Organization

func (*TmOrg) UpdateOrgNetworkingSettings

func (o *TmOrg) UpdateOrgNetworkingSettings(tmOrgNetConfig *types.TmOrgNetworkingSettings) (*types.TmOrgNetworkingSettings, error)

UpdateOrgNetworkingSettings changes Organization specific network settings

func (*TmOrg) UpdateSettings

func (o *TmOrg) UpdateSettings(tmOrgNetConfig *types.TmOrgSettings) (*types.TmOrgSettings, error)

UpdateSettings changes Organization settings

type TmProviderGateway

type TmProviderGateway struct {
	TmProviderGateway *types.TmProviderGateway
	// contains filtered or unexported fields
}

TmProviderGateway manages Provider Gateway creation and configuration.

NOTE. While creation of Provider Gateway requires at least one IP Space (`TmIpSpace`) reference, they are not being returned by API after creation. One must use `TmIpSpaceAssociation` for managing IP Space associations with Provider gateways after their initial creation is done.

func (*TmProviderGateway) Delete

func (o *TmProviderGateway) Delete() error

Delete Provider Gateway

func (*TmProviderGateway) Update

func (o *TmProviderGateway) Update(TmProviderGatewayConfig *types.TmProviderGateway) (*TmProviderGateway, error)

Update existing Provider Gateway

type TmRegionalNetworkingSetting

type TmRegionalNetworkingSetting struct {
	TmRegionalNetworkingSetting *types.TmRegionalNetworkingSetting
	// contains filtered or unexported fields
}

func (*TmRegionalNetworkingSetting) Delete

func (o *TmRegionalNetworkingSetting) Delete() error

Delete Regional Networking Setting

func (*TmRegionalNetworkingSetting) GetDefaultVpcConnectivityProfile

func (o *TmRegionalNetworkingSetting) GetDefaultVpcConnectivityProfile() (*types.TmRegionalNetworkingVpcConnectivityProfile, error)

GetDefaultVpcConnectivityProfile retrieves default VPC Connectivity profile for Org Regional Networking

func (*TmRegionalNetworkingSetting) Update

func (o *TmRegionalNetworkingSetting) Update(TmRegionalNetworkingSettingConfig *types.TmRegionalNetworkingSetting) (*TmRegionalNetworkingSetting, error)

Update Regional Networking Setting with a given config Note. Only Name and Edge Cluster fields are updateable

func (*TmRegionalNetworkingSetting) UpdateDefaultVpcConnectivityProfile

UpdateDefaultVpcConnectivityProfile changes default VPC Connectivity profile for Org Regional Networking

type TmTier0Gateway

type TmTier0Gateway struct {
	TmTier0Gateway *types.TmTier0Gateway
	// contains filtered or unexported fields
}

TmTier0Gateway is a structure for reading TM Tier0 Gateways that originate from NSX-T

type Token

type Token struct {
	Token *types.Token
	// contains filtered or unexported fields
}

TODO Have distinct names for API and Refresh tokens Token is a struct that handles two methods: Delete() and GetInitialRefreshToken()

func (*Token) Delete

func (token *Token) Delete() error

DeleteTokenByID deletes an existing token by its' URN ID

func (*Token) GetInitialApiToken

func (token *Token) GetInitialApiToken() (*types.ApiTokenRefresh, error)

GetInitialApiToken gets the initial API token, usable only once per token.

type TrustedCertificate

type TrustedCertificate struct {
	TrustedCertificate *types.TrustedCertificate
	// contains filtered or unexported fields
}

TrustedCertificate manages certificate trust

func (*TrustedCertificate) Delete

func (t *TrustedCertificate) Delete() error

Delete trusted certificate entry

func (*TrustedCertificate) Update

func (t *TrustedCertificate) Update(TrustedCertificateConfig *types.TrustedCertificate) (*TrustedCertificate, error)

Update trusted certificate entry

type UIPlugin

type UIPlugin struct {
	UIPluginMetadata *types.UIPluginMetadata
	// contains filtered or unexported fields
}

func (*UIPlugin) Delete

func (uiPlugin *UIPlugin) Delete() error

Delete deletes the receiver UIPlugin from VCD.

func (*UIPlugin) GetPublishedTenants

func (uiPlugin *UIPlugin) GetPublishedTenants() (types.OpenApiReferences, error)

GetPublishedTenants gets all the Organization references where the receiver UIPlugin is published.

func (*UIPlugin) IsTheSameAs

func (uiPlugin *UIPlugin) IsTheSameAs(otherUiPlugin *UIPlugin) bool

IsTheSameAs retruns true if the receiver UIPlugin has the same name, vendor and version as the input.

func (*UIPlugin) Publish

func (uiPlugin *UIPlugin) Publish(orgs types.OpenApiReferences) error

Publish publishes the receiver UIPlugin to the given Organizations. Does not modify the receiver UIPlugin.

func (*UIPlugin) PublishAll

func (uiPlugin *UIPlugin) PublishAll() error

PublishAll publishes the receiver UIPlugin to all available Organizations. Does not modify the receiver UIPlugin.

func (*UIPlugin) Unpublish

func (uiPlugin *UIPlugin) Unpublish(orgs types.OpenApiReferences) error

Unpublish unpublishes the receiver UIPlugin from the given Organizations. Does not modify the receiver UIPlugin.

func (*UIPlugin) UnpublishAll

func (uiPlugin *UIPlugin) UnpublishAll() error

UnpublishAll unpublishes the receiver UIPlugin from all available Organizations. Does not modify the receiver UIPlugin.

func (*UIPlugin) Update

func (uiPlugin *UIPlugin) Update(enable, providerScoped, tenantScoped bool) error

Update performs an update to several receiver plugin attributes

type UploadTask

type UploadTask struct {
	*Task
	// contains filtered or unexported fields
}

func NewUploadTask

func NewUploadTask(task *Task, uploadProgress *mutexedProgress, uploadError *error) *UploadTask

Creates wrapped Task which is dedicated for upload functionality and provides additional functionality to monitor upload progress.

func (*UploadTask) GetUploadError

func (uploadTask *UploadTask) GetUploadError() error

func (*UploadTask) GetUploadProgress

func (uploadTask *UploadTask) GetUploadProgress() string

func (*UploadTask) ShowUploadProgress

func (uploadTask *UploadTask) ShowUploadProgress() error

type VApp

type VApp struct {
	VApp *types.VApp
	// contains filtered or unexported fields
}

func NewVApp

func NewVApp(cli *Client) *VApp

func (*VApp) AddEmptyVm

func (vapp *VApp) AddEmptyVm(reComposeVAppParams *types.RecomposeVAppParamsForEmptyVm) (*VM, error)

AddEmptyVm adds an empty VM (without template) to vApp and returns the new created VM or an error.

func (*VApp) AddEmptyVmAsync

func (vapp *VApp) AddEmptyVmAsync(reComposeVAppParams *types.RecomposeVAppParamsForEmptyVm) (Task, error)

AddEmptyVmAsync adds an empty VM (without template) to the vApp and returns a Task and an error.

func (*VApp) AddIsolatedNetwork

func (vapp *VApp) AddIsolatedNetwork(newIsolatedNetworkSettings *VappNetworkSettings) (Task, error)

Function allows to create isolated network for vApp. This is equivalent to vCD UI function - vApp network creation. Deprecated: in favor of vapp.CreateVappNetwork

func (*VApp) AddMetadata deprecated

func (vapp *VApp) AddMetadata(key string, value string) (Task, error)

Deprecated: use VApp.AddMetadataEntry

func (*VApp) AddMetadataEntry

func (vapp *VApp) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds VApp metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use VApp.AddMetadataEntryWithVisibility instead

func (*VApp) AddMetadataEntryAsync

func (vapp *VApp) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds VApp metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use VApp.AddMetadataEntryWithVisibilityAsync instead

func (*VApp) AddMetadataEntryWithVisibility

func (vapp *VApp) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver VApp and waits for the task to finish.

func (*VApp) AddMetadataEntryWithVisibilityAsync

func (vapp *VApp) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given VApp with the given key, value, type and visibility and returns the task.

func (*VApp) AddNewVM

func (vapp *VApp) AddNewVM(name string, vappTemplate VAppTemplate, network *types.NetworkConnectionSection, acceptAllEulas bool) (Task, error)

AddNewVM adds VM from vApp template with custom NetworkConnectionSection

func (*VApp) AddNewVMWithComputePolicy

func (vapp *VApp) AddNewVMWithComputePolicy(name string, vappTemplate VAppTemplate,
	network *types.NetworkConnectionSection,
	storageProfileRef *types.Reference, computePolicy *types.VdcComputePolicy, acceptAllEulas bool) (Task, error)

AddNewVMWithComputePolicy adds VM from vApp template with custom NetworkConnectionSection and optional storage profile and compute policy

func (*VApp) AddNewVMWithStorageProfile

func (vapp *VApp) AddNewVMWithStorageProfile(name string, vappTemplate VAppTemplate,
	network *types.NetworkConnectionSection,
	storageProfileRef *types.Reference, acceptAllEulas bool) (Task, error)

AddNewVMWithStorageProfile adds VM from vApp template with custom NetworkConnectionSection and optional storage profile

func (*VApp) AddOrgNetwork

func (vapp *VApp) AddOrgNetwork(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork, isFenced bool) (*types.NetworkConfigSection, error)

AddOrgNetwork adds Org VDC network as vApp network. Returns pointer to types.NetworkConfigSection or error

func (*VApp) AddOrgNetworkAsync

func (vapp *VApp) AddOrgNetworkAsync(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork, isFenced bool) (Task, error)

AddOrgNetworkAsync adds asynchronously Org VDC network as vApp network. Returns Task or error

func (*VApp) AddRAWNetworkConfig

func (vapp *VApp) AddRAWNetworkConfig(orgvdcnetworks []*types.OrgVDCNetwork) (Task, error)

AddRAWNetworkConfig adds existing VDC network to vApp Deprecated: in favor of vapp.AddOrgNetwork

func (*VApp) AddRawVM

func (vapp *VApp) AddRawVM(vAppComposition *types.ReComposeVAppParams) (*VM, error)

AddRawVM accepts raw types.ReComposeVAppParams which contains all information for VM creation

func (*VApp) AddVM deprecated

func (vapp *VApp) AddVM(orgVdcNetworks []*types.OrgVDCNetwork, vappNetworkName string, vappTemplate VAppTemplate, name string, acceptAllEulas bool) (Task, error)

AddVM create vm in vApp using vApp template orgVdcNetworks - adds org VDC networks to be available for vApp. Can be empty. vappNetworkName - adds vApp network to be available for vApp. Can be empty. vappTemplate - vApp Template which will be used for VM creation. name - name for VM. acceptAllEulas - setting allows to automatically accept or not Eulas.

Deprecated: Use vapp.AddNewVM instead for more sophisticated network handling

func (*VApp) BlockWhileStatus

func (vapp *VApp) BlockWhileStatus(unwantedStatus string, timeOutAfterSeconds int) error

BlockWhileStatus blocks until the status of vApp exits unwantedStatus. It sleeps 200 milliseconds between iterations and times out after timeOutAfterSeconds of seconds.

func (*VApp) ChangeCPUCount

func (vapp *VApp) ChangeCPUCount(virtualCpuCount int) (Task, error)

Sets number of available virtual logical processors (i.e. CPUs x cores per socket) https://communities.vmware.com/thread/576209 Deprecated: Use vm.ChangeCPUcount()

func (*VApp) ChangeCPUCountWithCore

func (vapp *VApp) ChangeCPUCountWithCore(virtualCpuCount int, coresPerSocket *int) (Task, error)

Sets number of available virtual logical processors (i.e. CPUs x cores per socket) and cores per socket. Socket count is a result of: virtual logical processors/cores per socket https://communities.vmware.com/thread/576209 Deprecated: Use vm.ChangeCPUCountWithCore()

func (*VApp) ChangeMemorySize

func (vapp *VApp) ChangeMemorySize(size int) (Task, error)

Deprecated as it changes only first VM's memory

func (*VApp) ChangeNetworkConfig

func (vapp *VApp) ChangeNetworkConfig(networks []map[string]interface{}, ip string) (Task, error)

func (*VApp) ChangeStorageProfile

func (vapp *VApp) ChangeStorageProfile(name string) (Task, error)

func (*VApp) ChangeVMName

func (vapp *VApp) ChangeVMName(name string) (Task, error)

Deprecated as it changes only first VM's name

func (*VApp) CreateVappNetwork

func (vapp *VApp) CreateVappNetwork(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (*types.NetworkConfigSection, error)

CreateVappNetwork creates isolated or nat routed(connected to Org VDC network) network for vApp. Returns pointer to types.NetworkConfigSection or error If orgNetwork is nil, then isolated network created.

func (*VApp) CreateVappNetworkAsync

func (vapp *VApp) CreateVappNetworkAsync(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (Task, error)

CreateVappNetworkAsync creates asynchronously isolated or nat routed network for vApp. Returns Task or error If orgNetwork is nil, then isolated network created.

func (*VApp) Customize deprecated

func (vapp *VApp) Customize(computername, script string, changeSid bool) (Task, error)

Customize applies customization to first child VM

Deprecated: Use vm.SetGuestCustomizationSection()

func (*VApp) Delete

func (vapp *VApp) Delete() (Task, error)

func (*VApp) DeleteMetadata deprecated

func (vapp *VApp) DeleteMetadata(key string) (Task, error)

Deprecated: use VApp.DeleteMetadataEntry.

func (*VApp) DeleteMetadataEntry

func (vapp *VApp) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes VApp metadata by key provided as input and waits for the task to finish. Deprecated: Use VApp.DeleteMetadataEntryWithDomain instead

func (*VApp) DeleteMetadataEntryAsync

func (vapp *VApp) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes VApp metadata depending on key provided as input and returns the task. Deprecated: Use VApp.DeleteMetadataEntryWithDomainAsync instead

func (*VApp) DeleteMetadataEntryWithDomain

func (vApp *VApp) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes VApp metadata associated to the input key and waits for the task to finish.

func (*VApp) DeleteMetadataEntryWithDomainAsync

func (vapp *VApp) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes VApp metadata associated to the input key and returns the task.

func (*VApp) Deploy

func (vapp *VApp) Deploy() (Task, error)

func (*VApp) DiscardSuspendedState

func (vapp *VApp) DiscardSuspendedState() error

DiscardSuspendedState takes back a vApp from suspension

func (VApp) GetAccessControl

func (vapp VApp) GetAccessControl(useTenantContext bool) (*types.ControlAccessParams, error)

GetAccessControl retrieves the access control information for this vApp

func (*VApp) GetLease

func (vapp *VApp) GetLease() (*types.LeaseSettingsSection, error)

GetLease retrieves the lease terms for a vApp

func (*VApp) GetMetadata

func (vapp *VApp) GetMetadata() (*types.Metadata, error)

GetMetadata returns VApp metadata.

func (*VApp) GetMetadataByKey

func (vapp *VApp) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns VApp metadata corresponding to the given key and domain.

func (*VApp) GetNetworkConfig

func (vapp *VApp) GetNetworkConfig() (*types.NetworkConfigSection, error)

func (*VApp) GetNetworkConnectionSection

func (vapp *VApp) GetNetworkConnectionSection() (*types.NetworkConnectionSection, error)

func (*VApp) GetParentVDC

func (vapp *VApp) GetParentVDC() (Vdc, error)

Returns the vdc where the vapp resides in.

func (*VApp) GetProductSectionList

func (vapp *VApp) GetProductSectionList() (*types.ProductSectionList, error)

GetProductSectionList retrieves product section for a vApp. It allows to read vApp guest properties.

The slice of properties "ProductSectionList.ProductSection.Property" is not necessarily ordered or returned as set before

func (*VApp) GetStatus

func (vapp *VApp) GetStatus() (string, error)

func (*VApp) GetVMById

func (vapp *VApp) GetVMById(id string, refresh bool) (*VM, error)

GetVMById returns a VM reference if the VM ID matches an existing one. If no valid VM is found, it returns a nil VM reference and an error

func (*VApp) GetVMByName

func (vapp *VApp) GetVMByName(vmName string, refresh bool) (*VM, error)

GetVMByName returns a VM reference if the VM name matches an existing one. If no valid VM is found, it returns a nil VM reference and an error

func (*VApp) GetVMByNameOrId

func (vapp *VApp) GetVMByNameOrId(identifier string, refresh bool) (*VM, error)

GetVMByNameOrId returns a VM reference if either the VM name or ID matches an existing one. If no valid VM is found, it returns a nil VM reference and an error

func (*VApp) GetVappNetworkById

func (vapp *VApp) GetVappNetworkById(id string, refresh bool) (*types.VAppNetwork, error)

GetVappNetworkById returns a VApp network reference if the vApp network ID matches an existing one. If no valid VApp network is found, it returns a nil VApp network reference and an error

func (*VApp) GetVappNetworkByName

func (vapp *VApp) GetVappNetworkByName(vappNetworkName string, refresh bool) (*types.VAppNetwork, error)

GetVappNetworkByName returns a VAppNetwork reference if the vApp network name matches an existing one. If no valid vApp network is found, it returns a nil VAppNetwork reference and an error

func (*VApp) GetVappNetworkByNameOrId

func (vapp *VApp) GetVappNetworkByNameOrId(identifier string, refresh bool) (*types.VAppNetwork, error)

GetVappNetworkByNameOrId returns a types.VAppNetwork reference if either the vApp network name or ID matches an existing one. If no valid vApp network is found, it returns a nil types.VAppNetwork reference and an error

func (VApp) IsShared

func (vapp VApp) IsShared(useTenantContext bool) (bool, error)

IsShared shows whether a vApp is shared or not, regardless of the number of subjects sharing it

func (*VApp) MergeMetadata

func (vapp *VApp) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges VApp metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use VApp.MergeMetadataWithMetadataValues

func (*VApp) MergeMetadataAsync

func (vapp *VApp) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges VApp metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use VApp.MergeMetadataWithMetadataValuesAsync

func (*VApp) MergeMetadataWithMetadataValues

func (vApp *VApp) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver VApp and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*VApp) MergeMetadataWithMetadataValuesAsync

func (vapp *VApp) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges VApp metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*VApp) PowerOff

func (vapp *VApp) PowerOff() (Task, error)

func (*VApp) PowerOn

func (vapp *VApp) PowerOn() (Task, error)

func (*VApp) QueryAllVappNetworks

func (vapp *VApp) QueryAllVappNetworks(values map[string]string) ([]*types.QueryResultVappNetworkRecordType, error)

QueryAllVappNetworks returns all vApp networks and vApp Org Networks belonging to the current vApp

func (*VApp) QueryVappNetworks

func (vapp *VApp) QueryVappNetworks(values map[string]string) ([]*types.QueryResultVappNetworkRecordType, error)

QueryVappNetworks returns all vApp networks belonging to the current vApp

func (*VApp) QueryVappOrgNetworks

func (vapp *VApp) QueryVappOrgNetworks(values map[string]string) ([]*types.QueryResultVappNetworkRecordType, error)

QueryVappOrgNetworks returns all vApp networks belonging to the current vApp

func (*VApp) Reboot

func (vapp *VApp) Reboot() (Task, error)

func (*VApp) Refresh

func (vapp *VApp) Refresh() error

func (VApp) RemoveAccessControl

func (vapp VApp) RemoveAccessControl(useTenantContext bool) error

RemoveAccessControl is a shortcut to SetAccessControl with all access disabled

func (*VApp) RemoveAllNetworkFirewallRules

func (vapp *VApp) RemoveAllNetworkFirewallRules(networkId string) error

RemoveAllNetworkFirewallRules removes all network firewall rules from a vApp network. Returns error

func (*VApp) RemoveAllNetworkNatRules

func (vapp *VApp) RemoveAllNetworkNatRules(networkId string) error

RemoveAllNetworkNatRules removes all NAT rules from a vApp network Returns error

func (*VApp) RemoveAllNetworkStaticRoutes

func (vapp *VApp) RemoveAllNetworkStaticRoutes(networkId string) error

RemoveAllNetworkStaticRoutes removes all static routes from a vApp network Returns error

func (*VApp) RemoveAllNetworks

func (vapp *VApp) RemoveAllNetworks() (Task, error)

RemoveAllNetworks detaches all networks from vApp

func (*VApp) RemoveIsolatedNetwork

func (vapp *VApp) RemoveIsolatedNetwork(networkName string) (Task, error)

Removes vApp isolated network Deprecated: in favor vapp.RemoveNetwork

func (*VApp) RemoveNetwork

func (vapp *VApp) RemoveNetwork(identifier string) (*types.NetworkConfigSection, error)

RemoveNetwork removes any network (be it isolated or connected to an Org Network) from vApp Returns pointer to types.NetworkConfigSection or error

func (*VApp) RemoveNetworkAsync

func (vapp *VApp) RemoveNetworkAsync(identifier string) (Task, error)

RemoveNetworkAsync asynchronously removes any network (be it isolated or connected to an Org Network) from vApp Accepts network ID or name

func (*VApp) RemoveVM

func (vapp *VApp) RemoveVM(vm VM) error

========================= issue#252 ================================== TODO: To be refactored, handling networks better. See issue#252 for details https://github.com/vmware/go-vcloud-director/issues/252 ======================================================================

func (*VApp) Rename

func (vapp *VApp) Rename(newName string) error

Rename changes the name of a vApp

func (*VApp) RenewLease

func (vapp *VApp) RenewLease(deploymentLeaseInSeconds, storageLeaseInSeconds int) error

RenewLease updates the lease terms for the vApp

func (*VApp) Reset

func (vapp *VApp) Reset() (Task, error)

func (*VApp) RunCustomizationScript

func (vapp *VApp) RunCustomizationScript(computername, script string) (Task, error)

func (VApp) SetAccessControl

func (vapp VApp) SetAccessControl(accessControl *types.ControlAccessParams, useTenantContext bool) error

SetAccessControl changes the access control information for this vApp

func (*VApp) SetOvf deprecated

func (vapp *VApp) SetOvf(parameters map[string]string) (Task, error)

SetOvf sets guest properties for the first child VM in vApp

Deprecated: Use vm.SetProductSectionList()

func (*VApp) SetProductSectionList

func (vapp *VApp) SetProductSectionList(productSection *types.ProductSectionList) (*types.ProductSectionList, error)

SetProductSectionList sets product section for a vApp. It allows to change vApp guest properties.

The slice of properties "ProductSectionList.ProductSection.Property" is not necessarily ordered or returned as set before

func (*VApp) Shutdown

func (vapp *VApp) Shutdown() (Task, error)

func (*VApp) Suspend

func (vapp *VApp) Suspend() (Task, error)

Suspend suspends a vApp

func (*VApp) Undeploy

func (vapp *VApp) Undeploy() (Task, error)

func (*VApp) UpdateDescription

func (vapp *VApp) UpdateDescription(newDescription string) error

UpdateDescription changes the description of a vApp

func (*VApp) UpdateNameDescription

func (vapp *VApp) UpdateNameDescription(newName, newDescription string) error

UpdateNameDescription can change the name and the description of a vApp If name is empty, it is left unchanged.

func (*VApp) UpdateNetwork

func (vapp *VApp) UpdateNetwork(newNetworkSettings *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (*types.NetworkConfigSection, error)

UpdateNetwork updates vApp networks (isolated or connected to Org VDC network) Returns pointer to types.NetworkConfigSection or error

func (*VApp) UpdateNetworkAsync

func (vapp *VApp) UpdateNetworkAsync(networkSettingsToUpdate *VappNetworkSettings, orgNetwork *types.OrgVDCNetwork) (Task, error)

UpdateNetworkAsync asynchronously updates vApp networks (isolated or connected to Org VDC network). Returns task or error

func (*VApp) UpdateNetworkFirewallRules

func (vapp *VApp) UpdateNetworkFirewallRules(networkId string, firewallRules []*types.FirewallRule, enabled bool, defaultAction string, logDefaultAction bool) (*types.VAppNetwork, error)

UpdateNetworkFirewallRules updates vApp networks firewall rules. It will overwrite existing ones as there is no 100% way to identify them separately. Returns pointer to types.VAppNetwork or error

func (*VApp) UpdateNetworkFirewallRulesAsync

func (vapp *VApp) UpdateNetworkFirewallRulesAsync(networkId string, firewallRules []*types.FirewallRule, enabled bool, defaultAction string, logDefaultAction bool) (Task, error)

UpdateNetworkFirewallRulesAsync asynchronously updates vApp networks firewall rules. It will overwrite existing ones as there is no 100% way to identify them separately. Returns task or error

func (*VApp) UpdateNetworkNatRules

func (vapp *VApp) UpdateNetworkNatRules(networkId string, natRules []*types.NatRule, enabled bool, natType, policy string) (*types.VAppNetwork, error)

UpdateNetworkNatRules updates vApp networks NAT rules. Returns pointer to types.VAppNetwork or error

func (*VApp) UpdateNetworkNatRulesAsync

func (vapp *VApp) UpdateNetworkNatRulesAsync(networkId string, natRules []*types.NatRule, enabled bool, natType, policy string) (Task, error)

UpdateNetworkNatRulesAsync asynchronously updates vApp NAT rules. Returns task or error

func (*VApp) UpdateNetworkStaticRouting

func (vapp *VApp) UpdateNetworkStaticRouting(networkId string, staticRoutes []*types.StaticRoute, enabled bool) (*types.VAppNetwork, error)

UpdateNetworkStaticRouting updates vApp network static routes. Returns pointer to types.VAppNetwork or error

func (*VApp) UpdateNetworkStaticRoutingAsync

func (vapp *VApp) UpdateNetworkStaticRoutingAsync(networkId string, staticRoutes []*types.StaticRoute, enabled bool) (Task, error)

UpdateNetworkStaticRoutingAsync asynchronously updates vApp network static routes. Returns task or error

func (*VApp) UpdateOrgNetwork

func (vapp *VApp) UpdateOrgNetwork(newNetworkSettings *VappNetworkSettings, isFenced bool) (*types.NetworkConfigSection, error)

UpdateOrgNetwork updates Org VDC network which is part of a vApp Returns pointer to types.NetworkConfigSection or error

func (*VApp) UpdateOrgNetworkAsync

func (vapp *VApp) UpdateOrgNetworkAsync(networkSettingsToUpdate *VappNetworkSettings, isFenced bool) (Task, error)

UpdateOrgNetworkAsync asynchronously updates Org VDC network which is part of a vApp Returns task or error

type VAppTemplate

type VAppTemplate struct {
	VAppTemplate *types.VAppTemplate
	// contains filtered or unexported fields
}

func NewVAppTemplate

func NewVAppTemplate(cli *Client) *VAppTemplate

func (*VAppTemplate) AddMetadata deprecated

func (vAppTemplate *VAppTemplate) AddMetadata(key string, value string) (*VAppTemplate, error)

Deprecated: use VAppTemplate.AddMetadataEntry.

func (*VAppTemplate) AddMetadataAsync deprecated

func (vAppTemplate *VAppTemplate) AddMetadataAsync(key string, value string) (Task, error)

Deprecated: use VAppTemplate.AddMetadataEntryAsync.

func (*VAppTemplate) AddMetadataEntry

func (vAppTemplate *VAppTemplate) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds VAppTemplate metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use VAppTemplate.AddMetadataEntryWithVisibility instead

func (*VAppTemplate) AddMetadataEntryAsync

func (vAppTemplate *VAppTemplate) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds VAppTemplate metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use VAppTemplate.AddMetadataEntryWithVisibilityAsync instead

func (*VAppTemplate) AddMetadataEntryWithVisibility

func (vAppTemplate *VAppTemplate) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver VAppTemplate and waits for the task to finish.

func (*VAppTemplate) AddMetadataEntryWithVisibilityAsync

func (vAppTemplate *VAppTemplate) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given VAppTemplate with the given key, value, type and visibility and returns the task.

func (*VAppTemplate) Delete

func (vAppTemplate *VAppTemplate) Delete() error

Delete deletes the VAppTemplate and waits for the deletion to finish, returning an error if something wrong happened.

func (*VAppTemplate) DeleteAsync

func (vAppTemplate *VAppTemplate) DeleteAsync() (Task, error)

DeleteAsync deletes the VAppTemplate, returning the Task that monitors the deletion process, or an error if something wrong happened.

func (*VAppTemplate) DeleteMetadata deprecated

func (vAppTemplate *VAppTemplate) DeleteMetadata(key string) error

Deprecated: use VAppTemplate.DeleteMetadataEntry.

func (*VAppTemplate) DeleteMetadataAsync deprecated

func (vAppTemplate *VAppTemplate) DeleteMetadataAsync(key string) (Task, error)

Deprecated: use VAppTemplate.DeleteMetadataEntryAsync.

func (*VAppTemplate) DeleteMetadataEntry

func (vAppTemplate *VAppTemplate) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes VAppTemplate metadata depending on key provided as input and waits for the task to finish. Deprecated: Use VAppTemplate.DeleteMetadataEntryWithDomain instead

func (*VAppTemplate) DeleteMetadataEntryAsync

func (vAppTemplate *VAppTemplate) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes VAppTemplate metadata depending on key provided as input and returns the task. Deprecated: Use VAppTemplate.DeleteMetadataEntryWithDomainAsync instead

func (*VAppTemplate) DeleteMetadataEntryWithDomain

func (vAppTemplate *VAppTemplate) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes VAppTemplate metadata associated to the input key and waits for the task to finish.

func (*VAppTemplate) DeleteMetadataEntryWithDomainAsync

func (vAppTemplate *VAppTemplate) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes VAppTemplate metadata associated to the input key and returns the task.

func (*VAppTemplate) GetCatalogItemHref

func (vAppTemplate *VAppTemplate) GetCatalogItemHref() (string, error)

GetCatalogItemHref looks up Href for catalog item in vApp template

func (*VAppTemplate) GetCatalogItemId

func (vAppTemplate *VAppTemplate) GetCatalogItemId() (string, error)

GetCatalogItemId returns ID for catalog item in vApp template

func (*VAppTemplate) GetCatalogName

func (vAppTemplate *VAppTemplate) GetCatalogName() (string, error)

GetCatalogName gets the catalog name to which the receiver vApp Template belongs

func (*VAppTemplate) GetLease

func (vAppTemplate *VAppTemplate) GetLease() (*types.LeaseSettingsSection, error)

GetLease retrieves the lease terms for a vAppTemplate

func (*VAppTemplate) GetMetadata

func (vAppTemplate *VAppTemplate) GetMetadata() (*types.Metadata, error)

GetMetadata returns VAppTemplate metadata.

func (*VAppTemplate) GetMetadataByKey

func (vAppTemplate *VAppTemplate) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns VAppTemplate metadata corresponding to the given key and domain.

func (*VAppTemplate) GetVappTemplateRecord

func (vAppTemplate *VAppTemplate) GetVappTemplateRecord() (*types.QueryResultVappTemplateType, error)

GetVappTemplateRecord gets the corresponding vApp template record

func (*VAppTemplate) GetVdcName

func (vAppTemplate *VAppTemplate) GetVdcName() (string, error)

GetVdcName gets the VDC name to which the receiver vApp Template belongs

func (*VAppTemplate) MergeMetadata

func (vAppTemplate *VAppTemplate) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges VAppTemplate metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use VAppTemplate.MergeMetadataWithMetadataValues

func (*VAppTemplate) MergeMetadataAsync

func (vAppTemplate *VAppTemplate) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges VAppTemplate metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use VAppTemplate.MergeMetadataWithMetadataValuesAsync

func (*VAppTemplate) MergeMetadataWithMetadataValues

func (vAppTemplate *VAppTemplate) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver VAppTemplate and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*VAppTemplate) MergeMetadataWithMetadataValuesAsync

func (vAppTemplate *VAppTemplate) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges VAppTemplate metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*VAppTemplate) Refresh

func (vAppTemplate *VAppTemplate) Refresh() error

Refresh refreshes the vApp template item information by href

func (*VAppTemplate) RenewLease

func (vAppTemplate *VAppTemplate) RenewLease(storageLeaseInSeconds int) error

RenewLease updates the lease terms for the vAppTemplate

func (*VAppTemplate) Update

func (vAppTemplate *VAppTemplate) Update() (*VAppTemplate, error)

Update updates the vApp template item information. VCD also updates the associated Catalog Item, in order to be in sync with the receiver vApp Template entity. For example, updating a vApp Template name "A" to "B" will make VCD to also update the Catalog Item to be renamed to "B". Returns vApp template and error.

func (*VAppTemplate) UpdateAsync

func (vAppTemplate *VAppTemplate) UpdateAsync() (Task, error)

UpdateAsync updates the vApp template item information Returns Task and error.

type VCDClient

type VCDClient struct {
	Client Client // Client for the underlying VCD instance

	QueryHREF url.URL // HREF for the query API
	// contains filtered or unexported fields
}

func NewVCDClient

func NewVCDClient(vcdEndpoint url.URL, insecure bool, options ...VCDClientOption) *VCDClient

NewVCDClient initializes VMware VMware Cloud Director client with reasonable defaults. It accepts functions of type VCDClientOption for adjusting defaults.

func (*VCDClient) AddMetadataEntryByHref

func (vcdClient *VCDClient) AddMetadataEntryByHref(href, typedValue, key, value string) error

AddMetadataEntryByHref adds metadata typedValue and key/value pair provided as input to the given resource reference, then waits for the task to finish. Deprecated: Use VCDClient.AddMetadataEntryWithVisibilityByHref instead

func (*VCDClient) AddMetadataEntryByHrefAsync

func (vcdClient *VCDClient) AddMetadataEntryByHrefAsync(href, typedValue, key, value string) (Task, error)

AddMetadataEntryByHrefAsync adds metadata typedValue and key/value pair provided as input to the given resource reference and returns the task. Deprecated: Use VCDClient.AddMetadataEntryWithVisibilityByHrefAsync instead.

func (*VCDClient) AddMetadataEntryWithVisibilityByHref

func (vcdClient *VCDClient) AddMetadataEntryWithVisibilityByHref(href, key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibilityByHref adds metadata to the given resource reference with the given key, value, type and visibility and waits for completion.

func (*VCDClient) AddMetadataEntryWithVisibilityByHrefAsync

func (vcdClient *VCDClient) AddMetadataEntryWithVisibilityByHrefAsync(href, key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityByHrefAsync adds metadata to the given resource reference with the given key, value, type and visibility and returns the task.

func (*VCDClient) AddUIPlugin

func (vcdClient *VCDClient) AddUIPlugin(pluginPath string, enabled bool) (*UIPlugin, error)

AddUIPlugin reads the plugin ZIP file located in the input path, obtains the inner metadata, sends it to VCD and performs the plugin upload.

func (*VCDClient) AssignVmClassesToRegionQuota

func (o *VCDClient) AssignVmClassesToRegionQuota(regionQuotaId string, vmClasses *types.RegionVirtualMachineClasses) error

AssignVmClassesToRegionQuota assigns VM Classes to the receiver Region Quota

func (*VCDClient) Authenticate

func (vcdClient *VCDClient) Authenticate(username, password, org string) error

Authenticate is a helper function that performs a login in VMware Cloud Director.

func (*VCDClient) AutoTrustHttpsCertificate

func (vcdClient *VCDClient) AutoTrustHttpsCertificate(endpoint *url.URL, ctx *TenantContext) (*TrustedCertificate, error)

AutoTrustHttpsCertificate will automatically trust certificate for a given HTTPS endpoint Note. The URL must be accessible

func (*VCDClient) CreateAlbCloud

func (vcdClient *VCDClient) CreateAlbCloud(albCloudConfig *types.NsxtAlbCloud) (*NsxtAlbCloud, error)

CreateAlbCloud creates NSX-T ALB Cloud

func (*VCDClient) CreateAlbServiceEngineGroupAssignment

func (vcdClient *VCDClient) CreateAlbServiceEngineGroupAssignment(assignmentConfig *types.NsxtAlbServiceEngineGroupAssignment) (*NsxtAlbServiceEngineGroupAssignment, error)

func (*VCDClient) CreateApiFilter

func (vcdClient *VCDClient) CreateApiFilter(apiFilter *types.ApiFilter) (*ApiFilter, error)

CreateApiFilter creates an API Filter.

func (*VCDClient) CreateContentLibrary

func (vcdClient *VCDClient) CreateContentLibrary(config *types.ContentLibrary, ctx *TenantContext) (*ContentLibrary, error)

CreateContentLibrary creates a Content Library with the given tenant context. If tenant context is nil, it assumes that the Content Library to create is of Provider type. TODO: TM: Subscribed catalogs create Tasks for every OVA from the publisher. These are ignored at the moment, so a better mechanism must be implemented (like CreateCatalogFromSubscription for VCD catalogs)

func (*VCDClient) CreateDataSolutionOrgConfig

func (vcdClient *VCDClient) CreateDataSolutionOrgConfig(orgId string, cfg *types.DataSolutionOrgConfig) (*DataSolutionOrgConfig, error)

CreateDataSolutionOrgConfig creates Data Solution Org Configuration for a defined orgId

func (*VCDClient) CreateDefinedInterface

func (vcdClient *VCDClient) CreateDefinedInterface(definedInterface *types.DefinedInterface) (*DefinedInterface, error)

CreateDefinedInterface creates a Defined Interface. Only System administrator can create Defined Interfaces.

func (*VCDClient) CreateExternalEndpoint

func (vcdClient *VCDClient) CreateExternalEndpoint(externalEndpoint *types.ExternalEndpoint) (*ExternalEndpoint, error)

CreateExternalEndpoint creates an External Endpoint.

func (*VCDClient) CreateIpSpace

func (vcdClient *VCDClient) CreateIpSpace(ipSpaceConfig *types.IpSpace) (*IpSpace, error)

CreateIpSpace creates IP Space with desired configuration

func (vcdClient *VCDClient) CreateIpSpaceUplink(ipSpaceUplinkConfig *types.IpSpaceUplink) (*IpSpaceUplink, error)

CreateIpSpaceUplink creates an IP Space Uplink with a given configuration

func (*VCDClient) CreateLogicalVmGroup

func (vcdClient *VCDClient) CreateLogicalVmGroup(logicalVmGroup types.LogicalVmGroup) (*LogicalVmGroup, error)

CreateLogicalVmGroup creates a new Logical VM Group in VCD

func (*VCDClient) CreateNetworkPool

func (vcdClient *VCDClient) CreateNetworkPool(config *types.NetworkPool) (*NetworkPool, error)

CreateNetworkPool creates a network pool using the given configuration It can create any type of network pool

func (*VCDClient) CreateNetworkPoolGeneve

func (vcdClient *VCDClient) CreateNetworkPoolGeneve(name, description, nsxtManagerName, transportZoneName string, constraint types.BackingUseConstraint) (*NetworkPool, error)

CreateNetworkPoolGeneve creates a network pool of GENEVE type The function retrieves the given NSX-T manager and corresponding transport zone names If the transport zone name is empty, the first available will be used

func (*VCDClient) CreateNetworkPoolPortGroup

func (vcdClient *VCDClient) CreateNetworkPoolPortGroup(name, description, vCenterName string, portgroupNames []string, constraint types.BackingUseConstraint) (*NetworkPool, error)

CreateNetworkPoolPortGroup creates a network pool of PORTGROUP_BACKED type The function retrieves the given vCenter and corresponding port group names If the port group name is empty, the first available will be used

func (*VCDClient) CreateNetworkPoolVlan

func (vcdClient *VCDClient) CreateNetworkPoolVlan(name, description, vCenterName, dsName string, ranges []types.VlanIdRange, constraint types.BackingUseConstraint) (*NetworkPool, error)

CreateNetworkPoolVlan creates a network pool of VLAN type The function retrieves the given vCenter and corresponding distributed switch names If the distributed switch name is empty, the first available will be used

func (*VCDClient) CreateNsxtAlbController

func (vcdClient *VCDClient) CreateNsxtAlbController(albControllerConfig *types.NsxtAlbController) (*NsxtAlbController, error)

CreateNsxtAlbController creates controller with supplied albControllerConfig configuration

func (*VCDClient) CreateNsxtAlbPool

func (vcdClient *VCDClient) CreateNsxtAlbPool(albPoolConfig *types.NsxtAlbPool) (*NsxtAlbPool, error)

CreateNsxtAlbPool creates NSX-T ALB Pool based on supplied configuration

func (*VCDClient) CreateNsxtAlbServiceEngineGroup

func (vcdClient *VCDClient) CreateNsxtAlbServiceEngineGroup(albServiceEngineGroup *types.NsxtAlbServiceEngineGroup) (*NsxtAlbServiceEngineGroup, error)

func (*VCDClient) CreateNsxtAlbVirtualService

func (vcdClient *VCDClient) CreateNsxtAlbVirtualService(albVirtualServiceConfig *types.NsxtAlbVirtualService) (*NsxtAlbVirtualService, error)

CreateNsxtAlbVirtualService creates NSX-T ALB Virtual Service based on supplied configuration

func (*VCDClient) CreateNsxtManagerOpenApi

func (vcdClient *VCDClient) CreateNsxtManagerOpenApi(config *types.NsxtManagerOpenApi) (*NsxtManagerOpenApi, error)

CreateNsxtManagerOpenApi attaches NSX-T Manager

func (*VCDClient) CreateProviderVdc

func (vcdClient *VCDClient) CreateProviderVdc(params *types.ProviderVdcCreation) (*ProviderVdcExtended, error)

CreateProviderVdc creates a new provider VDC using the passed parameters

func (*VCDClient) CreateRde

func (vcdClient *VCDClient) CreateRde(vendor, nss, version string, entity types.DefinedEntity, tenantContext *TenantContext) (*DefinedEntity, error)

CreateRde creates an entity of the type of the given vendor, nss and version. NOTE: After RDE creation, some actor should Resolve it, otherwise the RDE state will be "PRE_CREATED" and the generated VCD task will remain at 1% until resolved.

func (*VCDClient) CreateRdeType

func (vcdClient *VCDClient) CreateRdeType(rde *types.DefinedEntityType) (*DefinedEntityType, error)

CreateRdeType creates a Runtime Defined Entity Type. Only a System administrator can create RDE Types.

func (*VCDClient) CreateRegion

func (vcdClient *VCDClient) CreateRegion(config *types.Region) (*Region, error)

CreateRegion creates a new region

func (*VCDClient) CreateRegionAsync

func (vcdClient *VCDClient) CreateRegionAsync(config *types.Region) (*Task, error)

CreateRegionAsync creates a new region and returns its tracking task

func (*VCDClient) CreateRegionQuota

func (vcdClient *VCDClient) CreateRegionQuota(config *types.TmVdc) (*RegionQuota, error)

CreateRegionQuota sets up a new Region Quota

func (*VCDClient) CreateRegionQuotaStoragePolicies

func (vcdClient *VCDClient) CreateRegionQuotaStoragePolicies(regionQuotaId string, regionStoragePolicies *types.VirtualDatacenterStoragePolicies) ([]*RegionQuotaStoragePolicy, error)

CreateRegionQuotaStoragePolicies creates new Region Quota Storage Policies in a Region Quota. The request will fail if the list of Storage Policies is empty. It returns the list of all Storage Policies that are available in the Region Quota after creation.

func (*VCDClient) CreateSegmentProfileTemplate

func (vcdClient *VCDClient) CreateSegmentProfileTemplate(segmentProfileConfig *types.NsxtSegmentProfileTemplate) (*NsxtSegmentProfileTemplate, error)

CreateSegmentProfileTemplate creates a Segment Profile Template that can later be assigned to global VCD configuration, Org VDC or Org VDC Network

func (*VCDClient) CreateServiceAccount

func (vcdClient *VCDClient) CreateServiceAccount(orgName, name, scope, softwareId, softwareVersion, clientUri string) (*ServiceAccount, error)

CreateServiceAccount creates a Service Account and sets it in `Created` status

func (*VCDClient) CreateSolutionAddOn

func (vcdClient *VCDClient) CreateSolutionAddOn(cfg SolutionAddOnConfig) (*SolutionAddOn, error)

CreateSolutionAddOn creates Solution Add-On instance in VCD based on given Requirements - the ISO image defined in `isoFilePath` must already be uploaded to a catalog and `catalogItemId` must reflect exactly the same image

Order of operations that this method provides: * Get contents of Solution Add-On ISO file defined in 'isoFilePath' * Create the 'Entity' payload for creating RDE based on the given image * Get Solution Add-On RDE Name from the manifest within 'isoFilePath' * If 'autoTrustCertificate' is set to true - the code will check if VCD trusts the certificate and trust it if it wasn't already trusted * Lookup RDE type 'vmware:solutions_add_on:1.0.0' * Create an RDE entity with payload from the 'isoFilePath' contents

func (*VCDClient) CreateSolutionLandingZone

func (vcdClient *VCDClient) CreateSolutionLandingZone(slzCfg *types.SolutionLandingZoneType) (*SolutionLandingZone, error)

CreateSolutionLandingZone configures VCD Solution Add-On Landing Zone. It does so by performing the following steps:

1. Creates Solution Landing Zone RDE based on type urn:vcloud:type:vmware:solutions_organization:1.0.0 2. Resolves the RDE

func (*VCDClient) CreateTmIpSpace

func (vcdClient *VCDClient) CreateTmIpSpace(config *types.TmIpSpace) (*TmIpSpace, error)

CreateTmIpSpace creates a TM IP Space with a given configuration

func (*VCDClient) CreateTmIpSpaceAssociation

func (vcdClient *VCDClient) CreateTmIpSpaceAssociation(config *types.TmIpSpaceAssociation) (*TmIpSpaceAssociation, error)

Creates TM IP Space Association with Provider Gateway

func (*VCDClient) CreateTmIpSpaceAsync

func (vcdClient *VCDClient) CreateTmIpSpaceAsync(config *types.TmIpSpace) (*Task, error)

CreateTmIpSpaceAsync creates a new TM IP Space and returns its tracking task

func (*VCDClient) CreateTmOrg

func (vcdClient *VCDClient) CreateTmOrg(config *types.TmOrg) (*TmOrg, error)

CreateTmOrg creates a TM Organization

func (*VCDClient) CreateTmProviderGateway

func (vcdClient *VCDClient) CreateTmProviderGateway(config *types.TmProviderGateway) (*TmProviderGateway, error)

Creates TM Provider Gateway with provided configuration

func (*VCDClient) CreateTmProviderGatewayAsync

func (vcdClient *VCDClient) CreateTmProviderGatewayAsync(config *types.TmProviderGateway) (*Task, error)

CreateTmProviderGatewayAsync adds new Provider gateway and returns its task for tracking

func (*VCDClient) CreateTmRegionalNetworkingSetting

func (vcdClient *VCDClient) CreateTmRegionalNetworkingSetting(config *types.TmRegionalNetworkingSetting) (*TmRegionalNetworkingSetting, error)

CreateTmRegionalNetworkingSetting creates a new Regional Networking Setting with a given configuration

func (*VCDClient) CreateTmRegionalNetworkingSettingAsync

func (vcdClient *VCDClient) CreateTmRegionalNetworkingSettingAsync(config *types.TmRegionalNetworkingSetting) (*Task, error)

CreateTmRegionalNetworkingSettingAsync creates a new Regional Networking Setting with a given configuration and returns tracking task

func (*VCDClient) CreateToken

func (vcdClient *VCDClient) CreateToken(org, tokenName string) (*Token, error)

CreateToken is used for creating API tokens and works in two steps: 1. Register the token through the `register` endpoint 2. Fetch it using GetTokenById(tokenID) The user then can use *Token.GetInitialRefreshToken to get the API token

func (*VCDClient) CreateTrustedCertificate

func (vcdClient *VCDClient) CreateTrustedCertificate(config *types.TrustedCertificate, ctx *TenantContext) (*TrustedCertificate, error)

CreateTrustedCertificate creates an entry in the trusted certificate records with the given tenant context. If tenant context is nil, it assumes that the certificate will be stored in System org.

func (*VCDClient) CreateUser

func (vcdClient *VCDClient) CreateUser(config *types.OpenApiUser, ctx *TenantContext) (*OpenApiUser, error)

CreateUser creates a new User with a given configuration

func (*VCDClient) CreateVcenter

func (vcdClient *VCDClient) CreateVcenter(config *types.VSphereVirtualCenter) (*VCenter, error)

CreateVcenter adds new vCenter connection

func (*VCDClient) CreateVcenterAsync

func (vcdClient *VCDClient) CreateVcenterAsync(config *types.VSphereVirtualCenter) (*Task, error)

CreateVcenterAsync adds new vCenter and returns its task for tracking

func (*VCDClient) CreateVdcComputePolicyV2

func (client *VCDClient) CreateVdcComputePolicyV2(newVdcComputePolicy *types.VdcComputePolicyV2) (*VdcComputePolicyV2, error)

CreateVdcComputePolicyV2 creates a new VDC Compute Policy (V2) using OpenAPI endpoint

func (*VCDClient) CreateVdcTemplate

func (vcdClient *VCDClient) CreateVdcTemplate(input types.VMWVdcTemplate) (*VdcTemplate, error)

CreateVdcTemplate creates a VDC Template with the given settings.

func (*VCDClient) CseGetKubernetesClusterById

func (vcdClient *VCDClient) CseGetKubernetesClusterById(id string) (*CseKubernetesCluster, error)

CseGetKubernetesClusterById retrieves a CSE Kubernetes cluster from VCD by its unique ID

func (*VCDClient) DeleteMetadataEntryByHref

func (vcdClient *VCDClient) DeleteMetadataEntryByHref(href, key string) error

DeleteMetadataEntryByHref deletes metadata from the given resource reference, depending on key provided as input and waits for the task to finish. Deprecated: Use VCDClient.DeleteMetadataEntryWithDomainByHref

func (*VCDClient) DeleteMetadataEntryByHrefAsync

func (vcdClient *VCDClient) DeleteMetadataEntryByHrefAsync(href, key string) (Task, error)

DeleteMetadataEntryByHrefAsync deletes metadata from the given resource reference, depending on key provided as input and returns a task. Deprecated: Use VCDClient.DeleteMetadataEntryWithDomainByHrefAsync

func (*VCDClient) DeleteMetadataEntryWithDomainByHref

func (vcdClient *VCDClient) DeleteMetadataEntryWithDomainByHref(href, key string, isSystem bool) error

DeleteMetadataEntryWithDomainByHref deletes metadata from the given resource reference, depending on key provided as input and waits for the task to finish.

func (*VCDClient) DeleteMetadataEntryWithDomainByHrefAsync

func (vcdClient *VCDClient) DeleteMetadataEntryWithDomainByHrefAsync(href, key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainByHrefAsync deletes metadata from the given resource reference, depending on key provided as input and returns a task.

func (*VCDClient) DeleteRegionQuotaStoragePolicy

func (vcdClient *VCDClient) DeleteRegionQuotaStoragePolicy(regionQuotaStoragePolicyId string) error

DeleteRegionQuotaStoragePolicy deletes a Region Quota Storage Policy with given ID

func (*VCDClient) Disconnect

func (vcdClient *VCDClient) Disconnect() error

Disconnect performs a disconnection from the VMware Cloud Director API endpoint.

func (*VCDClient) GetAdminOrgById

func (vcdClient *VCDClient) GetAdminOrgById(orgId string) (*AdminOrg, error)

GetAdminOrgById finds an Admin Organization by ID On success, returns a pointer to the Admin Org structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetAdminOrgByName

func (vcdClient *VCDClient) GetAdminOrgByName(orgName string) (*AdminOrg, error)

GetAdminOrgByName finds an Admin Organization by name On success, returns a pointer to the Admin Org structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetAdminOrgByNameOrId

func (vcdClient *VCDClient) GetAdminOrgByNameOrId(identifier string) (*AdminOrg, error)

GetAdminOrgByNameOrId finds an Admin Organization by name or ID On success, returns a pointer to the Admin Org structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetAlbCloudById

func (vcdClient *VCDClient) GetAlbCloudById(id string) (*NsxtAlbCloud, error)

GetAlbCloudById returns NSX-T ALB Cloud by ID

Note. This function uses server side filtering instead of directly querying endpoint with specified ID because such endpoint does not exist

func (*VCDClient) GetAlbCloudByName

func (vcdClient *VCDClient) GetAlbCloudByName(name string) (*NsxtAlbCloud, error)

GetAlbCloudByName returns NSX-T ALB Cloud by name

func (*VCDClient) GetAlbControllerById

func (vcdClient *VCDClient) GetAlbControllerById(id string) (*NsxtAlbController, error)

GetAlbControllerById returns NSX-T ALB Controller by ID

func (*VCDClient) GetAlbControllerByName

func (vcdClient *VCDClient) GetAlbControllerByName(name string) (*NsxtAlbController, error)

GetAlbControllerByName returns NSX-T ALB Controller by Name

func (*VCDClient) GetAlbControllerByUrl

func (vcdClient *VCDClient) GetAlbControllerByUrl(url string) (*NsxtAlbController, error)

GetAlbControllerByUrl returns configured ALB Controller by URL

Note. Filtering is performed on client side.

func (*VCDClient) GetAlbImportableCloudById

func (vcdClient *VCDClient) GetAlbImportableCloudById(parentAlbControllerUrn, id string) (*NsxtAlbImportableCloud, error)

GetAlbImportableCloudById returns importable NSX-T ALB Clouds. Note. ID filtering is performed on client side

func (*VCDClient) GetAlbImportableCloudByName

func (vcdClient *VCDClient) GetAlbImportableCloudByName(parentAlbControllerUrn, name string) (*NsxtAlbImportableCloud, error)

GetAlbImportableCloudByName returns importable NSX-T ALB Clouds.

func (*VCDClient) GetAlbImportableServiceEngineGroupById

func (vcdClient *VCDClient) GetAlbImportableServiceEngineGroupById(parentAlbCloudUrn, id string) (*NsxtAlbImportableServiceEngineGroups, error)

GetAlbImportableServiceEngineGroupById Note. ID filtering is performed on client side

func (*VCDClient) GetAlbImportableServiceEngineGroupByName

func (vcdClient *VCDClient) GetAlbImportableServiceEngineGroupByName(parentAlbCloudUrn, name string) (*NsxtAlbImportableServiceEngineGroups, error)

GetAlbImportableServiceEngineGroupByName returns importable NSX-T ALB Clouds.

func (*VCDClient) GetAlbPoolById

func (vcdClient *VCDClient) GetAlbPoolById(id string) (*NsxtAlbPool, error)

GetAlbPoolById fetches ALB Pool By Id

func (*VCDClient) GetAlbPoolByName

func (vcdClient *VCDClient) GetAlbPoolByName(edgeGatewayId string, name string) (*NsxtAlbPool, error)

GetAlbPoolByName fetches ALB Pool By Name

func (*VCDClient) GetAlbServiceEngineGroupAssignmentById

func (vcdClient *VCDClient) GetAlbServiceEngineGroupAssignmentById(id string) (*NsxtAlbServiceEngineGroupAssignment, error)

func (*VCDClient) GetAlbServiceEngineGroupAssignmentByName

func (vcdClient *VCDClient) GetAlbServiceEngineGroupAssignmentByName(name string) (*NsxtAlbServiceEngineGroupAssignment, error)

func (*VCDClient) GetAlbServiceEngineGroupById

func (vcdClient *VCDClient) GetAlbServiceEngineGroupById(id string) (*NsxtAlbServiceEngineGroup, error)

GetAlbServiceEngineGroupById returns importable NSX-T ALB Cloud by ID

func (*VCDClient) GetAlbServiceEngineGroupByName

func (vcdClient *VCDClient) GetAlbServiceEngineGroupByName(optionalContext, name string) (*NsxtAlbServiceEngineGroup, error)

GetAlbServiceEngineGroupByName returns NSX-T ALB Service Engine by Name Context is not mandatory for this resource. Supported contexts are: * Gateway ID (_context==gatewayId) - returns all Load Balancer Service Engine Groups that are accessible to the gateway. * Assignable Gateway ID (_context=gatewayId;_context==assignable) returns all Load Balancer Service Engine Groups that are assignable to the gateway. This filters out any Load Balancer Service Engine groups that are already assigned to the gateway or assigned to another gateway if the reservation type is 'DEDICATED’.

func (*VCDClient) GetAlbVirtualServiceById

func (vcdClient *VCDClient) GetAlbVirtualServiceById(id string) (*NsxtAlbVirtualService, error)

GetAlbVirtualServiceById fetches ALB Virtual Service By ID

func (*VCDClient) GetAlbVirtualServiceByName

func (vcdClient *VCDClient) GetAlbVirtualServiceByName(edgeGatewayId string, name string) (*NsxtAlbVirtualService, error)

GetAlbVirtualServiceByName fetches ALB Virtual Service By Name

func (*VCDClient) GetAllAlbClouds

func (vcdClient *VCDClient) GetAllAlbClouds(queryParameters url.Values) ([]*NsxtAlbCloud, error)

GetAllAlbClouds returns all configured NSX-T ALB Clouds

func (*VCDClient) GetAllAlbControllers

func (vcdClient *VCDClient) GetAllAlbControllers(queryParameters url.Values) ([]*NsxtAlbController, error)

GetAllAlbControllers returns all configured NSX-T ALB Controllers

func (*VCDClient) GetAllAlbImportableClouds

func (vcdClient *VCDClient) GetAllAlbImportableClouds(parentAlbControllerUrn string, queryParameters url.Values) ([]*NsxtAlbImportableCloud, error)

GetAllAlbImportableClouds returns importable NSX-T ALB Clouds. parentAlbControllerUrn (ID in URN format of a parent ALB Controller) is mandatory

func (*VCDClient) GetAllAlbImportableServiceEngineGroups

func (vcdClient *VCDClient) GetAllAlbImportableServiceEngineGroups(parentAlbCloudUrn string, queryParameters url.Values) ([]*NsxtAlbImportableServiceEngineGroups, error)

GetAllAlbImportableServiceEngineGroups lists all Importable Service Engine Groups available in ALB Controller

func (*VCDClient) GetAllAlbPoolSummaries

func (vcdClient *VCDClient) GetAllAlbPoolSummaries(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbPool, error)

GetAllAlbPoolSummaries retrieves partial information for type `NsxtAlbPool`, but it is the only way to retrieve all ALB pools for Edge Gateway

func (*VCDClient) GetAllAlbPools

func (vcdClient *VCDClient) GetAllAlbPools(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbPool, error)

GetAllAlbPools uses GetAllAlbPoolSummaries behind the scenes and the fetches complete data for all ALB Pools. This has performance penalty because each ALB Pool is fetched individually.

func (*VCDClient) GetAllAlbServiceEngineGroupAssignments

func (vcdClient *VCDClient) GetAllAlbServiceEngineGroupAssignments(queryParameters url.Values) ([]*NsxtAlbServiceEngineGroupAssignment, error)

func (*VCDClient) GetAllAlbServiceEngineGroups

func (vcdClient *VCDClient) GetAllAlbServiceEngineGroups(context string, queryParameters url.Values) ([]*NsxtAlbServiceEngineGroup, error)

GetAllAlbServiceEngineGroups retrieves NSX-T ALB Service Engines with possible filters

Context is not mandatory for this resource. Supported contexts are: * Gateway ID (_context==gatewayId) - returns all Load Balancer Service Engine Groups that are accessible to the gateway. * Assignable Gateway ID (_context=gatewayId;_context==assignable) returns all Load Balancer Service Engine Groups that are assignable to the gateway. This filters out any Load Balancer Service Engine groups that are already assigned to the gateway or assigned to another gateway if the reservation type is 'DEDICATED’.

func (*VCDClient) GetAllAlbVirtualServiceSummaries

func (vcdClient *VCDClient) GetAllAlbVirtualServiceSummaries(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbVirtualService, error)

GetAllAlbVirtualServiceSummaries returns a limited subset of NsxtAlbVirtualService values, but does it in single query. To fetch complete information for ALB Virtual Services one can use GetAllAlbVirtualServices(), but it is slower as it has to retrieve Virtual Services one by one.

func (*VCDClient) GetAllAlbVirtualServices

func (vcdClient *VCDClient) GetAllAlbVirtualServices(edgeGatewayId string, queryParameters url.Values) ([]*NsxtAlbVirtualService, error)

GetAllAlbVirtualServices fetches ALB Virtual Services by at first listing all Virtual Services summaries and then fetching complete structure one by one

func (*VCDClient) GetAllApiFilters

func (vcdClient *VCDClient) GetAllApiFilters(queryParameters url.Values) ([]*ApiFilter, error)

GetAllApiFilters retrieves all available API Filters. Query parameters can be supplied to perform additional filtering.

func (*VCDClient) GetAllAssignedVdcComputePoliciesV2

func (vcdClient *VCDClient) GetAllAssignedVdcComputePoliciesV2(vdcId string, queryParameters url.Values) ([]*VdcComputePolicyV2, error)

GetAllAssignedVdcComputePoliciesV2 retrieves all VDC assigned Compute Policies (V2) using OpenAPI endpoint and the mandatory VDC identifier. Query parameters can be supplied to perform additional filtering

func (*VCDClient) GetAllContentLibraries

func (vcdClient *VCDClient) GetAllContentLibraries(queryParameters url.Values, ctx *TenantContext) ([]*ContentLibrary, error)

GetAllContentLibraries retrieves all Content Libraries with the given query parameters, which allow setting filters and other constraints. Tenant context can be nil, or can be used to retrieve the Content Libraries as a tenant.

func (*VCDClient) GetAllDataSolutionOrgConfigs

func (vcdClient *VCDClient) GetAllDataSolutionOrgConfigs(queryParameters url.Values) ([]*DataSolutionOrgConfig, error)

GetAllDataSolutionOrgConfigs retrieves all available Data Solution Org Configs

func (*VCDClient) GetAllDataSolutions

func (vcdClient *VCDClient) GetAllDataSolutions(queryParameters url.Values) ([]*DataSolution, error)

GetAllDataSolutions retrieves all Data Solutions

func (*VCDClient) GetAllDefinedInterfaces

func (vcdClient *VCDClient) GetAllDefinedInterfaces(queryParameters url.Values) ([]*DefinedInterface, error)

GetAllDefinedInterfaces retrieves all Defined Interfaces. Query parameters can be supplied to perform additional filtering.

func (*VCDClient) GetAllExternalEndpoints

func (vcdClient *VCDClient) GetAllExternalEndpoints(queryParameters url.Values) ([]*ExternalEndpoint, error)

GetAllExternalEndpoints retrieves all available External Endpoints. Query parameters can be supplied to perform additional filtering.

func (*VCDClient) GetAllFeatureFlags

func (vcdClient *VCDClient) GetAllFeatureFlags() ([]*types.FeatureFlag, error)

GetAllFeatureFlags retrieves all available feature flags

func (*VCDClient) GetAllImportableNsxtTier0Routers

func (vcdClient *VCDClient) GetAllImportableNsxtTier0Routers(nsxtManagerId string, queryParameters url.Values) ([]*NsxtTier0Router, error)

GetAllImportableNsxtTier0Routers retrieves all NSX-T Tier-0 routers using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering. By default it injects FIQL filter _context==nsxtManagerId (e.g. _context==urn:vcloud:nsxtmanager:09722307-aee0-4623-af95-7f8e577c9ebc) because it is mandatory to list child Tier-0 routers.

Warning. The API returns only unused Tier-0 routers (the ones that are not used in external networks yet)

Note. IDs of Tier-0 routers do not have a standard and may look as strings when they are created using UI or as UUIDs when they are created using API

func (*VCDClient) GetAllInstanceTemplates

func (vcdClient *VCDClient) GetAllInstanceTemplates(queryParameters url.Values) ([]*DataSolutionInstanceTemplate, error)

GetAllInstanceTemplates retrieves all Data Solution Instance Templates that are available in the system

func (*VCDClient) GetAllIpDiscoveryProfiles

func (vcdClient *VCDClient) GetAllIpDiscoveryProfiles(queryParameters url.Values) ([]*types.NsxtSegmentProfileIpDiscovery, error)

GetAllIpDiscoveryProfiles retrieves all IP Discovery Profiles configured in an NSX-T manager. NSX-T manager ID (nsxTManagerRef.id), Org VDC ID (orgVdcId) or VDC Group ID (vdcGroupId) must be supplied as a filter. Results can also be filtered by a single profile ID (filter=nsxTManagerRef.id==nsxTManagerUrn;id==profileId).

func (*VCDClient) GetAllIpSpaceFloatingIpSuggestions

func (vcdClient *VCDClient) GetAllIpSpaceFloatingIpSuggestions(gatewayId string, queryParameters url.Values) ([]*types.IpSpaceFloatingIpSuggestion, error)

GetAllIpSpaceFloatingIpSuggestions suggests IP addresses to use for networking services on Edge Gateway or Provider Gateway. 'gatewayId' is mandatory. Based on the specified Gateway, VCD will query all the applicable IP Spaces and suggest some IP addresses which can be utilized to configure the network services on the Gateway. Allocated IP Space's IP addresses, but not currently used for any network services are returned. Results can also be filtered by IPV4 or IPV6 IP address types.

Filter examples:(filter=gatewayId==URN), (filter=gatewayId==URN;ipType==IPV6) Go code: queryParams := url.Values{} queryParams.Set("filter", "ipType==IPV4")

func (*VCDClient) GetAllIpSpaceSummaries

func (vcdClient *VCDClient) GetAllIpSpaceSummaries(queryParameters url.Values) ([]*IpSpace, error)

GetAllIpSpaceSummaries retrieve summaries of all IP Spaces with an optional filter Note. There is no API endpoint to get multiple IP Spaces with their full definitions. Only "summaries" endpoint exists, but it does not include all fields. To retrieve complete structure one can use `GetIpSpaceById` or `GetIpSpaceByName`

func (vcdClient *VCDClient) GetAllIpSpaceUplinks(externalNetworkId string, queryParameters url.Values) ([]*IpSpaceUplink, error)

GetAllIpSpaceUplinks retrieves all IP Space Uplinks for a given External Network ID

externalNetworkId is mandatory

func (*VCDClient) GetAllMacDiscoveryProfiles

func (vcdClient *VCDClient) GetAllMacDiscoveryProfiles(queryParameters url.Values) ([]*types.NsxtSegmentProfileMacDiscovery, error)

GetAllMacDiscoveryProfiles retrieves all MAC Discovery Profiles configured in an NSX-T manager. NSX-T manager ID (nsxTManagerRef.id), Org VDC ID (orgVdcId) or VDC Group ID (vdcGroupId) must be supplied as a filter. Results can also be filtered by a single profile ID (filter=nsxTManagerRef.id==nsxTManagerUrn;id==profileId).

func (*VCDClient) GetAllNsxtEdgeClusters

func (vcdClient *VCDClient) GetAllNsxtEdgeClusters(queryParameters url.Values) ([]*NsxtEdgeCluster, error)

GetAllNsxtEdgeClusters retrieves all NSX-T Edge Clusters in the system

A filter is mandatory as otherwise request will fail orgVdcId - | The filter orgVdcId must be set equal to the id of the NSX-T backed Org vDC for which we want to get the edge clusters. Example: (orgVdcId==urn:vcloud:vdc:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) vdcGroupId - | The filter vdcGroupId must be set equal to the id of the NSX-T VDC Group for which we want to get the edge clusters. Example: (vdcGroupId==urn:vcloud:vdcGroup:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) pvdcId - | The filter pvdcId must be set equal to the id of the NSX-T backed Provider VDC for which we want to get the edge clusters. pvdcId filter is supported from version 35.2 Example: (pvdcId==urn:vcloud:providervdc:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

func (*VCDClient) GetAllNsxtEdgeGatewayQosProfiles

func (vcdClient *VCDClient) GetAllNsxtEdgeGatewayQosProfiles(nsxtManagerId string, queryParameters url.Values) ([]*NsxtEdgeGatewayQosProfile, error)

GetAllNsxtEdgeGatewayQosProfiles retrieves all NSX-T Edge Gateway QoS Profiles defined in NSX-T Manager

func (*VCDClient) GetAllNsxtEdgeGateways

func (vcdClient *VCDClient) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error)

GetAllNsxtEdgeGateways allows to retrieve all NSX-T Edge Gateways

func (*VCDClient) GetAllNsxtManagersOpenApi

func (vcdClient *VCDClient) GetAllNsxtManagersOpenApi(queryParameters url.Values) ([]*NsxtManagerOpenApi, error)

GetAllNsxtManagersOpenApi retrieves all NSX-T Managers with an optional filter

func (*VCDClient) GetAllNsxtTransportZones

func (vcdClient *VCDClient) GetAllNsxtTransportZones(nsxtManagerId string, queryParameters url.Values) ([]*types.TransportZone, error)

func (*VCDClient) GetAllOrgs

func (vcdClient *VCDClient) GetAllOrgs(queryParameters url.Values, multiSite bool) ([]*OpenApiOrg, error)

GetAllOrgs retrieve all organizations visible to the user When 'multiSite' is set, it will also check the organizations available from associated sites

func (*VCDClient) GetAllQoSProfiles

func (vcdClient *VCDClient) GetAllQoSProfiles(queryParameters url.Values) ([]*types.NsxtSegmentProfileSegmentQosProfile, error)

GetAllQoSProfiles retrieves all QoS Profiles configured in an NSX-T manager. NSX-T manager ID (nsxTManagerRef.id), Org VDC ID (orgVdcId) or VDC Group ID (vdcGroupId) must be supplied as a filter. Results can also be filtered by a single profile ID (filter=nsxTManagerRef.id==nsxTManagerUrn;id==profileId).

func (*VCDClient) GetAllRdeTypes

func (vcdClient *VCDClient) GetAllRdeTypes(queryParameters url.Values) ([]*DefinedEntityType, error)

GetAllRdeTypes retrieves all Runtime Defined Entity Types. Query parameters can be supplied to perform additional filtering.

func (*VCDClient) GetAllRdes

func (vcdClient *VCDClient) GetAllRdes(vendor, nss, version string, queryParameters url.Values) ([]*DefinedEntity, error)

GetAllRdes gets all the RDE instances of the given vendor, nss and version.

func (*VCDClient) GetAllRegionQuotaStoragePolicies

func (vcdClient *VCDClient) GetAllRegionQuotaStoragePolicies(queryParameters url.Values) ([]*RegionQuotaStoragePolicy, error)

GetAllRegionQuotaStoragePolicies retrieves all Region Quota Storage Policies

func (*VCDClient) GetAllRegionQuotas

func (vcdClient *VCDClient) GetAllRegionQuotas(queryParameters url.Values) ([]*RegionQuota, error)

GetAllRegionQuotas retrieves all Region Quotas

func (*VCDClient) GetAllRegionStoragePolicies

func (vcdClient *VCDClient) GetAllRegionStoragePolicies(queryParameters url.Values) ([]*RegionStoragePolicy, error)

GetAllRegionStoragePolicies retrieves all Region Storage Policies with the given query parameters, which allow setting filters and other constraints

func (*VCDClient) GetAllRegionVirtualMachineClasses

func (vcdClient *VCDClient) GetAllRegionVirtualMachineClasses(queryParameters url.Values) ([]*RegionVirtualMachineClass, error)

GetAllRegionVirtualMachineClasses retrieves all Region VM Classes

func (*VCDClient) GetAllRegions

func (vcdClient *VCDClient) GetAllRegions(queryParameters url.Values) ([]*Region, error)

GetAllRegions retrieves all Regions with an optional query filter

func (*VCDClient) GetAllResourcePools

func (vcdClient *VCDClient) GetAllResourcePools(queryParams url.Values) ([]*ResourcePool, error)

GetAllResourcePools retrieves all available resource pool, across all vCenters

func (*VCDClient) GetAllSegmentProfileTemplates

func (vcdClient *VCDClient) GetAllSegmentProfileTemplates(queryFilter url.Values) ([]*NsxtSegmentProfileTemplate, error)

GetAllSegmentProfileTemplates retrieves all Segment Profile Templates

func (*VCDClient) GetAllSegmentSecurityProfiles

func (vcdClient *VCDClient) GetAllSegmentSecurityProfiles(queryParameters url.Values) ([]*types.NsxtSegmentProfileSegmentSecurity, error)

GetAllSegmentSecurityProfiles retrieves all Segment Security Profiles configured in an NSX-T manager. NSX-T manager ID (nsxTManagerRef.id), Org VDC ID (orgVdcId) or VDC Group ID (vdcGroupId) must be supplied as a filter. Results can also be filtered by a single profile ID (filter=nsxTManagerRef.id==nsxTManagerUrn;id==profileId).

func (*VCDClient) GetAllSolutionAddonInstances

func (vcdClient *VCDClient) GetAllSolutionAddonInstances(queryParameters url.Values) ([]*SolutionAddOnInstance, error)

GetAllSolutionAddonInstances will retrieve Solution Add-On Instances based on given query parameters

func (*VCDClient) GetAllSolutionAddonInstancesByName

func (vcdClient *VCDClient) GetAllSolutionAddonInstancesByName(name string) ([]*SolutionAddOnInstance, error)

GetAllSolutionAddonInstancesByName will retrieve all Solution Add-On Instances available

func (*VCDClient) GetAllSolutionAddons

func (vcdClient *VCDClient) GetAllSolutionAddons(queryParameters url.Values) ([]*SolutionAddOn, error)

GetAllSolutionAddons retrieves all Solution Add-Ons with a given filter

func (*VCDClient) GetAllSolutionLandingZones

func (vcdClient *VCDClient) GetAllSolutionLandingZones(queryParameters url.Values) ([]*SolutionLandingZone, error)

GetAllSolutionLandingZones retrieves all Solution Landing Zones

Note: Up to VCD 10.5.1.1 there can be only a single RDE entry (one SLZ per VCD)

func (*VCDClient) GetAllSpoofGuardProfiles

func (vcdClient *VCDClient) GetAllSpoofGuardProfiles(queryParameters url.Values) ([]*types.NsxtSegmentProfileSegmentSpoofGuard, error)

GetAllSpoofGuardProfiles retrieves all Spoof Guard Profiles configured in an NSX-T manager. NSX-T manager ID (nsxTManagerRef.id), Org VDC ID (orgVdcId) or VDC Group ID (vdcGroupId) must be supplied as a filter. Results can also be filtered by a single profile ID (filter=nsxTManagerRef.id==nsxTManagerUrn;id==profileId).

func (*VCDClient) GetAllStorageClasses

func (vcdClient *VCDClient) GetAllStorageClasses(queryParameters url.Values) ([]*StorageClass, error)

GetAllStorageClasses retrieves all Storage Classes with the given query parameters, which allow setting filters and other constraints

func (*VCDClient) GetAllSupervisors

func (vcdClient *VCDClient) GetAllSupervisors(queryParameters url.Values) ([]*Supervisor, error)

GetAllSupervisors retrieves all available Supervisors

func (*VCDClient) GetAllTier0RouterInterfaces

func (vcdClient *VCDClient) GetAllTier0RouterInterfaces(externalNetworkId string, queryParameters url.Values) ([]*types.NsxtTier0RouterInterface, error)

GetAllTier0RouterInterfaces returns all Provider Gateway (aka Tier0 Router) associated interfaces

func (*VCDClient) GetAllTmEdgeClusters

func (vcdClient *VCDClient) GetAllTmEdgeClusters(queryParameters url.Values) ([]*TmEdgeCluster, error)

GetAllTmEdgeClusters retrieves all TM Edge Clusters with an optional filter

func (*VCDClient) GetAllTmIpSpaceAssociations

func (vcdClient *VCDClient) GetAllTmIpSpaceAssociations(queryParameters url.Values) ([]*TmIpSpaceAssociation, error)

GetAllTmIpSpaceAssociations retrieves all TM IP Space and Provider Gateway associations

func (*VCDClient) GetAllTmIpSpaceAssociationsByIpSpaceId

func (vcdClient *VCDClient) GetAllTmIpSpaceAssociationsByIpSpaceId(ipSpaceId string) ([]*TmIpSpaceAssociation, error)

GetAllTmIpSpaceAssociationsByIpSpaceId retrieves all associations for a given IP Space ID

func (*VCDClient) GetAllTmIpSpaceAssociationsByProviderGatewayId

func (vcdClient *VCDClient) GetAllTmIpSpaceAssociationsByProviderGatewayId(providerGatewayId string) ([]*TmIpSpaceAssociation, error)

GetAllTmIpSpaceAssociationsByProviderGatewayId retrieves all IP Space associations to a particulat Provider Gateway

func (*VCDClient) GetAllTmIpSpaces

func (vcdClient *VCDClient) GetAllTmIpSpaces(queryParameters url.Values) ([]*TmIpSpace, error)

GetAllTmIpSpaces fetches all TM IP Spaces with an optional query filter

func (*VCDClient) GetAllTmOrgs

func (vcdClient *VCDClient) GetAllTmOrgs(queryParameters url.Values) ([]*TmOrg, error)

GetAllTmOrgs retrieves all TM Organization with an optional query filter

func (*VCDClient) GetAllTmProviderGateways

func (vcdClient *VCDClient) GetAllTmProviderGateways(queryParameters url.Values) ([]*TmProviderGateway, error)

GetAllTmProviderGateways retrieves all Provider Gateways with optional filter

func (*VCDClient) GetAllTmRegionalNetworkingSettings

func (vcdClient *VCDClient) GetAllTmRegionalNetworkingSettings(queryParameters url.Values) ([]*TmRegionalNetworkingSetting, error)

GetAllTmRegionalNetworkingSettings retrieves all Regional Networking Settings with an optional filter

func (*VCDClient) GetAllTmTier0GatewaysWithContext

func (vcdClient *VCDClient) GetAllTmTier0GatewaysWithContext(contextEntity string, listImported bool) ([]*TmTier0Gateway, error)

func (*VCDClient) GetAllTokens

func (vcdClient *VCDClient) GetAllTokens(queryParameters url.Values) ([]*Token, error)

GetAllTokens gets all tokens with the specified query parameters

func (*VCDClient) GetAllTrustedCertificates

func (vcdClient *VCDClient) GetAllTrustedCertificates(queryParameters url.Values, ctx *TenantContext) ([]*TrustedCertificate, error)

GetAllTrustedCertificates retrieves all trusted certificates with optional query filter with the given tenant context. If tenant context is nil, it assumes that the certificates to get are stored in System org.

func (*VCDClient) GetAllUIPlugins

func (vcdClient *VCDClient) GetAllUIPlugins() ([]*UIPlugin, error)

GetAllUIPlugins retrieves a slice with all the available UIPlugin objects present in VCD.

func (*VCDClient) GetAllUsers

func (vcdClient *VCDClient) GetAllUsers(queryParameters url.Values, ctx *TenantContext) ([]*OpenApiUser, error)

GetAllUsers retrieves all Users with an optional filter

func (*VCDClient) GetAllVCenters

func (vcdClient *VCDClient) GetAllVCenters(queryParams url.Values) ([]*VCenter, error)

GetAllVCenters retrieves all vCenter servers based on optional query filtering

func (*VCDClient) GetAllVcenterDistributedSwitches

func (vcdClient *VCDClient) GetAllVcenterDistributedSwitches(vCenterId string, queryParameters url.Values) ([]*types.VcenterDistributedSwitch, error)

func (*VCDClient) GetAllVcenterImportableDvpgs

func (vcdClient *VCDClient) GetAllVcenterImportableDvpgs(queryParameters url.Values) ([]*VcenterImportableDvpg, error)

GetAllVcenterImportableDvpgs retrieves all DVPGs that are available for import.

Note. API returns only unused DVPGs. If the DVPG is already consumed - it will not be returned.

func (*VCDClient) GetAllVdcComputePoliciesV2

func (client *VCDClient) GetAllVdcComputePoliciesV2(queryParameters url.Values) ([]*VdcComputePolicyV2, error)

GetAllVdcComputePoliciesV2 retrieves all VDC Compute Policies (V2) using OpenAPI endpoint. Query parameters can be supplied to perform additional filtering

func (*VCDClient) GetAllVgpuProfiles

func (client *VCDClient) GetAllVgpuProfiles(queryParameters url.Values) ([]*VgpuProfile, error)

GetAllVgpuProfiles gets all vGPU profiles that are available to VCD

func (*VCDClient) GetAllZones

func (vcdClient *VCDClient) GetAllZones(queryParameters url.Values) ([]*Zone, error)

GetAllZones retrieves all Region Zones

func (*VCDClient) GetApiFilterById

func (vcdClient *VCDClient) GetApiFilterById(id string) (*ApiFilter, error)

GetApiFilterById gets an API Filter by its ID.

func (*VCDClient) GetAuthResponse

func (vcdClient *VCDClient) GetAuthResponse(username, password, org string) (*http.Response, error)

GetAuthResponse performs authentication and returns the full HTTP response The purpose of this function is to preserve information that is useful for token-based authentication

func (*VCDClient) GetBearerTokenFromApiToken

func (vcdClient *VCDClient) GetBearerTokenFromApiToken(org, token string) (*types.ApiTokenRefresh, error)

GetBearerTokenFromApiToken uses an API token to retrieve a bearer token using the refresh token operation.

func (*VCDClient) GetContentLibraryById

func (vcdClient *VCDClient) GetContentLibraryById(id string, ctx *TenantContext) (*ContentLibrary, error)

GetContentLibraryById retrieves a Content Library with the given ID

func (*VCDClient) GetContentLibraryByName

func (vcdClient *VCDClient) GetContentLibraryByName(name string, ctx *TenantContext) (*ContentLibrary, error)

GetContentLibraryByName retrieves a Content Library with the given name. Tenant context can be nil, or can be used to retrieve the Content Library as a tenant.

func (*VCDClient) GetContentLibraryItemById

func (vcdClient *VCDClient) GetContentLibraryItemById(id string) (*ContentLibraryItem, error)

GetContentLibraryItemById retrieves a Content Library Item with the given ID

func (*VCDClient) GetDataSolutionById

func (vcdClient *VCDClient) GetDataSolutionById(id string) (*DataSolution, error)

GetDataSolutionById retrieves Data Solution by ID

func (*VCDClient) GetDataSolutionByName

func (vcdClient *VCDClient) GetDataSolutionByName(name string) (*DataSolution, error)

GetDataSolutionByName retrieves Data Solution by Name

func (*VCDClient) GetDefinedInterface

func (vcdClient *VCDClient) GetDefinedInterface(vendor, nss, version string) (*DefinedInterface, error)

GetDefinedInterface retrieves a single Defined Interface defined by its unique combination of vendor, nss and version.

func (*VCDClient) GetDefinedInterfaceById

func (vcdClient *VCDClient) GetDefinedInterfaceById(id string) (*DefinedInterface, error)

GetDefinedInterfaceById gets a Defined Interface identified by its unique URN.

func (*VCDClient) GetExactlyOneSolutionLandingZone

func (vcdClient *VCDClient) GetExactlyOneSolutionLandingZone() (*SolutionLandingZone, error)

GetExactlyOneSolutionLandingZone will get single Solution Landing Zone RDE or fail. There can be only one Solution Landing Zone in VCD, but because it is backed by RDE - it can occur that due to some error there is more than one RDE Entity

func (*VCDClient) GetExtendedSessionInfo

func (vcdClient *VCDClient) GetExtendedSessionInfo() (*ExtendedSessionInfo, error)

GetExtendedSessionInfo collects extended session information for support and debugging It will try to collect as much data as possible, failing only if the minimum data can't be collected.

func (*VCDClient) GetExternalEndpoint

func (vcdClient *VCDClient) GetExternalEndpoint(vendor, name, version string) (*ExternalEndpoint, error)

GetExternalEndpoint gets an External Endpoint by its unique combination of vendor, name and version.

func (*VCDClient) GetExternalEndpointById

func (vcdClient *VCDClient) GetExternalEndpointById(id string) (*ExternalEndpoint, error)

GetExternalEndpointById gets an External Endpoint by its ID.

func (*VCDClient) GetExternalNetworkById

func (vcdClient *VCDClient) GetExternalNetworkById(id string) (*ExternalNetwork, error)

GetExternalNetworkById returns an ExternalNetwork reference if the network ID matches an existing one. If no valid external network is found, it returns a nil ExternalNetwork reference and an error

func (*VCDClient) GetExternalNetworkByName

func (vcdClient *VCDClient) GetExternalNetworkByName(networkName string) (*ExternalNetwork, error)

GetExternalNetworkByName returns an ExternalNetwork reference if the network name matches an existing one. If no valid external network is found, it returns a nil ExternalNetwork reference and an error

func (*VCDClient) GetExternalNetworkByNameOrId

func (vcdClient *VCDClient) GetExternalNetworkByNameOrId(identifier string) (*ExternalNetwork, error)

GetExternalNetworkByNameOrId returns an ExternalNetwork reference if either the network name or ID matches an existing one. If no valid external network is found, it returns a nil ExternalNetwork reference and an error

func (*VCDClient) GetExternalNetworks

func (vcdClient *VCDClient) GetExternalNetworks() (*types.ExternalNetworkReferences, error)

GetExternalNetworks returns a list of available external networks

func (*VCDClient) GetFeatureFlagById

func (vcdClient *VCDClient) GetFeatureFlagById(featureFlagId string) (*types.FeatureFlag, error)

GetFeatureFlagById returns a feature flag by ID. Sample ID - 'urn:vcloud:featureflag:CLASSIC_TENANT_CREATION'

func (*VCDClient) GetFilteredAlbServiceEngineGroupAssignmentByName

func (vcdClient *VCDClient) GetFilteredAlbServiceEngineGroupAssignmentByName(name string, queryParameters url.Values) (*NsxtAlbServiceEngineGroupAssignment, error)

GetFilteredAlbServiceEngineGroupAssignmentByName will get all ALB Service Engine Group assignments based on filters provided in queryParameters additionally will filter by name locally because VCD does not support server side filtering by name.

func (*VCDClient) GetFilteredNsxtImportableSwitches

func (vcdClient *VCDClient) GetFilteredNsxtImportableSwitches(filter map[string]string) ([]*NsxtImportableSwitch, error)

GetFilteredNsxtImportableSwitches returns all available importable switches. One of the filters below is required (using plain UUID - not URN): * orgVdc * nsxTManager (only in VCD 10.3.0+)

Note. OpenAPI endpoint does not exist for this resource and by default endpoint "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not already consumed in Org VDC networks) and there is no way to get them all.

func (*VCDClient) GetFilteredNsxtImportableSwitchesByName

func (vcdClient *VCDClient) GetFilteredNsxtImportableSwitchesByName(filter map[string]string, name string) (*NsxtImportableSwitch, error)

GetFilteredNsxtImportableSwitchesByName builds on top of GetFilteredNsxtImportableSwitches and additionally performs client side filtering by Name

func (*VCDClient) GetGlobalDefaultSegmentProfileTemplates

func (vcdClient *VCDClient) GetGlobalDefaultSegmentProfileTemplates() (*types.NsxtGlobalDefaultSegmentProfileTemplate, error)

GetGlobalDefaultSegmentProfileTemplates retrieves VCD global configuration for Segment Profile Templates

func (*VCDClient) GetImportableNsxtTier0RouterByName

func (vcdClient *VCDClient) GetImportableNsxtTier0RouterByName(name, nsxtManagerId string) (*NsxtTier0Router, error)

func (*VCDClient) GetIpDiscoveryProfileByName

func (vcdClient *VCDClient) GetIpDiscoveryProfileByName(name string, queryParameters url.Values) (*types.NsxtSegmentProfileIpDiscovery, error)

func (*VCDClient) GetIpSpaceById

func (vcdClient *VCDClient) GetIpSpaceById(id string) (*IpSpace, error)

func (*VCDClient) GetIpSpaceByName

func (vcdClient *VCDClient) GetIpSpaceByName(name string) (*IpSpace, error)

GetIpSpaceByName retrieves IP Space with a given name Note. It will return an error if multiple IP Spaces exist with the same name

func (*VCDClient) GetIpSpaceByNameAndOrgId

func (vcdClient *VCDClient) GetIpSpaceByNameAndOrgId(name, orgId string) (*IpSpace, error)

GetIpSpaceByNameAndOrgId retrieves IP Space with a given name in a particular Org Note. Only PRIVATE IP spaces belong to Orgs

func (*VCDClient) GetIpSpaceUplinkById

func (vcdClient *VCDClient) GetIpSpaceUplinkById(id string) (*IpSpaceUplink, error)

GetIpSpaceUplinkById retrieves IP Space Uplink with a given ID

func (*VCDClient) GetIpSpaceUplinkByName

func (vcdClient *VCDClient) GetIpSpaceUplinkByName(externalNetworkId, name string) (*IpSpaceUplink, error)

GetIpSpaceUplinkByName retrieves a single IP Space Uplink by Name in a given External Network

func (*VCDClient) GetLogicalVmGroupById

func (vcdClient *VCDClient) GetLogicalVmGroupById(logicalVmGroupId string) (*LogicalVmGroup, error)

GetLogicalVmGroupById finds a Logical VM Group by its URN. On success, returns a pointer to the LogicalVmGroup structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetMacDiscoveryProfileByName

func (vcdClient *VCDClient) GetMacDiscoveryProfileByName(name string, queryParameters url.Values) (*types.NsxtSegmentProfileMacDiscovery, error)

func (*VCDClient) GetMetadataByHref

func (vcdClient *VCDClient) GetMetadataByHref(href string) (*types.Metadata, error)

GetMetadataByHref returns metadata from the given resource reference.

func (*VCDClient) GetMetadataByKeyAndHref

func (vcdClient *VCDClient) GetMetadataByKeyAndHref(href, key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKeyAndHref returns metadata from the given resource reference, corresponding to the given key and domain.

func (*VCDClient) GetNetworkPoolById

func (vcdClient *VCDClient) GetNetworkPoolById(id string) (*NetworkPool, error)

GetNetworkPoolById retrieves Network Pool with a given ID

func (*VCDClient) GetNetworkPoolByName

func (vcdClient *VCDClient) GetNetworkPoolByName(name string) (*NetworkPool, error)

GetNetworkPoolByName retrieves a network pool with a given name Note. It will return an error if multiple network pools exist with the same name

func (*VCDClient) GetNetworkPoolSummaries

func (vcdClient *VCDClient) GetNetworkPoolSummaries(queryParameters url.Values) ([]*types.NetworkPool, error)

GetNetworkPoolSummaries retrieves the list of all available network pools

func (*VCDClient) GetNsxtEdgeGatewayQosProfileByDisplayName

func (vcdClient *VCDClient) GetNsxtEdgeGatewayQosProfileByDisplayName(nsxtManagerId, displayName string) (*NsxtEdgeGatewayQosProfile, error)

GetNsxtEdgeGatewayQosProfileById retrieves NSX-T Edge Gateway QoS Profile by Display Name

func (*VCDClient) GetNsxtManagerByName

func (vcdClient *VCDClient) GetNsxtManagerByName(name string) (*NsxtManager, error)

GetNsxtManagerByName searches for NSX-T managers available in VCD and returns the one that matches name

func (*VCDClient) GetNsxtManagerOpenApiById

func (vcdClient *VCDClient) GetNsxtManagerOpenApiById(id string) (*NsxtManagerOpenApi, error)

GetNsxtManagerOpenApiById retrieves NSX-T Manager by ID

func (*VCDClient) GetNsxtManagerOpenApiByName

func (vcdClient *VCDClient) GetNsxtManagerOpenApiByName(name string) (*NsxtManagerOpenApi, error)

GetNsxtManagerOpenApiByName retrieves NSX-T Manager by name

func (*VCDClient) GetNsxtManagerOpenApiByUrl

func (vcdClient *VCDClient) GetNsxtManagerOpenApiByUrl(nsxtManagerUrl string) (*NsxtManagerOpenApi, error)

GetNsxtManagerOpenApiByName retrieves NSX-T Manager by name

func (*VCDClient) GetOrgById

func (vcdClient *VCDClient) GetOrgById(orgId string) (*Org, error)

GetOrgById finds an Organization by ID On success, returns a pointer to the Org structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetOrgByName

func (vcdClient *VCDClient) GetOrgByName(orgName string) (*Org, error)

GetOrgByName finds an Organization by name On success, returns a pointer to the Org structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetOrgByNameOrId

func (vcdClient *VCDClient) GetOrgByNameOrId(identifier string) (*Org, error)

GetOrgByNameOrId finds an Organization by name or ID On success, returns a pointer to the Org structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetOrgList

func (vcdClient *VCDClient) GetOrgList() (*types.OrgList, error)

GetOrgList returns the list ov available orgs

func (*VCDClient) GetProviderVdcByHref

func (vcdClient *VCDClient) GetProviderVdcByHref(providerVdcHref string) (*ProviderVdc, error)

GetProviderVdcByHref finds a Provider VDC by its HREF. On success, returns a pointer to the ProviderVdc structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetProviderVdcById

func (vcdClient *VCDClient) GetProviderVdcById(providerVdcId string) (*ProviderVdc, error)

GetProviderVdcById finds a Provider VDC by URN. On success, returns a pointer to the ProviderVdc structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetProviderVdcByName

func (vcdClient *VCDClient) GetProviderVdcByName(providerVdcName string) (*ProviderVdc, error)

GetProviderVdcByName finds a Provider VDC by name. On success, returns a pointer to the ProviderVdc structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetProviderVdcExtendedByHref

func (vcdClient *VCDClient) GetProviderVdcExtendedByHref(providerVdcHref string) (*ProviderVdcExtended, error)

GetProviderVdcExtendedByHref finds a Provider VDC with extended attributes by its HREF. On success, returns a pointer to the ProviderVdcExtended structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetProviderVdcExtendedById

func (vcdClient *VCDClient) GetProviderVdcExtendedById(providerVdcId string) (*ProviderVdcExtended, error)

GetProviderVdcExtendedById finds a Provider VDC with extended attributes by URN. On success, returns a pointer to the ProviderVdcExtended structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetProviderVdcExtendedByName

func (vcdClient *VCDClient) GetProviderVdcExtendedByName(providerVdcName string) (*ProviderVdcExtended, error)

GetProviderVdcExtendedByName finds a Provider VDC with extended attributes by name. On success, returns a pointer to the ProviderVdcExtended structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetQoSProfileByName

func (vcdClient *VCDClient) GetQoSProfileByName(name string, queryParameters url.Values) (*types.NsxtSegmentProfileSegmentQosProfile, error)

func (*VCDClient) GetRdeById

func (vcdClient *VCDClient) GetRdeById(id string) (*DefinedEntity, error)

GetRdeById gets a Runtime Defined Entity by its ID. Getting a RDE by ID populates the ETag field in the returned object.

func (*VCDClient) GetRdeType

func (vcdClient *VCDClient) GetRdeType(vendor, nss, version string) (*DefinedEntityType, error)

GetRdeType gets a Runtime Defined Entity Type by its unique combination of vendor, nss and version.

func (*VCDClient) GetRdeTypeById

func (vcdClient *VCDClient) GetRdeTypeById(id string) (*DefinedEntityType, error)

GetRdeTypeById gets a Runtime Defined Entity Type by its ID.

func (*VCDClient) GetRdesByName

func (vcdClient *VCDClient) GetRdesByName(vendor, nss, version, name string) ([]*DefinedEntity, error)

GetRdesByName gets RDE instances with the given name and the given vendor, nss and version. VCD allows to have many RDEs with the same name, hence this function returns a slice.

func (*VCDClient) GetRegionById

func (vcdClient *VCDClient) GetRegionById(id string) (*Region, error)

GetRegionById retrieves a region by ID

func (*VCDClient) GetRegionByName

func (vcdClient *VCDClient) GetRegionByName(name string) (*Region, error)

GetRegionByName retrieves a region by name

func (*VCDClient) GetRegionQuotaById

func (vcdClient *VCDClient) GetRegionQuotaById(id string) (*RegionQuota, error)

GetRegionQuotaById retrieves a Region Quota by a given ID

func (*VCDClient) GetRegionQuotaByName

func (vcdClient *VCDClient) GetRegionQuotaByName(name string) (*RegionQuota, error)

GetRegionQuotaByName retrieves a Region Quota by a given name

func (*VCDClient) GetRegionQuotaByNameAndOrgId

func (vcdClient *VCDClient) GetRegionQuotaByNameAndOrgId(name, orgId string) (*RegionQuota, error)

GetRegionQuotaByNameAndOrgId retrieves a Region Quota by Name and Org ID

func (*VCDClient) GetRegionQuotaStoragePolicyById

func (vcdClient *VCDClient) GetRegionQuotaStoragePolicyById(id string) (*RegionQuotaStoragePolicy, error)

GetRegionQuotaStoragePolicyById retrieves a Region Quota Storage Policy by a given ID

func (*VCDClient) GetRegionStoragePolicyById

func (vcdClient *VCDClient) GetRegionStoragePolicyById(id string) (*RegionStoragePolicy, error)

GetRegionStoragePolicyById retrieves a Region Storage Policy by ID

func (*VCDClient) GetRegionStoragePolicyByName

func (vcdClient *VCDClient) GetRegionStoragePolicyByName(name string) (*RegionStoragePolicy, error)

GetRegionStoragePolicyByName retrieves a Region Storage Policy by name

func (*VCDClient) GetRegionVirtualMachineClassById

func (vcdClient *VCDClient) GetRegionVirtualMachineClassById(id string) (*RegionVirtualMachineClass, error)

GetRegionVirtualMachineClassById retrieves a Region VM Class by a given ID

func (*VCDClient) GetRegionVirtualMachineClassByNameAndRegionId

func (vcdClient *VCDClient) GetRegionVirtualMachineClassByNameAndRegionId(name, regionId string) (*RegionVirtualMachineClass, error)

GetRegionVirtualMachineClassByNameAndRegionId retrieves a Region VM Class by a given name and Region ID

func (*VCDClient) GetSegmentProfileTemplateById

func (vcdClient *VCDClient) GetSegmentProfileTemplateById(id string) (*NsxtSegmentProfileTemplate, error)

GetSegmentProfileTemplateById retrieves Segment Profile Template by ID

func (*VCDClient) GetSegmentProfileTemplateByName

func (vcdClient *VCDClient) GetSegmentProfileTemplateByName(name string) (*NsxtSegmentProfileTemplate, error)

GetSegmentProfileTemplateByName retrieves Segment Profile Template by ID

func (*VCDClient) GetSegmentSecurityProfileByName

func (vcdClient *VCDClient) GetSegmentSecurityProfileByName(name string, queryParameters url.Values) (*types.NsxtSegmentProfileSegmentSecurity, error)

func (*VCDClient) GetSolutionAddOnInstanceById

func (vcdClient *VCDClient) GetSolutionAddOnInstanceById(id string) (*SolutionAddOnInstance, error)

GetSolutionAddOnInstanceById retrieves a Solution Add-On Instance with a given ID

func (*VCDClient) GetSolutionAddonById

func (vcdClient *VCDClient) GetSolutionAddonById(id string) (*SolutionAddOn, error)

GetSolutionAddonById retrieves Solution Add-On by ID

func (*VCDClient) GetSolutionAddonByName

func (vcdClient *VCDClient) GetSolutionAddonByName(name string) (*SolutionAddOn, error)

GetSolutionAddonByName retrieves Solution Add-Ons by name Example name: "vmware.ds-1.4.0-23376809"

func (*VCDClient) GetSolutionAddonInstanceByName

func (vcdClient *VCDClient) GetSolutionAddonInstanceByName(name string) (*SolutionAddOnInstance, error)

GetSolutionAddonInstanceByName will retrieve a single Solution Add-On Instance by name or fail

func (*VCDClient) GetSolutionLandingZoneById

func (vcdClient *VCDClient) GetSolutionLandingZoneById(id string) (*SolutionLandingZone, error)

GetSolutionLandingZoneById retrieves Solution Landing Zone by ID

Note: defined entity ID must be used that can be accessed either by `SolutionLandingZone.Id()` method or directly in `SolutionLandingZone.DefinedEntity.DefinedEntity.ID` field

func (*VCDClient) GetSpoofGuardProfileByName

func (vcdClient *VCDClient) GetSpoofGuardProfileByName(name string, queryParameters url.Values) (*types.NsxtSegmentProfileSegmentSpoofGuard, error)

func (*VCDClient) GetStorageClassById

func (vcdClient *VCDClient) GetStorageClassById(id string) (*StorageClass, error)

GetStorageClassById retrieves a Storage Class by ID

func (*VCDClient) GetStorageClassByName

func (vcdClient *VCDClient) GetStorageClassByName(name string) (*StorageClass, error)

GetStorageClassByName retrieves a Storage Class by name

func (*VCDClient) GetStorageProfileByHref

func (vcdClient *VCDClient) GetStorageProfileByHref(url string) (*types.VdcStorageProfile, error)

GetStorageProfileByHref fetches a storage profile using its HREF.

func (*VCDClient) GetStorageProfileById

func (vcdClient *VCDClient) GetStorageProfileById(id string) (*types.VdcStorageProfile, error)

GetStorageProfileById fetches a storage profile using its ID.

func (*VCDClient) GetSupervisorById

func (vcdClient *VCDClient) GetSupervisorById(id string) (*Supervisor, error)

GetSupervisorById retrieves supervisor by ID

func (*VCDClient) GetSupervisorByName

func (vcdClient *VCDClient) GetSupervisorByName(name string) (*Supervisor, error)

GetSupervisorByName retrieves Supervisor by name

func (*VCDClient) GetSupervisorByNameAndVcenterId

func (vcdClient *VCDClient) GetSupervisorByNameAndVcenterId(supervisorName, vCenterId string) (*Supervisor, error)

GetSupervisorByNameAndVcenterId retrieves Supervisor by name and a required vCenter ID

func (*VCDClient) GetTier0RouterInterfaceByName

func (vcdClient *VCDClient) GetTier0RouterInterfaceByName(externalNetworkId, displayName string) (*types.NsxtTier0RouterInterface, error)

GetTier0RouterInterfaceByName retrieves a Provider Gateway (aka Tier0 Router) associated interface by Name in a given External Network

func (*VCDClient) GetTmEdgeClusterById

func (vcdClient *VCDClient) GetTmEdgeClusterById(id string) (*TmEdgeCluster, error)

GetTmEdgeClusterById retrieves TM Edge Cluster by ID

func (*VCDClient) GetTmEdgeClusterByName

func (vcdClient *VCDClient) GetTmEdgeClusterByName(name string) (*TmEdgeCluster, error)

GetTmEdgeClusterByName retrieves TM Edge Cluster by Name

func (*VCDClient) GetTmEdgeClusterByNameAndRegionId

func (vcdClient *VCDClient) GetTmEdgeClusterByNameAndRegionId(name, regionId string) (*TmEdgeCluster, error)

GetTmEdgeClusterByNameAndRegionId retrieves TM Edge Cluster by Name and a Region ID

func (*VCDClient) GetTmIpSpaceAssociationById

func (vcdClient *VCDClient) GetTmIpSpaceAssociationById(id string) (*TmIpSpaceAssociation, error)

GetTmIpSpaceAssociationById retrieves a single IP Spaces and Provider Gateway association by ID

func (*VCDClient) GetTmIpSpaceById

func (vcdClient *VCDClient) GetTmIpSpaceById(id string) (*TmIpSpace, error)

GetTmIpSpaceById retrieves an exact IP Space with a given ID

func (*VCDClient) GetTmIpSpaceByName

func (vcdClient *VCDClient) GetTmIpSpaceByName(name string) (*TmIpSpace, error)

GetTmIpSpaceByName retrieves TM IP Spaces with a given name

func (*VCDClient) GetTmIpSpaceByNameAndRegionId

func (vcdClient *VCDClient) GetTmIpSpaceByNameAndRegionId(name, regionId string) (*TmIpSpace, error)

GetTmIpSpaceByNameAndRegionId retrieves TM IP Spaces with a given name in a provided Region

func (*VCDClient) GetTmOrgById

func (vcdClient *VCDClient) GetTmOrgById(id string) (*TmOrg, error)

GetTmOrgById retrieves TM Organization by ID

func (*VCDClient) GetTmOrgByName

func (vcdClient *VCDClient) GetTmOrgByName(name string) (*TmOrg, error)

GetTmOrgByName retrieves TM Organization by name

func (*VCDClient) GetTmProviderGatewayById

func (vcdClient *VCDClient) GetTmProviderGatewayById(id string) (*TmProviderGateway, error)

GetTmProviderGatewayById retrieves a given Provider Gateway by ID

func (*VCDClient) GetTmProviderGatewayByName

func (vcdClient *VCDClient) GetTmProviderGatewayByName(name string) (*TmProviderGateway, error)

GetTmProviderGatewayByName retrieves Provider Gateway by Name

func (*VCDClient) GetTmProviderGatewayByNameAndRegionId

func (vcdClient *VCDClient) GetTmProviderGatewayByNameAndRegionId(name, regionId string) (*TmProviderGateway, error)

GetTmProviderGatewayByNameAndRegionId retrieves Provider Gateway by name in a given Region

func (*VCDClient) GetTmRegionalNetworkingSettingById

func (vcdClient *VCDClient) GetTmRegionalNetworkingSettingById(id string) (*TmRegionalNetworkingSetting, error)

GetTmRegionalNetworkingSettingById retrieves Regional Networking Setting by ID

func (*VCDClient) GetTmRegionalNetworkingSettingByName

func (vcdClient *VCDClient) GetTmRegionalNetworkingSettingByName(name string) (*TmRegionalNetworkingSetting, error)

GetTmRegionalNetworkingSettingByName retrieves Regional Networking Setting by Name

func (*VCDClient) GetTmRegionalNetworkingSettingByNameAndOrgId

func (vcdClient *VCDClient) GetTmRegionalNetworkingSettingByNameAndOrgId(name, orgId string) (*TmRegionalNetworkingSetting, error)

GetTmRegionalNetworkingSettingByNameAndOrgId retrieves Regional Networking Setting by Name and Org ID

func (*VCDClient) GetTmRegionalNetworkingSettingByNameAndRegionId

func (vcdClient *VCDClient) GetTmRegionalNetworkingSettingByNameAndRegionId(name, regionId string) (*TmRegionalNetworkingSetting, error)

GetTmRegionalNetworkingSettingByNameAndOrgId retrieves Regional Networking Setting by Name and Region ID

func (*VCDClient) GetTmTier0GatewayWithContextByName

func (vcdClient *VCDClient) GetTmTier0GatewayWithContextByName(displayName, contextEntity string, listImported bool) (*TmTier0Gateway, error)

func (*VCDClient) GetTokenById

func (vcdClient *VCDClient) GetTokenById(tokenId string) (*Token, error)

GetTokenById retrieves a Token by ID

func (*VCDClient) GetTokenByNameAndUsername

func (vcdClient *VCDClient) GetTokenByNameAndUsername(tokenName, userName string) (*Token, error)

GetTokenByNameAndUsername retrieves a Token by name and username

func (*VCDClient) GetTrustedCertificateByAlias

func (vcdClient *VCDClient) GetTrustedCertificateByAlias(alias string, ctx *TenantContext) (*TrustedCertificate, error)

GetTrustedCertificateByAlias retrieves trusted certificate by alias

func (*VCDClient) GetTrustedCertificateById

func (vcdClient *VCDClient) GetTrustedCertificateById(id string, ctx *TenantContext) (*TrustedCertificate, error)

GetTrustedCertificateById retrieves trusted certificate by ID

func (*VCDClient) GetUIPlugin

func (vcdClient *VCDClient) GetUIPlugin(vendor, pluginName, version string) (*UIPlugin, error)

GetUIPlugin obtains a unique UIPlugin identified by the combination of its vendor, plugin name and version.

func (*VCDClient) GetUIPluginById

func (vcdClient *VCDClient) GetUIPluginById(id string) (*UIPlugin, error)

GetUIPluginById obtains a unique UIPlugin identified by its URN.

func (*VCDClient) GetUserById

func (vcdClient *VCDClient) GetUserById(id string, ctx *TenantContext) (*OpenApiUser, error)

GetUserById retrieves User by ID

func (*VCDClient) GetUserByName

func (vcdClient *VCDClient) GetUserByName(username string, ctx *TenantContext) (*OpenApiUser, error)

GetUserByName retrieves User by Name

func (*VCDClient) GetVAppTemplateByHref

func (vcdClient *VCDClient) GetVAppTemplateByHref(href string) (*VAppTemplate, error)

GetVAppTemplateByHref finds a vApp template by HREF On success, returns a pointer to the vApp template structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetVAppTemplateById

func (vcdClient *VCDClient) GetVAppTemplateById(vAppTemplateId string) (*VAppTemplate, error)

GetVAppTemplateById finds a vApp Template by ID. On success, returns a pointer to the VAppTemplate structure and a nil error. On failure, returns a nil pointer and an error.

func (*VCDClient) GetVCenterById

func (vcdClient *VCDClient) GetVCenterById(id string) (*VCenter, error)

GetVCenterById retrieves vCenter server by ID

func (*VCDClient) GetVCenterByName

func (vcdClient *VCDClient) GetVCenterByName(name string) (*VCenter, error)

GetVCenterByName retrieves vCenter server by name

func (*VCDClient) GetVCenterByUrl

func (vcdClient *VCDClient) GetVCenterByUrl(vcUrl string) (*VCenter, error)

GetVCenterByUrl looks up if there is an existing vCenter added with a given URL

func (*VCDClient) GetVcenterImportableDvpgByName

func (vcdClient *VCDClient) GetVcenterImportableDvpgByName(name string) (*VcenterImportableDvpg, error)

GetVcenterImportableDvpgByName retrieves a DVPG by name

Note. API returns only unused DVPGs. If the DVPG is already consumed - it will not be returned.

func (*VCDClient) GetVdcComputePolicyV2ById

func (client *VCDClient) GetVdcComputePolicyV2ById(id string) (*VdcComputePolicyV2, error)

GetVdcComputePolicyV2ById retrieves VDC Compute Policy (V2) by given ID

func (*VCDClient) GetVdcTemplateById

func (vcdClient *VCDClient) GetVdcTemplateById(id string) (*VdcTemplate, error)

GetVdcTemplateById retrieves the VDC Template with the given ID

func (*VCDClient) GetVdcTemplateByName

func (vcdClient *VCDClient) GetVdcTemplateByName(name string) (*VdcTemplate, error)

GetVdcTemplateByName retrieves the VDC Template with the given name. NOTE: System administrators must use the name as seen by System administrators (VMWVdcTemplate.Name), while Tenants must use the name as seen by tenants (VMWVdcTemplate.TenantName)

func (*VCDClient) GetVgpuProfileById

func (client *VCDClient) GetVgpuProfileById(vgpuProfileId string) (*VgpuProfile, error)

GetVgpuProfileById gets a vGPU profile by ID

func (*VCDClient) GetVgpuProfileByName

func (client *VCDClient) GetVgpuProfileByName(vgpuProfileName string) (*VgpuProfile, error)

GetVgpuProfileByName gets a vGPU profile by name

func (*VCDClient) GetVgpuProfileByTenantFacingName

func (client *VCDClient) GetVgpuProfileByTenantFacingName(tenantFacingName string) (*VgpuProfile, error)

GetVgpuProfileByTenantFacingName gets a vGPU profile by its tenant facing name

func (*VCDClient) GetVgpuProfilesByProviderVdc

func (client *VCDClient) GetVgpuProfilesByProviderVdc(providerVdcUrn string) ([]*VgpuProfile, error)

GetVgpuProfilesByProviderVdc gets all vGPU profiles that are available to a specific provider VDC

func (*VCDClient) GetVmClassesFromRegionQuota

func (o *VCDClient) GetVmClassesFromRegionQuota(regionQuotaId string) (*types.RegionVirtualMachineClasses, error)

GetVmClassesFromRegionQuota returns all VM Classes of the given Region Quota

func (*VCDClient) GetVmGroupById

func (vcdClient *VCDClient) GetVmGroupById(id string) (*VmGroup, error)

GetVmGroupById finds a VM Group by its ID. On success, returns a pointer to the VmGroup structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetVmGroupByNameAndProviderVdcUrn

func (vcdClient *VCDClient) GetVmGroupByNameAndProviderVdcUrn(name, pvdcUrn string) (*VmGroup, error)

GetVmGroupByNameAndProviderVdcUrn finds a VM Group by its name and associated Provider VDC URN. On success, returns a pointer to the VmGroup structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetVmGroupByNamedVmGroupIdAndProviderVdcUrn

func (vcdClient *VCDClient) GetVmGroupByNamedVmGroupIdAndProviderVdcUrn(namedVmGroupId, pvdcUrn string) (*VmGroup, error)

GetVmGroupByNamedVmGroupIdAndProviderVdcUrn finds a VM Group by its Named VM Group ID and Provider VDC URN. On success, returns a pointer to the VmGroup structure and a nil error On failure, returns a nil pointer and an error

func (*VCDClient) GetZoneById

func (vcdClient *VCDClient) GetZoneById(id string) (*Zone, error)

GetZoneById retrieves Region Zone by ID

func (*VCDClient) GetZoneByName

func (vcdClient *VCDClient) GetZoneByName(name string) (*Zone, error)

GetZoneByName retrieves Region Zone by name

func (*VCDClient) LogSessionInfo

func (client *VCDClient) LogSessionInfo()

LogSessionInfo prints session information into the default logs

func (*VCDClient) MergeMetadataByHref

func (vcdClient *VCDClient) MergeMetadataByHref(href, typedValue string, metadata map[string]interface{}) error

MergeMetadataByHref merges metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete.

func (*VCDClient) MergeMetadataByHrefAsync

func (vcdClient *VCDClient) MergeMetadataByHrefAsync(href, typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataByHrefAsync merges metadata provided as a key-value map of type `typedValue` with the already present in VCD, and returns the task. Deprecated: Use VCDClient.MergeMetadataWithVisibilityByHrefAsync instead.

func (*VCDClient) MergeMetadataWithVisibilityByHrefAsync

func (vcdClient *VCDClient) MergeMetadataWithVisibilityByHrefAsync(href string, metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithVisibilityByHrefAsync updates the metadata entries present in the referenced entity and creates the ones not present, then returns the task.

func (*VCDClient) NewVApp

func (vcdClient *VCDClient) NewVApp(client *Client) VApp

func (*VCDClient) Query

func (vcdClient *VCDClient) Query(params map[string]string) (Results, error)

func (*VCDClient) QueryAdminVdcTemplates

func (vcdClient *VCDClient) QueryAdminVdcTemplates() ([]*types.QueryResultAdminOrgVdcTemplateRecordType, error)

QueryAdminVdcTemplates gets the list of VDC Templates as System Administrator

func (*VCDClient) QueryAllOrgs

func (vcdclient *VCDClient) QueryAllOrgs() ([]*types.QueryResultOrgRecordType, error)

QueryAllOrgs returns all Orgs using query endpoint

func (*VCDClient) QueryMediaById

func (vcdClient *VCDClient) QueryMediaById(mediaId string) (*MediaRecord, error)

QueryMediaById returns a MediaRecord associated to the given media item URN. Returns ErrorEntityNotFound if it is not found, or an error if there's more than one result.

func (*VCDClient) QueryNetworkPools

func (vcdClient *VCDClient) QueryNetworkPools() ([]*types.QueryResultNetworkPoolRecordType, error)

QueryNetworkPools gets the list of network pools

func (*VCDClient) QueryNsxtManagerByHref

func (vcdClient *VCDClient) QueryNsxtManagerByHref(href string) ([]*types.QueryResultNsxtManagerRecordType, error)

QueryNsxtManagerByHref searches for NSX-T managers available in VCD

func (*VCDClient) QueryNsxtManagerByName

func (vcdClient *VCDClient) QueryNsxtManagerByName(name string) ([]*types.QueryResultNsxtManagerRecordType, error)

QueryNsxtManagerByName searches for NSX-T managers available in VCD

func (*VCDClient) QueryNsxtManagers

func (vcdClient *VCDClient) QueryNsxtManagers() ([]*types.QueryResultNsxtManagerRecordType, error)

QueryNsxtManagers retrieves all NSX-T managers available in VCD

func (*VCDClient) QueryOrgByID

func (vcdclient *VCDClient) QueryOrgByID(id string) (*types.QueryResultOrgRecordType, error)

QueryOrgByID retrieves an Org

func (*VCDClient) QueryOrgByName

func (vcdclient *VCDClient) QueryOrgByName(name string) (*types.QueryResultOrgRecordType, error)

QueryOrgByName retrieves an Org

func (*VCDClient) QueryProviderVdcStorageProfileByName

func (vcdClient *VCDClient) QueryProviderVdcStorageProfileByName(name, providerVDCHref string) (*types.QueryResultProviderVdcStorageProfileRecordType, error)

QueryProviderVdcStorageProfileByName finds a provider VDC storage profile by name There are four cases: 1. [FOUND] The name matches and is unique among all the storage profiles 2. [FOUND] The name matches, it is not unique, and it is disambiguated by the provider VDC HREF 3. [NOT FOUND] The name matches, is not unique, but no Provider HREF was given: the search will fail 4. [NOT FOUND] The name does not match any of the storage profiles

func (*VCDClient) QueryProviderVdcStorageProfiles

func (vcdClient *VCDClient) QueryProviderVdcStorageProfiles() ([]*types.QueryResultProviderVdcStorageProfileRecordType, error)

QueryProviderVdcStorageProfiles gets the list of provider VDC storage profiles from ALL provider VDCs Deprecated: use either client.QueryProviderVdcStorageProfiles or client.QueryAllProviderVdcStorageProfiles

func (*VCDClient) QueryProviderVdcs

func (vcdClient *VCDClient) QueryProviderVdcs() ([]*types.QueryResultVMWProviderVdcRecordType, error)

QueryProviderVdcs gets the list of available provider VDCs

func (*VCDClient) QuerySynchronizedVAppTemplateById

func (vcdClient *VCDClient) QuerySynchronizedVAppTemplateById(vAppTemplateId string) (*types.QueryResultVappTemplateType, error)

QuerySynchronizedVAppTemplateById Finds a vApp Template by its URN that is synchronized in the catalog. Returns types.QueryResultVMRecordType if it is found, returns ErrorEntityNotFound if not found, or an error if many are found.

func (*VCDClient) QuerySynchronizedVmInVAppTemplateByHref

func (vcdClient *VCDClient) QuerySynchronizedVmInVAppTemplateByHref(vAppTemplateHref, vmNameInTemplate string) (*types.QueryResultVMRecordType, error)

QuerySynchronizedVmInVAppTemplateByHref Finds a catalog-synchronized VM inside a vApp Template using the latter HREF. Returns types.QueryResultVMRecordType if it is found and it's synchronized in the catalog. Returns ErrorEntityNotFound if not found, or an error if many are found.

func (*VCDClient) QueryVmInVAppTemplateByHref

func (vcdClient *VCDClient) QueryVmInVAppTemplateByHref(vAppTemplateHref, vmNameInTemplate string) (*types.QueryResultVMRecordType, error)

QueryVmInVAppTemplateByHref Finds a VM inside a vApp Template using the latter HREF. Returns types.QueryResultVMRecordType if it is found, returns ErrorEntityNotFound if not found, or an error if many are found.

func (*VCDClient) QueryWithNotEncodedParams

func (vcdClient *VCDClient) QueryWithNotEncodedParams(params map[string]string, notEncodedParams map[string]string) (Results, error)

func (*VCDClient) QueryWithNotEncodedParamsWithApiVersion

func (vcdClient *VCDClient) QueryWithNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, apiVersion string) (Results, error)

func (*VCDClient) RegisterToken

func (vcdClient *VCDClient) RegisterToken(org string, tokenParams *types.ApiTokenParams) (*types.ApiTokenParams, error)

RegisterToken registers an API token with the given name. The access token can still be fetched for the API token using token.GetInitialApiToken()

func (*VCDClient) ResourcePoolsFromIds

func (vcdClient *VCDClient) ResourcePoolsFromIds(resourcePoolIds []string) ([]*ResourcePool, error)

ResourcePoolsFromIds returns a slice of resource pools from a slice of resource pool IDs

func (*VCDClient) SetApiToken

func (vcdClient *VCDClient) SetApiToken(org, apiToken string) (*types.ApiTokenRefresh, error)

SetApiToken behaves similarly to SetToken, with the difference that it will return full information about the bearer token, so that the caller can make decisions about token expiration

func (*VCDClient) SetApiTokenFromFile

func (vcdClient *VCDClient) SetApiTokenFromFile(org, apiTokenFile string) (*types.ApiTokenRefresh, error)

SetApiTokenFile reads the API token file, sets the client's bearer token and fetches a new API token for next authentication request using SetApiToken

func (*VCDClient) SetMetadataToIgnore

func (vcdClient *VCDClient) SetMetadataToIgnore(ignoredMetadata []IgnoredMetadata) []IgnoredMetadata

SetMetadataToIgnore allows to update the metadata to be ignored in all metadata API calls with the given input. It returns the old IgnoredMetadata configuration from the client

func (*VCDClient) SetServiceAccountApiToken

func (vcdClient *VCDClient) SetServiceAccountApiToken(org, apiTokenFile string) error

SetServiceAccountApiToken gets the refresh token from a provided file, fetches the bearer token and updates the provided file with the new refresh token for next usage as service account API tokens are one-time use

func (*VCDClient) SetToken

func (vcdClient *VCDClient) SetToken(org, authHeader, token string) error

SetToken will set the authorization token in the client, without using other credentials Up to version 29, token authorization uses the header key x-vcloud-authorization In version 30+ it also uses X-Vmware-Vcloud-Access-Token:TOKEN coupled with X-Vmware-Vcloud-Token-Type:"bearer"

func (*VCDClient) TmGetLdapConfiguration

func (vcdClient *VCDClient) TmGetLdapConfiguration() (*types.TmLdapSettings, error)

TmGetLdapConfiguration retrieves LDAP configuration structure for the "System" organization in Tenant Manager

func (*VCDClient) TmLdapConfigure

func (vcdClient *VCDClient) TmLdapConfigure(settings *types.TmLdapSettings, trustSslCertificate bool) (*types.TmLdapSettings, error)

TmLdapConfigure configures LDAP for the Tenant Manager "System" organization. If trustSslCertificate=true, it will automatically trust the certificate of LDAP server, only if settings.IsSsl=true. If settings.IsSsl=true and trustSslCertificate=false this method returns an error

func (*VCDClient) TmLdapDisable

func (vcdClient *VCDClient) TmLdapDisable() error

TmLdapDisable wraps LdapConfigure to disable LDAP configuration for the "System" organization. Disabling LDAP does not remove any trusted certificate.

func (*VCDClient) TmSyncEdgeClusters

func (vcdClient *VCDClient) TmSyncEdgeClusters() error

TmSyncEdgeClusters triggers a global sync operation that re-reads available Edge Clusters in all configured NSX-T Managers

func (*VCDClient) TrustAddOnImageCertificate

func (vcdClient *VCDClient) TrustAddOnImageCertificate(certificateText, source string) error

TrustAddOnImageCertificate will check if a given certificate is trusted by VCD and trust it if it is not there yet

func (*VCDClient) UpdateFeatureFlag

func (vcdClient *VCDClient) UpdateFeatureFlag(entityConfig *types.FeatureFlag) (*types.FeatureFlag, error)

UpdateFeatureFlag can update a feature flag with a given config. Can mostly be used to enable specific feature flags. The ID must be set (e.g. 'urn:vcloud:featureflag:CLASSIC_TENANT_CREATION' for Classic Tenants)

func (*VCDClient) UpdateGlobalDefaultSegmentProfileTemplates

func (vcdClient *VCDClient) UpdateGlobalDefaultSegmentProfileTemplates(entityConfig *types.NsxtGlobalDefaultSegmentProfileTemplate) (*types.NsxtGlobalDefaultSegmentProfileTemplate, error)

UpdateGlobalDefaultSegmentProfileTemplates updates VCD global configuration for Segment Profile Templates

func (*VCDClient) UpdateRegionQuotaStoragePolicy

func (vcdClient *VCDClient) UpdateRegionQuotaStoragePolicy(regionQuotaStoragePolicyId string, tmVdcConfig *types.VirtualDatacenterStoragePolicy) (*RegionQuotaStoragePolicy, error)

UpdateRegionQuotaStoragePolicy updates the Region Quota Storage Policy with given ID

type VCDClientOption

type VCDClientOption func(*VCDClient) error

VCDClientOption defines signature for customizing VCDClient using functional options pattern.

func WithAPIVersion

func WithAPIVersion(version string) VCDClientOption

WithAPIVersion allows to override default API version. Please be cautious about changing the version as the default specified is the most tested.

func WithHttpHeader

func WithHttpHeader(options map[string]string) VCDClientOption

WithHttpHeader allows to specify custom HTTP header values. Typical usage of this function is to inject a tenant context into the client.

WARNING: Using this function in an environment with concurrent operations may result in negative side effects, such as operations as system administrator and as tenant using the same client. This setting is justified when we want to start a session where the additional header is always needed. For cases where we need system administrator and tenant operations in the same environment we can either a) use two separate clients or b) use the `additionalHeader` parameter in *newRequest* functions

func WithHttpTimeout

func WithHttpTimeout(timeout int64) VCDClientOption

WithHttpTimeout allows to override default http timeout

func WithHttpUserAgent

func WithHttpUserAgent(userAgent string) VCDClientOption

WithHttpUserAgent allows to specify HTTP user-agent which can be useful for statistics tracking. By default User-Agent is set to "go-vcloud-director". It can be unset by supplying an empty value.

func WithIgnoredMetadata

func WithIgnoredMetadata(ignoredMetadata []IgnoredMetadata) VCDClientOption

WithIgnoredMetadata allows specifying metadata entries to be ignored when using metadata_v2 methods. It can be unset by supplying an empty value. See the documentation of the IgnoredMetadata structure for more information.

func WithMaxRetryTimeout

func WithMaxRetryTimeout(timeoutSeconds int) VCDClientOption

WithMaxRetryTimeout allows default vCDClient MaxRetryTimeout value override

func WithSamlAdfs

func WithSamlAdfs(useSaml bool, customAdfsRptId string) VCDClientOption

WithSamlAdfs specifies if SAML auth is used for authenticating to vCD instead of local login. The following conditions must be met so that SAML authentication works: * SAML IdP (Identity Provider) is Active Directory Federation Service (ADFS) * WS-Trust authentication endpoint "/adfs/services/trust/13/usernamemixed" must be enabled on ADFS server By default vCD SAML Entity ID will be used as Relaying Party Trust Identifier unless customAdfsRptId is specified

func WithSamlAdfsAndCookie

func WithSamlAdfsAndCookie(useSaml bool, customAdfsRptId, customAdfsCookie string) VCDClientOption

WithSamlAdfsAndCookie specifies if SAML auth is used for authenticating to vCD instead of local login. The following conditions must be met so that SAML authentication works: * SAML IdP (Identity Provider) is Active Directory Federation Service (ADFS) * WS-Trust authentication endpoint "/adfs/services/trust/13/usernamemixed" must be enabled on ADFS server By default vCD SAML Entity ID will be used as Relaying Party Trust Identifier unless customAdfsRptId is specified Additionall customAdfsCookie can be specified to impact how the code looks up ADFS SAML provider from VCD

func WithVcloudRequestIdFunc

func WithVcloudRequestIdFunc(vcloudRequestItBuilder func() string) VCDClientOption

WithVcloudRequestIdFunc enables sending 'X-VMWARE-VCLOUD-CLIENT-REQUEST-ID' header by supplying a function that will return unique value for each time it is executed. The code of this SDK will make sure that the header is populated every time.

The X-VMWARE-VCLOUD-CLIENT-REQUEST-ID header must contain only alpha-numeric characters or dashes. The header must contain at least one alpha-numeric character, and VMware Cloud Director shortens it if it's longer than 128 characters long. The X-VMWARE-VCLOUD-REQUEST-ID response header is formed from the first 128 characters of X-VMWARE-VCLOUD-CLIENT-REQUEST-ID, followed by a dash and a random UUID that the server generates. If the X-VMWARE-VCLOUD-CLIENT-REQUEST-ID header is invalid, null, or empty, the X-VMWARE-VCLOUD-REQUEST-ID is a random UUID. VMware Cloud Director adds this value to every VMware Cloud Director, vCenter Server, and ESXi log message related to processing the request, and provides a way to correlate the processing of a request across all participating systems. If a request does not supply a X-VMWARE-VCLOUD-CLIENT-REQUEST-ID header, the response contains an X-VMWARE-VCLOUD-REQUEST-ID header with a generated value that cannot be used for log correlation.

There is a builtin function VcloudRequestIdBuilderFunc that can be used to add sequence number and time-id for each request

type VCenter

type VCenter struct {
	VSphereVCenter *types.VSphereVirtualCenter
	// contains filtered or unexported fields
}

func (*VCenter) Delete

func (v *VCenter) Delete() error

Delete vCenter configuration

func (*VCenter) Disable

func (v *VCenter) Disable() error

Disable is an update shortcut for disabling vCenter

func (VCenter) GetAllResourcePools

func (vcenter VCenter) GetAllResourcePools(queryParams url.Values) ([]*ResourcePool, error)

GetAllResourcePools retrieves all resource pools for a given vCenter

func (VCenter) GetAllStorageProfiles

func (vcenter VCenter) GetAllStorageProfiles(resourcePoolId string, queryParams url.Values) ([]*StorageProfile, error)

GetAllStorageProfiles retrieves all storage profiles existing in a given storage profile context Note: this function finds all *named* resource pools, but not the unnamed one [*(Any)]

func (*VCenter) GetAllSupervisors

func (v *VCenter) GetAllSupervisors(queryParameters url.Values) ([]*Supervisor, error)

GetAllSupervisors returns all Supervisors that are available in this vCenter

func (VCenter) GetResourcePoolById

func (vcenter VCenter) GetResourcePoolById(id string) (*ResourcePool, error)

GetResourcePoolById retrieves a resource pool by its ID (Moref)

func (VCenter) GetResourcePoolByName

func (vcenter VCenter) GetResourcePoolByName(name string) (*ResourcePool, error)

GetResourcePoolByName retrieves a resource pool by name. It may fail if there are several resource pools with the same name

func (VCenter) GetStorageProfileById

func (vcenter VCenter) GetStorageProfileById(resourcePoolId, id string) (*StorageProfile, error)

GetStorageProfileById retrieves a storage profile in the context of a given resource pool

func (VCenter) GetStorageProfileByName

func (vcenter VCenter) GetStorageProfileByName(resourcePoolId, name string) (*StorageProfile, error)

GetStorageProfileByName retrieves a storage profile in the context of a given resource pool

func (*VCenter) GetSupervisorByName

func (v *VCenter) GetSupervisorByName(name string) (*Supervisor, error)

GetSupervisorByName retrieves Supervisor by name in a given vCenter server

func (VCenter) GetVimServerUrl

func (v VCenter) GetVimServerUrl() (string, error)

func (*VCenter) Refresh

func (v *VCenter) Refresh() error

Refresh vCenter structure

func (*VCenter) RefreshStorageProfiles

func (v *VCenter) RefreshStorageProfiles() error

RefreshStorageProfiles triggers a refresh operation on vCenter that syncs up vCenter components such as supervisors It uses legacy endpoint as there is no OpenAPI endpoint for this operation

func (*VCenter) RefreshVcenter

func (v *VCenter) RefreshVcenter() error

RefreshVcenter triggers a refresh operation on vCenter that syncs up vCenter components such as supervisors It uses legacy endpoint as there is no OpenAPI endpoint for this operation

func (*VCenter) Update

func (v *VCenter) Update(TmNsxtManagerConfig *types.VSphereVirtualCenter) (*VCenter, error)

Update given vCenter configuration

type VM

type VM struct {
	VM *types.Vm
	// contains filtered or unexported fields
}

func NewVM

func NewVM(cli *Client) *VM

func (*VM) AddInternalDisk

func (vm *VM) AddInternalDisk(diskData *types.DiskSettings) (string, error)

AddInternalDisk creates disk type *types.DiskSettings to the VM. Returns new disk ID and error. Runs synchronously, VM is ready for another operation after this function returns.

func (*VM) AddMetadata deprecated

func (vm *VM) AddMetadata(key string, value string) (Task, error)

Deprecated: use VM.AddMetadataEntry.

func (*VM) AddMetadataEntry

func (vm *VM) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds VM metadata typedValue and key/value pair provided as input and waits for the task to finish. Deprecated: Use VM.AddMetadataEntryWithVisibility instead

func (*VM) AddMetadataEntryAsync

func (vm *VM) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds VM metadata typedValue and key/value pair provided as input and returns the task. Deprecated: Use VM.AddMetadataEntryWithVisibilityAsync instead

func (*VM) AddMetadataEntryWithVisibility

func (vm *VM) AddMetadataEntryWithVisibility(key, value, typedValue, visibility string, isSystem bool) error

AddMetadataEntryWithVisibility adds metadata to the receiver VM and waits for the task to finish.

func (*VM) AddMetadataEntryWithVisibilityAsync

func (vm *VM) AddMetadataEntryWithVisibilityAsync(key, value, typedValue, visibility string, isSystem bool) (Task, error)

AddMetadataEntryWithVisibilityAsync adds metadata to the given VM with the given key, value, type and visibility // and returns the task.

func (*VM) AnswerQuestion

func (vm *VM) AnswerQuestion(questionId string, choiceId int) error

AnswerQuestion uses the provided answer to existing VM question for operation which need additional response Reference: https://code.vmware.com/apis/287/vcloud#/doc/doc/operations/POST-AnswerVmPendingQuestion.html

func (*VM) AttachDisk

func (vm *VM) AttachDisk(diskParams *types.DiskAttachOrDetachParams) (Task, error)

AttachDisk attaches an independent disk Call attachOrDetachDisk with disk and types.RelDiskAttach to attach an independent disk. Please verify the independent disk is not connected to any VM before calling this function. If the independent disk is connected to a VM, the task will be failed. Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 164 - 165, https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf

func (*VM) BlockWhileGuestCustomizationStatus

func (vm *VM) BlockWhileGuestCustomizationStatus(unwantedStatus string, timeOutAfterSeconds int) error

BlockWhileGuestCustomizationStatus blocks until the customization status of VM exits unwantedStatus. It sleeps 3 seconds between iterations and times out after timeOutAfterSeconds of seconds.

timeOutAfterSeconds must be more than 4 and less than 2 hours (60s*120)

func (*VM) ChangeCPU

func (vm *VM) ChangeCPU(cpus, cpuCores int) error

ChangeCPUCount sets number of available virtual logical processors (i.e. CPUs x cores per socket) Cpu cores count is inherited from template. https://communities.vmware.com/thread/576209 Deprecated: use ChangeCPUAndCoreCount

func (*VM) ChangeCPUAndCoreCount

func (vm *VM) ChangeCPUAndCoreCount(cpus, cpuCores *int) error

ChangeCPUAndCoreCount sets CPU and CPU core counts Accepts values or `nil` for both parameters.

func (*VM) ChangeCPUCount

func (vm *VM) ChangeCPUCount(virtualCpuCount int) (Task, error)

ChangeCPUCount sets number of available virtual logical processors (i.e. CPUs x cores per socket) Cpu cores count is inherited from template. https://communities.vmware.com/thread/576209 Deprecated: use vm.ChangeCPU instead

func (*VM) ChangeCPUCountWithCore

func (vm *VM) ChangeCPUCountWithCore(virtualCpuCount int, coresPerSocket *int) (Task, error)

ChangeCPUCountWithCore sets number of available virtual logical processors (i.e. CPUs x cores per socket) and cores per socket. Socket count is a result of: virtual logical processors/cores per socket https://communities.vmware.com/thread/576209 Deprecated: use vm.ChangeCPU instead

func (*VM) ChangeMemory

func (vm *VM) ChangeMemory(sizeInMb int64) error

ChangeMemory sets memory value. Size is MB

func (*VM) ChangeMemorySize deprecated

func (vm *VM) ChangeMemorySize(size int) (Task, error)

Deprecated: use vm.ChangeMemory instead

func (*VM) ChangeNetworkConfig

func (vm *VM) ChangeNetworkConfig(networks []map[string]interface{}) (Task, error)

ChangeNetworkConfig allows to update existing VM NIC configuration.f

func (*VM) ConsolidateDisks

func (vm *VM) ConsolidateDisks() error

ConsolidateDisks triggers VM disk consolidation task and waits until it is completed

func (*VM) ConsolidateDisksAsync

func (vm *VM) ConsolidateDisksAsync() (Task, error)

ConsolidateDisksAsync triggers VM disk consolidation task

func (*VM) Customize deprecated

func (vm *VM) Customize(computerName, script string, changeSid bool) (Task, error)

Customize function allows to set ComputerName, apply customization script and enable or disable the changeSid option

Deprecated: Use vm.SetGuestCustomizationSection()

func (*VM) Delete

func (vm *VM) Delete() error

Delete deletes a standalone VM

func (*VM) DeleteAsync

func (vm *VM) DeleteAsync() (Task, error)

DeleteAsync starts a standalone VM deletion, returning a task

func (*VM) DeleteExtraConfig

func (vm *VM) DeleteExtraConfig(deleteItems []*types.ExtraConfigMarshal) ([]*types.ExtraConfigMarshal, error)

DeleteExtraConfig removes items from the VM Extra Configuration set Returns the modified set

func (*VM) DeleteInternalDisk

func (vm *VM) DeleteInternalDisk(diskId string) error

DeleteInternalDisk delete disk using provided disk ID. Runs synchronously, VM is ready for another operation after this function returns.

func (*VM) DeleteMetadata deprecated

func (vm *VM) DeleteMetadata(key string) (Task, error)

Deprecated: use VM.DeleteMetadataEntry.

func (*VM) DeleteMetadataEntry

func (vm *VM) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes VM metadata by key provided as input and waits for the task to finish. Deprecated: Use VM.DeleteMetadataEntryWithDomain instead

func (*VM) DeleteMetadataEntryAsync

func (vm *VM) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes VM metadata depending on key provided as input and returns the task. Deprecated: Use VM.DeleteMetadataEntryWithDomainAsync instead

func (*VM) DeleteMetadataEntryWithDomain

func (vm *VM) DeleteMetadataEntryWithDomain(key string, isSystem bool) error

DeleteMetadataEntryWithDomain deletes VM metadata associated to the input key and waits for the task to finish.

func (*VM) DeleteMetadataEntryWithDomainAsync

func (vm *VM) DeleteMetadataEntryWithDomainAsync(key string, isSystem bool) (Task, error)

DeleteMetadataEntryWithDomainAsync deletes VM metadata associated to the input key and returns the task.

func (*VM) DetachDisk

func (vm *VM) DetachDisk(diskParams *types.DiskAttachOrDetachParams) (Task, error)

DetachDisk detaches an independent disk Call attachOrDetachDisk with disk and types.RelDiskDetach to detach an independent disk. Please verify the independent disk is connected the VM before calling this function. If the independent disk is not connected to the VM, the task will be failed. Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 164 - 165, https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf

func (*VM) EjectMedia

func (vm *VM) EjectMedia(mediaParams *types.MediaInsertOrEjectParams) (EjectTask, error)

EjectMedia ejects media from VM Call insertOrEjectMedia with media and types.RelMediaEjectMedia to eject media from VM. If media isn't inserted then task still will be successful.

func (*VM) GetEnvironment

func (vm *VM) GetEnvironment() (*types.OvfEnvironment, error)

GetEnvironment returns the OVF Environment. It's only available for poweredOn VM

func (*VM) GetExtraConfig

func (vm *VM) GetExtraConfig() ([]*types.ExtraConfigMarshal, error)

GetExtraConfig retrieves the extra configuration items from a VM

func (*VM) GetGuestCustomizationSection

func (vm *VM) GetGuestCustomizationSection() (*types.GuestCustomizationSection, error)

GetGuestCustomizationSection retrieves guest customization section for a VM. It allows to read VM guest customization properties.

func (*VM) GetGuestCustomizationStatus

func (vm *VM) GetGuestCustomizationStatus() (string, error)

GetGuestCustomizationStatus retrieves guest customization status. It can be one of "GC_PENDING", "REBOOT_PENDING", "GC_FAILED", "POST_GC_PENDING", "GC_COMPLETE"

func (*VM) GetInternalDiskById

func (vm *VM) GetInternalDiskById(diskId string, refresh bool) (*types.DiskSettings, error)

GetInternalDiskById returns a *types.DiskSettings if one exists. If it doesn't, returns nil and ErrorEntityNotFound or other err.

func (*VM) GetMetadata

func (vm *VM) GetMetadata() (*types.Metadata, error)

GetMetadata returns VM metadata.

func (*VM) GetMetadataByKey

func (vm *VM) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns VM metadata corresponding to the given key and domain.

func (*VM) GetNetworkConnectionSection

func (vm *VM) GetNetworkConnectionSection() (*types.NetworkConnectionSection, error)

GetNetworkConnectionSection returns current networks attached to VM

The slice of NICs is not necessarily ordered by NIC index

func (*VM) GetParentVApp

func (vm *VM) GetParentVApp() (*VApp, error)

GetParentVApp find parent vApp for VM by checking its "up" "link".

Note. The VM has a parent vApp defined even if it was created as a standalone

func (*VM) GetParentVdc

func (vm *VM) GetParentVdc() (*Vdc, error)

GetParentVdc returns parent VDC for VM

func (*VM) GetProductSectionList

func (vm *VM) GetProductSectionList() (*types.ProductSectionList, error)

GetProductSectionList retrieves product section for a VM. It allows to read VM guest properties.

The slice of properties "ProductSectionList.ProductSection.Property" is not necessarily ordered or returned as set before

func (*VM) GetQuestion

func (vm *VM) GetQuestion() (types.VmPendingQuestion, error)

GetQuestion uses the get existing VM question for operation which need additional response Reference: https://code.vmware.com/apis/287/vcloud#/doc/doc/operations/GET-VmPendingQuestion.html

func (*VM) GetStatus

func (vm *VM) GetStatus() (string, error)

func (*VM) GetVMSecurityTags

func (vm *VM) GetVMSecurityTags() (*types.EntitySecurityTags, error)

GetVMSecurityTags Retrieves the list of tags for a specific VM. If user has view right to the VM, user can view its tags. This function works from API v36.0 (VCD 10.3.0+)

func (*VM) GetVirtualHardwareSection

func (vm *VM) GetVirtualHardwareSection() (*types.VirtualHardwareSection, error)

GetVirtualHardwareSection returns the virtual hardware items attached to a VM

func (*VM) HandleEjectMedia

func (vm *VM) HandleEjectMedia(org *Org, catalogName, mediaName string) (EjectTask, error)

HandleEjectMedia is a helper function which finds media and calls EjectMedia

func (*VM) HandleEjectMediaAndAnswer

func (vm *VM) HandleEjectMediaAndAnswer(org *Org, catalogName, mediaName string, answerYes bool) (*VM, error)

HandleEjectMediaAndAnswer helper function which finds media, calls EjectMedia, waits for task to complete and answer question. Also waits until VM status refreshes - this added as 9.7-10.0 vCD versions has lag in status update. answerYes - handles question risen when VM is running. True value enforces ejection.

func (*VM) HandleInsertMedia

func (vm *VM) HandleInsertMedia(org *Org, catalogName, mediaName string) (Task, error)

HandleInsertMedia helper function finds media and calls InsertMedia

func (*VM) InsertMedia

func (vm *VM) InsertMedia(mediaParams *types.MediaInsertOrEjectParams) (Task, error)

InsertMedia insert media for a VM Call insertOrEjectMedia with media and types.RelMediaInsertMedia to insert media from VM.

func (*VM) IsDeployed

func (vm *VM) IsDeployed() (bool, error)

IsDeployed checks if the VM is deployed or not

func (*VM) MergeMetadata

func (vm *VM) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges VM metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Deprecated: Use VM.MergeMetadataWithMetadataValues

func (*VM) MergeMetadataAsync

func (vm *VM) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges VM metadata provided as a key-value map of type `typedValue` with the already present in VCD, then returns the task. Deprecated: Use VM.MergeMetadataWithMetadataValuesAsync instead

func (*VM) MergeMetadataWithMetadataValues

func (vm *VM) MergeMetadataWithMetadataValues(metadata map[string]types.MetadataValue) error

MergeMetadataWithMetadataValues updates the metadata values that are already present in the receiver VM and creates the ones not present. The input metadata map has a "metadata key"->"metadata value" relation. This function waits until merge finishes.

func (*VM) MergeMetadataWithMetadataValuesAsync

func (vm *VM) MergeMetadataWithMetadataValuesAsync(metadata map[string]types.MetadataValue) (Task, error)

MergeMetadataWithMetadataValuesAsync merges VM metadata provided as a key-value map of type `typedValue` with the already present in VCD, then returns the task.

func (*VM) PowerOff

func (vm *VM) PowerOff() (Task, error)

func (*VM) PowerOn

func (vm *VM) PowerOn() (Task, error)

func (*VM) PowerOnAndForceCustomization

func (vm *VM) PowerOnAndForceCustomization() error

PowerOnAndForceCustomization is a synchronous function which is equivalent to the functionality one has in UI. It triggers customization which may be useful in some cases (like altering NICs)

The VM _must_ be un-deployed for this action to actually work.

func (*VM) Refresh

func (vm *VM) Refresh() error

func (*VM) RunCustomizationScript

func (vm *VM) RunCustomizationScript(computerName, script string) (Task, error)

func (*VM) SetGuestCustomizationSection

func (vm *VM) SetGuestCustomizationSection(guestCustomizationSection *types.GuestCustomizationSection) (*types.GuestCustomizationSection, error)

SetGuestCustomizationSection sets guest customization section for a VM. It allows to change VM guest customization properties.

func (*VM) SetProductSectionList

func (vm *VM) SetProductSectionList(productSection *types.ProductSectionList) (*types.ProductSectionList, error)

SetProductSectionList sets product section for a VM. It allows to change VM guest properties.

The slice of properties "ProductSectionList.ProductSection.Property" is not necessarily ordered or returned as set before

func (*VM) Shutdown

func (vm *VM) Shutdown() (Task, error)

Shutdown triggers a VM undeploy and shutdown action. "Shut Down Guest OS" action in UI behaves this way.

Note. Success of this operation depends on the VM having Guest Tools installed.

func (*VM) ToggleHardwareVirtualization

func (vm *VM) ToggleHardwareVirtualization(isEnabled bool) (Task, error)

ToggleHardwareVirtualization allows to either enable or disable hardware assisted CPU virtualization for the VM. It can only be performed on a powered off VM and will return an error otherwise. This is mainly useful for hypervisor nesting.

func (*VM) Undeploy

func (vm *VM) Undeploy() (Task, error)

Undeploy triggers a VM undeploy and power off action. "Power off" action in UI behaves this way.

func (*VM) UpdateBootOptions

func (vm *VM) UpdateBootOptions(bootOptions *types.BootOptions) (*VM, error)

UpdateBootOptions updates the Boot Options of a VM and returns the updated instance of the VM

func (*VM) UpdateBootOptionsAsync

func (vm *VM) UpdateBootOptionsAsync(bootOptions *types.BootOptions) (Task, error)

UpdateBootOptionsAsync updates the boot options of a VM

func (*VM) UpdateComputePolicy

func (vm *VM) UpdateComputePolicy(computePolicy *types.VdcComputePolicy) (*VM, error)

UpdateComputePolicy updates VM compute policy and returns refreshed VM or error. Deprecated: Use VM.UpdateComputePolicyV2 instead

func (*VM) UpdateComputePolicyAsync

func (vm *VM) UpdateComputePolicyAsync(computePolicy *types.VdcComputePolicy) (Task, error)

UpdateComputePolicyAsync updates VM Compute policy and returns Task and error. Deprecated: Use VM.UpdateComputePolicyV2Async instead

func (*VM) UpdateComputePolicyV2

func (vm *VM) UpdateComputePolicyV2(sizingPolicyId, placementPolicyId, vGpuPolicyId string) (*VM, error)

UpdateComputePolicyV2 updates VM Compute policy with the given compute policies using v2.0.0 OpenAPI endpoint, and returns an error if something went wrong, or the refreshed VM if all went OK. Updating with an empty compute policy ID will remove it from the VM. Both policies can't be empty as the VM requires at least one policy.

func (*VM) UpdateComputePolicyV2Async

func (vm *VM) UpdateComputePolicyV2Async(sizingPolicyId, placementPolicyId, vGpuPolicyId string) (Task, error)

UpdateComputePolicyV2Async updates VM Compute policy with the given compute policies using v2.0.0 OpenAPI endpoint, and returns a Task and an error. Updating with an empty compute policy ID will remove it from the VM. Both policies can't be empty as the VM requires at least one policy. WARNING: At the moment, vGPU Policies are not supported. Using one will return an error.

func (*VM) UpdateExtraConfig

func (vm *VM) UpdateExtraConfig(update []*types.ExtraConfigMarshal) ([]*types.ExtraConfigMarshal, error)

UpdateExtraConfig adds or changes items in the VM Extra Configuration set Returns the modified set Note: an item with an empty `Value` will be deleted.

func (*VM) UpdateInternalDisks

func (vm *VM) UpdateInternalDisks(disksSettingToUpdate *types.VmSpecSection) (*types.VmSpecSection, error)

UpdateInternalDisks applies disks configuration for the VM. types.VmSpecSection has to have all internal disk state. Disks which don't match provided ones in types.VmSpecSection will be deleted. Matched internal disk will be updated. New internal disk description found in types.VmSpecSection will be created. Returns updated types.VmSpecSection and error. Runs synchronously, VM is ready for another operation after this function returns.

func (*VM) UpdateInternalDisksAsync deprecated

func (vm *VM) UpdateInternalDisksAsync(disksSettingToUpdate *types.VmSpecSection) (Task, error)

UpdateInternalDisksAsync applies disks configuration for the VM. types.VmSpecSection has to have all internal disk state. Disks which don't match provided ones in types.VmSpecSection will be deleted. Matched internal disk will be updated. New internal disk description found in types.VmSpecSection will be created. Returns Task and error.

Deprecated: use UpdateInternalDisks or UpdateVmSpecSectionAsync instead

func (*VM) UpdateNetworkConnectionSection

func (vm *VM) UpdateNetworkConnectionSection(networks *types.NetworkConnectionSection) error

UpdateNetworkConnectionSection applies network configuration of types.NetworkConnectionSection for the VM Runs synchronously, VM is ready for another operation after this function returns.

func (*VM) UpdateStorageProfile

func (vm *VM) UpdateStorageProfile(storageProfileHref string) (*VM, error)

UpdateStorageProfile updates VM storage profile and returns refreshed VM or error.

func (*VM) UpdateStorageProfileAsync

func (vm *VM) UpdateStorageProfileAsync(storageProfileHref string) (Task, error)

UpdateStorageProfileAsync updates VM storage profile and returns Task and error.

func (*VM) UpdateVMSecurityTags

func (vm *VM) UpdateVMSecurityTags(entitySecurityTags *types.EntitySecurityTags) (*types.EntitySecurityTags, error)

UpdateVMSecurityTags updates the list of tags for a specific VM. An empty list of tags means to delete all tags for the VM. If user has edit permission on the VM, user can edit its tags. This function works from API v36.0 (VCD 10.3.0+)

func (*VM) UpdateVmCpuAndMemoryHotAdd

func (vm *VM) UpdateVmCpuAndMemoryHotAdd(cpuAdd, memoryAdd bool) (*VM, error)

UpdateVmCpuAndMemoryHotAdd updates VM Capabilities and returns refreshed VM or error.

func (*VM) UpdateVmCpuAndMemoryHotAddAsync

func (vm *VM) UpdateVmCpuAndMemoryHotAddAsync(cpuHot, memoryAdd bool) (Task, error)

UpdateVmCpuAndMemoryHotAddAsync updates VM Capabilities and returns Task and error.

func (*VM) UpdateVmSpecSection

func (vm *VM) UpdateVmSpecSection(vmSettingsToUpdate *types.VmSpecSection, description string) (*VM, error)

UpdateVmSpecSection updates VM Spec section and returns refreshed VM or error.

func (*VM) UpdateVmSpecSectionAsync

func (vm *VM) UpdateVmSpecSectionAsync(vmSettingsToUpdate *types.VmSpecSection, description string) (Task, error)

UpdateVmSpecSectionAsync updates VM Spec section and returns Task and error.

func (*VM) UpgradeHardwareVersion

func (vm *VM) UpgradeHardwareVersion() error

UpgradeHardwareVersion triggers hardware upgrade and tracks the task to completion or returns an error

func (*VM) WaitForDhcpIpByNicIndexes

func (vm *VM) WaitForDhcpIpByNicIndexes(nicIndexes []int, maxWaitSeconds int, useNsxvDhcpLeaseCheck bool) ([]string, bool, error)

WaitForDhcpIpByNicIndexes accepts a slice of NIC indexes in VM, tries to get these IPs up to maxWaitSeconds and then returns: * a list of IPs * whether the function hit timeout (some IP values may be available after timeout) * error

This function checks a slice of nicIndexes and reuses all possible API calls. It may return a partial result for IP addresses when the timeout is hit.

Getting a DHCP address is complicated because vCD (in UI and in types.NetworkConnectionSection) reports IP addresses only when guest tools are present on a VM. This function also attempts to check if VM NICs are attached to routed network on edge gateway - then there is a chance that built-in DHCP pools are used and active DHCP leases can be found.

For this function to work - at least one the following must be true: * VM has guest tools (vCD UI shows IP address). (Takes longer time) * VM DHCP interface is connected to routed Org network and is using NSX-V Edge Gateway DHCP. (Takes less time, but is more constrained)

type VMRecord

type VMRecord struct {
	VM *types.QueryResultVMRecordType
	// contains filtered or unexported fields
}

func NewVMRecord

func NewVMRecord(cli *Client) *VMRecord

NewVMRecord creates an instance with reference to types.QueryResultVMRecordType

type VappNetworkSettings

type VappNetworkSettings struct {
	ID                 string
	Name               string
	Description        string
	Gateway            string
	NetMask            string
	SubnetPrefixLength string
	DNS1               string
	DNS2               string
	DNSSuffix          string
	GuestVLANAllowed   *bool
	StaticIPRanges     []*types.IPRange
	DhcpSettings       *DhcpSettings
	RetainIpMacEnabled *bool
	VappFenceEnabled   *bool
}

struct type used to pass information for vApp network creation

type VappTemplateData

type VappTemplateData struct {
	Name                     string
	ItemCreationDate         string
	VappTemplateCreationDate string
	Metadata                 StringMap
	Created                  bool
}

func HelperCreateMultipleCatalogItems

func HelperCreateMultipleCatalogItems(catalog *Catalog, requestData []VappTemplateData, verbose bool) ([]VappTemplateData, error)

HelperCreateMultipleCatalogItems deploys several catalog items, as defined in requestData Returns a set of VappTemplateData with what was created. If the requested objects exist already, returns updated information about the existing items.

type VcdVersion

type VcdVersion struct {
	Version *semver.Version
	Time    time.Time
}

VcdVersion contains the full information about a VCD version

type VcenterImportableDvpg

type VcenterImportableDvpg struct {
	VcenterImportableDvpg *types.VcenterImportableDvpg
	// contains filtered or unexported fields
}

VcenterImportableDvpg is a read only structure that allows to get information about a Distributed Virtual Port Group (DVPG) network backing that is available for import.

Note. API returns only unused DVPGs. If the DVPG is already consumed - it will not be returned.

func (*VcenterImportableDvpg) Parent

Parent returns the port group parent switch

func (*VcenterImportableDvpg) UsableWith

func (dvpg *VcenterImportableDvpg) UsableWith(others ...*VcenterImportableDvpg) bool

UsableWith tells whether a given port group can be used with others to create a network pool

type Vdc

type Vdc struct {
	Vdc *types.Vdc
	// contains filtered or unexported fields
}

func NewVdc

func NewVdc(cli *Client) *Vdc

func (*Vdc) AddMetadata deprecated

func (vdc *Vdc) AddMetadata(key string, value string) (Vdc, error)

Deprecated: use Vdc.AddMetadataEntry.

func (*Vdc) AddMetadataAsync deprecated

func (vdc *Vdc) AddMetadataAsync(key string, value string) (Task, error)

Deprecated: use Vdc.AddMetadataEntryAsync.

func (*Vdc) AddMetadataEntry

func (vdc *Vdc) AddMetadataEntry(typedValue, key, value string) error

AddMetadataEntry adds VDC metadata typedValue and key/value pair provided as input and waits for the task to finish. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.AddMetadataEntryWithVisibility instead

func (*Vdc) AddMetadataEntryAsync

func (vdc *Vdc) AddMetadataEntryAsync(typedValue, key, value string) (Task, error)

AddMetadataEntryAsync adds VDC metadata typedValue and key/value pair provided as input and returns the task. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.AddMetadataEntryWithVisibilityAsync instead

func (*Vdc) CloneVapp

func (vdc *Vdc) CloneVapp(sourceVapp *types.CloneVAppParams) (*VApp, error)

CloneVapp makes a copy of a vApp into a new one The sourceVapp argument must contain at least: * Name * Source (a reference to the source vApp)

func (*Vdc) ComposeRawVApp

func (vdc *Vdc) ComposeRawVApp(name string, description string) error

ComposeRawVApp creates an empty vApp Deprecated: use CreateRawVApp instead

func (*Vdc) ComposeVApp

func (vdc *Vdc) ComposeVApp(orgvdcnetworks []*types.OrgVDCNetwork, vapptemplate VAppTemplate, storageprofileref types.Reference, name string, description string, acceptalleulas bool) (Task, error)

ComposeVApp creates a vapp with the given template, name, and description that uses the storageprofile and networks given. If you want all eulas to be accepted set acceptalleulas to true. Returns a successful task if completed successfully, otherwise returns an error and an empty task. Deprecated: bad implementation

func (*Vdc) CreateDisk

func (vdc *Vdc) CreateDisk(diskCreateParams *types.DiskCreateParams) (Task, error)

Create an independent disk in VDC Reference: vCloud API Programming Guide for Service Providers vCloud API 30.0 PDF Page 102 - 103, https://vdc-download.vmware.com/vmwb-repository/dcr-public/1b6cf07d-adb3-4dba-8c47-9c1c92b04857/ 241956dd-e128-4fcc-8131-bf66e1edd895/vcloud_sp_api_guide_30_0.pdf

func (*Vdc) CreateNsxtFirewallGroup

func (vdc *Vdc) CreateNsxtFirewallGroup(firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error)

CreateNsxtFirewallGroup allows users to create NSX-T Firewall Group

func (*Vdc) CreateNsxvIpSet

func (vdc *Vdc) CreateNsxvIpSet(ipSetConfig *types.EdgeIpSet) (*types.EdgeIpSet, error)

CreateNsxvIpSet creates an IP set from *types.EdgeIpSet. IP set defines a group of IP addresses that you can add as the source or destination in a firewall rule or in DHCP relay configuration.

func (*Vdc) CreateOpenApiOrgVdcNetwork

func (vdc *Vdc) CreateOpenApiOrgVdcNetwork(orgVdcNetworkConfig *types.OpenApiOrgVdcNetwork) (*OpenApiOrgVdcNetwork, error)

CreateOpenApiOrgVdcNetwork allows to create NSX-T or NSX-V Org VDC network

func (*Vdc) CreateOrgVDCNetwork

func (vdc *Vdc) CreateOrgVDCNetwork(networkConfig *types.OrgVDCNetwork) (Task, error)

Fine tuning network creation function. Return an error (the result of the network creation) and a task (used to monitor the network configuration) This function can create any type of Org Vdc network. The exact type is determined by the combination of properties given with the network configuration structure.

func (*Vdc) CreateOrgVDCNetworkWait

func (vdc *Vdc) CreateOrgVDCNetworkWait(networkConfig *types.OrgVDCNetwork) error

A wrapper call around CreateOrgVDCNetwork. Creates a network and then uses the associated task to monitor its configuration

func (*Vdc) CreateRawVApp

func (vdc *Vdc) CreateRawVApp(name string, description string) (*VApp, error)

CreateRawVApp creates an empty vApp

func (*Vdc) CreateStandaloneVMFromTemplate

func (vdc *Vdc) CreateStandaloneVMFromTemplate(params *types.InstantiateVmTemplateParams) (*VM, error)

CreateStandaloneVMFromTemplate creates a standalone VM from a template

func (*Vdc) CreateStandaloneVMFromTemplateAsync

func (vdc *Vdc) CreateStandaloneVMFromTemplateAsync(params *types.InstantiateVmTemplateParams) (Task, error)

CreateStandaloneVMFromTemplateAsync starts a standalone VM creation using a template

func (*Vdc) CreateStandaloneVm

func (vdc *Vdc) CreateStandaloneVm(params *types.CreateVmParams) (*VM, error)

CreateStandaloneVm creates a standalone VM without a template

func (*Vdc) CreateStandaloneVmAsync

func (vdc *Vdc) CreateStandaloneVmAsync(params *types.CreateVmParams) (Task, error)

CreateStandaloneVmAsync starts a standalone VM creation without a template, returning a task

func (*Vdc) CreateVappFromTemplate

func (vdc *Vdc) CreateVappFromTemplate(template *types.InstantiateVAppTemplateParams) (*VApp, error)

CreateVappFromTemplate instantiates a new vApp from a vApp template The template argument must contain at least: * Name * Source (a reference to the source vApp template)

func (*Vdc) CreateVmAffinityRule

func (vdc *Vdc) CreateVmAffinityRule(affinityRuleDef *types.VmAffinityRule) (*VmAffinityRule, error)

CreateVmAffinityRule is a wrap around CreateVmAffinityRuleAsync that handles the task and returns the finished object

func (*Vdc) CreateVmAffinityRuleAsync

func (vdc *Vdc) CreateVmAffinityRuleAsync(affinityRuleDef *types.VmAffinityRule) (Task, error)

CreateVmAffinityRuleAsync creates a new VM affinity rule, and returns a task that handles the operation

func (*Vdc) Delete

func (vdc *Vdc) Delete(force bool, recursive bool) (Task, error)

Deletes the vdc, returning an error of the vCD call fails. API Documentation: https://code.vmware.com/apis/220/vcloud#/doc/doc/operations/DELETE-Vdc.html

func (*Vdc) DeleteControlAccess

func (vdc *Vdc) DeleteControlAccess(useTenantContext bool) (*types.ControlAccessParams, error)

DeleteControlAccess makes stop sharing VDC with anyone

func (*Vdc) DeleteMetadata deprecated

func (vdc *Vdc) DeleteMetadata(key string) (Vdc, error)

Deprecated: use Vdc.DeleteMetadataEntry.

func (*Vdc) DeleteMetadataAsync deprecated

func (vdc *Vdc) DeleteMetadataAsync(key string) (Task, error)

Deprecated: use Vdc.DeleteMetadataEntryAsync.

func (*Vdc) DeleteMetadataEntry

func (vdc *Vdc) DeleteMetadataEntry(key string) error

DeleteMetadataEntry deletes VDC metadata by key provided as input and waits for the task to finish. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.DeleteMetadataEntryWithDomain

func (*Vdc) DeleteMetadataEntryAsync

func (vdc *Vdc) DeleteMetadataEntryAsync(key string) (Task, error)

DeleteMetadataEntryAsync deletes VDC metadata depending on key provided as input and returns the task. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.DeleteMetadataEntryWithDomainAsync

func (*Vdc) DeleteNsxvIpSetById

func (vdc *Vdc) DeleteNsxvIpSetById(id string) error

DeleteNsxvIpSetById deletes IP set by its ID which is formatted as f9daf2da-b4f9-4921-a2f4-d77a943a381c:ipset-9

func (*Vdc) DeleteNsxvIpSetByName

func (vdc *Vdc) DeleteNsxvIpSetByName(name string) error

DeleteNsxvIpSetById deletes IP set by its name

func (*Vdc) DeleteOpenApiOrgVdcNetworkDhcp

func (vdc *Vdc) DeleteOpenApiOrgVdcNetworkDhcp(orgNetworkId string) error

DeleteOpenApiOrgVdcNetworkDhcp allows to perform HTTP DELETE request on DHCP pool configuration for specified Org VDC Network ID

func (*Vdc) DeleteVdcNetworkProfile

func (vdc *Vdc) DeleteVdcNetworkProfile() error

DeleteVdcNetworkProfile deletes VDC Network Profile Configuration

func (*Vdc) DeleteWait

func (vdc *Vdc) DeleteWait(force bool, recursive bool) error

Deletes the vdc and waits for the asynchronous task to complete.

func (*Vdc) FindDiskByHREF

func (vdc *Vdc) FindDiskByHREF(href string) (*Disk, error)

Find an independent disk by disk href in VDC Deprecated: Use VDC.GetDiskByHref()

func (*Vdc) FindEdgeGateway deprecated

func (vdc *Vdc) FindEdgeGateway(edgegateway string) (EdgeGateway, error)

Deprecated: use GetEdgeGatewayByName

func (*Vdc) FindEdgeGatewayNameByNetwork

func (vdc *Vdc) FindEdgeGatewayNameByNetwork(networkName string) (string, error)

FindEdgeGatewayNameByNetwork searches the VDC for a connection between an edge gateway and a given network. On success, returns the name of the edge gateway

func (*Vdc) FindMediaImage

func (vdc *Vdc) FindMediaImage(mediaName string) (MediaItem, error)

FindMediaImage returns media image found in system using `name` as query. Can find a few of them if media with same name exist in different catalogs. Deprecated: Use catalog.GetMediaByName()

func (*Vdc) FindOsFromId

func (vdc *Vdc) FindOsFromId(hardwareVersion *types.VirtualHardwareVersion, osId string) (*types.OperatingSystemInfoType, error)

FindOsFromId attempts to find a OS by ID using the given hardware version

func (*Vdc) FindStorageProfileReference

func (vdc *Vdc) FindStorageProfileReference(name string) (types.Reference, error)

func (*Vdc) FindVAppByID deprecated

func (vdc *Vdc) FindVAppByID(vappid string) (VApp, error)

Deprecated: use vdc.GetVAppById instead

func (*Vdc) FindVAppByName deprecated

func (vdc *Vdc) FindVAppByName(vapp string) (VApp, error)

Deprecated: use vdc.GetVAppByName instead

func (*Vdc) FindVDCNetwork deprecated

func (vdc *Vdc) FindVDCNetwork(network string) (OrgVDCNetwork, error)

Deprecated: use GetOrgVdcNetworkByName

func (*Vdc) FindVMByName deprecated

func (vdc *Vdc) FindVMByName(vapp VApp, vm string) (VM, error)

Deprecated: use vapp.GetVMByName instead

func (*Vdc) GetAllNsxtEdgeClusters

func (vdc *Vdc) GetAllNsxtEdgeClusters(queryParameters url.Values) ([]*NsxtEdgeCluster, error)

GetAllNsxtEdgeClusters retrieves all available Edge Clusters for a particular VDC

func (*Vdc) GetAllNsxtEdgeGateways

func (vdc *Vdc) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error)

GetAllNsxtEdgeGateways allows to retrieve all NSX-T edge gateways for specific VDC

func (*Vdc) GetAllNsxtFirewallGroups

func (vdc *Vdc) GetAllNsxtFirewallGroups(queryParameters url.Values, firewallGroupType string) ([]*NsxtFirewallGroup, error)

GetAllNsxtFirewallGroups allows users to retrieve all NSX-T Firewall Groups

func (*Vdc) GetAllNsxtImportableSwitches

func (vdc *Vdc) GetAllNsxtImportableSwitches() ([]*NsxtImportableSwitch, error)

GetAllNsxtImportableSwitches retrieves all available importable switches which can be consumed for creating NSX-T "Imported" Org VDC network

Note. OpenAPI endpoint does not exist for this resource and by default endpoint "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not already consumed in Org VDC networks) and there is no way to get them all.

func (*Vdc) GetAllNsxvIpSets

func (vdc *Vdc) GetAllNsxvIpSets() ([]*types.EdgeIpSet, error)

GetAllNsxvIpSets retrieves all IP sets and returns []*types.EdgeIpSet or an error of type ErrorEntityNotFound if there are no IP sets

func (*Vdc) GetAllOpenApiOrgVdcNetworks

func (vdc *Vdc) GetAllOpenApiOrgVdcNetworks(queryParameters url.Values) ([]*OpenApiOrgVdcNetwork, error)

GetAllOpenApiOrgVdcNetworks allows to retrieve all NSX-T or NSX-V Org VDC networks in Vdc

Note. If pageSize > 32 it will be limited to maximum of 32 in this function because API validation does not allow for higher number

func (*Vdc) GetAllVcenterImportableDvpgs

func (vdc *Vdc) GetAllVcenterImportableDvpgs(queryParameters url.Values) ([]*VcenterImportableDvpg, error)

GetAllVcenterImportableDvpgs retrieves all DVPGs that are available for import within the Org VDC.

Note. API returns only unused DVPGs. If the DVPG is already consumed - it will not be returned.

func (*Vdc) GetAllVmAffinityRuleList

func (vdc *Vdc) GetAllVmAffinityRuleList() ([]*types.VmAffinityRule, error)

GetAllVmAffinityRuleList retrieves all VM affinity and anti-affinity rules

func (*Vdc) GetCapabilities

func (vdc *Vdc) GetCapabilities() ([]types.VdcCapability, error)

GetCapabilities allows to retrieve a list of VDC capabilities. It has a list of values. Some particularly useful are: * networkProvider - overlay stack responsible for providing network functionality. (NSX_V or NSX_T) * crossVdc - supports cross vDC network creation

func (*Vdc) GetControlAccess

func (vdc *Vdc) GetControlAccess(useTenantContext bool) (*types.ControlAccessParams, error)

GetControlAccess read and returns the control access parameters from a VDC

func (*Vdc) GetDefaultStorageProfileReference

func (vdc *Vdc) GetDefaultStorageProfileReference(storageprofiles *types.QueryResultRecordsType) (types.Reference, error)

GetDefaultStorageProfileReference should find the default storage profile for a VDC Deprecated: unused and implemented in the wrong way. Use adminVdc.GetDefaultStorageProfileReference instead

func (*Vdc) GetDiskByHref

func (vdc *Vdc) GetDiskByHref(diskHref string) (*Disk, error)

GetDiskByHref finds a Disk by HREF On success, returns a pointer to the Disk structure and a nil error On failure, returns a nil pointer and an error

func (*Vdc) GetDiskById

func (vdc *Vdc) GetDiskById(diskId string, refresh bool) (*Disk, error)

GetDiskById finds a Disk by ID On success, returns a pointer to the Disk structure and a nil error On failure, returns a nil pointer and an error

func (*Vdc) GetDisksByName

func (vdc *Vdc) GetDisksByName(diskName string, refresh bool) (*[]Disk, error)

GetDisksByName finds one or more Disks by Name On success, returns a pointer to the Disk list and a nil error On failure, returns a nil pointer and an error

func (*Vdc) GetEdgeGatewayByHref

func (vdc *Vdc) GetEdgeGatewayByHref(href string) (*EdgeGateway, error)

GetEdgeGatewayByHref retrieves an edge gateway from VDC by querying directly its HREF. The name passed as parameter is only used for error reporting

func (*Vdc) GetEdgeGatewayById

func (vdc *Vdc) GetEdgeGatewayById(id string, refresh bool) (*EdgeGateway, error)

GetEdgeGatewayById search VDC list of edge gateways for a given ID. If the id matches, it returns a pointer to an edge gateway object. On failure, it returns a nil object and an error

func (*Vdc) GetEdgeGatewayByName

func (vdc *Vdc) GetEdgeGatewayByName(name string, refresh bool) (*EdgeGateway, error)

GetEdgeGatewayByName search the VDC list of edge gateways for a given name. If the name matches, it returns a pointer to an edge gateway object. On failure, it returns a nil object and an error

func (*Vdc) GetEdgeGatewayByNameOrId

func (vdc *Vdc) GetEdgeGatewayByNameOrId(identifier string, refresh bool) (*EdgeGateway, error)

GetEdgeGatewayByNameOrId search the VDC list of edge gateways for a given name or ID. If the name or the ID match, it returns a pointer to an edge gateway object. On failure, it returns a nil object and an error

func (*Vdc) GetEdgeGatewayRecordsType

func (vdc *Vdc) GetEdgeGatewayRecordsType(refresh bool) (*types.QueryResultEdgeGatewayRecordsType, error)

GetEdgeGatewayRecordsType retrieves a list of edge gateways from VDC Deprecated: use QueryEdgeGatewayList instead

func (*Vdc) GetHardwareVersion

func (vdc *Vdc) GetHardwareVersion(name string) (*types.VirtualHardwareVersion, error)

Get the details of a hardware version

func (*Vdc) GetHighestHardwareVersion

func (vdc *Vdc) GetHighestHardwareVersion() (*types.VirtualHardwareVersion, error)

Get highest supported hardware version of a VDC

func (*Vdc) GetMetadata

func (vdc *Vdc) GetMetadata() (*types.Metadata, error)

GetMetadata returns VDC metadata.

func (*Vdc) GetMetadataByKey

func (vdc *Vdc) GetMetadataByKey(key string, isSystem bool) (*types.MetadataValue, error)

GetMetadataByKey returns VDC metadata corresponding to the given key and domain.

func (*Vdc) GetNetworkList

func (vdc *Vdc) GetNetworkList() ([]*types.QueryResultOrgVdcNetworkRecordType, error)

GetNetworkList returns a list of networks for the VDC

func (*Vdc) GetNsxtAppPortProfileByName

func (vdc *Vdc) GetNsxtAppPortProfileByName(name, scope string) (*NsxtAppPortProfile, error)

GetNsxtAppPortProfileByName allows users to retrieve Application Port Profiles for specific scope. More details in documentation for types.NsxtAppPortProfile

Note. Names are enforced to be unique per scope

func (*Vdc) GetNsxtEdgeClusterByName

func (vdc *Vdc) GetNsxtEdgeClusterByName(name string) (*NsxtEdgeCluster, error)

GetNsxtEdgeClusterByName retrieves a particular NSX-T Edge Cluster by name available for that VDC Note: Multiple NSX-T Edge Clusters with the same name may exist.

func (*Vdc) GetNsxtEdgeGatewayById

func (vdc *Vdc) GetNsxtEdgeGatewayById(id string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayById allows retrieving NSX-T edge gateway by ID for specific VDC

func (*Vdc) GetNsxtEdgeGatewayByName

func (vdc *Vdc) GetNsxtEdgeGatewayByName(name string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayByName allows to retrieve NSX-T edge gateway by Name for specific VDC

func (*Vdc) GetNsxtFirewallGroupById

func (vdc *Vdc) GetNsxtFirewallGroupById(id string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupById retrieves NSX-T Firewall Group by ID

func (*Vdc) GetNsxtFirewallGroupByName

func (vdc *Vdc) GetNsxtFirewallGroupByName(name, firewallGroupType string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupByName allows users to retrieve Firewall Group by Name firewallGroupType can be one of the following: * types.FirewallGroupTypeSecurityGroup - for NSX-T Security Groups * types.FirewallGroupTypeIpSet - for NSX-T IP Sets * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups

Note. One might get an error if IP Set and Security Group exist with the same name (two objects of the same type cannot exist) and firewallGroupType is left empty.

func (*Vdc) GetNsxtImportableSwitchByName

func (vdc *Vdc) GetNsxtImportableSwitchByName(name string) (*NsxtImportableSwitch, error)

GetNsxtImportableSwitchByName retrieves a particular NSX-T Segment by name available for that VDC

Note. OpenAPI endpoint does not exist for this resource and by default endpoint "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not already consumed in Org VDC networks) and there is no way to get them all (including the used ones).

func (*Vdc) GetNsxvIpSetById

func (vdc *Vdc) GetNsxvIpSetById(id string) (*types.EdgeIpSet, error)

GetNsxvIpSetById searches for IP set by ID. Returns ErrorEntityNotFound if an IP set is not found

func (*Vdc) GetNsxvIpSetByName

func (vdc *Vdc) GetNsxvIpSetByName(name string) (*types.EdgeIpSet, error)

GetNsxvIpSetByName searches for IP set by name. Names are unique therefore it can find only one. Returns ErrorEntityNotFound if an IP set is not found

func (*Vdc) GetNsxvIpSetByNameOrId

func (vdc *Vdc) GetNsxvIpSetByNameOrId(identifier string) (*types.EdgeIpSet, error)

GetNsxvIpSetByNameOrId uses the same identifier to search by name and by ID. Priority is to try and find the IP set by ID. If it is not found - then a search by name is performed.

func (*Vdc) GetOpenApiOrgVdcNetworkById

func (vdc *Vdc) GetOpenApiOrgVdcNetworkById(id string) (*OpenApiOrgVdcNetwork, error)

GetOpenApiOrgVdcNetworkById allows to retrieve both - NSX-T and NSX-V Org VDC networks

func (*Vdc) GetOpenApiOrgVdcNetworkByName

func (vdc *Vdc) GetOpenApiOrgVdcNetworkByName(name string) (*OpenApiOrgVdcNetwork, error)

GetOpenApiOrgVdcNetworkByName allows to retrieve both - NSX-T and NSX-V Org VDC networks

func (*Vdc) GetOpenApiOrgVdcNetworkDhcp

func (vdc *Vdc) GetOpenApiOrgVdcNetworkDhcp(orgNetworkId string) (*OpenApiOrgVdcNetworkDhcp, error)

GetOpenApiOrgVdcNetworkDhcp allows to retrieve DHCP configuration for specific Org VDC network ID specified as orgNetworkId using OpenAPI

func (*Vdc) GetOrgVdcNetworkByHref

func (vdc *Vdc) GetOrgVdcNetworkByHref(href string) (*OrgVDCNetwork, error)

GetOrgVdcNetworkByHref returns an Org VDC Network reference if the network HREF matches an existing one. If no valid external network is found, it returns a nil Network reference and an error

func (*Vdc) GetOrgVdcNetworkById

func (vdc *Vdc) GetOrgVdcNetworkById(id string, refresh bool) (*OrgVDCNetwork, error)

GetOrgVdcNetworkById returns an Org VDC Network reference if the network ID matches an existing one. If no valid external network is found, it returns a nil Network reference and an error

func (*Vdc) GetOrgVdcNetworkByName

func (vdc *Vdc) GetOrgVdcNetworkByName(name string, refresh bool) (*OrgVDCNetwork, error)

GetOrgVdcNetworkByName returns an Org VDC Network reference if the network name matches an existing one. If no valid external network is found, it returns a nil Network reference and an error

func (*Vdc) GetOrgVdcNetworkByNameOrId

func (vdc *Vdc) GetOrgVdcNetworkByNameOrId(identifier string, refresh bool) (*OrgVDCNetwork, error)

GetOrgVdcNetworkByNameOrId returns a VDC Network reference if either the network name or ID matches an existing one. If no valid external network is found, it returns a nil ExternalNetwork reference and an error

func (*Vdc) GetVAppByHref

func (vdc *Vdc) GetVAppByHref(vappHref string) (*VApp, error)

GetVappByHref returns a vApp reference by running a vCD API call If no valid vApp is found, it returns a nil VApp reference and an error

func (*Vdc) GetVAppById

func (vdc *Vdc) GetVAppById(id string, refresh bool) (*VApp, error)

GetVappById returns a vApp reference if the vApp ID matches an existing one. If no valid vApp is found, it returns a nil VApp reference and an error

func (*Vdc) GetVAppByName

func (vdc *Vdc) GetVAppByName(vappName string, refresh bool) (*VApp, error)

GetVappByName returns a vApp reference if the vApp Name matches an existing one. If no valid vApp is found, it returns a nil VApp reference and an error

func (*Vdc) GetVAppByNameOrId

func (vdc *Vdc) GetVAppByNameOrId(identifier string, refresh bool) (*VApp, error)

GetVappByNameOrId returns a vApp reference if either the vApp name or ID matches an existing one. If no valid vApp is found, it returns a nil VApp reference and an error

func (*Vdc) GetVAppTemplateByName

func (vdc *Vdc) GetVAppTemplateByName(vAppTemplateName string) (*VAppTemplate, error)

GetVAppTemplateByName finds a VAppTemplate by Name On success, returns a pointer to the VAppTemplate structure and a nil error On failure, returns a nil pointer and an error

func (*Vdc) GetVAppTemplateByNameOrId

func (vdc *Vdc) GetVAppTemplateByNameOrId(identifier string, refresh bool) (*VAppTemplate, error)

GetVAppTemplateByNameOrId finds a vApp Template by Name or ID. On success, returns a pointer to the VAppTemplate structure and a nil error On failure, returns a nil pointer and an error

func (*Vdc) GetVappAccessControl

func (vdc *Vdc) GetVappAccessControl(vappIdentifier string, useTenantContext bool) (*types.ControlAccessParams, error)

GetVappAccessControl is a convenience method to retrieve access control for a vApp from a VDC. The input variable vappIdentifier can be either the vApp name or its ID

func (*Vdc) GetVappList

func (vdc *Vdc) GetVappList() []*types.ResourceReference

GetVappList returns the list of vApps for a VDC

func (*Vdc) GetVcenterImportableDvpgByName

func (vdc *Vdc) GetVcenterImportableDvpgByName(name string) (*VcenterImportableDvpg, error)

GetVcenterImportableDvpgByName retrieves a DVPG that is available for import within the Org VDC.

func (*Vdc) GetVdcNetworkProfile

func (vdc *Vdc) GetVdcNetworkProfile() (*types.VdcNetworkProfile, error)

GetVdcNetworkProfile retrieves VDC Network Profile configuration vdc.Vdc.ID must be set and valid present

func (*Vdc) GetVmAffinityRuleByHref

func (vdc *Vdc) GetVmAffinityRuleByHref(href string) (*VmAffinityRule, error)

GetVmAffinityRuleByHref finds a VM affinity or anti-affinity rule by HREF

func (*Vdc) GetVmAffinityRuleById

func (vdc *Vdc) GetVmAffinityRuleById(id string) (*VmAffinityRule, error)

GetVmAffinityRuleById retrieves a VM affinity or anti-affinity rule by ID

func (*Vdc) GetVmAffinityRuleByNameOrId

func (vdc *Vdc) GetVmAffinityRuleByNameOrId(identifier string) (*VmAffinityRule, error)

GetVmAffinityRuleByNameOrId retrieves an affinity or anti-affinity rule by name or ID Given the possibility of a name identifying multiple items, this function may also fail when the search by name returns more than one item.

func (*Vdc) GetVmAffinityRuleList

func (vdc *Vdc) GetVmAffinityRuleList() ([]*types.VmAffinityRule, error)

GetVmAffinityRuleList retrieves VM affinity rules

func (*Vdc) GetVmAffinityRulesByName

func (vdc *Vdc) GetVmAffinityRulesByName(name string, polarity string) ([]*VmAffinityRule, error)

GetVmAffinityRulesByName finds the rules with the given name Note that name does not have to be unique, so a search by name can match several items If polarity is indicated, the function retrieves only the rules with the given polarity

func (*Vdc) GetVmAntiAffinityRuleList

func (vdc *Vdc) GetVmAntiAffinityRuleList() ([]*types.VmAffinityRule, error)

GetVmAntiAffinityRuleList retrieves VM anti-affinity rules

func (*Vdc) InstantiateVAppTemplate deprecated

func (vdc *Vdc) InstantiateVAppTemplate(template *types.InstantiateVAppTemplateParams) error

Deprecated: wrong implementation and result Use vdc.CreateVappFromTemplate instead

func (*Vdc) IsNsxt

func (vdc *Vdc) IsNsxt() bool

IsNsxt is a convenience function to check if VDC is backed by NSX-T pVdc If error occurs - it returns false

func (*Vdc) IsNsxv

func (vdc *Vdc) IsNsxv() bool

IsNsxv is a convenience function to check if VDC is backed by NSX-V pVdc If error occurs - it returns false

func (*Vdc) MergeMetadata

func (vdc *Vdc) MergeMetadata(typedValue string, metadata map[string]interface{}) error

MergeMetadata merges VDC metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.MergeMetadataWithMetadataValues

func (*Vdc) MergeMetadataAsync

func (vdc *Vdc) MergeMetadataAsync(typedValue string, metadata map[string]interface{}) (Task, error)

MergeMetadataAsync merges VDC metadata provided as a key-value map of type `typedValue` with the already present in VCD, then waits for the task to complete. Note: Requires system administrator privileges. Deprecated: Use AdminVdc.MergeMetadataWithMetadataValuesAsync

func (*Vdc) Query

func (vdc *Vdc) Query(params map[string]string) (Results, error)

func (*Vdc) QueryAllMedia

func (vdc *Vdc) QueryAllMedia(mediaName string) ([]*MediaRecord, error)

QueryAllMedia returns all media images found in system using `name` as query.

func (*Vdc) QueryCatalogItemList

func (vdc *Vdc) QueryCatalogItemList() ([]*types.QueryResultCatalogItemType, error)

QueryCatalogItemList returns a list of Catalog Item for the given VDC

func (*Vdc) QueryDisk

func (vdc *Vdc) QueryDisk(diskName string) (DiskRecord, error)

QueryDisk find independent disk using disk name. Returns DiskRecord type

func (*Vdc) QueryDisks

func (vdc *Vdc) QueryDisks(diskName string) (*[]*types.DiskRecordType, error)

QueryDisks find independent disks using disk name. Returns list of DiskRecordType

func (*Vdc) QueryEdgeGatewayList

func (vdc *Vdc) QueryEdgeGatewayList() ([]*types.QueryResultEdgeGatewayRecordType, error)

QueryEdgeGatewayList returns a list of all the edge gateways in a VDC

func (*Vdc) QueryMediaList

func (vdc *Vdc) QueryMediaList() ([]*types.MediaRecordType, error)

QueryMediaList retrieves a list of media items for the VDC

func (*Vdc) QueryVM

func (vdc *Vdc) QueryVM(vappName, vmName string) (VMRecord, error)

Find vm using vApp name and VM name. Returns VMRecord query return type

func (*Vdc) QueryVappSynchronizedVmTemplate

func (vdc *Vdc) QueryVappSynchronizedVmTemplate(catalogName, vappTemplateName, vmNameInTemplate string) (*types.QueryResultVMRecordType, error)

QueryVappSynchronizedVmTemplate Finds a catalog-synchronized VM inside a vApp Template using catalog name, vApp template name, VN name in template. Returns types.QueryResultVMRecordType if it finds the VM and it's synchronized in the catalog. Returns ErrorEntityNotFound if it's not found. Returns other error if it finds more than one or the search fails.

func (*Vdc) QueryVappTemplateList

func (vdc *Vdc) QueryVappTemplateList() ([]*types.QueryResultVappTemplateType, error)

QueryVappTemplateList returns a list of vApp templates for the given VDC

func (*Vdc) QueryVappTemplateWithName

func (vdc *Vdc) QueryVappTemplateWithName(vAppTemplateName string) (*types.QueryResultVappTemplateType, error)

QueryVappTemplateWithName returns one vApp template for the given VDC with the given name. Returns an error if it finds more than one.

func (*Vdc) QueryVappVmTemplate

func (vdc *Vdc) QueryVappVmTemplate(catalogName, vappTemplateName, vmNameInTemplate string) (*types.QueryResultVMRecordType, error)

QueryVappVmTemplate Finds VM template using catalog name, vApp template name, VN name in template. Returns types.QueryResultVMRecordType if it finds the VM. Returns ErrorEntityNotFound if it's not found. Returns other error if it finds more than one or the search fails.

func (*Vdc) QueryVmById

func (vdc *Vdc) QueryVmById(id string) (*VM, error)

QueryVmById retrieves a standalone VM by ID in a Vdc It can also retrieve a standard VM (created from vApp)

func (*Vdc) QueryVmByName

func (vdc *Vdc) QueryVmByName(name string) (*VM, error)

QueryVmByName finds a standalone VM by name The search fails either if there are more VMs with the wanted name, or if there are none It can also retrieve a standard VM (created from vApp)

func (*Vdc) QueryVmList

func (vdc *Vdc) QueryVmList(filter types.VmQueryFilter) ([]*types.QueryResultVMRecordType, error)

QueryVmList returns a list of all VMs in a given VDC

func (*Vdc) QueryWithNotEncodedParams

func (vdc *Vdc) QueryWithNotEncodedParams(params map[string]string, notEncodedParams map[string]string) (Results, error)

func (*Vdc) QueryWithNotEncodedParamsWithApiVersion

func (vdc *Vdc) QueryWithNotEncodedParamsWithApiVersion(params map[string]string, notEncodedParams map[string]string, apiVersion string) (Results, error)

func (*Vdc) Refresh

func (vdc *Vdc) Refresh() error

func (*Vdc) SearchByFilter

func (vdc *Vdc) SearchByFilter(queryType, parentField string, criteria *FilterDef) ([]QueryItem, string, error)

SearchByFilter runs the search for a specific VDC The 'parentField' argument defines which filter will be added, depending on the items we search for:

  • 'vdc' contains the VDC HREF or ID
  • 'vdcName' contains the VDC name

func (*Vdc) SetControlAccess

func (vdc *Vdc) SetControlAccess(isSharedToEveryOne bool, everyoneAccessLevel string, accessSettings []*types.AccessSetting, useTenantContext bool) (*types.ControlAccessParams, error)

SetControlAccess sets VDC control access parameters for everybody or individual users/groups. This method either sets control for everybody, passing isSharedToEveryOne true, and everyoneAccessLevel (currently only ReadOnly is supported for VDC) and nil for accessSettings, or can set access control for specific users/groups, passing isSharedToEveryOne false, everyoneAccessLevel "" and accessSettings filled as desired. The method will fail if tries to configure access control for everybody and passes individual users/groups to configure. It returns the control access parameters that are read from the API (using Vdc.GetControlAccess).

func (*Vdc) UpdateNsxvIpSet

func (vdc *Vdc) UpdateNsxvIpSet(ipSetConfig *types.EdgeIpSet) (*types.EdgeIpSet, error)

UpdateNsxvIpSet sends all fields of ipSetConfig. Omiting a value may reset it. ID is mandatory to perform update. Because the API always requires a Revision to be sent - the update fetches latest revision number automatically and embeds into the update structure.

func (*Vdc) UpdateOpenApiOrgVdcNetworkDhcp

func (vdc *Vdc) UpdateOpenApiOrgVdcNetworkDhcp(orgNetworkId string, orgVdcNetworkDhcpConfig *types.OpenApiOrgVdcNetworkDhcp) (*OpenApiOrgVdcNetworkDhcp, error)

UpdateOpenApiOrgVdcNetworkDhcp allows to update DHCP configuration for specific Org VDC network ID specified as orgNetworkId using OpenAPI

func (*Vdc) UpdateVdcNetworkProfile

func (vdc *Vdc) UpdateVdcNetworkProfile(vdcNetworkProfileConfig *types.VdcNetworkProfile) (*types.VdcNetworkProfile, error)

UpdateVdcNetworkProfile updates the VDC Network Profile configuration

Note. Whenever updating VDC Network Profile it is required to send all fields (not only the changed ones) as VCD will remove other configuration. Best practice is to fetch current configuration of VDC Network Profile using GetVdcNetworkProfile, alter it with new values and submit it to UpdateVdcNetworkProfile.

func (*Vdc) UploadMediaImage deprecated

func (vdc *Vdc) UploadMediaImage(mediaName, mediaDescription, filePath string, uploadPieceSize int64) (UploadTask, error)

Uploads an ISO file as media. This method only uploads bits to vCD spool area. Returns errors if any occur during upload from vCD or upload process. On upload fail client may need to remove vCD catalog item which waits for files to be uploaded.

Deprecated: This method is broken in API V32.0+. Please use catalog.UploadMediaImage because VCD does not support uploading directly to VDC anymore.

type VdcComputePolicy

type VdcComputePolicy struct {
	VdcComputePolicy *types.VdcComputePolicy
	Href             string
	// contains filtered or unexported fields
}

VdcComputePolicy defines a VDC Compute Policy, which can be a VM Sizing Policy, a VM Placement Policy or a vGPU Policy. Deprecated: Use VdcComputePolicyV2 instead

func (*VdcComputePolicy) Delete

func (vdcComputePolicy *VdcComputePolicy) Delete() error

Delete deletes VDC compute policy Deprecated: use VdcComputePolicyV2.Delete

func (*VdcComputePolicy) Update

func (vdcComputePolicy *VdcComputePolicy) Update() (*VdcComputePolicy, error)

Update existing VDC compute policy Deprecated: use VdcComputePolicyV2.Update

type VdcComputePolicyV2

type VdcComputePolicyV2 struct {
	VdcComputePolicyV2 *types.VdcComputePolicyV2
	Href               string
	// contains filtered or unexported fields
}

VdcComputePolicyV2 defines a VDC Compute Policy, which can be a VM Sizing Policy, a VM Placement Policy or a vGPU Policy.

func (*VdcComputePolicyV2) Delete

func (vdcComputePolicy *VdcComputePolicyV2) Delete() error

Delete deletes VDC Compute Policy (V2)

func (*VdcComputePolicyV2) Update

func (vdcComputePolicy *VdcComputePolicyV2) Update() (*VdcComputePolicyV2, error)

Update existing VDC Compute Policy (V2)

type VdcGroup

type VdcGroup struct {
	VdcGroup *types.VdcGroup
	Href     string
	// contains filtered or unexported fields
}

VdcGroup is a structure defining a VdcGroup in Organization

func (*VdcGroup) ActivateDfw

func (vdcGroup *VdcGroup) ActivateDfw() (*VdcGroup, error)

ActivateDfw activates distributed firewall

func (*VdcGroup) CreateDistributedFirewallRule

func (vdcGroup *VdcGroup) CreateDistributedFirewallRule(optionalAboveRuleId string, rule *types.DistributedFirewallRule) (*DistributedFirewall, *DistributedFirewallRule, error)

CreateDistributedFirewallRule is a non-thread safe wrapper around "vdcGroups/%s/dfwPolicies/%s/rules" endpoint which handles all distributed firewall (DFW) rules at once. While there is no real endpoint to create single firewall rule, it is a requirements for some cases (e.g. using in Terraform) The code works by doing the following steps:

1. Getting all Distributed Firewall Rules and storing them in private intermediate type`distributedFirewallRulesRaw` which holds a []json.RawMessage (text) instead of exact types. This will prevent altering existing rules in any way (for example if a new field appears in schema in future VCD versions)

2. Converting the given `rule` into json.RawMessage so that it is provided in the same format as other already retrieved rules

3. Creating a new structure of []json.RawMessage which puts the new rule into one of places: 3.1. to the end of []json.RawMessage - bottom of the list 3.2. if `optionalAboveRuleId` argument is specified - identifying the position and placing new rule above it 4. Perform a PUT (update) call to the "vdcGroups/%s/dfwPolicies/%s/rules" endpoint using the newly constructed payload

Note. Running this function concurrently will corrupt firewall rules as it uses an endpoint that manages all rules ("vdcGroups/%s/dfwPolicies/%s/rules")

func (*VdcGroup) CreateNsxtFirewallGroup

func (vdcGroup *VdcGroup) CreateNsxtFirewallGroup(firewallGroupConfig *types.NsxtFirewallGroup) (*NsxtFirewallGroup, error)

CreateNsxtFirewallGroup allows users to create NSX-T Firewall Group

func (*VdcGroup) CreateOpenApiOrgVdcNetwork

func (vdcGroup *VdcGroup) CreateOpenApiOrgVdcNetwork(orgVdcNetworkConfig *types.OpenApiOrgVdcNetwork) (*OpenApiOrgVdcNetwork, error)

CreateOpenApiOrgVdcNetwork allows to create NSX-T or NSX-V Org VDC network

func (*VdcGroup) DeactivateDfw

func (vdcGroup *VdcGroup) DeactivateDfw() (*VdcGroup, error)

DeactivateDfw deactivates distributed firewall

func (*VdcGroup) Delete

func (vdcGroup *VdcGroup) Delete() error

Delete deletes VDC group

func (*VdcGroup) DeleteAllDistributedFirewallRules

func (vdcGroup *VdcGroup) DeleteAllDistributedFirewallRules() error

DeleteAllDistributedFirewallRules removes all Distributed Firewall rules

Note. This function works only with `default` policy as this was the only supported when this functions was created

func (*VdcGroup) DisableDefaultPolicy

func (vdcGroup *VdcGroup) DisableDefaultPolicy() (*VdcGroup, error)

DisableDefaultPolicy deactivates default dfw policy

func (*VdcGroup) EnableDefaultPolicy

func (vdcGroup *VdcGroup) EnableDefaultPolicy() (*VdcGroup, error)

EnableDefaultPolicy activates default dfw policy

func (*VdcGroup) ForceDelete

func (vdcGroup *VdcGroup) ForceDelete(force bool) error

ForceDelete deletes VDC group with force parameter if enabled

func (*VdcGroup) GenericUpdate

func (vdcGroup *VdcGroup) GenericUpdate() (*VdcGroup, error)

GenericUpdate updates existing Vdc group. API allows changing only name and description and participating VCDs

func (*VdcGroup) GetAllNsxtEdgeGateways

func (vdcGroup *VdcGroup) GetAllNsxtEdgeGateways(queryParameters url.Values) ([]*NsxtEdgeGateway, error)

GetAllNsxtEdgeGateways allows to retrieve all NSX-T edge gateways for specific VDC

func (*VdcGroup) GetAllNsxtImportableSwitches

func (vdcGroup *VdcGroup) GetAllNsxtImportableSwitches() ([]*NsxtImportableSwitch, error)

GetAllNsxtImportableSwitches retrieves all available importable switches which can be consumed for creating NSX-T "Imported" Org VDC network

Note. OpenAPI endpoint does not exist for this resource and by default endpoint "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not already consumed in Org VDC networks) and there is no way to get them all.

func (*VdcGroup) GetAllOpenApiOrgVdcNetworks

func (vdcGroup *VdcGroup) GetAllOpenApiOrgVdcNetworks(queryParameters url.Values) ([]*OpenApiOrgVdcNetwork, error)

GetAllOpenApiOrgVdcNetworks allows to retrieve all NSX-T or NSX-V Org VDC networks in Vdc

Note. If pageSize > 32 it will be limited to maximum of 32 in this function because API validation does not allow for higher number

func (*VdcGroup) GetCapabilities

func (vdcGroup *VdcGroup) GetCapabilities() ([]types.VdcCapability, error)

GetCapabilities allows to retrieve a list of VDC capabilities. It has a list of values. Some particularly useful are: * networkProvider - overlay stack responsible for providing network functionality. (NSX_V or NSX_T) * crossVdc - supports cross vDC network creation

func (*VdcGroup) GetDfwPolicies

func (vdcGroup *VdcGroup) GetDfwPolicies() (*types.DfwPolicies, error)

GetDfwPolicies retrieves all distributed firewall policies

func (*VdcGroup) GetDistributedFirewall

func (vdcGroup *VdcGroup) GetDistributedFirewall() (*DistributedFirewall, error)

GetDistributedFirewall retrieves Distributed Firewall in a VDC Group which contains all rules

Note. This function works only with `default` policy as this was the only supported when this functions was created

func (*VdcGroup) GetDistributedFirewallRuleById

func (vdcGroup *VdcGroup) GetDistributedFirewallRuleById(id string) (*DistributedFirewallRule, error)

GetDistributedFirewallRuleById retrieves single Distributed Firewall Rule by ID

func (*VdcGroup) GetDistributedFirewallRuleByName

func (vdcGroup *VdcGroup) GetDistributedFirewallRuleByName(name string) (*DistributedFirewallRule, error)

GetDistributedFirewallRuleByName retrieves single firewall rule by name

func (*VdcGroup) GetNsxtAppPortProfileByName

func (vdcGroup *VdcGroup) GetNsxtAppPortProfileByName(name, scope string) (*NsxtAppPortProfile, error)

GetNsxtAppPortProfileByName allows users to retrieve Application Port Profiles for specific scope. More details in documentation for types.NsxtAppPortProfile

Note. Names are enforced to be unique per scope

func (*VdcGroup) GetNsxtEdgeGatewayByName

func (vdcGroup *VdcGroup) GetNsxtEdgeGatewayByName(name string) (*NsxtEdgeGateway, error)

GetNsxtEdgeGatewayByName allows to retrieve NSX-T edge gateway by Name for specific VDC Group

func (*VdcGroup) GetNsxtFirewallGroupById

func (vdcGroup *VdcGroup) GetNsxtFirewallGroupById(id string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupById retrieves NSX-T Firewall Group by ID

func (*VdcGroup) GetNsxtFirewallGroupByName

func (vdcGroup *VdcGroup) GetNsxtFirewallGroupByName(name string, firewallGroupType string) (*NsxtFirewallGroup, error)

GetNsxtFirewallGroupByName allows users to retrieve Firewall Group by Name in a particular VDC Group firewallGroupType can be one of the following: * types.FirewallGroupTypeSecurityGroup - for NSX-T Static Security Groups * types.FirewallGroupTypeVmCriteria - for NSX-T Dynamic Security Groups * types.FirewallGroupTypeIpSet - for NSX-T IP Sets * "" (empty) - search will not be limited and will get both - IP Sets and Security Groups

Note. One might get an error if IP Set and Security Group exist with the same name (two objects of the same type cannot exist) and firewallGroupType is left empty.

func (*VdcGroup) GetNsxtImportableSwitchByName

func (vdcGroup *VdcGroup) GetNsxtImportableSwitchByName(name string) (*NsxtImportableSwitch, error)

GetNsxtImportableSwitchByName retrieves a particular NSX-T Segment by name available for that VDC

Note. OpenAPI endpoint does not exist for this resource and by default endpoint "/network/orgvdcnetworks/importableswitches" returns only unused NSX-T importable switches (the ones that are not already consumed in Org VDC networks) and there is no way to get them all (including the used ones).

func (*VdcGroup) GetOpenApiOrgVdcNetworkById

func (vdcGroup *VdcGroup) GetOpenApiOrgVdcNetworkById(id string) (*OpenApiOrgVdcNetwork, error)

GetOpenApiOrgVdcNetworkById allows to retrieve both - NSX-T and NSX-V Org VDC Group networks

func (*VdcGroup) GetOpenApiOrgVdcNetworkByName

func (vdcGroup *VdcGroup) GetOpenApiOrgVdcNetworkByName(name string) (*OpenApiOrgVdcNetwork, error)

GetOpenApiOrgVdcNetworkByName allows to retrieve both - NSX-T and NSX-V Org VDC networks

func (*VdcGroup) IsNsxt

func (vdcGroup *VdcGroup) IsNsxt() bool

IsNsxt is a convenience function to check if VDC is backed by NSX-T pVdc If error occurs - it returns false

func (*VdcGroup) Update

func (vdcGroup *VdcGroup) Update(name, description string, participatingOrgVddIs []string) (*VdcGroup, error)

Update updates existing Vdc group. Allows changing only name and description and participating VCDs Not restrictive update method also available - GenericUpdate

func (*VdcGroup) UpdateDefaultDfwPolicies

func (vdcGroup *VdcGroup) UpdateDefaultDfwPolicies(defaultDfwPolicies types.DefaultPolicy) (*VdcGroup, error)

UpdateDefaultDfwPolicies updates distributed firewall default policies

func (*VdcGroup) UpdateDfwPolicies

func (vdcGroup *VdcGroup) UpdateDfwPolicies(dfwPolicies types.DfwPolicies) (*VdcGroup, error)

UpdateDfwPolicies updates distributed firewall policies

func (*VdcGroup) UpdateDistributedFirewall

func (vdcGroup *VdcGroup) UpdateDistributedFirewall(dfwRules *types.DistributedFirewallRules) (*DistributedFirewall, error)

UpdateDistributedFirewall updates Distributed Firewall in a VDC Group

Note. This function works only with `default` policy as this was the only supported when this functions was created

type VdcTemplate

type VdcTemplate struct {
	VdcTemplate *types.VMWVdcTemplate
	// contains filtered or unexported fields
}

func (*VdcTemplate) Delete

func (vdcTemplate *VdcTemplate) Delete() error

Delete deletes the receiver VDC Template

func (*VdcTemplate) GetAccessControl

func (vdcTemplate *VdcTemplate) GetAccessControl() (*types.ControlAccessParams, error)

GetAccessControl retrieves the Access control configuration for the receiver VDC Template, which contains the Organizations that can read it.

func (*VdcTemplate) InstantiateVdc

func (vdcTemplate *VdcTemplate) InstantiateVdc(vdcName, description, organizationId string) (*Vdc, error)

InstantiateVdc creates a new VDC by instantiating the receiver VDC Template. This method waits for the associated Task to complete and returns the instantiated VDC. If there's any error during the process or in the Task, returns a nil VDC and an error.

func (*VdcTemplate) InstantiateVdcAsync

func (vdcTemplate *VdcTemplate) InstantiateVdcAsync(vdcName, description, organizationId string) (*Task, error)

InstantiateVdcAsync creates a new VDC by instantiating the receiver VDC Template. This method finishes immediately after requesting the VDC instance, by returning the Task associated to the VDC instantiation process. If there's any error during the process, returns a nil Task and an error.

func (*VdcTemplate) SetAccessControl

func (vdcTemplate *VdcTemplate) SetAccessControl(organizationIds []string) error

SetAccessControl sets the Access control configuration for the receiver VDC Template, which specifies which Organizations can read it.

func (*VdcTemplate) Update

func (vdcTemplate *VdcTemplate) Update(input types.VMWVdcTemplate) (*VdcTemplate, error)

Update updates an existing VDC Template with the given settings. Returns the updated VDC Template.

type VersionInfo

type VersionInfo struct {
	Version          string `xml:"Version"`
	LoginUrl         string `xml:"LoginUrl"`
	ProviderLoginUrl string `xml:"ProviderLoginUrl"`
	Deprecated       bool   `xml:"deprecated,attr,omitempty"`
}

type VersionInfos

type VersionInfos []VersionInfo

type VgpuProfile

type VgpuProfile struct {
	VgpuProfile *types.VgpuProfile
	// contains filtered or unexported fields
}

VgpuProfile defines a vGPU profile which is fetched from vCenter

func (*VgpuProfile) Refresh

func (profile *VgpuProfile) Refresh() error

Refresh updates the current state of the vGPU profile

func (*VgpuProfile) Update

func (profile *VgpuProfile) Update(newProfile *types.VgpuProfile) error

Update updates a vGPU profile with new parameters

type VmAffinityRule

type VmAffinityRule struct {
	VmAffinityRule *types.VmAffinityRule
	// contains filtered or unexported fields
}

VmAffinityRule is the govcd structure to deal with VM affinity rules

func NewVmAffinityRule

func NewVmAffinityRule(cli *Client) *VmAffinityRule

NewVmAffinityRule creates a new VM affinity rule

func (*VmAffinityRule) Delete

func (vmar *VmAffinityRule) Delete() error

Delete removes a VM affinity rule from vCD

func (*VmAffinityRule) Refresh

func (vmar *VmAffinityRule) Refresh() error

Refresh gets a fresh copy of the VM affinity rule from vCD

func (*VmAffinityRule) SetEnabled

func (vmar *VmAffinityRule) SetEnabled(value bool) error

SetEnabled is a shortcut to update only the IsEnabled property of a VM affinity rule

func (*VmAffinityRule) SetMandatory

func (vmar *VmAffinityRule) SetMandatory(value bool) error

SetMandatory is a shortcut to update only the IsMandatory property of a VM affinity rule

func (*VmAffinityRule) Update

func (vmar *VmAffinityRule) Update() error

Update modifies a VM affinity rule using as input the entity's internal data.

type VmGroup

type VmGroup struct {
	VmGroup *types.QueryResultVmGroupsRecordType
	// contains filtered or unexported fields
}

VmGroup is used to create VM Placement Policies.

type Zone

type Zone struct {
	Zone *types.Zone
	// contains filtered or unexported fields
}

Zone represents Region Zones

Source Files

Directories

Path Synopsis
internal
udf

Jump to

Keyboard shortcuts

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