107 lines
3.4 KiB
Go
Executable File
107 lines
3.4 KiB
Go
Executable File
package schema
|
|
|
|
import "time"
|
|
|
|
// Volume defines the schema of a volume.
|
|
type Volume struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
Server *int `json:"server"`
|
|
Location Location `json:"location"`
|
|
Size int `json:"size"`
|
|
Protection VolumeProtection `json:"protection"`
|
|
Labels map[string]string `json:"labels"`
|
|
LinuxDevice string `json:"linux_device"`
|
|
Created time.Time `json:"created"`
|
|
}
|
|
|
|
// VolumeCreateRequest defines the schema of the request
|
|
// to create a volume.
|
|
type VolumeCreateRequest struct {
|
|
Name string `json:"name"`
|
|
Size int `json:"size"`
|
|
Server *int `json:"server,omitempty"`
|
|
Location interface{} `json:"location,omitempty"` // int, string, or nil
|
|
Labels *map[string]string `json:"labels,omitempty"`
|
|
}
|
|
|
|
// VolumeCreateResponse defines the schema of the response
|
|
// when creating a volume.
|
|
type VolumeCreateResponse struct {
|
|
Volume Volume `json:"volume"`
|
|
Action *Action `json:"action"`
|
|
NextActions []Action `json:"next_actions"`
|
|
}
|
|
|
|
// VolumeListResponse defines the schema of the response
|
|
// when listing volumes.
|
|
type VolumeListResponse struct {
|
|
Volumes []Volume `json:"volumes"`
|
|
}
|
|
|
|
// VolumeGetResponse defines the schema of the response
|
|
// when retrieving a single volume.
|
|
type VolumeGetResponse struct {
|
|
Volume Volume `json:"volume"`
|
|
}
|
|
|
|
// VolumeUpdateRequest defines the schema of the request to update a volume.
|
|
type VolumeUpdateRequest struct {
|
|
Name string `json:"name,omitempty"`
|
|
Labels *map[string]string `json:"labels,omitempty"`
|
|
}
|
|
|
|
// VolumeUpdateResponse defines the schema of the response when updating a volume.
|
|
type VolumeUpdateResponse struct {
|
|
Volume Volume `json:"volume"`
|
|
}
|
|
|
|
// VolumeProtection defines the schema of a volume's resource protection.
|
|
type VolumeProtection struct {
|
|
Delete bool `json:"delete"`
|
|
}
|
|
|
|
// VolumeActionChangeProtectionRequest defines the schema of the request to
|
|
// change the resource protection of a volume.
|
|
type VolumeActionChangeProtectionRequest struct {
|
|
Delete *bool `json:"delete,omitempty"`
|
|
}
|
|
|
|
// VolumeActionChangeProtectionResponse defines the schema of the response when
|
|
// changing the resource protection of a volume.
|
|
type VolumeActionChangeProtectionResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// VolumeActionAttachVolumeRequest defines the schema of the request to
|
|
// attach a volume to a server.
|
|
type VolumeActionAttachVolumeRequest struct {
|
|
Server int `json:"server"`
|
|
}
|
|
|
|
// VolumeActionAttachVolumeResponse defines the schema of the response when
|
|
// attaching a volume to a server.
|
|
type VolumeActionAttachVolumeResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// VolumeActionDetachVolumeRequest defines the schema of the request to
|
|
// create an detach volume action.
|
|
type VolumeActionDetachVolumeRequest struct{}
|
|
|
|
// VolumeActionDetachVolumeResponse defines the schema of the response when
|
|
// creating an detach volume action.
|
|
type VolumeActionDetachVolumeResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// VolumeActionResizeVolumeRequest defines the schema of the request to resize a volume.
|
|
type VolumeActionResizeVolumeRequest struct {
|
|
Size int `json:"size"`
|
|
}
|
|
|
|
// VolumeActionResizeVolumeResponse defines the schema of the response when resizing a volume.
|
|
type VolumeActionResizeVolumeResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|