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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
package api
// StorageBucketsPost represents the fields of a new storage pool bucket
//
// swagger:model
//
// API extension: storage_buckets.
type StorageBucketsPost struct {
StorageBucketPut `yaml:",inline"`
// Bucket name
// Example: foo
//
// API extension: storage_buckets
Name string `json:"name" yaml:"name"`
}
// StorageBucketPut represents the modifiable fields of a storage pool bucket
//
// swagger:model
//
// API extension: storage_buckets.
type StorageBucketPut struct {
// Storage bucket configuration map
// Example: {"size": "50GiB"}
//
// API extension: storage_buckets
Config map[string]string `json:"config" yaml:"config"`
// Description of the storage bucket
// Example: My custom bucket
//
// API extension: storage_buckets
Description string `json:"description" yaml:"description"`
}
// StorageBucket represents the fields of a storage pool bucket
//
// swagger:model
//
// API extension: storage_buckets.
type StorageBucket struct {
StorageBucketPut `yaml:",inline"`
// Bucket name
// Example: foo
//
// API extension: storage_buckets
Name string `json:"name" yaml:"name"`
// Bucket S3 URL
// Example: https://127.0.0.1:8080/foo
//
// API extension: storage_buckets
S3URL string `json:"s3_url" yaml:"s3_url"`
// What cluster member this record was found on
// Example: server01
//
// API extension: storage_buckets
Location string `json:"location" yaml:"location"`
// Project name
// Example: project1
//
// API extension: storage_buckets_all_projects
Project string `json:"project" yaml:"project"`
}
// Etag returns the values used for etag generation.
func (b *StorageBucket) Etag() []any {
return []any{b.Name, b.Description, b.Config}
}
// Writable converts a full StorageBucket struct into a StorageBucketPut struct (filters read-only fields).
func (b *StorageBucket) Writable() StorageBucketPut {
return b.StorageBucketPut
}
// URL returns the URL for the bucket.
func (b *StorageBucket) URL(apiVersion string, poolName string, projectName string) *URL {
return NewURL().Path(apiVersion, "storage-pools", poolName, "buckets", b.Name).Project(projectName).Target(b.Location)
}
// StorageBucketKeysPost represents the fields of a new storage pool bucket key
//
// swagger:model
//
// API extension: storage_buckets.
type StorageBucketKeysPost struct {
StorageBucketKeyPut `yaml:",inline"`
// Key name
// Example: my-read-only-key
//
// API extension: storage_buckets
Name string `json:"name" yaml:"name"`
}
// StorageBucketKeyPut represents the modifiable fields of a storage pool bucket key
//
// swagger:model
//
// API extension: storage_buckets.
type StorageBucketKeyPut struct {
// Description of the storage bucket key
// Example: My read-only bucket key
//
// API extension: storage_buckets
Description string `json:"description" yaml:"description"`
// Whether the key can perform write actions or not.
// Example: read-only
//
// API extension: storage_buckets
Role string `json:"role" yaml:"role"`
// Access key
// Example: 33UgkaIBLBIxb7O1
//
// API extension: storage_buckets
AccessKey string `json:"access-key" yaml:"access-key"`
// Secret key
// Example: kDQD6AOgwHgaQI1UIJBJpPaiLgZuJbq0
//
// API extension: storage_buckets
SecretKey string `json:"secret-key" yaml:"secret-key"`
}
// StorageBucketKey represents the fields of a storage pool bucket key
//
// swagger:model
//
// API extension: storage_buckets.
type StorageBucketKey struct {
StorageBucketKeyPut `yaml:",inline"`
// Key name
// Example: my-read-only-key
//
// API extension: storage_buckets
Name string `json:"name" yaml:"name"`
}
// URL for the deployment instance set.
func (b *StorageBucketKey) URL(apiVersion string, poolName string, projectName string, bucketName string) *URL {
return NewURL().Path(apiVersion, "storage-pools", poolName, "buckets", bucketName, "keys", b.Name).Project(projectName)
}
// Etag returns the values used for etag generation.
func (b *StorageBucketKey) Etag() []any {
return []any{b.Name, b.Description, b.Role, b.AccessKey, b.SecretKey}
}
// Writable converts a full StorageBucketKey struct into a StorageBucketKeyPut struct (filters read-only fields).
func (b *StorageBucketKey) Writable() StorageBucketKeyPut {
return b.StorageBucketKeyPut
}
|