Documentation

Overview

    This package provides a high-level interface to the NetApp AWS Cloud Volumes NFS REST API.

    Index

    Constants

    View Source
    const (
    	StateCreating  = "creating"
    	StateAvailable = "available"
    	StateUpdating  = "updating"
    	StateDisabled  = "disabled"
    	StateDeleting  = "deleting"
    	StateDeleted   = "deleted"
    	StateError     = "error"
    
    	ProtocolTypeNFSv3 = "NFSv3"
    	ProtocolTypeNFSv4 = "NFSv4"
    	ProtocolTypeCIFS  = "CIFS"
    
    	ServiceLevelStandard = "standard"
    	ServiceLevelPremium  = "premium"
    	ServiceLevelExtreme  = "extreme"
    )

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type BackupPolicy

    type BackupPolicy struct {
    	DailyBackupsToKeep   int  `json:"dailyBackupsToKeep"`
    	Enabled              bool `json:"enabled"`
    	MonthlyBackupsToKeep int  `json:"monthlyBackupsToKeep"`
    	WeeklyBackupsToKeep  int  `json:"weeklyBackupsToKeep"`
    }

    type CallResponseError

    type CallResponseError struct {
    	Code    int    `json:"code"`
    	Message string `json:"message"`
    }

      CallResponseError is used for errors on RESTful calls to return what went wrong

      type Client

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

      func NewDriver

      func NewDriver(config ClientConfig) *Client

        NewDriver is a factory method for creating a new instance.

        func (*Client) CreateSnapshot

        func (d *Client) CreateSnapshot(request *SnapshotCreateRequest) (*Snapshot, error)

        func (*Client) CreateVolume

        func (d *Client) CreateVolume(request *FilesystemCreateRequest) (*FileSystem, error)

        func (*Client) DeleteSnapshot

        func (d *Client) DeleteSnapshot(filesystem *FileSystem, snapshot *Snapshot) error

        func (*Client) DeleteVolume

        func (d *Client) DeleteVolume(filesystem *FileSystem) error

        func (*Client) GetMountTargetsForVolume

        func (d *Client) GetMountTargetsForVolume(filesystem *FileSystem) (*[]MountTarget, error)

        func (*Client) GetRegions

        func (d *Client) GetRegions() (*[]Region, error)

        func (*Client) GetSnapshotByID

        func (d *Client) GetSnapshotByID(snapshotId string) (*Snapshot, error)

        func (*Client) GetSnapshotForVolume

        func (d *Client) GetSnapshotForVolume(filesystem *FileSystem, snapshotName string) (*Snapshot, error)

        func (*Client) GetSnapshotsForVolume

        func (d *Client) GetSnapshotsForVolume(filesystem *FileSystem) (*[]Snapshot, error)

        func (*Client) GetVersion

        func (d *Client) GetVersion() (*utils.Version, *utils.Version, error)

        func (*Client) GetVolumeByCreationToken

        func (d *Client) GetVolumeByCreationToken(creationToken string) (*FileSystem, error)

        func (*Client) GetVolumeByID

        func (d *Client) GetVolumeByID(fileSystemId string) (*FileSystem, error)

        func (*Client) GetVolumeByName

        func (d *Client) GetVolumeByName(name string) (*FileSystem, error)

        func (*Client) GetVolumes

        func (d *Client) GetVolumes() (*[]FileSystem, error)

        func (*Client) InvokeAPI

        func (d *Client) InvokeAPI(requestBody []byte, method string, awsURL string) (*http.Response, []byte, error)

          InvokeAPI makes a REST call to the cloud volumes REST service. The body must be a marshaled JSON byte array (or nil). The method is the HTTP verb (i.e. GET, POST, ...).

          func (*Client) RelabelVolume

          func (d *Client) RelabelVolume(filesystem *FileSystem, labels []string) (*FileSystem, error)

          func (*Client) RenameRelabelVolume

          func (d *Client) RenameRelabelVolume(filesystem *FileSystem, newName string, labels []string) (*FileSystem, error)

          func (*Client) RenameVolume

          func (d *Client) RenameVolume(filesystem *FileSystem, newName string) (*FileSystem, error)

          func (*Client) ResizeVolume

          func (d *Client) ResizeVolume(filesystem *FileSystem, newSizeBytes int64) (*FileSystem, error)

          func (*Client) RestoreSnapshot

          func (d *Client) RestoreSnapshot(filesystem *FileSystem, snapshot *Snapshot) error

          func (*Client) VolumeExistsByCreationToken

          func (d *Client) VolumeExistsByCreationToken(creationToken string) (bool, *FileSystem, error)

          func (*Client) WaitForSnapshotState

          func (d *Client) WaitForSnapshotState(snapshot *Snapshot, desiredState string, abortStates []string) error

          func (*Client) WaitForVolumeState

          func (d *Client) WaitForVolumeState(filesystem *FileSystem, desiredState string, abortStates []string) error

          type ClientConfig

          type ClientConfig struct {
          
          	// AWS CVS API authentication parameters
          	APIURL    string
          	APIKey    string
          	SecretKey string
          	ProxyURL  string
          
          	// Options
          	DebugTraceFlags map[string]bool
          }

            ClientConfig holds configuration data for the API driver object.

            type DailySchedule

            type DailySchedule struct {
            	Hour            int `json:"hour"`
            	Minute          int `json:"minute"`
            	SnapshotsToKeep int `json:"snapshotsToKeep"`
            }

            type Error

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

            func (Error) Code

            func (e Error) Code() int

            func (Error) Error

            func (e Error) Error() string

            func (Error) IsPassed

            func (e Error) IsPassed() bool

            func (Error) Message

            func (e Error) Message() string

            type ExportPolicy

            type ExportPolicy struct {
            	Rules []ExportRule `json:"rules"`
            }

            type ExportRule

            type ExportRule struct {
            	AllowedClients string `json:"allowedClients"`
            	Cifs           bool   `json:"cifs"`
            	Nfsv3          bool   `json:"nfsv3"`
            	Nfsv4          bool   `json:"nfsv4"`
            	RuleIndex      int    `json:"ruleIndex"`
            	UnixReadOnly   bool   `json:"unixReadOnly"`
            	UnixReadWrite  bool   `json:"unixReadWrite"`
            }

            type FileSystem

            type FileSystem struct {
            	Created               time.Time      `json:"created,omitempty"`
            	ExportPolicy          ExportPolicy   `json:"exportPolicy,omitempty"`
            	Labels                []string       `json:"labels,omitempty"`
            	FileSystemID          string         `json:"fileSystemId,omitempty"`
            	LifeCycleState        string         `json:"lifeCycleState,omitempty"`
            	LifeCycleStateDetails string         `json:"lifeCycleStateDetails,omitempty"`
            	Name                  string         `json:"name,omitempty"`
            	OwnerID               string         `json:"ownerId,omitempty"`
            	Region                string         `json:"region,omitempty"`
            	CreationToken         string         `json:"creationToken,omitempty"`
            	ProtocolTypes         []string       `json:"protocolTypes"`
            	QuotaInBytes          int64          `json:"quotaInBytes,omitempty"`
            	ServiceLevel          string         `json:"serviceLevel,omitempty"`
            	SnapReserve           int            `json:"snapReserve,omitempty"`
            	SnapshotDirectory     bool           `json:"snapshotDirectory,omitempty"`
            	SnapshotPolicy        SnapshotPolicy `json:"snapshotPolicy,omitempty"`
            	Timezone              string         `json:"timezone,omitempty"`
            	UsedBytes             int            `json:"usedBytes,omitempty"`
            }

            type FilesystemCreateRequest

            type FilesystemCreateRequest struct {
            	Name              string         `json:"name"`
            	Region            string         `json:"region"`
            	BackupPolicy      *BackupPolicy  `json:"backupPolicy,omitempty"`
            	CreationToken     string         `json:"creationToken"`
            	ExportPolicy      ExportPolicy   `json:"exportPolicy,omitempty"`
            	Jobs              []Job          `json:"jobs,omitempty"`
            	Labels            []string       `json:"labels,omitempty"`
            	PoolID            string         `json:"poolId,omitempty"`
            	ProtocolTypes     []string       `json:"protocolTypes"`
            	QuotaInBytes      int64          `json:"quotaInBytes"`
            	SecurityStyle     string         `json:"securityStyle"`
            	ServiceLevel      string         `json:"serviceLevel"`
            	SnapReserve       *int64         `json:"snapReserve,omitempty"`
            	SnapshotDirectory bool           `json:"snapshotDirectory"`
            	SnapshotPolicy    SnapshotPolicy `json:"snapshotPolicy,omitempty"`
            	Timezone          string         `json:"timezone,omitempty"`
            	VendorID          string         `json:"vendorID,omitempty"`
            	BackupID          string         `json:"backupId,omitempty"`
            	SnapshotID        string         `json:"snapshotId,omitempty"`
            }

            type FilesystemRenameRelabelRequest

            type FilesystemRenameRelabelRequest struct {
            	Name          string   `json:"name"`
            	Region        string   `json:"region"`
            	CreationToken string   `json:"creationToken"`
            	ServiceLevel  string   `json:"serviceLevel"`
            	Labels        []string `json:"labels"`
            }

            type FilesystemRenameRequest

            type FilesystemRenameRequest struct {
            	Name          string `json:"name"`
            	Region        string `json:"region"`
            	CreationToken string `json:"creationToken"`
            	ServiceLevel  string `json:"serviceLevel"`
            }

            type FilesystemResizeRequest

            type FilesystemResizeRequest struct {
            	Region        string `json:"region"`
            	CreationToken string `json:"creationToken"`
            	QuotaInBytes  int64  `json:"quotaInBytes"`
            	ServiceLevel  string `json:"serviceLevel"`
            }

            type HourlySchedule

            type HourlySchedule struct {
            	Minute          int `json:"minute"`
            	SnapshotsToKeep int `json:"snapshotsToKeep"`
            }

            type Job

            type Job struct{}

            type MonthlySchedule

            type MonthlySchedule struct {
            	DaysOfMonth     string `json:"daysOfMonth"`
            	Hour            int    `json:"hour"`
            	Minute          int    `json:"minute"`
            	SnapshotsToKeep int    `json:"snapshotsToKeep"`
            }

            type MountTarget

            type MountTarget struct {
            	Created               time.Time `json:"created"`
            	FileSystemID          string    `json:"fileSystemId"`
            	LifeCycleState        string    `json:"lifeCycleState"`
            	LifeCycleStateDetails string    `json:"lifeCycleStateDetails"`
            	OwnerID               string    `json:"ownerId"`
            	Region                string    `json:"region"`
            	EndIP                 string    `json:"endIP"`
            	Gateway               string    `json:"gateway"`
            	IPAddress             string    `json:"ipAddress"`
            	MountTargetID         string    `json:"mountTargetId"`
            	Netmask               string    `json:"netmask"`
            	StartIP               string    `json:"startIP"`
            	VlanID                int       `json:"vlanId"`
            }

            type Region

            type Region struct {
            	UUID      string    `json:"UUID"`
            	CreatedAt time.Time `json:"createdAt"`
            	Name      string    `json:"name"`
            	UpdatedAt time.Time `json:"updatedAt"`
            }

            type RegionsResponse

            type RegionsResponse struct {
            	Regions []Region
            }

            type Snapshot

            type Snapshot struct {
            	Created               time.Time `json:"created"`
            	FileSystemID          string    `json:"fileSystemId"`
            	LifeCycleState        string    `json:"lifeCycleState"`
            	LifeCycleStateDetails string    `json:"lifeCycleStateDetails"`
            	Name                  string    `json:"name"`
            	OwnerID               string    `json:"ownerId"`
            	Region                string    `json:"region"`
            	SnapshotID            string    `json:"snapshotId"`
            	UsedBytes             int       `json:"usedBytes"`
            }

            type SnapshotCreateRequest

            type SnapshotCreateRequest struct {
            	FileSystemID string `json:"fileSystemId"`
            	Name         string `json:"name"`
            	Region       string `json:"region"`
            }

            type SnapshotPolicy

            type SnapshotPolicy struct {
            	DailySchedule   DailySchedule   `json:"dailySchedule"`
            	Enabled         bool            `json:"enabled"`
            	HourlySchedule  HourlySchedule  `json:"hourlySchedule"`
            	MonthlySchedule MonthlySchedule `json:"monthlySchedule"`
            	WeeklySchedule  WeeklySchedule  `json:"weeklySchedule"`
            }

            type SnapshotRevertRequest

            type SnapshotRevertRequest struct {
            	FileSystemID string `json:"fileSystemId"`
            	Region       string `json:"region"`
            	SnapshotID   string `json:"snapshotId"`
            }

            type TerminalStateError

            type TerminalStateError struct {
            	Err error
            }

              TerminalStateError signals that the object is in a terminal state. This is used to stop waiting on an object to change state.

              func TerminalState

              func TerminalState(err error) *TerminalStateError

                TerminalState wraps the given err in a *TerminalStateError.

                func (*TerminalStateError) Error

                func (e *TerminalStateError) Error() string

                type VersionResponse

                type VersionResponse struct {
                	APIVersion string `json:"apiVersion"`
                	SdeVersion string `json:"sdeVersion"`
                }

                type WeeklySchedule

                type WeeklySchedule struct {
                	Day             string `json:"day"`
                	Hour            int    `json:"hour"`
                	Minute          int    `json:"minute"`
                	SnapshotsToKeep int    `json:"snapshotsToKeep"`
                }