ontap

package
v1.0.20 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2024 License: MIT Imports: 16 Imported by: 1

Documentation

Index

Constants

View Source
const (
	DO_RETRY_ATTEMPTS = 10
	DO_RETRY_TIMEOUT  = 15
)
View Source
const (
	ERROR_ENTRY_DOES_NOT_EXIST  = "4"
	ERROR_NO_SUCH_FILE_OR_DIR   = "6684674"
	ERROR_LUN_EXIST             = "7018919"
	ERROR_TEMPORARY_UNAVAILABLE = "6691630"
)
View Source
const (
	LUN_SIZE_BASE        = 1048576
	LUN_SIZE_OVERHEAD    = 1048576
	LUN_RESIZE_STEP      = 1048576 * 128
	LUN_STREAM_BYTES_MAX = 1048576
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AdDomain

type AdDomain struct {
	OrganizationalUnit string `json:"organizational_unit,omitempty"`
	Fqdn               string `json:"fqdn,omitempty"`
	Password           string `json:"password,omitempty"`
	User               string `json:"user,omitempty"`
}

type Aggregate added in v1.0.8

type Aggregate struct {
	Resource
	AvailableSize int64  `json:"available_size"`
	Type          string `json:"type"`
	State         string `json:"state"`
	SnaplockType  string `json:"snaplock_type,omitempty"`
}

type Autosize

type Autosize struct {
	GrowThreshold   int    `json:"grow_threshold"`
	Maximum         int    `json:"maximum"`
	Minimum         int    `json:"minimum"`
	Mode            string `json:"mode,omitempty"`
	ShrinkThreshold int    `json:"shrink_threshold"`
}

type BaseResponse

type BaseResponse struct {
	NumRecords int `json:"num_records"`
	Links      struct {
		Self struct {
			Href string `json:"href,omitempty"`
		} `json:"self,omitempty"`
		Next struct {
			Href string `json:"href,omitempty"`
		} `json:"next,omitempty"`
	} `json:"_links,omitempty"`
}

func (*BaseResponse) GetNextRef

func (res *BaseResponse) GetNextRef() string

func (*BaseResponse) IsPaginate

func (res *BaseResponse) IsPaginate() bool

type Cifs

type Cifs struct {
	Resource
	Name     string   `json:"name"`
	AdDomain AdDomain `json:"ad_domain,omitempty"`
	Enabled  bool     `json:"enabled"`
}

type Client

type Client struct {
	BaseURL   *url.URL
	UserAgent string

	ResponseTimeout time.Duration
	// contains filtered or unexported fields
}

func NewClient

func NewClient(endpoint string, options *ClientOptions) *Client

func (*Client) Do

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

func (*Client) ExportPolicyCreate

func (c *Client) ExportPolicyCreate(expPolicy *ExportPolicy, parameters []string) (res *RestResponse, err error)

func (*Client) ExportPolicyDelete

func (c *Client) ExportPolicyDelete(href string) (res *RestResponse, err error)

func (*Client) ExportPolicyGet

func (c *Client) ExportPolicyGet(href string, parameters []string) (*ExportPolicy, *RestResponse, error)

func (*Client) ExportPolicyGetIter

func (c *Client) ExportPolicyGetIter(parameters []string) (expPolicies []ExportPolicy, res *RestResponse, err error)

func (*Client) ExportPolicyModify

func (c *Client) ExportPolicyModify(href string, expPolicy *ExportPolicy) (res *RestResponse, err error)

func (*Client) ExportPolicyRuleCreate

func (c *Client) ExportPolicyRuleCreate(href string, rule *ExportPolicyRule) (res *RestResponse, err error)

func (*Client) ExportPolicyRuleDelete

func (c *Client) ExportPolicyRuleDelete(href string) (res *RestResponse, err error)

func (*Client) ExportPolicyRuleGetIter

func (c *Client) ExportPolicyRuleGetIter(href string, parameters []string) (rules []ExportPolicyRule, res *RestResponse, err error)

func (*Client) ExportPolicyRuleModify

func (c *Client) ExportPolicyRuleModify(href string, rule *ExportPolicyRule) (res *RestResponse, err error)

func (*Client) FileCreate

func (c *Client) FileCreate(volumeUuid string, filePath string, fileInfo *FileInfo) (fileResponse *FileInfoResponse, res *RestResponse, err error)

func (*Client) FileDelete

func (c *Client) FileDelete(volumeUuid string, filePath string, parameters []string) (res *RestResponse, err error)

func (*Client) FileGetIter

func (c *Client) FileGetIter(volumeUuid string, path string, parameters []string) (files []FileInfo, res *RestResponse, err error)

func (*Client) FileRead

func (c *Client) FileRead(volumeUuid string, filePath string, contentOffset int, contentLength int) (content []byte, res *RestResponse, err error)

func (*Client) FileWrite

func (c *Client) FileWrite(method string, volumeUuid string, filePath string, parameters []string, body []byte) (bytesWritten int, res *RestResponse, err error)

func (*Client) IgroupCreate

func (c *Client) IgroupCreate(igroup *Igroup, parameters []string) (res *RestResponse, err error)

func (*Client) IgroupDelete

func (c *Client) IgroupDelete(href string) (res *RestResponse, err error)

func (*Client) IgroupGet

func (c *Client) IgroupGet(href string, parameters []string) (*Igroup, *RestResponse, error)

func (*Client) IgroupGetIter

func (c *Client) IgroupGetIter(parameters []string) (igroups []Igroup, res *RestResponse, err error)

func (*Client) IgroupInitiatorCreate

func (c *Client) IgroupInitiatorCreate(href string, initiator *IgroupInitiator) (res *RestResponse, err error)

func (*Client) IgroupInitiatorDelete

func (c *Client) IgroupInitiatorDelete(href string) (res *RestResponse, err error)

func (*Client) IgroupInitiatorGetIter

func (c *Client) IgroupInitiatorGetIter(href string, parameters []string) (initiators []IgroupInitiator, res *RestResponse, err error)

func (*Client) IgroupModify

func (c *Client) IgroupModify(href string, igroup *Igroup) (res *RestResponse, err error)

func (*Client) IpInterfaceGet

func (c *Client) IpInterfaceGet(href string, parameters []string) (*IpInterface, *RestResponse, error)

func (*Client) IpInterfaceGetIter

func (c *Client) IpInterfaceGetIter(parameters []string) (ipInterfaces []IpInterface, res *RestResponse, err error)

func (*Client) IscsiServiceGet

func (c *Client) IscsiServiceGet(href string, parameters []string) (*IscsiService, *RestResponse, error)

func (*Client) IscsiServiceGetIter

func (c *Client) IscsiServiceGetIter(parameters []string) (iscsiServices []IscsiService, res *RestResponse, err error)

func (*Client) JobGet

func (c *Client) JobGet(href string, parameters []string) (*Job, *RestResponse, error)

func (*Client) JobGetIter

func (c *Client) JobGetIter(parameters []string) (jobs []Job, res *RestResponse, err error)

func (*Client) JobWaitUntilComplete

func (c *Client) JobWaitUntilComplete(href string) (job *Job, err error)

func (*Client) LunCreate

func (c *Client) LunCreate(lun *Lun, parameters []string) (luns []Lun, res *RestResponse, err error)

func (*Client) LunDelete

func (c *Client) LunDelete(href string) (res *RestResponse, err error)

func (*Client) LunGet

func (c *Client) LunGet(href string, parameters []string) (*Lun, *RestResponse, error)

func (*Client) LunGetByPath added in v1.0.4

func (c *Client) LunGetByPath(lunPath string, parameters []string) (lun *Lun, res *RestResponse, err error)

func (*Client) LunGetIter

func (c *Client) LunGetIter(parameters []string) (luns []Lun, res *RestResponse, err error)

func (*Client) LunMapCreate

func (c *Client) LunMapCreate(lunMap *LunMap, parameters []string) (res *RestResponse, err error)

func (*Client) LunMapDelete

func (c *Client) LunMapDelete(lunUuid string, igroupUuid string) (res *RestResponse, err error)

func (*Client) LunMapGet

func (c *Client) LunMapGet(href string, parameters []string) (*LunMap, *RestResponse, error)

func (*Client) LunMapGetIter

func (c *Client) LunMapGetIter(parameters []string) (lunMaps []LunMap, res *RestResponse, err error)

func (*Client) LunModify

func (c *Client) LunModify(href string, lun *Lun) (res *RestResponse, err error)

func (*Client) LunRead added in v1.0.4

func (c *Client) LunRead(href string, dataOffset int64, dataSize int64) (data []byte, bytesRead int64, res *RestResponse, err error)

func (*Client) LunWrite added in v1.0.4

func (c *Client) LunWrite(href string, dataOffset int64, dataReader io.Reader) (bytesWritten int64, res *RestResponse, err error)

func (*Client) NewFormFileRequest

func (c *Client) NewFormFileRequest(method string, apiPath string, parameters []string, body []byte) (req *http.Request, err error)

func (*Client) NewRequest

func (c *Client) NewRequest(method string, apiPath string, parameters []string, body interface{}) (req *http.Request, err error)

func (*Client) NvmeHostCreate added in v1.0.10

func (c *Client) NvmeHostCreate(subsystemHref string, host *NvmeHost, parameters []string) (hosts []NvmeHost, res *RestResponse, err error)

func (*Client) NvmeHostDelete added in v1.0.10

func (c *Client) NvmeHostDelete(subsystemHref string, nqn string) (res *RestResponse, err error)

func (*Client) NvmeHostGetIter added in v1.0.10

func (c *Client) NvmeHostGetIter(subsystemHref string, parameters []string) (hosts []NvmeHost, res *RestResponse, err error)

func (*Client) NvmeInterfaceGetIter added in v1.0.10

func (c *Client) NvmeInterfaceGetIter(parameters []string) (nvmeInterfaces []NvmeInterface, res *RestResponse, err error)

func (*Client) NvmeNamespaceCreate added in v1.0.10

func (c *Client) NvmeNamespaceCreate(namespace *NvmeNamespace, parameters []string) (namespaces []NvmeNamespace, res *RestResponse, err error)

func (*Client) NvmeNamespaceDelete added in v1.0.10

func (c *Client) NvmeNamespaceDelete(href string) (res *RestResponse, err error)

func (*Client) NvmeNamespaceGet added in v1.0.10

func (c *Client) NvmeNamespaceGet(href string, parameters []string) (*NvmeNamespace, *RestResponse, error)

func (*Client) NvmeNamespaceGetByPath added in v1.0.10

func (c *Client) NvmeNamespaceGetByPath(svmName string, namespacePath string, parameters []string) (namespace *NvmeNamespace, res *RestResponse, err error)

func (*Client) NvmeNamespaceGetIter added in v1.0.10

func (c *Client) NvmeNamespaceGetIter(parameters []string) (namespaces []NvmeNamespace, res *RestResponse, err error)

func (*Client) NvmeNamespaceModify added in v1.0.10

func (c *Client) NvmeNamespaceModify(href string, namespace *NvmeNamespace) (res *RestResponse, err error)

func (*Client) NvmeSubsystemCreate added in v1.0.10

func (c *Client) NvmeSubsystemCreate(subsystem *NvmeSubsystem, parameters []string) (subsystems []NvmeSubsystem, res *RestResponse, err error)

func (*Client) NvmeSubsystemDelete added in v1.0.10

func (c *Client) NvmeSubsystemDelete(href string, parameters []string) (res *RestResponse, err error)

func (*Client) NvmeSubsystemGet added in v1.0.10

func (c *Client) NvmeSubsystemGet(href string, parameters []string) (*NvmeSubsystem, *RestResponse, error)

func (*Client) NvmeSubsystemGetByPath added in v1.0.10

func (c *Client) NvmeSubsystemGetByPath(svmName string, namespacePath string) (subsystemHref string, res *RestResponse, err error)

func (*Client) NvmeSubsystemGetIter added in v1.0.10

func (c *Client) NvmeSubsystemGetIter(parameters []string) (subsystems []NvmeSubsystem, res *RestResponse, err error)

func (*Client) NvmeSubsystemMapCreate added in v1.0.10

func (c *Client) NvmeSubsystemMapCreate(subsystemMap *NvmeSubsystemMap, parameters []string) (subsystemMaps []NvmeSubsystemMap, res *RestResponse, err error)

func (*Client) NvmeSubsystemMapDelete added in v1.0.10

func (c *Client) NvmeSubsystemMapDelete(href string) (res *RestResponse, err error)

func (*Client) NvmeSubsystemMapGetByPath added in v1.0.10

func (c *Client) NvmeSubsystemMapGetByPath(svmName string, namespacePath string) (subsystemMapHref string, res *RestResponse, err error)

func (*Client) NvmeSubsystemMapGetIter added in v1.0.10

func (c *Client) NvmeSubsystemMapGetIter(parameters []string) (subsystemMaps []NvmeSubsystemMap, res *RestResponse, err error)

func (*Client) NvmeSubsystemModify added in v1.0.10

func (c *Client) NvmeSubsystemModify(href string, subsystem *NvmeSubsystem) (res *RestResponse, err error)

func (*Client) PrivateCliLunCreateFromFile

func (c *Client) PrivateCliLunCreateFromFile(lunRequest *LunCreateFromFileRequest) (res *RestResponse, err error)

func (*Client) PrivateCliVolumeGetNode

func (c *Client) PrivateCliVolumeGetNode(volumeName string) (node string, res *RestResponse, err error)

func (*Client) SnapshotCreate

func (c *Client) SnapshotCreate(volumeUuid string, snapshot *Snapshot) (res *RestResponse, err error)

func (*Client) SnapshotDelete

func (c *Client) SnapshotDelete(href string) (res *RestResponse, err error)

func (*Client) SnapshotGet

func (c *Client) SnapshotGet(href string, parameters []string) (*Snapshot, *RestResponse, error)

func (*Client) SnapshotGetIter

func (c *Client) SnapshotGetIter(volumeUuid string, parameters []string) (snapshots []Snapshot, res *RestResponse, err error)

func (*Client) SnapshotModify

func (c *Client) SnapshotModify(href string, snapshot *Snapshot) (res *RestResponse, err error)

func (*Client) SvmGet

func (c *Client) SvmGet(href string, parameters []string) (*Svm, *RestResponse, error)

func (*Client) SvmGetIter

func (c *Client) SvmGetIter(parameters []string) (svms []Svm, res *RestResponse, err error)

func (*Client) VolumeCreate

func (c *Client) VolumeCreate(volume *Volume, parameters []string) (res *RestResponse, err error)

func (*Client) VolumeDelete

func (c *Client) VolumeDelete(href string, parameters []string) (res *RestResponse, err error)

func (*Client) VolumeGet

func (c *Client) VolumeGet(href string, parameters []string) (*Volume, *RestResponse, error)

func (*Client) VolumeGetIter

func (c *Client) VolumeGetIter(parameters []string) (volumes []Volume, res *RestResponse, err error)

func (*Client) VolumeModify

func (c *Client) VolumeModify(href string, volume *Volume, parameters []string) (res *RestResponse, err error)

type ClientOptions

type ClientOptions struct {
	BasicAuthUser     string
	BasicAuthPassword string
	SSLVerify         bool
	Debug             bool
	Timeout           time.Duration
}

func DefaultOptions

func DefaultOptions() *ClientOptions

type DhHmacChapProtocol added in v1.0.10

type DhHmacChapProtocol struct {
	ControllerSecretKey string `json:"controller_secret_key,omitempty"`
	GroupSize           string `json:"group_size,omitempty"`
	HashFunction        string `json:"hash_function,omitempty"`
	HostSecretKey       string `json:"host_secret_key,omitempty"`
	Mode                string `json:"mode,omitempty"`
}

type Dns

type Dns struct {
	Resource
	Domains []string `json:"domains,omitempty"`
	Servers []string `json:"servers,omitempty"`
}

type Efficiency

type Efficiency struct {
	ApplicationIoSize string         `json:"application_io_size,omitempty"`
	Compaction        string         `json:"compaction,omitempty"`
	CrossVolumeDedupe string         `json:"cross_volume_dedupe,omitempty"`
	Dedupe            string         `json:"dedupe,omitempty"`
	Policy            *NameReference `json:"policy,omitempty"`
	Schedule          string         `json:"schedule,omitempty"`
}

type Encryption

type Encryption struct {
	Enabled bool   `json:"enabled"`
	KeyId   string `json:"key_id,omitempty"`
	ReKey   string `json:"rekey,omitempty"`
	State   string `json:"state,omitempty"`
	Status  struct {
		Code    string `json:"code,omitempty"`
		Message string `json:"message,omitempty"`
	} `json:"status,omitempty"`
	Type string `json:"type,omitempty"`
}

type ErrorResponse

type ErrorResponse struct {
	Error struct {
		Message string `json:"message"`
		Code    string `json:"code"`
		Target  string `json:"target"`
	} `json:"error"`
}

type ExportPolicy

type ExportPolicy struct {
	ExportPolicyRef
	Rules []ExportPolicyRule `json:"rules,omitempty"`
	Svm   *Resource          `json:"svm,omitempty"`
}

type ExportPolicyRef

type ExportPolicyRef struct {
	Resource
	Id *int `json:"id,omitempty"`
}

type ExportPolicyResponse

type ExportPolicyResponse struct {
	BaseResponse
	ExportPolicies []ExportPolicy `json:"records,omitempty"`
}

type ExportPolicyRule

type ExportPolicyRule struct {
	Resource
	AnonymousUser string             `json:"anonymous_user,omitempty"`
	Clients       []ExportRuleClient `json:"clients,omitempty"`
	Index         *int               `json:"index,omitempty"`
	Protocols     []string           `json:"protocols,omitempty"`
	RoRule        []string           `json:"ro_rule,omitempty"`
	RwRule        []string           `json:"rw_rule,omitempty"`
	Superuser     []string           `json:"superuser,omitempty"`
}

type ExportPolicyRuleResponse

type ExportPolicyRuleResponse struct {
	BaseResponse
	ExportPolicyRules []ExportPolicyRule `json:"records,omitempty"`
}

type ExportRuleClient

type ExportRuleClient struct {
	Match string `json:"match,omitempty"`
}

type FcInterfaceSvm

type FcInterfaceSvm struct {
	Resource
	DataProtocol string `json:"data_protocol,omitempty"`
	Location     struct {
		// contains filtered or unexported fields
	} `json:"location,omitempty"`
}

type FcPortReference

type FcPortReference struct {
	Resource
	Node string
}

type Fcp

type Fcp struct {
	Resource
	Enabled bool `json:"enabled"`
}

type FileInfo

type FileInfo struct {
	Resource
	AccessedTime string `json:"accessed_time,omitempty"`
	Analytics    *struct {
		ByAccessedTime *struct {
			BytesUsed *struct {
				Labels      []string  `json:"labels,omitempty"`
				NewestLabel []string  `json:"newest_label,omitempty"`
				OldestLabel []string  `json:"oldest_label,omitempty"`
				Percentages []float32 `json:"percentages,omitempty"`
				Values      []int     `json:"values,omitempty"`
			} `json:"bytes_used ,omitempty"`
		} `json:"by_accessed_time,omitempty"`
		ByModifiedTime *struct {
			BytesUsed *struct {
				Labels      []string  `json:"labels,omitempty"`
				NewestLabel []string  `json:"newest_label,omitempty"`
				OldestLabel []string  `json:"oldest_label,omitempty"`
				Percentages []float32 `json:"percentages,omitempty"`
				Values      []int     `json:"values,omitempty"`
			} `json:"bytes_used ,omitempty"`
		} `json:"by_modified_time,omitempty"`
		BytesUsed   int `json:"bytes_used"`
		FileCount   int `json:"file_count"`
		SubdirCount int `json:"subdir_count"`
	} `json:"analytics,omitempty"`
	BytesUsed        *int      `json:"bytes_used,omitempty"`
	ChangedTime      string    `json:"changed_time,omitempty"`
	CreationTime     string    `json:"creation_time,omitempty"`
	FillEnabled      *bool     `json:"fill_enabled,omitempty"`
	GroupId          *int      `json:"group_id,omitempty"`
	HardLinksCount   *int      `json:"hard_links_count,omitempty"`
	InodeGeneration  *int      `json:"inode_generation,omitempty"`
	InodeNumber      *int      `json:"inode_number,omitempty"`
	IsEmpty          *bool     `json:"is_empty,omitempty"`
	IsJunction       *bool     `json:"is_junction,omitempty"`
	IsSnapshot       *bool     `json:"is_snapshot,omitempty"`
	IsVmAligned      *bool     `json:"is_vm_aligned,omitempty"`
	ModifiedTime     string    `json:"modified_time,omitempty"`
	OverwriteEnabled *bool     `json:"overwrite_enabled,omitempty"`
	OwnerId          *int      `json:"owner_id,omitempty"`
	Path             string    `json:"path,omitempty"`
	QosPolicy        *Resource `json:"qos_policy,omitempty"`
	Size             *int      `json:"size,omitempty"`
	Target           string    `json:"target,omitempty"`
	Type             string    `json:"type,omitempty"`
	UniqueBytes      *int      `json:"unique_bytes,omitempty"`
	UnixPermissions  *int      `json:"unix_permissions,omitempty"`
	Volume           *Resource `json:"volume,omitempty"`
}

type FileInfoResponse

type FileInfoResponse struct {
	BaseResponse
	Files []FileInfo `json:"records,omitempty"`
}

type FileWriteResponse

type FileWriteResponse struct {
	BytesWritten int `json:"bytes_written"`
}

type Igroup

type Igroup struct {
	Resource
	DeleteOnUnmap *bool             `json:"delete_on_unmap,omitempty"`
	Initiators    []IgroupInitiator `json:"initiators,omitempty"`
	LunMaps       []LunMap          `json:"lun_maps,omitempty"`
	OsType        string            `json:"os_type,omitempty"`
	Protocol      string            `json:"protocol,omitempty"`
	Svm           *Resource         `json:"svm,omitempty"`
}

type IgroupInitiator

type IgroupInitiator struct {
	Resource
	Igroup           *Resource   `json:"igroup,omitempty"`
	IgroupInitiators *[]Resource `json:"records,omitempty"`
}

type IgroupInitiatorResponse

type IgroupInitiatorResponse struct {
	BaseResponse
	IgroupInitiators []IgroupInitiator `json:"records,omitempty"`
}

type IgroupRef

type IgroupRef struct {
	Resource
	Initiators []string `json:"initiators,omitempty"`
	OsType     string   `json:"os_type,omitempty"`
	Protocol   string   `json:"protocol,omitempty"`
}

type IgroupResponse

type IgroupResponse struct {
	BaseResponse
	Igroups []Igroup `json:"records,omitempty"`
}

type Ip

type Ip struct {
	Address string `json:"address,omitempty"`
	Netmask string `json:"netmask,omitempty"`
}

type IpInfo

type IpInfo struct {
	Address string `json:"address,omitempty"`
	Netmask string `json:"netmask,omitempty"`
	Family  string `json:"family,omitempty"`
}

type IpInterface

type IpInterface struct {
	Resource
	Enabled  bool     `json:"enabled"`
	Ip       IpInfo   `json:"ip,omitempty"`
	IpSpace  Resource `json:"ipspace,omitempty"`
	Location struct {
		AutoRevert      bool     `json:"auto_revert"`
		BroadcastDomain Resource `json:"broadcast_domain,omitempty"`
		Failover        string   `json:"failover,omitempty"`
		HomeNode        Resource `json:"home_node,omitempty"`
		HomePort        struct {
			Resource
			Node Resource `json:"node,omitempty"`
		} `json:"home_port,omitempty"`
		IsHome bool     `json:"is_home"`
		Node   Resource `json:"node"`
		Port   struct {
			Resource
			Node Resource `json:"node,omitempty"`
		} `json:"port,omitempty"`
	} `json:"location,omitempty"`
	Metrics struct {
		Resource
		Duration   string `json:"duration,omitempty"`
		Status     string `json:"status,omitempty"`
		Throughput struct {
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"metrics,omitempty"`
	Scope         string   `json:"scope,omitempty"`
	ServicePolicy Resource `json:"service_policy,omitempty"`
	Services      []string `json:"services,omitempty"`
	State         string   `json:"state,omitempty"`
	Statistics    struct {
		Status        string `json:"status,omitempty"`
		ThroughputRaw struct {
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"statistics,omitempty"`
	Svm Resource `json:"svm,omitempty"`
	Vip bool     `json:"vip"`
}

type IpInterfaceResponse

type IpInterfaceResponse struct {
	BaseResponse
	IpInterfaces []IpInterface `json:"records,omitempty"`
}

type IpInterfaceSvm

type IpInterfaceSvm struct {
	Resource
	Location struct {
		HomeNode        Resource `json:"home_node,omitempty"`
		BroadcastDomain Resource `json:"broadcast_domain,omitempty"`
	} `json:"location,omitempty"`
	Ip       Ip       `json:"ip,omitempty"`
	Services []string `json:"services,omitempty"`
}

type Iscsi

type Iscsi struct {
	Resource
	Enabled bool `json:"enabled"`
}

type IscsiService

type IscsiService struct {
	Resource
	Enabled *bool `json:"enabled,omitempty"`
	Metric  *struct {
		Resource
		Duration string `json:"duration,omitempty"`
		Iops     struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops"`
		Latency struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency"`
		Status     string `json:"status,omitempty"`
		Throughput struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"metric,omitempty"`
	Statistics *struct {
		IopsRaw struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops_raw"`
		LatencyRaw struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency_raw"`
		Status        string `json:"status,omitempty"`
		ThroughputRaw struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput_raw"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"statistics,omitempty"`
	Svm    *Resource `json:"svm,omitempty"`
	Target *struct {
		Alias string `json:"alias,omitempty"`
		Name  string `json:"name"`
	} `json:"target,omitempty"`
}

type IscsiServiceResponse

type IscsiServiceResponse struct {
	BaseResponse
	IscsiServices []IscsiService `json:"records,omitempty"`
}

type Job

type Job struct {
	Resource
	Code        int       `json:"code"`
	Description string    `json:"description,omitempty"`
	EndTime     string    `json:"end_time,omitempty"`
	Message     string    `json:"message,omitempty"`
	StartTime   string    `json:"start_time,omitempty"`
	State       string    `json:"state,omitempty"`
	Svm         *Resource `json:"svm,omitempty"`
}

type JobLinkResponse

type JobLinkResponse struct {
	JobLink struct {
		Resource
	} `json:"job"`
}

type JobResponse

type JobResponse struct {
	BaseResponse
	Jobs []Job `json:"records,omitempty"`
}

type Ldap

type Ldap struct {
	Resource
	AdDomain string   `json:"ad_domain,omitempty"`
	BaseDn   string   `json:"base_dn,omitempty"`
	BindDn   string   `json:"bind_dn,omitempty"`
	Servers  []string `json:"servers,omitempty"`
	Enabled  bool     `json:"enabled"`
}

type Lun

type Lun struct {
	Resource
	AutoDelete *bool        `json:"auto_delete,omitempty"`
	Class      string       `json:"class,omitempty"`
	Clone      *LunClone    `json:"clone,omitempty"`
	Copy       *LunCopy     `json:"copy,omitempty"`
	Movement   *LunMovement `json:"movement,omitempty"`
	Comment    string       `json:"comment,omitempty"`
	CreateTime string       `json:"create_time,omitempty"`
	Enabled    *bool        `json:"enabled,omitempty"`
	Location   *LunLocation `json:"location,omitempty"`
	Metric     *struct {
		Resource
		Duration string `json:"duration,omitempty"`
		Iops     *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops,omitempty"`
		Latency *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency,omitempty"`
		Status     string `json:"status,omitempty"`
		Throughput *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"metric,omitempty"`
	Name         string    `json:"name,omitempty"`
	OsType       string    `json:"os_type,omitempty"`
	QosPolicy    *Resource `json:"qos_policy,omitempty"`
	SerialNumber string    `json:"serial_number,omitempty"`
	Space        *LunSpace `json:"space,omitempty"`
	Statistics   *struct {
		IopsRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops_raw,omitempty"`
		LatencyRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency_raw,omitempty"`
		Status        string `json:"status,omitempty"`
		ThroughputRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput_raw,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"statistics,omitempty"`
	Status *struct {
		ContainerState string `json:"container_state,omitempty"`
		Mapped         bool   `json:"mapped"`
		ReadOnly       bool   `json:"read_only"`
		State          string `json:"state,omitempty"`
	} `json:"status,omitempty"`
	Svm *Resource `json:"svm,omitempty"`
}

type LunClone

type LunClone struct {
	Source NameReference `json:"source"`
}

type LunCopy added in v1.0.4

type LunCopy struct {
	Source NameReference `json:"source"`
}

type LunCreateFromFileRequest

type LunCreateFromFileRequest struct {
	LunPath         string `json:"path"`
	FilePath        string `json:"file-path"`
	OsType          string `json:"ostype"`
	SpaceReserve    string `json:"space-reserve,omitempty"`
	SpaceAllocation string `json:"space-allocation,omitempty"`
}

type LunLocation

type LunLocation struct {
	LogicalUnit string         `json:"logical_unit,omitempty"`
	Node        *Resource      `json:"node,omitempty"`
	Qtree       *QtreeResource `json:"qtree,omitempty"`
	Volume      *Resource      `json:"volume,omitempty"`
}

type LunMap

type LunMap struct {
	Resource
	Igroup            *IgroupRef `json:"igroup,omitempty"`
	LogicalUnitNumber *int       `json:"logical_unit_number,omitempty"`
	Lun               *LunRef    `json:"lun,omitempty"`
	Svm               *Resource  `json:"svm,omitempty"`
}

type LunMapResponse

type LunMapResponse struct {
	BaseResponse
	LunMaps []LunMap `json:"records,omitempty"`
}

type LunMovement added in v1.0.4

type LunMovement struct {
	MaxThroughput string   `json:"max_throughput,omitempty"`
	Paths         LunPaths `json:"paths,omitempty"`
}

type LunPaths added in v1.0.4

type LunPaths struct {
	Destination string `json:"destination,omitempty"`
	Source      string `json:"source,omitempty"`
}

type LunRef

type LunRef struct {
	Resource
	Node *Resource `json:"node,omitempty"`
}

type LunResponse

type LunResponse struct {
	BaseResponse
	Luns []Lun `json:"records,omitempty"`
}

type LunSpace

type LunSpace struct {
	Guarantee *LunSpaceGuarantee `json:"guarantee,omitempty"`
	Size      *int64             `json:"size,omitempty"`
	Used      *int64             `json:"used,omitempty"`
}

type LunSpaceGuarantee

type LunSpaceGuarantee struct {
	Requested bool `json:"requested"`
	Reserved  bool `json:"reserved"`
}

type NameReference

type NameReference struct {
	Name string `json:"name,omitempty"`
	Uuid string `json:"uuid,omitempty"`
}

type Nas

type Nas struct {
	ExportPolicy    *ExportPolicyRef `json:"export_policy,omitempty"`
	Gid             int              `json:"gid"`
	Path            string           `json:"path,omitempty"`
	SecurityStyle   string           `json:"security_style,omitempty"`
	Uid             int              `json:"uid"`
	UnixPermissions int              `json:"unix_permissions"`
}

type NetworkRoute added in v1.0.8

type NetworkRoute struct {
	Gateway     string `json:"gateway,omitempty"`
	Destination IpInfo `json:"destination,omitempty"`
}

type Nfs

type Nfs struct {
	Resource
	Enabled bool `json:"enabled"`
}

type Nis

type Nis struct {
	Resource
	Domain  string   `json:"nis_domain,omitempty"`
	Servers []string `json:"nis_servers,omitempty"`
	Enabled bool     `json:"enabled"`
}

type NsSwitch

type NsSwitch struct {
	Resource
	Group    []string `json:"group,omitempty"`
	Hosts    []string `json:"hosts,omitempty"`
	NameMap  []string `json:"namemap,omitempty"`
	NetGroup []string `json:"netgroup,omitempty"`
	Passwd   []string `json:"passwd,omitempty"`
}

type Nvme

type Nvme struct {
	Resource
	Enabled bool `json:"enabled"`
}

type NvmeHost added in v1.0.10

type NvmeHost struct {
	Resource
	DhHmacChap *DhHmacChapProtocol `json:"dh_hmac_chap,omitempty"`
	IoQueue    *NvmeHostIoQueue    `json:"io_queue,omitempty"`
	Nqn        string              `json:"nqn,omitempty"`
	Subsystem  *Resource           `json:"subsystem,omitempty"`
}

type NvmeHostIoQueue added in v1.0.10

type NvmeHostIoQueue struct {
	Count int `json:"count,omitempty"`
	Depth int `json:"depth,omitempty"`
}

type NvmeHostResponse added in v1.0.10

type NvmeHostResponse struct {
	BaseResponse
	NvmeHosts []NvmeHost `json:"records,omitempty"`
}

type NvmeInterface added in v1.0.10

type NvmeInterface struct {
	Resource
	Enabled     *bool `json:"enabled,omitempty"`
	FcInterface *struct {
		Resource
		Port *struct {
			Resource
			Node *struct {
				Name string `json:"name,omitempty"`
			} `json:"node,omitempty"`
		} `json:"port,omitempty"`
		Wwnn string `json:"wwnn,omitempty"`
		Wwpn string `json:"wwpn,omitempty"`
	} `json:"fc_interface,omitempty"`
	InterfaceType string `json:"interface_type,omitempty"`
	IpInterface   *struct {
		Resource
		Ip *struct {
			Address string `json:"address,omitempty"`
		} `json:"ip,omitempty"`
		Location *struct {
			Port *struct {
				Resource
				Node *struct {
					Name string `json:"name,omitempty"`
				} `json:"node,omitempty"`
			} `json:"port,omitempty"`
		} `json:"location,omitempty"`
	} `json:"ip_interface,omitempty"`
	Name               string    `json:"name,omitempty"`
	Node               *Resource `json:"node,omitempty"`
	Svm                *Resource `json:"svm,omitempty"`
	TransportAddress   string    `json:"transport_address,omitempty"`
	TransportProtocols []string  `json:"transport_protocols,omitempty"`
	Uuid               string    `json:"uuid,omitempty"`
}

type NvmeInterfaceResponse added in v1.0.10

type NvmeInterfaceResponse struct {
	BaseResponse
	NvmeInterfaces []NvmeInterface `json:"records,omitempty"`
}

type NvmeNamespace added in v1.0.10

type NvmeNamespace struct {
	Resource
	AutoDelete *bool                  `json:"auto_delete,omitempty"`
	Comment    string                 `json:"comment,omitempty"`
	CreateTime string                 `json:"create_time,omitempty"`
	Enabled    *bool                  `json:"enabled,omitempty"`
	Location   *NvmeNamespaceLocation `json:"location,omitempty"`
	Metric     *struct {
		Resource
		Duration string `json:"duration,omitempty"`
		Iops     *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops,omitempty"`
		Latency *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency,omitempty"`
		Status     string `json:"status,omitempty"`
		Throughput *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"metric,omitempty"`
	Name       string              `json:"name,omitempty"`
	OsType     string              `json:"os_type,omitempty"`
	Space      *NvmeNamespaceSpace `json:"space,omitempty"`
	Statistics *struct {
		IopsRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops_raw,omitempty"`
		LatencyRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency_raw,omitempty"`
		Status        string `json:"status,omitempty"`
		ThroughputRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput_raw,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"statistics,omitempty"`
	Status *struct {
		ContainerState string `json:"container_state,omitempty"`
		Mapped         bool   `json:"mapped"`
		ReadOnly       bool   `json:"read_only"`
		State          string `json:"state,omitempty"`
	} `json:"status,omitempty"`
	SubsystemMap *NvmeSubsystemMap `json:"subsystem_map,omitempty"`
	Svm          *Resource         `json:"svm,omitempty"`
	Uuid         string            `json:"uuid,omitempty"`
}

type NvmeNamespaceLocation added in v1.0.10

type NvmeNamespaceLocation struct {
	Namespace string         `json:"namespace,omitempty"`
	Node      *Resource      `json:"node,omitempty"`
	Qtree     *QtreeResource `json:"qtree,omitempty"`
	Volume    *Resource      `json:"volume,omitempty"`
}

type NvmeNamespaceResponse added in v1.0.10

type NvmeNamespaceResponse struct {
	BaseResponse
	NvmeNamespaces []NvmeNamespace `json:"records,omitempty"`
}

type NvmeNamespaceSpace added in v1.0.10

type NvmeNamespaceSpace struct {
	BlockSize *int                         `json:"blocksize,omitempty"`
	Guarantee *NvmeNamespaceSpaceGuarantee `json:"guarantee,omitempty"`
	Size      *int64                       `json:"size,omitempty"`
	Used      *int64                       `json:"used,omitempty"`
}

type NvmeNamespaceSpaceGuarantee added in v1.0.10

type NvmeNamespaceSpaceGuarantee struct {
	Requested bool `json:"requested"`
	Reserved  bool `json:"reserved"`
}

type NvmeSubsystem added in v1.0.10

type NvmeSubsystem struct {
	Resource
	Comment       string                `json:"comment,omitempty"`
	DeleteOnUnmap *bool                 `json:"delete_on_unmap,omitempty"`
	Hosts         []NvmeHost            `json:"hosts,omitempty"`
	IoQueue       *NvmeSubsystemIoQueue `json:"io_queue,omitempty"`
	Name          string                `json:"name,omitempty"`
	OsType        string                `json:"os_type,omitempty"`
	SerialNumber  string                `json:"serial_number,omitempty"`
	SubsystemMaps []NvmeSubsystemMap    `json:"subsystem_maps,omitempty"`
	Svm           *Resource             `json:"svm,omitempty"`
	TargetNqn     string                `json:"target_nqn,omitempty"`
	Uuid          string                `json:"uuid,omitempty"`
	VendorUuids   []string              `json:"vendor_uuids,omitempty"`
}

type NvmeSubsystemIoQueue added in v1.0.10

type NvmeSubsystemIoQueue struct {
	Default *NvmeHostIoQueue `json:"default,omitempty"`
}

type NvmeSubsystemMap added in v1.0.10

type NvmeSubsystemMap struct {
	Resource
	Anagrpid  string    `json:"anagrpid,omitempty"`
	Namespace *Resource `json:"namespace,omitempty"`
	Nsid      string    `json:"nsid,omitempty"`
	Subsystem *Resource `json:"subsystem,omitempty"`
	Svm       *Resource `json:"svm,omitempty"`
}

type NvmeSubsystemMapResponse added in v1.0.10

type NvmeSubsystemMapResponse struct {
	BaseResponse
	NvmeSubsystemMaps []NvmeSubsystemMap `json:"records,omitempty"`
}

type NvmeSubsystemResponse added in v1.0.10

type NvmeSubsystemResponse struct {
	BaseResponse
	NvmeSubsystems []NvmeSubsystem `json:"records,omitempty"`
}

type PrivateCliVolumeNode

type PrivateCliVolumeNode struct {
	Vserver string `json:"vserver,omitempty"`
	Volume  string `json:"volume,omitempty"`
	Node    string `json:"node,omitempty"`
}

type PrivateCliVolumeNodeResponse

type PrivateCliVolumeNodeResponse struct {
	BaseResponse
	Volumes []PrivateCliVolumeNode `json:"records,omitempty"`
}

type Qos

type Qos struct {
	Policy QosPolicy `json:"policy"`
}

type QosPolicy

type QosPolicy struct {
	Resource
	MaxThroughputIops int `json:"max_throughput_iops"`
	MaxThroughputMbps int `json:"max_throughput_mbps"`
	MinThroughputIops int `json:"min_throughput_iops"`
	MinThroughputMbps int `json:"min_throughput_mbps"`
}

type QtreeResource

type QtreeResource struct {
	Resource
	Id int `json:"id"`
}

type Quota

type Quota struct {
	Enabled bool   `json:"enabled"`
	State   string `json:"state,omitempty"`
}

type Resource

type Resource struct {
	Name  string `json:"name,omitempty"`
	Uuid  string `json:"uuid,omitempty"`
	Links *struct {
		Self struct {
			Href string `json:"href,omitempty"`
		} `json:"self,omitempty"`
	} `json:"_links,omitempty"`
}

func (*Resource) GetRef

func (r *Resource) GetRef() string

type RestResponse

type RestResponse struct {
	ErrorResponse ErrorResponse
	HttpResponse  *http.Response
}

type S3Service

type S3Service struct {
	Resource
	Certificate    Resource `json:"certificate,omitempty"`
	IsHttpEnabled  bool     `json:"is_http_enabled"`
	IsHttpsEnabled bool     `json:"is_https_enabled"`
	Port           int      `json:"port"`
	SecurePort     int      `json:"secure_port"`
	Enabled        bool     `json:"enabled"`
}

type Snapshot

type Snapshot struct {
	Resource
	Comment            string    `json:"comment,omitempty"`
	CreateTime         string    `json:"create_time,omitempty"`
	ExpiryTime         string    `json:"expiry_time,omitempty"`
	Owners             []string  `json:"owners,omitempty"`
	SnaplockExpiryTime string    `json:"snaplock_expiry_time,omitempty"`
	SnapmirrorLabel    string    `json:"snapmirror_label,omitempty"`
	State              string    `json:"state,omitempty"`
	Svm                *Resource `json:"svm,omitempty"`
	Volume             *Resource `json:"volume,omitempty"`
}

type SnapshotResponse

type SnapshotResponse struct {
	BaseResponse
	Snapshots []Snapshot `json:"records,omitempty"`
}

type Svm

type Svm struct {
	Resource
	Aggregates          []Aggregate      `json:"aggregates,omitempty"`
	AggregatesDelegated bool             `json:"aggregates_delegated"`
	Certificate         Resource         `json:"certificate,omitempty"`
	Cifs                Cifs             `json:"cifs,omitempty"`
	Comment             string           `json:"comment,omitempty"`
	Dns                 Dns              `json:"dns,omitempty"`
	Fcp                 Fcp              `json:"fcp,omitempty"`
	FcInterfaces        []FcInterfaceSvm `json:"fc_interfaces,omitempty"`
	IpInterfaces        []IpInterfaceSvm `json:"ip_interfaces,omitempty"`
	IpSpace             Resource         `json:"ipspace,omitempty"`
	Iscsi               Iscsi            `json:"iscsi,omitempty"`
	Language            string           `json:"language,omitempty"`
	Ldap                Ldap             `json:"ldap,omitempty"`
	Nfs                 Nfs              `json:"nfs,omitempty"`
	Nis                 Nis              `json:"nis,omitempty"`
	NsSwitch            NsSwitch         `json:"nsswitch,omitempty"`
	Nvme                Nvme             `json:"nvme,omitempty"`
	Routes              []NetworkRoute   `json:"routes,omitempty"`
	S3                  S3Service        `json:"s3,omitempty"`
	SnapMirror          struct {
		IsProtected           bool `json:"is_protected"`
		ProtectedVolumesCount int  `json:"protected_volumes_count"`
	} `json:"snapmirror"`
	SnapshotPolicy         Resource `json:"snapshot_policy,omitempty"`
	State                  string   `json:"state,omitempty"`
	Subtype                string   `json:"subtype,omitempty"`
	VolumeEfficiencyPolicy Resource `json:"volume_efficiency_policy,omitempty"`
}

type SvmResponse

type SvmResponse struct {
	BaseResponse
	Svms []Svm `json:"records,omitempty"`
}

type Volume

type Volume struct {
	Resource
	AccessTimeEnabled *bool      `json:"access_time_enabled,omitempty"`
	Aggregates        []Resource `json:"aggregates,omitempty"`
	Analytics         *struct {
		ScanProgress      int    `json:"scan_progress,omitempty"`
		State             string `json:"state,omitempty"`
		Supported         bool   `json:"supported"`
		UnsupportedReason *struct {
			Code    string `json:"code,omitempty"`
			Message string `json:"message,omitempty"`
		} `json:"unsupported_reason,omitempty"`
	} `json:"analytics,omitempty"`
	Application *Resource `json:"application,omitempty"`
	Autosize    *Autosize `json:"autosize,omitempty"`
	Clone       *struct {
		IsFlexclone          bool     `json:"is_flexclone"`
		ParentSnapshot       Resource `json:"parent_snapshot,omitempty"`
		ParentSvm            Resource `json:"parent_svm,omitempty"`
		ParentVolume         Resource `json:"parent_volume,omitempty"`
		SplitCompletePercent int      `json:"split_complete_percent"`
		SplitEstimate        int      `json:"split_estimate"`
		SplitInitiated       int      `json:"split_initiated"`
	} `json:"clone,omitempty"`
	CloudRetrievalPolicy string `json:"cloud_retrieval_policy,omitempty"`
	Comment              string `json:"comment,omitempty"`
	ConsistencyGroup     *struct {
		Name string `json:"name,omitempty"`
	} `json:"consistency_group,omitempty"`
	ConstituentsPerAggregate *int        `json:"constituents_per_aggregate,omitempty"`
	CreateTime               string      `json:"create_time,omitempty"`
	Efficiency               *Efficiency `json:"efficiency,omitempty"`
	Encryption               *Encryption `json:"encryption,omitempty"`
	ErrorState               *struct {
		HasBadBlocks   bool `json:"has_bad_blocks"`
		IsInconsistent bool `json:"is_inconsistent"`
	} `json:"error_state,omitempty"`
	Files *struct {
		Maximum int `json:"maximum"`
		Used    int `json:"used,omitempty"`
	} `json:"files,omitempty"`
	FlexcacheEndpointType string                `json:"flexcache_endpoint_type,omitempty"`
	Guarantee             *VolumeSpaceGuarantee `json:"guarantee,omitempty"`
	IsObjectStore         *bool                 `json:"is_object_store,omitempty"`
	IsSvmRoot             *bool                 `json:"is_svm_root,omitempty"`
	Language              string                `json:"language,omitempty"`
	Metric                *struct {
		Resource
		Cloud *struct {
			Duration string `json:"duration,omitempty"`
			Iops     *struct {
				Other int `json:"other"`
				Read  int `json:"read"`
				Total int `json:"total"`
				Write int `json:"write"`
			} `json:"iops,omitempty"`
			Latency *struct {
				Other int `json:"other"`
				Read  int `json:"read"`
				Total int `json:"total"`
				Write int `json:"write"`
			} `json:"latency,omitempty"`
			Status    string `json:"status,omitempty"`
			Timestamp string `json:"timestamp,omitempty"`
		} `json:"cloud,omitempty"`
		Duration  string `json:"duration,omitempty"`
		Flexcache *struct {
			CacheMissPercent int    `json:"cache_miss_percent"`
			Duration         string `json:"duration,omitempty"`
			Status           string `json:"status,omitempty"`
			Timestamp        string `json:"timestamp,omitempty"`
		} `json:"flexcache,omitempty"`
		Iops *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops,omitempty"`
		Latency *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency,omitempty"`
		Status     string `json:"status,omitempty"`
		Throughput *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"metric,omitempty"`
	Movement *struct {
		CutoverWindow        int      `json:"cutover_window"`
		DestinationAggregate Resource `json:"destination_aggregate,omitempty"`
		PercentComplete      int      `json:"percent_complete"`
		State                string   `json:"state,omitempty"`
		TieringPolicy        string   `json:"tiering_policy,omitempty"`
	} `json:"movement,omitempty"`
	Nas                *Nas   `json:"nas,omitempty"`
	Qos                *Qos   `json:"qos,omitempty"`
	QueueForEncryption *bool  `json:"queue_for_encryption,omitempty"`
	Quota              *Quota `json:"quota,omitempty"`
	Size               *int   `json:"size,omitempty"`
	Snaplock           *struct {
		AppendModeEnabled   bool   `json:"append_mode_enabled"`
		AutocommitPeriod    string `json:"autocommit_period,omitempty"`
		ComplianceClockTime string `json:"compliance_clock_time,omitempty"`
		ExpiryTime          string `json:"expiry_time,omitempty"`
		IsAuditLog          string `json:"is_audit_log"`
		LitigationCount     int    `json:"litigation_count"`
		PrivilegedDelete    string `json:"privileged_delete,omitempty"`
		Retention           *struct {
			Default string `json:"default,omitempty"`
			Maximum string `json:"maximum,omitempty"`
			Minimum string `json:"minimum,omitempty"`
		} `json:"retention,omitempty"`
		Type                          string `json:"type,omitempty"`
		UnspecifiedRetentionFileCount int    `json:"unspecified_retention_file_count"`
	} `json:"snaplock,omitempty"`
	Snapmirror *struct {
		IsProtected bool `json:"is_protected"`
	} `json:"snapmirror,omitempty"`
	SnapshotPolicy *Resource    `json:"snapshot_policy,omitempty"`
	Space          *VolumeSpace `json:"space,omitempty"`
	State          string       `json:"state,omitempty"`
	Statistics     *struct {
		Cloud *struct {
			Duration string `json:"duration,omitempty"`
			IopsRaw  *struct {
				Other int `json:"other"`
				Read  int `json:"read"`
				Total int `json:"total"`
				Write int `json:"write"`
			} `json:"iops_raw,omitempty"`
			LatencyRaw *struct {
				Other int `json:"other"`
				Read  int `json:"read"`
				Total int `json:"total"`
				Write int `json:"write"`
			} `json:"latency_raw,omitempty"`
			Status    string `json:"status,omitempty"`
			Timestamp string `json:"timestamp,omitempty"`
		} `json:"cloud,omitempty"`
		FlexcacheRaw *struct {
			CacheMissBlocks       int    `json:"cache_miss_blocks"`
			ClientRequestedBlocks int    `json:"client_requested_blocks"`
			Status                string `json:"status,omitempty"`
			Timestamp             string `json:"timestamp,omitempty"`
		} `json:"flexcache_raw,omitempty"`
		IopsRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"iops_raw,omitempty"`
		LatencyRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"latency_raw,omitempty"`
		Status        string `json:"status,omitempty"`
		ThroughputRaw *struct {
			Other int `json:"other"`
			Read  int `json:"read"`
			Total int `json:"total"`
			Write int `json:"write"`
		} `json:"throughput_raw,omitempty"`
		Timestamp string `json:"timestamp,omitempty"`
	} `json:"statistics,omitempty"`
	Style   string    `json:"style,omitempty"`
	Svm     *Resource `json:"svm,omitempty"`
	Tiering *struct {
		MinCoolingDays int      `json:"min_cooling_days"`
		ObjectTags     []string `json:"object_tags,omitempty"`
		Policy         string   `json:"policy,omitempty"`
		Supported      bool     `json:"supported"`
	} `json:"tiering,omitempty"`
	Type                  string `json:"type,omitempty"`
	UseMirroredAggregates *bool  `json:"use_mirrored_aggregates,omitempty"`
}

type VolumeResponse

type VolumeResponse struct {
	BaseResponse
	Volumes []Volume `json:"records,omitempty"`
}

type VolumeSnapshotSettigs added in v1.0.1

type VolumeSnapshotSettigs struct {
	AutodeleteEnabled *bool `json:"autodelete_enabled,omitempty"`
	ReservePercent    *int  `json:"reserve_percent,omitempty"`
	Used              *int  `json:"used,omitempty"`
}

type VolumeSpace added in v1.0.1

type VolumeSpace struct {
	Available                    *int `json:"available,omitempty"`
	BlockStorageInactiveUserData *int `json:"block_storage_inactive_user_data,omitempty"`
	CapacityTierFootprint        *int `json:"capacity_tier_footprint,omitempty"`
	Footprint                    *int `json:"footprint,omitempty"`
	LocalTierFootprint           *int `json:"local_tier_footprint,omitempty"`
	LogicalSpace                 *struct {
		Available   int  `json:"available"`
		Enforcement bool `json:"enforcement"`
		Reporting   bool `json:"reporting"`
		UsedByAfs   int  `json:"used_by_afs"`
	} `json:"logical_space,omitempty"`
	Metadata                 *int                   `json:"metadata,omitempty"`
	OverProvisioned          *int                   `json:"over_provisioned,omitempty"`
	PerformanceTierFootprint *int                   `json:"performance_tier_footprint,omitempty"`
	Size                     *int                   `json:"size,omitempty"`
	Snapshot                 *VolumeSnapshotSettigs `json:"snapshot,omitempty"`
	TotalFootprint           *int                   `json:"total_footprint,omitempty"`
	Used                     *int                   `json:"used,omitempty"`
}

type VolumeSpaceGuarantee

type VolumeSpaceGuarantee struct {
	Honored *bool  `json:"honored,omitempty"`
	Type    string `json:"type,omitempty"`
}

Jump to

Keyboard shortcuts

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