types

package
v2.6.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 17, 2022 License: BSD-2-Clause, MIT Imports: 5 Imported by: 29

Documentation

Index

Constants

View Source
const (
	RequestType   EventType = "request"
	ResponseType            = "response"
	HeartbeatType           = "heartbeat"
	BackupType              = "backup"
)

EventTypes are added to events to assist with type assertions

View Source
const (
	// HA means High Availability
	HA = FeatureType("HA")
	// DEV means developer licence
	DEV = FeatureType("DEV")
	// TRIAL means trial licence
	TRIAL = FeatureType("TRIAL")
)
View Source
const DefaultNamespace = "default"

DefaultNamespace is used when a namespace hasn't been specified.

View Source
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 EventType

type EventType string

EventType describes the type of event

type FeatureType

type FeatureType string

FeatureType store features 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.

const (
	None         Operator = ""
	DoesNotExist Operator = "!"
	Equals       Operator = "="
	DoubleEquals Operator = "=="
	In           Operator = "in"
	NotEquals    Operator = "!="
	NotIn        Operator = "notin"
	Exists       Operator = "exists"
	GreaterThan  Operator = "gt"
	LessThan     Operator = "lt"
)

Valid operators

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

type PolicySet map[string]Policy

PolicySet is a representation of the data structure returned from the REST API

func (PolicySet) GetPoliciesWithID

func (p PolicySet) GetPoliciesWithID() []*PolicyWithID

type PolicyWithID

type PolicyWithID struct {
	Policy
	ID string
}

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 Pools

type Pools []*Pool

Pools is a collection of Pool objects

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 Rules

type Rules []*Rule

Rules is a collection of Rules.

type SubModuleStatus

type SubModuleStatus struct {
	Status    string `json:"status"`
	UpdatedAt string `json:"updatedAt"`
	ChangedAt string `json:"changedAt"`
	Message   string `json:"message"`
}

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 Templates

type Templates []*Template

Templates is a collection of Template objects

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 (u *User) MarshalJSON() ([]byte, error)

func (*User) UnmarshalJSON

func (u *User) UnmarshalJSON(data []byte) error

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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