serverapi

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2021 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package serverapi contains GO types corresponding to Kopia server API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConnectToRepository added in v0.6.0

func ConnectToRepository(ctx context.Context, c *apiclient.KopiaAPIClient, req *ConnectRepositoryRequest) error

ConnectToRepository invokes the 'repo/connect' API.

func CreateRepository added in v0.6.0

func CreateRepository(ctx context.Context, c *apiclient.KopiaAPIClient, req *CreateRepositoryRequest) error

CreateRepository invokes the 'repo/create' API.

func DisconnectFromRepository added in v0.6.0

func DisconnectFromRepository(ctx context.Context, c *apiclient.KopiaAPIClient) error

DisconnectFromRepository invokes the 'repo/disconnect' API.

func Estimate added in v0.9.0

Estimate starts snapshot estimation task for a given directory.

func GetObject added in v0.6.0

func GetObject(ctx context.Context, c *apiclient.KopiaAPIClient, objectID string) ([]byte, error)

GetObject returns the object payload.

func GetTask added in v0.9.0

func GetTask(ctx context.Context, c *apiclient.KopiaAPIClient, taskID string) (*uitask.Info, error)

GetTask starts snapshot estimation task for a given directory.

func Shutdown added in v0.6.0

func Shutdown(ctx context.Context, c *apiclient.KopiaAPIClient) error

Shutdown invokes the 'repo/shutdown' API.

Types

type APIErrorCode added in v0.5.2

type APIErrorCode string

APIErrorCode indicates machine-readable error code returned in API responses.

const (
	ErrorInternal           APIErrorCode = "INTERNAL"
	ErrorAlreadyConnected   APIErrorCode = "ALREADY_CONNECTED"
	ErrorAlreadyInitialized APIErrorCode = "ALREADY_INITIALIZED"
	ErrorInvalidPassword    APIErrorCode = "INVALID_PASSWORD"
	ErrorInvalidToken       APIErrorCode = "INVALID_TOKEN"
	ErrorMalformedRequest   APIErrorCode = "MALFORMED_REQUEST"
	ErrorNotConnected       APIErrorCode = "NOT_CONNECTED"
	ErrorNotFound           APIErrorCode = "NOT_FOUND"
	ErrorNotInitialized     APIErrorCode = "NOT_INITIALIZED"
	ErrorPathNotFound       APIErrorCode = "PATH_NOT_FOUND"
	ErrorStorageConnection  APIErrorCode = "STORAGE_CONNECTION"
	ErrorAccessDenied       APIErrorCode = "ACCESS_DENIED"
)

Supported error codes.

type CheckRepositoryExistsRequest added in v0.7.0

type CheckRepositoryExistsRequest struct {
	Storage blob.ConnectionInfo `json:"storage"`
}

CheckRepositoryExistsRequest returns success if a repository exists in a given storage, ErrorNotInitialized if not.

type ConnectRepositoryRequest added in v0.5.2

type ConnectRepositoryRequest struct {
	Storage       blob.ConnectionInfo `json:"storage"`
	Password      string              `json:"password"`
	Token         string              `json:"token"` // when set, overrides Storage and Password
	APIServer     *repo.APIServerInfo `json:"apiServer"`
	ClientOptions repo.ClientOptions  `json:"clientOptions"`
}

ConnectRepositoryRequest contains request to connect to a repository.

type CreateRepositoryRequest added in v0.5.2

type CreateRepositoryRequest struct {
	ConnectRepositoryRequest
	NewRepositoryOptions repo.NewRepositoryOptions `json:"options"`
}

CreateRepositoryRequest contains request to create a repository in a given storage.

type CreateSnapshotSourceRequest added in v0.5.2

type CreateSnapshotSourceRequest struct {
	Path           string        `json:"path"`
	CreateSnapshot bool          `json:"createSnapshot"`
	InitialPolicy  policy.Policy `json:"initialPolicy"` // policy to set on the source when first created, ignored if already exists
}

CreateSnapshotSourceRequest contains request to create snapshot source and optionally create first snapshot.

type CreateSnapshotSourceResponse added in v0.5.2

type CreateSnapshotSourceResponse struct {
	Created         bool `json:"created"`     // whether the source was created (false==previously existed)
	SnapshotStarted bool `json:"snapshotted"` // whether snapshotting has been started
}

CreateSnapshotSourceResponse contains response of creating snapshot source.

func CreateSnapshotSource added in v0.6.0

CreateSnapshotSource creates snapshot source with a given path.

type CurrentUserResponse added in v0.7.0

type CurrentUserResponse struct {
	Username string `json:"username"`
	Hostname string `json:"hostname"`
}

CurrentUserResponse is the response of 'current-user' HTTP API command.

type Empty

type Empty struct{}

Empty represents empty request/response.

type ErrorResponse added in v0.5.2

type ErrorResponse struct {
	Code  APIErrorCode `json:"code"`
	Error string       `json:"error"`
}

ErrorResponse represents error response.

type EstimateRequest added in v0.8.0

type EstimateRequest struct {
	Root                 string `json:"root"`
	MaxExamplesPerBucket int    `json:"maxExamplesPerBucket"`
}

EstimateRequest contains request to estimate the size of the snapshot in a given root.

type MountSnapshotRequest added in v0.7.0

type MountSnapshotRequest struct {
	Root string `json:"root"`
}

MountSnapshotRequest contains request to mount a snapshot.

type MountedSnapshot added in v0.7.0

type MountedSnapshot struct {
	Path string    `json:"path"`
	Root object.ID `json:"root"`
}

MountedSnapshot describes single mounted snapshot.

type MountedSnapshots added in v0.7.0

type MountedSnapshots struct {
	Items []*MountedSnapshot `json:"items"`
}

MountedSnapshots describes single mounted snapshot.

type MultipleSourceActionResponse

type MultipleSourceActionResponse struct {
	Sources map[string]SourceActionResponse `json:"sources"`
}

MultipleSourceActionResponse contains per-source responses for all sources targeted by API command.

func CancelUpload added in v0.6.0

CancelUpload cancels snapshot upload on matching snapshots.

func UploadSnapshots added in v0.6.0

UploadSnapshots triggers snapshot upload on matching snapshots.

type PoliciesResponse

type PoliciesResponse struct {
	Policies []*PolicyListEntry `json:"policies"`
}

PoliciesResponse is the response of 'policies' HTTP API command.

func ListPolicies added in v0.6.0

ListPolicies lists the policies managed by the server for a given target filter.

type PolicyListEntry

type PolicyListEntry struct {
	ID     string              `json:"id"`
	Target snapshot.SourceInfo `json:"target"`
	Policy *policy.Policy      `json:"policy"`
}

PolicyListEntry describes single policy.

type RestoreRequest added in v0.8.0

type RestoreRequest struct {
	Root string `json:"root"`

	Filesystem *restore.FilesystemOutput `json:"fsOutput"`

	ZipFile         string `json:"zipFile"`
	UncompressedZip bool   `json:"uncompressedZip"`

	TarFile string          `json:"tarFile"`
	Options restore.Options `json:"options"`
}

RestoreRequest contains request to restore an object (file or directory) to a given destination.

type Snapshot added in v0.5.2

type Snapshot struct {
	ID               manifest.ID          `json:"id"`
	Source           snapshot.SourceInfo  `json:"source"`
	Description      string               `json:"description"`
	StartTime        time.Time            `json:"startTime"`
	EndTime          time.Time            `json:"endTime"`
	IncompleteReason string               `json:"incomplete,omitempty"`
	Summary          *fs.DirectorySummary `json:"summary"`
	RootEntry        string               `json:"rootID"`
	RetentionReasons []string             `json:"retention"`
}

Snapshot describes single snapshot entry.

type SnapshotsResponse added in v0.5.2

type SnapshotsResponse struct {
	Snapshots []*Snapshot `json:"snapshots"`
}

SnapshotsResponse contains a list of snapshots.

func ListSnapshots added in v0.6.0

ListSnapshots lists the snapshots managed by the server for a given source filter.

type SourceActionResponse

type SourceActionResponse struct {
	Success bool `json:"success"`
}

SourceActionResponse is a per-source response.

type SourceStatus

type SourceStatus struct {
	Source           snapshot.SourceInfo        `json:"source"`
	Status           string                     `json:"status"`
	SchedulingPolicy policy.SchedulingPolicy    `json:"schedule"`
	LastSnapshot     *snapshot.Manifest         `json:"lastSnapshot,omitempty"`
	NextSnapshotTime *time.Time                 `json:"nextSnapshotTime,omitempty"`
	UploadCounters   *snapshotfs.UploadCounters `json:"upload,omitempty"`
	CurrentTask      string                     `json:"currentTask,omitempty"`
}

SourceStatus describes the status of a single source.

type SourcesResponse

type SourcesResponse struct {
	LocalUsername string `json:"localUsername"`
	LocalHost     string `json:"localHost"`

	// if set to true, current repository supports accessing data for other users.
	MultiUser bool `json:"multiUser"`

	Sources []*SourceStatus `json:"sources"`
}

SourcesResponse is the response of 'sources' HTTP API command.

func ListSources added in v0.6.0

ListSources lists the snapshot sources managed by the server.

type StatusResponse

type StatusResponse struct {
	Connected                  bool   `json:"connected"`
	ConfigFile                 string `json:"configFile,omitempty"`
	Hash                       string `json:"hash,omitempty"`
	Encryption                 string `json:"encryption,omitempty"`
	Splitter                   string `json:"splitter,omitempty"`
	MaxPackSize                int    `json:"maxPackSize,omitempty"`
	Storage                    string `json:"storage,omitempty"`
	APIServerURL               string `json:"apiServerURL,omitempty"`
	SupportsContentCompression bool   `json:"supportsContentCompression"`

	repo.ClientOptions
}

StatusResponse is the response of 'status' HTTP API command.

func Status added in v0.6.0

Status invokes the 'repo/status' API.

type SupportedAlgorithmsResponse added in v0.5.2

type SupportedAlgorithmsResponse struct {
	DefaultHashAlgorithm       string   `json:"defaultHash"`
	DefaultEncryptionAlgorithm string   `json:"defaultEncryption"`
	DefaultSplitterAlgorithm   string   `json:"defaultSplitter"`
	HashAlgorithms             []string `json:"hash"`
	EncryptionAlgorithms       []string `json:"encryption"`
	SplitterAlgorithms         []string `json:"splitter"`
	CompressionAlgorithms      []string `json:"compression"`
}

SupportedAlgorithmsResponse returns the list of supported algorithms for repository creation.

type TaskListResponse added in v0.8.0

type TaskListResponse struct {
	Tasks []uitask.Info `json:"tasks"`
}

TaskListResponse contains a list of tasks.

type TaskLogResponse added in v0.8.0

type TaskLogResponse struct {
	Logs []uitask.LogEntry `json:"logs"`
}

TaskLogResponse contains a task log.

type UnmountSnapshotRequest added in v0.7.0

type UnmountSnapshotRequest struct {
	Root string `json:"root"`
}

UnmountSnapshotRequest contains request to unmount a snapshot.

Jump to

Keyboard shortcuts

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