traefik/vendor/github.com/exoscale/egoscale/keypairs.go
2018-02-12 18:10:05 +01:00

171 lines
5 KiB
Go

package egoscale
// SSHKeyPair represents an SSH key pair
type SSHKeyPair struct {
Account string `json:"account,omitempty"`
DomainID string `json:"domainid,omitempty"`
ProjectID string `json:"projectid,omitempty"`
Fingerprint string `json:"fingerprint,omitempty"`
Name string `json:"name,omitempty"`
PrivateKey string `json:"privatekey,omitempty"`
}
// CreateSSHKeyPair represents a new keypair to be created
//
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/createSSHKeyPair.html
type CreateSSHKeyPair struct {
Name string `json:"name"`
Account string `json:"account,omitempty"`
DomainID string `json:"domainid,omitempty"`
ProjectID string `json:"projectid,omitempty"`
}
func (*CreateSSHKeyPair) name() string {
return "createSSHKeyPair"
}
func (*CreateSSHKeyPair) response() interface{} {
return new(CreateSSHKeyPairResponse)
}
// CreateSSHKeyPairResponse represents the creation of an SSH Key Pair
type CreateSSHKeyPairResponse struct {
KeyPair SSHKeyPair `json:"keypair"`
}
// DeleteSSHKeyPair represents a new keypair to be created
//
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/deleteSSHKeyPair.html
type DeleteSSHKeyPair struct {
Name string `json:"name"`
Account string `json:"account,omitempty"`
DomainID string `json:"domainid,omitempty"`
ProjectID string `json:"projectid,omitempty"`
}
func (*DeleteSSHKeyPair) name() string {
return "deleteSSHKeyPair"
}
func (*DeleteSSHKeyPair) response() interface{} {
return new(booleanSyncResponse)
}
// RegisterSSHKeyPair represents a new registration of a public key in a keypair
//
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/registerSSHKeyPair.html
type RegisterSSHKeyPair struct {
Name string `json:"name"`
PublicKey string `json:"publickey"`
Account string `json:"account,omitempty"`
DomainID string `json:"domainid,omitempty"`
ProjectID string `json:"projectid,omitempty"`
}
func (*RegisterSSHKeyPair) name() string {
return "registerSSHKeyPair"
}
func (*RegisterSSHKeyPair) response() interface{} {
return new(RegisterSSHKeyPairResponse)
}
// RegisterSSHKeyPairResponse represents the creation of an SSH Key Pair
type RegisterSSHKeyPairResponse struct {
KeyPair SSHKeyPair `json:"keypair"`
}
// ListSSHKeyPairs represents a query for a list of SSH KeyPairs
//
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/listSSHKeyPairs.html
type ListSSHKeyPairs struct {
Account string `json:"account,omitempty"`
DomainID string `json:"domainid,omitempty"`
Fingerprint string `json:"fingerprint,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"`
ProjectID string `json:"projectid,omitempty"`
}
func (*ListSSHKeyPairs) name() string {
return "listSSHKeyPairs"
}
func (*ListSSHKeyPairs) response() interface{} {
return new(ListSSHKeyPairsResponse)
}
// ListSSHKeyPairsResponse represents a list of SSH key pairs
type ListSSHKeyPairsResponse struct {
Count int `json:"count"`
SSHKeyPair []SSHKeyPair `json:"sshkeypair"`
}
// ResetSSHKeyForVirtualMachine (Async) represents a change for the key pairs
//
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/resetSSHKeyForVirtualMachine.html
type ResetSSHKeyForVirtualMachine struct {
ID string `json:"id"`
KeyPair string `json:"keypair"`
Account string `json:"account,omitempty"`
DomainID string `json:"domainid,omitempty"`
ProjectID string `json:"projectid,omitempty"`
}
func (*ResetSSHKeyForVirtualMachine) name() string {
return "resetSSHKeyForVirtualMachine"
}
func (*ResetSSHKeyForVirtualMachine) asyncResponse() interface{} {
return new(ResetSSHKeyForVirtualMachineResponse)
}
// ResetSSHKeyForVirtualMachineResponse represents the modified VirtualMachine
type ResetSSHKeyForVirtualMachineResponse VirtualMachineResponse
// CreateKeypair create a new SSH Key Pair
//
// Deprecated: will go away, use the API directly
func (exo *Client) CreateKeypair(name string) (*SSHKeyPair, error) {
req := &CreateSSHKeyPair{
Name: name,
}
resp, err := exo.Request(req)
if err != nil {
return nil, err
}
keypair := resp.(*CreateSSHKeyPairResponse).KeyPair
return &keypair, nil
}
// DeleteKeypair deletes an SSH key pair
//
// Deprecated: will go away, use the API directly
func (exo *Client) DeleteKeypair(name string) error {
req := &DeleteSSHKeyPair{
Name: name,
}
return exo.BooleanRequest(req)
}
// RegisterKeypair registers a public key in a keypair
//
// Deprecated: will go away, use the API directly
func (exo *Client) RegisterKeypair(name string, publicKey string) (*SSHKeyPair, error) {
req := &RegisterSSHKeyPair{
Name: name,
PublicKey: publicKey,
}
resp, err := exo.Request(req)
if err != nil {
return nil, err
}
keypair := resp.(*RegisterSSHKeyPairResponse).KeyPair
return &keypair, nil
}