Update Lego (Gandi API v5, cloudxns, ...)
This commit is contained in:
parent
dd873fbeee
commit
7d3dd5a0e4
43 changed files with 4112 additions and 1238 deletions
176
vendor/github.com/exoscale/egoscale/affinity_groups.go
generated
vendored
Normal file
176
vendor/github.com/exoscale/egoscale/affinity_groups.go
generated
vendored
Normal file
|
@ -0,0 +1,176 @@
|
|||
package egoscale
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
)
|
||||
|
||||
// AffinityGroup represents an (anti-)affinity group
|
||||
type AffinityGroup struct {
|
||||
ID string `json:"id,omitempty"`
|
||||
Account string `json:"account,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
Domain string `json:"domain,omitempty"`
|
||||
DomainID string `json:"domainid,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
VirtualMachineIDs []string `json:"virtualmachineIDs,omitempty"` // *I*ds is not a typo
|
||||
}
|
||||
|
||||
// AffinityGroupType represent an affinity group type
|
||||
type AffinityGroupType struct {
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
// CreateAffinityGroup (Async) represents a new (anti-)affinity group
|
||||
//
|
||||
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/createAffinityGroup.html
|
||||
type CreateAffinityGroup struct {
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
Account string `json:"account,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
DomainID string `json:"domainid,omitempty"`
|
||||
}
|
||||
|
||||
func (*CreateAffinityGroup) name() string {
|
||||
return "createAffinityGroup"
|
||||
}
|
||||
|
||||
func (*CreateAffinityGroup) asyncResponse() interface{} {
|
||||
return new(CreateAffinityGroupResponse)
|
||||
}
|
||||
|
||||
// CreateAffinityGroupResponse represents the response of the creation of an (anti-)affinity group
|
||||
type CreateAffinityGroupResponse struct {
|
||||
AffinityGroup AffinityGroup `json:"affinitygroup"`
|
||||
}
|
||||
|
||||
// UpdateVMAffinityGroup (Async) represents a modification of a (anti-)affinity group
|
||||
//
|
||||
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/updateVMAffinityGroup.html
|
||||
type UpdateVMAffinityGroup struct {
|
||||
ID string `json:"id"`
|
||||
AffinityGroupIDs []string `json:"affinitygroupids,omitempty"` // mutually exclusive with names
|
||||
AffinityGroupNames []string `json:"affinitygroupnames,omitempty"` // mutually exclusive with ids
|
||||
}
|
||||
|
||||
func (*UpdateVMAffinityGroup) name() string {
|
||||
return "updateVMAffinityGroup"
|
||||
}
|
||||
|
||||
func (*UpdateVMAffinityGroup) asyncResponse() interface{} {
|
||||
return new(UpdateVMAffinityGroupResponse)
|
||||
}
|
||||
|
||||
func (req *UpdateVMAffinityGroup) onBeforeSend(params *url.Values) error {
|
||||
// Either AffinityGroupIDs or AffinityGroupNames must be set
|
||||
if len(req.AffinityGroupIDs) == 0 && len(req.AffinityGroupNames) == 0 {
|
||||
params.Set("affinitygroupids", "")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// UpdateVMAffinityGroupResponse represents the new VM
|
||||
type UpdateVMAffinityGroupResponse VirtualMachineResponse
|
||||
|
||||
// DeleteAffinityGroup (Async) represents an (anti-)affinity group to be deleted
|
||||
//
|
||||
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/deleteAffinityGroup.html
|
||||
type DeleteAffinityGroup struct {
|
||||
ID string `json:"id,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
Account string `json:"account,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
DomainID string `json:"domainid,omitempty"`
|
||||
}
|
||||
|
||||
func (*DeleteAffinityGroup) name() string {
|
||||
return "deleteAffinityGroup"
|
||||
}
|
||||
|
||||
func (*DeleteAffinityGroup) asyncResponse() interface{} {
|
||||
return new(booleanAsyncResponse)
|
||||
}
|
||||
|
||||
// ListAffinityGroups represents an (anti-)affinity groups search
|
||||
//
|
||||
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/listAffinityGroups.html
|
||||
type ListAffinityGroups struct {
|
||||
Account string `json:"account,omitempty"`
|
||||
DomainID string `json:"domainid,omitempty"`
|
||||
ID string `json:"id,omitempty"`
|
||||
IsRecursive bool `json:"isrecursive,omitempty"`
|
||||
Keyword string `json:"keyword,omitempty"`
|
||||
ListAll bool `json:"listall,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
Page int `json:"page,omitempty"`
|
||||
PageSize int `json:"pagesize,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
VirtualMachineID string `json:"virtualmachineid,omitempty"`
|
||||
}
|
||||
|
||||
func (*ListAffinityGroups) name() string {
|
||||
return "listAffinityGroups"
|
||||
}
|
||||
|
||||
func (*ListAffinityGroups) response() interface{} {
|
||||
return new(ListAffinityGroupsResponse)
|
||||
}
|
||||
|
||||
// ListAffinityGroupTypes represents an (anti-)affinity groups search
|
||||
//
|
||||
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/listAffinityGroupTypes.html
|
||||
type ListAffinityGroupTypes struct {
|
||||
Keyword string `json:"keyword,omitempty"`
|
||||
Page int `json:"page,omitempty"`
|
||||
PageSize int `json:"pagesize,omitempty"`
|
||||
}
|
||||
|
||||
func (*ListAffinityGroupTypes) name() string {
|
||||
return "listAffinityGroupTypes"
|
||||
}
|
||||
|
||||
func (*ListAffinityGroupTypes) response() interface{} {
|
||||
return new(ListAffinityGroupTypesResponse)
|
||||
}
|
||||
|
||||
// ListAffinityGroupsResponse represents a list of (anti-)affinity groups
|
||||
type ListAffinityGroupsResponse struct {
|
||||
Count int `json:"count"`
|
||||
AffinityGroup []AffinityGroup `json:"affinitygroup"`
|
||||
}
|
||||
|
||||
// ListAffinityGroupTypesResponse represents a list of (anti-)affinity group types
|
||||
type ListAffinityGroupTypesResponse struct {
|
||||
Count int `json:"count"`
|
||||
AffinityGroupType []AffinityGroupType `json:"affinitygrouptype"`
|
||||
}
|
||||
|
||||
// Legacy methods
|
||||
|
||||
// CreateAffinityGroup creates a group
|
||||
//
|
||||
// Deprecated: Use the API directly
|
||||
func (exo *Client) CreateAffinityGroup(name string, async AsyncInfo) (*AffinityGroup, error) {
|
||||
req := &CreateAffinityGroup{
|
||||
Name: name,
|
||||
}
|
||||
resp, err := exo.AsyncRequest(req, async)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ag := resp.(*CreateAffinityGroupResponse).AffinityGroup
|
||||
return &ag, nil
|
||||
}
|
||||
|
||||
// DeleteAffinityGroup deletes a group
|
||||
//
|
||||
// Deprecated: Use the API directly
|
||||
func (exo *Client) DeleteAffinityGroup(name string, async AsyncInfo) error {
|
||||
req := &DeleteAffinityGroup{
|
||||
Name: name,
|
||||
}
|
||||
return exo.BooleanAsyncRequest(req, async)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue