302 lines
10 KiB
Go
Executable File
302 lines
10 KiB
Go
Executable File
package schema
|
|
|
|
import "time"
|
|
|
|
// Server defines the schema of a server.
|
|
type Server struct {
|
|
ID int `json:"id"`
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
Created time.Time `json:"created"`
|
|
PublicNet ServerPublicNet `json:"public_net"`
|
|
ServerType ServerType `json:"server_type"`
|
|
IncludedTraffic uint64 `json:"included_traffic"`
|
|
OutgoingTraffic *uint64 `json:"outgoing_traffic"`
|
|
IngoingTraffic *uint64 `json:"ingoing_traffic"`
|
|
BackupWindow *string `json:"backup_window"`
|
|
RescueEnabled bool `json:"rescue_enabled"`
|
|
ISO *ISO `json:"iso"`
|
|
Locked bool `json:"locked"`
|
|
Datacenter Datacenter `json:"datacenter"`
|
|
Image *Image `json:"image"`
|
|
Protection ServerProtection `json:"protection"`
|
|
Labels map[string]string `json:"labels"`
|
|
Volumes []int `json:"volumes"`
|
|
}
|
|
|
|
// ServerProtection defines the schema of a server's resource protection.
|
|
type ServerProtection struct {
|
|
Delete bool `json:"delete"`
|
|
Rebuild bool `json:"rebuild"`
|
|
}
|
|
|
|
// ServerPublicNet defines the schema of a server's
|
|
// public network information.
|
|
type ServerPublicNet struct {
|
|
IPv4 ServerPublicNetIPv4 `json:"ipv4"`
|
|
IPv6 ServerPublicNetIPv6 `json:"ipv6"`
|
|
FloatingIPs []int `json:"floating_ips"`
|
|
}
|
|
|
|
// ServerPublicNetIPv4 defines the schema of a server's public
|
|
// network information for an IPv4.
|
|
type ServerPublicNetIPv4 struct {
|
|
IP string `json:"ip"`
|
|
Blocked bool `json:"blocked"`
|
|
DNSPtr string `json:"dns_ptr"`
|
|
}
|
|
|
|
// ServerPublicNetIPv6 defines the schema of a server's public
|
|
// network information for an IPv6.
|
|
type ServerPublicNetIPv6 struct {
|
|
IP string `json:"ip"`
|
|
Blocked bool `json:"blocked"`
|
|
DNSPtr []ServerPublicNetIPv6DNSPtr `json:"dns_ptr"`
|
|
}
|
|
|
|
// ServerPublicNetIPv6DNSPtr defines the schema of a server's
|
|
// public network information for an IPv6 reverse DNS.
|
|
type ServerPublicNetIPv6DNSPtr struct {
|
|
IP string `json:"ip"`
|
|
DNSPtr string `json:"dns_ptr"`
|
|
}
|
|
|
|
// ServerGetResponse defines the schema of the response when
|
|
// retrieving a single server.
|
|
type ServerGetResponse struct {
|
|
Server Server `json:"server"`
|
|
}
|
|
|
|
// ServerListResponse defines the schema of the response when
|
|
// listing servers.
|
|
type ServerListResponse struct {
|
|
Servers []Server `json:"servers"`
|
|
}
|
|
|
|
// ServerCreateRequest defines the schema for the request to
|
|
// create a server.
|
|
type ServerCreateRequest struct {
|
|
Name string `json:"name"`
|
|
ServerType interface{} `json:"server_type"` // int or string
|
|
Image interface{} `json:"image"` // int or string
|
|
SSHKeys []int `json:"ssh_keys,omitempty"`
|
|
Location string `json:"location,omitempty"`
|
|
Datacenter string `json:"datacenter,omitempty"`
|
|
UserData string `json:"user_data,omitempty"`
|
|
StartAfterCreate *bool `json:"start_after_create,omitempty"`
|
|
Labels *map[string]string `json:"labels,omitempty"`
|
|
}
|
|
|
|
// ServerCreateResponse defines the schema of the response when
|
|
// creating a server.
|
|
type ServerCreateResponse struct {
|
|
Server Server `json:"server"`
|
|
Action Action `json:"action"`
|
|
RootPassword *string `json:"root_password"`
|
|
NextActions []Action `json:"next_actions"`
|
|
}
|
|
|
|
// ServerUpdateRequest defines the schema of the request to update a server.
|
|
type ServerUpdateRequest struct {
|
|
Name string `json:"name,omitempty"`
|
|
Labels *map[string]string `json:"labels,omitempty"`
|
|
}
|
|
|
|
// ServerUpdateResponse defines the schema of the response when updating a server.
|
|
type ServerUpdateResponse struct {
|
|
Server Server `json:"server"`
|
|
}
|
|
|
|
// ServerActionPoweronRequest defines the schema for the request to
|
|
// create a poweron server action.
|
|
type ServerActionPoweronRequest struct{}
|
|
|
|
// ServerActionPoweronResponse defines the schema of the response when
|
|
// creating a poweron server action.
|
|
type ServerActionPoweronResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionPoweroffRequest defines the schema for the request to
|
|
// create a poweroff server action.
|
|
type ServerActionPoweroffRequest struct{}
|
|
|
|
// ServerActionPoweroffResponse defines the schema of the response when
|
|
// creating a poweroff server action.
|
|
type ServerActionPoweroffResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionRebootRequest defines the schema for the request to
|
|
// create a reboot server action.
|
|
type ServerActionRebootRequest struct{}
|
|
|
|
// ServerActionRebootResponse defines the schema of the response when
|
|
// creating a reboot server action.
|
|
type ServerActionRebootResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionResetRequest defines the schema for the request to
|
|
// create a reset server action.
|
|
type ServerActionResetRequest struct{}
|
|
|
|
// ServerActionResetResponse defines the schema of the response when
|
|
// creating a reset server action.
|
|
type ServerActionResetResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionShutdownRequest defines the schema for the request to
|
|
// create a shutdown server action.
|
|
type ServerActionShutdownRequest struct{}
|
|
|
|
// ServerActionShutdownResponse defines the schema of the response when
|
|
// creating a shutdown server action.
|
|
type ServerActionShutdownResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionResetPasswordRequest defines the schema for the request to
|
|
// create a reset_password server action.
|
|
type ServerActionResetPasswordRequest struct{}
|
|
|
|
// ServerActionResetPasswordResponse defines the schema of the response when
|
|
// creating a reset_password server action.
|
|
type ServerActionResetPasswordResponse struct {
|
|
Action Action `json:"action"`
|
|
RootPassword string `json:"root_password"`
|
|
}
|
|
|
|
// ServerActionCreateImageRequest defines the schema for the request to
|
|
// create a create_image server action.
|
|
type ServerActionCreateImageRequest struct {
|
|
Type *string `json:"type"`
|
|
Description *string `json:"description"`
|
|
Labels *map[string]string `json:"labels,omitempty"`
|
|
}
|
|
|
|
// ServerActionCreateImageResponse defines the schema of the response when
|
|
// creating a create_image server action.
|
|
type ServerActionCreateImageResponse struct {
|
|
Action Action `json:"action"`
|
|
Image Image `json:"image"`
|
|
}
|
|
|
|
// ServerActionEnableRescueRequest defines the schema for the request to
|
|
// create a enable_rescue server action.
|
|
type ServerActionEnableRescueRequest struct {
|
|
Type *string `json:"type,omitempty"`
|
|
SSHKeys []int `json:"ssh_keys,omitempty"`
|
|
}
|
|
|
|
// ServerActionEnableRescueResponse defines the schema of the response when
|
|
// creating a enable_rescue server action.
|
|
type ServerActionEnableRescueResponse struct {
|
|
Action Action `json:"action"`
|
|
RootPassword string `json:"root_password"`
|
|
}
|
|
|
|
// ServerActionDisableRescueRequest defines the schema for the request to
|
|
// create a disable_rescue server action.
|
|
type ServerActionDisableRescueRequest struct{}
|
|
|
|
// ServerActionDisableRescueResponse defines the schema of the response when
|
|
// creating a disable_rescue server action.
|
|
type ServerActionDisableRescueResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionRebuildRequest defines the schema for the request to
|
|
// rebuild a server.
|
|
type ServerActionRebuildRequest struct {
|
|
Image interface{} `json:"image"` // int or string
|
|
}
|
|
|
|
// ServerActionRebuildResponse defines the schema of the response when
|
|
// creating a rebuild server action.
|
|
type ServerActionRebuildResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionAttachISORequest defines the schema for the request to
|
|
// attach an ISO to a server.
|
|
type ServerActionAttachISORequest struct {
|
|
ISO interface{} `json:"iso"` // int or string
|
|
}
|
|
|
|
// ServerActionAttachISOResponse defines the schema of the response when
|
|
// creating a attach_iso server action.
|
|
type ServerActionAttachISOResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionDetachISORequest defines the schema for the request to
|
|
// detach an ISO from a server.
|
|
type ServerActionDetachISORequest struct{}
|
|
|
|
// ServerActionDetachISOResponse defines the schema of the response when
|
|
// creating a detach_iso server action.
|
|
type ServerActionDetachISOResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionEnableBackupRequest defines the schema for the request to
|
|
// enable backup for a server.
|
|
type ServerActionEnableBackupRequest struct {
|
|
BackupWindow *string `json:"backup_window,omitempty"`
|
|
}
|
|
|
|
// ServerActionEnableBackupResponse defines the schema of the response when
|
|
// creating a enable_backup server action.
|
|
type ServerActionEnableBackupResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionDisableBackupRequest defines the schema for the request to
|
|
// disable backup for a server.
|
|
type ServerActionDisableBackupRequest struct{}
|
|
|
|
// ServerActionDisableBackupResponse defines the schema of the response when
|
|
// creating a disable_backup server action.
|
|
type ServerActionDisableBackupResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionChangeTypeRequest defines the schema for the request to
|
|
// change a server's type.
|
|
type ServerActionChangeTypeRequest struct {
|
|
ServerType interface{} `json:"server_type"` // int or string
|
|
UpgradeDisk bool `json:"upgrade_disk"`
|
|
}
|
|
|
|
// ServerActionChangeTypeResponse defines the schema of the response when
|
|
// creating a change_type server action.
|
|
type ServerActionChangeTypeResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionChangeDNSPtrRequest defines the schema for the request to
|
|
// change a server's reverse DNS pointer.
|
|
type ServerActionChangeDNSPtrRequest struct {
|
|
IP string `json:"ip"`
|
|
DNSPtr *string `json:"dns_ptr"`
|
|
}
|
|
|
|
// ServerActionChangeDNSPtrResponse defines the schema of the response when
|
|
// creating a change_dns_ptr server action.
|
|
type ServerActionChangeDNSPtrResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|
|
|
|
// ServerActionChangeProtectionRequest defines the schema of the request to change the resource protection of a server.
|
|
type ServerActionChangeProtectionRequest struct {
|
|
Rebuild *bool `json:"rebuild,omitempty"`
|
|
Delete *bool `json:"delete,omitempty"`
|
|
}
|
|
|
|
// ServerActionChangeProtectionResponse defines the schema of the response when changing the resource protection of a server.
|
|
type ServerActionChangeProtectionResponse struct {
|
|
Action Action `json:"action"`
|
|
}
|