Documentation
¶
Index ¶
- Constants
- type AuthConfig
- type CPHealthStatus
- type CapacityStats
- type ClusterHealthNode
- type ConnectivityResult
- type ConnectivityResults
- type DPHealthStatus
- type DeleteOptions
- type Deployment
- type Device
- type DriverInstance
- type DriverInstances
- type ErrorResponse
- type Event
- type EventType
- type FeatureType
- type HealthStatus
- type HealthSubmodules
- type Licence
- type LicenceKeyContainer
- type ListOptions
- type Logger
- type LoggerUpdateOptions
- type Maintenance
- type NamedSubModuleStatus
- type Namespace
- type NamespaceCreateOptions
- type Node
- type NodeConfig
- type NodeUpdateOptions
- type Operator
- type Policy
- type PolicySet
- type PolicyWithID
- type Pool
- type PoolOptions
- type Pools
- type Request
- type Rule
- type RuleCreateOptions
- type RuleUpdateOptions
- type Rules
- type SubModuleStatus
- type Template
- type TemplateCreateOptions
- type Templates
- type User
- type UserCreateOptions
- type VersionInfo
- type VersionResponse
- type Volume
- type VolumeCreateOptions
- type VolumeMountOptions
- type VolumeStats
- type VolumeUnmountOptions
- type VolumeUpdateOptions
Constants ¶
const ( RequestType EventType = "request" ResponseType = "response" HeartbeatType = "heartbeat" BackupType = "backup" )
EventTypes are added to events to assist with type assertions
const ( // HA means High Availability HA = FeatureType("HA") // DEV means developer licence DEV = FeatureType("DEV") // TRIAL means trial licence TRIAL = FeatureType("TRIAL") )
const DefaultNamespace = "default"
DefaultNamespace is used when a namespace hasn't been specified.
const ErrCapacityStatsUnchanged = "no changes"
ErrCapacityStatsUnchanged can be used when comparing stats
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthConfig ¶
type AuthConfig struct {
Name string `json:"name,omitempty"`
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
Auth string `json:"auth,omitempty"`
ServerAddress string `json:"serveraddress,omitempty"`
// IdentityToken is used to authenticate the user and get
// an access token for the registry.
IdentityToken string `json:"identitytoken,omitempty"`
}
AuthConfig contains authorization information for connecting to a Registry
type CPHealthStatus ¶
type CPHealthStatus struct {
KV SubModuleStatus
KVWrite SubModuleStatus
NATS SubModuleStatus
Scheduler SubModuleStatus
}
func (*CPHealthStatus) ToNamedSubmodules ¶
func (c *CPHealthStatus) ToNamedSubmodules() []NamedSubModuleStatus
func (*CPHealthStatus) UnmarshalJSON ¶
func (c *CPHealthStatus) UnmarshalJSON(data []byte) error
type CapacityStats ¶
type CapacityStats struct {
// TotalCapacityBytes is the object's total capacity in bytes.
TotalCapacityBytes uint64 `json:"totalCapacityBytes"`
// AvailableCapacityBytes is the object's available capacity in bytes.
AvailableCapacityBytes uint64 `json:"availableCapacityBytes"`
// ProvisionedCapacityBytes is the object's provisioned capacity in bytes.
ProvisionedCapacityBytes uint64 `json:"provisionedCapacityBytes"`
}
CapacityStats is used to report capacity statistics on pools and controllers.
func (CapacityStats) IsEqual ¶
func (c CapacityStats) IsEqual(n CapacityStats) bool
IsEqual checks if capacity values are the same
type ClusterHealthNode ¶
type ClusterHealthNode struct {
NodeID string `json:"nodeID"`
NodeName string `json:"nodeName"`
Submodules struct {
DirectFSInitiator SubModuleStatus `json:"directfs_initiator"`
Director SubModuleStatus `json:"director"`
KV SubModuleStatus `json:"kv"`
KVWrite SubModuleStatus `json:"kv_write"`
NATS SubModuleStatus `json:"nats"`
Presentation SubModuleStatus `json:"presentation"`
RDB SubModuleStatus `json:"rdb"`
} `json:"submodules"`
}
type ConnectivityResult ¶
type ConnectivityResult struct {
// Label is a human-readable reference for the service being tested.
Label string `json:"label"`
// Address is the host:port of the service being tested.
Address string `json:"address"`
// Source is a human-readable reference for the source host where the tests
// were run from.
Source string `json:"source"`
// LatencyNS is the duration in nanoseconds that the check took to complete.
// Will also be set on unsuccessful attempts.
LatencyNS time.Duration `json:"latency_ns"`
// Error is set if the test returned an error.
Error string `json:"error"`
}
ConnectivityResult capture's a node connectivity report to a given target.
func (ConnectivityResult) IsOK ¶
func (r ConnectivityResult) IsOK() bool
IsOK returns true iff no error
type ConnectivityResults ¶
type ConnectivityResults []ConnectivityResult
ConnectivityResults is a collection of connectivty reports.
func (ConnectivityResults) IsOK ¶
func (r ConnectivityResults) IsOK() bool
IsOK returns true iff no error in any result.
type DPHealthStatus ¶
type DPHealthStatus struct {
DirectFSClient SubModuleStatus
DirectFSServer SubModuleStatus
Director SubModuleStatus
FSDriver SubModuleStatus
FS SubModuleStatus
}
func (*DPHealthStatus) ToNamedSubmodules ¶
func (d *DPHealthStatus) ToNamedSubmodules() []NamedSubModuleStatus
func (*DPHealthStatus) UnmarshalJSON ¶
func (d *DPHealthStatus) UnmarshalJSON(data []byte) error
type DeleteOptions ¶
type DeleteOptions struct {
// Volume unique ID.
// Read Only: true
ID string `json:"id"`
// Volume name.
// Read Only: true
Name string `json:"name"`
// Namespace is the object scope, such as for teams and projects.
Namespace string `json:"namespace"`
// Force will cause the volume to be deleted even if it's in use.
Force bool `json:"force"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
DeleteOptions are available parameters for deleting existing volumes.
type Deployment ¶
type Deployment struct {
// Deployment unique ID
// Read Only: true
ID string `json:"id"`
// Inode number
// Read Only: true
Inode uint32 `json:"inode"`
// Node ID
// Read Only: true
Node string `json:"node"`
// Node name
// Read Only: true
NodeName string `json:"nodeName"`
// Health
// Read Only: true
Health string `json:"health"`
// Status
// Read Only: true
Status string `json:"status"`
// Created at
// Read Only: true
CreatedAt time.Time `json:"createdAt"`
}
Deployment Volume master or replica deployment details. swagger:model Deployment
type Device ¶
type Device struct {
ID string
Labels map[string]string `json:"labels"`
Status string `json:"status"`
Identifier string `json:"identifier"`
Class string `json:"class"`
CapacityStats CapacityStats `json:"capacityStats"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
Device - device type
type DriverInstance ¶
type DriverInstance struct {
// Instance unique ID.
// Read Only: true
ID string `json:"id"`
// Instance name.
Name string `json:"name"`
// Instance description.
Description string `json:"description"`
// Flag describing whether the template is active.
// Default: false
Active bool `json:"active"`
// Config is JSON struct that is passed directly to the driver. There is no
// specific format, and the driver is responsible for validation.
Config interface{} `json:"config"`
// Labels define a list of labels that describe the driver instance. These
// are inherited from the pool when the driver instance is created.
Labels []string `json:"labels"`
// ControllerName specifies the controller that this instance is running on.
ControllerName string `json:"controllerName"`
// PoolID refers to the pool that this driver instance relates to.
PoolID string `json:"poolID"`
// DriverName specifies which capacity driver this is an instance of.
DriverName string `json:"driverName"`
// CapacityStats tracks that capacity usage of this driver instance on the
// current controller.
CapacityStats CapacityStats `json:"capacityStats"`
}
DriverInstance is used to define an instance of a storage capacity driver.
type DriverInstances ¶
type DriverInstances []*DriverInstance
DriverInstances is a collection of Driver instance objects.
func (*DriverInstances) Add ¶
func (i *DriverInstances) Add(new *DriverInstance)
Add a new instance to the list of instances.
func (*DriverInstances) Find ¶
func (i *DriverInstances) Find(pool string, driver string, controller string) *DriverInstance
Find an instance matching the parameters.
func (*DriverInstances) Remove ¶
func (i *DriverInstances) Remove(id string)
Remove an instance to the list of instances.
type ErrorResponse ¶
type ErrorResponse struct {
// The error message.
// Required: true
Message string `json:"message"`
}
ErrorResponse Represents an error. swagger:model ErrorResponse
type Event ¶
type Event struct {
ID string `json:"id"`
// Parent is used to specify parent event
Parent string `json:"parent"`
EventType EventType `json:"eventType"`
Action string `json:"action"`
Timestamp int64 `json:"timestamp"`
Status string `json:"status"`
Message string `json:"message"`
Log []string `json:"log"`
ProgressPercent int `json:"progressPercent"`
CreatedBy string `json:"createdBy"`
Target string `json:"target"`
ActionPayload interface{} `json:"actionPayload"`
// payload can be encoded into bytes as well
ActionPayloadBytes []byte `json:"actionPayloadBts"`
UpdatedAt time.Time `json:"updatedAt"`
CreatedAt time.Time `json:"createdAt"`
// retry related value
Retry bool `json:"retry"`
RetriedAt time.Time `json:"retriedAt"`
Attempts int `json:"attempts"`
// optional parameter
Deadline time.Time `json:"deadline"`
// optional events to dispatch
Rollback []*Request `json:"rollback"`
RollbackDone bool `json:"rollbackDone"`
Subject string `json:"subject"` // or "queue"
// controller ID which created this event
OriginController string `json:"originController"`
}
Event describes the fields that all events should implement. Event is intended to be inherherited in more specific Event types.
type HealthStatus ¶
type HealthStatus struct {
Submodules HealthSubmodules `json:"submodules"`
}
HealthStatus is the health status json object.
func (*HealthStatus) ToCPHealthStatus ¶
func (h *HealthStatus) ToCPHealthStatus() *CPHealthStatus
ToCPHealthStatus returns only CPHealthStatus from the HealthStatus.
func (*HealthStatus) ToDPHealthStatus ¶
func (h *HealthStatus) ToDPHealthStatus() *DPHealthStatus
ToDPHealthStatus returns only DPHealthStatus from the HealthStatus.
type HealthSubmodules ¶
type HealthSubmodules struct {
KV SubModuleStatus `json:"kv,omitempty"`
KVWrite SubModuleStatus `json:"kv_write,omitempty"`
NATS SubModuleStatus `json:"nats,omitempty"`
Scheduler SubModuleStatus `json:"scheduler,omitempty"`
DirectFSClient SubModuleStatus `json:"directfs_initiator,omitempty"`
DirectFSServer SubModuleStatus `json:"directfs_responder,omitempty"`
Director SubModuleStatus `json:"director,omitempty"`
FSDriver SubModuleStatus `json:"rdb,omitempty"`
FS SubModuleStatus `json:"presentation,omitempty"`
}
HealthSubmodules is the "submodules" attribuet of HealthStatus.
type Licence ¶
type Licence struct {
ArrayUUID string `json:"arrayUUID,omitempty"`
ClusterID string `json:"clusterID,omitempty"`
CustomerID string `json:"customerID"`
CustomerName string `json:"customerName"`
Storage int `json:"storage"`
ValidUntil time.Time `json:"validUntil"`
LicenceType string `json:"licenceType"`
Features map[FeatureType]bool `json:"features"`
Unregistered bool `json:"unregistered"`
}
Licence holds the information to be encoded in the licence key. It needs to be synced across the django server running on portal-API as well as the corresponding decoding package on the storageOS control plane
type LicenceKeyContainer ¶
type LicenceKeyContainer struct {
Key string `json:"key"`
}
LicenceKeyContainer - stores a licence key
type ListOptions ¶
type ListOptions struct {
// FieldSelector restricts the list of returned objects by their fields. Defaults to everything.
FieldSelector string
// LabelSelector restricts the list of returned objects by their labels. Defaults to everything.
LabelSelector string
// Namespace is the object scope, such as for teams and projects.
Namespace string
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context
}
ListOptions are optional parameters for finding and listing most objects.
type Logger ¶
type Logger struct {
// Node name
Node string `json:"node"`
// Log level
Level string `json:"level"`
// Log filter
Filter string `json:"filter"`
// Log filters by category
// Read Only: true
Categories map[string]string `json:"categories"`
}
Logger is the runtime configuration of the node's logging services. swagger:model Logger
type LoggerUpdateOptions ¶
type LoggerUpdateOptions struct {
// Log level
Level string `json:"level"`
// Log filter
Filter string `json:"filter"`
// List of nodes to update. All if not set.
Nodes []string `json:"nodes"`
// List of fields to update. Must be set.
Fields []string `json:"fields"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
LoggerUpdateOptions are the available parameters for updating loggers.
type Maintenance ¶
type Maintenance struct {
Enabled bool `json:"enabled"`
UpdatedBy string `json:"updatedBy"`
UpdatedAt time.Time `json:"updatedAt"`
}
Maintenance is used to place the cluster in maintenance mode.
type NamedSubModuleStatus ¶
type NamedSubModuleStatus struct {
Name string
SubModuleStatus
}
type Namespace ¶
type Namespace struct {
// Namespace unique ID.
// Read Only: true
ID string `json:"id"`
// Namespace name.
// Required: true
Name string `json:"name"`
// The optional DisplayName is how the project is displayed in the web console (defaults to name).
DisplayName string `json:"displayName"`
// Namespcae description.
Description string `json:"description"`
// User-defined key/value metadata.
Labels map[string]string `json:"labels"`
// When the namespace was created.
// Read Only: true
CreatedAt time.Time `json:"createdAt"`
// User that created the namespace.
// Read Only: true
CreatedBy string `json:"createdBy"`
// When the namespace was created.
// Read Only: true
UpdatedAt time.Time `json:"updatedAt"`
}
Namespace is used to as a container to isolate namespace and rule obects.
type NamespaceCreateOptions ¶
type NamespaceCreateOptions struct {
// Name is the name of the namespace to create.
// Required: true
Name string `json:"name"`
// The optional DisplayName is how the project is displayed in the web console (defaults to name).
DisplayName string `json:"displayName"`
// Description describes the namespace.
Description string `json:"description"`
// Labels are user-defined key/value metadata.
Labels map[string]string `json:"labels"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
NamespaceCreateOptions are available parameters for creating new namespaces.
type Node ¶
type Node struct {
NodeConfig
HostID uint32 `json:"hostID"`
Name string `json:"name"`
Description string `json:"description"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
Health string `json:"health"`
HealthUpdatedAt time.Time `json:"healthUpdatedAt"`
VersionInfo map[string]VersionInfo `json:"versionInfo"`
Version string `json:"version"`
Revision string // the GitCommit this maps to
Scheduler bool `json:"scheduler"`
Cordon bool `json:"cordon"`
Drain bool `json:"drain"`
VolumeStats VolumeStats `json:"volumeStats"`
CapacityStats CapacityStats `json:"capacityStats"`
}
Node represents a StorageOS cluster node.
type NodeConfig ¶
type NodeConfig struct {
// UUID is the unique identifier of the node. It cannot be changed once set.
ID string `json:"id,omitempty"`
// Hostname of the node.
Hostname string `json:"hostname"`
// Address is is used for communication between nodes.
// Nodes will fail to start if the address they first registered with
// changes. This protects against the container being re-scheduled on a
// different host. Nodes will typically use the host server's ip address,
// running the docker container in -net host mode.
Address string `json:"address"`
// KvAddr is the address of the KV store to use for storing configuration.
// It can include the address or FQDN with optional port. Defaults to
// Address/ADVERTISE_IP.
KvAddr string `json:"kvAddr"`
// Port allocations
APIPort int `json:"apiPort"`
NatsPort int `json:"natsPort"`
NatsClusterPort int `json:"natsClusterPort"`
SerfPort int `json:"serfPort"`
DFSPort int `json:"dfsPort"`
KVPeerPort int `json:"kvPeerPort"`
KVClientPort int `json:"kvClientPort"`
Labels map[string]string `json:"labels"`
LogLevel string `json:"logLevel"` // the level of the logs to outout
LogFormat string `json:"logFormat"` // either text or json
LogFilter string `json:"logFilter"` // used to discard messages based on the message's category
// BindAddr is used to control the default address StorageOS binds to. This
// should always be set to 0.0.0.0 (all interfaces).
BindAddr string `json:"bindAddr"`
// DeviceDir is where the volumes are exported. This directory must be
// shared into the container using the rshared volume mount option.
DeviceDir string `json:"deviceDir"`
// Join existing cluster
Join string `json:"join"`
// Backend selects the KV backend, either embedded (testing only) or etcd.
Backend string `json:"kvBackend"`
// EnableDebug is used to enable various debugging features. Used by http
// to enable debug endpoints and as a shortcut to enable debug logging.
EnableDebug bool `json:"debug"`
// Devices specify all devices that are available on the node.
Devices []Device `json:"devices"`
}
NodeConfig is a read-only representation of the node's configuration, set at start time by environment variables passed to the container or using defaults.
type NodeUpdateOptions ¶
type NodeUpdateOptions struct {
// Node unique ID.
// Read Only: true
ID string `json:"id"`
// Node name.
// Read Only: true
Name string `json:"name"`
// Description of the node.
Description string `json:"description"`
// Labels are user-defined key/value metadata.
Labels map[string]string `json:"labels"`
// Cordon marks the node as unschedulable if true
Cordon bool `json:"cordon"`
Drain bool `json:"drain"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
NodeUpdateOptions are available parameters for updating existing nodes.
type Operator ¶
type Operator string
Operator represents a key/field's relationship to value(s). See labels.Requirement and fields.Requirement for more details.
type Policy ¶
type Policy struct {
Spec struct {
User string `json:"user,omitempty"`
Group string `json:"group,omitempty"`
Readonly bool `json:"readonly,omitempty"`
APIGroup string `json:"apiGroup,omitempty"`
Resource string `json:"resource,omitempty"`
Namespace string `json:"namespace,omitempty"`
NonResourcePath string `json:"nonResourcePath,omitempty"`
} `json:"spec"`
}
type PolicySet ¶
PolicySet is a representation of the data structure returned from the REST API
func (PolicySet) GetPoliciesWithID ¶
func (p PolicySet) GetPoliciesWithID() []*PolicyWithID
type PolicyWithID ¶
PolicyWithId is used as an internal type to render table formated versions of the json response
func (*PolicyWithID) MarshalJSON ¶
func (p *PolicyWithID) MarshalJSON() ([]byte, error)
MarshalJSON returns a marshaled copy of the internal policy object, so it is still valid to use with the REST API
type Pool ¶
type Pool struct {
// Pool unique ID.
// Read Only: true
ID string `json:"id"`
// Pool name.
// Required: true
Name string `json:"name"`
// Pool description.
Description string `json:"description"`
// Default determines whether this pool is the default if a volume is
// provisioned without a pool specified. There can only be one default pool.
Default bool `json:"default"`
NodeSelector string `json:"nodeSelector"`
// DeviceSelector - specifies a selector to filter node devices based on their labels.
// Only devices from nodes that are in the 'NodeNames' list can be selected
DeviceSelector string `json:"deviceSelector"`
// Populated by the system. Read-only.
CapacityStats CapacityStats `json:"capacityStats"`
// This field is computed based on NodeSelector value
// Populated by the system. Read-only.
Nodes []*Node `json:"nodes"`
// Labels define a list of labels that describe the pool.
Labels map[string]string `json:"labels"`
}
Pool is used to define a capacity pool.
type PoolOptions ¶
type PoolOptions struct {
ID string `json:"id"`
Name string `json:"name"`
// Pool description.
Description string `json:"description"`
// Default determines whether this pool is the default if a volume is
// provisioned without a pool specified. There can only be one default pool.
Default bool `json:"default"`
NodeSelector string `json:"nodeSelector"`
// DeviceSelector - specifies a selector to filter node devices based on their labels.
// Only devices from nodes that are in the 'NodeNames' list can be selected
DeviceSelector string `json:"deviceSelector"`
// Labels define a list of labels that describe the pool.
Labels map[string]string `json:"labels"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
PoolOptions are available parameters for creating or updating pools.
type Request ¶
type Request struct {
Event
}
Request is the message structure used for sending request events
type Rule ¶
type Rule struct {
// Rule unique ID.
// Read Only: true
ID string `json:"id"`
// Rule name.
// Required: true
Name string `json:"name"`
// Namespace is the object name and authentication scope, such as for teams and projects.
Namespace string `json:"namespace"`
// Rule description.
Description string `json:"description"`
// Flag describing whether the rule is active.
// Default: false
Active bool `json:"active"`
// Weight is used to determine order during rule processing. Rules with
// heavier weights are processed later.
// default: 0
Weight int `json:"weight"`
// RuleAction controls whether the action is to add or remove a label from the
// matching object(s).
RuleAction string `json:"action"`
// Selectors defines the list of labels that should trigger a rule.
Selector string `json:"selector"`
// Labels define the list of labels that will be added or removed from the
// matching object(s).
Labels map[string]string `json:"labels"`
}
Rule is used to define a rule
type RuleCreateOptions ¶
type RuleCreateOptions struct {
// Rule name.
// Required: true
Name string `json:"name"`
// Namespace is the object name and authentication scope, such as for teams and projects.
Namespace string `json:"namespace"`
// Rule description.
Description string `json:"description"`
// Flag describing whether the rule is active.
// Default: false
Active bool `json:"active"`
// Weight is used to determine order during rule processing. Rules with
// heavier weights are processed later.
// default: 0
Weight int `json:"weight"`
// RuleAction controls whether the action is to add or remove a label from the
// matching object(s).
RuleAction string `json:"action"`
// Selectors defines the list of labels that should trigger a rule.
Selector string `json:"selector"`
// Labels define the list of labels that will be added or removed from the
// matching object(s).
Labels map[string]string `json:"labels"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
RuleCreateOptions are available parameters for creating new rules.
type RuleUpdateOptions ¶
type RuleUpdateOptions struct {
// Rule unique ID.
// Read Only: true
ID string `json:"id"`
// Rule name.
// Required: true
Name string `json:"name"`
// Namespace is the object name and authentication scope, such as for teams and projects.
Namespace string `json:"namespace"`
// Rule description.
Description string `json:"description"`
// Flag describing whether the rule is active.
// Default: false
Active bool `json:"active"`
// Weight is used to determine order during rule processing. Rules with
// heavier weights are processed later.
// default: 0
Weight int `json:"weight"`
// Operator is used to compare objects or labels.
Operator string `json:"operator"`
// RuleAction controls whether the action is to add or remove a label from the
// matching object(s).
RuleAction string `json:"action"`
// Selectors defines the list of labels that should trigger a rule.
Selector string `json:"selector"`
// Labels define the list of labels that will be added or removed from the
// matching object(s).
Labels map[string]string `json:"labels"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
RuleUpdateOptions are available parameters for creating new rules.
type SubModuleStatus ¶
type Template ¶
type Template struct {
// Template unique ID.
// Read Only: true
ID string `json:"id"`
// Template name.
// Required: true
Name string `json:"name"`
// Template description.
Description string `json:"description"`
// Template format. This is used for pattern matching against labels.
Format string `json:"format"`
// Autoincrement defines whether there is a dynamic numeric component in the
// template that must auto-increment when objects with the same name already
// exists.
AutoIncrement bool `json:"autoIncrement"`
// Padding determines whether a dynamic numeric component in the name should
// be padded.
// default: false
Padding bool `json:"padding"`
// PaddingLength sets the length of the padding. A Padding length of 3 would
// set name similar to `abc001` for the first item. Ignored if Padding set to
// `false`.
PaddingLength int `json:"paddingLength"`
// Flag describing whether the template is active.
// Default: false
Active bool `json:"active"`
// Weight is used to determine order during template processing. Templates
// with heavier weights are processed later.
// default: 0
Weight int `json:"weight"`
// ObjectTypes defines the type names that the template can be applied to.
ObjectTypes []string `json:"objectTypes"`
// Labels define a list of the labels that the object must have in order for
// the template to be applied.
Labels map[string]string `json:"labels"`
}
Template is used to define an auto-naming rule.
type TemplateCreateOptions ¶
type TemplateCreateOptions struct {
// Template name.
// Required: true
Name string `json:"name"`
// Template description.
Description string `json:"description"`
// Template format. This is used for pattern matching against labels.
Format string `json:"format"`
// Autoincrement defines whether there is a dynamic numeric component in the
// template that must auto-increment when objects with the same name already
// exists.
AutoIncrement bool `json:"autoIncrement"`
// Padding determines whether a dynamic numeric component in the name should
// be padded.
// default: false
Padding bool `json:"padding"`
// PaddingLength sets the length of the padding. A Padding length of 3 would
// set name similar to `abc001` for the first item. Ignored if Padding set to
// `false`.
PaddingLength int `json:"paddingLength"`
// Flag describing whether the template is active.
// Default: false
Active bool `json:"active"`
// Weight is used to determine order during template processing. Templates
// with heavier weights are processed later.
// default: 0
Weight int `json:"weight"`
// ObjectTypes defines the type names that the template can be applied to.
ObjectTypes []string `json:"objectTypes"`
// Labels define a list of the labels that the object must have in order for
// the template to be applied.
Labels map[string]string `json:"labels"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
TemplateCreateOptions are available parameters for creating new templates.
type User ¶
type User struct {
UUID string `json:"id"`
Username string `json:"username"`
Groups []string `json:"groups"`
Password string `json:"password,omitempty"`
Role string `json:"role"`
}
func (*User) MarshalJSON ¶
func (*User) UnmarshalJSON ¶
type UserCreateOptions ¶
type UserCreateOptions struct {
Username string `json:"username"`
Groups []string `json:"groups"`
Password string `json:"password"`
Role string `json:"role"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
func (UserCreateOptions) MarshalJSON ¶
func (u UserCreateOptions) MarshalJSON() ([]byte, error)
type VersionInfo ¶
type VersionInfo struct {
Name string `json:"name"`
BuildDate string `json:"buildDate"`
Revision string `json:"revision"`
Version string `json:"version"`
APIVersion string `json:"apiVersion"`
GoVersion string `json:"goVersion"`
OS string `json:"os"`
Arch string `json:"arch"`
KernelVersion string `json:"kernelVersion"`
Experimental bool `json:"experimental"`
}
VersionInfo describes version and runtime info.
type VersionResponse ¶
type VersionResponse struct {
Client *VersionInfo
Server *VersionInfo
}
func (VersionResponse) ServerOK ¶
func (v VersionResponse) ServerOK() bool
ServerOK returns true when the client could connect to the docker server and parse the information received. It returns false otherwise.
type Volume ¶
type Volume struct {
// Volume unique ID.
// Read Only: true
ID string `json:"id"`
// Block device inode.
// Read Only: true
Inode uint32 `json:"inode"`
// Volume name.
// Required: true
Name string `json:"name"`
// Size in GB.
// Required: true
Size int `json:"size"`
// Name of capacity pool to provision the volume in, or the name of the current pool.
Pool string `json:"pool"`
// Filesystem type to mount. May be set on create, or set by rules to influence client.
FSType string `json:"fsType"`
// Volume description.
Description string `json:"description"`
// User-defined key/value metadata.
Labels map[string]string `json:"labels"`
// Namespace is the object name and authentication scope, such as for teams and projects.
Namespace string `json:"namespace"`
// node selector (where volumes should land)
NodeSelector string `json:"nodeSelector"`
// Volume deployment information for the master volume.
// Read Only: true
Master *Deployment `json:"master,omitempty"`
// Flag indicating if the volume is mounted and in use.
// Read Only: true
Mounted bool `json:"mounted"`
// MountDevice, where the device is located
MountDevice string `json:"mountDevice"`
// Mountpoint, where the volume is mounted
Mountpoint string `json:"mountpoint"`
// When the volume was mounted.
// Read Only: true
MountedAt time.Time `json:"mountedAt,omitempty"`
// Reference to the node that has the volume mounted.
// Read Only: true
MountedBy string `json:"mountedBy,omitempty"`
// Volume deployment information for the replica volumes.
// Read Only: true
Replicas []*Deployment `json:"replicas"`
// Volume health, one of: healthy, degraded or dead.
// Read Only: true
Health string `json:"health"`
// Short status, one of: pending, evaluating, deploying, active, unavailable, failed, updating, deleting.
// Read Only: true
Status string `json:"status"`
// Status message explaining current status.
// Read Only: true
StatusMessage string `json:"statusMessage"`
// mkfs performed on new volumes
MkfsDone bool `json:"mkfsDone"`
MkfsDoneAt time.Time `json:"mkfsDoneAt"`
// When the volume was created.
// Read Only: true
CreatedAt time.Time `json:"createdAt"`
// User that created the volume.
// Read Only: true
CreatedBy string `json:"createdBy"`
}
Volume represents storage volume. swagger:model Volume
type VolumeCreateOptions ¶
type VolumeCreateOptions struct {
// Name is the name of the volume to create.
// Required: true
Name string `json:"name"`
// Description describes the volume.
Description string `json:"description"`
// Size in GB.
// Required: true
Size int `json:"size"`
// Pool is the name or id of capacity pool to provision the volume in.
Pool string `json:"pool"`
// Filesystem type to mount. May be set on create, or set by rules to influence client.
FSType string `json:"fsType"`
// Namespace is the object scope, such as for teams and projects.
Namespace string `json:"namespace"`
// node selector (where volumes should land)
NodeSelector string `json:"nodeSelector"`
// Labels are user-defined key/value metadata.
Labels map[string]string `json:"labels"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
VolumeCreateOptions are available parameters for creating new volumes.
type VolumeMountOptions ¶
type VolumeMountOptions struct {
// Volume unique ID.
ID string `json:"id"`
// Name is the name of the volume to mount.
Name string `json:"name"`
// Mountpoint, where the volume is mounted
Mountpoint string `json:"mountpoint"`
// Filesystem type, optional but expected when mounting raw volume
FsType string `json:"fsType"`
// Namespace is the object scope, such as for teams and projects.
Namespace string `json:"namespace"`
// The hostname of the client mounting the volume.
Client string `json:"client"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
VolumeMountOptions - used by clients to inform of volume mount operations.
type VolumeStats ¶
type VolumeStats struct {
MasterVolumeCount int `json:"masterVolumeCount"`
ReplicaVolumeCount int `json:"replicaVolumeCount"`
VirtualVolumeCount int `json:"virtualVolumeCount"`
}
VolumeStats - volume stats (volume counts, looking forward to capacity)
type VolumeUnmountOptions ¶
type VolumeUnmountOptions struct {
// Volume unique ID.
ID string `json:"id"`
// Name is the name of the volume to unmount.
Name string `json:"name"`
// Namespace is the object scope, such as for teams and projects.
Namespace string `json:"namespace"`
// The hostname of the client unmounting the volume. Must match the hostname
// of the client that registered the mount operation.
Client string `json:"client"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
VolumeUnmountOptions - used by clients to inform of volume mount operations.
type VolumeUpdateOptions ¶
type VolumeUpdateOptions struct {
// Volume unique ID.
// Read Only: true
ID string `json:"id"`
// Volume name.
// Read Only: true
Name string `json:"name"`
// Description describes the volume.
Description string `json:"description"`
// Size in GB.
// Required: true
Size int `json:"size"`
// Namespace is the object scope, such as for teams and projects.
Namespace string `json:"namespace"`
// node selector (where volumes should land)
NodeSelector string `json:"nodeSelector"`
// Labels are user-defined key/value metadata.
Labels map[string]string `json:"labels"`
// Context can be set with a timeout or can be used to cancel a request.
Context context.Context `json:"-"`
}
VolumeUpdateOptions are available parameters for updating existing volumes.
Source Files
¶
- auth.go
- capacity_stats.go
- cluster.go
- connectivity.go
- delete_options.go
- deployment.go
- driver_instance.go
- error_response.go
- events.go
- health.go
- licence.go
- list_options.go
- logger.go
- namespace.go
- node.go
- node_update_options.go
- operator.go
- policy.go
- pool.go
- pool_options.go
- rule.go
- template.go
- template_create_options.go
- user.go
- version.go
- volume.go
- volume_create_options.go
- volume_stats.go
- volume_update_options.go