File: instance_backup.go

package info (click to toggle)
incus 6.0.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,392 kB
  • sloc: sh: 16,313; ansic: 3,121; python: 457; makefile: 337; ruby: 51; sql: 50; lisp: 6
file content (109 lines) | stat: -rw-r--r-- 3,024 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package api

import (
	"time"
)

// BackupTarget represents the target storage server for an instance or volume backup.
//
// swagger:model
//
// API extension: backup_s3_upload.
type BackupTarget struct {
	// Protocol is the upload protocol.
	// Example: S3
	Protocol string `json:"protocol" yaml:"protocol"`

	// URL is the HTTPS URL for the backup
	// Example: https://storage.googleapis.com
	URL string `json:"url" yaml:"url"`

	// BucketName is the name of the S3 bucket.
	// Example: my_bucket
	BucketName string `json:"bucket_name" yaml:"bucket_name"`

	// Path is the target path.
	// Example: foo/test.tar
	Path string `json:"path" yaml:"path"`

	// AccessKey is the S3 API access key
	// Example: GOOG1234
	AccessKey string `json:"access_key" yaml:"access_key"`

	// SecretKey is the S3 API access key
	// Example: secret123
	SecretKey string `json:"secret_key" yaml:"secret_key"`
}

// InstanceBackupsPost represents the fields available for a new instance backup.
//
// swagger:model
//
// API extension: instances.
type InstanceBackupsPost struct {
	// Backup name
	// Example: backup0
	Name string `json:"name" yaml:"name"`

	// When the backup expires (gets auto-deleted)
	// Example: 2021-03-23T17:38:37.753398689-04:00
	ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"`

	// Whether to ignore snapshots
	// Example: false
	InstanceOnly bool `json:"instance_only" yaml:"instance_only"`

	// Whether to use a pool-optimized binary format (instead of plain tarball)
	// Example: true
	OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"`

	// What compression algorithm to use
	// Example: gzip
	//
	// API extension: backup_compression_algorithm
	CompressionAlgorithm string `json:"compression_algorithm" yaml:"compression_algorithm"`

	// External upload target
	// The backup will be uploaded and then deleted from local storage.
	//
	// API extension: backup_s3_upload
	Target *BackupTarget `json:"target" yaml:"target"`
}

// InstanceBackup represents an instance backup.
//
// swagger:model
//
// API extension: instances.
type InstanceBackup struct {
	// Backup name
	// Example: backup0
	Name string `json:"name" yaml:"name"`

	// When the backup was created
	// Example: 2021-03-23T16:38:37.753398689-04:00
	CreatedAt time.Time `json:"created_at" yaml:"created_at"`

	// When the backup expires (gets auto-deleted)
	// Example: 2021-03-23T17:38:37.753398689-04:00
	ExpiresAt time.Time `json:"expires_at" yaml:"expires_at"`

	// Whether to ignore snapshots
	// Example: false
	InstanceOnly bool `json:"instance_only" yaml:"instance_only"`

	// Whether to use a pool-optimized binary format (instead of plain tarball)
	// Example: true
	OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"`
}

// InstanceBackupPost represents the fields available for the renaming of a instance backup.
//
// swagger:model
//
// API extension: instances.
type InstanceBackupPost struct {
	// New backup name
	// Example: backup1
	Name string `json:"name" yaml:"name"`
}