types

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2020 License: Apache-2.0 Imports: 1 Imported by: 2

Documentation

Index

Constants

View Source
const (
	CapacityUnitTb  = "TB"
	CapacityUnitGb  = "GB"
	CapacityUnitMb  = "MB"
	CapacityUnitCyl = "CYL"
)

constants of storage units

View Source
const (
	JobStatusUnscheduled = "UNSCHEDULED"
	JobStatusScheduled   = "SCHEDULED"
	JobStatusSucceeded   = "SUCCEEDED"
	JobStatusFailed      = "FAILED"
	JobStatusRunning     = "RUNNING"
)

constants

View Source
const ExecutionOptionAsynchronous = "ASYNCHRONOUS"

ExecutionOptionAsynchronous : execute tasks asynchronously

View Source
const ExecutionOptionSynchronous = "SYNCHRONOUS"

ExecutionOptionSynchronous : execute tasks synchronously

View Source
const InSG = "inSG"

InSG can be passed as a query param to the volume listing endpoing for filtering the results based on their association to a storage group

View Source
const IncludeDetails = "includeDetails"

IncludeDetails is boolean flag that can be passed as a query param to the volume listing endpoing for getting the extensive details about the snapshots.

View Source
const IsRdf = "isRdf"

IsRdf can be passed as a query param to the volume listing endpoing for filtering the resluts based on their RDF relationship

View Source
const SnapshotName = "snapshotName"

SnapshotName can be passed as a query param to the volume listing endpoing for filtering the results based on snapshot name

Variables

This section is empty.

Functions

This section is empty.

Types

type AddExistingStorageGroupParam

type AddExistingStorageGroupParam struct {
	StorageGroupIDs        []string `json:"storageGroupId,omitempty"`
	EnableComplianceAlerts bool     `json:"enableComplianceAlerts,omitempty"`
}

AddExistingStorageGroupParam contains SG ids and compliance alert flag

type AddHostInitiators

type AddHostInitiators struct {
	AddInitiator *ChangeInitiatorParam `json:"addInitiatorParam,omitempty"`
}

AddHostInitiators holds initiator parameter to add

type AddNewStorageGroupParam

type AddNewStorageGroupParam struct {
	SRPID                     string                      `json:"srpId,omitempty"`
	SLOBasedStorageGroupParam []SLOBasedStorageGroupParam `json:"sloBasedStorageGroupParam,omitempty"`
	Emulation                 string                      `json:"emulation,omitempty"`
	EnableComplianceAlerts    bool                        `json:"enableComplianceAlerts,omitempty"`
}

AddNewStorageGroupParam contains parameters required to add a new storage group

type AddPortParam

type AddPortParam struct {
	Ports []SymmetrixPortKeyType `json:"port"`
}

type AddSpecificVolumeParam

type AddSpecificVolumeParam struct {
	VolumeIDs []string `json:"volumeId,omitempty"`
}

AddSpecificVolumeParam holds volume ids

type AddVolumeParam

type AddVolumeParam struct {
	NumberOfVols     int                  `json:"num_of_vols,omitempty"`
	VolumeAttribute  VolumeAttributeType  `json:"volumeAttribute,omitempty"`
	Emulation        string               `json:"emulation,omitempty"`
	VolumeIdentifier VolumeIdentifierType `json:"volumeIdentifier,omitempty"`
}

AddVolumeParam holds number volumes to add and related param

type AllVolumeParam

type AllVolumeParam struct {
	VolumeAttribute VolumeAttributeType `json:"volumeAttribute,omitempty"`
	RDFGroupNumber  int                 `json:"rdfGroupNumber,omitempty"`
}

AllVolumeParam contains volume attributes and RDF group number

type ChangeInitiatorParam

type ChangeInitiatorParam struct {
	Initiators []string `json:"initiator,omitempty"`
}

ChangeInitiatorParam contains initiators

type CloneSession

type CloneSession struct {
	SourceVolume  string `json:"sourceVolume"`
	TargetVolume  string `json:"targetVolume"`
	Timestamp     int64  `json:"timestamp"`
	State         string `json:"state"`
	RemoteVolumes string `json:"remoteVolumes"`
}

CloneSession contains information on a clone session

type CreateHostGroupParam

type CreateHostGroupParam struct {
	HostGroupID     string     `json:"hostGroupId"`
	HostIDs         []string   `json:"hostId"`
	HostFlags       *HostFlags `json:"hostFlags,omitempty"`
	ExecutionOption string     `json:"executionOption"`
}

CreateHostGroupParam contains parameters required to create host group

type CreateHostParam

type CreateHostParam struct {
	HostID          string     `json:"hostId"`
	InitiatorIDs    []string   `json:"initiatorId"`
	HostFlags       *HostFlags `json:"hostFlags,omitempty"`
	ExecutionOption string     `json:"executionOption"`
}

CreateHostParam contains input fields to create a host

type CreatePortGroupParam

type CreatePortGroupParam struct {
	PortGroupID      string                 `json:"portGroupId,omitempty"`
	SymmetrixPortKey []SymmetrixPortKeyType `json:"symmetrixPortKey,omitempty"`
}

CreatePortGroupParam contains the port group id and port type

type CreatePortGroupParams

type CreatePortGroupParams struct {
	PortGroupID      string    `json:"portGroupId"`
	SymmetrixPortKey []PortKey `json:"symmetrixPortKey"`
	ExecutionOption  string    `json:"executionOption"`
}

CreatePortGroupParams - Input params for creating port groups

type CreateStorageGroupParam

type CreateStorageGroupParam struct {
	StorageGroupID            string                      `json:"storageGroupId,omitempty"`
	CreateEmptyStorageGroup   bool                        `json:"create_empty_storage_group,omitempty"`
	SRPID                     string                      `json:"srpId,omitempty"`
	SLOBasedStorageGroupParam []SLOBasedStorageGroupParam `json:"sloBasedStorageGroupParam,omitempty"`
	Emulation                 string                      `json:"emulation,omitempty"`
	ExecutionOption           string                      `json:"executionOption,omitempty"`
}

CreateStorageGroupParam : Payload for creating Storage Group

type CreateVolumesSnapshot

type CreateVolumesSnapshot struct {
	SourceVolumeList []VolumeList `json:"deviceNameListSource"`
	BothSides        bool         `json:"bothSides"`
	Star             bool         `json:"star"`
	Force            bool         `json:"force"`
	TimeInHours      bool         `json:"timeInHours"`
	TimeToLive       int64        `json:"timeToLive"`
	TTL              int64        `json:"ttl,omitempty"`
	Securettl        int64        `json:"securettl,omitempty"`
	ExecutionOption  string       `json:"executionOption"`
}

CreateVolumesSnapshot contains parameters to create a volume snapshot

type DeleteVolumeSnapshot

type DeleteVolumeSnapshot struct {
	DeviceNameListSource []VolumeList `json:"deviceNameListSource"`
	Symforce             bool         `json:"symforce,omitempty"`
	Star                 bool         `json:"star,omitempty"`
	Force                bool         `json:"force,omitempty"`
	Restore              bool         `json:"restore,omitempty"`
	Generation           int64        `json:"generation"`
	ExecutionOption      string       `json:"executionOption,omitempty"`
}

DeleteVolumeSnapshot contains input parameters to delete the snapshot

type DirectorIDList

type DirectorIDList struct {
	DirectorIDs []string `json:"directorId"`
}

DirectorIDList : list of directors

type EditCompressionParam

type EditCompressionParam struct {
	Compression bool `json:"compression,omitempty"`
}

EditCompressionParam hold param to edit compression attribute with an SG

type EditHostParams

type EditHostParams struct {
	SetHostFlags    *SetHostFlags    `json:"setHostFlagsParam,omitempty"`
	RenameHostParam *RenameHostParam `json:"renameHostParam,omitempty"`
}

EditHostParams holds the host flags to modify

type EditPortGroup

type EditPortGroup struct {
	EditPortGroupActionParam *EditPortGroupActionParam `json:"editPortGroupActionParam"`
}

type EditPortGroupActionParam

type EditPortGroupActionParam struct {
	AddPortParam    *AddPortParam    `json:"addPortParam,omitempty"`
	RemovePortParam *RemovePortParam `json:"removePortParam,omitempty"`
}

type EditStorageGroupActionParam

type EditStorageGroupActionParam struct {
	MergeStorageGroupParam        *MergeStorageGroupParam        `json:"mergeStorageGroupParam,omitempty"`
	SplitStorageGroupVolumesParam *SplitStorageGroupVolumesParam `json:"splitStorageGroupVolumesParam,omitempty"`
	SplitChildStorageGroupParam   *SplitChildStorageGroupParam   `json:"splitChildStorageGroupParam,omitempty"`
	MoveVolumeToStorageGroupParam *MoveVolumeToStorageGroupParam `json:"moveVolumeToStorageGroupParam,omitempty"`
	EditCompressionParam          *EditCompressionParam          `json:"editCompressionParam,omitempty"`
	SetHostIOLimitsParam          *SetHostIOLimitsParam          `json:"setHostIOLimitsParam,omitempty"`
	RemoveVolumeParam             *RemoveVolumeParam             `json:"removeVolumeParam,omitempty"`
	ExpandStorageGroupParam       *ExpandStorageGroupParam       `json:"expandStorageGroupParam,omitempty"`
	EditStorageGroupWorkloadParam *EditStorageGroupWorkloadParam `json:"editStorageGroupWorkloadParam,omitempty"`
	EditStorageGroupSLOParam      *EditStorageGroupSLOParam      `json:"editStorageGroupSLOParam,omitempty"`
	EditStorageGroupSRPParam      *EditStorageGroupSRPParam      `json:"editStorageGroupSRPParam,omitempty"`
	RemoveStorageGroupParam       *RemoveStorageGroupParam       `json:"removeStorageGroupParam,omitempty"`
	RenameStorageGroupParam       *RenameStorageGroupParam       `json:"renameStorageGroupParam,omitempty"`
}

EditStorageGroupActionParam holds parameters to modify an SG

type EditStorageGroupSLOParam

type EditStorageGroupSLOParam struct {
	SLOID string `json:"sloId,omitempty"`
}

EditStorageGroupSLOParam hold param to change SLOs

type EditStorageGroupSRPParam

type EditStorageGroupSRPParam struct {
	SRPID string `json:"srpId,omitempty"`
}

EditStorageGroupSRPParam holds param to change SRPs

type EditStorageGroupWorkloadParam

type EditStorageGroupWorkloadParam struct {
	WorkloadSelection string `json:"workloadSelection,omitempty,omitempty"`
}

EditStorageGroupWorkloadParam holds selected work load

type EditVolumeActionParam

type EditVolumeActionParam struct {
	FreeVolumeParam             *FreeVolumeParam             `json:"freeVolumeParam,omitempty"`
	ExpandVolumeParam           *ExpandVolumeParam           `json:"expandVolumeParam,omitempty"`
	ModifyVolumeIdentifierParam *ModifyVolumeIdentifierParam `json:"modifyVolumeIdentifierParam,omitempty"`
}

EditVolumeActionParam : action information to edit volume

type EditVolumeParam

type EditVolumeParam struct {
	EditVolumeActionParam EditVolumeActionParam `json:"editVolumeActionParam"`
	ExecutionOption       string                `json:"executionOption"`
}

EditVolumeParam : parameters required to edit volume information

type Error

type Error struct {
	Message        string `json:"message"`
	HTTPStatusCode int    `json:"httpStatusCode"`
	ErrorCode      int    `json:"errorCode"`
}

Error : contains fields to report rest interface errors

func (Error) Error

func (e Error) Error() string

type ExpandStorageGroupParam

type ExpandStorageGroupParam struct {
	AddExistingStorageGroupParam *AddExistingStorageGroupParam `json:"addExistingStorageGroupParam,omitempty"`
	AddNewStorageGroupParam      *AddNewStorageGroupParam      `json:"addNewStorageGroupParam,omitempty"`
	ExpandVolumesPar1Gam         *ExpandVolumesParam           `json:"expandVolumesParam,omitempty"`
	AddSpecificVolumeParam       *AddSpecificVolumeParam       `json:"addSpecificVolumeParam,omitempty"`
	AddVolumeParam               *AddVolumeParam               `json:"addVolumeParam,omitempty"`
}

ExpandStorageGroupParam holds params related to expanding size of an SG

type ExpandVolumeParam

type ExpandVolumeParam struct {
	VolumeAttribute VolumeAttributeType `json:"volumeAttribute"`
	RDFGroupNumber  int                 `json:"rdfGroupNumber,omitempty"`
}

ExpandVolumeParam : attributes to expand a volume

type ExpandVolumesParam

type ExpandVolumesParam struct {
	SpecificVolumeParam SpecificVolumeParam `json:"specificVolumeParam,omitempty"`
	AllVolumeParam      AllVolumeParam      `json:"allVolumeParam,omitempty"`
}

ExpandVolumesParam holds parameters to expand volumes

type FreeVolumeParam

type FreeVolumeParam struct {
	FreeVolume bool `json:"free_volume"`
}

FreeVolumeParam : boolean value representing data to be freed

type Host

type Host struct {
	HostID             string   `json:"hostId"`
	NumberMaskingViews int64    `json:"num_of_masking_views"`
	NumberInitiators   int64    `json:"num_of_initiators"`
	NumberHostGroups   int64    `json:"num_of_host_groups"`
	PortFlagsOverride  bool     `json:"port_flags_override"`
	ConsistentLun      bool     `json:"consistent_lun"`
	EnabledFlags       string   `json:"enabled_flags"`
	DisabledFlags      string   `json:"disabled_flags"`
	HostType           string   `json:"type"`
	Initiators         []string `json:"initiator"`
	MaskingviewIDs     []string `json:"maskingview"`
	NumPowerPathHosts  int64    `json:"num_of_powerpath_hosts"`
}

Host : Information about a host

type HostFlag

type HostFlag struct {
	Enabled  bool `json:"enabled"`
	Override bool `json:"override"`
}

HostFlag holds the host flags

type HostFlags

type HostFlags struct {
	VolumeSetAddressing *HostFlag `json:"volume_set_addressing,omitempty"`
	DisableQResetOnUA   *HostFlag `json:"disable_q_reset_on_ua,omitempty"`
	EnvironSet          *HostFlag `json:"environ_set,omitempty"`
	AvoidResetBroadcast *HostFlag `json:"avoid_reset_broadcast,omitempty"`
	OpenVMS             *HostFlag `json:"openvms,omitempty"`
	SCSI3               *HostFlag `json:"scsi_3,omitempty"`
	Spc2ProtocolVersion *HostFlag `json:"spc2_protocol_version,omitempty"`
	SCSISupport1        *HostFlag `json:"scsi_support1,omitempty"`
	ConsistentLUN       bool      `json:"consistent_lun"`
}

HostFlags holds additional host flags

type HostList

type HostList struct {
	HostIDs []string `json:"hostId"`
}

HostList : list of hosts

type HostOrHostGroupSelection

type HostOrHostGroupSelection struct {
	CreateHostGroupParam      *CreateHostGroupParam      `json:"createHostGroupParam,omitempty"`
	UseExistingHostGroupParam *UseExistingHostGroupParam `json:"useExistingHostGroupParam,omitempty"`
	CreateHostParam           *CreateHostGroupParam      `json:"createHostParam,omitempty"`
	UseExistingHostParam      *UseExistingHostParam      `json:"useExistingHostParam,omitempty"`
}

HostOrHostGroupSelection contains parameters to select a host or host group

type Initiator

type Initiator struct {
	InitiatorID          string    `json:"initiatorId"`
	SymmetrixPortKey     []PortKey `json:"symmetrixPortKey"`
	InitiatorType        string    `json:"type"`
	FCID                 string    `json:"fcid,omitempty"`
	IPAddress            string    `json:"ip_address,omitempty"`
	HostID               string    `json:"host,omitempty"`
	HostGroupIDs         []string  `json:"hostGroup,omitempty"`
	LoggedIn             bool      `json:"logged_in"`
	OnFabric             bool      `json:"on_fabric"`
	FlagsInEffect        string    `json:"flags_in_effect"`
	NumberVols           int64     `json:"num_of_vols"`
	NumberHostGroups     int64     `json:"num_of_host_groups"`
	NumberMaskingViews   int64     `json:"number_of_masking_views"`
	NumberPowerPathHosts int64     `json:"num_of_powerpath_hosts"`
}

Initiator : Information about an initiator

type InitiatorList

type InitiatorList struct {
	InitiatorIDs []string `json:"initiatorId"`
}

InitiatorList : list of initiators

type Job

type Job struct {
	JobID                    string `json:"jobId"`
	Name                     string `json:"name"`
	Status                   string `json:"status"`
	Username                 string `json:"username"`
	LastModifiedDate         string `json:"last_modified_date"`
	LastModifiedMilliseconds int64  `json:"last_modified_milliseconds"`
	ScheduledDate            string `json:"scheduled_date"`
	ScheduledMilliseconds    int64  `json:"scheduled_milliseconds"`
	CompletedDate            string `json:"completed_date"`
	CompletedMilliseconds    int64  `json:"completed_milliseconds"`
	Tasks                    []Task `json:"task"`
	ResourceLink             string `json:"resourceLink"`
	Result                   string `json:"result"`
	Links                    []Link `json:"links"`
}

Job : information about a job

func (*Job) GetJobResource

func (j *Job) GetJobResource() (string, string, string)

GetJobResource parses the Resource link and returns three things: The 1) the symmetrixID, 2) the resource type (e.g.) volume, and 3) the resourceID If the Resource Link cannot be parsed, empty strings are returned.

type JobIDList

type JobIDList struct {
	JobIDs []string `json:"jobId"`
}

JobIDList : list of Job ids

type Link struct {
	Key string   `json:"key"`
	URI []string `json:"uri"`
}

Link : key and URI

type LinkSnapshotGenInfo

type LinkSnapshotGenInfo struct {
	TargetDevice  string `json:"targetDevice"`
	State         string `json:"state"`
	Restored      bool   `json:"restored"`
	Defined       bool   `json:"defined"`
	Destaged      bool   `json:"destaged"`
	BackgroundDef bool   `json:"backgroundDef"`
}

LinkSnapshotGenInfo contains information on snapshot generation for links

type LinkedVolumes

type LinkedVolumes struct {
	TargetDevice     string `json:"targetDevice"`
	Timestamp        string `json:"timestamp"`
	State            string `json:"state"`
	TrackSize        int64  `json:"trackSize"`
	Tracks           int64  `json:"tracks"`
	PercentageCopied int64  `json:"percentageCopied"`
	Linked           bool   `json:"linked"`
	Restored         bool   `json:"restored"`
	Defined          bool   `json:"defined"`
	Copy             bool   `json:"copy"`
	Destage          bool   `json:"destage"`
	Modified         bool   `json:"modified"`
}

LinkedVolumes contains information about linked volumes of the snapshot

type MaskingView

type MaskingView struct {
	MaskingViewID  string `json:"maskingViewId"`
	HostID         string `json:"hostId"`
	HostGroupID    string `json:"hostGroupId"`
	PortGroupID    string `json:"portGroupId"`
	StorageGroupID string `json:"storageGroupId"`
}

MaskingView holds masking view fields

type MaskingViewConnection

type MaskingViewConnection struct {
	VolumeID       string `json:"volumeID"`
	HostLUNAddress string `json:"host_lun_address"`
	CapacityGB     string `json:"cap_gb"`
	InitiatorID    string `json:"initiatorId"`
	Alias          string `json:"alias"`
	DirectorPort   string `json:"dir_port"`
	LoggedIn       bool   `json:"logged_in"`
	OnFabric       bool   `json:"on_fabric"`
}

MaskingViewConnection is a connection entry for the massking view associating a volume with the HostLUNAddress, the InitiatID and DirectorPort used for the path, and other attributes.

type MaskingViewConnectionsResult

type MaskingViewConnectionsResult struct {
	MaskingViewConnections []*MaskingViewConnection `json:"maskingViewConnection"`
}

MaskingViewConnectionsResult is the result structure for .../maskingview/{id}/connections

type MaskingViewCreateParam

type MaskingViewCreateParam struct {
	MaskingViewID            string                    `json:"maskingViewId"`
	HostOrHostGroupSelection *HostOrHostGroupSelection `json:"hostOrHostGroupSelection,omitempty"`
	PortGroupSelection       *PortGroupSelection       `json:"portGroupSelection,omitempty"`
	StorageGroupSelection    *StorageGroupSelection    `json:"storageGroupSelection,omitempty"`
	EnableComplianceAlerts   bool                      `json:"enableComplianceAlerts,omitempty"`
	ExecutionOption          string                    `json:"executionOption,omitempty"`
}

MaskingViewCreateParam holds the parameters to create masking views

type MaskingViewList

type MaskingViewList struct {
	MaskingViewIDs []string `json:"maskingViewId"`
}

MaskingViewList contains list of masking views

type MergeStorageGroupParam

type MergeStorageGroupParam struct {
	StorageGroupID string `json:"storageGroupId,omitempty"`
}

MergeStorageGroupParam : Payloads for updating Storage Group

type MirrorSession

type MirrorSession struct {
	Timestamp    int64  `json:"timestamp"`
	State        string `json:"state"`
	SourceVolume string `json:"sourceVolume"`
	TargetVolume string `json:"targetVolume"`
}

MirrorSession contains info about mirrored session

type ModifyVolumeIdentifierParam

type ModifyVolumeIdentifierParam struct {
	VolumeIdentifier VolumeIdentifierType `json:"volumeIdentifier"`
}

ModifyVolumeIdentifierParam : volume identifier to modify the volume information

type ModifyVolumeSnapshot

type ModifyVolumeSnapshot struct {
	VolumeNameListSource []VolumeList `json:"deviceNameListSource"`
	VolumeNameListTarget []VolumeList `json:"deviceNameListTarget"`
	Force                bool         `json:"force,omitempty"`
	Star                 bool         `json:"star,omitempty"`
	Exact                bool         `json:"exact,omitempty"`
	Copy                 bool         `json:"copy,omitempty"`
	Remote               bool         `json:"remote,omitempty"`
	Symforce             bool         `json:"symforce,omitempty"`
	NoCopy               bool         `json:"nocopy,omitempty"`
	TTL                  int64        `json:"ttl,omitempty"`
	SecureTTL            int64        `json:"securettl,omitempty"`
	NewSnapshotName      string       `json:"newsnapshotname,omitempty"`
	TimeInHours          bool         `json:"timeInHours"`
	Action               string       `json:"action"`
	Generation           int64        `json:"generation"`
	ExecutionOption      string       `json:"executionOption,omitempty"`
}

ModifyVolumeSnapshot contains input parameters to modify the snapshot

type MoveVolumeToStorageGroupParam

type MoveVolumeToStorageGroupParam struct {
	VolumeIDs      []string `json:"volumeId,omitempty"`
	StorageGroupID string   `json:"storageGroupId,omitempty"`
	Force          bool     `json:"force,omitempty"`
}

MoveVolumeToStorageGroupParam stores parameters to move volumes to SG

type Port

type Port struct {
	SymmetrixPort SymmetrixPortType `json:"symmetrixPort"`
}

Port is a minimal represation of a Symmetrix Port for iSCSI target purpose

type PortGroup

type PortGroup struct {
	PortGroupID        string    `json:"portGroupId"`
	SymmetrixPortKey   []PortKey `json:"symmetrixPortKey"`
	NumberPorts        int64     `json:"num_of_ports"`
	NumberMaskingViews int64     `json:"number_of_masking_views"`
	PortGroupType      string    `json:"type"`
	MaskingView        []string  `json:"maskingview"`
}

PortGroup : Information about a port group

type PortGroupList

type PortGroupList struct {
	PortGroupIDs []string `json:"portGroupId"`
}

PortGroupList : list of port groups

type PortGroupSelection

type PortGroupSelection struct {
	CreatePortGroupParam      *CreatePortGroupParam      `json:"createPortGroupParam,omitempty"`
	UseExistingPortGroupParam *UseExistingPortGroupParam `json:"useExistingPortGroupParam,omitempty"`
}

PortGroupSelection contains parameters to select the port group

type PortKey

type PortKey struct {
	DirectorID string `json:"directorId"`
	PortID     string `json:"portId"`
}

PortKey : combination of a port and a key

type PortList

type PortList struct {
	SymmetrixPortKey []PortKey `json:"symmetrixPortKey"`
}

PortList : list of ports

type PrivVolumeIterator

type PrivVolumeIterator struct {
	ResultList PrivVolumeResultList `json:"resultList"`
	ID         string               `json:"id"`
	Count      int                  `json:"count"`
	// What units is ExpirationTime in?
	ExpirationTime int64 `json:"expirationTime"`
	MaxPageSize    int   `json:"maxPageSize"`
}

PrivVolumeIterator : holds the iterator of resultant volume list

type PrivVolumeResultList

type PrivVolumeResultList struct {
	PrivVolumeList []VolumeResultPrivate `json:"result"`
	From           int                   `json:"from"`
	To             int                   `json:"to"`
}

PrivVolumeResultList : volume list resulted

type QueryParams

type QueryParams map[string]interface{}

QueryParams is a map of key value pairs that can be appended to any url as query parameters.

type RemoveHostInitiators

type RemoveHostInitiators struct {
	RemoveInitiator *ChangeInitiatorParam `json:"removeInitiatorParam,omitempty"`
}

RemoveHostInitiators holds the initiator parameter to remove

type RemovePortParam

type RemovePortParam struct {
	Ports []SymmetrixPortKeyType `json:"port"`
}

type RemoveStorageGroupParam

type RemoveStorageGroupParam struct {
	StorageGroupIDs []string `json:"storageGroupId,omitempty"`
	Force           bool     `json:"force,omitempty"`
}

RemoveStorageGroupParam holds parameters to remove an SG

type RemoveVolumeParam

type RemoveVolumeParam struct {
	VolumeIDs []string `json:"volumeId,omitempty"`
}

RemoveVolumeParam holds volume ids to remove from SG

type RenameHostParam

type RenameHostParam struct {
	NewHostName string `json:"new_host_name,omitempty"`
}

RenameHostParam holds the new name

type RenameStorageGroupParam

type RenameStorageGroupParam struct {
	NewStorageGroupName string `json:"new_storage_Group_name,omitempty"`
}

RenameStorageGroupParam holds new name of a storage group

type SLOBasedStorageGroupParam

type SLOBasedStorageGroupParam struct {
	SLOID                                          string                `json:"sloId,omitempty"`
	WorkloadSelection                              string                `json:"workloadSelection,omitempty"`
	NumberOfVolumes                                int                   `json:"num_of_vols"`
	VolumeAttribute                                VolumeAttributeType   `json:"volumeAttribute,omitempty"`
	AllocateCapacityForEachVol                     bool                  `json:"allocate_capacity_for_each_vol,omitempty"`
	PersistPrealloctedCapacityThroughReclaimOrCopy bool                  `json:"persist_preallocated_capacity_through_reclaim_or_copy,omitempty"`
	NoCompression                                  bool                  `json:"noCompression,omitempty"`
	VolumeIdentifier                               *VolumeIdentifierType `json:"volumeIdentifier,omitempty"`
	SetHostIOLimitsParam                           *SetHostIOLimitsParam `json:"setHostIOLimitsParam,omitempty"`
}

SLOBasedStorageGroupParam holds parameters related to an SG and SLO

type SetHostFlags

type SetHostFlags struct {
	HostFlags *HostFlags `json:"hostFlags,omitempty"`
}

SetHostFlags contains the host flags

type SetHostIOLimitsParam

type SetHostIOLimitsParam struct {
	HostIOLimitMBSec    string `json:"host_io_limit_mb_sec,omitempty"`
	HostIOLimitIOSec    string `json:"host_io_limit_io_sec,omitempty"`
	DynamicDistribution string `json:"dynamicDistribution,omitempty"`
}

SetHostIOLimitsParam holds param to set host IO limit

type SnapTarget

type SnapTarget struct {
	Target  string
	Defined bool
	CpMode  bool
}

SnapTarget contains target information

type SnapVXSession

type SnapVXSession struct {
	SourceSnapshotGenInfo       []SourceSnapshotGenInfo      `json:"srcSnapshotGenInfo"`
	LinkSnapshotGenInfo         []LinkSnapshotGenInfo        `json:"lnkSnapshotGenInfo"`
	TargetSourceSnapshotGenInfo *TargetSourceSnapshotGenInfo `json:"tgtSrcSnapshotGenInfo"`
}

SnapVXSession holds snapshot session information

type Snapshot

type Snapshot struct {
	Name       string `json:"name"`
	Generation int64  `json:"generation"`
	Linked     bool   `json:"linked"`
	Restored   bool   `json:"restored"`
	Timestamp  string `json:"timestamp"`
	State      string `json:"state"`
}

Snapshot contains information for a snapshot

type SnapshotHeader

type SnapshotHeader struct {
	Device       string `json:"device"`
	SnapshotName string `json:"snapshotName"`
	Generation   int64  `json:"generation"`
	Secured      bool   `json:"secured"`
	Expired      bool   `json:"expired"`
	TimeToLive   int64  `json:"timeToLive"`
	Timestamp    int64  `json:"timestamp"`
}

SnapshotHeader contians information for snapshot header

type SnapshotVolumeGeneration

type SnapshotVolumeGeneration struct {
	DeviceName           string                 `json:"deviceName"`
	VolumeSnapshotSource []VolumeSnapshotSource `json:"snapshotSrcs"`
	VolumeSnapshotLink   []VolumeSnapshotLink   `json:"snapshotLnks,omitempty"`
}

SnapshotVolumeGeneration contains information on all snapshots related to a volume

type SourceSnapshotGenInfo

type SourceSnapshotGenInfo struct {
	SnapshotHeader      SnapshotHeader        `json:"snapshotHeader"`
	LinkSnapshotGenInfo []LinkSnapshotGenInfo `json:"lnkSnapshotGenInfo"`
}

SourceSnapshotGenInfo contains source snapshot generation info

type SpecificVolumeParam

type SpecificVolumeParam struct {
	VolumeIDs       []string            `json:"volumeId,omitempty"`
	VolumeAttribute VolumeAttributeType `json:"volumeAttribute,omitempty"`
	RDFGroupNumber  int                 `json:"rdfGroupNumber,omitempty"`
}

SpecificVolumeParam holds volume ids, volume attributes and RDF group num

type SplitChildStorageGroupParam

type SplitChildStorageGroupParam struct {
	StorageGroupID string `json:"storageGroupId,omitempty"`
	MaskingViewID  string `json:"maskingViewId,omitempty"`
}

SplitChildStorageGroupParam holds param to split child SG

type SplitStorageGroupVolumesParam

type SplitStorageGroupVolumesParam struct {
	VolumeIDs      []string `json:"volumeId,omitempty"`
	StorageGroupID string   `json:"storageGroupId,omitempty"`
	MaskingViewID  string   `json:"maskingViewId,omitempty"`
}

SplitStorageGroupVolumesParam holds parameters to split

type SrpCap

type SrpCap struct {
	SubAllocCapInTB float64 `json:"subscribed_allocated_tb"`
	SubTotInTB      float64 `json:"subscribed_total_tb"`
	SnapModInTB     float64 `json:"snapshot_modified_tb"`
	SnapTotInTB     float64 `json:"snapshot_total_tb"`
	UsableUsedInTB  float64 `json:"usable_used_tb"`
	UsableTotInTB   float64 `json:"usable_total_tb"`
}

SrpCap : capacity of an SRP

type SrpEfficiency

type SrpEfficiency struct {
	EfficiencyRatioToOne     float32 `json:"overall_efficiency_ratio_to_one"`
	DataReductionRatioToOne  float32 `json:"data_reduction_ratio_to_one"`
	DataReductionEnabledPerc float32 `json:"data_reduction_enabled_percent"`
	VirtProvSavingRatioToOne float32 `json:"virtual_provisioning_savings_ratio_to_one"`
	SanpSavingRatioToOne     float32 `json:"snapshot_savings_ratio_to_one"`
}

SrpEfficiency : efficiency attributes of an SRP

type StorageGroup

type StorageGroup struct {
	StorageGroupID     string   `json:"storageGroupId"`
	SLO                string   `json:"slo"`
	SRP                string   `json:"srp"`
	Workload           string   `json:"workload"`
	SLOCompliance      string   `json:"slo_compliance"`
	NumOfVolumes       int      `json:"num_of_vols"`
	NumOfChildSGs      int      `json:"num_of_child_sgs"`
	NumOfParentSGs     int      `json:"num_of_parent_sgs"`
	NumOfMaskingViews  int      `json:"num_of_masking_views"`
	NumOfSnapshots     int      `json:"num_of_snapshots"`
	CapacityGB         float64  `json:"cap_gb"`
	DeviceEmulation    string   `json:"device_emulation"`
	Type               string   `type:"type"`
	Unprotected        bool     `type:"unprotected"`
	ChildStorageGroup  []string `json:"child_storage_group"`
	ParentStorageGroup []string `json:"parent_storage_group"`
	MaskingView        []string `json:"maskingview"`
}

StorageGroup holds all the fields of an SG

type StorageGroupIDList

type StorageGroupIDList struct {
	StorageGroupIDs []string `json:"storageGroupId"`
}

StorageGroupIDList : list of sg's

type StorageGroupResult

type StorageGroupResult struct {
	StorageGroup []StorageGroup `json:"storageGroup"`
	Success      bool           `json:"success"`
	Message      string         `json:"message"`
}

StorageGroupResult holds result of an operation

type StorageGroupSelection

type StorageGroupSelection struct {
	CreateStorageGroupParam      *CreateStorageGroupParam      `json:"createStorageGroupParam,omitempty"`
	UseExistingStorageGroupParam *UseExistingStorageGroupParam `json:"useExistingStorageGroupParam,omitempty"`
}

StorageGroupSelection contains parameters to select storage group

type StoragePool

type StoragePool struct {
	StoragePoolID        string         `json:"srpID"`
	DiskGrouCount        int            `json:"num_of_disk_groups"`
	Description          string         `json:"description"`
	Emulation            string         `json:"emulation"`
	CompressionState     string         `json:"compression_state"`
	EffectiveUsedCapPerc int            `json:"effective_used_capacity_percent"`
	ReservedCapPerc      int            `json:"reserved_cap_percent"`
	SrdfDseAllocCap      float64        `json:"total_srdf_dse_allocated_cap_gb"`
	RdfaDse              bool           `json:"rdfa_dse"`
	DiskGroupIDs         []string       `json:"diskGroupId"`
	ExternalCap          float64        `json:"external_capacity_gb"`
	SrpCap               *SrpCap        `json:"srp_capacity"`
	SrpEfficiency        *SrpEfficiency `json:"srp_efficiency"`
}

StoragePool : information about a storage pool

type StoragePoolList

type StoragePoolList struct {
	StoragePoolIDs []string `json:"srpID"`
}

StoragePoolList : list of storage pools in the system

type SymDevice

type SymDevice struct {
	SymmetrixID string     `json:"symmetrixId"`
	Name        string     `json:"name"`
	Snapshot    []Snapshot `json:"snapshot"`
	RdfgNumbers []int64    `json:"rdfgNumbers"`
}

SymDevice list of devices on a particular symmetrix system

type SymReplicationCapabilities

type SymReplicationCapabilities struct {
	SymmetrixCapability []SymmetrixCapability `json:"symmetrixCapability"`
	Successful          bool                  `json:"successful,omitempty"`
	FailMessage         string                `json:"failMessage,omitempty"`
}

SymReplicationCapabilities holds whether or not snapshot is licensed

type SymVolumeList

type SymVolumeList struct {
	Name      []string    `json:"name"`
	SymDevice []SymDevice `json:"device"`
}

SymVolumeList contains information on private volume get

type Symmetrix

type Symmetrix struct {
	SymmetrixID    string `json:"symmetrixId"`
	DeviceCount    int    `json:"device_count"`
	Ucode          string `json:"ucode"`
	Model          string `json:"model"`
	Local          bool   `json:"local"`
	AllFlash       bool   `json:"all_flash"`
	DisplayName    string `json:"display_name"`
	DiskCount      int    `json:"disk_count"`
	CacheSizeMB    int    `json:"cache_size_mb"`
	DataEncryption string `json:"data_encryption"`
}

Symmetrix : information about a Symmetrix system

type SymmetrixCapability

type SymmetrixCapability struct {
	SymmetrixID   string `json:"symmetrixId"`
	SnapVxCapable bool   `json:"snapVxCapable"`
	RdfCapable    bool   `json:"rdfCapable"`
}

SymmetrixCapability holds replication capabilities

type SymmetrixIDList

type SymmetrixIDList struct {
	SymmetrixIDs []string `json:"symmetrixId"`
}

SymmetrixIDList : contains list of symIDs

type SymmetrixPortKeyType

type SymmetrixPortKeyType struct {
	DirectorID string `json:"directorId,omitempty"`
	PortID     string `json:"portId,omitempty"`
}

SymmetrixPortKeyType contains the director id and port number

type SymmetrixPortType

type SymmetrixPortType struct {
	ISCSITarget bool     `json:"iscsi_target,omitempty"`
	IPAddresses []string `json:"ip_addresses,omitempty"`
	Identifier  string   `json:"identifier,omitempty"`
	Type        string   `json:"type,omitempty"`
}

SymmetrixPortType : type of symmetrix port

type TargetSourceSnapshotGenInfo

type TargetSourceSnapshotGenInfo struct {
	TargetDevice string `json:"targetDevice"`
	SourceDevice string `json:"sourceDevice"`
	SnapshotName string `json:"snapshotName"`
	Generation   int64  `json:"generation"`
	Secured      bool   `json:"secured"`
	Expired      bool   `json:"expired"`
	TimeToLive   int64  `json:"timeToLive"`
	Timestamp    int64  `json:"timestamp"`
	Defined      string `json:"state"`
}

TargetSourceSnapshotGenInfo contains information on target snapshot generation

type Task

type Task struct {
	ExecutionOrder int    `json:"execution_order"`
	Description    string `json:"description"`
}

Task : holds execution order with a description

type TimeFinderInfo

type TimeFinderInfo struct {
	SnapSource    bool            `json:"snapSource"`
	SnapTarget    bool            `json:"snapTarget"`
	SnapVXSrc     bool            `json:"snapVXSrc"`
	SnapVXTgt     bool            `json:"snapVXTgt"`
	Mirror        bool            `json:"mirror"`
	CloneSrc      bool            `json:"cloneSrc"`
	CloneTarget   bool            `json:"cloneTarget"`
	SnapVXSession []SnapVXSession `json:"snapVXSession"`
	CloneSession  []CloneSession  `json:"cloneSession"`
	MirrorSession []MirrorSession `json:"MirrorSession"`
}

TimeFinderInfo contains snap information for a volume

type UpdateHostAddInitiatorsParam

type UpdateHostAddInitiatorsParam struct {
	EditHostAction  *AddHostInitiators `json:"editHostActionParam"`
	ExecutionOption string             `json:"executionOption"`
}

UpdateHostAddInitiatorsParam contains action and option to update the host initiators

type UpdateHostParam

type UpdateHostParam struct {
	EditHostAction  *EditHostParams `json:"editHostActionParam"`
	ExecutionOption string          `json:"executionOption"`
}

UpdateHostParam contains action and option to update the host

type UpdateHostRemoveInititorsParam

type UpdateHostRemoveInititorsParam struct {
	EditHostAction  *RemoveHostInitiators `json:"editHostActionParam"`
	ExecutionOption string                `json:"executionOption"`
}

UpdateHostRemoveInititorsParam contains action and option to remove the host initiators

type UpdateStorageGroupPayload

type UpdateStorageGroupPayload struct {
	EditStorageGroupActionParam EditStorageGroupActionParam `json:"editStorageGroupActionParam"`
	// ExecutionOption "SYNCHRONOUS" or "ASYNCHRONOUS"
	ExecutionOption string `json:"executionOption"`
}

UpdateStorageGroupPayload : updates SG rest paylod

type UseExistingHostGroupParam

type UseExistingHostGroupParam struct {
	HostGroupID string `json:"hostGroupId"`
}

UseExistingHostGroupParam contains ID of the host group

type UseExistingHostParam

type UseExistingHostParam struct {
	HostID string `json:"hostId"`
}

UseExistingHostParam contains host id to use

type UseExistingPortGroupParam

type UseExistingPortGroupParam struct {
	PortGroupID string `json:"portGroupId,omitempty"`
}

UseExistingPortGroupParam contains the port group id

type UseExistingStorageGroupParam

type UseExistingStorageGroupParam struct {
	StorageGroupID string `json:"storageGroupId,omitempty"`
}

UseExistingStorageGroupParam : use this sg ID

type Version

type Version struct {
	Version string `json:"version"`
}

Version : /unixmax/restapi/system/version

type Volume

type Volume struct {
	VolumeID              string   `json:"volumeID"`
	Type                  string   `json:"type"`
	Emulation             string   `json:"emulation"`
	SSID                  string   `json:"ssid"`
	AllocatedPercent      int      `json:"allocated_percent"`
	CapacityGB            float64  `json:"cap_gb"`
	FloatCapacityMB       float64  `json:"cap_mb"`
	CapacityCYL           int      `json:"cap_cyl"`
	Status                string   `json:"status"`
	Reserved              bool     `json:"reserved"`
	Pinned                bool     `json:"pinned"`
	PhysicalName          string   `json:"pysical_name"`
	VolumeIdentifier      string   `json:"volume_identifier"`
	WWN                   string   `json:"wwn"`
	Encapsulated          bool     `json:"encapsulated"`
	NumberOfStorageGroups int      `json:"num_of_storage_groups"`
	NumberOfFrontEndPaths int      `json:"num_of_front_end_paths"`
	StorageGroupIDList    []string `json:"storageGroupId"`
	// Don't know how to handle symmetrixPortKey for sure
	SymmetrixPortKey []SymmetrixPortKeyType `json:"symmetrixPortKey"`
	Success          bool                   `json:"success"`
	Message          string                 `json:"message"`
	SnapSource       bool                   `json:"snapvx_source"`
	SnapTarget       bool                   `json:"snapvx_target"`
}

Volume : information about a volume

type VolumeAttributeType

type VolumeAttributeType struct {
	CapacityUnit string `json:"capacityUnit"` // CAPACITY_UNIT_{TB,GB,MB,CYL}
	VolumeSize   string `json:"volume_size"`
}

VolumeAttributeType : volume attributes

type VolumeHeader

type VolumeHeader struct {
	VolumeID              string   `json:"volumeId"`
	NameModifier          string   `json:"nameModifier"`
	FormattedName         string   `json:"formattedName"`
	PhysicalDeviceName    string   `json:"physicalDeviceName"`
	Configuration         string   `json:"configuration"`
	SRP                   string   `json:"SRP"`
	ServiceLevel          string   `json:"serviceLevel"`
	ServiceLevelBaseName  string   `json:"serviceLevelBaseName"`
	Workload              string   `json:"workload"`
	StorageGroup          []string `json:"storageGroup"`
	FastStorageGroup      string   `json:"fastStorageGroup"`
	ServiceState          string   `json:"serviceState"`
	Status                string   `json:"status"`
	CapTB                 float64  `json:"capTB"`
	CapGB                 float64  `json:"capGB"`
	CapMB                 float64  `json:"capMB"`
	BlockSize             int64    `json:"blockSize"`
	AllocatedPercent      int64    `json:"allocatedPercent"`
	EmulationType         string   `json:"emulationType"`
	SystemResource        bool     `json:"system_resource"`
	Encapsulated          bool     `json:"encapsulated"`
	BCV                   bool     `json:"BCV"`
	SplitName             string   `json:"splitName"`
	SplitSerialNumber     string   `json:"splitSerialNumber"`
	FBA                   bool     `json:"FBA"`
	CKD                   bool     `json:"CKD"`
	Mapped                bool     `json:"mapped"`
	Private               bool     `json:"private"`
	DataDev               bool     `json:"dataDev"`
	VVol                  bool     `json:"VVol"`
	MobilityID            bool     `json:"mobilityID"`
	Meta                  bool     `json:"meta"`
	MetaHead              bool     `json:"metaHead"`
	NumSymDevMaskingViews int64    `json:"numSymDevMaskingViews"`
	NumStorageGroups      int64    `json:"numStorageGroups"`
	NumDGs                int64    `json:"numDGs"`
	NumCGs                int64    `json:"numCGs"`
	Lun                   string   `json:"lun"`
	MetaConfigNumber      int64    `json:"metaConfigNumber"`
	WWN                   string   `json:"wwn"`
	HasEffectiveWWN       bool     `json:"hasEffectiveWWN"`
	EffectiveWWN          string   `json:"effectiveWWN"`
	PersistentAllocation  string   `json:"persistentAllocation"`
	CUImageNum            string   `json:"CUImageNum"`
	CUImageStatus         string   `json:"CUImageStatus"`
	SSID                  string   `json:"SSID"`
	CUImageBaseAddress    string   `json:"CUImageBaseAddress"`
	PAVMode               string   `json:"PAVMode"`
	FEDirPorts            []string `json:"FEDirPorts"`
	CompressionEnabled    bool     `json:"compressionEnabled"`
	CompressionRatio      string   `json:"compressionRatio"`
}

VolumeHeader holds private volume header information

type VolumeIDList

type VolumeIDList struct {
	VolumeIDs string `json:"volumeId"`
}

VolumeIDList : list of volume ids

type VolumeIdentifierType

type VolumeIdentifierType struct {
	VolumeIdentifierChoice string `json:"volumeIdentifierChoice,omitempty"`
	IdentifierName         string `json:"identifier_name,omitempty"`
	AppendNumber           string `json:"append_number,omitempty"`
}

VolumeIdentifierType : volume identifier

type VolumeIterator

type VolumeIterator struct {
	ResultList VolumeResultList `json:"resultList"`
	ID         string           `json:"id"`
	Count      int              `json:"count"`
	// What units is ExpirationTime in?
	ExpirationTime int64 `json:"expirationTime"`
	MaxPageSize    int   `json:"maxPageSize"`
}

VolumeIterator : holds the iterator of resultant volume list

type VolumeList

type VolumeList struct {
	Name string `json:"name"`
}

VolumeList contains list of device names

type VolumeResultList

type VolumeResultList struct {
	VolumeList []VolumeIDList `json:"result"`
	From       int            `json:"from"`
	To         int            `json:"to"`
}

VolumeResultList : volume list resulted

type VolumeResultPrivate

type VolumeResultPrivate struct {
	VolumeHeader   VolumeHeader   `json:"volumeHeader"`
	TimeFinderInfo TimeFinderInfo `json:"timeFinderInfo"`
}

VolumeResultPrivate holds private volume information

type VolumeSnapshot

type VolumeSnapshot struct {
	DeviceName           string                 `json:"deviceName"`
	SnapshotName         string                 `json:"snapshotName"`
	VolumeSnapshotSource []VolumeSnapshotSource `json:"snapshotSrc"`
	VolumeSnapshotLink   []VolumeSnapshotLink   `json:"snapshotLnk,omitempty"`
}

VolumeSnapshot contains list of volume snapshots

type VolumeSnapshotGeneration

type VolumeSnapshotGeneration struct {
	DeviceName           string               `json:"deviceName"`
	SnapshotName         string               `json:"snapshotName"`
	Generation           int64                `json:"generation"`
	VolumeSnapshotSource VolumeSnapshotSource `json:"snapshotSrc"`
	VolumeSnapshotLink   []VolumeSnapshotLink `json:"snapshotLnk,omitempty"`
}

VolumeSnapshotGeneration contains information on generation of a snapshot

type VolumeSnapshotGenerations

type VolumeSnapshotGenerations struct {
	DeviceName           string                 `json:"deviceName"`
	Generation           []int64                `json:"generation"`
	SnapshotName         string                 `json:"snapshotName"`
	VolumeSnapshotSource []VolumeSnapshotSource `json:"snapshotSrc"`
	VolumeSnapshotLink   []VolumeSnapshotLink   `json:"snapshotLnk,omitempty"`
}

VolumeSnapshotGenerations contains list of volume snapshot generations

type VolumeSnapshotLink struct {
	TargetDevice     string `json:"targetDevice"`
	Timestamp        string `json:"timestamp"`
	State            string `json:"state"`
	TrackSize        int64  `json:"trackSize"`
	Tracks           int64  `json:"tracks"`
	PercentageCopied int64  `json:"percentageCopied"`
	Linked           bool   `json:"linked"`
	Restored         bool   `json:"restored"`
	Defined          bool   `json:"defined"`
	Copy             bool   `json:"copy"`
	Destage          bool   `json:"destage"`
	Modified         bool   `json:"modified"`
}

VolumeSnapshotLink contains information about linked snapshots

type VolumeSnapshotSource

type VolumeSnapshotSource struct {
	SnapshotName         string          `json:"snapshotName"`
	Generation           int64           `json:"generation"`
	TimeStamp            string          `json:"timestamp"`
	State                string          `json:"state"`
	ProtectionExpireTime int64           `json:"protectionExpireTime"`
	GCM                  bool            `json:"gcm"`
	ICDP                 bool            `json:"icdp"`
	Secured              bool            `json:"secured"`
	IsRestored           bool            `json:"isRestored"`
	TTL                  int64           `json:"ttl"`
	Expired              bool            `json:"expired"`
	LinkedVolumes        []LinkedVolumes `json:"linkedDevices"`
}

VolumeSnapshotSource holds information on volume snapshot source

Jump to

Keyboard shortcuts

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