mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
* Update Exoscale provider * Update vendor folder for exoscale/egoscale v0.23.0 * Fix typos and SRV parsing * Add . at the end of SRV records for exoscale
165 lines
6.3 KiB
Go
165 lines
6.3 KiB
Go
package egoscale
|
|
|
|
// InstancePoolState represents the state of an instance pool.
|
|
type InstancePoolState string
|
|
|
|
const (
|
|
// InstancePoolCreating creating state.
|
|
InstancePoolCreating InstancePoolState = "creating"
|
|
// InstancePoolRunning running state.
|
|
InstancePoolRunning InstancePoolState = "running"
|
|
// InstancePoolDestroying destroying state.
|
|
InstancePoolDestroying InstancePoolState = "destroying"
|
|
// InstancePoolScalingUp scaling up state.
|
|
InstancePoolScalingUp InstancePoolState = "scaling-up"
|
|
// InstancePoolScalingDown scaling down state.
|
|
InstancePoolScalingDown InstancePoolState = "scaling-down"
|
|
)
|
|
|
|
// InstancePool represents an instance pool.
|
|
type InstancePool struct {
|
|
ID *UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
Description string `json:"description"`
|
|
ServiceOfferingID *UUID `json:"serviceofferingid"`
|
|
TemplateID *UUID `json:"templateid"`
|
|
ZoneID *UUID `json:"zoneid"`
|
|
SecurityGroupIDs []UUID `json:"securitygroupids"`
|
|
NetworkIDs []UUID `json:"networkids"`
|
|
KeyPair string `json:"keypair"`
|
|
UserData string `json:"userdata"`
|
|
Size int `json:"size"`
|
|
RootDiskSize int `json:"rootdisksize"`
|
|
State InstancePoolState `json:"state"`
|
|
VirtualMachines []VirtualMachine `json:"virtualmachines"`
|
|
}
|
|
|
|
// CreateInstancePool represents an instance pool creation API request.
|
|
type CreateInstancePool struct {
|
|
Name string `json:"name"`
|
|
Description string `json:"description,omitempty"`
|
|
ServiceOfferingID *UUID `json:"serviceofferingid"`
|
|
TemplateID *UUID `json:"templateid"`
|
|
ZoneID *UUID `json:"zoneid"`
|
|
SecurityGroupIDs []UUID `json:"securitygroupids,omitempty"`
|
|
NetworkIDs []UUID `json:"networkids,omitempty"`
|
|
KeyPair string `json:"keypair,omitempty"`
|
|
UserData string `json:"userdata,omitempty"`
|
|
Size int `json:"size"`
|
|
RootDiskSize int `json:"rootdisksize,omitempty"`
|
|
_ bool `name:"createInstancePool" description:"Create an Instance Pool"`
|
|
}
|
|
|
|
// CreateInstancePoolResponse represents an instance pool creation API response.
|
|
type CreateInstancePoolResponse struct {
|
|
ID *UUID `json:"id"`
|
|
Name string `json:"name"`
|
|
Description string `json:"description"`
|
|
ServiceOfferingID *UUID `json:"serviceofferingid"`
|
|
TemplateID *UUID `json:"templateid"`
|
|
ZoneID *UUID `json:"zoneid"`
|
|
SecurityGroupIDs []UUID `json:"securitygroupids"`
|
|
NetworkIDs []UUID `json:"networkids"`
|
|
KeyPair string `json:"keypair"`
|
|
UserData string `json:"userdata"`
|
|
Size int64 `json:"size"`
|
|
RootDiskSize int `json:"rootdisksize"`
|
|
State InstancePoolState `json:"state"`
|
|
}
|
|
|
|
// Response returns an empty structure to unmarshal an instance pool creation API response into.
|
|
func (CreateInstancePool) Response() interface{} {
|
|
return new(CreateInstancePoolResponse)
|
|
}
|
|
|
|
// UpdateInstancePool represents an instance pool update API request.
|
|
type UpdateInstancePool struct {
|
|
ID *UUID `json:"id"`
|
|
ZoneID *UUID `json:"zoneid"`
|
|
Name string `json:"name,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
TemplateID *UUID `json:"templateid,omitempty"`
|
|
UserData string `json:"userdata,omitempty"`
|
|
_ bool `name:"updateInstancePool" description:"Update an Instance Pool"`
|
|
}
|
|
|
|
// UpdateInstancePoolResponse represents an instance pool update API response.
|
|
type UpdateInstancePoolResponse struct {
|
|
Success bool `json:"success"`
|
|
}
|
|
|
|
// Response returns an empty structure to unmarshal an instance pool update API response into.
|
|
func (UpdateInstancePool) Response() interface{} {
|
|
return new(UpdateInstancePoolResponse)
|
|
}
|
|
|
|
// ScaleInstancePool represents an instance pool scaling API request.
|
|
type ScaleInstancePool struct {
|
|
ID *UUID `json:"id"`
|
|
ZoneID *UUID `json:"zoneid"`
|
|
Size int `json:"size"`
|
|
_ bool `name:"scaleInstancePool" description:"Scale an Instance Pool"`
|
|
}
|
|
|
|
// ScaleInstancePoolResponse represents an instance pool scaling API response.
|
|
type ScaleInstancePoolResponse struct {
|
|
Success bool `json:"success"`
|
|
}
|
|
|
|
// Response returns an empty structure to unmarshal an instance pool scaling API response into.
|
|
func (ScaleInstancePool) Response() interface{} {
|
|
return new(ScaleInstancePoolResponse)
|
|
}
|
|
|
|
// DestroyInstancePool represents an instance pool destruction API request.
|
|
type DestroyInstancePool struct {
|
|
ID *UUID `json:"id"`
|
|
ZoneID *UUID `json:"zoneid"`
|
|
_ bool `name:"destroyInstancePool" description:"Destroy an Instance Pool"`
|
|
}
|
|
|
|
// DestroyInstancePoolResponse represents an instance pool destruction API response.
|
|
type DestroyInstancePoolResponse struct {
|
|
Success bool `json:"success"`
|
|
}
|
|
|
|
// Response returns an empty structure to unmarshal an instance pool destruction API response into.
|
|
func (DestroyInstancePool) Response() interface{} {
|
|
return new(DestroyInstancePoolResponse)
|
|
}
|
|
|
|
// GetInstancePool retrieves an instance pool's details.
|
|
type GetInstancePool struct {
|
|
ID *UUID `json:"id"`
|
|
ZoneID *UUID `json:"zoneid"`
|
|
_ bool `name:"getInstancePool" description:"Get an Instance Pool"`
|
|
}
|
|
|
|
// GetInstancePoolResponse get instance pool API response.
|
|
type GetInstancePoolResponse struct {
|
|
Count int
|
|
InstancePools []InstancePool `json:"instancepool"`
|
|
}
|
|
|
|
// Response returns an empty structure to unmarshal an instance pool get API response into.
|
|
func (GetInstancePool) Response() interface{} {
|
|
return new(GetInstancePoolResponse)
|
|
}
|
|
|
|
// ListInstancePools represents a list instance pool API request.
|
|
type ListInstancePools struct {
|
|
ZoneID *UUID `json:"zoneid"`
|
|
_ bool `name:"listInstancePools" description:"List Instance Pools"`
|
|
}
|
|
|
|
// ListInstancePoolsResponse represents a list instance pool API response.
|
|
type ListInstancePoolsResponse struct {
|
|
Count int
|
|
InstancePools []InstancePool `json:"instancepool"`
|
|
}
|
|
|
|
// Response returns an empty structure to unmarshal an instance pool list API response into.
|
|
func (ListInstancePools) Response() interface{} {
|
|
return new(ListInstancePoolsResponse)
|
|
}
|