summaryrefslogtreecommitdiff
path: root/vendor/github.com/mitchellh/packer/vendor/github.com/denverdino/aliyungo/ecs/ssh_key_pair.go
blob: bd742442eb61dfdc686cad0d303bfeef0dc5e5be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package ecs

import (
	"github.com/denverdino/aliyungo/common"
)

type CreateKeyPairArgs struct {
	RegionId    common.Region
	KeyPairName string
}

type CreateKeyPairResponse struct {
	common.Response
	KeyPairName        string
	KeyPairFingerPrint string
	PrivateKeyBody     string
}

// CreateKeyPair creates keypair
//
// You can read doc at https://help.aliyun.com/document_detail/51771.html?spm=5176.doc51775.6.910.cedjfr
func (client *Client) CreateKeyPair(args *CreateKeyPairArgs) (resp *CreateKeyPairResponse,err error) {
	response := CreateKeyPairResponse{}
	err = client.Invoke("CreateKeyPair", args, &response)
	if err != nil {
		return nil, err
	}
	return &response, err
}

type ImportKeyPairArgs struct {
	RegionId      common.Region
	PublicKeyBody string
	KeyPairName   string
}

type ImportKeyPairResponse struct {
	common.Response
	KeyPairName        string
	KeyPairFingerPrint string
}

// ImportKeyPair import keypair
//
// You can read doc at https://help.aliyun.com/document_detail/51774.html?spm=5176.doc51771.6.911.BicQq2
func (client *Client) ImportKeyPair(args *ImportKeyPairArgs) (resp *ImportKeyPairResponse,err error) {
	response := ImportKeyPairResponse{}
	err = client.Invoke("ImportKeyPair", args, &response)
	if err != nil {
		return nil, err
	}
	return &response, err
}

type DescribeKeyPairsArgs struct {
	RegionId           common.Region
	KeyPairFingerPrint string
	KeyPairName        string
	common.Pagination
}

type KeyPairItemType struct {
	KeyPairName        string
	KeyPairFingerPrint string
}

type DescribeKeyPairsResponse struct {
	common.Response
	common.PaginationResult
	RegionId common.Region
	KeyPairs struct {
			 KeyPair []KeyPairItemType
	}
}

// DescribeKeyPairs describe keypairs
//
// You can read doc at https://help.aliyun.com/document_detail/51773.html?spm=5176.doc51774.6.912.lyE0iX
func (client *Client) DescribeKeyPairs(args *DescribeKeyPairsArgs) (KeyPairs   []KeyPairItemType, pagination *common.PaginationResult, err error) {
	response := DescribeKeyPairsResponse{}

	err = client.Invoke("DescribeKeyPairs", args, &response)

	if err != nil {
		return nil, nil, err
	}

	return response.KeyPairs.KeyPair, &response.PaginationResult, err
}

type AttachKeyPairArgs struct {
	RegionId    common.Region
	KeyPairName string
	InstanceIds string
}

// AttachKeyPair keypars to instances
//
// You can read doc at https://help.aliyun.com/document_detail/51775.html?spm=5176.doc51773.6.913.igEem4
func (client *Client) AttachKeyPair(args *AttachKeyPairArgs) (err error) {
	response := common.Response{}
	err = client.Invoke("AttachKeyPair", args, &response)
	if err != nil {
		return err
	}
	return nil
}

type DetachKeyPairArgs struct {
	RegionId    common.Region
	KeyPairName string
	InstanceIds string
}

// DetachKeyPair keyparis from instances
//
// You can read doc at https://help.aliyun.com/document_detail/51776.html?spm=5176.doc51775.6.914.DJ7Gmq
func (client *Client) DetachKeyPair(args *DetachKeyPairArgs) (err error) {
	response := common.Response{}
	err = client.Invoke("DetachKeyPair", args, &response)
	if err != nil {
		return err
	}
	return nil
}

type DeleteKeyPairsArgs struct {
	RegionId     common.Region
	KeyPairNames string
}

// DeleteKeyPairs delete keypairs
//
// You can read doc at https://help.aliyun.com/document_detail/51772.html?spm=5176.doc51776.6.915.Qqcv2Q
func (client *Client) DeleteKeyPairs(args *DeleteKeyPairsArgs) (err error) {
	response := common.Response{}
	err = client.Invoke("DeleteKeyPairs", args, &response)
	if err != nil {
		return err
	}
	return nil
}