pe

package
v0.0.0-...-4787336 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2021 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const NUTANIX_PE_PASS = "NUTANIX_PE_PASS"

NUTANIX_PE_PASS is the environment variables for the PE password

View Source
const NUTANIX_PE_URL = "NUTANIX_PE_URL"

NUTANIX_PE_URL is the environment variables for the PE URL

View Source
const NUTANIX_PE_USER = "NUTANIX_PE_USER"

NUTANIX_PE_USER is the environment variable name for the PE username

Variables

This section is empty.

Functions

func CheckConfig

func CheckConfig(conf *ServiceConfig) error

CheckConfig will ensure that the minimal amount of information is present in the config

func CheckResponse

func CheckResponse(r *http.Response) error

CheckResponse looks for common response errors Need to fill this in at some point

func FormatCredentials

func FormatCredentials(a AuthCredentials) string

FormatCredentials takes in an AuthCredential type and returns a base64 encoded string in the proper format for use by the REST API

Types

type AddressCache

type AddressCache struct {
	Cache *Cache  `json:"cache,omitempty"`
	Type  *string `json:"type,omitempty"`
}

AddressCache used for cluster details

type AddressValue

type AddressValue struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

AddressValue used for cluster details

type AlertSummaries

type AlertSummaries struct {
}

AlertSummaries used in vdisk get request

type AlertSummary

type AlertSummary struct {
	AlertSummaries *AlertSummaries `json:"alert_summaries,omitempty"`
	Count          *int            `json:"count,omitempty"`
}

AlertSummary used in vdisk get request

type Attributes

type Attributes struct {
}

Attributes used for cluster details

type AuthCredentials

type AuthCredentials struct {
	Username string
	Password string
}

AuthCredentials are the username and password received from ENV variables never hard code these values into any code!

func GetCredentials

func GetCredentials(conf *ServiceConfig) (AuthCredentials, error)

GetCredentials gets the username and password from the ENV variables for use in the application

type Boot

type Boot struct {
	BootDeviceOrder        *[]string    `json:"boot_device_order,omitempty"`
	BootDeviceType         *string      `json:"boot_device_type,omitempty"`
	DiskAddress            *DiskAddress `json:"disk_address,omitempty"`
	HardwareVirtualization *bool        `json:"hardware_virtualization,omitempty"`
	MacAddr                *string      `json:"mac_addr,omitempty"`
	SecureBoot             *bool        `json:"secure_boot,omitempty"`
	UefiBoot               *bool        `json:"uefi_boot,omitempty"`
}

Boot provides response on VM GET

type Cache

type Cache struct {
}

Cache used for cluster details

type CacheLock

type CacheLock struct {
}

CacheLock used for cluster details

type CachedLocalHost

type CachedLocalHost struct {
	AssertionsDisabled     *bool           `json:"$assertions_disabled,omitempty"`
	AddressCache           *string         `json:"address_cache,omitempty"`
	AddressCacheInit       *bool           `json:"address_cache_init,omitempty"`
	CacheLock              *CacheLock      `json:"cache_lock,omitempty"`
	CacheTime              *int            `json:"cache_time,omitempty"`
	CachedLocalHost        *string         `json:"cached_local_host,omitempty"`
	CanonicalHostName      *string         `json:"canonical_host_name,omitempty"`
	FieldsOffset           *int            `json:"fields_offset,omitempty"`
	Holder                 *Holder         `json:"holder,omitempty"`
	Impl                   *Impl           `json:"impl,omitempty"`
	Ipv4                   *int            `json:"ipv4,omitempty"`
	Ipv6                   *int            `json:"ipv6,omitempty"`
	LookupTable            *LookupTable    `json:"lookup_table,omitempty"`
	MaxCacheTime           *int            `json:"max_cache_time,omitempty"`
	NameServices           *[]NameServices `json:"name_services,omitempty"`
	NegativeCache          *string         `json:"negative_cache,omitempty"`
	PreferIpv6Address      *bool           `json:"prefer_ipv6_address,omitempty"`
	SerialPersistentFields *[]interface{}  `json:"serial_persistent_fields,omitempty"`
	UnknownArray           *[]interface{}  `json:"unknown_array,omitempty"`
	Unsafe                 *Unsafe         `json:"unsafe,omitempty"`
}

CachedLocalHost used for cluster details

type ChecksInError

type ChecksInError struct {
}

ChecksInError used in vdisk get request

type Client

type Client struct {
	PEURL *url.URL

	Login AuthCredentials

	Cluster *ClusterService
	Disk    *DiskService
	// User    *UserService
	VM *VMService
	// contains filtered or unexported fields
}

Client is an HTTP Client

func NewClient

func NewClient(httpClient *http.Client, conf *ServiceConfig) (*Client, error)

NewClient is used for Nutanix Prism client instantiation Required:

prismURL: <string value of full URL to Prism Central>
httpClient: either nil or an HTTP client with non-default timeouts, etc...

func (*Client) Do

func (c *Client) Do(req *http.Request, v interface{}) (*http.Response, error)

Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed to by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response body will be written to v, without attempting to first decode it. If rate limit is exceeded and reset time is in the future, Do returns *RateLimitError immediately without making a network API call.

func (*Client) NewRequest

func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Request, error)

NewRequest creates an API request

type ClusterDataState

type ClusterDataState struct {
	ClusterAvailable                 *bool   `json:"cluster_available,omitempty"`
	ClusterDataAvailable             *bool   `json:"cluster_data_available,omitempty"`
	ClusterRegisterTimeUsecs         *int    `json:"cluster_register_time_usecs,omitempty"`
	ClusterUUID                      *string `json:"cluster_uuid,omitempty"`
	FirstUnavailableTimeUsecs        *int    `json:"first_unavailable_time_usecs,omitempty"`
	LastAlertsDataTransferredUsecs   *int    `json:"last_alerts_data_transferred_usecs,omitempty"`
	LastArithmosDataTransferredUsecs *int    `json:"last_arithmos_data_transferred_usecs,omitempty"`
}

ClusterDataState used for cluster details

type ClusterExternalAddress

type ClusterExternalAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

ClusterExternalAddress used for cluster details

type ClusterExternalDataServicesAddress

type ClusterExternalDataServicesAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

ClusterExternalDataServicesAddress used for cluster details

type ClusterGetRequest

type ClusterGetRequest struct{}

ClusterGetRequest provides nothing

type ClusterGetResponse

type ClusterGetResponse struct {
	AlertSummary                          *AlertSummary                        `json:"alert_summary,omitempty"`
	AllHypervNodesInFailoverCluster       *bool                                `json:"all_hyperv_nodes_in_failover_cluster,omitempty"`
	BlockSerials                          *[]string                            `json:"block_serials,omitempty"`
	Cloudcluster                          *bool                                `json:"cloudcluster,omitempty"`
	ClusterArch                           *string                              `json:"cluster_arch,omitempty"`
	ClusterDataState                      *ClusterDataState                    `json:"cluster_data_state,omitempty"`
	ClusterExternalAddress                *[]ClusterExternalAddress            `json:"cluster_external_address,omitempty"`
	ClusterExternalDataServicesAddress    *ClusterExternalDataServicesAddress  `json:"cluster_external_data_services_address,omitempty"`
	ClusterExternalDataServicesIpaddress  *string                              `json:"cluster_external_data_services_ipaddress,omitempty"`
	ClusterExternalIpaddress              *string                              `json:"cluster_external_ipaddress,omitempty"`
	ClusterFullyQualifiedDomainName       *string                              `json:"cluster_fully_qualified_domain_name,omitempty"`
	ClusterFunctions                      *[]string                            `json:"cluster_functions,omitempty"`
	ClusterGpus                           *[]string                            `json:"cluster_gpus,omitempty"`
	ClusterIncarnationID                  *int                                 `json:"cluster_incarnation_id,omitempty"`
	ClusterMasqueradingAddress            *ClusterMasqueradingAddress          `json:"cluster_masquerading_address,omitempty"`
	ClusterMasqueradingIpaddress          *string                              `json:"cluster_masquerading_ipaddress,omitempty"`
	ClusterMasqueradingPort               *int                                 `json:"cluster_masquerading_port,omitempty"`
	ClusterRedundancyState                *ClusterRedundancyState              `json:"cluster_redundancy_state,omitempty"`
	ClusterUsageCriticalAlertThresholdPct *int                                 `json:"cluster_usage_critical_alert_threshold_pct,omitempty"`
	ClusterUsageWarningAlertThresholdPct  *int                                 `json:"cluster_usage_warning_alert_threshold_pct,omitempty"`
	ClusterUUID                           *string                              `json:"cluster_uuid,omitempty"`
	CommonCriteriaMode                    *bool                                `json:"common_criteria_mode,omitempty"`
	Credential                            *Credential                          `json:"credential,omitempty"`
	DisableDegradedNodeMonitoring         *bool                                `json:"disable_degraded_node_monitoring,omitempty"`
	Domain                                *string                              `json:"domain,omitempty"`
	EnableEfficientMetricSync             *bool                                `json:"enable_efficient_metric_sync,omitempty"`
	EnableLockDown                        *bool                                `json:"enable_lock_down,omitempty"`
	EnableOnDiskDedup                     *bool                                `json:"enable_on_disk_dedup,omitempty"`
	EnablePasswordRemoteLoginToCluster    *bool                                `json:"enable_password_remote_login_to_cluster,omitempty"`
	EnableRf1Container                    *bool                                `json:"enable_rf1_container,omitempty"`
	EnableShadowClones                    *bool                                `json:"enable_shadow_clones,omitempty"`
	Encrypted                             *bool                                `json:"encrypted,omitempty"`
	EnforceRackableUnitAwarePlacement     *bool                                `json:"enforce_rackable_unit_aware_placement,omitempty"`
	ExternalAddress                       *[]ExternalAddress                   `json:"external_address,omitempty"`
	ExternalSubnet                        *string                              `json:"external_subnet,omitempty"`
	FaultToleranceDomainType              *string                              `json:"fault_tolerance_domain_type,omitempty"`
	FingerprintContentCachePercentage     *int                                 `json:"fingerprint_content_cache_percentage,omitempty"`
	FullVersion                           *string                              `json:"full_version,omitempty"`
	GlobalNfsWhiteList                    *[]string                            `json:"global_nfs_white_list,omitempty"`
	GlobalNfsWhiteListAddress             *[]GlobalNfsWhiteListAddress         `json:"global_nfs_white_list_address,omitempty"`
	GpuDriverVersion                      *string                              `json:"gpu_driver_version,omitempty"`
	HasSelfEncryptingDrive                *bool                                `json:"has_self_encrypting_drive,omitempty"`
	HealthSummary                         *HealthSummary                       `json:"health_summary,omitempty"`
	HTTPProxies                           *[]HTTPProxies                       `json:"http_proxies,omitempty"`
	HypervisorLldpConfig                  *HypervisorLldpConfig                `json:"hypervisor_lldp_config,omitempty"`
	HypervisorSecurityComplianceConfig    *HypervisorSecurityComplianceConfig  `json:"hypervisor_security_compliance_config,omitempty"`
	HypervisorTypes                       *[]string                            `json:"hypervisor_types,omitempty"`
	ID                                    *string                              `json:"id,omitempty"`
	InternalAddress                       *[]InternalAddress                   `json:"internal_address,omitempty"`
	InternalSubnet                        *string                              `json:"internal_subnet,omitempty"`
	IsLts                                 *bool                                `json:"is_lts,omitempty"`
	IsNsenabled                           *bool                                `json:"is_nsenabled,omitempty"`
	IsRegisteredToPc                      *bool                                `json:"is_registered_to_pc,omitempty"`
	IsSspEnabled                          *bool                                `json:"is_ssp_enabled,omitempty"`
	IsUpgradeInProgress                   *bool                                `json:"is_upgrade_in_progress,omitempty"`
	IscsiConfig                           *IscsiConfig                         `json:"iscsi_config,omitempty"`
	ManagementServers                     *[]ManagementServers                 `json:"management_servers,omitempty"`
	Multicluster                          *bool                                `json:"multicluster,omitempty"`
	Name                                  *string                              `json:"name,omitempty"`
	NameServers                           *[]string                            `json:"name_servers,omitempty"`
	NameServersList                       *[]NameServersList                   `json:"name_servers_list,omitempty"`
	NccVersion                            *string                              `json:"ncc_version,omitempty"`
	NosClusterAndHostsDomainJoined        *bool                                `json:"nos_cluster_and_hosts_domain_joined,omitempty"`
	NtpServers                            *[]string                            `json:"ntp_servers,omitempty"`
	NtpServersList                        *[]NtpServersList                    `json:"ntp_servers_list,omitempty"`
	NumNodes                              *int                                 `json:"num_nodes,omitempty"`
	OperationMode                         *string                              `json:"operation_mode,omitempty"`
	PublicKeys                            *[]PublicKeys                        `json:"public_keys,omitempty"`
	RackableUnits                         *[]RackableUnits                     `json:"rackable_units,omitempty"`
	SecurityComplianceConfig              *SecurityComplianceConfig            `json:"security_compliance_config,omitempty"`
	SegmentedIscsiDataServicesAddress     *[]SegmentedIscsiDataServicesAddress `json:"segmented_iscsi_data_services_address,omitempty"`
	SegmentedIscsiDataServicesIpaddress   *string                              `json:"segmented_iscsi_data_services_ipaddress,omitempty"`
	ServiceCenters                        *[]ServiceCenters                    `json:"service_centers,omitempty"`
	SMTPServer                            *SMTPServer                          `json:"smtp_server,omitempty"`
	SsdPinningPercentageLimit             *int                                 `json:"ssd_pinning_percentage_limit,omitempty"`
	Stats                                 *Stats                               `json:"stats,omitempty"`
	StorageType                           *string                              `json:"storage_type,omitempty"`
	SupportVerbosityType                  *string                              `json:"support_verbosity_type,omitempty"`
	TargetVersion                         *string                              `json:"target_version,omitempty"`
	ThresholdForStorageThinProvision      *float64                             `json:"threshold_for_storage_thin_provision,omitempty"`
	Timezone                              *string                              `json:"timezone,omitempty"`
	UsageStats                            *UsageStats                          `json:"usage_stats,omitempty"`
	UUID                                  *string                              `json:"uuid,omitempty"`
	Version                               *string                              `json:"version,omitempty"`
}

ClusterGetResponse provides details on a PE cluster

type ClusterMasqueradingAddress

type ClusterMasqueradingAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

ClusterMasqueradingAddress used for cluster details

type ClusterRedundancyState

type ClusterRedundancyState struct {
	CurrentRedundancyFactor *int              `json:"current_redundancy_factor,omitempty"`
	DesiredRedundancyFactor *int              `json:"desired_redundancy_factor,omitempty"`
	RedundancyStatus        *RedundancyStatus `json:"redundancy_status,omitempty"`
}

ClusterRedundancyState used for cluster details

type ClusterService

type ClusterService Service

ClusterService handles information on the PE cluster

func (*ClusterService) Get

Get makes the call to get one virtual machine by UUID

type Credential

type Credential struct {
	LogonName *string `json:"logon_name,omitempty"`
	Password  *string `json:"password,omitempty"`
}

Credential used for cluster details

type DetailedCheckSummary

type DetailedCheckSummary struct {
}

DetailedCheckSummary used in vdisk get request

type DiskAddress

type DiskAddress struct {
	DeviceBus       *string `json:"device_bus,omitempty"`
	DeviceIndex     *int    `json:"device_index,omitempty"`
	DeviceUUID      *string `json:"device_uuid,omitempty"`
	DiskLabel       *string `json:"disk_label,omitempty"`
	IsCdrom         *bool   `json:"is_cdrom,omitempty"`
	NdfsFilepath    *string `json:"ndfs_filepath,omitempty"`
	VmdiskUUID      *string `json:"vmdisk_uuid,omitempty"`
	VolumeGroupUUID *string `json:"volume_group_uuid,omitempty"`
}

DiskAddress provides response on VM GET

type DiskHardwareConfig

type DiskHardwareConfig struct {
	SerialNumber           *string      `json:"serial_number,omitempty"`
	DiskID                 *string      `json:"disk_id,omitempty"`
	DiskUUID               *string      `json:"disk_uuid,omitempty"`
	Location               *int         `json:"location,omitempty"`
	Bad                    *bool        `json:"bad,omitempty"`
	Mounted                *bool        `json:"mounted,omitempty"`
	MountPath              *string      `json:"mount_path,omitempty"`
	Model                  *string      `json:"model,omitempty"`
	Vendor                 *string      `json:"vendor,omitempty"`
	BootDisk               *bool        `json:"boot_disk,omitempty"`
	OnlyBootDisk           *bool        `json:"only_boot_disk,omitempty"`
	UnderDiagnosis         *bool        `json:"under_diagnosis,omitempty"`
	BackgroundOperation    *interface{} `json:"background_operation,omitempty"`
	CurrentFirmwareVersion *string      `json:"current_firmware_version,omitempty"`
	TargetFirmwareVersion  *string      `json:"target_firmware_version,omitempty"`
	CanAddAsNewDisk        *bool        `json:"can_add_as_new_disk,omitempty"`
	CanAddAsOldDisk        *bool        `json:"can_add_as_old_disk,omitempty"`
}

DiskHardwareConfig provides HW config for disk-related requests

type DiskListRequest

type DiskListRequest struct {
	Count               int    `url:"count,omitempty"`
	FilterCriteria      string `url:"filter_criteria,omitempty"`
	SortCriteria        string `url:"sort_criteria,omitempty"`
	SearchString        string `url:"search_string,omitempty"`
	SearchAttributeList string `url:"search_attribute_list,omitempty"`
	Page                int    `url:"page,omitempty"`
	Projection          string `url:"projection,omitempty"`
}

DiskListRequest provides query paramaters for disk list

type DiskListResponse

type DiskListResponse struct {
	Metadata Metadata   `json:"metadata"`
	Entities []Entities `json:"entities"`
}

DiskListResponse provides the response for listing all disk details

type DiskService

type DiskService Service

DiskService handles communication to CVM/PE for disk interactions

func (*DiskService) GetVDisk

GetVDisk provides vdisk information based upon UUID

func (*DiskService) List

func (dsk *DiskService) List(reqdata *DiskListRequest) (*DiskListResponse, *http.Response, error)

List makes the call to list hardware disk items

func (*DiskService) ListVDisk

ListVDisk makes the call to list virtual disks

type DiskVirtualGetRequest

type DiskVirtualGetRequest struct {
	Query *DiskVirtualGetRequestQuery
}

DiskVirtualGetRequest provides GET parameters for vdisk get by UUID

type DiskVirtualGetRequestQuery

type DiskVirtualGetRequestQuery struct {
	UUID string `url:"uuid,omitempty"`
}

DiskVirtualGetRequestQuery provides the UUID for the vdisk get

type DiskVirtualGetResponse

type DiskVirtualGetResponse struct {
	AlertSummary          *AlertSummary  `json:"alert_summary"`
	AttachedVMID          *string        `json:"attached_vm_id"`
	AttachedVMUUID        *string        `json:"attached_vm_uuid"`
	AttachedVmname        *string        `json:"attached_vmname"`
	AttachedVolumeGroupID *string        `json:"attached_volume_group_id"`
	ClusterUUID           *string        `json:"cluster_uuid"`
	ContainerID           *string        `json:"container_id"`
	ContainerUUID         *string        `json:"container_uuid"`
	DataSourceURL         *string        `json:"data_source_url"`
	DeviceUUID            *string        `json:"device_uuid"`
	DiskAddress           *string        `json:"disk_address"`
	DiskCapacityInBytes   *int           `json:"disk_capacity_in_bytes"`
	FlashModeEnabled      *bool          `json:"flash_mode_enabled"`
	HealthSummary         *HealthSummary `json:"health_summary"`
	NutanixNfsfilePath    *string        `json:"nutanix_nfsfile_path"`
	Stats                 *Stats         `json:"stats"`
	StorageContainerID    *string        `json:"storage_container_id"`
	StorageContainerUUID  *string        `json:"storage_container_uuid"`
	UsageStats            *UsageStats    `json:"usage_stats"`
	UUID                  *string        `json:"uuid"`
	VirtualDiskID         *string        `json:"virtual_disk_id"`
}

DiskVirtualGetResponse provides details on all virtual disks including NFS paths

type DiskVirtualListRequest

type DiskVirtualListRequest struct {
	Count               int    `url:"count,omitempty"`
	FilterCriteria      string `url:"filter_criteria,omitempty"`
	SortCriteria        string `url:"sort_criteria,omitempty"`
	SearchString        string `url:"search_string,omitempty"`
	SearchAttributeList string `url:"search_attribute_list,omitempty"`
	Page                int    `url:"page,omitempty"`
	Projection          string `url:"projection,omitempty"`
}

DiskVirtualListRequest provides GET parameters for vdisk list

type DiskVirtualListResponse

type DiskVirtualListResponse struct {
	Metadata Metadata   `json:"metadata"`
	Entities []Entities `json:"entities"`
}

DiskVirtualListResponse provides details on all virtual disks including NFS paths

type EmailStatus

type EmailStatus struct {
	LastChangedTimeStampUsecs                *int     `json:"last_changed_time_stamp_usecs,omitempty"`
	LastCheckedTimeStampUsecs                *int     `json:"last_checked_time_stamp_usecs,omitempty"`
	LastSuccessfulTransmissionTimeStampUsecs *int     `json:"last_successful_transmission_time_stamp_usecs,omitempty"`
	Message                                  *Message `json:"message,omitempty"`
	Status                                   *string  `json:"status,omitempty"`
}

EmailStatus used for cluster details

type Empty

type Empty struct {
	Empty *Empty  `json:"empty,omitempty"`
	Value *string `json:"value,omitempty"`
}

Empty is used for cluster details

type Entities

type Entities struct {
	ID                      *string             `json:"id,omitempty"`
	DiskUUID                *string             `json:"disk_uuid,omitempty"`
	ClusterUUID             *string             `json:"cluster_uuid,omitempty"`
	StorageTierName         *string             `json:"storage_tier_name,omitempty"`
	ServiceVmid             *string             `json:"service_vmid,omitempty"`
	NodeUUID                *string             `json:"node_uuid,omitempty"`
	LastServiceVmid         *interface{}        `json:"last_service_vmid,omitempty"`
	LastNodeUUID            *interface{}        `json:"last_node_uuid,omitempty"`
	HostName                *string             `json:"host_name,omitempty"`
	CvmIPAddress            *string             `json:"cvm_ip_address,omitempty"`
	NodeName                *string             `json:"node_name,omitempty"`
	MountPath               *string             `json:"mount_path,omitempty"`
	DiskSize                *int64              `json:"disk_size,omitempty"`
	MarkedForRemoval        *bool               `json:"marked_for_removal,omitempty"`
	DataMigrated            *bool               `json:"data_migrated,omitempty"`
	Online                  *bool               `json:"online,omitempty"`
	DiskStatus              *string             `json:"disk_status,omitempty"`
	Location                *int                `json:"location,omitempty"`
	SelfManagedNvme         *bool               `json:"self_managed_nvme,omitempty"`
	SelfEncryptingDrive     *bool               `json:"self_encrypting_drive,omitempty"`
	DiskHardwareConfig      *DiskHardwareConfig `json:"disk_hardware_config,omitempty"`
	DynamicRingChangingNode *interface{}        `json:"dynamic_ring_changing_node,omitempty"`
	Stats                   *Stats              `json:"stats,omitempty"`
	UsageStats              *UsageStats         `json:"usage_stats,omitempty"`
	VirtualDiskID           *string             `json:"virtual_disk_id,omitempty"`
	UUID                    *string             `json:"uuid,omitempty"`
	DeviceUUID              *string             `json:"device_uuid,omitempty"`
	NutanixNfsfilePath      *string             `json:"nutanix_nfsfile_path,omitempty"`
	DiskAddress             *string             `json:"disk_address,omitempty"`
	AttachedVMID            *string             `json:"attached_vm_id,omitempty"`
	AttachedVMUUID          *string             `json:"attached_vm_uuid,omitempty"`
	AttachedVmname          *string             `json:"attached_vmname,omitempty"`
	AttachedVolumeGroupID   *string             `json:"attached_volume_group_id,omitempty"`
	DiskCapacityInBytes     *int64              `json:"disk_capacity_in_bytes,omitempty"`
	StorageContainerID      *string             `json:"storage_container_id,omitempty"`
	StorageContainerUUID    *string             `json:"storage_container_uuid,omitempty"`
	FlashModeEnabled        *interface{}        `json:"flash_mode_enabled,omitempty"`
	DataSourceURL           *interface{}        `json:"data_source_url,omitempty"`
}

Entities are common types between most response results

type EntityTypeSummaries

type EntityTypeSummaries struct {
	ChecksInError        *ChecksInError        `json:"checks_in_error,omitempty"`
	DetailedCheckSummary *DetailedCheckSummary `json:"detailed_check_summary,omitempty"`
	EntityType           *string               `json:"entity_type,omitempty"`
	FilterCriteria       *string               `json:"filter_criteria,omitempty"`
	HealthSummary        *HealthSummary        `json:"health_summary,omitempty"`
}

EntityTypeSummaries used in vdisk get request

type ExternalAddress

type ExternalAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

ExternalAddress used for cluster details

type FilesToInjectList

type FilesToInjectList struct {
	DestinationPath *string `json:"destination_path,omitempty"`
	SourcePath      *string `json:"source_path,omitempty"`
}

FilesToInjectList provides response on VM GET

type GlobalNfsWhiteListAddress

type GlobalNfsWhiteListAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

GlobalNfsWhiteListAddress used for cluster details

type HTTPProxies

type HTTPProxies struct {
	Address      *string       `json:"address,omitempty"`
	AddressValue *AddressValue `json:"address_value,omitempty"`
	Name         *string       `json:"name,omitempty"`
	Password     *string       `json:"password,omitempty"`
	Port         *int          `json:"port,omitempty"`
	ProxyTypes   *[]string     `json:"proxy_types,omitempty"`
	Username     *string       `json:"username,omitempty"`
}

HTTPProxies used for cluster details

type HealthCheckSummaries

type HealthCheckSummaries struct {
}

HealthCheckSummaries used in vdisk get request

type HealthSummary

type HealthSummary struct {
	EntityTypeSummaries  *[]EntityTypeSummaries `json:"entity_type_summaries,omitempty"`
	HealthCheckSummaries *HealthCheckSummaries  `json:"health_check_summaries,omitempty"`
	HealthStatus         *string                `json:"health_status,omitempty"`
}

HealthSummary is used in vdisk get request

type Holder

type Holder struct {
	Address          *int    `json:"address,omitempty"`
	Family           *int    `json:"family,omitempty"`
	HostName         *string `json:"host_name,omitempty"`
	OriginalHostName *string `json:"original_host_name,omitempty"`
}

Holder used for cluster details

type HypervisorLldpConfig

type HypervisorLldpConfig struct {
}

HypervisorLldpConfig used for cluster details

type HypervisorSecurityComplianceConfig

type HypervisorSecurityComplianceConfig struct {
}

HypervisorSecurityComplianceConfig used for cluster details

type Impl

type Impl struct {
}

Impl used for cluster details

type InetAddress

type InetAddress struct {
	Empty *Empty `json:"empty,omitempty"`
	Value *Value `json:"value,omitempty"`
}

InetAddress used for cluster details

type InternalAddress

type InternalAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

InternalAddress used for cluster details

type IscsiConfig

type IscsiConfig struct {
	ExternalClientEnabled *bool `json:"external_client_enabled,omitempty"`
}

IscsiConfig used for cluster details

type Log

type Log struct {
	RootLoggerName *string `json:"root_logger_name,omitempty"`
}

Log used for cluster details

type LookupTable

type LookupTable struct {
}

LookupTable used for cluster details

type ManagementServers

type ManagementServers struct {
	DrsEnabled           *bool   `json:"drs_enabled,omitempty"`
	DrsVMBehaviour       *string `json:"drs_vm_behaviour,omitempty"`
	HaEnabled            *bool   `json:"ha_enabled,omitempty"`
	InUse                *bool   `json:"in_use,omitempty"`
	IPAddress            *string `json:"ip_address,omitempty"`
	ManagementServerType *string `json:"management_server_type,omitempty"`
	Registered           *bool   `json:"registered,omitempty"`
}

ManagementServers used for cluster details

type Message

type Message struct {
	Attributes *Attributes `json:"attributes,omitempty"`
	Message    *string     `json:"message,omitempty"`
}

Message used for cluster details

type Metadata

type Metadata struct {
	GrandTotalEntities *int    `json:"grand_total_entities,omitempty"`
	TotalEntities      *int    `json:"total_entities,omitempty"`
	FilterCriteria     *string `json:"filter_criteria,omitempty"`
	SortCriteria       *string `json:"sort_criteria,omitempty"`
	Page               *int    `json:"page,omitempty"`
	Count              *int    `json:"count,omitempty"`
	StartIndex         *int    `json:"start_index,omitempty"`
	EndIndex           *int    `json:"end_index,omitempty"`
}

Metadata is the metadata in request results

type NameServersList

type NameServersList struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

NameServersList used for cluster details

type NameServices

type NameServices struct {
}

NameServices used for cluster details

type NegativeCache

type NegativeCache struct {
	Cache *Cache  `json:"cache,omitempty"`
	Type  *string `json:"type,omitempty"`
}

NegativeCache used for cluster details

type NtpServersList

type NtpServersList struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string",omitempty`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

NtpServersList used for cluster details

type PublicKeys

type PublicKeys struct {
	Key  *string `json:"key,omitempty"`
	Name *string `json:"name,omitempty"`
}

PublicKeys used for cluster details

type RackableUnits

type RackableUnits struct {
	ID               *int      `json:"id,omitempty"`
	Location         *string   `json:"location,omitempty"`
	Model            *string   `json:"model,omitempty"`
	ModelName        *string   `json:"model_name,omitempty"`
	NodeUuids        *[]string `json:"node_uuids,omitempty"`
	Nodes            *[]int    `json:"node,omitemptys"`
	Positions        *[]string `json:"positions,omitempty"`
	RackableUnitUUID *string   `json:"rackable_unit_uuid,omitempty"`
	Serial           *string   `json:"serial,omitempty"`
}

RackableUnits used for cluster details

type RedundancyStatus

type RedundancyStatus struct {
}

RedundancyStatus used for cluster details

type SMTPServer

type SMTPServer struct {
	Address          *string        `json:"address,omitempty"`
	EmailStatus      *EmailStatus   `json:"email_status,omitempty"`
	FromEmailAddress *string        `json:"from_email_address,omitempty"`
	Password         *string        `json:"password,omitempty"`
	Port             *int           `json:"port,omitempty"`
	SecureMode       *string        `json:"secure_mode,omitempty"`
	ServerAddress    *ServerAddress `json:"server_address,omitempty"`
	Username         *string        `json:"username,omitempty"`
}

SMTPServer used for cluster details

type SecurityComplianceConfig

type SecurityComplianceConfig struct {
	EnableSnmpv3Only *bool `json:"enable_snmpv3_only,omitempty"`
}

SecurityComplianceConfig used for cluster details

type SegmentedIscsiDataServicesAddress

type SegmentedIscsiDataServicesAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

SegmentedIscsiDataServicesAddress used for cluster details

type SerialPersistentFields

type SerialPersistentFields struct {
	Field     *string `json:"field,omitempty"`
	Name      *string `json:"name,omitempty"`
	Offset    *int    `json:"offset,omitempty"`
	Signature *string `json:"signature,omitempty"`
	Type      *string `json:"type,omitempty"`
	Unshared  *bool   `json:"unshared,omitempty"`
}

SerialPersistentFields used for cluster details

type SerialPorts

type SerialPorts struct {
	Index *int    `json:"index,omitempty"`
	Type  *string `json:"type,omitempty"`
}

SerialPorts provides response on VM GET

type ServerAddress

type ServerAddress struct {
	Hostname    *string      `json:"hostname,omitempty"`
	InetAddress *InetAddress `json:"inet_address,omitempty"`
	Ipv4        *string      `json:"ipv4,omitempty"`
	Ipv6        *string      `json:"ipv6,omitempty"`
	Log         *Log         `json:"log,omitempty"`
	Port        *int         `json:"port,omitempty"`
	RawString   *string      `json:"raw_string,omitempty"`
	Subnet      *string      `json:"subnet,omitempty"`
	SubnetSep   *string      `json:"subnet_sep,omitempty"`
}

ServerAddress used for cluster details

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service is used to create endpoint specific services to utilize concurrency with timeouts

type ServiceCenters

type ServiceCenters struct {
	IPAddress *string `json:"ip_address,omitempty"`
	Name      *string `json:"name,omitempty"`
	Port      *int    `json:"port,omitempty"`
	Username  *string `json:"username,omitempty"`
}

ServiceCenters used for cluster details

type ServiceConfig

type ServiceConfig struct {
	URL  *string
	User *string
	Pass *string
}

ServiceConfig is the configuration to use PC

type SourceDiskAddress

type SourceDiskAddress struct {
	DeviceBus       *string `json:"device_bus,omitempty"`
	DeviceIndex     *int    `json:"device_index,omitempty"`
	DeviceUUID      *string `json:"device_uuid,omitempty"`
	DiskLabel       *string `json:"disk_label,omitempty"`
	IsCdrom         *bool   `json:"is_cdrom,omitempty"`
	NdfsFilepath    *string `json:"ndfs_filepath,omitempty"`
	VmdiskUUID      *string `json:"vmdisk_uuid,omitempty"`
	VolumeGroupUUID *string `json:"volume_group_uuid,omitempty"`
}

SourceDiskAddress provides response on VM GET

type Stats

type Stats struct {
	ControllerRandomOpsPpm                          *string `json:"controller.random_ops_ppm,omitempty"`
	ControllerStorageTierSsdUsageBytes              *string `json:"controller.storage_tier.ssd.usage_bytes,omitempty"`
	ReadIoPpm                                       *string `json:"read_io_ppm,omitempty"`
	ControllerFrontendReadLatencyHistogram1000Us    *string `json:"controller.frontend_read_latency_histogram_1000us,omitempty"`
	ControllerNumIops                               *string `json:"controller_num_iops,omitempty"`
	ControllerFrontendWriteOps                      *string `json:"controller.frontend_write_ops,omitempty"`
	ControllerFrontendWriteLatencyHistogram10000Us  *string `json:"controller.frontend_write_latency_histogram_10000us,omitempty"`
	ControllerReadSizeHistogram1024KB               *string `json:"controller.read_size_histogram_1024kB,omitempty"`
	TotalReadIoTimeUsecs                            *string `json:"total_read_io_time_usecs,omitempty"`
	ControllerTotalReadIoTimeUsecs                  *string `json:"controller_total_read_io_time_usecs,omitempty"`
	ControllerWss3600SWriteMB                       *string `json:"controller.wss_3600s_write_MB,omitempty"`
	ControllerFrontendReadLatencyHistogram50000Us   *string `json:"controller.frontend_read_latency_histogram_50000us,omitempty"`
	ControllerFrontendReadLatencyHistogram2000Us    *string `json:"controller.frontend_read_latency_histogram_2000us,omitempty"`
	ControllerNumWriteIo                            *string `json:"controller_num_write_io,omitempty"`
	ControllerReadSourceCacheSsdBytes               *string `json:"controller.read_source_cache_ssd_bytes,omitempty"`
	ControllerReadSourceOplogBytes                  *string `json:"controller.read_source_oplog_bytes,omitempty"`
	ControllerReadSourceCacheDramBytes              *string `json:"controller.read_source_cache_dram_bytes,omitempty"`
	ControllerRandomReadOps                         *string `json:"controller.random_read_ops,omitempty"`
	ControllerTotalIoTimeUsecs                      *string `json:"controller_total_io_time_usecs,omitempty"`
	ControllerNumSeqIo                              *string `json:"controller_num_seq_io,omitempty"`
	ControllerTotalIoSizeKbytes                     *string `json:"controller_total_io_size_kbytes,omitempty"`
	ControllerWss120SWriteMB                        *string `json:"controller.wss_120s_write_MB,omitempty"`
	ControllerReadSourceBlockStoreBytes             *string `json:"controller.read_source_block_store_bytes,omitempty"`
	ControllerNumIo                                 *string `json:"controller_num_io,omitempty"`
	ControllerReadSourceEstoreZeroBytes             *string `json:"controller.read_source_estore_zero_bytes,omitempty"`
	ControllerNumRandomIo                           *string `json:"controller_num_random_io,omitempty"`
	HypervisorNumReadIo                             *string `json:"hypervisor_num_read_io,omitempty"`
	HypervisorTotalReadIoTimeUsecs                  *string `json:"hypervisor_total_read_io_time_usecs,omitempty"`
	NumIo                                           *string `json:"num_io,omitempty"`
	HypervisorNumWriteIo                            *string `json:"hypervisor_num_write_io,omitempty"`
	ControllerWriteSizeHistogram32KB                *string `json:"controller.write_size_histogram_32kB,omitempty"`
	ControllerFrontendReadLatencyHistogram20000Us   *string `json:"controller.frontend_read_latency_histogram_20000us,omitempty"`
	ControllerReadSizeHistogram32KB                 *string `json:"controller.read_size_histogram_32kB,omitempty"`
	HypervisorNumWriteIops                          *string `json:"hypervisor_num_write_iops,omitempty"`
	AvgIoLatencyUsecs                               *string `json:"avg_io_latency_usecs,omitempty"`
	ControllerWriteIoPpm                            *string `json:"controller_write_io_ppm,omitempty"`
	ControllerReadSourceEstoreSsdBytes              *string `json:"controller.read_source_estore_ssd_bytes,omitempty"`
	HypervisorTotalReadIoSizeKbytes                 *string `json:"hypervisor_total_read_io_size_kbytes,omitempty"`
	ControllerNumWriteIops                          *string `json:"controller_num_write_iops,omitempty"`
	TotalIoTimeUsecs                                *string `json:"total_io_time_usecs,omitempty"`
	ControllerWss3600SReadMB                        *string `json:"controller.wss_3600s_read_MB,omitempty"`
	ControllerSummaryReadSourceSsdBytesPerSec       *string `json:"controller.summary_read_source_ssd_bytes_per_sec,omitempty"`
	ControllerWriteSizeHistogram16KB                *string `json:"controller.write_size_histogram_16kB,omitempty"`
	TotalTransformedUsageBytes                      *string `json:"total_transformed_usage_bytes,omitempty"`
	AvgWriteIoLatencyUsecs                          *string `json:"avg_write_io_latency_usecs,omitempty"`
	ControllerCseTarget90PercentWriteMB             *string `json:"controller.cse_target_90_percent_write_MB,omitempty"`
	NumReadIo                                       *string `json:"num_read_io,omitempty"`
	HypervisorReadIoBandwidthKBps                   *string `json:"hypervisor_read_io_bandwidth_kBps,omitempty"`
	HypervisorTotalIoTimeUsecs                      *string `json:"hypervisor_total_io_time_usecs,omitempty"`
	NumRandomIo                                     *string `json:"num_random_io,omitempty"`
	ControllerWriteDestEstoreBytes                  *string `json:"controller.write_dest_estore_bytes,omitempty"`
	ControllerFrontendWriteLatencyHistogram5000Us   *string `json:"controller.frontend_write_latency_histogram_5000us,omitempty"`
	ControllerStorageTierDasSataPinnedUsageBytes    *string `json:"controller.storage_tier.das-sata.pinned_usage_bytes,omitempty"`
	NumWriteIo                                      *string `json:"num_write_io,omitempty"`
	ControllerFrontendWriteLatencyHistogram2000Us   *string `json:"controller.frontend_write_latency_histogram_2000us,omitempty"`
	ControllerRandomWriteOpsPerSec                  *string `json:"controller.random_write_ops_per_sec,omitempty"`
	ControllerFrontendWriteLatencyHistogram20000Us  *string `json:"controller.frontend_write_latency_histogram_20000us,omitempty"`
	IoBandwidthKBps                                 *string `json:"io_bandwidth_kBps,omitempty"`
	ControllerWriteSizeHistogram512KB               *string `json:"controller.write_size_histogram_512kB,omitempty"`
	ControllerReadSizeHistogram16KB                 *string `json:"controller.read_size_histogram_16kB,omitempty"`
	WriteIoPpm                                      *string `json:"write_io_ppm,omitempty"`
	ControllerAvgWriteIoLatencyUsecs                *string `json:"controller_avg_write_io_latency_usecs,omitempty"`
	ControllerFrontendReadLatencyHistogram100000Us  *string `json:"controller.frontend_read_latency_histogram_100000us,omitempty"`
	NumReadIops                                     *string `json:"num_read_iops,omitempty"`
	ControllerSummaryReadSourceHddBytesPerSec       *string `json:"controller.summary_read_source_hdd_bytes_per_sec,omitempty"`
	ControllerReadSourceExtentCacheBytes            *string `json:"controller.read_source_extent_cache_bytes,omitempty"`
	TimespanUsecs                                   *string `json:"timespan_usecs,omitempty"`
	ControllerNumReadIops                           *string `json:"controller_num_read_iops,omitempty"`
	ControllerFrontendReadLatencyHistogram10000Us   *string `json:"controller.frontend_read_latency_histogram_10000us,omitempty"`
	ControllerWriteSizeHistogram64KB                *string `json:"controller.write_size_histogram_64kB,omitempty"`
	ControllerFrontendWriteLatencyHistogram0Us      *string `json:"controller.frontend_write_latency_histogram_0us,omitempty"`
	ControllerFrontendWriteLatencyHistogram100000Us *string `json:"controller.frontend_write_latency_histogram_100000us,omitempty"`
	HypervisorNumIo                                 *string `json:"hypervisor_num_io,omitempty"`
	ControllerTotalTransformedUsageBytes            *string `json:"controller_total_transformed_usage_bytes,omitempty"`
	AvgReadIoLatencyUsecs                           *string `json:"avg_read_io_latency_usecs,omitempty"`
	ControllerTotalReadIoSizeKbytes                 *string `json:"controller_total_read_io_size_kbytes,omitempty"`
	ControllerReadIoPpm                             *string `json:"controller_read_io_ppm,omitempty"`
	ControllerFrontendOps                           *string `json:"controller.frontend_ops,omitempty"`
	ControllerWss120SReadMB                         *string `json:"controller.wss_120s_read_MB,omitempty"`
	ControllerReadSizeHistogram512KB                *string `json:"controller.read_size_histogram_512kB,omitempty"`
	HypervisorAvgReadIoLatencyUsecs                 *string `json:"hypervisor_avg_read_io_latency_usecs,omitempty"`
	ControllerWriteSizeHistogram1024KB              *string `json:"controller.write_size_histogram_1024kB,omitempty"`
	ControllerWriteDestBlockStoreBytes              *string `json:"controller.write_dest_block_store_bytes,omitempty"`
	ControllerReadSizeHistogram4KB                  *string `json:"controller.read_size_histogram_4kB,omitempty"`
	NumWriteIops                                    *string `json:"num_write_iops,omitempty"`
	ControllerRandomOpsPerSec                       *string `json:"controller.random_ops_per_sec,omitempty"`
	NumIops                                         *string `json:"num_iops,omitempty"`
	ControllerStorageTierCloudPinnedUsageBytes      *string `json:"controller.storage_tier.cloud.pinned_usage_bytes,omitempty"`
	ControllerAvgIoLatencyUsecs                     *string `json:"controller_avg_io_latency_usecs,omitempty"`
	ControllerReadSizeHistogram8KB                  *string `json:"controller.read_size_histogram_8kB,omitempty"`
	ControllerNumReadIo                             *string `json:"controller_num_read_io,omitempty"`
	ControllerSeqIoPpm                              *string `json:"controller_seq_io_ppm,omitempty"`
	ControllerReadIoBandwidthKBps                   *string `json:"controller_read_io_bandwidth_kBps,omitempty"`
	ControllerIoBandwidthKBps                       *string `json:"controller_io_bandwidth_kBps,omitempty"`
	ControllerReadSizeHistogram0KB                  *string `json:"controller.read_size_histogram_0kB,omitempty"`
	ControllerRandomOps                             *string `json:"controller.random_ops,omitempty"`
	HypervisorTimespanUsecs                         *string `json:"hypervisor_timespan_usecs,omitempty"`
	TotalReadIoSizeKbytes                           *string `json:"total_read_io_size_kbytes,omitempty"`
	HypervisorTotalIoSizeKbytes                     *string `json:"hypervisor_total_io_size_kbytes,omitempty"`
	ControllerFrontendOpsPerSec                     *string `json:"controller.frontend_ops_per_sec,omitempty"`
	ControllerWriteDestOplogBytes                   *string `json:"controller.write_dest_oplog_bytes,omitempty"`
	ControllerFrontendWriteLatencyHistogram1000Us   *string `json:"controller.frontend_write_latency_histogram_1000us,omitempty"`
	HypervisorNumReadIops                           *string `json:"hypervisor_num_read_iops,omitempty"`
	ControllerSummaryReadSourceCacheBytesPerSec     *string `json:"controller.summary_read_source_cache_bytes_per_sec,omitempty"`
	ControllerWriteIoBandwidthKBps                  *string `json:"controller_write_io_bandwidth_kBps,omitempty"`
	ControllerUserBytes                             *string `json:"controller_user_bytes,omitempty"`
	HypervisorAvgWriteIoLatencyUsecs                *string `json:"hypervisor_avg_write_io_latency_usecs,omitempty"`
	ControllerStorageTierSsdPinnedUsageBytes        *string `json:"controller.storage_tier.ssd.pinned_usage_bytes,omitempty"`
	ReadIoBandwidthKBps                             *string `json:"read_io_bandwidth_kBps,omitempty"`
	ControllerFrontendReadOps                       *string `json:"controller.frontend_read_ops,omitempty"`
	HypervisorNumIops                               *string `json:"hypervisor_num_iops,omitempty"`
	HypervisorIoBandwidthKBps                       *string `json:"hypervisor_io_bandwidth_kBps,omitempty"`
	ControllerWss120SUnionMB                        *string `json:"controller.wss_120s_union_MB,omitempty"`
	ControllerReadSourceEstoreHddBytes              *string `json:"controller.read_source_estore_hdd_bytes,omitempty"`
	ControllerRandomIoPpm                           *string `json:"controller_random_io_ppm,omitempty"`
	ControllerCseTarget90PercentReadMB              *string `json:"controller.cse_target_90_percent_read_MB,omitempty"`
	ControllerStorageTierDasSataUsageBytes          *string `json:"controller.storage_tier.das-sata.usage_bytes,omitempty"`
	ControllerFrontendReadLatencyHistogram5000Us    *string `json:"controller.frontend_read_latency_histogram_5000us,omitempty"`
	ControllerAvgReadIoSizeKbytes                   *string `json:"controller_avg_read_io_size_kbytes,omitempty"`
	WriteIoBandwidthKBps                            *string `json:"write_io_bandwidth_kBps,omitempty"`
	ControllerRandomReadOpsPerSec                   *string `json:"controller.random_read_ops_per_sec,omitempty"`
	ControllerReadSizeHistogram64KB                 *string `json:"controller.read_size_histogram_64kB,omitempty"`
	ControllerWss3600SUnionMB                       *string `json:"controller.wss_3600s_union_MB,omitempty"`
	RandomIoPpm                                     *string `json:"random_io_ppm,omitempty"`
	TotalUntransformedUsageBytes                    *string `json:"total_untransformed_usage_bytes,omitempty"`
	ControllerFrontendReadLatencyHistogram0Us       *string `json:"controller.frontend_read_latency_histogram_0us,omitempty"`
	ControllerRandomWriteOps                        *string `json:"controller.random_write_ops,omitempty"`
	ControllerAvgWriteIoSizeKbytes                  *string `json:"controller_avg_write_io_size_kbytes,omitempty"`
	ControllerAvgReadIoLatencyUsecs                 *string `json:"controller_avg_read_io_latency_usecs,omitempty"`
	TotalIoSizeKbytes                               *string `json:"total_io_size_kbytes,omitempty"`
	ControllerStorageTierCloudUsageBytes            *string `json:"controller.storage_tier.cloud.usage_bytes,omitempty"`
	ControllerFrontendWriteLatencyHistogram50000Us  *string `json:"controller.frontend_write_latency_histogram_50000us,omitempty"`
	ControllerWriteSizeHistogram8KB                 *string `json:"controller.write_size_histogram_8kB,omitempty"`
	ControllerTimespanUsecs                         *string `json:"controller_timespan_usecs,omitempty"`
	NumSeqIo                                        *string `json:"num_seq_io,omitempty"`
	ControllerWriteSizeHistogram4KB                 *string `json:"controller.write_size_histogram_4kB,omitempty"`
	SeqIoPpm                                        *string `json:"seq_io_ppm,omitempty"`
	ControllerWriteSizeHistogram0KB                 *string `json:"controller.write_size_histogram_0kB,omitempty"`
}

Stats are the statistics/metrics for each returned entity

type TheUnsafe

type TheUnsafe struct {
	AddressSize            *int    `json:"address_size,omitempty"`
	ArrayBooleanBaseOffset *int    `json:"array_boolean_base_offset,omitempty"`
	ArrayBooleanIndexScale *int    `json:"array_boolean_index_scale,omitempty"`
	ArrayByteBaseOffset    *int    `json:"array_byte_base_offset,omitempty"`
	ArrayByteIndexScale    *int    `json:"array_byte_index_scale,omitempty"`
	ArrayCharBaseOffset    *int    `json:"array_char_base_offset,omitempty"`
	ArrayCharIndexScale    *int    `json:"array_char_index_scale,omitempty"`
	ArrayDoubleBaseOffset  *int    `json:"array_double_base_offset,omitempty"`
	ArrayDoubleIndexScale  *int    `json:"array_double_index_scale,omitempty"`
	ArrayFloatBaseOffset   *int    `json:"array_float_base_offset,omitempty"`
	ArrayFloatIndexScale   *int    `json:"array_float_index_scale,omitempty"`
	ArrayIntBaseOffset     *int    `json:"array_int_base_offset,omitempty"`
	ArrayIntIndexScale     *int    `json:"array_int_index_scale,omitempty"`
	ArrayLongBaseOffset    *int    `json:"array_long_base_offset,omitempty"`
	ArrayLongIndexScale    *int    `json:"array_long_index_scale,omitempty"`
	ArrayObjectBaseOffset  *int    `json:"array_object_base_offset,omitempty"`
	ArrayObjectIndexScale  *int    `json:"array_object_index_scale,omitempty"`
	ArrayShortBaseOffset   *int    `json:"array_short_base_offset,omitempty"`
	ArrayShortIndexScale   *int    `json:"array_short_index_scale,omitempty"`
	InvalidFieldOffset     *int    `json:"invalid_field_offset,omitempty"`
	TheUnsafe              *string `json:"the_unsafe,omitempty"`
}

TheUnsafe used for cluster details

type UnknownArray

type UnknownArray struct {
	AssertionsDisabled     *bool           `json:"$assertions_disabled,omitempty"`
	AddressCache           *string         `json:"address_cache,omitempty"`
	AddressCacheInit       *bool           `json:"address_cache_init,omitempty"`
	CacheLock              *CacheLock      `json:"cache_lock,omitempty"`
	CacheTime              *int            `json:"cache_time,omitempty"`
	CachedLocalHost        *string         `json:"cached_local_host,omitempty"`
	CanonicalHostName      *string         `json:"canonical_host_name,omitempty"`
	FieldsOffset           *int            `json:"fields_offset,omitempty"`
	Holder                 *Holder         `json:"holder,omitempty"`
	Impl                   *Impl           `json:"impl,omitempty"`
	Ipv4                   *int            `json:"ipv4,omitempty"`
	Ipv6                   *int            `json:"ipv6,omitempty"`
	LookupTable            *LookupTable    `json:"lookup_table,omitempty"`
	MaxCacheTime           *int            `json:"max_cache_time,omitempty"`
	NameServices           *[]NameServices `json:"name_services,omitempty"`
	NegativeCache          *string         `json:"negative_cache,omitempty"`
	PreferIpv6Address      *bool           `json:"prefer_ipv6_address,omitempty"`
	SerialPersistentFields *[]interface{}  `json:"serial_persistent_fields,omitempty"`
	UnknownArray           *[]interface{}  `json:"unknown_array,omitempty"`
	Unsafe                 *Unsafe         `json:"unsafe,omitempty"`
}

UnknownArray used for cluster details

type Unsafe

type Unsafe struct {
	AddressSize            *int       `json:"address_size,omitempty"`
	ArrayBooleanBaseOffset *int       `json:"array_boolean_base_offset,omitempty"`
	ArrayBooleanIndexScale *int       `json:"array_boolean_index_scale,omitempty"`
	ArrayByteBaseOffset    *int       `json:"array_byte_base_offset,omitempty"`
	ArrayByteIndexScale    *int       `json:"array_byte_index_scale,omitempty"`
	ArrayCharBaseOffset    *int       `json:"array_char_base_offset,omitempty"`
	ArrayCharIndexScale    *int       `json:"array_char_index_scale,omitempty"`
	ArrayDoubleBaseOffset  *int       `json:"array_double_base_offset,omitempty"`
	ArrayDoubleIndexScale  *int       `json:"array_double_index_scale,omitempty"`
	ArrayFloatBaseOffset   *int       `json:"array_float_base_offset,omitempty"`
	ArrayFloatIndexScale   *int       `json:"array_float_index_scale,omitempty"`
	ArrayIntBaseOffset     *int       `json:"array_int_base_offset,omitempty"`
	ArrayIntIndexScale     *int       `json:"array_int_index_scale,omitempty"`
	ArrayLongBaseOffset    *int       `json:"array_long_base_offset,omitempty"`
	ArrayLongIndexScale    *int       `json:"array_long_index_scale,omitempty"`
	ArrayObjectBaseOffset  *int       `json:"array_object_base_offset,omitempty"`
	ArrayObjectIndexScale  *int       `json:"array_object_index_scale,omitempty"`
	ArrayShortBaseOffset   *int       `json:"array_short_base_offset,omitempty"`
	ArrayShortIndexScale   *int       `json:"array_short_index_scale,omitempty"`
	InvalidFieldOffset     *int       `json:"invalid_field_offset,omitempty"`
	TheUnsafe              *TheUnsafe `json:"the_unsafe,omitempty"`
}

Unsafe used for cluster details

type UsageStats

type UsageStats struct {
	StorageLogicalUsageBytes *string `json:"storage.logical_usage_bytes,omitempty"`
	StorageCapacityBytes     *string `json:"storage.capacity_bytes,omitempty"`
	StorageFreeBytes         *string `json:"storage.free_bytes,omitempty"`
	StorageUsageBytes        *string `json:"storage.usage_bytes,omitempty"`
}

UsageStats provides usage stats for the associated response entities

type VMCustomizationConfig

type VMCustomizationConfig struct {
	DatasourceType    *string              `json:"datasource_type,omitempty"`
	FilesToInjectList *[]FilesToInjectList `json:"files_to_inject_list,omitempty"`
	FreshInstall      *bool                `json:"fresh_install,omitempty"`
	Userdata          *string              `json:"userdata,omitempty"`
	UserdataPath      *string              `json:"userdata_path,omitempty"`
}

VMCustomizationConfig provides response on VM GET

type VMDiskClone

type VMDiskClone struct {
	DiskAddress          *DiskAddress `json:"disk_address,omitempty"`
	MinimumSize          *int         `json:"minimum_size,omitempty"`
	SnapshotGroupUUID    *string      `json:"snapshot_group_uuid,omitempty"`
	StorageContainerUUID *string      `json:"storage_container_uuid,omitempty"`
}

VMDiskClone provides response on VM GET

type VMDiskCloneExternal

type VMDiskCloneExternal struct {
	ExternalDiskURL      *string `json:"external_disk_url,omitempty"`
	Size                 *int    `json:"size,omitempty"`
	StorageContainerUUID *string `json:"storage_container_uuid,omitempty"`
}

VMDiskCloneExternal provides response from VM GET

type VMDiskCreate

type VMDiskCreate struct {
	Size                 *int    `json:"size,omitempty"`
	StorageContainerUUID *string `json:"storage_container_uuid,omitempty"`
}

VMDiskCreate provides response from VM GET

type VMDiskInfo

type VMDiskInfo struct {
	DataSourceURL        *string            `json:"data_source_url,omitempty"`
	DiskAddress          *DiskAddress       `json:"disk_address,omitempty"`
	FlashModeEnabled     *bool              `json:"flash_mode_enabled,omitempty"`
	IsCdrom              *bool              `json:"is_cdrom,omitempty"`
	IsEmpty              *bool              `json:"is_empty,omitempty"`
	IsHotRemoveEnabled   *bool              `json:"is_hot_remove_enabled,omitempty"`
	IsScsiPassthrough    *bool              `json:"is_scsi_passthrough,omitempty"`
	IsThinProvisioned    *bool              `json:"is_thin_provisioned,omitempty"`
	Shared               *bool              `json:"shared,omitempty"`
	Size                 *int               `json:"size,omitempty"`
	SourceDiskAddress    *SourceDiskAddress `json:"source_disk_address,omitempty"`
	StorageContainerUUID *string            `json:"storage_container_uuid,omitempty"`
}

VMDiskInfo provides response on VM GET

type VMDiskPassthruExternal

type VMDiskPassthruExternal struct {
	ExternalDiskURL      *string `json:"external_disk_url,omitempty"`
	StorageContainerUUID *string `json:"storage_container_uuid,omitempty"`
}

VMDiskPassthruExternal provides response from VM GET

type VMDisks

type VMDisks struct {
	DiskAddress            *DiskAddress            `json:"disk_address,omitempty"`
	FlashModeEnabled       *bool                   `json:"flash_mode_enabled,omitempty"`
	IsCdrom                *bool                   `json:"is_cdrom,omitempty"`
	IsEmpty                *bool                   `json:"is_empty,omitempty"`
	IsScsiPassThrough      *bool                   `json:"is_scsi_pass_through,omitempty"`
	IsThinProvisioned      *bool                   `json:"is_thin_provisioned,omitempty"`
	VMDiskClone            *VMDiskClone            `json:"vm_disk_clone,omitempty"`
	VMDiskCloneExternal    *VMDiskCloneExternal    `json:"vm_disk_clone_external,omitempty"`
	VMDiskCreate           *VMDiskCreate           `json:"vm_disk_create,omitempty"`
	VMDiskPassthruExternal *VMDiskPassthruExternal `json:"vm_disk_passthru_external,omitempty"`
}

VMDisks provides VDISK information during VM GET

type VMFeatures

type VMFeatures struct {
}

VMFeatures response from VM GET

type VMGetRequest

type VMGetRequest struct {
	Params *VMGetRequestParams
	Query  *VMGetRequestQuery
}

VMGetRequest provides a UUID URL parameter to get details on one VM provides path query parameters to request

type VMGetRequestParams

type VMGetRequestParams struct {
	UUID string
}

VMGetRequestParams provides vm search criteria - VM UUID

type VMGetRequestQuery

type VMGetRequestQuery struct {
	IncludeVMDiskConfig bool `url:"include_vm_disk_config,omitempty"`
	IncludeVMNICConfig  bool `url:"include_vm_nic_config,omitempty"`
}

VMGetRequestQuery provides vm search criteria - VM UUID

type VMGetResponse

type VMGetResponse struct {
	AllowLiveMigrate      *bool                  `json:"allow_live_migrate,omitempty"`
	Boot                  *Boot                  `json:"boot,omitempty"`
	CbrNotCapableReason   *string                `json:"cbr_not_capable_reason,omitempty"`
	ClearAffinity         *bool                  `json:"clear_affinity,omitempty"`
	Description           *string                `json:"description,omitempty"`
	GpusAssigned          *bool                  `json:"gpus_assigned,omitempty"`
	GuestDriverVersion    *string                `json:"guest_driver_version,omitempty"`
	GuestOs               *string                `json:"guest_os,omitempty"`
	HaPriority            *int                   `json:"ha_priority,omitempty"`
	HostUUID              *string                `json:"host_uuid,omitempty"`
	MachineType           *string                `json:"machine_type,omitempty"`
	MemoryMb              *int                   `json:"memory_mb,omitempty"`
	MemoryReservationMb   *int                   `json:"memory_reservation_mb,omitempty"`
	Name                  *string                `json:"name,omitempty"`
	NumCoresPerVcpu       *int                   `json:"num_cores_per_vcpu,omitempty"`
	NumVcpus              *int                   `json:"num_vcpus,omitempty"`
	PowerState            *string                `json:"power_state,omitempty"`
	SerialPorts           *[]SerialPorts         `json:"serial_ports,omitempty"`
	StorageContainerUUID  *string                `json:"storage_container_uuid,omitempty"`
	Timezone              *string                `json:"timezone,omitempty"`
	ToolsInstallerMounted *bool                  `json:"tools_installer_mounted,omitempty"`
	ToolsRunningStatus    *string                `json:"tools_running_status,omitempty"`
	UUID                  *string                `json:"uuid,omitempty"`
	VcpuReservationHz     *int                   `json:"vcpu_reservation_hz,omitempty"`
	VMCustomizationConfig *VMCustomizationConfig `json:"vm_customization_config,omitempty"`
	VMDiskInfo            *[]VMDiskInfo          `json:"vm_disk_info,omitempty"`
	VMDisks               *[]VMDisks             `json:"vm_disks,omitempty"`
	VMFeatures            *VMFeatures            `json:"vm_features,omitempty"`
	VMGpus                *[]VMGpus              `json:"vm_gpus,omitempty"`
	VMLogicalTimestamp    *int                   `json:"vm_logical_timestamp,omitempty"`
	VMNics                *[]VMNics              `json:"vm_nics,omitempty"`
}

VMGetResponse gets the VM details

type VMGpus

type VMGpus struct {
	Assignable             *bool     `json:"assignable,omitempty"`
	DeviceID               *int      `json:"device_id,omitempty"`
	DeviceName             *string   `json:"device_name,omitempty"`
	Fraction               *int      `json:"fraction,omitempty"`
	FrameBufferSizeBytes   *int      `json:"frame_buffer_size_bytes,omitempty"`
	GpuMode                *string   `json:"gpu_mode,omitempty"`
	GpuProfile             *string   `json:"gpu_profile,omitempty"`
	GpuType                *string   `json:"gpu_type,omitempty"`
	GpuVendor              *string   `json:"gpu_vendor,omitempty"`
	GuestDriverVersion     *string   `json:"guest_driver_version,omitempty"`
	InUse                  *bool     `json:"in_use,omitempty"`
	Licenses               *[]string `json:"licenses,omitempty"`
	MaxInstancesPerVM      *int      `json:"max_instances_per_vm,omitempty"`
	MaxResolution          *string   `json:"max_resolution,omitempty"`
	NumVirtualDisplayHeads *int      `json:"num_virtual_display_heads,omitempty"`
	NumaNode               *int      `json:"numa_node,omitempty"`
	Sbdf                   *string   `json:"sbdf,omitempty"`
	VMUuids                *[]string `json:"vm_uuids,omitempty"`
}

VMGpus provides VM GPU information during VM GET

type VMListRequest

type VMListRequest struct{}

type VMListResponse

type VMListResponse struct{}

type VMNics

type VMNics struct {
	AdapterType        *string   `json:"adapter_type,omitempty"`
	IPAddress          *string   `json:"ip_address,omitempty"`
	IPAddresses        *[]string `json:"ip_addresses,omitempty"`
	IsConnected        *bool     `json:"is_connected,omitempty"`
	MacAddress         *string   `json:"mac_address,omitempty"`
	Model              *string   `json:"model,omitempty"`
	NetworkUUID        *string   `json:"network_uuid,omitempty"`
	NicUUID            *string   `json:"nic_uuid,omitempty"`
	PortID             *string   `json:"port_id,omitempty"`
	RequestIP          *bool     `json:"request_ip,omitempty"`
	RequestedIPAddress *string   `json:"requested_ip_address,omitempty"`
	VlanMode           *string   `json:"vlan_mode,omitempty"`
}

VMNics provides VM NIC information during VM calls

type VMService

type VMService Service

VMService handles communication to CVM/PE for VM interactions

func (*VMService) Get

func (vm *VMService) Get(reqdata *VMGetRequest) (*VMGetResponse, *http.Response, error)

Get makes the call to get one virtual machine by UUID

func (*VMService) List

func (vm *VMService) List(reqdata *VMListRequest) (*VMListResponse, *http.Response, error)

List makes the call to list virtual machines

type Value

type Value struct {
	AssertionsDisabled     *bool                     `json:"$assertions_disabled,omitempty"`
	AddressCache           *AddressCache             `json:"address_cache,omitempty"`
	AddressCacheInit       *bool                     `json:"address_cache_init,omitempty"`
	CacheLock              *CacheLock                `json:"cache_lock,omitempty"`
	CacheTime              *int                      `json:"cache_time,omitempty"`
	CachedLocalHost        *CachedLocalHost          `json:"cached_local_host,omitempty"`
	CanonicalHostName      *string                   `json:"canonical_host_name,omitempty"`
	FieldsOffset           *int                      `json:"fields_offset,omitempty"`
	Holder                 *Holder                   `json:"holder,omitempty"`
	Impl                   *Impl                     `json:"impl,omitempty"`
	Ipv4                   *int                      `json:"ipv4,omitempty"`
	Ipv6                   *int                      `json:"ipv6,omitempty"`
	LookupTable            *LookupTable              `json:"lookup_table,omitempty"`
	MaxCacheTime           *int                      `json:"max_cache_time,omitempty"`
	NameServices           *[]NameServices           `json:"name_services,omitempty"`
	NegativeCache          *NegativeCache            `json:"negative_cache,omitempty"`
	PreferIpv6Address      *bool                     `json:"prefer_ipv6_address,omitempty"`
	SerialPersistentFields *[]SerialPersistentFields `json:"serial_persistent_fields,omitempty"`
	UnknownArray           *[]UnknownArray           `json:"unknown_array,omitempty"`
	Unsafe                 *Unsafe                   `json:"unsafe,omitempty"`
}

Value used for cluster details

Jump to

Keyboard shortcuts

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