gopowerstore

package module
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2024 License: Apache-2.0 Imports: 11 Imported by: 10

README

GoPowerStore

Overview

GoPowerStore represents API bindings for Go that allow you to manage PowerStore storage platforms.

Documentation

Index

Constants

View Source
const (
	APIURLEnv      = "GOPOWERSTORE_APIURL"
	UsernameEnv    = "GOPOWERSTORE_USERNAME"
	PasswordEnv    = "GOPOWERSTORE_PASSWORD"
	InsecureEnv    = "GOPOWERSTORE_INSECURE"
	HTTPTimeoutEnv = "GOPOWERSTORE_HTTP_TIMEOUT"
	DebugEnv       = "GOPOWERSTORE_DEBUG"
)

Env variables

View Source
const (
	VMware8K  string = "VMware_8K"
	VMware16K string = "VMware_16K"
	VMware32K string = "VMware_32K"
	VMware64K string = "VMware_64K"
)
View Source
const (
	RpoFiveMinutes                    RPOEnum     = "Five_Minutes"
	RpoFifteenMinutes                 RPOEnum     = "Fifteen_Minutes"
	RpoThirtyMinutes                  RPOEnum     = "Thirty_Minutes"
	RpoOneHour                        RPOEnum     = "One_Hour"
	RpoSixHours                       RPOEnum     = "Six_Hours"
	RpoTwelveHours                    RPOEnum     = "Twelve_Hours"
	RpoOneDay                         RPOEnum     = "One_Day"
	RsStateInitializing               RSStateEnum = "Initializing"
	RsStateOk                         RSStateEnum = "OK"
	RsStateSynchronizing              RSStateEnum = "Synchronizing"
	RsStateSystemPaused               RSStateEnum = "System_Paused"
	RsStatePaused                     RSStateEnum = "Paused"
	RsStatePausedForMigration         RSStateEnum = "Paused_For_Migration"
	RsStatePausedForNdu               RSStateEnum = "Paused_For_NDU"
	RsStateResuming                   RSStateEnum = "Resuming"
	RsStateFailingOver                RSStateEnum = "Failing_Over"
	RsStateFailingOverForDR           RSStateEnum = "Failing_Over_For_DR"
	RsStateFailedOver                 RSStateEnum = "Failed_Over"
	RsStateReprotecting               RSStateEnum = "Reprotecting"
	RsStatePartialCutoverForMigration RSStateEnum = "Partial_Cutover_For_Migration"
	RsStateError                      RSStateEnum = "Error"
)

Variables

This section is empty.

Functions

func WrapErr

func WrapErr(err error) error

WrapErr converts internal error type to public

Types

type APIError

type APIError struct {
	*api.ErrorMsg
}

APIError represents API error

func NewAPIError

func NewAPIError() *APIError

NewAPIError returns pointer to new APIError

func NewHostIsNotAttachedToVolume

func NewHostIsNotAttachedToVolume() APIError

NewHostIsNotAttachedToVolume returns new HostIsNotAttachedToVolume error

func NewHostIsNotExistError

func NewHostIsNotExistError() APIError

NewHostIsNotExistError returns new HostIsNotExistError

func NewNotFoundError added in v1.5.0

func NewNotFoundError() APIError

NewNotFoundError returns new VolumeIsNotExistError

func NewVolumeAttachedToHostError

func NewVolumeAttachedToHostError() APIError

NewVolumeAttachedToHostError returns new VolumeAttachedToHost error

func (*APIError) BadRange

func (err *APIError) BadRange() bool

BadRange returns true if API error indicate that request was submitted with invalid range

func (*APIError) FSNameIsAlreadyUse added in v1.1.0

func (err *APIError) FSNameIsAlreadyUse() bool

FSNameIsAlreadyUse returns true if API error indicate that fs name is already in use

func (*APIError) HostAlreadyPresentInNFSExport added in v1.1.0

func (err *APIError) HostAlreadyPresentInNFSExport() bool

HostAlreadyPresentInNFSExport returns true if API error indicate that operation can't be complete because host ip already present in nfs export access

func (*APIError) HostAlreadyRemovedFromNFSExport added in v1.1.0

func (err *APIError) HostAlreadyRemovedFromNFSExport() bool

HostAlreadyRemovedFromNFSExport returns true if API error indicate that operation can't be complete because host ip already removed from nfs export access

func (*APIError) HostIsNotAttachedToVolume

func (err *APIError) HostIsNotAttachedToVolume() bool

HostIsNotAttachedToVolume returns true if API error indicate that host is not attached to volume

func (*APIError) HostIsNotExist

func (err *APIError) HostIsNotExist() bool

HostIsNotExist returns true if API error indicate that host is not exists

func (*APIError) NotFound added in v1.5.0

func (err *APIError) NotFound() bool

NotFound returns true if API error indicate that volume is not exists

func (*APIError) SnapshotNameIsAlreadyUse

func (err *APIError) SnapshotNameIsAlreadyUse() bool

SnapshotNameIsAlreadyUse returns true if API error indicate that snapshot name is already in use

func (*APIError) UnableToFailoverFromDestination added in v1.5.0

func (err *APIError) UnableToFailoverFromDestination() bool

UnableToFailoverFromDestination returns true if API error indicate that operation can't be complete because it is impossible to failover from Destination

func (*APIError) VolumeAttachedToHost

func (err *APIError) VolumeAttachedToHost() bool

VolumeAttachedToHost returns true if API error indicate that operation can't be complete because volume is attached to host

func (*APIError) VolumeDetachedFromHost added in v1.9.0

func (err *APIError) VolumeDetachedFromHost() bool

VolumeDetachedFromHost returns true if API error indicate that volume is detached from host

func (*APIError) VolumeIsNotAttachedToHost added in v1.2.0

func (err *APIError) VolumeIsNotAttachedToHost() bool

VolumeIsNotAttachedToHost returns true if API error indicate that volume is not attached to host

func (*APIError) VolumeNameIsAlreadyUse

func (err *APIError) VolumeNameIsAlreadyUse() bool

VolumeNameIsAlreadyUse returns true if API error indicate that volume name is already in use

type ActionType added in v1.5.0

type ActionType string
const (
	RsActionFailover  ActionType = "failover"
	RsActionReprotect ActionType = "reprotect"
	RsActionResume    ActionType = "resume"
	RsActionPause     ActionType = "pause"
	RsActionSync      ActionType = "sync"
)

type ActiveSessionInstance

type ActiveSessionInstance struct {
	// Unique identifier of the appliance containing the session.
	ApplianceID string `json:"appliance_id,omitempty"`
	// Unique identifier of the bond the initiator is logged into.
	// Null if one of the following is non-null: veth_id, eth_port_id or fc_port_id.
	BondID string `json:"bond_id,omitempty"`
	// Unique identifier of the Ethernet port the initiator is logged into.
	// Null if one of the following is non-null: bond_id, veth_id or fc_port_id.
	EthPortID string `json:"eth_port_id,omitempty"`
	// Unique identifier of the FC port the initiator is logged into.
	// Null if one of the following is non-null: bond_id, veth_id or eth_port_id
	FcPortID string `json:"fc_port_id,omitempty"`
	// Unique identifier of node on the appliance on which active session is create.
	NodeID string `json:"node_id,omitempty"`
	// IQN or WWN of the target port that the initiator is logged into.
	PortName string `json:"port_name,omitempty"`
	// Unique identifier of the virtual Ethernet port the initiator is logged into.
	// Null if one of the following is non-null: bond, eth_port_id or fc_port_id.
	VethID string `json:"veth_id,omitempty"`
}

ActiveSessionInstance active session instance

type AppTypeEnum added in v1.11.0

type AppTypeEnum string
const (
	AppTypeEnumRelationDB                 AppTypeEnum = "Relational_Databases_Other"
	AppTypeEnumOracle                     AppTypeEnum = "Relational_Databases_Oracle"
	AppTypeEnumSQLServer                  AppTypeEnum = "Relational_Databases_SQL_Server"
	AppTypeEnumPostgreSQL                 AppTypeEnum = "Relational_Databases_PostgreSQL"
	AppTypeEnumMySQL                      AppTypeEnum = "Relational_Databases_MySQL"
	AppTypeEnumIBMDB2                     AppTypeEnum = "Relational_Databases_IBM_DB2"
	AppTypeEnumBigData                    AppTypeEnum = "Big_Data_Analytics_Other" // #nosec G101
	AppTypeEnumMongoDB                    AppTypeEnum = "Big_Data_Analytics_MongoDB"
	AppTypeEnumCassandra                  AppTypeEnum = "Big_Data_Analytics_Cassandra"
	AppTypeEnumSAPHANA                    AppTypeEnum = "Big_Data_Analytics_SAP_HANA"
	AppTypeEnumSpark                      AppTypeEnum = "Big_Data_Analytics_Spark" // #nosec G101
	AppTypeEnumSplunk                     AppTypeEnum = "Big_Data_Analytics_Splunk"
	AppTypeEnumElasticSearch              AppTypeEnum = "Big_Data_Analytics_ElasticSearch"
	AppTypeEnumExchange                   AppTypeEnum = "Business_Applications_Exchange"
	AppTypeEnumSharepoint                 AppTypeEnum = "Business_Applications_Sharepoint"
	AppTypeEnumRBusinessApplicationsOther AppTypeEnum = "Business_Applications_Other"
	AppTypeEnumRelationERPSAP             AppTypeEnum = "Business_Applications_ERP_SAP"
	AppTypeEnumCRM                        AppTypeEnum = "Business_Applications_CRM"
	AppTypeEnumHealthcareOther            AppTypeEnum = "Healthcare_Other"
	AppTypeEnumEpic                       AppTypeEnum = "Healthcare_Epic"
	AppTypeEnumMEDITECH                   AppTypeEnum = "Healthcare_MEDITECH"
	AppTypeEnumAllscripts                 AppTypeEnum = "Healthcare_Allscripts"
	AppTypeEnumCerner                     AppTypeEnum = "Healthcare_Cerner"
	AppTypeEnumVirtualization             AppTypeEnum = "Virtualization_Other"
	AppTypeEnumVirtualServers             AppTypeEnum = "Virtualization_Virtual_Servers_VSI"
	AppTypeEnumContainers                 AppTypeEnum = "Virtualization_Containers_Kubernetes"
	AppTypeEnumVirtualDesktops            AppTypeEnum = "Virtualization_Virtual_Desktops_VDI"
	AppTypeEnumRelationOther              AppTypeEnum = "Other"
)

type ApplianceInstance added in v1.10.0

type ApplianceInstance struct {
	// Unique identifier for the Appliance
	ID string `json:"id"`
	// Name of the Appliance
	Name string `json:"name"`
	// ServiceTag is the service tag attached to the appliance
	ServiceTag string `json:"service_tag,omitempty"`
}

Appliance instance on the array

func (*ApplianceInstance) Fields added in v1.10.0

func (n *ApplianceInstance) Fields() []string

Fields returns fields which must be requested to fill struct

type ApplianceMetrics added in v1.1.0

type ApplianceMetrics struct {
	// Unique identifier of the appliance.
	ApplianceID string `json:"appliance_id"`
	// Total amount of space
	PhysicalTotal int64 `json:"physical_total"`
	// Amount of space currently used
	PhysicalUsed int64 `json:"physical_used"`
}

ApplianceMetrics is returned by space_metrics_by_appliance metrics request

func (*ApplianceMetrics) Fields added in v1.1.0

func (h *ApplianceMetrics) Fields() []string

Fields returns fields which must be requested to fill struct

type Client

type Client interface {
	APIClient() api.Client
	SetTraceID(ctx context.Context, value string) context.Context
	SetCustomHTTPHeaders(headers http.Header)
	GetCustomHTTPHeaders() http.Header
	GetVolume(ctx context.Context, id string) (Volume, error)
	GetVolumeByName(ctx context.Context, name string) (Volume, error)
	GetVolumes(ctx context.Context) ([]Volume, error)
	CreateVolume(ctx context.Context, createParams *VolumeCreate) (CreateResponse, error)
	DeleteVolume(ctx context.Context, deleteParams *VolumeDelete, id string) (EmptyResponse, error)
	GetSnapshotRules(ctx context.Context) ([]SnapshotRule, error)
	GetSnapshotRule(ctx context.Context, id string) (SnapshotRule, error)
	GetSnapshotRuleByName(ctx context.Context, name string) (SnapshotRule, error)
	CreateSnapshotRule(ctx context.Context, createParams *SnapshotRuleCreate) (CreateResponse, error)
	ModifySnapshotRule(ctx context.Context, modifyParams *SnapshotRuleCreate, id string) (resp EmptyResponse, err error)
	DeleteSnapshotRule(ctx context.Context, deleteParams *SnapshotRuleDelete, id string) (EmptyResponse, error)
	DeleteReplicationRule(ctx context.Context, id string) (resp EmptyResponse, err error)
	DeleteProtectionPolicy(ctx context.Context, id string) (resp EmptyResponse, err error)
	DeleteVolumeGroup(ctx context.Context, id string) (resp EmptyResponse, err error)
	GetAppliance(ctx context.Context, id string) (ApplianceInstance, error)
	GetApplianceByName(ctx context.Context, name string) (ApplianceInstance, error)
	GetHost(ctx context.Context, id string) (Host, error)
	GetHostByName(ctx context.Context, name string) (Host, error)
	GetHosts(ctx context.Context) ([]Host, error)
	CreateHost(ctx context.Context, createParams *HostCreate) (CreateResponse, error)
	DeleteHost(ctx context.Context, deleteParams *HostDelete, id string) (EmptyResponse, error)
	ModifyHost(ctx context.Context, modifyParams *HostModify, id string) (CreateResponse, error)
	GetHostVolumeMappings(ctx context.Context) ([]HostVolumeMapping, error)
	GetHostVolumeMapping(ctx context.Context, id string) (HostVolumeMapping, error)
	GetHostVolumeMappingByVolumeID(ctx context.Context, volumeID string) ([]HostVolumeMapping, error)
	AttachVolumeToHost(ctx context.Context, hostID string, attachParams *HostVolumeAttach) (EmptyResponse, error)
	AttachVolumeToHostGroup(ctx context.Context, hostGroupID string, attachParams *HostVolumeAttach) (EmptyResponse, error)
	DetachVolumeFromHost(ctx context.Context, hostID string, detachParams *HostVolumeDetach) (EmptyResponse, error)
	DetachVolumeFromHostGroup(ctx context.Context, hostGroupID string, detachParams *HostVolumeDetach) (EmptyResponse, error)
	GetStorageISCSITargetAddresses(ctx context.Context) ([]IPPoolAddress, error)
	GetStorageNVMETCPTargetAddresses(ctx context.Context) ([]IPPoolAddress, error)
	GetCapacity(ctx context.Context) (int64, error)
	GetFCPorts(ctx context.Context) (resp []FcPort, err error)
	GetFCPort(ctx context.Context, id string) (resp FcPort, err error)
	GetSoftwareInstalled(ctx context.Context) (resp []SoftwareInstalled, err error)
	GetSoftwareMajorMinorVersion(ctx context.Context) (majorVersion float32, err error)
	SetLogger(logger Logger)
	CreateSnapshot(ctx context.Context, createSnapParams *SnapshotCreate, id string) (CreateResponse, error)
	DeleteSnapshot(ctx context.Context, deleteParams *VolumeDelete, id string) (EmptyResponse, error)
	GetSnapshotsByVolumeID(ctx context.Context, volID string) ([]Volume, error)
	GetSnapshots(ctx context.Context) ([]Volume, error)
	GetSnapshot(ctx context.Context, snapID string) (Volume, error)
	GetSnapshotByName(ctx context.Context, snapName string) (Volume, error)
	ComputeDifferences(ctx context.Context, snapdiffParams *VolumeComputeDifferences, volID string) (VolumeComputeDifferencesResponse, error)
	CreateVolumeFromSnapshot(ctx context.Context, createParams *VolumeClone, snapID string) (CreateResponse, error)
	GetNAS(ctx context.Context, id string) (NAS, error)
	GetNASByName(ctx context.Context, name string) (NAS, error)
	GetNfsServer(ctx context.Context, id string) (NFSServerInstance, error)
	GetFSByName(ctx context.Context, name string) (FileSystem, error)
	GetFS(ctx context.Context, id string) (FileSystem, error)
	GetFileInterface(ctx context.Context, id string) (FileInterface, error)
	GetNFSExportByName(ctx context.Context, name string) (NFSExport, error)
	GetNFSExportByFileSystemID(ctx context.Context, fsID string) (NFSExport, error)
	CreateNAS(ctx context.Context, createParams *NASCreate) (CreateResponse, error)
	DeleteNAS(ctx context.Context, id string) (EmptyResponse, error)
	CreateFS(ctx context.Context, createParams *FsCreate) (CreateResponse, error)
	DeleteFS(ctx context.Context, id string) (EmptyResponse, error)
	CreateNFSExport(ctx context.Context, createParams *NFSExportCreate) (CreateResponse, error)
	DeleteNFSExport(ctx context.Context, id string) (EmptyResponse, error)
	ModifyNFSExport(ctx context.Context, modifyParams *NFSExportModify, id string) (CreateResponse, error)
	CreateNFSServer(ctx context.Context, createParams *NFSServerCreate) (CreateResponse, error)
	CreateFsSnapshot(ctx context.Context, createSnapParams *SnapshotFSCreate, id string) (CreateResponse, error)
	DeleteFsSnapshot(ctx context.Context, id string) (EmptyResponse, error)
	GetFsSnapshotsByVolumeID(ctx context.Context, volID string) ([]FileSystem, error)
	GetFsSnapshots(ctx context.Context) ([]FileSystem, error)
	GetFsSnapshot(ctx context.Context, snapID string) (FileSystem, error)
	CreateFsFromSnapshot(ctx context.Context, createParams *FsClone, snapID string) (CreateResponse, error)
	CloneVolume(ctx context.Context, createParams *VolumeClone, volID string) (CreateResponse, error)
	ModifyVolume(ctx context.Context, modifyParams *VolumeModify, volID string) (EmptyResponse, error)
	ModifyFS(ctx context.Context, modifyParams *FSModify, volID string) (EmptyResponse, error)
	CloneFS(ctx context.Context, createParams *FsClone, fsID string) (CreateResponse, error)
	CreateReplicationRule(ctx context.Context, createParams *ReplicationRuleCreate) (CreateResponse, error)
	GetReplicationRule(ctx context.Context, id string) (resp ReplicationRule, err error)
	GetReplicationRuleByName(ctx context.Context, name string) (ReplicationRule, error)
	CreateProtectionPolicy(ctx context.Context, createParams *ProtectionPolicyCreate) (CreateResponse, error)
	ModifyVolumeGroup(ctx context.Context, modifyParams *VolumeGroupModify, id string) (resp EmptyResponse, err error)
	GetProtectionPolicy(ctx context.Context, id string) (ProtectionPolicy, error)
	GetProtectionPolicyByName(ctx context.Context, name string) (ProtectionPolicy, error)
	ModifyProtectionPolicy(ctx context.Context, modifyParams *ProtectionPolicyCreate, id string) (resp EmptyResponse, err error)
	GetProtectionPolicies(ctx context.Context) ([]ProtectionPolicy, error)
	GetRemoteSystem(ctx context.Context, id string) (RemoteSystem, error)
	GetRemoteSystemByName(ctx context.Context, name string) (RemoteSystem, error)
	GetVolumeGroup(ctx context.Context, id string) (VolumeGroup, error)
	GetVolumeGroupByName(ctx context.Context, name string) (VolumeGroup, error)
	GetVolumeGroupsByVolumeID(ctx context.Context, id string) (VolumeGroups, error)
	GetVolumeGroups(ctx context.Context) ([]VolumeGroup, error)
	CreateVolumeGroup(ctx context.Context, createParams *VolumeGroupCreate) (CreateResponse, error)
	CreateVolumeGroupSnapshot(ctx context.Context, volumeGroupID string, createParams *VolumeGroupSnapshotCreate) (resp CreateResponse, err error)
	ModifyVolumeGroupSnapshot(ctx context.Context, modifyParams *VolumeGroupSnapshotModify, id string) (resp EmptyResponse, err error)
	UpdateVolumeGroupProtectionPolicy(ctx context.Context, id string, params *VolumeGroupChangePolicy) (resp EmptyResponse, err error)
	RemoveMembersFromVolumeGroup(ctx context.Context, params *VolumeGroupMembers, id string) (EmptyResponse, error)
	AddMembersToVolumeGroup(ctx context.Context, params *VolumeGroupMembers, id string) (EmptyResponse, error)
	GetReplicationSessionByLocalResourceID(ctx context.Context, id string) (ReplicationSession, error)
	GetAllRemoteSystems(ctx context.Context) (resp []RemoteSystem, err error)
	GetCluster(ctx context.Context) (Cluster, error)
	PerformanceMetricsByAppliance(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByApplianceResponse, error)
	PerformanceMetricsByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNodeResponse, error)
	PerformanceMetricsByVolume(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByVolumeResponse, error)
	PerformanceMetricsByCluster(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByClusterResponse, error)
	PerformanceMetricsByVM(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByVMResponse, error)
	PerformanceMetricsByVg(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByVgResponse, error)
	PerformanceMetricsByFeFcPort(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeFcPortResponse, error)
	PerformanceMetricsByFeEthPort(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeEthPortResponse, error)
	PerformanceMetricsByFeEthNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeEthNodeResponse, error)
	PerformanceMetricsByFeFcNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeFcNodeResponse, error)
	PerformanceMetricsByFileSystem(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFileSystemResponse, error)
	WearMetricsByDrive(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]WearMetricsByDriveResponse, error)
	SpaceMetricsByCluster(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByClusterResponse, error)
	SpaceMetricsByAppliance(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByApplianceResponse, error)
	SpaceMetricsByVolume(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVolumeResponse, error)
	SpaceMetricsByVolumeFamily(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVolumeFamilyResponse, error)
	SpaceMetricsByVM(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVMResponse, error)
	SpaceMetricsByStorageContainer(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByStorageContainerResponse, error)
	SpaceMetricsByVolumeGroup(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVolumeGroupResponse, error)
	CopyMetricsByAppliance(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByApplianceResponse, error)
	CopyMetricsByCluster(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByClusterResponse, error)
	CopyMetricsByVolumeGroup(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByVolumeGroupResponse, error)
	CopyMetricsByRemoteSystem(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByRemoteSystemResponse, error)
	CopyMetricsByVolume(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByVolumeResponse, error)
	PerformanceMetricsSmbByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbNodeResponse, error)
	PerformanceMetricsSmbBuiltinclientByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbClientResponse, error)
	PerformanceMetricsSmbBranchCacheByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbCacheResponse, error)
	PerformanceMetricsSmb1ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV1NodeResponse, error)
	PerformanceMetricsSmb1BuiltinclientByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV1BuiltinClientResponse, error)
	PerformanceMetricsSmb2ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV2NodeResponse, error)
	PerformanceMetricsSmb2BuiltinclientByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV2BuiltinClientResponse, error)
	PerformanceMetricsNfsByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNfsResponse, error)
	PerformanceMetricsNfsv3ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNfsv3Response, error)
	PerformanceMetricsNfsv4ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNfsv4Response, error)
	ExecuteActionOnReplicationSession(ctx context.Context, id string, actionType ActionType, params *FailoverParams) (resp EmptyResponse, err error)
	GetReplicationSessionByID(ctx context.Context, id string) (resp ReplicationSession, err error)
	RegisterK8sCluster(ctx context.Context, request *K8sCluster) (CreateResponse, error)
	CreateStorageContainer(ctx context.Context, createParams *StorageContainer) (CreateResponse, error)
	DeleteStorageContainer(ctx context.Context, id string) (EmptyResponse, error)
	GetStorageContainer(ctx context.Context, id string) (StorageContainer, error)
	ModifyStorageContainer(ctx context.Context, modifyParams *StorageContainer, id string) (EmptyResponse, error)
	CreateHostGroup(ctx context.Context, createParams *HostGroupCreate) (CreateResponse, error)
	GetHostGroup(ctx context.Context, id string) (HostGroup, error)
	GetHostGroups(ctx context.Context) ([]HostGroup, error)
	GetHostGroupByName(ctx context.Context, name string) (HostGroup, error)
	DeleteHostGroup(ctx context.Context, id string) (EmptyResponse, error)
	ModifyHostGroup(ctx context.Context, modifyParams *HostGroupModify, id string) (EmptyResponse, error)
	GetVolumeGroupSnapshot(ctx context.Context, snapID string) (VolumeGroup, error)
	GetVolumeGroupSnapshots(ctx context.Context) ([]VolumeGroup, error)
	GetVolumeGroupSnapshotByName(ctx context.Context, snapName string) (VolumeGroup, error)
	GetMaxVolumeSize(ctx context.Context) (int64, error)
}

ApiClient defines gopowerstore client interface

func NewClient

func NewClient() (Client, error)

NewClient returns new PowerStore API client initialized from env vars

func NewClientWithArgs

func NewClientWithArgs(
	apiURL string,
	username, password string, options *ClientOptions,
) (Client, error)

NewClientWithArgs returns new PowerStore API client initialized from args

type ClientIMPL

type ClientIMPL struct {
	API api.Client
}

ClientIMPL provides basic API client implementation

func (*ClientIMPL) APIClient

func (c *ClientIMPL) APIClient() api.Client

APIClient method returns powerstore API client may be useful for doing raw API requests

func (*ClientIMPL) AddMembersToVolumeGroup added in v1.8.0

func (c *ClientIMPL) AddMembersToVolumeGroup(ctx context.Context,
	params *VolumeGroupMembers, id string,
) (resp EmptyResponse, err error)

func (*ClientIMPL) AttachVolumeToHost

func (c *ClientIMPL) AttachVolumeToHost(
	ctx context.Context,
	hostID string,
	attachParams *HostVolumeAttach,
) (resp EmptyResponse, err error)

AttachVolumeToHost attaches volume to host

func (*ClientIMPL) AttachVolumeToHostGroup added in v1.10.0

func (c *ClientIMPL) AttachVolumeToHostGroup(
	ctx context.Context,
	hostGroupID string,
	attachParams *HostVolumeAttach,
) (resp EmptyResponse, err error)

AttachVolumeToHost attaches volume to hostGroup

func (*ClientIMPL) CloneFS added in v1.1.0

func (c *ClientIMPL) CloneFS(ctx context.Context,
	createParams *FsClone, fsID string,
) (resp CreateResponse, err error)

CloneFS creates a new fs by cloning a existing fs

func (*ClientIMPL) CloneVolume added in v1.1.0

func (c *ClientIMPL) CloneVolume(ctx context.Context,
	createParams *VolumeClone, volID string,
) (resp CreateResponse, err error)

CloneVolume creates a new volume by cloning a snapshot

func (*ClientIMPL) ComputeDifferences added in v1.5.0

func (c *ClientIMPL) ComputeDifferences(ctx context.Context,
	computeDiffParams *VolumeComputeDifferences, volID string,
) (resp VolumeComputeDifferencesResponse, err error)

ComputeDifferences a) finds allocated nonzero blocks or b) computes differences between two snapshots from the same volume

func (*ClientIMPL) CopyMetricsByAppliance added in v1.3.0

func (c *ClientIMPL) CopyMetricsByAppliance(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByApplianceResponse, error)

CopyMetricsByAppliance returns the Appliance copy metrics

func (*ClientIMPL) CopyMetricsByCluster added in v1.3.0

func (c *ClientIMPL) CopyMetricsByCluster(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByClusterResponse, error)

CopyMetricsByCluster returns the Cluster copy metrics

func (*ClientIMPL) CopyMetricsByRemoteSystem added in v1.3.0

func (c *ClientIMPL) CopyMetricsByRemoteSystem(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByRemoteSystemResponse, error)

CopyMetricsByRemoteSystem returns the Copy metrics for each remote system

func (*ClientIMPL) CopyMetricsByVolume added in v1.3.0

func (c *ClientIMPL) CopyMetricsByVolume(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByVolumeResponse, error)

CopyMetricsByVolume returns the Copy metrics for each remote system

func (*ClientIMPL) CopyMetricsByVolumeGroup added in v1.3.0

func (c *ClientIMPL) CopyMetricsByVolumeGroup(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]CopyMetricsByVolumeGroupResponse, error)

CopyMetricsByVolumeGroup returns the Copy metrics for each volume group

func (*ClientIMPL) CreateFS added in v1.1.0

func (c *ClientIMPL) CreateFS(ctx context.Context, createParams *FsCreate) (resp CreateResponse, err error)

CreateFS creates new filesystem on storage array

func (*ClientIMPL) CreateFsFromSnapshot added in v1.1.0

func (c *ClientIMPL) CreateFsFromSnapshot(ctx context.Context,
	createParams *FsClone, snapID string,
) (resp CreateResponse, err error)

CreateFsFromSnapshot creates a new fs by cloning a snapshot

func (*ClientIMPL) CreateFsSnapshot added in v1.1.0

func (c *ClientIMPL) CreateFsSnapshot(ctx context.Context,
	createSnapFSParams *SnapshotFSCreate, id string,
) (resp CreateResponse, err error)

CreateSnapshot creates a new snapshot

func (*ClientIMPL) CreateHost

func (c *ClientIMPL) CreateHost(ctx context.Context, createParams *HostCreate) (resp CreateResponse, err error)

CreateHost register new host

func (*ClientIMPL) CreateHostGroup added in v1.12.0

func (c *ClientIMPL) CreateHostGroup(ctx context.Context,
	createParams *HostGroupCreate,
) (resp CreateResponse, err error)

CreateHostGroup creates new host group

func (*ClientIMPL) CreateNAS added in v1.1.0

func (c *ClientIMPL) CreateNAS(ctx context.Context, createParams *NASCreate) (resp CreateResponse, err error)

CreateNAS creates new NAS on storage array

func (*ClientIMPL) CreateNFSExport added in v1.1.0

func (c *ClientIMPL) CreateNFSExport(ctx context.Context, createParams *NFSExportCreate) (resp CreateResponse, err error)

CreateNFSExport creates new NFS export on storage array

func (*ClientIMPL) CreateNFSServer added in v1.1.0

func (c *ClientIMPL) CreateNFSServer(ctx context.Context,
	createParams *NFSServerCreate,
) (resp CreateResponse, err error)

CreateNFSServer creates new NFS server on storage array

func (*ClientIMPL) CreateProtectionPolicy added in v1.4.0

func (c *ClientIMPL) CreateProtectionPolicy(ctx context.Context,
	createParams *ProtectionPolicyCreate,
) (resp CreateResponse, err error)

CreateProtectionPolicy creates new protection policy

func (*ClientIMPL) CreateReplicationRule added in v1.4.0

func (c *ClientIMPL) CreateReplicationRule(ctx context.Context,
	createParams *ReplicationRuleCreate,
) (resp CreateResponse, err error)

CreateReplicationRule creates new replication rule

func (*ClientIMPL) CreateSnapshot

func (c *ClientIMPL) CreateSnapshot(ctx context.Context,
	createSnapParams *SnapshotCreate, id string,
) (resp CreateResponse, err error)

CreateSnapshot creates a new snapshot

func (*ClientIMPL) CreateSnapshotRule added in v1.10.0

func (c *ClientIMPL) CreateSnapshotRule(ctx context.Context,
	createParams *SnapshotRuleCreate,
) (resp CreateResponse, err error)

CreateSnapshotRule creates new snapshot rule

func (*ClientIMPL) CreateStorageContainer added in v1.11.0

func (c *ClientIMPL) CreateStorageContainer(ctx context.Context,
	createParams *StorageContainer,
) (resp CreateResponse, err error)

CreateStorageContainer creates new StorageContainer

func (*ClientIMPL) CreateVolume

func (c *ClientIMPL) CreateVolume(ctx context.Context,
	createParams *VolumeCreate,
) (resp CreateResponse, err error)

CreateVolume creates new volume

func (*ClientIMPL) CreateVolumeFromSnapshot

func (c *ClientIMPL) CreateVolumeFromSnapshot(ctx context.Context,
	createParams *VolumeClone, snapID string,
) (resp CreateResponse, err error)

CreateVolumeFromSnapshot creates a new volume by cloning a snapshot

func (*ClientIMPL) CreateVolumeGroup added in v1.4.0

func (c *ClientIMPL) CreateVolumeGroup(ctx context.Context,
	createParams *VolumeGroupCreate,
) (resp CreateResponse, err error)

CreateVolumeGroup creates new volume group

func (*ClientIMPL) CreateVolumeGroupSnapshot added in v1.8.0

func (c *ClientIMPL) CreateVolumeGroupSnapshot(ctx context.Context, volumeGroupID string,
	createParams *VolumeGroupSnapshotCreate,
) (resp CreateResponse, err error)

CreateVolumeGroupSnapshot Creates a new volume group snapshot from the existing volume group

func (*ClientIMPL) DeleteFS added in v1.1.0

func (c *ClientIMPL) DeleteFS(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteFS deletes existing filesystem

func (*ClientIMPL) DeleteFsSnapshot added in v1.1.0

func (c *ClientIMPL) DeleteFsSnapshot(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteFsSnapshot is an alias for delete filesystem, because snapshots are essentially just filesystems

func (*ClientIMPL) DeleteHost

func (c *ClientIMPL) DeleteHost(ctx context.Context,
	deleteParams *HostDelete, id string,
) (resp EmptyResponse, err error)

DeleteHost removes host registration

func (*ClientIMPL) DeleteHostGroup added in v1.12.0

func (c *ClientIMPL) DeleteHostGroup(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteHostGroup deletes existing Host Group

func (*ClientIMPL) DeleteNAS added in v1.1.0

func (c *ClientIMPL) DeleteNAS(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteNAS deletes existing NAS

func (*ClientIMPL) DeleteNFSExport added in v1.1.0

func (c *ClientIMPL) DeleteNFSExport(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteNFSExport deletes existing NFS export from storage array

func (*ClientIMPL) DeleteProtectionPolicy added in v1.4.0

func (c *ClientIMPL) DeleteProtectionPolicy(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteProtectionPolicy deletes existing PP

func (*ClientIMPL) DeleteReplicationRule added in v1.4.0

func (c *ClientIMPL) DeleteReplicationRule(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteReplicationRule deletes existing RR

func (*ClientIMPL) DeleteSnapshot

func (c *ClientIMPL) DeleteSnapshot(ctx context.Context,
	deleteParams *VolumeDelete, id string,
) (resp EmptyResponse, err error)

DeleteSnapshot is an alias for delete volume, because snapshots are essentially -- volumes

func (*ClientIMPL) DeleteSnapshotRule added in v1.10.0

func (c *ClientIMPL) DeleteSnapshotRule(ctx context.Context,
	deleteParams *SnapshotRuleDelete, id string,
) (resp EmptyResponse, err error)

DeleteSnapshotRule deletes existing snapshot rule

func (*ClientIMPL) DeleteStorageContainer added in v1.11.0

func (c *ClientIMPL) DeleteStorageContainer(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteStorageContainer deletes existing StorageContainer

func (*ClientIMPL) DeleteVolume

func (c *ClientIMPL) DeleteVolume(ctx context.Context,
	deleteParams *VolumeDelete, id string,
) (resp EmptyResponse, err error)

DeleteVolume deletes existing volume

func (*ClientIMPL) DeleteVolumeGroup added in v1.4.0

func (c *ClientIMPL) DeleteVolumeGroup(ctx context.Context, id string) (resp EmptyResponse, err error)

DeleteVolumeGroup deletes existing VG

func (*ClientIMPL) DetachVolumeFromHost

func (c *ClientIMPL) DetachVolumeFromHost(
	ctx context.Context,
	hostID string,
	detachParams *HostVolumeDetach,
) (resp EmptyResponse, err error)

DetachVolumeFromHost detaches volume to host

func (*ClientIMPL) DetachVolumeFromHostGroup added in v1.10.0

func (c *ClientIMPL) DetachVolumeFromHostGroup(
	ctx context.Context,
	hostGroupID string,
	detachParams *HostVolumeDetach,
) (resp EmptyResponse, err error)

DetachVolumeFromHost detaches volume to hostGroup

func (*ClientIMPL) ExecuteActionOnReplicationSession added in v1.5.0

func (c *ClientIMPL) ExecuteActionOnReplicationSession(ctx context.Context, id string, actionType ActionType, params *FailoverParams) (resp EmptyResponse, err error)

func (*ClientIMPL) GetAllRemoteSystems added in v1.4.0

func (c *ClientIMPL) GetAllRemoteSystems(ctx context.Context) (resp []RemoteSystem, err error)

Queries all Remote Systems

func (*ClientIMPL) GetAppliance added in v1.10.0

func (c *ClientIMPL) GetAppliance(ctx context.Context, id string) (resp ApplianceInstance, err error)

GetAppliance query and return specific appliance by ID

func (*ClientIMPL) GetApplianceByName added in v1.10.0

func (c *ClientIMPL) GetApplianceByName(ctx context.Context, name string) (resp ApplianceInstance, err error)

GetApplianceByName query and return specific appliance by name

func (*ClientIMPL) GetCapacity

func (c *ClientIMPL) GetCapacity(ctx context.Context) (int64, error)

GetCapacity return capacity of first appliance

func (*ClientIMPL) GetCluster added in v1.4.0

func (c *ClientIMPL) GetCluster(ctx context.Context) (resp Cluster, err error)

GetCluster returns info about first cluster found

func (*ClientIMPL) GetCustomHTTPHeaders added in v1.8.0

func (c *ClientIMPL) GetCustomHTTPHeaders() http.Header

func (*ClientIMPL) GetFCPort

func (c *ClientIMPL) GetFCPort(ctx context.Context, id string) (resp FcPort, err error)

GetFCPort get FC port by id

func (*ClientIMPL) GetFCPorts

func (c *ClientIMPL) GetFCPorts(
	ctx context.Context,
) (resp []FcPort, err error)

GetFCPorts returns a list of fc ports for array

func (*ClientIMPL) GetFS added in v1.1.0

func (c *ClientIMPL) GetFS(ctx context.Context, id string) (resp FileSystem, err error)

GetFS query and return specific fs by id

func (*ClientIMPL) GetFSByName added in v1.1.0

func (c *ClientIMPL) GetFSByName(ctx context.Context, name string) (resp FileSystem, err error)

GetFSByName query and return specific FS by name

func (*ClientIMPL) GetFileInterface added in v1.1.0

func (c *ClientIMPL) GetFileInterface(ctx context.Context, id string) (resp FileInterface, err error)

GetFileInterface returns FileInterface from storage array by id

func (*ClientIMPL) GetFsSnapshot added in v1.1.0

func (c *ClientIMPL) GetFsSnapshot(ctx context.Context, snapID string) (resVol FileSystem, err error)

GetFsSnapshot query and return specific fs snapshot by it's id

func (*ClientIMPL) GetFsSnapshots added in v1.1.0

func (c *ClientIMPL) GetFsSnapshots(ctx context.Context) ([]FileSystem, error)

GetFsSnapshots returns all fs snapshots

func (*ClientIMPL) GetFsSnapshotsByVolumeID added in v1.1.0

func (c *ClientIMPL) GetFsSnapshotsByVolumeID(ctx context.Context, volID string) ([]FileSystem, error)

GetFsSnapshotsByVolumeID returns a list of fs snapshots for specific volume

func (*ClientIMPL) GetHost

func (c *ClientIMPL) GetHost(ctx context.Context, id string) (resp Host, err error)

GetHost get host by id

func (*ClientIMPL) GetHostByName

func (c *ClientIMPL) GetHostByName(ctx context.Context, name string) (resp Host, err error)

GetHostByName get host by name

func (*ClientIMPL) GetHostGroup added in v1.12.0

func (c *ClientIMPL) GetHostGroup(ctx context.Context, id string) (resp HostGroup, err error)

GetHostGroup query and return specific host group id

func (*ClientIMPL) GetHostGroupByName added in v1.11.0

func (c *ClientIMPL) GetHostGroupByName(ctx context.Context, name string) (resp HostGroup, err error)

GetHostGroupByName get host by name

func (*ClientIMPL) GetHostGroups added in v1.12.0

func (c *ClientIMPL) GetHostGroups(ctx context.Context) ([]HostGroup, error)

GetHostGroups returns a list of host groups

func (*ClientIMPL) GetHostVolumeMapping

func (c *ClientIMPL) GetHostVolumeMapping(ctx context.Context, id string) (resp HostVolumeMapping, err error)

GetHostVolumeMapping returns volume mapping by id

func (*ClientIMPL) GetHostVolumeMappingByVolumeID

func (c *ClientIMPL) GetHostVolumeMappingByVolumeID(
	ctx context.Context, volumeID string,
) (resp []HostVolumeMapping, err error)

GetHostVolumeMappingByVolumeID returns volume mapping by volumeID

func (*ClientIMPL) GetHostVolumeMappings

func (c *ClientIMPL) GetHostVolumeMappings(ctx context.Context) (resp []HostVolumeMapping, err error)

GetHostVolumeMappings returns volume mapping

func (*ClientIMPL) GetHosts

func (c *ClientIMPL) GetHosts(ctx context.Context) (resp []Host, err error)

GetHosts returns hosts list

func (*ClientIMPL) GetMaxVolumeSize added in v1.14.0

func (c *ClientIMPL) GetMaxVolumeSize(ctx context.Context) (int64, error)

GetMaxVolumeSize - Returns the max size of a volume supported by the array

func (*ClientIMPL) GetNAS added in v1.1.0

func (c *ClientIMPL) GetNAS(ctx context.Context, id string) (resp NAS, err error)

GetNAS query and return specific NAS by id

func (*ClientIMPL) GetNASByName added in v1.1.0

func (c *ClientIMPL) GetNASByName(ctx context.Context, name string) (resp NAS, err error)

GetNASByName query and return specific NAS by name

func (*ClientIMPL) GetNFSExportByFileSystemID added in v1.1.0

func (c *ClientIMPL) GetNFSExportByFileSystemID(ctx context.Context, fsID string) (resp NFSExport, err error)

GetNFSExportByName query and return specific NFS export by its filesystems name

func (*ClientIMPL) GetNFSExportByName added in v1.1.0

func (c *ClientIMPL) GetNFSExportByName(ctx context.Context, name string) (resp NFSExport, err error)

GetNFSExportByName query and return specific NFS export by name

func (*ClientIMPL) GetNfsServer added in v1.7.0

func (c *ClientIMPL) GetNfsServer(ctx context.Context, id string) (resp NFSServerInstance, err error)

GetNfsServer query and return specified NFS server instance by id

func (*ClientIMPL) GetProtectionPolicies added in v1.12.0

func (c *ClientIMPL) GetProtectionPolicies(ctx context.Context) ([]ProtectionPolicy, error)

GetProtectionPolicies returns a list of protection policies

func (*ClientIMPL) GetProtectionPolicy added in v1.11.0

func (c *ClientIMPL) GetProtectionPolicy(ctx context.Context, id string) (resp ProtectionPolicy, err error)

GetProtectionPolicy query and return specific protection policy id

func (*ClientIMPL) GetProtectionPolicyByName added in v1.4.0

func (c *ClientIMPL) GetProtectionPolicyByName(ctx context.Context,
	policyName string,
) (resp ProtectionPolicy, err error)

func (*ClientIMPL) GetRemoteSystem added in v1.4.0

func (c *ClientIMPL) GetRemoteSystem(ctx context.Context, id string) (resp RemoteSystem, err error)

GetRemoteSystem query and return specific remote system by id

func (*ClientIMPL) GetRemoteSystemByName added in v1.4.0

func (c *ClientIMPL) GetRemoteSystemByName(ctx context.Context, name string) (resp RemoteSystem, err error)

GetRemoteSystemByName query and return specific remote system by name

func (*ClientIMPL) GetReplicationRule added in v1.11.0

func (c *ClientIMPL) GetReplicationRule(ctx context.Context, id string) (resp ReplicationRule, err error)

GetReplicationRule query and return specific replication rule by id

func (*ClientIMPL) GetReplicationRuleByName added in v1.4.0

func (c *ClientIMPL) GetReplicationRuleByName(ctx context.Context,
	ruleName string,
) (resp ReplicationRule, err error)

func (*ClientIMPL) GetReplicationSessionByID added in v1.5.0

func (c *ClientIMPL) GetReplicationSessionByID(ctx context.Context, id string) (resp ReplicationSession, err error)

func (*ClientIMPL) GetReplicationSessionByLocalResourceID added in v1.4.0

func (c *ClientIMPL) GetReplicationSessionByLocalResourceID(ctx context.Context, id string) (resp ReplicationSession, err error)

func (*ClientIMPL) GetSnapshot

func (c *ClientIMPL) GetSnapshot(ctx context.Context, snapID string) (resVol Volume, err error)

GetSnapshot query and return specific snapshot by it's id

func (*ClientIMPL) GetSnapshotByName added in v1.12.0

func (c *ClientIMPL) GetSnapshotByName(ctx context.Context, snapName string) (resVol Volume, err error)

GetSnapshotByName query and return specific snapshot by name

func (*ClientIMPL) GetSnapshotRule added in v1.10.0

func (c *ClientIMPL) GetSnapshotRule(ctx context.Context, id string) (resp SnapshotRule, err error)

GetSnapshotRule query and return specific snapshot rule by id

func (*ClientIMPL) GetSnapshotRuleByName added in v1.11.0

func (c *ClientIMPL) GetSnapshotRuleByName(ctx context.Context, name string) (resp SnapshotRule, err error)

func (*ClientIMPL) GetSnapshotRules added in v1.10.0

func (c *ClientIMPL) GetSnapshotRules(ctx context.Context) ([]SnapshotRule, error)

GetSnapshotRules returns a list of snapshot rules

func (*ClientIMPL) GetSnapshots

func (c *ClientIMPL) GetSnapshots(ctx context.Context) ([]Volume, error)

GetSnapshots returns all snapshots

func (*ClientIMPL) GetSnapshotsByVolumeID

func (c *ClientIMPL) GetSnapshotsByVolumeID(ctx context.Context, volID string) ([]Volume, error)

GetSnapshotsByVolumeID returns a list of snapshots for specific volume

func (*ClientIMPL) GetSoftwareInstalled added in v1.8.0

func (c *ClientIMPL) GetSoftwareInstalled(
	ctx context.Context,
) (resp []SoftwareInstalled, err error)

GetSoftwareInstalled queries the software packages that are installed on each appliance, or on the cluster as a whole

func (*ClientIMPL) GetSoftwareMajorMinorVersion added in v1.8.0

func (c *ClientIMPL) GetSoftwareMajorMinorVersion(
	ctx context.Context,
) (majorMinorVersion float32, err error)

func (*ClientIMPL) GetStorageContainer added in v1.11.0

func (c *ClientIMPL) GetStorageContainer(ctx context.Context, id string) (resp StorageContainer, err error)

GetStorageContainer get existing StorageContainer with ID

func (*ClientIMPL) GetStorageISCSITargetAddresses

func (c *ClientIMPL) GetStorageISCSITargetAddresses(
	ctx context.Context,
) (resp []IPPoolAddress, err error)

GetStorageISCSITargetAddresses returns a list of PowerStore iSCSI targets ip addresses

func (*ClientIMPL) GetStorageNVMETCPTargetAddresses added in v1.14.1

func (c *ClientIMPL) GetStorageNVMETCPTargetAddresses(
	ctx context.Context,
) (resp []IPPoolAddress, err error)

GetStorageNVMETCPTargetAddresses returns a list of PowerStore NVME/TCP targets ip addresses

func (*ClientIMPL) GetVolume

func (c *ClientIMPL) GetVolume(ctx context.Context, id string) (resp Volume, err error)

GetVolume query and return specific volume by id

func (*ClientIMPL) GetVolumeByName

func (c *ClientIMPL) GetVolumeByName(ctx context.Context, name string) (resp Volume, err error)

GetVolumeByName query and return specific volume by name

func (*ClientIMPL) GetVolumeGroup added in v1.4.0

func (c *ClientIMPL) GetVolumeGroup(ctx context.Context, id string) (resp VolumeGroup, err error)

GetVolumeGroup query and return specific volume group by id

func (*ClientIMPL) GetVolumeGroupByName added in v1.4.0

func (c *ClientIMPL) GetVolumeGroupByName(ctx context.Context, name string) (resp VolumeGroup, err error)

GetVolumeGroupByName query and return specific volume group by name

func (*ClientIMPL) GetVolumeGroupSnapshot added in v1.12.0

func (c *ClientIMPL) GetVolumeGroupSnapshot(ctx context.Context, snapID string) (resVol VolumeGroup, err error)

GetVolumeGroupSnapshot query and return specific snapshot by id

func (*ClientIMPL) GetVolumeGroupSnapshotByName added in v1.12.0

func (c *ClientIMPL) GetVolumeGroupSnapshotByName(ctx context.Context, name string) (resVol VolumeGroup, err error)

GetVolumeGroupSnapshotByName fetches volume group snapshots by name

func (*ClientIMPL) GetVolumeGroupSnapshots added in v1.12.0

func (c *ClientIMPL) GetVolumeGroupSnapshots(ctx context.Context) ([]VolumeGroup, error)

GetVolumeGroupSnapshots returns all volume group snapshots

func (*ClientIMPL) GetVolumeGroups added in v1.12.0

func (c *ClientIMPL) GetVolumeGroups(ctx context.Context) ([]VolumeGroup, error)

GetVolumeGroups returns a list of volume groups

func (*ClientIMPL) GetVolumeGroupsByVolumeID added in v1.4.0

func (c *ClientIMPL) GetVolumeGroupsByVolumeID(ctx context.Context, id string) (resp VolumeGroups, err error)

func (*ClientIMPL) GetVolumes

func (c *ClientIMPL) GetVolumes(ctx context.Context) ([]Volume, error)

GetVolumes returns a list of volumes

func (*ClientIMPL) ModifyFS added in v1.1.0

func (c *ClientIMPL) ModifyFS(ctx context.Context,
	modifyParams *FSModify, id string,
) (resp EmptyResponse, err error)

func (*ClientIMPL) ModifyHost

func (c *ClientIMPL) ModifyHost(ctx context.Context,
	modifyParams *HostModify, id string,
) (resp CreateResponse, err error)

ModifyHost update host info

func (*ClientIMPL) ModifyHostGroup added in v1.12.0

func (c *ClientIMPL) ModifyHostGroup(ctx context.Context,
	modifyParams *HostGroupModify, id string,
) (resp EmptyResponse, err error)

func (*ClientIMPL) ModifyNFSExport added in v1.1.0

func (c *ClientIMPL) ModifyNFSExport(ctx context.Context,
	modifyParams *NFSExportModify, id string,
) (resp CreateResponse, err error)

ModifyNFSExport patches existing NFS export, adding or removing new hosts

func (*ClientIMPL) ModifyProtectionPolicy added in v1.11.0

func (c *ClientIMPL) ModifyProtectionPolicy(ctx context.Context, modifyParams *ProtectionPolicyCreate, id string) (resp EmptyResponse, err error)

ModifyProtectionPolicy updates existing protection policy

func (*ClientIMPL) ModifySnapshotRule added in v1.10.0

func (c *ClientIMPL) ModifySnapshotRule(ctx context.Context, modifyParams *SnapshotRuleCreate, id string) (resp EmptyResponse, err error)

ModifySnapshotRule updates existing snapshot rule If the snapshot rule is associated with a policy that is currently applied to a storage resource, the modified rule is immediately applied to the associated storage resource.

func (*ClientIMPL) ModifyStorageContainer added in v1.11.0

func (c *ClientIMPL) ModifyStorageContainer(ctx context.Context, modifyParams *StorageContainer, id string) (resp EmptyResponse, err error)

ModifyStorageContainer updates existing storage container

func (*ClientIMPL) ModifyVolume added in v1.1.0

func (c *ClientIMPL) ModifyVolume(ctx context.Context,
	modifyParams *VolumeModify, volID string,
) (resp EmptyResponse, err error)

ModifyVolume changes some volumes properties. Used for volume expansion

func (*ClientIMPL) ModifyVolumeGroup added in v1.4.0

func (c *ClientIMPL) ModifyVolumeGroup(ctx context.Context,
	modifyParams *VolumeGroupModify, id string,
) (resp EmptyResponse, err error)

func (*ClientIMPL) ModifyVolumeGroupSnapshot added in v1.15.0

func (c *ClientIMPL) ModifyVolumeGroupSnapshot(ctx context.Context,
	modifyParams *VolumeGroupSnapshotModify, id string,
) (resp EmptyResponse, err error)

ModifyVolumeGroup modifies existing volume group snapshot

func (*ClientIMPL) PerformanceMetricsByAppliance added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByAppliance(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByApplianceResponse, error)

PerformanceMetricsByAppliance - Appliance performance metrics

func (*ClientIMPL) PerformanceMetricsByCluster added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByCluster(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByClusterResponse, error)

PerformanceMetricsByCluster - Cluster performance metrics

func (*ClientIMPL) PerformanceMetricsByFeEthNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByFeEthNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeEthNodeResponse, error)

PerformanceMetricsByFeEthNode - Frontend ethernet performance metrics for node

func (*ClientIMPL) PerformanceMetricsByFeEthPort added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByFeEthPort(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeEthPortResponse, error)

PerformanceMetricsByFeEthPort - Frontend ethernet port performance metrics

func (*ClientIMPL) PerformanceMetricsByFeFcNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByFeFcNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeFcNodeResponse, error)

PerformanceMetricsByFeFcNode - Frontend fibre channel performance metrics for node

func (*ClientIMPL) PerformanceMetricsByFeFcPort added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByFeFcPort(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFeFcPortResponse, error)

PerformanceMetricsByFeFcPort - Frontend fibre channel port performance metrics

func (*ClientIMPL) PerformanceMetricsByFileSystem added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByFileSystem(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByFileSystemResponse, error)

PerformanceMetricsByFileSystem - Performance metrics for the file system

func (*ClientIMPL) PerformanceMetricsByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNodeResponse, error)

PerformanceMetricsByNode - Node performance metrics

func (*ClientIMPL) PerformanceMetricsByVM added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByVM(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByVMResponse, error)

PerformanceMetricsByVM - Virtual Machine performance metrics

func (*ClientIMPL) PerformanceMetricsByVg added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByVg(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByVgResponse, error)

PerformanceMetricsByVg - Storage performance metrics for all volumes in a volume group

func (*ClientIMPL) PerformanceMetricsByVolume added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsByVolume(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByVolumeResponse, error)

PerformanceMetricsByVolume - Volume performance metrics

func (*ClientIMPL) PerformanceMetricsNfsByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsNfsByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNfsResponse, error)

PerformanceMetricsNfsByNode - Performance metrics for the NFS protocol

func (*ClientIMPL) PerformanceMetricsNfsv3ByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsNfsv3ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNfsv3Response, error)

PerformanceMetricsNfsv3ByNode - Performance metrics for the NFSv3 protocol

func (*ClientIMPL) PerformanceMetricsNfsv4ByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsNfsv4ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsByNfsv4Response, error)

PerformanceMetricsNfsv4ByNode - Performance metrics for the NFSv4 protocol

func (*ClientIMPL) PerformanceMetricsSmb1BuiltinclientByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsSmb1BuiltinclientByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV1BuiltinClientResponse, error)

PerformanceMetricsSmb1BuiltinclientByNode - Performance metrics for the SMB1 protocol built-in client

func (*ClientIMPL) PerformanceMetricsSmb1ByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsSmb1ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV1NodeResponse, error)

PerformanceMetricsSmb1ByNode - Performance metrics for the SMB1 protocol basic

func (*ClientIMPL) PerformanceMetricsSmb2BuiltinclientByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsSmb2BuiltinclientByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV2BuiltinClientResponse, error)

PerformanceMetricsSmb2BuiltinclientByNode - Performance metrics for the SMB2 protocol built-in client

func (*ClientIMPL) PerformanceMetricsSmb2ByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsSmb2ByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbV2NodeResponse, error)

PerformanceMetricsSmb2ByNode - Performance metrics for the SMB2 protocol basic

func (*ClientIMPL) PerformanceMetricsSmbBranchCacheByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsSmbBranchCacheByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbCacheResponse, error)

PerformanceMetricsSmbBranchCacheByNode - Performance metrics for the SMB protocol Branch-Cache

func (*ClientIMPL) PerformanceMetricsSmbBuiltinclientByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsSmbBuiltinclientByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbClientResponse, error)

PerformanceMetricsSmbBuiltinclientByNode - Performance metrics for the SMB protocol built-in client

func (*ClientIMPL) PerformanceMetricsSmbByNode added in v1.3.0

func (c *ClientIMPL) PerformanceMetricsSmbByNode(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]PerformanceMetricsBySmbNodeResponse, error)

PerformanceMetricsSmbByNode - Performance metrics for the SMB protocol global

func (*ClientIMPL) RegisterK8sCluster added in v1.8.0

func (c *ClientIMPL) RegisterK8sCluster(ctx context.Context,
	createParams *K8sCluster,
) (resp CreateResponse, err error)

RegisterK8sCluster registers K8s cluster with PowerStore array

func (*ClientIMPL) RemoveMembersFromVolumeGroup added in v1.4.0

func (c *ClientIMPL) RemoveMembersFromVolumeGroup(ctx context.Context,
	params *VolumeGroupMembers, id string,
) (resp EmptyResponse, err error)

func (*ClientIMPL) SetCustomHTTPHeaders

func (c *ClientIMPL) SetCustomHTTPHeaders(headers http.Header)

SetCustomHTTPHeaders method register headers which will be sent with every request

func (*ClientIMPL) SetLogger

func (c *ClientIMPL) SetLogger(logger Logger)

SetLogger set logger which will be used by client

func (*ClientIMPL) SetTraceID

func (c *ClientIMPL) SetTraceID(ctx context.Context, value string) context.Context

SetTraceID method allows to set tracing ID to context which will be used in log messages

func (*ClientIMPL) SpaceMetricsByAppliance added in v1.3.0

func (c *ClientIMPL) SpaceMetricsByAppliance(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByApplianceResponse, error)

SpaceMetricsByAppliance returns the Appliance space metrics

func (*ClientIMPL) SpaceMetricsByCluster added in v1.3.0

func (c *ClientIMPL) SpaceMetricsByCluster(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByClusterResponse, error)

SpaceMetricsByCluster returns the Cluster space metrics

func (*ClientIMPL) SpaceMetricsByStorageContainer added in v1.3.0

func (c *ClientIMPL) SpaceMetricsByStorageContainer(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByStorageContainerResponse, error)

SpaceMetricsByStorageContainer returns the Storage Container space metrics

func (*ClientIMPL) SpaceMetricsByVM added in v1.3.0

func (c *ClientIMPL) SpaceMetricsByVM(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVMResponse, error)

SpaceMetricsByVM returns the Virtual Machine space metrics

func (*ClientIMPL) SpaceMetricsByVolume added in v1.3.0

func (c *ClientIMPL) SpaceMetricsByVolume(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVolumeResponse, error)

SpaceMetricsByVolume returns the Volume space metrics

func (*ClientIMPL) SpaceMetricsByVolumeFamily added in v1.3.0

func (c *ClientIMPL) SpaceMetricsByVolumeFamily(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVolumeFamilyResponse, error)

SpaceMetricsByVolumeFamily returns the Volume family space metrics

func (*ClientIMPL) SpaceMetricsByVolumeGroup added in v1.3.0

func (c *ClientIMPL) SpaceMetricsByVolumeGroup(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]SpaceMetricsByVolumeGroupResponse, error)

SpaceMetricsByVolumeGroup returns the Volume space metrics in a volume group

func (*ClientIMPL) UpdateVolumeGroupProtectionPolicy added in v1.4.0

func (c *ClientIMPL) UpdateVolumeGroupProtectionPolicy(ctx context.Context, id string, params *VolumeGroupChangePolicy) (resp EmptyResponse, err error)

func (*ClientIMPL) WearMetricsByDrive added in v1.3.0

func (c *ClientIMPL) WearMetricsByDrive(ctx context.Context, entityID string, interval MetricsIntervalEnum) ([]WearMetricsByDriveResponse, error)

WearMetricsByDrive returns the Drive wear metrics

type ClientOptions

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

ClientOptions struct provide additional options for api client configuration

func NewClientOptions

func NewClientOptions() *ClientOptions

NewClientOptions returns pointer to a new ClientOptions struct

func (*ClientOptions) DefaultTimeout

func (co *ClientOptions) DefaultTimeout() uint64

DefaultTimeout returns http client default timeout

func (*ClientOptions) Insecure

func (co *ClientOptions) Insecure() bool

Insecure returns insecure client option

func (*ClientOptions) RateLimit added in v1.3.0

func (co *ClientOptions) RateLimit() uint64

RateLimit returns http client rate limit

func (*ClientOptions) RequestIDKey

func (co *ClientOptions) RequestIDKey() api.ContextKey

RequestIDKey returns client requestIDKey

func (*ClientOptions) SetDefaultTimeout

func (co *ClientOptions) SetDefaultTimeout(value uint64) *ClientOptions

SetDefaultTimeout sets default http client timeout value

func (*ClientOptions) SetInsecure

func (co *ClientOptions) SetInsecure(value bool) *ClientOptions

SetInsecure sets insecure value

func (*ClientOptions) SetRateLimit added in v1.3.0

func (co *ClientOptions) SetRateLimit(value uint64) *ClientOptions

SetRateLimit returns http client rate limit

func (*ClientOptions) SetRequestIDKey

func (co *ClientOptions) SetRequestIDKey(value api.ContextKey) *ClientOptions

SetRequestIDKey sets requestIdKey value

type Cluster added in v1.4.0

type Cluster struct {
	// Unique identifier of the cluster.
	ID string `json:"id,omitempty"`
	// User-specified name of the cluster
	Name string `json:"name,omitempty"`
	// Management IP address of the remote system instance
	ManagementAddress string `json:"management_address,omitempty"`
	// Current state of the cluster
	State string `json:"state,omitempty"`
	// NVMe Subsystem NQN for cluster
	NVMeNQN string `json:"nvm_subsystem_nqn,omitempty"`
	// Current clock time for the system in UTC format.
	SystemTime string `json:"system_time,omitempty"`
}

Cluster details about the cluster

func (*Cluster) Fields added in v1.4.0

func (r *Cluster) Fields() []string

Fields returns fields which must be requested to fill struct

type CommonAvgFields added in v1.3.0

type CommonAvgFields struct {
	// Average size of read and write operations in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Weighted average read bandwidth in bytes per second.
	AvgReadBandwidth float32 `json:"avg_read_bandwidth,omitempty"`

	// Average reads per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Weighted average total bandwidth in bytes per second.
	AvgTotalBandwidth float32 `json:"avg_total_bandwidth,omitempty"`

	// Average total input and output operations per second.
	AvgTotalIops float64 `json:"avg_total_iops,omitempty"`

	// Weighted average write bandwidth in bytes per second.
	AvgWriteBandwidth float32 `json:"avg_write_bandwidth,omitempty"`

	// Average writes per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`
}

type CommonEthPortFields added in v1.3.0

type CommonEthPortFields struct {
	// The average total bytes received per second.
	AvgBytesRxPs float32 `json:"avg_bytes_rx_ps,omitempty"`

	// The average total bytes transmitted per second.
	AvgBytesTxPs float32 `json:"avg_bytes_tx_ps,omitempty"`

	// The average number of packets received with CRC error (and thus dropped) per second.
	AvgPktRxCrcErrorPs float32 `json:"avg_pkt_rx_crc_error_ps,omitempty"`

	// The average number of packets discarded per second due to lack of buffer space.
	AvgPktRxNoBufferErrorPs float32 `json:"avg_pkt_rx_no_buffer_error_ps,omitempty"`

	// The average number of packets received per second.
	AvgPktRxPs float32 `json:"avg_pkt_rx_ps,omitempty"`

	// The average number of packets that failed to be transmitted per second due to error.
	AvgPktTxErrorPs float32 `json:"avg_pkt_tx_error_ps,omitempty"`

	// The average number of packets transmitted per second.
	AvgPktTxPs float32 `json:"avg_pkt_tx_ps,omitempty"`

	// The total bytes received per second.
	BytesRxPs float32 `json:"bytes_rx_ps,omitempty"`

	// The total bytes transmitted per second.
	BytesTxPs float32 `json:"bytes_tx_ps,omitempty"`

	// The maximum total bytes received per second.
	MaxBytesRxPs float32 `json:"max_bytes_rx_ps,omitempty"`

	// The maximum total bytes transmitted per second.
	MaxBytesTxPs float32 `json:"max_bytes_tx_ps,omitempty"`

	// The maximum number of packets received with CRC error (and thus dropped) per second.
	MaxPktRxCrcErrorPs float32 `json:"max_pkt_rx_crc_error_ps,omitempty"`

	// The maximum number of packets discarded per second due to lack of buffer space.
	MaxPktRxNoBufferErrorPs float32 `json:"max_pkt_rx_no_buffer_error_ps,omitempty"`

	// The maximum number of packets received per second.
	MaxPktRxPs float32 `json:"max_pkt_rx_ps,omitempty"`

	// The maximum number of packets that failed to be transmitted per second due to error.
	MaxPktTxErrorPs float32 `json:"max_pkt_tx_error_ps,omitempty"`

	// The maximum number of packets transmitted per second.
	MaxPktTxPs float32 `json:"max_pkt_tx_ps,omitempty"`

	// Reference to the associated node on which these metrics were recorded.
	NodeID string `json:"node_id,omitempty"`

	// The number of packets received with CRC error (and thus dropped) per second.
	PktRxCrcErrorPs float32 `json:"pkt_rx_crc_error_ps,omitempty"`

	// The number of packets discarded per second due to lack of buffer space.
	PktRxNoBufferErrorPs float32 `json:"pkt_rx_no_buffer_error_ps,omitempty"`

	// The number of packets received per second.
	PktRxPs float32 `json:"pkt_rx_ps,omitempty"`

	// The number of packets that failed to be transmitted per second due to error.
	PktTxErrorPs float32 `json:"pkt_tx_error_ps,omitempty"`

	// The number of packets transmitted per second.
	PktTxPs float32 `json:"pkt_tx_ps,omitempty"`
}

CommonEthPortFields contains fields common across all ethernet port metrics responses

type CommonMaxAvgIopsBandwidthFields added in v1.3.0

type CommonMaxAvgIopsBandwidthFields struct {
	// Maximum average size of input and output operations in bytes.
	MaxAvgIoSize float32 `json:"max_avg_io_size,omitempty"`

	// Maximum of average latency in microseconds.
	MaxAvgLatency float32 `json:"max_avg_latency,omitempty"`

	// Maximum read latency in microseconds.
	MaxAvgReadLatency float32 `json:"max_avg_read_latency,omitempty"`

	// Maximum of average read size in bytes.
	MaxAvgReadSize float32 `json:"max_avg_read_size,omitempty"`

	// Maximum of average write latency in microseconds.
	MaxAvgWriteLatency float32 `json:"max_avg_write_latency,omitempty"`

	// Maximum of average write size in bytes.
	MaxAvgWriteSize float32 `json:"max_avg_write_size,omitempty"`

	// Maximum read bandwidth in bytes per second.
	MaxReadBandwidth float32 `json:"max_read_bandwidth,omitempty"`

	// Maximum reads per second.
	MaxReadIops float32 `json:"max_read_iops,omitempty"`

	// Maximum total bandwidth in bytes per second.
	MaxTotalBandwidth float32 `json:"max_total_bandwidth,omitempty"`

	// Maximum totals per second.
	MaxTotalIops float64 `json:"max_total_iops,omitempty"`

	// Maximum write bandwidth in bytes per second.
	MaxWriteBandwidth float32 `json:"max_write_bandwidth,omitempty"`

	// Maximum writes per second.
	MaxWriteIops float32 `json:"max_write_iops,omitempty"`

	// Read rate in bytes per second.
	ReadBandwidth float32 `json:"read_bandwidth,omitempty"`

	// Total read operations per second.
	ReadIops float32 `json:"read_iops,omitempty"`

	// Total data transfer rate in bytes per second.
	TotalBandwidth float32 `json:"total_bandwidth,omitempty"`

	// Total read and write operations per second.
	TotalIops float64 `json:"total_iops,omitempty"`

	// Write rate in byte/sec.
	WriteBandwidth float32 `json:"write_bandwidth,omitempty"`

	// Total write operations per second.
	WriteIops float32 `json:"write_iops,omitempty"`
}

CommonMaxAvgIopsBandwidthFields contains common fiels for max/avg I/O, latency, size, and bandwith fields for metrics responses

type CommonMetricsFields added in v1.3.0

type CommonMetricsFields struct {
	Entity string `json:"entity,omitempty"`
	// Number of times the metrics is repeated.
	// Maximum: 2.147483647e+09
	// Minimum: 0
	RepeatCount *int32 `json:"repeat_count,omitempty"`

	// End of sample period.
	// Format: date-time
	Timestamp strfmt.DateTime `json:"timestamp,omitempty"`
}

CommonMetricsFields contains fields common across all metrics responses

type CommonNfsv34ResponseFields added in v1.3.0

type CommonNfsv34ResponseFields struct {
	// Average failed operations per second.
	AvgFailedMdOps float32 `json:"avg_failed_md_ops,omitempty"`

	// Average md latency operations per second.
	AvgMdLatency float32 `json:"avg_md_latency,omitempty"`

	// Average md operations per second.
	AvgMdOps float32 `json:"avg_md_ops,omitempty"`

	// Average read operations per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read and write operations per second.
	AvgTotalIops float32 `json:"avg_total_iops,omitempty"`

	// Average write operations per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Total failed md operations per second.
	FailedMdOps float32 `json:"failed_md_ops,omitempty"`

	// Maximum average md latency per second.
	MaxAvgMdLatency float32 `json:"max_avg_md_latency,omitempty"`

	// Max failed operations per second.
	MaxFailedMdOps float32 `json:"max_failed_md_ops,omitempty"`

	// Maximum read operations per second.
	MaxReadIops float32 `json:"max_read_iops,omitempty"`

	// Maximum read and write operations per second.
	MaxTotalIops float32 `json:"max_total_iops,omitempty"`

	// Maximum write operations per second.
	MaxWriteIops float32 `json:"max_write_iops,omitempty"`

	// Total md operations per second.
	MdOps float32 `json:"md_ops,omitempty"`

	// Unique identifier of the nfs.
	NodeID string `json:"node_id,omitempty"`

	// Total read iops in microseconds.
	ReadIops float32 `json:"read_iops,omitempty"`

	// Total read and write iops in microseconds.
	TotalIops float32 `json:"total_iops,omitempty"`

	// Total write iops in microseconds.
	WriteIops float32 `json:"write_iops,omitempty"`
}

CommonNfsv34ResponseFields contains common fields from Nfs v3/4 metrics responses

type CommonSMBFields added in v1.3.0

type CommonSMBFields struct {
	// Average calls.
	AvgCalls float32 `json:"avg_calls,omitempty"`

	// Average read and write operations per second.
	AvgIops float32 `json:"avg_iops,omitempty"`

	// Average read and write size in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Average read operations per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Average write operations per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	// Maximum of average read and write latency in microseconds.
	MaxAvgLatency float32 `json:"max_avg_latency,omitempty"`

	// Maximum of average read latency in microseconds.
	MaxAvgReadLatency float32 `json:"max_avg_read_latency,omitempty"`

	// Maximum of average read size in bytes.
	MaxAvgReadSize float32 `json:"max_avg_read_size,omitempty"`

	// Maximum of average read and write size in bytes.
	MaxAvgSize float32 `json:"max_avg_size,omitempty"`

	// Maximum of average write latency in microseconds.
	MaxAvgWriteLatency float32 `json:"max_avg_write_latency,omitempty"`

	// Maximum of average write size in bytes.
	MaxAvgWriteSize float32 `json:"max_avg_write_size,omitempty"`

	// Maximum calls.
	MaxCalls float32 `json:"max_calls,omitempty"`

	// Maximum read and write operations per second.
	MaxIops float32 `json:"max_iops,omitempty"`

	// Maximum read operations per second.
	MaxReadIops float32 `json:"max_read_iops,omitempty"`

	// Maximum write operations per second.
	MaxWriteIops float32 `json:"max_write_iops,omitempty"`

	// Unique identifier of the node.
	NodeID string `json:"node_id,omitempty"`

	// Total read operations per second.
	ReadIops float32 `json:"read_iops,omitempty"`

	// Total calls.
	TotalCalls float32 `json:"total_calls,omitempty"`

	// Total read and write operations per second.
	TotalIops float32 `json:"total_iops,omitempty"`

	// Total write operations per second.
	WriteIops float32 `json:"write_iops,omitempty"`
}

CommonSMBFields contains common fields for SMB metrics responses

type CommonUnalignedFields added in v1.3.0

type CommonUnalignedFields struct {
	// Average unaligned read/write rate in bytes per second.
	AvgUnalignedBandwidth float32 `json:"avg_unaligned_bandwidth,omitempty"`

	// Average unaligned total input/output per second.
	AvgUnalignedIops float32 `json:"avg_unaligned_iops,omitempty"`

	// Average unaligned read rate in bytes per second.
	AvgUnalignedReadBandwidth float32 `json:"avg_unaligned_read_bandwidth,omitempty"`

	// Average unaligned read input/output per second.
	AvgUnalignedReadIops float32 `json:"avg_unaligned_read_iops,omitempty"`

	// Average unaligned write rate in bytes per second.
	AvgUnalignedWriteBandwidth float32 `json:"avg_unaligned_write_bandwidth,omitempty"`

	// Average unaligned write input/output per second.
	AvgUnalignedWriteIops float32 `json:"avg_unaligned_write_iops,omitempty"`

	// Maximum unaligned read/write rate in bytes per second.
	MaxUnalignedBandwidth float32 `json:"max_unaligned_bandwidth,omitempty"`

	// Maximum unaligned total input/output per second.
	MaxUnalignedIops float32 `json:"max_unaligned_iops,omitempty"`

	// Maximum unaligned read rate in bytes per second.
	MaxUnalignedReadBandwidth float32 `json:"max_unaligned_read_bandwidth,omitempty"`

	// Maximum unaligned read input/output per second.
	MaxUnalignedReadIops float32 `json:"max_unaligned_read_iops,omitempty"`

	// Maximum unaligned write rate in bytes per second.
	MaxUnalignedWriteBandwidth float32 `json:"max_unaligned_write_bandwidth,omitempty"`

	// Maximum unaligned write input/output per second.
	MaxUnalignedWriteIops float32 `json:"max_unaligned_write_iops,omitempty"`

	// Unaligned read/write rate in bytes per second.
	UnalignedBandwidth float32 `json:"unaligned_bandwidth,omitempty"`

	// Unaligned total input/output per second.
	UnalignedIops float32 `json:"unaligned_iops,omitempty"`

	// Unaligned read rate in bytes per second.
	UnalignedReadBandwidth float32 `json:"unaligned_read_bandwidth,omitempty"`

	// Unaligned read input/output per second.
	UnalignedReadIops float32 `json:"unaligned_read_iops,omitempty"`

	// Unaligned write rate in bytes per second.
	UnalignedWriteBandwidth float32 `json:"unaligned_write_bandwidth,omitempty"`

	// Unaligned write input/output per second.
	UnalignedWriteIops float32 `json:"unaligned_write_iops,omitempty"`
}

CommonUnalignedFields contains common unaligned fields from metrics responses

type CopyMetricsByApplianceResponse added in v1.3.0

type CopyMetricsByApplianceResponse struct {
	CommonMetricsFields
	CopyMetricsCommonFields
	// Unique identifier of the appliance.
	ApplianceID string `json:"appliance_id,omitempty"`
}

CopyMetricsByApplianceResponse is returned by copy_metrics_by_appliance

type CopyMetricsByClusterResponse added in v1.3.0

type CopyMetricsByClusterResponse struct {
	CommonMetricsFields
	CopyMetricsCommonFields
}

CopyMetricsByClusterResponse is returned by copy_metrics_by_cluster

type CopyMetricsByRemoteSystemResponse added in v1.3.0

type CopyMetricsByRemoteSystemResponse struct {
	CommonMetricsFields
	CopyMetricsCommonFields
	// Unique identifier of the remote system.
	RemoteSystemID string `json:"remote_system_id,omitempty"`
}

CopyMetricsByRemoteSystemResponse is returned by copy_metrics_by_remote_system

type CopyMetricsByVolumeGroupResponse added in v1.3.0

type CopyMetricsByVolumeGroupResponse struct {
	CommonMetricsFields
	CopyMetricsCommonFields
	// Unique identifier of the volume group.
	VgID string `json:"vg_id,omitempty"`
}

CopyMetricsByVolumeGroupResponse is returned by copy_metrics_by_vg

type CopyMetricsByVolumeResponse added in v1.3.0

type CopyMetricsByVolumeResponse struct {
	CommonMetricsFields
	CopyMetricsCommonFields
	// Unique identifier of the volume.
	VolumeID string `json:"volume_id,omitempty"`
}

CopyMetricsByVolumeResponse is returned by copy_metrics_by_volume

type CopyMetricsCommonFields added in v1.3.0

type CopyMetricsCommonFields struct {
	// Number of bytes remaining to be copied at the end of this sampling period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	DataRemaining *int64 `json:"data_remaining,omitempty"`

	// Number of bytes transferred during this sampling period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	DataTransferred *int64 `json:"data_transferred,omitempty"`

	// Time (in milliseconds) spent doing reads during this sampling period.
	//
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	ReadTime *int64 `json:"read_time,omitempty"`

	// session type
	SessionType CopySessionTypeEnum `json:"session_type,omitempty"`

	// Localized message string corresponding to session_type
	SessionTypeL10n string `json:"session_type_l10n,omitempty"`

	// Data transfer rate (in bytes/second) computed using data_transferred and transfer_time.
	//
	TransferRate float32 `json:"transfer_rate,omitempty"`

	// The time (in milliseconds) spent in copy activity during this sampling period.
	//
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	TransferTime *int64 `json:"transfer_time,omitempty"`

	// Time (in milliseconds) spent doing writes during this sampling period.
	//
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	WriteTime *int64 `json:"write_time,omitempty"`
}

CopyMetricsCommonFields is the filed common to all copy metrics

type CopySessionTypeEnum added in v1.3.0

type CopySessionTypeEnum string

CopySessionTypeEnum is a copy session type

type CreateResponse

type CreateResponse struct {
	// Unique identifier of the new instance created.
	ID string `json:"id,omitempty"`
}

CreateResponse create response

type Datastores added in v1.11.0

type Datastores struct {
	ID           string `json:"id"`
	Name         string `json:"name"`
	InstanceUUID string `json:"istance_uuid"`
}

Datastores contains properties of datastores.

type DaysOfWeekEnum added in v1.10.0

type DaysOfWeekEnum string

DaysOfWeekEnum - days of week

const (
	DaysOfWeekEnumMonday    DaysOfWeekEnum = "Monday"
	DaysOfWeekEnumTuesday   DaysOfWeekEnum = "Tuesday"
	DaysOfWeekEnumWednesday DaysOfWeekEnum = "Wednesday"
	DaysOfWeekEnumThursday  DaysOfWeekEnum = "Thursday"
	DaysOfWeekEnumFriday    DaysOfWeekEnum = "Friday"
	DaysOfWeekEnumSaturday  DaysOfWeekEnum = "Saturday"
	DaysOfWeekEnumSunday    DaysOfWeekEnum = "Sunday"
)

DaysOfWeekEnum - known days of week

type EmptyResponse

type EmptyResponse string

EmptyResponse is response without content

type FLRCreate added in v1.8.0

type FLRCreate struct {
	Mode             string `json:"mode,omitempty"`
	MinimumRetention string `json:"minimum_retention,omitempty"`
	DefaultRetention string `json:"default_retention,omitempty"`
	MaximumRetention string `json:"maximum_retention,omitempty"`
}

type FSModify added in v1.1.0

type FSModify struct {
	// 	integer($int64)
	//minimum: 3221225472
	//maximum: 281474976710656
	//
	//Size, in bytes, presented to the host or end user. This can be used for both expand and shrink on a file system.
	Size        int    `json:"size_total"`
	Description string `json:"description,omitempty"`
}

FSModify modifies existing FS

type FailoverParams added in v1.5.0

type FailoverParams struct {
	// For DR failover.
	IsPlanned bool `json:"is_planned"`
	// Reverse replication direction
	Reverse bool `json:"reverse,omitempty"`
	// Force for DR
	Force bool `json:"force,omitempty"`
}

failover params create failover request

type FcPort

type FcPort struct {
	ApplianceID string `json:"appliance_id,omitempty"`
	// current speed
	CurrentSpeed FcPortSpeedEnum `json:"current_speed,omitempty"`
	// Localized message string corresponding to <b>current_speed</b>
	// Unique identifier of the port.
	ID string `json:"id,omitempty"`
	// This is the embeddable reference form of io_module_id attribute.
	IoModuleID string `json:"io_module_id,omitempty"`
	// Indicates whether the port's link is up. Values are:
	// * true - Link is up.
	// * false - Link is down.
	IsLinkUp bool `json:"is_link_up,omitempty"`
	// Name of the port.
	Name string `json:"name,omitempty"`
	// This is the embeddable reference form of node_id attribute.
	NodeID string `json:"node_id,omitempty"`
	// This is the embeddable reference form of partner_id attribute.
	PartnerID string `json:"partner_id,omitempty"`
	// port connector type
	PortIndex int64 `json:"port_index,omitempty"`
	// requested speed
	RequestedSpeed FcPortSpeedEnum `json:"requested_speed,omitempty"`
	// Localized message string corresponding to <b>requested_speed</b>
	SfpID string `json:"sfp_id,omitempty"`
	// List of supported transmission speeds for the port.
	SupportedSpeeds []FcPortSpeedEnum `json:"supported_speeds"`
	// World Wide Name (WWN) of the port.
	Wwn string `json:"wwn,omitempty"`
	// World Wide Name (WWN) of NVME port
	WwnNVMe string `json:"wwn_nvme,omitempty"`
	// World Wide Name (WWN) of the Node of the port.
	WwnNode string `json:"wwn_node,omitempty"`
}

FcPort This resource type has queriable associations from appliance, hardware, hardware, hardware, fc_port

func (*FcPort) Fields

func (h *FcPort) Fields() []string

Fields returns fields which must be requested to fill struct

type FcPortModify

type FcPortModify struct {
	// requested speed
	// Required: true
	RequestedSpeed *FcPortSpeedEnum `json:"requested_speed"`
}

FcPortModify fc port modify

type FcPortSpeedEnum

type FcPortSpeedEnum string

FcPortSpeedEnum Possible Fibre Channel port speeds. For the current_speed attribute, these values show the current transmission speed on the port. For the requested_speed attribute, these values show the transmission speed set by the user. A requested speed of Auto means that the current speed value will be automatically detected. If this file is updated, also update FrontEndPortSpeedEnum.yaml * Auto - the speed value is automatically detected * 4_Gbps - 4 Gigabits per second * 8_Gbps - 8 Gigabits per second * 16_Gbps - 16 Gigabits per second * 32_Gbps - 32 Gigabits per second

swagger:model FcPortSpeedEnum

const (
	// FcPortSpeedEnumAuto captures enum value "Auto"
	FcPortSpeedEnumAuto FcPortSpeedEnum = "Auto"

	// FcPortSpeedEnumNr4Gbps captures enum value "4_Gbps"
	FcPortSpeedEnumNr4Gbps FcPortSpeedEnum = "4_Gbps"

	// FcPortSpeedEnumNr8Gbps captures enum value "8_Gbps"
	FcPortSpeedEnumNr8Gbps FcPortSpeedEnum = "8_Gbps"

	// FcPortSpeedEnumNr16Gbps captures enum value "16_Gbps"
	FcPortSpeedEnumNr16Gbps FcPortSpeedEnum = "16_Gbps"

	// FcPortSpeedEnumNr32Gbps captures enum value "32_Gbps"
	FcPortSpeedEnumNr32Gbps FcPortSpeedEnum = "32_Gbps"
)

type FileInterface added in v1.1.0

type FileInterface struct {
	// Unique id of the file interface
	ID string `json:"id"`
	// Ip address of file interface
	IPAddress string `json:"ip_address"`
}

Details about the file interface

func (*FileInterface) Fields added in v1.1.0

func (n *FileInterface) Fields() []string

Fields returns fields which must be requested to fill struct

type FileSystem added in v1.1.0

type FileSystem struct {
	// File system id
	ID string `json:"id,omitempty"`
	// File system name
	Name string `json:"name,omitempty"`
	// File system description
	Description string `json:"description,omitempty"`
	// Id of the NAS Server on which the file system is mounted
	NasServerID string `json:"nas_server_id,omitempty"`
	// Type of filesystem: normal or snapshot
	FilesystemType FileSystemTypeEnum `json:"filesystem_type,omitempty"`
	// Size, in bytes, presented to the host or end user
	SizeTotal int64 `json:"size_total,omitempty"`
	// Size used, in bytes, for the data and metadata of the file system
	SizeUsed int64 `json:"size_used,omitempty"`
	// Id of a parent filesystem
	ParentID string `json:"parent_id,omitempty"`
}

Details about the FileSystem

func (*FileSystem) Fields added in v1.1.0

func (n *FileSystem) Fields() []string

Fields returns fields which must be requested to fill struct

type FileSystemTypeEnum added in v1.1.0

type FileSystemTypeEnum string
const (
	FileSystemTypeEnumPrimary  FileSystemTypeEnum = "Primary"  // Normal file system or clone
	FileSystemTypeEnumSnapshot FileSystemTypeEnum = "Snapshot" // Snapshot of a file system
)

type FileSystems added in v1.12.0

type FileSystems struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

FileSystems - Details of file system

type FsClone added in v1.1.0

type FsClone struct {
	// Unique name for the fs to be created.
	Name        *string `json:"name"`
	Description *string `json:"description,omitempty"`
	MetaDataHeader
}

FsClone request for cloning snapshot/fs

func (*FsClone) MetaData added in v1.3.0

func (fc *FsClone) MetaData() http.Header

MetaData returns the metadata headers.

type FsCreate added in v1.1.0

type FsCreate struct {
	Description              string      `json:"description,omitempty"`
	Name                     string      `json:"name"`
	NASServerID              string      `json:"nas_server_id"`
	Size                     int64       `json:"size_total"`
	ConfigType               string      `json:"config_type,omitempty"`
	AccessPolicy             string      `json:"access_policy,omitempty"`
	LockingPolicy            string      `json:"locking_policy,omitempty"`
	FolderRenamePolicy       string      `json:"folder_rename_policy,omitempty"`
	IsAsyncMTimeEnabled      bool        `json:"is_async_MTime_enabled,omitempty"`
	ProtectionPolicyID       string      `json:"protection_policy_id,omitempty"`
	FileEventsPublishingMode string      `json:"file_events_publishing_mode,omitempty"`
	HostIOSize               string      `json:"host_io_size,omitempty"`
	FlrCreate                interface{} `json:"flr_attributes,omitempty"`
	MetaDataHeader
}

FsCreate params for creating 'create fs' request

func (*FsCreate) MetaData added in v1.3.0

func (fc *FsCreate) MetaData() http.Header

MetaData returns the metadata headers.

type Host

type Host struct {
	// A description for the host.
	Description string `json:"description,omitempty"`
	// Associated host group, if host is part of host group.
	HostGroupID string `json:"host_group_id,omitempty"`
	// Unique id of the host.
	ID string `json:"id,omitempty"`
	// initiators
	Initiators []InitiatorInstance `json:"host_initiators"`
	// The host name.
	Name string `json:"name,omitempty"`
	// os type
	OsType OSTypeEnum `json:"os_type,omitempty"`
	// HostConnectivity connectivity type for host and hostGroup.
	HostConnectivity HostConnectivityEnum `json:"host_connectivity,omitempty"`
	// Type of the host
	Type HostTypeEnum `json:"type,omitempty"`
	// Localized message string corresponding to type
	TypeL10n string `json:"type_l10n,omitempty"`
	// Localized message string corresponding to os_type
	OSTypeL10n string `json:"os_type_l10n,omitempty"`
	// Localized message string corresponding to host_connectivity
	HostConnectivityL10n string `json:"host_connectivity_l10n,omitempty"`
	// Properties of a host group
	HostGroup HostGroup `json:"host_group,omitempty"`
	// Details about an import host system.
	ImportHostSystem ImportHostSystem `json:"import_host_system,omitempty"`
	// Details about a configured host or host group attached to a volume.
	MappedHosts []MappedHosts `json:"mapped_hosts,omitempty"`
	// Virtual volume mapping details.
	HostVirtualVolumeMappings []HostVirtualVolumeMappings `json:"host_virtual_volume_mappings,omitempty"`
	// Properties of a vsphere_host.
	VsphereHosts []VsphereHosts `json:"vsphere_hosts,omitempty"`
}

Host host instance

func (*Host) Fields

func (h *Host) Fields() []string

Fields returns fields which must be requested to fill struct

type HostConnectivityEnum added in v1.12.0

type HostConnectivityEnum string

HostConnectivityEnum Operating system of the host.

const (
	// HostConnectivityEnumLocalOnly captures enum value "Local_Only"
	HostConnectivityEnumLocalOnly HostConnectivityEnum = "Local_Only"
	// HostConnectivityEnumMetroOptimizeBoth captures enum value "Metro_Optimize_Both"
	HostConnectivityEnumMetroOptimizeBoth HostConnectivityEnum = "Metro_Optimize_Both"
	// HostConnectivityEnumMetroOptimizeLocal captures enum value "Metro_Optimize_Local"
	HostConnectivityEnumMetroOptimizeLocal HostConnectivityEnum = "Metro_Optimize_Local"
	// HostConnectivityEnumMetroOptimizeRemote captures enum value "Metro_Optimize_Remote"
	HostConnectivityEnumMetroOptimizeRemote HostConnectivityEnum = "Metro_Optimize_Remote"
)

type HostCreate

type HostCreate struct {
	// An optional description for the host. The description should not be more than 256 UTF-8
	// characters long and should not have any unprintable characters.
	Description *string `json:"description,omitempty"`
	// Normally, this operation is not allowed on host types other than external.
	// This flag will override that error and allow the operation to continue.
	ForceInternal *bool `json:"force_internal,omitempty"`
	// initiator
	Initiators *[]InitiatorCreateModify `json:"initiators"`
	// The host name. The name should not be more than 128 UTF-8 characters long
	// and should not have any unprintable characters.
	Name *string `json:"name"`
	// os type
	OsType *OSTypeEnum `json:"os_type"`
	// Metadata addition for Hosts on array with OE version 3.0 and above
	Metadata *map[string]string `json:"metadata,omitempty"`
	// HostConnectivity connectivity type for host and hostGroup.
	HostConnectivity HostConnectivityEnum `json:"host_connectivity,omitempty"`
}

HostCreate request

type HostDelete

type HostDelete struct {
	// Normally, this operation is not allowed on host types other than external.
	// This flag will override that error and allow the operation to continue.
	ForceInternal *bool `json:"force_internal,omitempty"`
}

HostDelete request

type HostGroup added in v1.11.0

type HostGroup struct {
	// A description for the hostgroup.
	Description string `json:"description,omitempty"`
	// Unique id of the hostgroup.
	ID string `json:"id,omitempty"`
	// The hostgroup name.
	Name string `json:"name,omitempty"`
	// Properties of a host.
	Hosts []Host `json:"hosts,omitempty"`
	// Connectivity type for hosts and host groups.
	HostConnectivity HostConnectivityEnum `json:"host_connectivity,omitempty"`
	// HostConnectivityL10n Localized message string corresponding to host_connectivity
	HostConnectivityL10n string `json:"host_connectivity_l10n,omitempty"`
	// MappedHostGroups Details about a configured host or host group attached to a volume.
	MappedHostGroups []MappedHostGroup `json:"mapped_host_groups,omitempty"`
	// HostVirtualVolumeMappings Virtual volume mapping details.
	HostVirtualVolumeMappings []HostVirtualVolumeMapping `json:"host_virtual_volume_mappings,omitempty"`
}

HostGroup hostgroup instance

func (*HostGroup) Fields added in v1.11.0

func (h *HostGroup) Fields() []string

Fields returns fields which must be requested to fill struct

type HostGroupCreate added in v1.12.0

type HostGroupCreate struct {
	// The hostgroup name.
	Name string `json:"name,omitempty"`
	// A description for the hostgroup.
	Description string `json:"description,omitempty"`
	// The list of hosts to include in the host group.
	HostIDs []string `json:"host_ids,omitempty"`
}

HostGroupCreate create hostgroup request

type HostGroupModify added in v1.12.0

type HostGroupModify struct {
	// The hostgroup name.
	Name string `json:"name,omitempty"`
	// A description for the hostgroup.
	Description string `json:"description,omitempty"`
	// Connectivity type for hosts and host groups.
	HostConnectivity string `json:"host_connectivity,omitempty"`
	// List of hosts to be removed from the host group.
	RemoveHostIDs []string `json:"remove_host_ids,omitempty"`
	// List of hosts to be added to host group.
	AddHostIDs []string `json:"add_host_ids,omitempty"`
}

HostGroupModify modifies existing hostgroup

type HostModify

type HostModify struct {
	// The list of initiators to be added. CHAP username and password are optional.
	AddInitiators *[]InitiatorCreateModify `json:"add_initiators,omitempty"`
	// An optional description for the host.
	// The description should not be more than 256 UTF-8 characters long and should not have any unprintable characters.
	Description *string `json:"description,omitempty"`
	// Normally, this operation is not allowed on host types other than external.
	// This flag will override that error and allow the operation to continue.
	ForceInternal *bool `json:"force_internal,omitempty"`
	// Update list of existing initiators, identified by port_name, with new CHAP usernames and/or passwords.
	ModifyInitiators *[]UpdateInitiatorInHost `json:"modify_initiators,omitempty"`
	// The host name. The name should not be more than 128 UTF-8 characters long and should not have any unprintable characters.
	Name *string `json:"name,omitempty"`
	// The list of initiator port_names to be removed.
	RemoveInitiators *[]string `json:"remove_initiators,omitempty"`
	// HostConnectivity connectivity type for host and hostGroup.
	HostConnectivity HostConnectivityEnum `json:"host_connectivity,omitempty"`
}

HostModify host modify

type HostTypeEnum

type HostTypeEnum string

HostTypeEnum gives type of host.

const (
	// HostTypeEnumExternal captures enum value "External"
	HostTypeEnumExternal HostTypeEnum = "External"
	// HostTypeEnumInternal captures enum value "Internal"
	HostTypeEnumInternal HostTypeEnum = "Internal"
)

type HostVirtualVolumeMapping added in v1.12.0

type HostVirtualVolumeMapping struct {
	// Unique identifier of a mapping between a host and a virtual volume.
	ID string `json:"id,omitempty"`
	// Unique identifier of a host attached to a volume.
	HostID string `json:"host_id,omitempty"`
	// Unique identifier of the virtual volume to which the host is attached.
	VirtualVolumeID string `json:"virtual_volume_id,omitempty"`
	// A virtual volume.
	VirtualVolume VirtualVolume `json:"virtual_volume,omitempty"`
}

type HostVirtualVolumeMappings added in v1.12.0

type HostVirtualVolumeMappings struct {
	// Unique identifier of a mapping between a host and a virtual volume.
	ID string `json:"id"`
	// Unique identifier of a host attached to a virtual volume.
	HostID string `json:"host_id"`
	// Unique identifier of the virtual volume to which the host is attached.
	VirtualVolumeID string `json:"virtual_volume_id"`
}

HostVirtualVolumeMappings - Virtual volume mapping details.

type HostVolumeAttach

type HostVolumeAttach struct {
	// Logical unit number for the volume, if desired.
	LogicalUnitNumber *int64 `json:"logical_unit_number,omitempty"`
	// Volume to attach.
	VolumeID *string `json:"volume_id"`
}

HostVolumeAttach Volume id and optional logical unit number for attaching to host.

type HostVolumeDetach

type HostVolumeDetach struct {
	// Volume to detach.
	VolumeID *string `json:"volume_id"`
}

HostVolumeDetach Volume id for detaching from host.

type HostVolumeMapping

type HostVolumeMapping struct {
	Volume struct {
		ApplianceID string `json:"appliance_id,omitempty"`
	} `json:"volume,omitempty"`

	// Unique identifier of a host group attached to a volume. The host_id and host_group_id cannot both be set.
	HostGroupID string `json:"host_group_id,omitempty"`
	// Unique identifier of a host attached to a volume. The host_id and host_group_id cannot both be set.
	HostID string `json:"host_id,omitempty"`
	// Unique identifier of a mapping between a host and a volume.
	ID string `json:"id,omitempty"`
	// Logical unit number for the host volume access.
	LogicalUnitNumber int64 `json:"logical_unit_number,omitempty"`
	// Unique identifier of the volume to which the host is attached.
	VolumeID string `json:"volume_id,omitempty"`
}

HostVolumeMapping Details about a configured host or host group attached to a volume. The host or host group may not necessarily be connected.

func (*HostVolumeMapping) Fields

func (h *HostVolumeMapping) Fields() []string

Fields returns fields which must be requested to fill struct

type IPPoolAddress

type IPPoolAddress struct {
	// IP address value, in IPv4 or IPv6 format.
	Address string `json:"address,omitempty"`
	// Unique identifier of the appliance to which the IP address belongs.
	ApplianceID string `json:"appliance_id,omitempty"`
	// Unique identifier of the IP address.
	ID string `json:"id,omitempty"`
	// Unique identifier of the port that uses this IP address to provide access to storage network services, such as iSCSI. This attribute can be set only for an IP address used by networks of type Storage.
	IPPortID string `json:"ip_port_id,omitempty"`
	// IPPort instance
	IPPort IPPortInstance `json:"ip_port,omitempty"`
	// Unique identifier of the network to which the IP address belongs.
	NetworkID string `json:"network_id,omitempty"`
	// Unique identifier of the cluster node to which the IP address belongs.
	NodeID string `json:"node_id,omitempty"`
	// purposes
	Purposes []IPPurposeTypeEnum `json:"purposes,omitempty"`
}

IPPoolAddress ip pool address instance

func (*IPPoolAddress) Fields

func (ip *IPPoolAddress) Fields() []string

Fields returns fields which must be requested to fill struct

type IPPortInstance

type IPPortInstance struct {
	// Unique identifier of the IP port.
	ID string `json:"id,omitempty"`
	// iSCSI qualified name used by the target configured on top of the IP port initially or as a result of network scaling. If the IP port is not used by an iSCSI connection, this attribute should be empty.
	TargetIqn string `json:"target_iqn,omitempty"`
}

IPPortInstance ip port instance

type IPPurposeTypeEnum

type IPPurposeTypeEnum string

IPPurposeTypeEnum Network IP address purpose.

const (
	// IPPurposeTypeEnumMgmtClusterFloating captures enum value "Mgmt_Cluster_Floating"
	IPPurposeTypeEnumMgmtClusterFloating IPPurposeTypeEnum = "Mgmt_Cluster_Floating"
	// IPPurposeTypeEnumMgmtApplianceFloating captures enum value "Mgmt_Appliance_Floating"
	IPPurposeTypeEnumMgmtApplianceFloating IPPurposeTypeEnum = "Mgmt_Appliance_Floating"
	// IPPurposeTypeEnumMgmtNodeCoreOS captures enum value "Mgmt_Node_CoreOS"
	IPPurposeTypeEnumMgmtNodeCoreOS IPPurposeTypeEnum = "Mgmt_Node_CoreOS"
	// IPPurposeTypeEnumMgmtNodeHost captures enum value "Mgmt_Node_Host"
	IPPurposeTypeEnumMgmtNodeHost IPPurposeTypeEnum = "Mgmt_Node_Host"
	// IPPurposeTypeEnumICMClusterFloating captures enum value "ICM_Cluster_Floating"
	IPPurposeTypeEnumICMClusterFloating IPPurposeTypeEnum = "ICM_Cluster_Floating"
	// IPPurposeTypeEnumICMApplianceFloating captures enum value "ICM_Appliance_Floating"
	IPPurposeTypeEnumICMApplianceFloating IPPurposeTypeEnum = "ICM_Appliance_Floating"
	// IPPurposeTypeEnumICMNodeCoreOS captures enum value "ICM_Node_CoreOS"
	IPPurposeTypeEnumICMNodeCoreOS IPPurposeTypeEnum = "ICM_Node_CoreOS"
	// IPPurposeTypeEnumStorageGlobal captures enum value "Storage_Global"
	IPPurposeTypeEnumStorageGlobal IPPurposeTypeEnum = "Storage_Global"
	// IPPurposeTypeEnumStorageIscsiInitiator captures enum value "Storage_Iscsi_Initiator"
	IPPurposeTypeEnumStorageIscsiInitiator IPPurposeTypeEnum = "Storage_Iscsi_Initiator"
	// IPPurposeTypeEnumStorageIscsiTarget captures enum value "Storage_Iscsi_Target"
	IPPurposeTypeEnumStorageIscsiTarget IPPurposeTypeEnum = "Storage_Iscsi_Target"
	// IPPurposeTypeEnumStorageNVMETCPPort captures enum value "Storage_NVMe_TCP_Port"
	IPPurposeTypeEnumStorageNVMETCPPort IPPurposeTypeEnum = "Storage_NVMe_TCP_Port"
	// IPPurposeTypeEnumStorageClusterFloating captures enum value "Storage_Cluster_Floating"
	IPPurposeTypeEnumStorageClusterFloating IPPurposeTypeEnum = "Storage_Cluster_Floating"
	// IPPurposeTypeEnumICDNode captures enum value "ICD_Node"
	IPPurposeTypeEnumICDNode IPPurposeTypeEnum = "ICD_Node"
	// IPPurposeTypeEnumSDNASClusterFloating captures enum value "SDNAS_Cluster_Floating"
	IPPurposeTypeEnumSDNASClusterFloating IPPurposeTypeEnum = "SDNAS_Cluster_Floating"
	// IPPurposeTypeEnumSDNASNode captures enum value "SDNAS_Node"
	IPPurposeTypeEnumSDNASNode IPPurposeTypeEnum = "SDNAS_Node"
	// IPPurposeTypeEnumSDNASNodeServiceability captures enum value "SDNAS_Node_Serviceability"
	IPPurposeTypeEnumSDNASNodeServiceability IPPurposeTypeEnum = "SDNAS_Node_Serviceability"
	// IPPurposeTypeEnumVmotion captures enum value "VMotion"
	IPPurposeTypeEnumVmotion IPPurposeTypeEnum = "VMotion"
	// IPPurposeTypeEnumUnused captures enum value "Unused"
	IPPurposeTypeEnumUnused IPPurposeTypeEnum = "Unused"
)

type ImportHostSystem added in v1.12.0

type ImportHostSystem struct {
	// Unique identifier of the import host system.
	ID string `json:"id"`
	// Hostname or IPv4 address of the import host system.
	AgentAddress string `json:"agent_address"`
}

ImportHostSystem - Details about an import host system.

type InitiatorCreateModify

type InitiatorCreateModify struct {
	// Password for CHAP authentication. This value must be 12 to 64 UTF-8 characters.
	// This password is not queriable. CHAP password is required when the cluster CHAP mode is mutual authentication.
	ChapMutualPassword *string `json:"chap_mutual_password,omitempty"`
	// Username for CHAP authentication. This value must be 1 to 64 UTF-8 characters.
	// CHAP username is required when the cluster CHAP mode is mutual authentication.
	ChapMutualUsername *string `json:"chap_mutual_username,omitempty"`
	// Password for CHAP authentication. This value must be 12 to 64 UTF-8 characters.
	// This password is not queriable. CHAP password is required when the cluster CHAP mode is mutual authentication.
	ChapSinglePassword *string `json:"chap_single_password,omitempty"`
	// Username for CHAP authentication. This value must be 1 to 64 UTF-8 characters.
	// CHAP username is required when the cluster CHAP mode is mutual authentication.
	ChapSingleUsername *string `json:"chap_single_username,omitempty"`
	// IQN name aka address.
	// Required: true
	PortName *string `json:"port_name"`
	// port type
	// Required: true
	PortType *InitiatorProtocolTypeEnum `json:"port_type"`
}

InitiatorCreateModify initiator create modify

type InitiatorInstance

type InitiatorInstance struct {
	// Array of active login session between an initiator and a target port.
	ActiveSessions []ActiveSessionInstance `json:"active_sessions"`
	// Password for CHAP authentication. This value must be 12 to 64 UTF-8 characters.
	// This password is not queriable. CHAP password is required when the cluster CHAP mode is mutual authentication.
	ChapMutualPassword string `json:"chap_mutual_password,omitempty"`
	// Username for CHAP authentication. This value must be 1 to 64 UTF-8 characters.
	// CHAP username is required when the cluster CHAP mode is mutual authentication.
	ChapMutualUsername string `json:"chap_mutual_username,omitempty"`
	// Password for CHAP authentication. This value must be 12 to 64 UTF-8 characters.
	// This password is not queriable. CHAP password is required when the cluster CHAP mode is mutual authentication.
	ChapSinglePassword string `json:"chap_single_password,omitempty"`
	// Username for CHAP authentication. This value must be 1 to 64 UTF-8 characters.
	// CHAP username is required when the cluster CHAP mode is mutual authentication.
	ChapSingleUsername string `json:"chap_single_username,omitempty"`
	// IQN name aka address.
	PortName string `json:"port_name,omitempty"`
	// port type
	PortType InitiatorProtocolTypeEnum `json:"port_type,omitempty"`
}

InitiatorInstance initiator instance

type InitiatorProtocolTypeEnum

type InitiatorProtocolTypeEnum string

InitiatorProtocolTypeEnum Protocol type of the host initiator.

  • iSCSI - An iSCSI initiator.
  • FC - A Fibre Channel initiator.
const (
	// InitiatorProtocolTypeEnumISCSI captures enum value "iSCSI"
	InitiatorProtocolTypeEnumISCSI InitiatorProtocolTypeEnum = "iSCSI"
	// InitiatorProtocolTypeEnumNVME captures enum value "NVMe"
	InitiatorProtocolTypeEnumNVME InitiatorProtocolTypeEnum = "NVMe"
	// InitiatorProtocolTypeEnumFC captures enum value "FC"
	InitiatorProtocolTypeEnumFC InitiatorProtocolTypeEnum = "FC"
)

type K8sCluster added in v1.8.0

type K8sCluster struct {
	Name      string `json:"name"`
	IPAddress string `json:"address"`
	Port      int    `json:"port"`
	Token     string `json:"token"`
}

K8sCluster defines K8s cluster information

type Limit added in v1.14.0

type Limit struct {
	ID    string `json:"id"`
	Limit int64  `json:"limit"`
}

Limit - Response /limit endpoint

func (*Limit) Fields added in v1.14.0

func (l *Limit) Fields() []string

Fields - Returns fields which must be requested to fill struct

type LimitIDEnum added in v1.14.0

type LimitIDEnum string

LimitIDEnum - ID of limits returned by the /limit endpoint

const (
	// MaxVolumeSize - Max size of a volume
	MaxVolumeSize LimitIDEnum = "Max_Volume_Size"
	// Max_VirtualVolume_Size - Max size of a virtual volume
	MaxVirtualVolumeSize LimitIDEnum = "Max_VirtualVolume_Size"
	// Max_Folder_Size - Max size of a folder
	MaxFolderSize LimitIDEnum = "Max_Folder_Size"
)

type LocationHistory added in v1.11.0

type LocationHistory struct {
	FromApplianceID string `json:"from_appliance_id"`
	ToApplianceID   string `json:"to_appliance_id"`
}

LocationHistory of the volume resource

type Logger

type Logger api.Logger

Logger is interface required for gopowerstore custom logger

type MappedHostGroup added in v1.12.0

type MappedHostGroup struct {
	// Unique identifier of a mapping between a host and a volume.
	ID string `json:"id,omitempty"`
	// Unique identifier of a host attached to a volume.
	HostID string `json:"host_id,omitempty"`
	// Unique identifier of a host group attached to a volume.
	HostGroupID string `json:"host_group_id,omitempty"`
	// Unique identifier of the volume to which the host is attached.
	VolumeID string `json:"volume_id,omitempty"`
	// Details about a volume, including snapshots and clones of volumes.
	Volume Volume `json:"volume,omitempty"`
}

type MappedHosts added in v1.12.0

type MappedHosts struct {
	// Unique identifier of a mapping between a host and a volume.
	ID string `json:"id"`
	// Unique identifier of a host attached to a volume.
	HostID string `json:"host_id"`
	// Unique identifier of the volume to which the host is attached.
	VolumeID string `json:"volume_id"`
}

MappedHosts - Details about a configured host or host group attached to a volume.

type MappedVolumes added in v1.11.0

type MappedVolumes struct {
	ID string `json:"id"`
}

MappedVolumes provides details about a configured host or host group attached to a volume

type MetaDataHeader added in v1.3.0

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

MetaDataHeader stores metadata used by other types

type MetricsIntervalEnum added in v1.3.0

type MetricsIntervalEnum string

Intervals of which metrics can be provided

Enum:
	[ Twenty_Sec, Five_Mins, One_Hour, One_Day ]
const (
	// TwentySec is an interval used when retrieving metrics
	TwentySec MetricsIntervalEnum = "Twenty_Sec"
	// FiveMins is an interval used when retrieving metrics
	FiveMins MetricsIntervalEnum = "Five_Mins"
	// OneHour is an interval used when retrieving metrics
	OneHour MetricsIntervalEnum = "One_Hour"
	// OneDay is an interval used when retrieving metrics
	OneDay MetricsIntervalEnum = "One_Day"
)

type MetricsRequest added in v1.1.0

type MetricsRequest struct {
	Entity   string `json:"entity"`
	EntityID string `json:"entity_id"`
	Interval string `json:"interval"`
}

MetricsRequest parameters to make metrics request

type MigrationSession added in v1.11.0

type MigrationSession struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

MigrationSession details of migration session

type NAS added in v1.1.0

type NAS struct {
	// Unique identifier of the NAS server.
	ID string `json:"id,omitempty"`
	// Description of the NAS server
	Description string `json:"description,omitempty"`
	// Name of the NAS server
	Name string `json:"name,omitempty"`
	// CurrentNodeId represents on which node the nas server is present
	CurrentNodeID string `json:"current_node_id,omitempty"`
	// NAS server operational status: [ Stopped, Starting, Started, Stopping, Failover, Degraded, Unknown ]
	OperationalStatus NASServerOperationalStatusEnum `json:"operational_status,omitempty"`
	// IPv4 file interface id nas server currently uses
	CurrentPreferredIPv4InterfaceID string `json:"current_preferred_IPv4_interface_id"`
	// NfsServers define NFS server instance if nfs exports are present
	NfsServers []NFSServerInstance `json:"nfs_servers"`
}

Details about the NAS.

func (*NAS) Fields added in v1.1.0

func (n *NAS) Fields() []string

Fields returns fields which must be requested to fill struct

type NASAccessTypeEnum added in v1.10.0

type NASAccessTypeEnum string

NASAccessTypeEnums - NAS filesystem snapshot access method

const (
	// NASAccessTypeEnumSnapshot - NAS filesystem snapshot access method - snapshot
	// the files within the snapshot may be access directly from the production file system in the .snapshot subdirectory of each directory.
	NASAccessTypeEnumSnapshot NASAccessTypeEnum = "Snapshot"

	// NASAccessTypeEnumProtocol - NAS filesystem snapshot access method - protocol
	// the entire file system snapshot may be shared and mounted on a client like any other file system, except that it is readonly.
	NASAccessTypeEnumProtocol NASAccessTypeEnum = "Protocol"
)

type NASCreate added in v1.1.0

type NASCreate struct {
	Description string `json:"description,omitempty"`
	Name        string `json:"name"`
}

NASCreate params for creating 'create nas' request

type NASServerOperationalStatusEnum added in v1.1.0

type NASServerOperationalStatusEnum string

NASServerOperationalStatusEnum NAS lifecycle state.

const (
	Stopped  NASServerOperationalStatusEnum = "Stopped"
	Starting NASServerOperationalStatusEnum = "Starting"
	Started  NASServerOperationalStatusEnum = "Started"
	Stopping NASServerOperationalStatusEnum = "Stopping"
	Failover NASServerOperationalStatusEnum = "Failover"
	Degraded NASServerOperationalStatusEnum = "Degraded"
	Unknown  NASServerOperationalStatusEnum = "Unknown"
)

type NFSExport added in v1.1.0

type NFSExport struct {
	// Unique id of the NFS Export
	ID string `json:"id,omitempty"`
	// Unique identifier of the file system on which the NFS Export was created
	FileSystemID string `json:"file_system_id,omitempty"`
	// NFS Export name
	Name string `json:"name,omitempty"`
	// NFS Export description
	Description string `json:"description,omitempty"`
	// Default access level for all hosts that can access the Export
	// [ No_Access, Read_Only, Read_Write, Root, Read_Only_Root ]
	DefaultAccess NFSExportDefaultAccessEnum `json:"default_access"`
	// Local path to a location within the file system.
	// With NFS, each export must have a unique local path.
	Path string `json:"path,omitempty"`
	// Read-Write hosts
	RWHosts []string `json:"read_write_hosts,omitempty"`
	// Read-Only hosts
	ROHosts []string `json:"read_only_hosts,omitempty"`
	// Read-Write, allow Root hosts
	RWRootHosts []string `json:"read_write_root_hosts,omitempty"`
	// Read-Only, allow Roots hosts
	RORootHosts []string `json:"read_only_root_hosts,omitempty"`
}

Details about the NFSExport.

func (*NFSExport) Fields added in v1.1.0

func (n *NFSExport) Fields() []string

Fields returns fields which must be requested to fill struct

type NFSExportCreate added in v1.1.0

type NFSExportCreate struct {
	// NFS Export name
	Name string `json:"name"`
	// NFS Export description
	Description string `json:"description,omitempty"`
	// Unique identifier of the file system on which the NFS Export was created
	FileSystemID string `json:"file_system_id"`
	// Local path to a location within the file system.
	Path string `json:"path"`
}

NFSExportCreate details about creation of new NFS export

type NFSExportDefaultAccessEnum added in v1.1.0

type NFSExportDefaultAccessEnum string
const (
	NoAccess     NFSExportDefaultAccessEnum = "No_Access"
	ReadOnly     NFSExportDefaultAccessEnum = "Read_Only"
	ReadWrite    NFSExportDefaultAccessEnum = "Read_Write"
	Root         NFSExportDefaultAccessEnum = "Root"
	ReadOnlyRoot NFSExportDefaultAccessEnum = "Read_Only_Root "
)

type NFSExportModify added in v1.1.0

type NFSExportModify struct {
	// An optional description for the host.
	// The description should not be more than 256 UTF-8 characters long and should not have any unprintable characters.
	Description string `json:"description,omitempty"`

	// Read-Write
	// Hosts to add to the current read_write_hosts list. Hosts can be entered by Hostname, IP addresses
	AddRWHosts []string `json:"add_read_write_hosts,omitempty"`
	// Hosts to remove from the current read_write_hosts list. Hosts can be entered by Hostname, IP addresses.
	RemoveRWHosts []string `json:"remove_read_write_hosts,omitempty"`

	// Read-Only
	// Hosts to add to the current read_only_hosts list. Hosts can be entered by Hostname, IP addresses
	AddROHosts []string `json:"add_read_only_hosts,omitempty"`
	// Hosts to remove from the current read_only_hosts list. Hosts can be entered by Hostname, IP addresses.
	RemoveROHosts []string `json:"remove_read_only_hosts,omitempty"`

	// Read-Write, allow Root
	// Hosts to add to the current read_write_root_hosts list. Hosts can be entered by Hostname, IP addresses
	AddRWRootHosts []string `json:"add_read_write_root_hosts,omitempty"`
	// Hosts to remove from the current read_write_root_hosts list. Hosts can be entered by Hostname, IP addresses.
	RemoveRWRootHosts []string `json:"remove_read_write_root_hosts,omitempty"`

	// Read-Only, allow Roots
	// Hosts to add to the current read_only_hosts list. Hosts can be entered by Hostname, IP addresses
	AddRORootHosts []string `json:"add_read_only_root_hosts,omitempty"`
	// Hosts to remove from the current read_only_hosts list. Hosts can be entered by Hostname, IP addresses.
	RemoveRORootHosts []string `json:"remove_read_only_root_hosts,omitempty"`

	// No-Access
	// Hosts to add to the current no_access_hosts list. Hosts can be entered by Hostname, IP addresses
	AddNoAccessHosts []string `json:"add_no_access_hosts,omitempty"`
	// Hosts to remove from the current no_access_hosts list. Hosts can be entered by Hostname, IP addresses
	RemoveNoAccessHosts []string `json:"remove_no_access_hosts,omitempty"`
}

NFSExportModify details about modification of exiting NFS export

type NFSServerCreate added in v1.1.0

type NFSServerCreate struct {
	// Unique identifier of the NAS server
	NasServerID string `json:"nas_server_id"`
	// The name that will be used by NFS clients to connect to this NFS server
	// This name is required when using secure NFS
	HostName string `json:"host_name,omitempty"`
	// Indicates whether NFSv3 is enabled on the NAS server. When enabled, NFS shares can be accessed with NFSv3
	IsNFSv3Enabled bool `json:"is_nfsv3_enabled,omitempty"`
	// Indicates whether NFSv4 is enabled on the NAS server. When enabled, NFS shares can be accessed with NFSv4
	IsNFSv4Enabled bool `json:"is_nfsv4_enabled,omitempty"`
	// Indicates whether secure NFS is enabled on the NFS server
	IsSecureEnabled bool `json:"is_secure_enabled,omitempty"`
}

NFSServerCreate details about creation of new NFS server

type NFSServerInstance added in v1.7.0

type NFSServerInstance struct {
	// Unique identifier for NFS server
	ID string `json:"id"`
	// IsNFSv4Enabled is set to true if nfsv4 is enabled on NAS server
	IsNFSv4Enabled bool `json:"is_nfsv4_enabled,omitempty"`
}

NFS server instance in NAS server

func (*NFSServerInstance) Fields added in v1.7.0

func (n *NFSServerInstance) Fields() []string

type NodeAffinityEnum added in v1.11.0

type NodeAffinityEnum string
const (
	NodeAffinityEnumSelectAtAttach NodeAffinityEnum = "System_Select_At_Attach"
	NodeAffinityEnumSelectNodeA    NodeAffinityEnum = "System_Selected_Node_A"
	NodeAffinityEnumSelectNodeB    NodeAffinityEnum = "System_Selected_Node_B"
	NodeAffinityEnumPreferredNodeA NodeAffinityEnum = "Preferred_Node_A"
	NodeAffinityEnumPreferredNodeB NodeAffinityEnum = "Preferred_Node_B"
)

type OSTypeEnum

type OSTypeEnum string

OSTypeEnum Operating system of the host.

const (
	// OSTypeEnumWindows captures enum value "Windows"
	OSTypeEnumWindows OSTypeEnum = "Windows"
	// OSTypeEnumLinux captures enum value "Linux"
	OSTypeEnumLinux OSTypeEnum = "Linux"
	// OSTypeEnumESXi captures enum value "ESXi"
	OSTypeEnumESXi OSTypeEnum = "ESXi"
)

type PerformanceMetricsByApplianceResponse added in v1.3.0

type PerformanceMetricsByApplianceResponse struct {
	CommonMetricsFields

	// Unique identifier representing a specific appliance.
	ApplianceID string `json:"appliance_id,omitempty"`

	// The average percentage of CPU Utilization on the cores dedicated to servicing storage I/O requests. Calculated over time interval across appliance. Derived from an average of utilization across all nodes within the appliance.
	AvgIoWorkloadCPUUtilization float32 `json:"avg_io_workload_cpu_utilization,omitempty"`

	CommonAvgFields

	// The percentage of CPU Utilization on the cores dedicated to servicing storage I/O requests.
	IoWorkloadCPUUtilization float32 `json:"io_workload_cpu_utilization,omitempty"`

	// The maximum percentage of CPU Utilization on the cores dedicated to servicing storage I/O requests. Calculated over time interval across appliance. Derived from an average of utilization across all nodes within the appliance.
	MaxIoWorkloadCPUUtilization float32 `json:"max_io_workload_cpu_utilization,omitempty"`

	CommonMaxAvgIopsBandwidthFields
}

PerformanceMetricsByApplianceResponse is returned from performance_metrics_by_appliance

type PerformanceMetricsByClusterResponse added in v1.3.0

type PerformanceMetricsByClusterResponse struct {
	CommonMetricsFields

	// Identifier of the cluster.
	ClusterID string `json:"cluster_id,omitempty"`

	// Average size of read and write operations in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Weighted average  read bandwidth in bytes per second.
	AvgReadBandwidth float32 `json:"avg_read_bandwidth,omitempty"`

	// Average reads per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Weighted average total bandwidth in bytes per second.
	AvgTotalBandwidth float32 `json:"avg_total_bandwidth,omitempty"`

	// Average total input and output operations per second.
	AvgTotalIops float64 `json:"avg_total_iops,omitempty"`

	// Weighted average write bandwidth in bytes per second.
	AvgWriteBandwidth float32 `json:"avg_write_bandwidth,omitempty"`

	// Average writes per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	CommonMaxAvgIopsBandwidthFields
}

PerformanceMetricsByClusterResponse is returned by performance_metrics_by_cluster

type PerformanceMetricsByFeEthNodeResponse added in v1.3.0

type PerformanceMetricsByFeEthNodeResponse struct {
	CommonMetricsFields

	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	CommonEthPortFields
}

PerformanceMetricsByFeEthNodeResponse is returned by performance_metrics_by_fe_eth_node

type PerformanceMetricsByFeEthPortResponse added in v1.3.0

type PerformanceMetricsByFeEthPortResponse struct {
	CommonMetricsFields

	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	// Reference to the associated frontend ethernet port (eth_port) on which these metrics were recorded.
	FePortID string `json:"fe_port_id,omitempty"`

	CommonEthPortFields
}

PerformanceMetricsByFeEthPortResponse is returned by performance_metrics_by_fe_eth_port

type PerformanceMetricsByFeFcNodeResponse added in v1.3.0

type PerformanceMetricsByFeFcNodeResponse struct {
	CommonMetricsFields
	// Average number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	AvgCurrentLogins *int64 `json:"avg_current_logins,omitempty"`

	// Average dumped frames per second.
	AvgDumpedFramesPs float32 `json:"avg_dumped_frames_ps,omitempty"`

	// Average invalid crc count per second.
	AvgInvalidCrcCountPs float32 `json:"avg_invalid_crc_count_ps,omitempty"`

	// Average invalid transmission word count per second.
	AvgInvalidTxWordCountPs float32 `json:"avg_invalid_tx_word_count_ps,omitempty"`

	// Average size of read and write operations in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Average link failure count per second.
	AvgLinkFailureCountPs float32 `json:"avg_link_failure_count_ps,omitempty"`

	// Average loss of signal count per second.
	AvgLossOfSignalCountPs float32 `json:"avg_loss_of_signal_count_ps,omitempty"`

	// Average loss of sync count per second.
	AvgLossOfSyncCountPs float32 `json:"avg_loss_of_sync_count_ps,omitempty"`

	// Average primitive sequence protocol error count per second.
	AvgPrimSeqProtErrCountPs float32 `json:"avg_prim_seq_prot_err_count_ps,omitempty"`

	// Weighted average read bandwidth in bytes per second.
	AvgReadBandwidth float32 `json:"avg_read_bandwidth,omitempty"`

	// Average reads per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Weighted average total bandwidth in bytes per second.
	AvgTotalBandwidth float32 `json:"avg_total_bandwidth,omitempty"`

	// Average total input and output operations per second.
	AvgTotalIops float64 `json:"avg_total_iops,omitempty"`

	// Weighted average write bandwidth in bytes per second.
	AvgWriteBandwidth float32 `json:"avg_write_bandwidth,omitempty"`

	// Average writes per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	// The number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	CurrentLogins *int64 `json:"current_logins,omitempty"`

	// Dumped frames per second.
	DumpedFramesPs float32 `json:"dumped_frames_ps,omitempty"`

	// Invalid crc count per second.
	InvalidCrcCountPs float32 `json:"invalid_crc_count_ps,omitempty"`

	// Invalid transmission word count per second.
	InvalidTxWordCountPs float32 `json:"invalid_tx_word_count_ps,omitempty"`

	// Link failure count per second.
	LinkFailureCountPs float32 `json:"link_failure_count_ps,omitempty"`

	// Loss of signal count per second.
	LossOfSignalCountPs float32 `json:"loss_of_signal_count_ps,omitempty"`

	// Loss of sync count per second.
	LossOfSyncCountPs float32 `json:"loss_of_sync_count_ps,omitempty"`

	// Maximum number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxCurrentLogins *int64 `json:"max_current_logins,omitempty"`

	// The maximum dumped frames per second.
	MaxDumpedFramesPs float32 `json:"max_dumped_frames_ps,omitempty"`

	// The maximum invalid crc count per second.
	MaxInvalidCrcCountPs float32 `json:"max_invalid_crc_count_ps,omitempty"`

	// The maximum invalid transmission word count per second.
	MaxInvalidTxWordCountPs float32 `json:"max_invalid_tx_word_count_ps,omitempty"`

	// The maximum link failure count per second.
	MaxLinkFailureCountPs float32 `json:"max_link_failure_count_ps,omitempty"`

	// The maximum loss of signal count per second.
	MaxLossOfSignalCountPs float32 `json:"max_loss_of_signal_count_ps,omitempty"`

	// The maximum loss of sync count per second.
	MaxLossOfSyncCountPs float32 `json:"max_loss_of_sync_count_ps,omitempty"`

	// The maximum primitive sequence protocol error count per second.
	MaxPrimSeqProtErrCountPs float32 `json:"max_prim_seq_prot_err_count_ps,omitempty"`

	// Reference to the associated node on which these metrics were recorded.
	NodeID string `json:"node_id,omitempty"`

	// Primitive sequence protocol error count per second.
	PrimSeqProtErrCountPs float32 `json:"prim_seq_prot_err_count_ps,omitempty"`

	CommonUnalignedFields

	CommonMaxAvgIopsBandwidthFields
}

PerformanceMetricsByFeFcNodeResponse is returned by performance_metrics_by_fe_fc_node

type PerformanceMetricsByFeFcPortResponse added in v1.3.0

type PerformanceMetricsByFeFcPortResponse struct {
	CommonMetricsFields

	// Reference to the associated frontend fibre channel port (fc_port) on which these metrics were recorded.
	FePortID string `json:"fe_port_id,omitempty"`

	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	// Average number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	AvgCurrentLogins *int64 `json:"avg_current_logins,omitempty"`

	// Average dumped frames per second.
	AvgDumpedFramesPs float32 `json:"avg_dumped_frames_ps,omitempty"`

	// Average invalid crc count per second.
	AvgInvalidCrcCountPs float32 `json:"avg_invalid_crc_count_ps,omitempty"`

	// Average invalid transmission word count per second.
	AvgInvalidTxWordCountPs float32 `json:"avg_invalid_tx_word_count_ps,omitempty"`

	// Average size of read and write operations in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Average link failure count per second.
	AvgLinkFailureCountPs float32 `json:"avg_link_failure_count_ps,omitempty"`

	// Average loss of signal count per second.
	AvgLossOfSignalCountPs float32 `json:"avg_loss_of_signal_count_ps,omitempty"`

	// Average loss of sync count per second.
	AvgLossOfSyncCountPs float32 `json:"avg_loss_of_sync_count_ps,omitempty"`

	// Average primitive sequence protocol error count per second.
	AvgPrimSeqProtErrCountPs float32 `json:"avg_prim_seq_prot_err_count_ps,omitempty"`

	// Weighted average read bandwidth in bytes per second.
	AvgReadBandwidth float32 `json:"avg_read_bandwidth,omitempty"`

	// Average reads per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Weighted average total bandwidth in bytes per second.
	AvgTotalBandwidth float32 `json:"avg_total_bandwidth,omitempty"`

	// Average total input and output operations per second.
	AvgTotalIops float64 `json:"avg_total_iops,omitempty"`

	// Weighted average write bandwidth in bytes per second.
	AvgWriteBandwidth float32 `json:"avg_write_bandwidth,omitempty"`

	// Average writes per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	// The number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	CurrentLogins *int64 `json:"current_logins,omitempty"`

	// Dumped frames per second.
	DumpedFramesPs float32 `json:"dumped_frames_ps,omitempty"`

	// Invalid crc count per second.
	InvalidCrcCountPs float32 `json:"invalid_crc_count_ps,omitempty"`

	// Invalid transmission word count per second.
	InvalidTxWordCountPs float32 `json:"invalid_tx_word_count_ps,omitempty"`

	// Link failure count per second.
	LinkFailureCountPs float32 `json:"link_failure_count_ps,omitempty"`

	// Loss of signal count per second.
	LossOfSignalCountPs float32 `json:"loss_of_signal_count_ps,omitempty"`

	// Loss of sync count per second.
	LossOfSyncCountPs float32 `json:"loss_of_sync_count_ps,omitempty"`

	// Maximum number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxCurrentLogins *int64 `json:"max_current_logins,omitempty"`

	// The maximum dumped frames per second.
	MaxDumpedFramesPs float32 `json:"max_dumped_frames_ps,omitempty"`

	// The maximum invalid crc count per second.
	MaxInvalidCrcCountPs float32 `json:"max_invalid_crc_count_ps,omitempty"`

	// The maximum invalid transmission word count per second.
	MaxInvalidTxWordCountPs float32 `json:"max_invalid_tx_word_count_ps,omitempty"`

	// The maximum link failure count per second.
	MaxLinkFailureCountPs float32 `json:"max_link_failure_count_ps,omitempty"`

	// The maximum loss of signal count per second.
	MaxLossOfSignalCountPs float32 `json:"max_loss_of_signal_count_ps,omitempty"`

	// The maximum loss of sync count per second.
	MaxLossOfSyncCountPs float32 `json:"max_loss_of_sync_count_ps,omitempty"`

	// The maximum primitive sequence protocol error count per second.
	MaxPrimSeqProtErrCountPs float32 `json:"max_prim_seq_prot_err_count_ps,omitempty"`

	// Reference to the node the port belongs to.
	NodeID string `json:"node_id,omitempty"`

	// Primitive sequence protocol error count per second.
	PrimSeqProtErrCountPs float32 `json:"prim_seq_prot_err_count_ps,omitempty"`

	CommonUnalignedFields

	CommonMaxAvgIopsBandwidthFields
}

PerformanceMetricsByFeFcPortResponse is returned by performance_metrics_by_fe_fc_port

type PerformanceMetricsByFileSystemResponse added in v1.3.0

type PerformanceMetricsByFileSystemResponse struct {
	CommonMetricsFields

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Average read rate in bytes per second.
	AvgReadBandwidth float32 `json:"avg_read_bandwidth,omitempty"`

	// Average read operations per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Average read and write size in bytes.
	AvgSize float32 `json:"avg_size,omitempty"`

	// Average data transfer rate in bytes per second.
	AvgTotalBandwidth float32 `json:"avg_total_bandwidth,omitempty"`

	// Average read and write operations per second.
	AvgTotalIops float32 `json:"avg_total_iops,omitempty"`

	// Average write rate in bytes per second.
	AvgWriteBandwidth float32 `json:"avg_write_bandwidth,omitempty"`

	// Average write operations per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	// Unique identifier of the file system.
	FileSystemID string `json:"file_system_id,omitempty"`

	// Maximum of average read and write latency in microseconds.
	MaxAvgLatency float32 `json:"max_avg_latency,omitempty"`

	// Maximum of average read latency in microseconds.
	MaxAvgReadLatency float32 `json:"max_avg_read_latency,omitempty"`

	// Maximum of average read size in bytes.
	MaxAvgReadSize float32 `json:"max_avg_read_size,omitempty"`

	// Maximum of average read and write size in bytes.
	MaxAvgSize float32 `json:"max_avg_size,omitempty"`

	// Maximum of average write latency in microseconds.
	MaxAvgWriteLatency float32 `json:"max_avg_write_latency,omitempty"`

	// Maximum of average write size in bytes.
	MaxAvgWriteSize float32 `json:"max_avg_write_size,omitempty"`

	// Maximum read and write operations per second.
	MaxIops float32 `json:"max_iops,omitempty"`

	// Maximum read rate in bytes per second.
	MaxReadBandwidth float32 `json:"max_read_bandwidth,omitempty"`

	// Maximum read operations per second.
	MaxReadIops float32 `json:"max_read_iops,omitempty"`

	// Maximum data transfer rate in bytes per second.
	MaxTotalBandwidth float32 `json:"max_total_bandwidth,omitempty"`

	// Maximum write rate in bytes per second.
	MaxWriteBandwidth float32 `json:"max_write_bandwidth,omitempty"`

	// Maximum write operations per second.
	MaxWriteIops float32 `json:"max_write_iops,omitempty"`

	// Read rate in bytes per second.
	ReadBandwidth float32 `json:"read_bandwidth,omitempty"`

	// Total read operations per second.
	ReadIops float32 `json:"read_iops,omitempty"`

	// Total data transfer rate in bytes per second.
	TotalBandwidth float32 `json:"total_bandwidth,omitempty"`

	// Total read and write operations per second.
	TotalIops float32 `json:"total_iops,omitempty"`

	// Write rate in bytes per second.
	WriteBandwidth float32 `json:"write_bandwidth,omitempty"`

	// Total write operations per second.
	WriteIops float32 `json:"write_iops,omitempty"`
}

PerformanceMetricsByFileSystemResponse is returned by performance_metrics_by_file_system

type PerformanceMetricsByNfsResponse added in v1.3.0

type PerformanceMetricsByNfsResponse struct {
	CommonMetricsFields

	// Average read and write size in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Average read operations per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average read and write operations per second.
	AvgTotalIops float32 `json:"avg_total_iops,omitempty"`

	// Average write operations per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	// Maximum of average read and write size in bytes.
	MaxAvgIoSize float32 `json:"max_avg_io_size,omitempty"`

	// Maximum of average read and write latency in microseconds.
	MaxAvgLatency float32 `json:"max_avg_latency,omitempty"`

	// Maximum of average read latency in microseconds.
	MaxAvgReadLatency float32 `json:"max_avg_read_latency,omitempty"`

	// Maximum of average read size in bytes.
	MaxAvgReadSize float32 `json:"max_avg_read_size,omitempty"`

	// Maximum of average write latency in microseconds.
	MaxAvgWriteLatency float32 `json:"max_avg_write_latency,omitempty"`

	// Maximum of average write size in bytes.
	MaxAvgWriteSize float32 `json:"max_avg_write_size,omitempty"`

	// Maximum read and write operations per second.
	MaxIops float32 `json:"max_iops,omitempty"`

	// Maximum read operations per second.
	MaxReadIops float32 `json:"max_read_iops,omitempty"`

	// Maximum write operations per second.
	MaxWriteIops float32 `json:"max_write_iops,omitempty"`

	// Unique identifier of the node.
	NodeID string `json:"node_id,omitempty"`

	// Total read operations per second.
	ReadIops float32 `json:"read_iops,omitempty"`

	// Total read and write operations per second.
	TotalIops float32 `json:"total_iops,omitempty"`

	// Total write operations per second.
	WriteIops float32 `json:"write_iops,omitempty"`
}

PerformanceMetricsByNfsResponse is returned by performance_metrics_nfs_by_node

type PerformanceMetricsByNfsv3Response added in v1.3.0

type PerformanceMetricsByNfsv3Response struct {
	CommonMetricsFields
	CommonNfsv34ResponseFields
}

PerformanceMetricsByNfsv3Response is returned by performance_metrics_nfsv3_by_node

type PerformanceMetricsByNfsv4Response added in v1.3.0

type PerformanceMetricsByNfsv4Response struct {
	CommonMetricsFields
	CommonNfsv34ResponseFields
}

PerformanceMetricsByNfsv4Response is returned by performance_metrics_nfsv4_by_node

type PerformanceMetricsByNodeResponse added in v1.3.0

type PerformanceMetricsByNodeResponse struct {
	CommonMetricsFields

	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	// Average number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	AvgCurrentLogins *int64 `json:"avg_current_logins,omitempty"`

	// The average percentage of CPU Utilization on the cores dedicated to servicing storage I/O requests. Calculated over time across appliance. Derived from an average of utilization across all nodes within the appliance.
	AvgIoWorkloadCPUUtilization float32 `json:"avg_io_workload_cpu_utilization,omitempty"`

	// Average size of read and write operations in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Weighted average read bandwidth in bytes per second.
	AvgReadBandwidth float32 `json:"avg_read_bandwidth,omitempty"`

	// Average reads per second.
	AvgReadIops float32 `json:"avg_read_iops,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Weighted average total bandwidth in bytes per second.
	AvgTotalBandwidth float32 `json:"avg_total_bandwidth,omitempty"`

	// Average total input and output operations per second.
	AvgTotalIops float64 `json:"avg_total_iops,omitempty"`

	// Weighted average write bandwidth in bytes per second.
	AvgWriteBandwidth float32 `json:"avg_write_bandwidth,omitempty"`

	// Average writes per second.
	AvgWriteIops float32 `json:"avg_write_iops,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	// The number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	CurrentLogins *int64 `json:"current_logins,omitempty"`

	// The percentage of CPU Utilization on the cores dedicated to servicing storage I/O requests.
	IoWorkloadCPUUtilization float32 `json:"io_workload_cpu_utilization,omitempty"`

	// Maximum number of logins to the target from initiators.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxCurrentLogins *int64 `json:"max_current_logins,omitempty"`

	// The maximum percentage of CPU Utilization on the cores dedicated to servicing storage I/O requests. Calculated over time across appliance. Derived from an average of utilization across all nodes within the appliance.
	MaxIoWorkloadCPUUtilization float32 `json:"max_io_workload_cpu_utilization,omitempty"`

	// Unique identifier representing a specific node.
	NodeID string `json:"node_id,omitempty"`

	CommonUnalignedFields

	CommonMaxAvgIopsBandwidthFields
}

PerformanceMetricsByNodeResponse is returned by performance_metrics_by_node

type PerformanceMetricsBySmbCacheResponse added in v1.3.0

type PerformanceMetricsBySmbCacheResponse struct {
	CommonMetricsFields
	// Average hash latency.
	HashAvgLatency float32 `json:"hash_avg_latency,omitempty"`

	// Average hash size.
	HashAvgSize float32 `json:"hash_avg_size,omitempty"`

	// Average max hash latency.
	HashMaxAvgLatency float32 `json:"hash_max_avg_latency,omitempty"`

	// Average max hash size.
	HashMaxAvgSize float32 `json:"hash_max_avg_size,omitempty"`

	// Max hash latency.
	HashMaxLatency float32 `json:"hash_max_latency,omitempty"`

	// Max hash size.
	HashMaxSize float32 `json:"hash_max_size,omitempty"`

	// Min hash latency.
	HashMinLatency float32 `json:"hash_min_latency,omitempty"`

	// Max hash size.
	HashMinSize float32 `json:"hash_min_size,omitempty"`

	// Max used threads
	MaxUsedThreads float32 `json:"max_used_threads,omitempty"`

	// Unique identifier of the node.
	NodeID string `json:"node_id,omitempty"`

	// Total rejected task.
	TotalRejectedTasks float32 `json:"total_rejected_tasks,omitempty"`

	// Total tasks.
	TotalTasks float32 `json:"total_tasks,omitempty"`
}

PerformanceMetricsBySmbCacheResponse is returned by performance_metrics_smb_branch_cache_by_node

type PerformanceMetricsBySmbClientResponse added in v1.3.0

type PerformanceMetricsBySmbClientResponse struct {
	CommonMetricsFields
	CommonSMBFields
}

PerformanceMetricsBySmbClientResponse is returned by performance_metrics_smb_builtinclient_by_node

type PerformanceMetricsBySmbNodeResponse added in v1.3.0

type PerformanceMetricsBySmbNodeResponse struct {
	CommonMetricsFields
	CommonSMBFields
}

PerformanceMetricsBySmbNodeResponse is returned by performance_metrics_smb_by_node

type PerformanceMetricsBySmbV1BuiltinClientResponse added in v1.3.0

type PerformanceMetricsBySmbV1BuiltinClientResponse struct {
	CommonMetricsFields
	CommonSMBFields
}

PerformanceMetricsBySmbV1BuiltinClientResponse is returned by performance_metrics_smb1_builtinclient_by_node

type PerformanceMetricsBySmbV1NodeResponse added in v1.3.0

type PerformanceMetricsBySmbV1NodeResponse struct {
	CommonMetricsFields
	CommonSMBFields
}

PerformanceMetricsBySmbV1NodeResponse is returned by performance_metrics_smb1_by_node

type PerformanceMetricsBySmbV2BuiltinClientResponse added in v1.3.0

type PerformanceMetricsBySmbV2BuiltinClientResponse struct {
	CommonMetricsFields
	CommonSMBFields
}

PerformanceMetricsBySmbV2BuiltinClientResponse is returned by performance_metrics_smb2_builtinclient_by_node

type PerformanceMetricsBySmbV2NodeResponse added in v1.3.0

type PerformanceMetricsBySmbV2NodeResponse struct {
	CommonMetricsFields
	CommonSMBFields
}

PerformanceMetricsBySmbV2NodeResponse is returned by performance_metrics_smb2_by_node

type PerformanceMetricsByVMResponse added in v1.3.0

type PerformanceMetricsByVMResponse struct {
	CommonMetricsFields

	// Unique identifier representing a specific virtual machine.
	VMID string `json:"vm_id,omitempty"`

	CommonAvgFields

	CommonMaxAvgIopsBandwidthFields
}

PerformanceMetricsByVMResponse is returned by performance_metrics_by_vm

type PerformanceMetricsByVgResponse added in v1.3.0

type PerformanceMetricsByVgResponse struct {
	CommonMetricsFields

	// Unique identifier representing a volume group.
	VgID string `json:"vg_id,omitempty"`

	// Average size of read and write operations in bytes.
	AvgIoSize float32 `json:"avg_io_size,omitempty"`

	// Average read and write latency in microseconds.
	AvgLatency float32 `json:"avg_latency,omitempty"`

	// Average read latency in microseconds.
	AvgReadLatency float32 `json:"avg_read_latency,omitempty"`

	// Average read size in bytes.
	AvgReadSize float32 `json:"avg_read_size,omitempty"`

	// Average write latency in microseconds.
	AvgWriteLatency float32 `json:"avg_write_latency,omitempty"`

	// Average write size in bytes.
	AvgWriteSize float32 `json:"avg_write_size,omitempty"`

	// Read rate in byte/sec.
	ReadBandwidth float32 `json:"read_bandwidth,omitempty"`

	// Total read operations per second.
	ReadIops float32 `json:"read_iops,omitempty"`

	// Total data transfer rate in bytes per second.
	TotalBandwidth float32 `json:"total_bandwidth,omitempty"`

	// Total read and write operations per second.
	TotalIops float32 `json:"total_iops,omitempty"`

	// Write rate in byte/sec.
	WriteBandwidth float32 `json:"write_bandwidth,omitempty"`

	// Total write operations per second.
	WriteIops float32 `json:"write_iops,omitempty"`
}

PerformanceMetricsByVgResponse is returned by performance_metrics_by_vg

type PerformanceMetricsByVolumeResponse added in v1.3.0

type PerformanceMetricsByVolumeResponse struct {
	CommonMetricsFields

	// Unique identifier representing a specific volume.
	VolumeID string `json:"volume_id,omitempty"`

	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	CommonAvgFields

	CommonMaxAvgIopsBandwidthFields
}

PerformanceMetricsByVolumeResponse is returned by performance_metrics_by_volume

type PerformanceRules added in v1.12.0

type PerformanceRules struct {
	ID         string `json:"id"`
	Name       string `json:"name"`
	IoPriority string `json:"io_priority"`
}

PerformanceRules - Details of performance rule

type PolicyManagedByEnum added in v1.10.0

type PolicyManagedByEnum string

PolicyManagedByEnum - defines entities who manage the instance

const (
	// PolicyManagedByEnumUser - instance is managed by the end user
	PolicyManagedByEnumUser PolicyManagedByEnum = "User"
	// PolicyManagedByEnumMetro - instance is managed by the peer system where the policy was assigned, in a Metro Cluster configuration
	PolicyManagedByEnumMetro PolicyManagedByEnum = "Metro"
	// PolicyManagedByEnumReplication - destination instance is managed by the source system in a Replication configuration
	PolicyManagedByEnumReplication PolicyManagedByEnum = "Replication"
	// PolicyManagedByEnumVMware_vSphere - instance is managed by the system through VMware vSphere/vCenter
	PolicyManagedByEnumVMwareVSphere PolicyManagedByEnum = "VMware_vSphere"
)

type ProtectionData

type ProtectionData struct {
	SourceID            string `json:"source_id"`
	ExpirationTimeStamp string `json:"expiration_timestamp"`
	CreatorType         string `json:"creator_type"`
	ParentID            string `json:"parent_id"`
}

ProtectionData is a field that holds meta information about volume creation

type ProtectionPolicy added in v1.4.0

type ProtectionPolicy struct {
	ID               string             `json:"id"`
	Name             string             `json:"name"`
	Description      string             `json:"description"`
	Type             string             `json:"type"`
	ManagedBy        string             `json:"managed_by,omitempty"`
	ManagedByID      string             `json:"managed_by_id"`
	IsReadOnly       bool               `json:"is_read_only"`
	IsReplica        bool               `json:"is_replica"`
	TypeL10          string             `json:"type_l10"`
	ManagedByL10     string             `json:"managed_by_l10n"`
	VirtualMachines  []VirtualMachines  `json:"virtual_machines"`
	FileSystems      []FileSystems      `json:"file_systems"`
	PerformanceRules []PerformanceRules `json:"performance_rules"`
	ReplicationRules []ReplicationRule  `json:"replication_rules"`
	SnapshotRules    []SnapshotRule     `json:"snapshot_rules"`
	Volumes          []Volume           `json:"volume"`
	VolumeGroups     []VolumeGroup      `json:"volume_group"`
}

func (*ProtectionPolicy) Fields added in v1.4.0

func (policy *ProtectionPolicy) Fields() []string

type ProtectionPolicyCreate added in v1.4.0

type ProtectionPolicyCreate struct {
	// Policy name.
	Name string `json:"name"`
	// Policy description.
	Description string `json:"description,omitempty"`
	// IDs of replication rules
	ReplicationRuleIds []string `json:"replication_rule_ids"`
	// IDs of snapshot rules
	SnapshotRuleIds []string `json:"snapshot_rule_ids"`
}

ProtectionPolicyCreate create protection policy request

type RPOEnum added in v1.4.0

type RPOEnum string

func (RPOEnum) IsValid added in v1.4.0

func (rpo RPOEnum) IsValid() error

type RSStateEnum added in v1.5.0

type RSStateEnum string

type RemoteSystem added in v1.4.0

type RemoteSystem struct {
	// Unique identifier of the remote system instance.
	ID string `json:"id,omitempty"`
	// User-specified name of the remote system instance.
	// This property supports case-insensitive filtering
	Name string `json:"name,omitempty"`
	// User-specified description of the remote system instance.
	Description string `json:"description,omitempty"`
	// Serial number of the remote system instance
	SerialNumber string `json:"serial_number,omitempty"`
	// Management IP address of the remote system instance
	ManagementAddress string `json:"management_address,omitempty"`
}

RemoteSystem details about a remote system

func (*RemoteSystem) Fields added in v1.4.0

func (r *RemoteSystem) Fields() []string

Fields returns fields which must be requested to fill struct

type ReplicationRule added in v1.4.0

type ReplicationRule struct {
	// ID of replication rule
	ID string `json:"id"`
	// Name of replication rule
	Name string `json:"name"`
	// Rpo (Recovery point objective), which is the acceptable amount of data, measured in units of time, that may be lost in case of a failure.
	Rpo RPOEnum `json:"rpo"`
	// RemoteSystemID - unique identifier of the remote system to which this rule will replicate the associated resources.
	RemoteSystemID     string             `json:"remote_system_id"`
	ProtectionPolicies []ProtectionPolicy `json:"policies"`
}

func (*ReplicationRule) Fields added in v1.4.0

func (rule *ReplicationRule) Fields() []string

type ReplicationRuleCreate added in v1.4.0

type ReplicationRuleCreate struct {
	// Name of the replication rule.
	Name string `json:"name"`
	// Recovery point objective (RPO), which is the acceptable amount of data, measured in units of time, that may be lost in case of a failure.
	Rpo RPOEnum `json:"rpo"`
	// Unique identifier of the remote system to which this rule will replicate the associated resources
	RemoteSystemID string `json:"remote_system_id"`
}

ReplicationRuleCreate create replication rule request

type ReplicationSession added in v1.4.0

type ReplicationSession struct {
	ID               string      `json:"id,omitempty"`
	State            RSStateEnum `json:"state,omitempty"`
	Role             string      `json:"role,omitempty"`
	ResourceType     string      `json:"resource_type,omitempty"`
	LocalResourceID  string      `json:"local_resource_id,omitempty"`
	RemoteResourceID string      `json:"remote_resource_id,omitempty"`
	RemoteSystemID   string      `json:"remote_system_id,omitempty"` // todo: maybe name?

	StorageElementPairs []StorageElementPair `json:"storage_element_pairs,omitempty"`
}

func (*ReplicationSession) Fields added in v1.4.0

func (r *ReplicationSession) Fields() []string

type RequestConfig

type RequestConfig api.RequestConfig

RequestConfig represents options for request

func (RequestConfig) RenderRequestConfig

func (rc RequestConfig) RenderRequestConfig() api.RequestConfig

RenderRequestConfig returns internal struct with request config

type SnapshotCreate

type SnapshotCreate struct {
	// Unique name for the snapshot to be created.
	Name *string `json:"name,omitempty"`
	// Description of the snapshot.
	Description *string `json:"description,omitempty"`
	// Unique identifier of the performance policy assigned to the volume.
	PerformancePolicyID string `json:"performance_policy_id,omitempty"`
	// ExpirationTimestamp provides volume group creation time
	ExpirationTimestamp string `json:"expiration_timestamp,omitempty"`
	// CreatorType provides volume group creation time
	CreatorType StorageCreatorTypeEnum `json:"creator_type,omitempty"`
}

SnapshotCreate params for creating 'create snapshot' request

type SnapshotFSCreate added in v1.1.0

type SnapshotFSCreate struct {
	// Unique name for the snapshot to be created.
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
}

SnapshotFSCreate params for creating 'create snapshot' request

type SnapshotRule added in v1.10.0

type SnapshotRule struct {
	// Unique identifier of the snapshot rule
	ID string `json:"id,omitempty"`

	// Snapshot rule name.
	// This property supports case-insensitive filtering.
	Name string `json:"name,omitempty"`

	// Interval between snapshots taken by a snapshot rule.
	Interval SnapshotRuleIntervalEnum `json:"interval,omitempty"`

	// Time of the day to take a daily snapshot, with format "hh:mm" using a 24 hour clock
	// Either the interval parameter or the time_of_day parameter will be set, but not both.
	TimeOfDay string `json:"time_of_day,omitempty"`

	// Time zone identifier for applying the time zone to the time_of_day for a snapshot rule, including any DST effects if applicable
	// Applies only when a time_of_day is specified in the snapshot rule. Defaults to UTC if not specified.
	// Was added in version 2.0.0.0
	TimeZone TimeZoneEnum `json:"timezone,omitempty"`

	// Days of the week when the snapshot rule should be applied.
	// Days are determined based on the UTC time zone, unless the time_of_day and timezone properties are set.
	DaysOfWeek []DaysOfWeekEnum `json:"days_of_week,omitempty"`

	// Desired snapshot retention period in hours. The system will retain snapshots for this time period.
	// minimum: 0
	// maximum: 8760
	DesiredRetention int32 `json:"desired_retention,omitempty"`

	// Indicates whether this is a replica of a snapshot rule on a remote system
	// that is the source of a replication session replicating a storage resource to the local system.
	// defalut : false
	IsReplica bool `json:"is_replica,omitempty"`

	// NAS filesystem snapshot access method.
	// setting is ignored for volume, virtual_volume, and volume_group snapshots
	NASAccessType NASAccessTypeEnum `json:"nas_access_type,omitempty"`

	// Indicates whether this snapshot rule can be modified.
	// default: false
	IsReadOnly bool `json:"is_read_only,omitempty"`

	// entity that owns and manages this instance
	ManagedBy PolicyManagedByEnum `json:"managed_by,omitempty"`

	// 	Unique identifier of the managing entity based on the value of the managed_by property, as shown below:
	//         User - Empty
	//         Metro - Unique identifier of the remote system where the policy was assigned.
	//         Replication - Unique identifier of the source remote system.
	//         VMware_vSphere - Unique identifier of the owning VMware vSphere/vCenter.
	ManagedByID string `json:"managed_by_id,omitempty"`

	// Localized message string corresponding to interval
	IntervalL10n string `json:"interval_l10n,omitempty"`

	// Localized message string corresponding to timezone
	TimezoneL10n string `json:"timezone_l10n,omitempty"`

	// Localized message array corresponding to days_of_week
	DaysOfWeekL10n []string `json:"days_of_week_l10n,omitempty"`

	// Localized message string corresponding to nas_access_type
	NASAccessTypeL10n string `json:"nas_access_type_l10n,omitempty"`

	ManagedNyL10n string `json:"managed_by_l10n,omitempty"`

	Policies []ProtectionPolicy `json:"policies,omitempty"`
}

SnapshotRule Details about a snapshot rule

func (*SnapshotRule) Fields added in v1.10.0

func (s *SnapshotRule) Fields() []string

Fields returns fields which must be requested to fill struct

type SnapshotRuleCreate added in v1.10.0

type SnapshotRuleCreate struct {
	// Name of the snapshot rule
	// minLength: 1
	// maxLength: 128
	Name string `json:"name,omitempty"`

	// Interval between snapshots taken by a snapshot rule
	Interval SnapshotRuleIntervalEnum `json:"interval,omitempty"`

	// Time of the day to take a daily snapshot, with format "hh:mm" using a 24 hour clock
	// Either the interval parameter or the time_of_day parameter will be set, but not both.
	TimeOfDay string `json:"time_of_day,omitempty"`

	// Time zone identifier for applying the time zone to the time_of_day for a snapshot rule, including any DST effects if applicable
	// Applies only when a time_of_day is specified in the snapshot rule. Defaults to UTC if not specified.
	// Was added in version 2.0.0.0
	TimeZone TimeZoneEnum `json:"timezone,omitempty"`

	// Days of the week when the snapshot rule should be applied.
	// Days are determined based on the UTC time zone, unless the time_of_day and timezone properties are set.
	DaysOfWeek []DaysOfWeekEnum `json:"days_of_week,omitempty"`

	// Desired snapshot retention period in hours. The system will retain snapshots for this time period.
	// minimum: 0
	// maximum: 8760
	DesiredRetention int32 `json:"desired_retention,omitempty"`

	// NAS filesystem snapshot access method.
	// setting is ignored for volume, virtual_volume, and volume_group snapshots
	NASAccessType NASAccessTypeEnum `json:"nas_access_type,omitempty"`

	// Indicates whether this snapshot rule can be modified.
	// default: false
	IsReadOnly bool `json:"is_read_only,omitempty"`
}

SnapshotRuleCreate create snapshot rule request

type SnapshotRuleDelete added in v1.10.0

type SnapshotRuleDelete struct {
	// Specify whether all snapshots previously created by this snapshot rule should also be deleted when this rule is removed.
	// default false
	DeleteSnaps bool `json:"delete_snaps,omitempty"`
}

SnapshotRuleDelete body for SnapshotRuleDelete request

type SnapshotRuleIntervalEnum added in v1.10.0

type SnapshotRuleIntervalEnum string

SnapshotRuleIntervalEnum - Interval between snapshots taken by a snapshot rule.

const (
	SnapshotRuleIntervalEnumFiveMinutes    SnapshotRuleIntervalEnum = "Five_Minutes"
	SnapshotRuleIntervalEnumFifteenMinutes SnapshotRuleIntervalEnum = "Fifteen_Minutes"
	SnapshotRuleIntervalEnumThirtyMinutes  SnapshotRuleIntervalEnum = "Thirty_Minutes"
	SnapshotRuleIntervalEnumOneHour        SnapshotRuleIntervalEnum = "One_Hour"
	SnapshotRuleIntervalEnumTwoHours       SnapshotRuleIntervalEnum = "Two_Hours"
	SnapshotRuleIntervalEnumThreeHours     SnapshotRuleIntervalEnum = "Three_Hours"
	SnapshotRuleIntervalEnumFourHours      SnapshotRuleIntervalEnum = "Four_Hours"
	SnapshotRuleIntervalEnumSixHours       SnapshotRuleIntervalEnum = "Six_Hours"
	SnapshotRuleIntervalEnumEightHours     SnapshotRuleIntervalEnum = "Eight_Hours"
	SnapshotRuleIntervalEnumTwelveHours    SnapshotRuleIntervalEnum = "Twelve_Hours"
	SnapshotRuleIntervalEnumOneDay         SnapshotRuleIntervalEnum = "One_Day"
)

SnapshotRuleIntervalEnum known intervals

type SoftwareInstalled added in v1.8.0

type SoftwareInstalled struct {
	// Unique identifier of the installed software instance.
	ID string `json:"id,omitempty"`
	// Whether this information represents the common software release version that is supported on all appliances in the cluster.
	IsCluster bool `json:"is_cluster,omitempty"`
	// Version of the installed release software package release.
	ReleaseVersion string `json:"release_version,omitempty"`
	// Build version of the installed software package release.
	BuildVersion string `json:"build_version,omitempty"`
	// Unique identifier of this build.
	BuildID string `json:"build_id,omitempty"`
}

SoftwareInstalled queries the software packages that are known by the cluster.

func (*SoftwareInstalled) Fields added in v1.8.0

func (h *SoftwareInstalled) Fields() []string

Fields returns fields which must be requested to fill struct

type SpaceMetricsByApplianceResponse added in v1.3.0

type SpaceMetricsByApplianceResponse struct {
	CommonMetricsFields

	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	// This metric represents amount of physical space user data occupies after deduplication and compression.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	DataPhysicalUsed *int64 `json:"data_physical_used,omitempty"`

	// Ratio of the logical used space to data physical used space which is after deduplication and compression.
	DataReduction float32 `json:"data_reduction,omitempty"`

	// The overall efficiency is computed as a ratio of the total space provisioned to physical used space.
	// For example, ten 2 GB volumes were provisioned and 1 GB of data is written to each of them.
	// Each of the volumes has one snapshot as well, for another ten 2 GB volumes.
	// All volumes are thinly provisioned with deduplication and compression applied, there is 4 GB of physical space used. Overall efficiency would be (20 * 2 GB) / 4 GB or 10:1.
	// The efficiency_ratio value will be 10 in this example.
	EfficiencyRatio float32 `json:"efficiency_ratio,omitempty"`

	// Last physical used space for data during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastDataPhysicalUsed *int64 `json:"last_data_physical_used,omitempty"`

	// Last data reduction space during the period.
	LastDataReduction float32 `json:"last_data_reduction,omitempty"`

	// Last efficiency ratio during the period.
	LastEfficiencyRatio float32 `json:"last_efficiency_ratio,omitempty"`

	// Last logical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalProvisioned *int64 `json:"last_logical_provisioned,omitempty"`

	// Last logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalUsed *int64 `json:"last_logical_used,omitempty"`

	// Last physical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastPhysicalTotal *int64 `json:"last_physical_total,omitempty"`

	// Last physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastPhysicalUsed *int64 `json:"last_physical_used,omitempty"`

	// Last shared logical used during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastSharedLogicalUsed *int64 `json:"last_shared_logical_used,omitempty"`

	// Last snapshot savings space during the period.
	LastSnapshotSavings float32 `json:"last_snapshot_savings,omitempty"`

	// Last thin savings ratio during the period.
	LastThinSavings float32 `json:"last_thin_savings,omitempty"`

	// Total configured size of all storage objects on an appliance. This metric includes all primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalProvisioned *int64 `json:"logical_provisioned,omitempty"`

	// Amount of data in bytes written to all storage objects on an appliance, without any deduplication and/or compression. This metric includes all primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalUsed *int64 `json:"logical_used,omitempty"`

	// Maximum physical used space for data during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxDataPhysicalUsed *int64 `json:"max_data_physical_used,omitempty"`

	// Maximum data reduction space during the period.
	MaxDataReduction float32 `json:"max_data_reduction,omitempty"`

	// Maximum efficiency ratio during the period.
	MaxEfficiencyRatio float32 `json:"max_efficiency_ratio,omitempty"`

	// Maxiumum logical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalProvisioned *int64 `json:"max_logical_provisioned,omitempty"`

	// Maxiumum logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalUsed *int64 `json:"max_logical_used,omitempty"`

	// Maximum physical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxPhysicalTotal *int64 `json:"max_physical_total,omitempty"`

	// Maximum physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxPhysicalUsed *int64 `json:"max_physical_used,omitempty"`

	// Max shared logical used during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxSharedLogicalUsed *int64 `json:"max_shared_logical_used,omitempty"`

	// Maximum snapshot savings space during the period.
	MaxSnapshotSavings float32 `json:"max_snapshot_savings,omitempty"`

	// Maximum thin savings ratio during the period.
	MaxThinSavings float32 `json:"max_thin_savings,omitempty"`

	// Total combined space on the physical drives of the appliance available for data.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	PhysicalTotal *int64 `json:"physical_total,omitempty"`

	// Total physical space consumed in the appliance, accounting for all efficiency mechanisms, as well as all data protection.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	PhysicalUsed *int64 `json:"physical_used,omitempty"`

	// Amount of space the volume family needs to hold the data written by host and shared by snaps and fast-clones in the family. This does not include deduplication or compression.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	SharedLogicalUsed *int64 `json:"shared_logical_used,omitempty"`

	// Ratio of the amount of space that would have been used by snapshots if space efficiency was not applied to logical space used solely by snapshots.
	// For example, an object is provisioned as 1 GB and it has two snapshots. Each snapshot has 200 MB of data.
	// Snapshot savings will be (1 GB + 1 GB) / (0.2 GB + 0.2 GB) or 5:1. The snapshot_savings value will be 5 in this case.
	SnapshotSavings float32 `json:"snapshot_savings,omitempty"`

	// Ratio of all the vVol provisioned to data they contain. This is the ratio of logical_provisioned to logical_used.
	// For example, a cluster has two 2 GB objects and have written 500 MB bytes of data to them.
	// The thin savings would be (2 * 2 GB) / (2 * 0.5 GB) or 4:1, so the thin_savings value would be 4.0.
	ThinSavings float32 `json:"thin_savings,omitempty"`
}

SpaceMetricsByApplianceResponse is returned by space_metrics_by_appliance request

type SpaceMetricsByClusterResponse added in v1.3.0

type SpaceMetricsByClusterResponse struct {
	CommonMetricsFields

	// Identifier of the cluster.
	ClusterID string `json:"cluster_id,omitempty"`

	// This metric represents total amount of physical space user data occupies after deduplication and compression.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	DataPhysicalUsed *int64 `json:"data_physical_used,omitempty"`

	// Ratio of the logical used space to data physical used space which is after deduplication and compression.
	DataReduction float32 `json:"data_reduction,omitempty"`

	// The overall efficiency is computed as a ratio of the total space provisioned to physical used space. For example, ten 2 GB volumes were provisioned and 1 GB of data is written to each of them.
	// Each of the volumes has one snapshot as well, for another ten 2 GB volumes. All volumes are thinly provisioned with deduplication and compression applied, there is 4 GB of physical space used.
	// Overall efficiency would be (20 * 2 GB) / 4 GB or 10:1. The efficiency_ratio value will be 10 in this example.
	EfficiencyRatio float32 `json:"efficiency_ratio,omitempty"`

	// Total configured size of all storage ojects within the cluster. This metric includes all primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalProvisioned *int64 `json:"logical_provisioned,omitempty"`

	// Amount of data in bytes written to all storage objects within the cluster, without any deduplication and/or compression. This metric includes all primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalUsed *int64 `json:"logical_used,omitempty"`

	// The total combined space on the physical drives of the cluster available for data.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	PhysicalTotal *int64 `json:"physical_total,omitempty"`

	// The total physical space consumed in the cluster, accounting for all efficiency mechanisms, as well as all data protection.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	PhysicalUsed *int64 `json:"physical_used,omitempty"`

	// Cluster shared logical used is sum of appliances' shared logical used in the cluster.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	SharedLogicalUsed *int64 `json:"shared_logical_used,omitempty"`

	// Ratio of the amount of space that would have been used by snapshots if space efficiency was not applied to logical space used solely by snapshots.
	// For example, an object is provisioned as 1 GB and it has two snapshots.
	// Each snapshot has 200 MB of data. Snapshot savings will be (1 GB + 1 GB) / (0.2 GB + 0.2 GB) or 5:1. The snapshot_savings value will be 5 in this case.
	SnapshotSavings float32 `json:"snapshot_savings,omitempty"`

	// Ratio of all the vVol provisioned to data they contain. This is the ratio of logical_provisioned to logical_used.
	// For example, a cluster has two 2 GB objects and have written 500 MB bytes of data to them.
	// he thin savings would be (2 * 2 GB) / (2 * 0.5 GB) or 4:1, so the thin_savings value would be 4.0.
	ThinSavings float32 `json:"thin_savings,omitempty"`

	// Last physical used space for data during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastDataPhysicalUsed *int64 `json:"last_data_physical_used,omitempty"`

	// Last data reduction space during the period.
	LastDataReduction float32 `json:"last_data_reduction,omitempty"`

	// Last efficiency ratio during the period.
	LastEfficiencyRatio float32 `json:"last_efficiency_ratio,omitempty"`

	// Last logical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalProvisioned *int64 `json:"last_logical_provisioned,omitempty"`

	// Last logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalUsed *int64 `json:"last_logical_used,omitempty"`

	// Last physical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastPhysicalTotal *int64 `json:"last_physical_total,omitempty"`

	// Last physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastPhysicalUsed *int64 `json:"last_physical_used,omitempty"`

	// Last shared logical used during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastSharedLogicalUsed *int64 `json:"last_shared_logical_used,omitempty"`

	// Last snapshot savings space during the period.
	LastSnapshotSavings float32 `json:"last_snapshot_savings,omitempty"`

	// Last thin savings ratio during the period.
	LastThinSavings float32 `json:"last_thin_savings,omitempty"`

	// Maximum physical used space for data during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxDataPhysicalUsed *int64 `json:"max_data_physical_used,omitempty"`

	// Maximum data reduction space during the period.
	MaxDataReduction float32 `json:"max_data_reduction,omitempty"`

	// Maximum efficiency ratio during the period.
	MaxEfficiencyRatio float32 `json:"max_efficiency_ratio,omitempty"`

	// Maximum logical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalProvisioned *int64 `json:"max_logical_provisioned,omitempty"`

	// Maximum logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalUsed *int64 `json:"max_logical_used,omitempty"`

	// Maximum physical total space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxPhysicalTotal *int64 `json:"max_physical_total,omitempty"`

	// Maximum physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxPhysicalUsed *int64 `json:"max_physical_used,omitempty"`

	// Maximum shared logical used during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxSharedLogicalUsed *int64 `json:"max_shared_logical_used,omitempty"`

	// Maximum snapshot savings space during the period.
	MaxSnapshotSavings float32 `json:"max_snapshot_savings,omitempty"`

	// Maximum thin savings ratio during the period.
	MaxThinSavings float32 `json:"max_thin_savings,omitempty"`
}

SpaceMetricsByClusterResponse is returned by space_metrics_by_cluster request

type SpaceMetricsByStorageContainerResponse added in v1.3.0

type SpaceMetricsByStorageContainerResponse struct {
	CommonMetricsFields

	// Internal ID of the storage container.
	StorageContainerID string `json:"storage_container_id"`

	// Last logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalProvisioned *int64 `json:"last_logical_provisioned,omitempty"`

	// Last logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalUsed *int64 `json:"last_logical_used,omitempty"`

	// Last snapshot savings during the period.
	LastSnapshotSavings float32 `json:"last_snapshot_savings,omitempty"`

	// Total configured size in bytes of the primary and clone virtual volumes within the storage container.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalProvisioned *int64 `json:"logical_provisioned,omitempty"`

	// Amount of data in bytes written to primary and clone virtual volumes within the storage container.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalUsed *int64 `json:"logical_used,omitempty"`

	// Maximum logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalProvisioned *int64 `json:"max_logical_provisioned,omitempty"`

	// Maximum logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalUsed *int64 `json:"max_logical_used,omitempty"`

	// Maximum snapshot savings during the period.
	MaxSnapshotSavings float32 `json:"max_snapshot_savings,omitempty"`

	// Ratio of the amount of space that would have been used by snapshots if space efficiency was not applied to logical space used solely by snapshots.
	// For example, a volume is provisioned as 1 GB and it has two snapshots. Each snapshot has 200 MB of data.
	// Snapshot savings will be (1 GB + 1 GB) / (0.2 GB + 0.2 GB) or 5:1. The snapshot_savings value will be 5 in this case.
	SnapshotSavings float32 `json:"snapshot_savings,omitempty"`
}

SpaceMetricsByStorageContainerResponse is returned by space_metrics_by_storage_container

type SpaceMetricsByVMResponse added in v1.3.0

type SpaceMetricsByVMResponse struct {
	CommonMetricsFields

	// Last logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalProvisioned *int64 `json:"last_logical_provisioned,omitempty"`

	// Last logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalUsed *int64 `json:"last_logical_used,omitempty"`

	// Last snap and clone logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastSnapCloneLogicalUsed *int64 `json:"last_snap_clone_logical_used,omitempty"`

	// Last snapshot savings space during the period.
	LastSnapshotSavings float32 `json:"last_snapshot_savings,omitempty"`

	// Last thin savings ratio during the period.
	LastThinSavings float32 `json:"last_thin_savings,omitempty"`

	// Last unique physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastUniquePhysicalUsed *int64 `json:"last_unique_physical_used,omitempty"`

	// Total configured size in bytes of all virtual volumes used by virtual machine.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalProvisioned *int64 `json:"logical_provisioned,omitempty"`

	// Total amount of data in bytes written to all virtual volumes used by virtual machine.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalUsed *int64 `json:"logical_used,omitempty"`

	// Max logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalProvisioned *int64 `json:"max_logical_provisioned,omitempty"`

	// Max logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalUsed *int64 `json:"max_logical_used,omitempty"`

	// Max snap and clone logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxSnapCloneLogicalUsed *int64 `json:"max_snap_clone_logical_used,omitempty"`

	// Max snapshot savings space during the period.
	MaxSnapshotSavings float32 `json:"max_snapshot_savings,omitempty"`

	// Max thin savings ratio during the period.
	MaxThinSavings float32 `json:"max_thin_savings,omitempty"`

	// Max unique physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxUniquePhysicalUsed *int64 `json:"max_unique_physical_used,omitempty"`

	// Total Amount of data in bytes host has written to all volumes used by virtual machine without any deduplication, compression or sharing.
	// This metric includes snaps and clones in the volume family used by virtual machine.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	SnapCloneLogicalUsed *int64 `json:"snap_clone_logical_used,omitempty"`

	// Ratio of the amount of space that would have been used by snapshots if space efficiency was not applied to logical space used solely by snapshots of vVols used by virtual machine.
	// For example, a vVol is provisioned as 1 GB and it has two snapshots.
	// Each snapshot has 200 MB of data. Snapshot savings will be (1 GB + 1 GB) / (0.2 GB + 0.2 GB) or 5:1. The snapshot_savings value will be 5 in this case.
	SnapshotSavings float32 `json:"snapshot_savings,omitempty"`

	// Ratio of all the vVol provisioned to data they contain. This is the ratio of logical_provisioned to logical_used.
	// For example, a VM has two 2 GB vVol's and have written 500 MB of data to them. The thin savings would be (2 * 2GB) / (2 * 0.5 GB) or 4:1, so the thin_savings value would be 4.0.
	ThinSavings float32 `json:"thin_savings,omitempty"`

	// Amount of physical space virtual machine used after compression and deduplication. This is the space to be freed up if a virtual machine is removed.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	UniquePhysicalUsed *int64 `json:"unique_physical_used,omitempty"`

	// Unique identifier representing a specific virtual machine.
	VMID string `json:"vm_id,omitempty"`
}

SpaceMetricsByVMResponse is returned by space_metrics_by_vm

type SpaceMetricsByVolumeFamilyResponse added in v1.3.0

type SpaceMetricsByVolumeFamilyResponse struct {
	CommonMetricsFields
	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	// ID of the family.
	FamilyID string `json:"family_id,omitempty"`

	// Last logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalProvisioned *int64 `json:"last_logical_provisioned,omitempty"`

	// Last logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalUsed *int64 `json:"last_logical_used,omitempty"`

	// Last shared logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastSharedLogicalUsed *int64 `json:"last_shared_logical_used,omitempty"`

	// Last snap and clone logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastSnapCloneLogicalUsed *int64 `json:"last_snap_clone_logical_used,omitempty"`

	// Last snapshot savings space during the period.
	LastSnapshotSavings float32 `json:"last_snapshot_savings,omitempty"`

	// Last unique physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastUniquePhysicalUsed *int64 `json:"last_unique_physical_used,omitempty"`

	// Configured size in bytes of a volume which amount of data can be written to. This metric includes primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalProvisioned *int64 `json:"logical_provisioned,omitempty"`

	// Amount of data in bytes host has written to a volume family without any deduplication, compression or sharing. This metric includes primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalUsed *int64 `json:"logical_used,omitempty"`

	// Max logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalProvisioned *int64 `json:"max_logical_provisioned,omitempty"`

	// Max logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalUsed *int64 `json:"max_logical_used,omitempty"`

	// Max shared logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxSharedLogicalUsed *int64 `json:"max_shared_logical_used,omitempty"`

	// Max snap and clone logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxSnapCloneLogicalUsed *int64 `json:"max_snap_clone_logical_used,omitempty"`

	// Max snapshot savings space during the period.
	MaxSnapshotSavings float32 `json:"max_snapshot_savings,omitempty"`

	// Max unique physical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxUniquePhysicalUsed *int64 `json:"max_unique_physical_used,omitempty"`

	// Amount of space the volume family needs to hold the data written by host and shared by snaps and fast-clones in the family. This does not include deduplication or compression.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	SharedLogicalUsed *int64 `json:"shared_logical_used,omitempty"`

	// Total Amount of data in bytes host has written to all volumes in the volume family without any deduplication, compression or sharing.
	// This metric includes snaps and clones in the volume family.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	SnapCloneLogicalUsed *int64 `json:"snap_clone_logical_used,omitempty"`

	// Ratio of the amount of space that would have been used by snapshots if space efficiency was not applied to logical space used solely by snapshots.
	// For example, a volume is provisioned as 1 GB bytes and it has two snapshots. Each snapshot has 200 MB of data.
	// Snapshot savings will be (1 GB + 1 GB) / (0.2 GB + 0.2 GB) or 5:1. The snapshot_savings value will be 5 in this case.
	SnapshotSavings float32 `json:"snapshot_savings,omitempty"`

	// Amount of physical space volume family used after compression and deduplication. This is the space to be freed up if a volume family is removed from the appliance.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	UniquePhysicalUsed *int64 `json:"unique_physical_used,omitempty"`
}

SpaceMetricsByVolumeFamilyResponse is returned by space_metrics_by_volume_family

type SpaceMetricsByVolumeGroupResponse added in v1.3.0

type SpaceMetricsByVolumeGroupResponse struct {
	CommonMetricsFields

	// Last logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalProvisioned *int64 `json:"last_logical_provisioned,omitempty"`

	// Last logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalUsed *int64 `json:"last_logical_used,omitempty"`

	// Last snap and clone logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastSnapCloneLogicalUsed *int64 `json:"last_snap_clone_logical_used,omitempty"`

	// Last snapshot savings space during the period.
	LastSnapshotSavings float32 `json:"last_snapshot_savings,omitempty"`

	// Last thin savings ratio during the period.
	LastThinSavings float32 `json:"last_thin_savings,omitempty"`

	// Total configured size in bytes of all member volumes in a volume group.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalProvisioned *int64 `json:"logical_provisioned,omitempty"`

	// Total amount of data in bytes written to all member volumes in a volume group.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalUsed *int64 `json:"logical_used,omitempty"`

	// Max logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalProvisioned *int64 `json:"max_logical_provisioned,omitempty"`

	// Maximum logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalUsed *int64 `json:"max_logical_used,omitempty"`

	// Max snap and clone logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxSnapCloneLogicalUsed *int64 `json:"max_snap_clone_logical_used,omitempty"`

	// Max snapshot savings space during the period.
	MaxSnapshotSavings float32 `json:"max_snapshot_savings,omitempty"`

	// Max thin savings ratio during the period.
	MaxThinSavings float32 `json:"max_thin_savings,omitempty"`

	// Total amount of data in bytes host has written to all volumes in the volume group without any deduplication, compression or sharing.
	// This metric includes used snaps and clones in the volume group.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	SnapCloneLogicalUsed *int64 `json:"snap_clone_logical_used,omitempty"`

	// Ratio of the amount of space that would have been used by snapshots in the volume group if space efficiency was not applied to logical space used solely by snapshots.
	// For example, two volumes are provisioned as 1 GB and each has two snapshots.
	// Each snapshot has 200 MB of data. Snapshot savings will be (1 GB * 2 + 1 GB * 2) / (0.2 GB * 2 + 0.2 GB * 2) or 5:1. The snapshot_savings value will be 5 in this case.
	SnapshotSavings float32 `json:"snapshot_savings,omitempty"`

	// Ratio of all the volumes provisioned to data being written to them. For example, a volume group has two 2 GB volumes and have written 500 MB of data to them.
	// The thin savings would be (2 * 2 GB) / (2 * 0.5 GB) or 4:1, so the thin_savings value would be 4.0.
	ThinSavings float32 `json:"thin_savings,omitempty"`

	// Unique identifier representing a volume group.
	VgID string `json:"vg_id,omitempty"`
}

SpaceMetricsByVolumeGroupResponse is returned by space_metrics_by_vg

type SpaceMetricsByVolumeResponse added in v1.3.0

type SpaceMetricsByVolumeResponse struct {
	CommonMetricsFields
	// Reference to the associated appliance on which these metrics were recorded.
	ApplianceID string `json:"appliance_id,omitempty"`

	// Last logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalProvisioned *int64 `json:"last_logical_provisioned,omitempty"`

	// Last logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LastLogicalUsed *int64 `json:"last_logical_used,omitempty"`

	// Last thin savings ratio during the period.
	LastThinSavings float32 `json:"last_thin_savings,omitempty"`

	// Configured size in bytes of a volume which amount of data can be written to. This metric includes primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalProvisioned *int64 `json:"logical_provisioned,omitempty"`

	// Amount of data in bytes host has written to a volume without any deduplication, compression or sharing.
	// This metric includes primaries, snaps and clones.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	LogicalUsed *int64 `json:"logical_used,omitempty"`

	// Max logical provisioned space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalProvisioned *int64 `json:"max_logical_provisioned,omitempty"`

	// Max logical used space during the period.
	// Maximum: 9.223372036854776e+18
	// Minimum: 0
	MaxLogicalUsed *int64 `json:"max_logical_used,omitempty"`

	// Max thin savings ratio during the period.
	MaxThinSavings float32 `json:"max_thin_savings,omitempty"`

	// Ratio of all the volumes provisioned to data being written to them. For example, an appliance has two 2 GB volumes and have written 500 MB of data to them.
	// The thin savings would be (2 GB * 2) / (0.5 GB * 2) or 4:1, so the thin_savings value would be 4.0.
	ThinSavings float32 `json:"thin_savings,omitempty"`

	// ID of the volume.
	VolumeID string `json:"volume_id,omitempty"`
}

SpaceMetricsByVolumeResponse is returned by space_metrics_by_volume

type StorageContainer added in v1.11.0

type StorageContainer struct {
	ID              string                              `json:"id,omitempty"`
	Name            string                              `json:"name,omitempty"`
	Quota           int64                               `json:"quota,omitempty"`
	StorageProtocol StorageContainerStorageProtocolEnum `json:"storage_protocol,omitempty"`
	HighWaterMark   int16                               `json:"high_water_mark,omitempty"`
}

func (StorageContainer) Fields added in v1.11.0

func (s StorageContainer) Fields() []string

type StorageContainerStorageProtocolEnum added in v1.11.0

type StorageContainerStorageProtocolEnum string
const (
	StorageContainerStorageProtocolEnumSCSI StorageContainerStorageProtocolEnum = "SCSI"
	StorageContainerStorageProtocolEnumNVME StorageContainerStorageProtocolEnum = "NVMe"
)

type StorageCreatorTypeEnum

type StorageCreatorTypeEnum string

StorageCreatorTypeEnum Creator type of the storage resource.

const (
	// StorageCreatorTypeEnumUser - A resource created by a user
	StorageCreatorTypeEnumUser StorageCreatorTypeEnum = "User"
	// StorageCreatorTypeEnumSystem - A resource created by the replication engine.
	StorageCreatorTypeEnumSystem StorageCreatorTypeEnum = "System"
	// StorageCreatorTypeEnumScheduler - A resource created by the snapshot scheduler
	StorageCreatorTypeEnumScheduler StorageCreatorTypeEnum = "Scheduler"
)

type StorageElementPair added in v1.4.0

type StorageElementPair struct {
	LocalStorageElementID  string `json:"local_storage_element_id,omitempty"`
	RemoteStorageElementID string `json:"remote_storage_element_id,omitempty"`
	StorageElementType     string `json:"storage_element_type,omitempty"`
	ReplicationShadowID    string `json:"replication_shadow_id,omitempty"`
}

type StorageTypeEnum

type StorageTypeEnum string

StorageTypeEnum Possible types of storage for a volume.

const (
	// StorageTypeEnumBlock - Typical storage type that is displayed for all system management.
	StorageTypeEnumBlock StorageTypeEnum = "Block"
	// StorageTypeEnumFile - Volume internal to an SD-NAS file_system or nas_server object. Not manageable by the external user
	StorageTypeEnumFile StorageTypeEnum = "File"
)

type TimeZoneEnum added in v1.10.0

type TimeZoneEnum string

TimeZoneEnum defines identifier for timezone

const (
	TimeZoneEnumEtcGMTplus12         TimeZoneEnum = "Etc__GMT_plus_12"
	TimeZoneEnumUSSamoa              TimeZoneEnum = "US__Samoa"
	TimeZoneEnumEtcGMTPlus11         TimeZoneEnum = "Etc__GMT_plus_11"
	TimeZoneEnumAmericaAtka          TimeZoneEnum = "America__Atka"
	TimeZoneEnumUSHawaii             TimeZoneEnum = "US__Hawaii"
	TimeZoneEnumEtcGMTPlus10         TimeZoneEnum = "Etc__GMT_plus_10"
	TimeZoneEnumPacificMarquesas     TimeZoneEnum = "Pacific__Marquesas"
	TimeZoneEnumUSAlaska             TimeZoneEnum = "US__Alaska"
	TimeZoneEnumPacificGambier       TimeZoneEnum = "Pacific__Gambier"
	TimeZoneEnumEtcGMTPlus9          TimeZoneEnum = "Etc__GMT_plus_9"
	TimeZoneEnumPST8PDT              TimeZoneEnum = "PST8PDT"
	TimeZoneEnumPacificPitcairn      TimeZoneEnum = "Pacific__Pitcairn"
	TimeZoneEnumUSPacific            TimeZoneEnum = "US__Pacific"
	TimeZoneEnumEtcGMTPlus8          TimeZoneEnum = "Etc__GMT_plus_8"
	TimeZoneEnumMexicoBajaSur        TimeZoneEnum = "Mexico__BajaSur"
	TimeZoneEnumAmericaBoise         TimeZoneEnum = "America__Boise"
	TimeZoneEnumAmericaPhoenix       TimeZoneEnum = "America__Phoenix"
	TimeZoneEnumMST7MDT              TimeZoneEnum = "MST7MDT"
	TimeZoneEnumEtcGMTPlus7          TimeZoneEnum = "Etc__GMT_plus_7"
	TimeZoneEnumCST6CDT              TimeZoneEnum = "CST6CDT"
	TimeZoneEnumAmericaChicago       TimeZoneEnum = "America__Chicago"
	TimeZoneEnumCanadaSaskatchewan   TimeZoneEnum = "Canada__Saskatchewan"
	TimeZoneEnumAmericaBahiaBanderas TimeZoneEnum = "America__Bahia_Banderas"
	TimeZoneEnumEtcGMTPlus6          TimeZoneEnum = "Etc__GMT_plus_6"
	TimeZoneEnumChileEasterIsland    TimeZoneEnum = "Chile__EasterIsland"
	TimeZoneEnumAmericaBogota        TimeZoneEnum = "America__Bogota"
	TimeZoneEnumAmericaNewYork       TimeZoneEnum = "America__New_York"
	TimeZoneEnumEST5EDT              TimeZoneEnum = "EST5EDT"
	TimeZoneEnumAmericaHavana        TimeZoneEnum = "America__Havana"
	TimeZoneEnumEtcGMTPlus5          TimeZoneEnum = "Etc__GMT_plus_5"
	TimeZoneEnumAmericaCaracas       TimeZoneEnum = "America__Caracas"
	TimeZoneEnumAmericaCuiaba        TimeZoneEnum = "America__Cuiaba"
	TimeZoneEnumAmericaSantoDomingo  TimeZoneEnum = "America__Santo_Domingo"
	TimeZoneEnumCanadaAtlantic       TimeZoneEnum = "Canada__Atlantic"
	TimeZoneEnumAmericaAsuncion      TimeZoneEnum = "America__Asuncion"
	TimeZoneEnumEtcGMTPlus4          TimeZoneEnum = "Etc__GMT_plus_4"
	TimeZoneEnumCanadaNewfoundland   TimeZoneEnum = "Canada__Newfoundland"
	TimeZoneEnumChileContinental     TimeZoneEnum = "Chile__Continental"
	TimeZoneEnumBrazilEast           TimeZoneEnum = "Brazil__East"
	TimeZoneEnumAmericaGodthab       TimeZoneEnum = "America__Godthab"
	TimeZoneEnumAmericaMiquelon      TimeZoneEnum = "America__Miquelon"
	TimeZoneEnumAmericaBuenosAires   TimeZoneEnum = "America__Buenos_Aires"
	TimeZoneEnumEtcMTPlus3           TimeZoneEnum = "Etc__GMT_plus_3"
	TimeZoneEnumAmericaNoronha       TimeZoneEnum = "America__Noronha"
	TimeZoneEnumEtcGMTPlus2          TimeZoneEnum = "Etc__GMT_plus_2"
	TimeZoneEnumAmericaScoresbysund  TimeZoneEnum = "America__Scoresbysund"
	TimeZoneEnumAtlanticCapeVerde    TimeZoneEnum = "Atlantic__Cape_Verde"
	TimeZoneEnumEtcGMTPlus1          TimeZoneEnum = "Etc__GMT_plus_1"
	TimeZoneEnumUTC                  TimeZoneEnum = "UTC"
	TimeZoneEnumEuropeLondon         TimeZoneEnum = "Europe__London"
	TimeZoneEnumAfricaCasablanca     TimeZoneEnum = "Africa__Casablanca"
	TimeZoneEnumAtlanticReykjavik    TimeZoneEnum = "Atlantic__Reykjavik"
	TimeZoneEnumAntarcticaTroll      TimeZoneEnum = "Antarctica__Troll"
	TimeZoneEnumEuropeParis          TimeZoneEnum = "Europe__Paris"
	TimeZoneEnumEuropeSarajevo       TimeZoneEnum = "Europe__Sarajevo"
	TimeZoneEnumEuropeBelgrade       TimeZoneEnum = "Europe__Belgrade"
	TimeZoneEnumEuropeRome           TimeZoneEnum = "Europe__Rome"
	TimeZoneEnumAfricaTunis          TimeZoneEnum = "Africa__Tunis"
	TimeZoneEnumEtcGMTMinus1         TimeZoneEnum = "Etc__GMT_minus_1"
	TimeZoneEnumAsiaGaza             TimeZoneEnum = "Asia__Gaza"
	TimeZoneEnumEuropeBucharest      TimeZoneEnum = "Europe__Bucharest"
	TimeZoneEnumEuropeHelsinki       TimeZoneEnum = "Europe__Helsinki"
	TimeZoneEnumAsiaBeirut           TimeZoneEnum = "Asia__Beirut"
	TimeZoneEnumAfricaHarare         TimeZoneEnum = "Africa__Harare"
	TimeZoneEnumAsiaDamascus         TimeZoneEnum = "Asia__Damascus"
	TimeZoneEnumAsiaAmman            TimeZoneEnum = "Asia__Amman"
	TimeZoneEnumEuropeTiraspol       TimeZoneEnum = "Europe__Tiraspol"
	TimeZoneEnumAsiaJerusalem        TimeZoneEnum = "Asia__Jerusalem"
	TimeZoneEnumEtcGMTMinus2         TimeZoneEnum = "Etc__GMT_minus_2"
	TimeZoneEnumAsiaBaghdad          TimeZoneEnum = "Asia__Baghdad"
	TimeZoneEnumAfricaAsmera         TimeZoneEnum = "Africa__Asmera"
	TimeZoneEnumEtcGMTMinus3         TimeZoneEnum = "Etc__GMT_minus_3"
	TimeZoneEnumAsiaTehran           TimeZoneEnum = "Asia__Tehran"
	TimeZoneEnumAsiaBaku             TimeZoneEnum = "Asia__Baku"
	TimeZoneEnumEtcGMTMinus4         TimeZoneEnum = "Etc__GMT_minus_4"
	TimeZoneEnumAsiaKabul            TimeZoneEnum = "Asia__Kabul"
	TimeZoneEnumAsiaKarachi          TimeZoneEnum = "Asia__Karachi"
	TimeZoneEnumEtcGMTMinus5         TimeZoneEnum = "Etc__GMT_minus_5"
	TimeZoneEnumAsiaKolkata          TimeZoneEnum = "Asia__Kolkata"
	TimeZoneEnumAsiaKatmandu         TimeZoneEnum = "Asia__Katmandu"
	TimeZoneEnumAsiaAlmaty           TimeZoneEnum = "Asia__Almaty"
	TimeZoneEnumEtcGMTMinus6         TimeZoneEnum = "Etc__GMT_minus_6"
	TimeZoneEnumAsiaRangoon          TimeZoneEnum = "Asia__Rangoon"
	TimeZoneEnumAsiaHovd             TimeZoneEnum = "Asia__Hovd"
	TimeZoneEnumAsiaBangkok          TimeZoneEnum = "Asia__Bangkok"
	TimeZoneEnumEtcGMTMinus7         TimeZoneEnum = "Etc__GMT_minus_7"
	TimeZoneEnumAsiaHongKong         TimeZoneEnum = "Asia__Hong_Kong"
	TimeZoneEnumAsiaBrunei           TimeZoneEnum = "Asia__Brunei"
	TimeZoneEnumAsiaSingapore        TimeZoneEnum = "Asia__Singapore"
	TimeZoneEnumEtcGMTMinus8         TimeZoneEnum = "Etc__GMT_minus_8"
	TimeZoneEnumAsiaPyongyang        TimeZoneEnum = "Asia__Pyongyang"
	TimeZoneEnumAustraliaEucla       TimeZoneEnum = "Australia__Eucla"
	TimeZoneEnumAsiaSeoul            TimeZoneEnum = "Asia__Seoul"
	TimeZoneEnumEtcGMTMinus9         TimeZoneEnum = "Etc__GMT_minus_9"
	TimeZoneEnumAustraliaDarwin      TimeZoneEnum = "Australia__Darwin"
	TimeZoneEnumAustraliaAdelaide    TimeZoneEnum = "Australia__Adelaide"
	TimeZoneEnumAustraliaSydney      TimeZoneEnum = "Australia__Sydney"
	TimeZoneEnumAustraliaBrisbane    TimeZoneEnum = "Australia__Brisbane"
	TimeZoneEnumAsiaMagadan          TimeZoneEnum = "Asia__Magadan"
	TimeZoneEnumEtcGMTMinus10        TimeZoneEnum = "Etc__GMT_minus_10"
	TimeZoneEnumAustraliaLordHowe    TimeZoneEnum = "Australia__Lord_Howe"
	TimeZoneEnumEtcGMTMinus11        TimeZoneEnum = "Etc__GMT_minus_11"
	TimeZoneEnumAsiaKamchatka        TimeZoneEnum = "Asia__Kamchatka"
	TimeZoneEnumPacificFiji          TimeZoneEnum = "Pacific__Fiji"
	TimeZoneEnumAntarcticaSouthPole  TimeZoneEnum = "Antarctica__South_Pole"
	TimeZoneEnumEtcGMTMinus12        TimeZoneEnum = "Etc__GMT_minus_12"
	TimeZoneEnumPacificChatham       TimeZoneEnum = "Pacific__Chatham"
	TimeZoneEnumPacificTongatapu     TimeZoneEnum = "Pacific__Tongatapu"
	TimeZoneEnumPacificApia          TimeZoneEnum = "Pacific__Apia"
	TimeZoneEnumEtcGMTMinus13        TimeZoneEnum = "Etc__GMT_minus_13"
	TimeZoneEnumPacificKiritimati    TimeZoneEnum = "Pacific__Kiritimati"
	TimeZoneEnumEtcGMTMinus14        TimeZoneEnum = "Etc__GMT_minus_14"
)

TimeZoneEnum known timezones

type UpdateInitiatorInHost

type UpdateInitiatorInHost struct {
	// Password for CHAP authentication. This value must be 12 to 64 printable UTF-8 characters.
	// CHAP password is required when the cluster CHAP mode is mutual authentication.
	ChapMutualPassword *string `json:"chap_mutual_password,omitempty"`
	// Username for CHAP authentication. This value must be 1 to 64 printable UTF-8 characters.
	// CHAP username is required when the cluster CHAP mode is mutual authentication.
	ChapMutualUsername *string `json:"chap_mutual_username,omitempty"`
	// Password for CHAP authentication. This value must be 12 to 64 printable UTF-8 characters.
	// CHAP password is required when the cluster CHAP mode is mutual authentication.
	ChapSinglePassword *string `json:"chap_single_password,omitempty"`
	// Username for CHAP authentication. This value must be 1 to 64 printable UTF-8 characters.
	// CHAP username is required when the cluster CHAP mode is mutual authentication.
	ChapSingleUsername *string `json:"chap_single_username,omitempty"`
	// Initiator name
	PortName *string `json:"port_name,omitempty"`
}

UpdateInitiatorInHost update initiator in host

type VGPlacementRuleEnum added in v1.12.0

type VGPlacementRuleEnum string

VGPlacementRuleEnum - This is set during creation, and determines resource balancer recommendations.

type VirtualMachines added in v1.12.0

type VirtualMachines struct {
	ID           string `json:"id"`
	InstanceUUID string `json:"instance_uuid"`
	Name         string `json:"name"`
}

VirtualMachines - Details of virtual machine

type VirtualVolume added in v1.12.0

type VirtualVolume struct {
	ID   string `json:"id"`
	Name string `json:"name"`
	Size string `json:"size"`
}

type Volume

type Volume struct {
	Description string `json:"description,omitempty"`
	// Unique identifier of the volume instance.
	ID   string `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
	//  Size of the volume in bytes. Minimum volume size is 1MB. Maximum volume size is 256TB.
	//  Size must be a multiple of 8192.
	Size int64 `json:"size,omitempty"`
	// state
	State VolumeStateEnum `json:"state,omitempty"`
	// type
	Type VolumeTypeEnum `json:"type,omitempty"`
	// volume topology
	// World wide name of the volume.
	Wwn string `json:"wwn,omitempty"`
	// ApplianceID - Placeholder for appliance ID where the volume resides
	ApplianceID string `json:"appliance_id,omitempty"`
	// ProtectionData provides snapshot details of the volume
	ProtectionData ProtectionData `json:"protection_data,omitempty"`
	// CreationTimeStamp provides volume group creation time
	CreationTimeStamp string `json:"creation_timestamp,omitempty"`
	// Current amount of data (in bytes) host has written to a volume without dedupe, compression or sharing.
	LogicalUsed int64 `json:"logical_used,omitempty"`
	// It shows which node will be advertised as the optimized IO path to the volume
	NodeAffinity NodeAffinityEnum `json:"node_affinity,omitempty"`
	// Unique identifier of the protection policy assigned to the volume. Only applicable to primary and clone volumes.
	ProtectionPolicyID string `json:"protection_policy_id,omitempty"`
	// Unique identifier of the performance policy assigned to the volume.
	PerformancePolicyID string `json:"performance_policy_id,omitempty"`
	// Indicates whether this volume is a replication destination.
	IsReplicationDestination bool `json:"is_replication_destination,omitempty"`
	// This attribute indicates the intended use of this volume. It may be null.
	AppType AppTypeEnum `json:"app_type,omitempty"`
	// An optional field used to describe application type usage for a volume.
	AppTypeOther string `json:"app_type_other,omitempty"`
	// NVMe Namespace unique identifier in the NVME subsystem. Used for volumes attached to NVMEoF hosts.
	Nsid int64 `json:"nsid,omitempty"`
	// NVMe Namespace globally unique identifier. Used for volumes attached to NVMEoF hosts.
	Nguid string `json:"nguid,omitempty"`
	// Appliance defines the properties of the appliance
	Appliance ApplianceInstance `json:"Appliance"`
	// MigrationSessionID is the Unique identifier of the migration session assigned to the volume if it is part of a migration activity.
	MigrationSessionID string `json:"migration_session_id,omitempty"`
	// MetroReplicationSessionID id the Unique identifier of the replication session assigned to the volume if it has been configured as a metro volume between two PowerStore clusters
	MetroReplicationSessionID string `json:"metro_replication_session_id,omitempty"`
	// TypeL10n Localized message string corresponding to type
	TypeL10n string `json:"type_l10n,omitempty"`
	// StateL10n Localized message string corresponding to state
	StateL10n string `json:"state_l10n,omitempty"`
	// NodeAffinityL10n Localized message string corresponding to Node Affinity
	NodeAffinityL10n string `json:"node_affinity_l10n,omitempty"`
	// AppTypeL10n Localized message string corresponding to App type
	AppTypeL10n string `json:"app_type_l10n,omitempty"`
	// LocationHistory contains the storage resource location history.
	LocationHistory []LocationHistory `json:"location_history,omitempty"`
	// ProtectionPolicy defines the properties of a policy.
	ProtectionPolicy ProtectionPolicy `json:"protection_policy,omitempty"`
	// MigrationSession defines the migration session.
	MigrationSession MigrationSession `json:"migration_session,omitempty"`
	// MappedVolumes contains details about a configured host or host group attached to a volume.
	MappedVolumes []MappedVolumes `json:"mapped_volumes,omitempty"`
	// VolumeGroup contains information about a volume group.
	VolumeGroup []VolumeGroup `json:"volume_groups,omitempty"`
	// Datastores defines properties of a datastore.
	Datastores []Datastores `json:"datastores,omitempty"`
}

Volume Details about a volume, including snapshots and clones of volumes.

func (*Volume) Fields

func (v *Volume) Fields() []string

Fields returns fields which must be requested to fill struct

type VolumeClone

type VolumeClone struct {
	// Unique name for the volume to be created.
	Name        *string `json:"name"`
	Description *string `json:"description,omitempty"`
	MetaDataHeader
}

VolumeClone request for cloning snapshot/volume

func (*VolumeClone) MetaData added in v1.3.0

func (vc *VolumeClone) MetaData() http.Header

MetaData returns the metadata headers.

type VolumeComputeDifferences added in v1.5.0

type VolumeComputeDifferences struct {
	// Unique identifier of the snapshot used to determine the differences from the current snapshot.
	// If not specified, returns all allocated extents of the current snapshot.
	// The base snapshot must be from the same base volume as the snapshot being compared with.
	BaseSnapshotID *string `json:"base_snapshot_id"`
	// The position of the first logical byte to be used in the comparison.
	// If not specified, the comparison starts at the beginning of the snapshot.
	// The offset must be a multiple of the chunk_size. For best performance, use a multiple of 4K bytes.
	Offset *int64 `json:"offset"`
	// Length of the comparison scan segment in bytes. length / chunk_size is the number of chunks,
	// with each chunk represented as a bit in the bitmap returned in the response. The number of chunks
	// must be divisible by 8 so that the returned bitmap is a byte array. The length and chunk_size
	// must be chosen so that there are no more than 32K chunks, resulting in a returned byte array
	// bitmap of at most 4K bytes. The length starting from the offset must not exceed the size of
	// the snapshot. The length must be a multiple of the chunk_size.
	Length *int64 `json:"length"`
	// Granularity of the chunk in bytes. Must be a power of 2 so that each bit in the returned
	// bitmap represents a chunk sized range of bytes.
	ChunkSize *int64 `json:"chunk_size"`
}

VolumeComputeDifferences compute snapshot differences in a volume request

type VolumeComputeDifferencesResponse added in v1.5.0

type VolumeComputeDifferencesResponse struct {
	// Base64-encoded bitmap with bits set for chunks that are either:
	// Allocated and nonzero when base_snapshot_id not specified, or
	// Unshared with the base snapshot when a base_snapshot_id is specified
	ChunkBitmap *string `json:"chunk_bitmap"`
	// Recommended offset to be used for the next compute_differences invocation
	// A value of -1 will be returned if the end of the object has been reached
	// while scanning for differences or allocations
	NextOffset *int64 `json:"next_offset"`
}

VolumeComputeDifferencesResponse compute snapshot differences in a volume response

type VolumeCreate

type VolumeCreate struct {
	// Unique name for the volume to be created.
	// This value must contain 128 or fewer printable Unicode characters.
	Name *string `json:"name"`
	// Optional sector size, in bytes. Only 512-byte and 4096-byte sectors are supported.
	SectorSize *int64 `json:"sector_size,omitempty"`
	// Size of the volume to be created, in bytes. Minimum volume size is 1MB.
	// Maximum volume size is 256TB. Size must be a multiple of 8192.
	Size *int64 `json:"size"`
	// Volume group to add the volume to. If not specified, the volume is not added to a volume group.
	VolumeGroupID string `json:"volume_group_id,omitempty"`
	// Appliance on which volume will be placed on. If not specified, an appliance is chosen by the array.
	ApplianceID string `json:"appliance_id,omitempty"`
	// Description of the volume
	Description string `json:"description,omitempty"`
	// Protection policy to associate the volume with. If not specified, protection policy is not associated to the volume.
	ProtectionPolicyID string `json:"protection_policy_id,omitempty"`
	// Performance policy to associate the volume with. If not specified, performance policy is not associated to the volume.
	PerformancePolicyID string `json:"performance_policy_id,omitempty"`
	// Type of application using the volume
	AppType AppTypeEnum `json:"app_type,omitempty"`
	// More details on type of application using the volume
	AppTypeOther string `json:"app_type_other,omitempty"`
	// Unique identifier of a host attached to a volume
	HostID string `json:"host_id,omitempty"`
	// Unique identifier of a host group attached to a volume. The host_id and host_group_id cannot both be set.
	HostGroupID string `json:"host_group_id,omitempty"`
	// Logical unit number for the host volume access.
	LogicalUnitNumber int64 `json:"logical_unit_number,omitempty"`
	// Minimum size for the volume, in bytes.
	MinimumSize int64 `json:"min_size,omitempty"`

	// Metadata addition for volumes on array with OE version 3.0 and above
	Metadata *map[string]string `json:"metadata,omitempty"`

	MetaDataHeader
}

VolumeCreate create volume request

func (*VolumeCreate) MetaData added in v1.3.0

func (vc *VolumeCreate) MetaData() http.Header

MetaData returns the metadata headers.

type VolumeDelete

type VolumeDelete struct {
	ForceInternal *bool `json:"force_internal,omitempty"`
}

VolumeDelete body for VolumeDelete request

type VolumeGroup added in v1.4.0

type VolumeGroup struct {
	// Unique identifier of the volume group.
	ID string `json:"id,omitempty"`
	// Name of the volume group.
	// This property supports case-insensitive filtering
	Name string `json:"name,omitempty"`
	// Description for the volume group.
	Description string `json:"description,omitempty"`
	// Unique identifier of the protection policy assigned to the volume.
	ProtectionPolicyID string `json:"protection_policy_id,omitempty"`
	// For a primary or a clone volume group, this property determines whether snapshot sets of the group will be write order consistent.
	IsWriteOrderConsistent bool `json:"is_write_order_consistent,omitempty"`
	// Volumes provides list of volumes associated to the volume group
	Volumes []Volume `json:"volumes"`
	// ProtectionPolicy provides snapshot details of the volume or volumeGroup
	ProtectionPolicy ProtectionPolicy `json:"protection_policy"`
	// CreationTimeStamp provides volume group creation time
	CreationTimeStamp string `json:"creation_timestamp,omitempty"`
	// IsReplicationDestination indicates whether this volume group is a replication destination.
	IsReplicationDestination bool `json:"is_replication_destination,omitempty"`
	// is_importing indicates whether the volume group is being imported.
	IsImporting bool `json:"is_importing,omitempty"`
	// TypeL10 localized message string corresponding to type
	TypeL10 string `json:"type_l10n,omitempty"`
	// IsProtectable is a derived field that is set internally.
	IsProtectable bool `json:"is_protectable,omitempty"`
	// Unique identifier of the migration session assigned to the volume group when it is part of a migration activity.
	MigrationSessionID string `json:"migration_session_id,omitempty"`
	// This is set during creation, and determines resource balancer recommendations.
	PlacementRule VGPlacementRuleEnum `json:"placement_rule,omitempty"`
	// Type of volume.
	Type VolumeTypeEnum `json:"type,omitempty"`
	// Protection data associated with a resource.
	ProtectionData ProtectionData `json:"protection_data,omitempty"`
	// A list of locations. The list of locations includes the move to the current appliance.
	LocationHistory []LocationHistory `json:"location_history,omitempty"`
	//  This resource type has queriable associations from virtual_volume, volume, volume_group, replication_session
	MigrationSession MigrationSession `json:"migration_session,omitempty"`
}

VolumeGroup details about a volume groups.

func (*VolumeGroup) Fields added in v1.4.0

func (v *VolumeGroup) Fields() []string

Fields returns fields which must be requested to fill struct

type VolumeGroupChangePolicy added in v1.4.0

type VolumeGroupChangePolicy struct {
	ProtectionPolicyID string `json:"protection_policy_id"`
}

type VolumeGroupCreate added in v1.4.0

type VolumeGroupCreate struct {
	// Unique name for the volume group.
	// The name should contain no special HTTP characters and no unprintable characters.
	// Although the case of the name provided is reserved, uniqueness check is case-insensitive,
	// so the same name in two different cases is not considered unique.
	Name string `json:"name"`
	// Description for the volume group. The description should not be more than 256
	// characters long and should not have any unprintable characters.
	Description string `json:"description,omitempty"`
	// Unique identifier of an optional protection policy to assign to the volume group.
	ProtectionPolicyID string `json:"protection_policy_id,omitempty"`
	// For a primary or a clone volume group, this property determines whether snapshot sets of the group will be write order consistent.
	IsWriteOrderConsistent bool `json:"is_write_order_consistent"`
	// A list of identifiers of existing volumes that should be added to the volume group.
	// All the volumes must be on the same Cyclone appliance and should not be part of another volume group.
	// If a list of volumes is not specified or if the specified list is empty, an
	// empty volume group of type Volume will be created.
	VolumeIds []string `json:"volume_ids,omitempty"`
}

VolumeGroupCreate create volume group request

type VolumeGroupMembers added in v1.8.0

type VolumeGroupMembers struct {
	VolumeIds []string `json:"volume_ids"`
}

type VolumeGroupModify added in v1.4.0

type VolumeGroupModify struct {
	ProtectionPolicyID     string  `json:"protection_policy_id"` // empty to unassign
	Description            string  `json:"description"`
	Name                   string  `json:"name,omitempty"`
	IsWriteOrderConsistent bool    `json:"is_write_order_consistent,omitempty"`
	ExpirationTimestamp    *string `json:"expiration_timestamp,omitempty"`
}

VolumeGroupModify modifies existing Volume Group

type VolumeGroupSnapshotCreate added in v1.8.0

type VolumeGroupSnapshotCreate struct {
	// Unique name for the volume group.
	Name string `json:"name"`
	// Optional description
	Description string `json:"description,omitempty"`
	// ExpirationTimestamp provides volume group creation time
	ExpirationTimestamp string `json:"expiration_timestamp,omitempty"`
}

VolumeGroupSnapshotCreate create volume group snapshot request

type VolumeGroupSnapshotModify added in v1.15.0

type VolumeGroupSnapshotModify struct {
	Description            string  `json:"description"`
	Name                   string  `json:"name,omitempty"`
	IsWriteOrderConsistent bool    `json:"is_write_order_consistent,omitempty"`
	ExpirationTimestamp    *string `json:"expiration_timestamp,omitempty"`
}

VolumeGroupSnapshotModify modifies existing Volume Group Snapshot Similar to volume group modify without protection policy since this is an invalid field for VolumeGroupSnapshot

type VolumeGroups added in v1.4.0

type VolumeGroups struct {
	VolumeGroup []VolumeGroup `json:"volume_group,omitempty"`
}

type VolumeModify added in v1.1.0

type VolumeModify struct {
	// Unique identifier of the volume instance.
	Name string `json:"name,omitempty"`
	//  Size of the volume in bytes. Minimum volume size is 1MB. Maximum volume size is 256TB.
	//  Size must be a multiple of 8192.
	Size int64 `json:"size,omitempty"`
	// Unique identifier of the protection policy assigned to the volume.
	ProtectionPolicyID string `json:"protection_policy_id"`
	// Unique identifier of the performance policy assigned to the volume.
	PerformancePolicyID string `json:"performance_policy_id,omitempty"`
	// Description of the volume
	Description string `json:"description"`
	// This attribute indicates the intended use of this volume.
	AppType string `json:"app_type,omitempty"`
	// An optional field used to describe application type usage for a volume.
	AppTypeOther string `json:"app_type_other,omitempty"`
	// ExpirationTimestamp provides time at which snapshot will be auto-purged. Valid only for snapshot type.
	ExpirationTimestamp *string `json:"expiration_timestamp,omitempty"`
}

VolumeModify modify volume request

type VolumeStateEnum

type VolumeStateEnum string

VolumeStateEnum Volume life cycle states.

const (
	// VGPlacementRuleEnumSameAppliance - All the members of the group should be on the same appliance in the cluster.
	VGPlacementRuleEnumSameAppliance VolumeStateEnum = "Same_Appliance"
	// VGPlacementRuleEnumNoPreference - The volumes can be placed on any of the appliances in the cluster.
	VGPlacementRuleEnumNoPreference VolumeStateEnum = "No_Preference"
)
const (
	// VolumeStateEnumReady - Volume is operating normally
	VolumeStateEnumReady VolumeStateEnum = "Ready"
	// VolumeStateEnumInitializing - Volume is starting but not yet ready for use
	VolumeStateEnumInitializing VolumeStateEnum = "Initializing"
	// VolumeStateEnumOffline - Volume is not available
	VolumeStateEnumOffline VolumeStateEnum = "Offline"
	// VolumeStateEnumDestroying - Volume is being deleted. No new operations are allowed
	VolumeStateEnumDestroying VolumeStateEnum = "Destroying"
)

type VolumeTypeEnum

type VolumeTypeEnum string

VolumeTypeEnum Type of volume.

const (
	// VolumeTypeEnumPrimary - A base object.
	VolumeTypeEnumPrimary VolumeTypeEnum = "Primary"
	// VolumeTypeEnumClone - A read-write object that shares storage with the object from which it is sourced.
	VolumeTypeEnumClone VolumeTypeEnum = "Clone"
	// VolumeTypeEnumSnapshot - A read-only object created from a volume or clone.
	VolumeTypeEnumSnapshot VolumeTypeEnum = "Snapshot"
)

type VsphereHosts added in v1.12.0

type VsphereHosts struct {
	// Unique identifier of the vsphere_host instance.
	ID string `json:"id"`
	// User-assigned name of the ESXi host in vCenter
	Name string `json:"name"`
}

VsphereHosts - Properties of a vsphere_host.

type WearMetricsByDriveResponse added in v1.3.0

type WearMetricsByDriveResponse struct {
	CommonMetricsFields

	// Reference to the associated drive which these metrics were recorded.
	DriveID string `json:"drive_id,omitempty"`

	// The percentage of drive wear remaining.
	PercentEnduranceRemaining float32 `json:"percent_endurance_remaining,omitempty"`
}

WearMetricsByDriveResponse is returned by wear_metrics_by_drive request

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

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