packer-cn/vendor/github.com/hetznercloud/hcloud-go/hcloud/schema/volume.go

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