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"`
}
|