Update Lego
This commit is contained in:
parent
36966da701
commit
253060b4f3
185 changed files with 16653 additions and 3210 deletions
213
vendor/github.com/exoscale/egoscale/accounts.go
generated
vendored
213
vendor/github.com/exoscale/egoscale/accounts.go
generated
vendored
|
@ -1,98 +1,161 @@
|
|||
package egoscale
|
||||
|
||||
const (
|
||||
// UserAccount represents a User
|
||||
UserAccount = iota
|
||||
// AdminAccount represents an Admin
|
||||
AdminAccount
|
||||
// DomainAdminAccount represents a Domain Admin
|
||||
DomainAdminAccount
|
||||
)
|
||||
import "fmt"
|
||||
|
||||
// AccountType represents the type of an Account
|
||||
//
|
||||
// http://docs.cloudstack.apache.org/projects/cloudstack-administration/en/4.8/accounts.html#accounts-users-and-domains
|
||||
type AccountType int64
|
||||
type AccountType int16
|
||||
|
||||
//go:generate stringer -type AccountType
|
||||
const (
|
||||
// UserAccount represents a User
|
||||
UserAccount AccountType = 0
|
||||
// AdminAccount represents an Admin
|
||||
AdminAccount AccountType = 1
|
||||
// DomainAdminAccount represents a Domain Admin
|
||||
DomainAdminAccount AccountType = 2
|
||||
)
|
||||
|
||||
// Account provides the detailed account information
|
||||
type Account struct {
|
||||
ID string `json:"id"`
|
||||
AccountType AccountType `json:"accounttype,omitempty"`
|
||||
AccountDetails string `json:"accountdetails,omitempty"`
|
||||
CPUAvailable string `json:"cpuavailable,omitempty"`
|
||||
CPULimit string `json:"cpulimit,omitempty"`
|
||||
CPUTotal int64 `json:"cputotal,omitempty"`
|
||||
DefaultZoneID string `json:"defaultzoneid,omitempty"`
|
||||
Domain string `json:"domain,omitempty"`
|
||||
DomainID string `json:"domainid,omitempty"`
|
||||
EIPLimit string `json:"eiplimit,omitempty"`
|
||||
Groups []string `json:"groups,omitempty"`
|
||||
IPAvailable string `json:"ipavailable,omitempty"`
|
||||
IPLimit string `json:"iplimit,omitempty"`
|
||||
IPTotal int64 `json:"iptotal,omitempty"`
|
||||
IsDefault bool `json:"isdefault,omitempty"`
|
||||
MemoryAvailable string `json:"memoryavailable,omitempty"`
|
||||
MemoryLimit string `json:"memorylimit,omitempty"`
|
||||
MemoryTotal int64 `json:"memorytotal,omitempty"`
|
||||
Name string `json:"name,omitempty"`
|
||||
NetworkAvailable string `json:"networkavailable,omitempty"`
|
||||
NetworkDomain string `json:"networkdomain,omitempty"`
|
||||
NetworkLimit string `json:"networklimit,omitempty"`
|
||||
NetworkTotal int16 `json:"networktotal,omitempty"`
|
||||
PrimaryStorageAvailable string `json:"primarystorageavailable,omitempty"`
|
||||
PrimaryStorageLimit string `json:"primarystoragelimit,omitempty"`
|
||||
PrimaryStorageTotal int64 `json:"primarystoragetotal,omitempty"`
|
||||
ProjectAvailable string `json:"projectavailable,omitempty"`
|
||||
ProjectLimit string `json:"projectlimit,omitempty"`
|
||||
ProjectTotal int64 `json:"projecttotal,omitempty"`
|
||||
SecondaryStorageAvailable string `json:"secondarystorageavailable,omitempty"`
|
||||
SecondaryStorageLimit string `json:"secondarystoragelimit,omitempty"`
|
||||
SecondaryStorageTotal int64 `json:"secondarystoragetotal,omitempty"`
|
||||
SnapshotAvailable string `json:"snapshotavailable,omitempty"`
|
||||
SnapshotLimit string `json:"snapshotlimit,omitempty"`
|
||||
SnapshotTotal int64 `json:"snapshottotal,omitempty"`
|
||||
State string `json:"state,omitempty"`
|
||||
TemplateAvailable string `json:"templateavailable,omitempty"`
|
||||
TemplateLimit string `json:"templatelimit,omitempty"`
|
||||
TemplateTotal int64 `json:"templatetotal,omitempty"`
|
||||
VMAvailable string `json:"vmavailable,omitempty"`
|
||||
VMLimit string `json:"vmlimit,omitempty"`
|
||||
VMTotal int64 `json:"vmtotal,omitempty"`
|
||||
VolumeAvailable string `json:"volumeavailable,omitempty"`
|
||||
VolumeLimit string `json:"volumelimit,omitempty"`
|
||||
VolumeTotal int64 `json:"volumetotal,omitempty"`
|
||||
VPCAvailable string `json:"vpcavailable,omitempty"`
|
||||
VPCLimit string `json:"vpclimit,omitempty"`
|
||||
VPCTotal int64 `json:"vpctotal,omitempty"`
|
||||
User []User `json:"user,omitempty"`
|
||||
AccountDetails map[string]string `json:"accountdetails,omitempty" doc:"details for the account"`
|
||||
AccountType AccountType `json:"accounttype,omitempty" doc:"account type (admin, domain-admin, user)"`
|
||||
CPUAvailable string `json:"cpuavailable,omitempty" doc:"the total number of cpu cores available to be created for this account"`
|
||||
CPULimit string `json:"cpulimit,omitempty" doc:"the total number of cpu cores the account can own"`
|
||||
CPUTotal int64 `json:"cputotal,omitempty" doc:"the total number of cpu cores owned by account"`
|
||||
DefaultZoneID *UUID `json:"defaultzoneid,omitempty" doc:"the default zone of the account"`
|
||||
Domain string `json:"domain,omitempty" doc:"name of the Domain the account belongs too"`
|
||||
DomainID *UUID `json:"domainid,omitempty" doc:"id of the Domain the account belongs too"`
|
||||
EipLimit string `json:"eiplimit,omitempty" doc:"the total number of public elastic ip addresses this account can acquire"`
|
||||
Groups []string `json:"groups,omitempty" doc:"the list of acl groups that account belongs to"`
|
||||
ID *UUID `json:"id,omitempty" doc:"the id of the account"`
|
||||
IPAvailable string `json:"ipavailable,omitempty" doc:"the total number of public ip addresses available for this account to acquire"`
|
||||
IPLimit string `json:"iplimit,omitempty" doc:"the total number of public ip addresses this account can acquire"`
|
||||
IPTotal int64 `json:"iptotal,omitempty" doc:"the total number of public ip addresses allocated for this account"`
|
||||
IsCleanupRequired bool `json:"iscleanuprequired,omitempty" doc:"true if the account requires cleanup"`
|
||||
IsDefault bool `json:"isdefault,omitempty" doc:"true if account is default, false otherwise"`
|
||||
MemoryAvailable string `json:"memoryavailable,omitempty" doc:"the total memory (in MB) available to be created for this account"`
|
||||
MemoryLimit string `json:"memorylimit,omitempty" doc:"the total memory (in MB) the account can own"`
|
||||
MemoryTotal int64 `json:"memorytotal,omitempty" doc:"the total memory (in MB) owned by account"`
|
||||
Name string `json:"name,omitempty" doc:"the name of the account"`
|
||||
NetworkAvailable string `json:"networkavailable,omitempty" doc:"the total number of networks available to be created for this account"`
|
||||
NetworkDomain string `json:"networkdomain,omitempty" doc:"the network domain"`
|
||||
NetworkLimit string `json:"networklimit,omitempty" doc:"the total number of networks the account can own"`
|
||||
NetworkTotal int64 `json:"networktotal,omitempty" doc:"the total number of networks owned by account"`
|
||||
PrimaryStorageAvailable string `json:"primarystorageavailable,omitempty" doc:"the total primary storage space (in GiB) available to be used for this account"`
|
||||
PrimaryStorageLimit string `json:"primarystoragelimit,omitempty" doc:"the total primary storage space (in GiB) the account can own"`
|
||||
PrimaryStorageTotal int64 `json:"primarystoragetotal,omitempty" doc:"the total primary storage space (in GiB) owned by account"`
|
||||
ProjectAvailable string `json:"projectavailable,omitempty" doc:"the total number of projects available for administration by this account"`
|
||||
ProjectLimit string `json:"projectlimit,omitempty" doc:"the total number of projects the account can own"`
|
||||
ProjectTotal int64 `json:"projecttotal,omitempty" doc:"the total number of projects being administrated by this account"`
|
||||
SecondaryStorageAvailable string `json:"secondarystorageavailable,omitempty" doc:"the total secondary storage space (in GiB) available to be used for this account"`
|
||||
SecondaryStorageLimit string `json:"secondarystoragelimit,omitempty" doc:"the total secondary storage space (in GiB) the account can own"`
|
||||
SecondaryStorageTotal int64 `json:"secondarystoragetotal,omitempty" doc:"the total secondary storage space (in GiB) owned by account"`
|
||||
SMTP bool `json:"smtp,omitempty" doc:"if SMTP outbound is allowed"`
|
||||
SnapshotAvailable string `json:"snapshotavailable,omitempty" doc:"the total number of snapshots available for this account"`
|
||||
SnapshotLimit string `json:"snapshotlimit,omitempty" doc:"the total number of snapshots which can be stored by this account"`
|
||||
SnapshotTotal int64 `json:"snapshottotal,omitempty" doc:"the total number of snapshots stored by this account"`
|
||||
State string `json:"state,omitempty" doc:"the state of the account"`
|
||||
TemplateAvailable string `json:"templateavailable,omitempty" doc:"the total number of templates available to be created by this account"`
|
||||
TemplateLimit string `json:"templatelimit,omitempty" doc:"the total number of templates which can be created by this account"`
|
||||
TemplateTotal int64 `json:"templatetotal,omitempty" doc:"the total number of templates which have been created by this account"`
|
||||
User []User `json:"user,omitempty" doc:"the list of users associated with account"`
|
||||
VMAvailable string `json:"vmavailable,omitempty" doc:"the total number of virtual machines available for this account to acquire"`
|
||||
VMLimit string `json:"vmlimit,omitempty" doc:"the total number of virtual machines that can be deployed by this account"`
|
||||
VMRunning int `json:"vmrunning,omitempty" doc:"the total number of virtual machines running for this account"`
|
||||
VMStopped int `json:"vmstopped,omitempty" doc:"the total number of virtual machines stopped for this account"`
|
||||
VMTotal int64 `json:"vmtotal,omitempty" doc:"the total number of virtual machines deployed by this account"`
|
||||
VolumeAvailable string `json:"volumeavailable,omitempty" doc:"the total volume available for this account"`
|
||||
VolumeLimit string `json:"volumelimit,omitempty" doc:"the total volume which can be used by this account"`
|
||||
VolumeTotal int64 `json:"volumetotal,omitempty" doc:"the total volume being used by this account"`
|
||||
}
|
||||
|
||||
// ListRequest builds the ListAccountsGroups request
|
||||
func (a Account) ListRequest() (ListCommand, error) {
|
||||
return &ListAccounts{
|
||||
ID: a.ID,
|
||||
DomainID: a.DomainID,
|
||||
AccountType: a.AccountType,
|
||||
State: a.State,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// ListAccounts represents a query to display the accounts
|
||||
//
|
||||
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/listAccounts.html
|
||||
type ListAccounts struct {
|
||||
AccountType int64 `json:"accounttype,omitempty"`
|
||||
DomainID string `json:"domainid,omitempty"`
|
||||
ID string `json:"id,omitempty"`
|
||||
IsCleanUpRequired bool `json:"iscleanuprequired,omitempty"`
|
||||
IsRecursive bool `json:"isrecursive,omitempty"`
|
||||
Keyword string `json:"keyword,omitempty"`
|
||||
ListAll bool `json:"listall,omitempty"`
|
||||
Page int `json:"page,omitempty"`
|
||||
PageSize int `json:"pagesize,omitempty"`
|
||||
State string `json:"state,omitempty"`
|
||||
AccountType AccountType `json:"accounttype,omitempty" doc:"list accounts by account type. Valid account types are 1 (admin), 2 (domain-admin), and 0 (user)."`
|
||||
DomainID *UUID `json:"domainid,omitempty" doc:"list only resources belonging to the domain specified"`
|
||||
ID *UUID `json:"id,omitempty" doc:"list account by account ID"`
|
||||
IsCleanUpRequired *bool `json:"iscleanuprequired,omitempty" doc:"list accounts by cleanuprequired attribute (values are true or false)"`
|
||||
IsRecursive *bool `json:"isrecursive,omitempty" doc:"defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."`
|
||||
Keyword string `json:"keyword,omitempty" doc:"List by keyword"`
|
||||
ListAll *bool `json:"listall,omitempty" doc:"If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"`
|
||||
Name string `json:"name,omitempty" doc:"list account by account name"`
|
||||
Page int `json:"page,omitempty"`
|
||||
PageSize int `json:"pagesize,omitempty"`
|
||||
State string `json:"state,omitempty" doc:"list accounts by state. Valid states are enabled, disabled, and locked."`
|
||||
_ bool `name:"listAccounts" description:"Lists accounts and provides detailed account information for listed accounts"`
|
||||
}
|
||||
|
||||
func (*ListAccounts) name() string {
|
||||
return "listAccounts"
|
||||
}
|
||||
|
||||
func (*ListAccounts) response() interface{} {
|
||||
func (ListAccounts) response() interface{} {
|
||||
return new(ListAccountsResponse)
|
||||
}
|
||||
|
||||
// SetPage sets the current page
|
||||
func (ls *ListAccounts) SetPage(page int) {
|
||||
ls.Page = page
|
||||
}
|
||||
|
||||
// SetPageSize sets the page size
|
||||
func (ls *ListAccounts) SetPageSize(pageSize int) {
|
||||
ls.PageSize = pageSize
|
||||
}
|
||||
|
||||
func (ListAccounts) each(resp interface{}, callback IterateItemFunc) {
|
||||
vms, ok := resp.(*ListAccountsResponse)
|
||||
if !ok {
|
||||
callback(nil, fmt.Errorf("wrong type. ListAccountsResponse expected, got %T", resp))
|
||||
return
|
||||
}
|
||||
|
||||
for i := range vms.Account {
|
||||
if !callback(&vms.Account[i], nil) {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ListAccountsResponse represents a list of accounts
|
||||
type ListAccountsResponse struct {
|
||||
Count int `json:"count"`
|
||||
Account []Account `json:"account"`
|
||||
}
|
||||
|
||||
// EnableAccount represents the activation of an account
|
||||
type EnableAccount struct {
|
||||
Account string `json:"account,omitempty" doc:"Enables specified account."`
|
||||
DomainID *UUID `json:"domainid,omitempty" doc:"Enables specified account in this domain."`
|
||||
ID *UUID `json:"id,omitempty" doc:"Account id"`
|
||||
_ bool `name:"enableAccount" description:"Enables an account"`
|
||||
}
|
||||
|
||||
func (EnableAccount) response() interface{} {
|
||||
return new(Account)
|
||||
}
|
||||
|
||||
// DisableAccount (Async) represents the deactivation of an account
|
||||
type DisableAccount struct {
|
||||
Lock *bool `json:"lock" doc:"If true, only lock the account; else disable the account"`
|
||||
Account string `json:"account,omitempty" doc:"Disables specified account."`
|
||||
DomainID *UUID `json:"domainid,omitempty" doc:"Disables specified account in this domain."`
|
||||
ID *UUID `json:"id,omitempty" doc:"Account id"`
|
||||
_ bool `name:"disableAccount" description:"Disables an account"`
|
||||
}
|
||||
|
||||
func (DisableAccount) response() interface{} {
|
||||
return new(AsyncJobResult)
|
||||
}
|
||||
|
||||
func (DisableAccount) asyncResponse() interface{} {
|
||||
return new(Account)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue