v100

package
v2.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2022 License: Apache-2.0 Imports: 1 Imported by: 6

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"`
}

AddPortParam ...

type AddSpecificVolumeParam

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

AddSpecificVolumeParam holds volume ids

type AddTagsParam

type AddTagsParam struct {
	TagName []string `json:"tag_name,omitempty"`
}

AddTagsParam holds array of tags to be added

type AddVolumeParam

type AddVolumeParam struct {
	VolumeAttributes      []VolumeAttributeType `json:"volumeAttributes,omitempty"`
	CreateNewVolumes      bool                  `json:"create_new_volumes"`
	Emulation             string                `json:"emulation,omitempty"`
	EnableMobilityID      bool                  `json:"enable_mobility_id"`
	VolumeIdentifier      *VolumeIdentifierType `json:"volumeIdentifier,omitempty"`
	RemoteSymmetrixSGInfo RemoteSymmSGInfoParam `json:"remoteSymmSGInfoParam"`
}

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 CkdCap

type CkdCap struct {
	Provisioned *provisioned `json:"provisioned"`
}

CkdCap CKD storage pool capacity

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"`
	NewHosts        []CreateHostParam `json:"new_hosts"`
}

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"`
	PortGroupProtocol string    `json:"port_group_protocol,omitempty"`
}

CreatePortGroupParams - Input params for creating port groups

type CreateRDFPair

type CreateRDFPair struct {
	RdfMode                 string                   `json:"rdfMode"`
	RdfType                 string                   `json:"rdfType"`
	InvalidateR1            bool                     `json:"invalidateR1"`
	InvalidateR2            bool                     `json:"invalidateR2"`
	Establish               bool                     `json:"establish"`
	Restore                 bool                     `json:"restore"`
	Format                  bool                     `json:"format"`
	Exempt                  bool                     `json:"exempt"`
	NoWD                    bool                     `json:"noWD"`
	Remote                  bool                     `json:"remote"`
	Bias                    bool                     `json:"bias"`
	RecoverPoint            bool                     `json:"recoverPoint,omitempty"`
	LocalDeviceAutoCriteria *LocalDeviceAutoCriteria `json:"localDeviceAutoCriteriaParam"`
	LocalDeviceListCriteria *LocalDeviceListCriteria `json:"localDeviceListCriteriaParam"`
	ExecutionOption         string                   `json:"executionOption"`
}

CreateRDFPair holds SG create replica pair parameters

type CreateSGSRDF

type CreateSGSRDF struct {
	RemoteSymmID           string `json:"remoteSymmId"`
	ReplicationMode        string `json:"replicationMode"`
	RdfgNumber             int    `json:"rdfgNumber"`
	ForceNewRdfGroup       string `json:"forceNewRdfGroup"`
	Establish              bool   `json:"establish"`
	MetroBias              bool   `json:"metroBias"`
	RemoteStorageGroupName string `json:"remoteStorageGroupName"`
	ThinPool               string `json:"thinPool"`
	FastPolicy             string `json:"fastPolicy"`
	RemoteSLO              string `json:"remoteSLO"`
	NoCompression          bool   `json:"noCompression"`
	ExecutionOption        string `json:"executionOption"`
}

CreateSGSRDF contains parameters to create storage group replication {in u4p a.k.a "storageGroupSrdfCreate"}

type CreateStorageGroupParam

type CreateStorageGroupParam struct {
	ExecutionOption           string                      `json:"executionOption,omitempty"`
	StorageGroupID            string                      `json:"storageGroupId"`
	SnapshotPolicies          []string                    `json:"snapshot_policies"`
	SRPID                     string                      `json:"srpId,omitempty"`
	SLOBasedStorageGroupParam []SLOBasedStorageGroupParam `json:"sloBasedStorageGroupParam,omitempty"`
	Emulation                 string                      `json:"emulation,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 {
	ExecutionOption          string                    `json:"executionOption"`
	EditPortGroupActionParam *EditPortGroupActionParam `json:"editPortGroupActionParam"`
}

EditPortGroup ...

type EditPortGroupActionParam

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

EditPortGroupActionParam ...

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 {
	EnableMobilityIDParam       *EnableMobilityIDParam       `json:"enable_mobility_id_param"`
	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 EnableMobilityIDParam

type EnableMobilityIDParam struct {
	EnableMobilityID bool `json:"enable_mobility_id"`
}

EnableMobilityIDParam has mobility ID for a volume

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 Establish

type Establish struct {
	Force     bool `json:"force"`
	SymForce  bool `json:"symForce"`
	Star      bool `json:"star"`
	Hop2      bool `json:"hop2"`
	Bypass    bool `json:"bypass"`
	Full      bool `json:"full"`
	MetroBias bool `json:"metroBias"`
}

Establish action

type ExpandStorageGroupParam

type ExpandStorageGroupParam struct {
	AddExistingStorageGroupParam *AddExistingStorageGroupParam `json:"addExistingStorageGroupParam,omitempty"`
	AddNewStorageGroupParam      *AddNewStorageGroupParam      `json:"addNewStorageGroupParam,omitempty"`
	ExpandVolumesParams          *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 Failback

type Failback struct {
	Force        bool `json:"force"`
	SymForce     bool `json:"symForce"`
	Star         bool `json:"star"`
	Hop2         bool `json:"hop2"`
	Bypass       bool `json:"bypass"`
	Remote       bool `json:"remote"`
	RecoverPoint bool `json:"recoverPoint,omitempty"`
}

Failback action

type Failover

type Failover struct {
	Force     bool `json:"force"`
	SymForce  bool `json:"symForce"`
	Star      bool `json:"star"`
	Hop2      bool `json:"hop2"`
	Bypass    bool `json:"bypass"`
	Immediate bool `json:"immediate"`
	Establish bool `json:"establish"`
	Restore   bool `json:"restore"`
	Remote    bool `json:"remote"`
}

Failover action

type FbaCap

type FbaCap struct {
	Provisioned *provisioned `json:"provisioned"`
}

FbaCap FBA storage pool capacity

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"`
	PowerPathHosts     []string `json:"powerpathhosts"`
	NumPowerPathHosts  int64    `json:"num_of_powerpath_hosts"`
	BWLimit            int      `json:"bw_limit"`
}

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           *CreateHostParam           `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"`
	Alias                string    `json:"alias"`
	InitiatorType        string    `json:"type"`
	FCID                 string    `json:"fcid,omitempty"`
	FCIDValue            string    `json:"fcid_value"`
	FCIDLockdown         string    `json:"fcid_lockdown"`
	IPAddress            string    `json:"ip_address,omitempty"`
	Host                 string    `json:"host,omitempty"`
	HostGroupIDs         []string  `json:"hostGroup,omitempty"`
	LoggedIn             bool      `json:"logged_in"`
	OnFabric             bool      `json:"on_fabric"`
	FabricName           string    `json:"fabric_name"`
	PortFlagsOverride    bool      `json:"port_flags_override"`
	EnabledFlags         string    `json:"enabled_flags"`
	DisabledFlags        string    `json:"disabled_flags"`
	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"`
	MaskingView          []string  `json:"maskingview"`
	PowerPathHosts       []string  `json:"powerpathhosts"`
	NumberPowerPathHosts int64     `json:"num_of_powerpath_hosts"`
	HostID               string    `json:"host_id"`
}

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"`
	SymmetrixID                  string `json:"symmetrixId"`
	Status                       string `json:"status"`
	Username                     string `json:"username"`
	LastModifiedDate             string `json:"last_modified_date"`
	LastModifiedDateMilliseconds int64  `json:"last_modified_date_milliseconds"`
	ScheduledDate                string `json:"scheduled_date"`
	ScheduledDateMilliseconds    int64  `json:"scheduled_date_milliseconds"`
	CompletedDate                string `json:"completed_date"`
	CompletedDateMilliseconds    int64  `json:"completed_date_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:"uris"`
}

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 LocalDeviceAutoCriteria

type LocalDeviceAutoCriteria struct {
	PairCount          int    `json:"pairCount"`
	Emulation          string `json:"emulation"`
	Capacity           int64  `json:"capacity"`
	CapacityUnit       string `json:"capacityUnit"`
	LocalThinPoolName  string `json:"localThinPoolName"`
	RemoteThinPoolName string `json:"remoteThinPoolName"`
}

LocalDeviceAutoCriteria holds parameters for auto selecting local device parameters

type LocalDeviceListCriteria

type LocalDeviceListCriteria struct {
	LocalDeviceList    []string `json:"localDeviceList"`
	RemoteThinPoolName string   `json:"remoteThinPoolName"`
}

LocalDeviceListCriteria holds parameters for local device lis

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 ModifySGRDFGroup

type ModifySGRDFGroup struct {
	Action          string     `json:"action"`
	Establish       *Establish `json:"establish,omitempty"`
	Suspend         *Suspend   `json:"suspend,omitempty"`
	Resume          *Resume    `json:"resume,omitempty"`
	Failback        *Failback  `json:"failback,omitempty"`
	Failover        *Failover  `json:"failover,omitempty"`
	Swap            *Swap      `json:"swap,omitempty"`
	ExecutionOption string     `json:"executionOption"`
}

ModifySGRDFGroup holds parameters for rdf storage group updates

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 NextFreeRDFGroup

type NextFreeRDFGroup struct {
	LocalRdfGroup  []int `json:"rdfg_number"`
	RemoteRdfGroup []int `json:"remote_rdfg_number"`
}

NextFreeRDFGroup - Free RDFg contains information about the Next free RDFg in R1 and R2

type Port

type Port struct {
	ExecutionOption string            `json:"executionOption,omitempty"`
	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"`
	TestID             string    `json:"testId"`
	PortGroupProtocol  string    `json:"port_group_protocol"`
}

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 {
	ExecutionOption  string    `json:"executionOption,omitempty"`
	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 RDFDevicePair

type RDFDevicePair struct {
	LocalSymmID          string `json:"localSymmetrixId"`
	RemoteSymmID         string `json:"remoteSymmetrixId"`
	LocalRdfGroupNumber  int    `json:"localRdfGroupNumber"`
	RemoteRdfGroupNumber int    `json:"remoteRdfGroupNumber"`
	LocalVolumeName      string `json:"localVolumeName"`
	RemoteVolumeName     string `json:"remoteVolumeName"`
	LocalVolumeState     string `json:"localVolumeState"`
	RemoteVolumeState    string `json:"remoteVolumeState"`
	VolumeConfig         string `json:"volumeConfig"`
	RdfMode              string `json:"rdfMode"`
	RdfpairState         string `json:"rdfpairState"`
	LargerRdfSide        string `json:"largerRdfSide"`
	LocalWWNExternal     string `json:"local_wwn_external"`
	RemoteWWNExternal    string `json:"remote_wwn_external"`
}

RDFDevicePair holds RDF volume pair information

type RDFDevicePairList

type RDFDevicePairList struct {
	RDFDevicePair []RDFDevicePair `json:"devicePair"`
}

RDFDevicePairList holds list of newly created RDF volume pair information

type RDFDirDetails

type RDFDirDetails struct {
	SymID           string `json:"symmetrixID"`
	DirNum          int    `json:"directorNumber"`
	DirID           string `json:"directorId"`
	DirOnline       string `json:"online"`
	DirProtocolFC   bool   `json:"fiber"`
	DirProtocolGigE bool   `json:"gige"`
	DirHWCompress   bool   `json:"hwCompressionSupported"`
}

RDFDirDetails gets details of a given RDF Director

type RDFDirList

type RDFDirList struct {
	RdfDirs []string `json:"directorID"`
}

RDFDirList gets a List of RDF Directors

type RDFGroup

type RDFGroup struct {
	RdfgNumber               int      `json:"rdfgNumber"`
	Label                    string   `json:"label"`
	RemoteRdfgNumber         int      `json:"remoteRdfgNumber"`
	RemoteSymmetrix          string   `json:"remoteSymmetrix"`
	NumDevices               int      `json:"numDevices"`
	TotalDeviceCapacity      float64  `json:"totalDeviceCapacity"`
	LocalPorts               []string `json:"localPorts"`
	RemotePorts              []string `json:"remotePorts"`
	Modes                    []string `json:"modes"`
	Type                     string   `json:"type"`
	Metro                    bool     `json:"metro"`
	Async                    bool     `json:"async"`
	Witness                  bool     `json:"witness"`
	WitnessName              string   `json:"witnessName"`
	WitnessProtectedPhysical bool     `json:"witnessProtectedPhysical"`
	WitnessProtectedVirtual  bool     `json:"witnessProtectedVirtual"`
	WitnessConfigured        bool     `json:"witnessConfigured"`
	WitnessEffective         bool     `json:"witnessEffective"`
	BiasConfigured           bool     `json:"biasConfigured"`
	BiasEffective            bool     `json:"biasEffective"`
	WitnessDegraded          bool     `json:"witnessDegraded"`
	LocalOnlinePorts         []string `json:"localOnlinePorts"`
	RemoteOnlinePorts        []string `json:"remoteOnlinePorts"`
	DevicePolarity           string   `json:"device_polarity"`
	Offline                  bool     `json:"offline"`
}

RDFGroup contains information about an RDF group

type RDFGroupCreate

type RDFGroupCreate struct {
	Label        string           `json:"label"`
	LocalRDFNum  int              `json:"local_rdfg_number"`
	LocalPorts   []RDFPortDetails `json:"local_ports"`
	RemoteRDFNum int              `json:"remote_rdfg_number"`
	RemotePorts  []RDFPortDetails `json:"remote_ports"`
}

RDFGroupCreate RDF Group Create Action

type RDFGroupID

type RDFGroupID struct {
	RDFGroupNumber int    `json:"rdf_group_number"`
	Label          string `json:"label"`
}

RDFGroupID contains the group number and label

type RDFGroupIDL

type RDFGroupIDL struct {
	RDFGNumber  int    `json:"rdfgNumber"`
	Label       string `json:"label"`
	RemoteSymID string `json:"remote_symmetrix_id"`
	GroupType   string `json:"group_type"`
}

RDFGroupIDL contains the RDF group when we list RDF groups

type RDFGroupList

type RDFGroupList struct {
	RDFGroupCount int           `json:"rdfg_count"`
	RDFGroupIDs   []RDFGroupIDL `json:"rdfGroupID"`
}

RDFGroupList has list of RDF group

type RDFPortDetails

type RDFPortDetails struct {
	SymmID     string `json:"symmetrixID"`
	DirNum     int    `json:"directorNumber"`
	DirID      string `json:"directorId"`
	PortNum    int    `json:"portNumber"`
	PortOnline bool   `json:"online"`
	PortWWN    string `json:"wwn"`
}

RDFPortDetails has RDF ports details

type RDFPortList

type RDFPortList struct {
	RdfPorts []string `json:"portNumber"`
}

RDFPortList gets a List of RDF Ports

type RDFStorageGroup

type RDFStorageGroup struct {
	Name                        string                  `json:"name"`
	SymmetrixID                 string                  `json:"symmetrixId"`
	ParentName                  string                  `json:"parentName"`
	ChildNames                  []string                `json:"childNames"`
	NumDevicesNonGk             int                     `json:"numDevicesNonGk"`
	CapacityGB                  float64                 `json:"capacityGB"`
	NumSnapVXSnapshots          int                     `json:"numSnapVXSnapshots"`
	SnapVXSnapshots             []string                `json:"snapVXSnapshots"`
	NumCloudSnapshots           int                     `json:"num_cloud_snapshots"`
	Rdf                         bool                    `json:"rdf"`
	IsLinkTarget                bool                    `json:"isLinkTarget"`
	SnapshotPolicies            []string                `json:"snapshot_policies"`
	RDFGroups                   []int                   `json:"rdf_groups"`
	NumCloneTargetStorageGroups int                     `json:"num_clone_target_storage_groups"`
	RemoteStorageGroups         []RemoteRDFStorageGroup `json:"remote_storage_groups"`
}

RDFStorageGroup contains information about protected SG {in u4p a.k.a "StorageGroup"}

type RemoteRDFPortDetails

type RemoteRDFPortDetails struct {
	RemotePorts []RDFPortDetails `json:"remotePort"`
}

RemoteRDFPortDetails gets a list of Remote Directors:Port that are zoned to a given Local RDF Port.

type RemoteRDFStorageGroup

type RemoteRDFStorageGroup struct {
	SymmetrixID      string `json:"symmetrix_id"`
	StorageGroupID   string `json:"storage_group_id"`
	StorageGroupUUID string `json:"storage_group_uuid"`
}

RemoteRDFStorageGroup holds information about remote storage groups

type RemoteSymmSGInfoParam

type RemoteSymmSGInfoParam struct {
	RemoteSymmetrix1ID  string   `json:"remote_symmetrix_1_id,omitempty"`
	RemoteSymmetrix1SGs []string `json:"remote_symmetrix_1_sgs,omitempty"`
	RemoteSymmetrix2ID  string   `json:"remote_symmetrix_2_id,omitempty"`
	RemoteSymmetrix2SGs []string `json:"remote_symmetrix_2_sgs,omitempty"`
	Force               bool     `json:"force,omitempty"`
}

RemoteSymmSGInfoParam have info abput remote symmetrix Id's and storage groups

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"`
}

RemovePortParam ...

type RemoveStorageGroupParam

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

RemoveStorageGroupParam holds parameters to remove an SG

type RemoveTagsParam

type RemoveTagsParam struct {
	TagName []string `json:"tag_name,omitempty"`
}

RemoveTagsParam holds array of tags to be removed

type RemoveVolumeParam

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

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 RenamePortGroupParam

type RenamePortGroupParam struct {
	NewPortGroupName string `json:"new_port_group_name"`
}

RenamePortGroupParam ...

type RenameStorageGroupParam

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

RenameStorageGroupParam holds new name of a storage group

type Resume

type Resume struct {
	Force        bool `json:"force"`
	SymForce     bool `json:"symForce"`
	Star         bool `json:"star"`
	Hop2         bool `json:"hop2"`
	Bypass       bool `json:"bypass"`
	Remote       bool `json:"remote"`
	RecoverPoint bool `json:"recoverPoint,omitempty"`
}

Resume action

type SGRDFGList

type SGRDFGList struct {
	RDFGList []string `json:"rdfgs"`
}

SGRDFGList contains list of all RDF enabled storage groups {in u4p a.k.a "storageGroupRDFg"}

type SGRDFInfo

type SGRDFInfo struct {
	SymmetrixID               string   `json:"symmetrixId"`
	StorageGroupName          string   `json:"storageGroupName"`
	RdfGroupNumber            int      `json:"rdfGroupNumber"`
	VolumeRdfTypes            []string `json:"volumeRdfTypes"`
	States                    []string `json:"states"`
	Modes                     []string `json:"modes"`
	Hop2Rdfgs                 []int    `json:"hop2Rdfgs"`
	Hop2States                []string `json:"hop2States"`
	Hop2Modes                 []string `json:"hop2Modes"`
	LargerRdfSides            []string `json:"largerRdfSides"`
	TotalTracks               int      `json:"totalTracks"`
	CapacityMB                float64  `json:"capacity_mb"`
	LocalR1InvalidTracksHop1  int      `json:"localR1InvalidTracksHop1"`
	LocalR2InvalidTracksHop1  int      `json:"localR2InvalidTracksHop1"`
	RemoteR1InvalidTracksHop1 int      `json:"remoteR1InvalidTracksHop1"`
	RemoteR2InvalidTracksHop1 int      `json:"remoteR2InvalidTracksHop1"`
	SrcR1InvalidTracksHop2    int      `json:"srcR1InvalidTracksHop2"`
	SrcR2InvalidTracksHop2    int      `json:"srcR2InvalidTracksHop2"`
	TgtR1InvalidTracksHop2    int      `json:"tgtR1InvalidTracksHop2"`
	TgtR2InvalidTracksHop2    int      `json:"tgtR2InvalidTracksHop2"`
	Domino                    []string `json:"domino"`
	ConsistencyProtection     string   `json:"consistency_protection"`
	ConsistencyProtectionHop2 string   `json:"consistency_protection_hop2"`
}

SGRDFInfo contains parameters to hold srdf information of a storage group {in u4p a.k.a "storageGroupRDFg"}

type SLOBasedStorageGroupParam

type SLOBasedStorageGroupParam struct {
	CustomCascadedStorageGroupID                   string                `json:"custom_cascaded_storageGroupId"`
	SnapshotPolicies                               []string              `json:"snapshot_policies"`
	SLOID                                          string                `json:"sloId,omitempty"`
	WorkloadSelection                              string                `json:"workloadSelection,omitempty"`
	VolumeAttributes                               []VolumeAttributeType `json:"volumeAttributes,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"`
	EnableMobilityID                               bool                  `json:"enable_mobility_id"`
	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"`
	EffectiveUsedCapacityPercent int     `json:"effective_used_capacity_percent"`
}

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"`
	ServiceLevel          string                `json:"service_level"`
	BaseSLOName           string                `json:"base_slo_name"`
	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"`
	NumOfSnapshotPolicies int                   `json:"num_of_snapshot_policies"`
	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"`
	SnapshotPolicies      []string              `json:"snapshot_policies"`
	HostIOLimit           *SetHostIOLimitsParam `json:"hostIOLimit"`
	Compression           bool                  `json:"compression"`
	CompressionRatio      string                `json:"compressionRatio"`
	CompressionRatioToOne float64               `json:"compression_ratio_to_one"`
	VPSavedPercent        float64               `json:"vp_saved_percent"`
	Tags                  string                `json:"tags"`
	UUID                  string                `json:"uuid"`
	UnreducibleDataGB     float64               `json:"unreducible_data_gb"`
}

StorageGroup holds all the fields of an SG

type StorageGroupIDList

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

StorageGroupIDList : list of sg's

type StorageGroupName

type StorageGroupName struct {
	StorageGroupName       string `json:"storage_group_name"`
	ParentStorageGroupName string `json:"parent_storage_group_name"`
}

StorageGroupName holds group name in which volume exists

type StorageGroupRDFG

type StorageGroupRDFG struct {
	SymmetrixID      string   `json:"symmetrixId"`
	StorageGroupName string   `json:"storageGroupName"`
	RdfGroupNumber   int      `json:"rdfGroupNumber"`
	VolumeRdfTypes   []string `json:"volumeRdfTypes"`
	States           []string `json:"states"`
	Modes            []string `json:"modes"`
	LargerRdfSides   []string `json:"largerRdfSides"`
}

StorageGroupRDFG holds information about protected storage group

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"`
	ReliabilityState     string         `json:"reliability_state"`
	DiskGroupIDs         []string       `json:"diskGroupId"`
	ExternalCap          float64        `json:"external_capacity_gb"`
	SrpCap               *SrpCap        `json:"srp_capacity,omitempty"`
	FbaCap               *FbaCap        `json:"fba_srp_capacity,omitempty"`
	CkdCap               *CkdCap        `json:"ckd_srp_capacity,omitempty"`
	SrpEfficiency        *SrpEfficiency `json:"srp_efficiency"`
	ServiceLevels        []string       `json:"service_levels"`
}

StoragePool : information about a storage pool

type StoragePoolList

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

StoragePoolList : list of storage pools in the system

type Suspend

type Suspend struct {
	Force      bool `json:"force"`
	SymForce   bool `json:"symForce"`
	Star       bool `json:"star"`
	Hop2       bool `json:"hop2"`
	Bypass     bool `json:"bypass"`
	Immediate  bool `json:"immediate"`
	ConsExempt bool `json:"consExempt"`
	MetroBias  bool `json:"metroBias"`
}

Suspend action

type Swap

type Swap struct {
	Force     bool `json:"force"`
	SymForce  bool `json:"symForce"`
	Star      bool `json:"star"`
	Hop2      bool `json:"hop2"`
	Bypass    bool `json:"bypass"`
	HalfSwap  bool `json:"halfSwap"`
	RefreshR1 bool `json:"refreshR1"`
	RefreshR2 bool `json:"refreshR2"`
}

Swap action

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"`
	DellServiceTag       string                `json:"dell_service_tag"`
	DeviceCount          int                   `json:"device_count"`
	Ucode                string                `json:"ucode"`
	UcodeDate            string                `json:"ucode_date"`
	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"`
	FEDirCount           int                   `json:"fe_dir_count"`
	BEDirCount           int                   `json:"be_dir_count"`
	RDFDirCount          int                   `json:"rdf_dir_count"`
	MaxHyperPerDisk      int                   `json:"max_hyper_per_disk"`
	VCMState             string                `json:"vcm_state"`
	VCMDBState           string                `json:"vcmdb_state"`
	ReliabilityState     string                `json:"reliability_state"`
	UcodeRegisteredBuild int                   `json:"ucode_registered_build"`
	SystemSizedProperty  []SystemSizedProperty `json:"system_sized_property"`
}

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 {
	SymmetrixPortKey PortKey  `json:"symmetrixPortKey"`
	PortStatus       string   `json:"port_status"`
	DirectorStatus   string   `json:"director_status"`
	Type             string   `json:"type,omitempty"`
	NumberOfCores    string   `json:"number_of_cores"`
	Identifier       string   `json:"identifier,omitempty"`
	PortGroups       []string `json:"portgroup"`
	MaskingViews     []string `json:"maskingview"`
	PortInterface    string   `json:"port_interface"`
	ISCSITarget      bool     `json:"iscsi_target,omitempty"`
	IPAddresses      []string `json:"ip_addresses,omitempty"`
}

SymmetrixPortType : type of symmetrix port

type SystemSizedProperty

type SystemSizedProperty struct {
	SRPName                    string `json:"srp_name"`
	SizedFBADataReductionRatio string `json:"sized_fba_data_reduction_ratio"`
	SizedCKDDataReductionRatio string `json:"sized_ckd_data_reduction_ratio"`
	SizedFBACapacityTB         int    `json:"sized_fba_capacity_tb"`
	SizedCKDCapacityTB         int    `json:"sized_ckd_capacity_tb"`
	SizedFBAReduciblePercent   int    `json:"sized_fba_reducible_percent"`
	SizedCKDReduciblePercent   int    `json:"sized_ckd_reducible_percent"`
}

SystemSizedProperty contains information about size data

type TagManagementParam

type TagManagementParam struct {
	RemoveTagsParam *RemoveTagsParam `json:"removeTagsParam,omitempty"`
	AddTagsParam    *AddTagsParam    `json:"addTagsParam,omitempty"`
}

TagManagementParam holds parameters to remove or add tags

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:"physical_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"`
	RDFGroupIDList        []RDFGroupID           `json:"rdfGroupId"`
	SymmetrixPortKey      []SymmetrixPortKeyType `json:"symmetrixPortKey"`
	SnapSource            bool                   `json:"snapvx_source"`
	SnapTarget            bool                   `json:"snapvx_target"`
	CUImageBaseAddress    string                 `json:"cu_image_base_address"`
	HasEffectiveWWN       bool                   `json:"has_effective_wwn"`
	EffectiveWWN          string                 `json:"effective_wwn"`
	EncapsulatedWWN       string                 `json:"encapsulated_wwn"`
	OracleInstanceName    string                 `json:"oracle_instance_name"`
	MobilityIDEnabled     bool                   `json:"mobility_id_enabled"`
	StorageGroups         []StorageGroupName     `json:"storage_groups"`
	UnreducibleDataGB     float64                `json:"unreducible_data_gb"`
	NGUID                 string                 `json:"nguid"`
}

Volume : information about a volume

type VolumeAttributeType

type VolumeAttributeType struct {
	NumberOfVolumes  int                   `json:"num_of_vols,omitempty"`
	VolumeIdentifier *VolumeIdentifierType `json:"volumeIdentifier,omitempty"`
	CapacityUnit     string                `json:"capacityUnit"` // CAPACITY_UNIT_{TB,GB,MB,CYL}
	VolumeSize       string                `json:"volume_size"`
}

VolumeAttributeType : volume attributes for 9.1

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"`
	ExpirationTime int64            `json:"expirationTime"` // What units is ExpirationTime in?
	MaxPageSize    int              `json:"maxPageSize"`
	WarningMessage string           `json:"warningMessage"`
}

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"`
	LinkSource       string `json:"linkSourceName"`
}

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