-
Notifications
You must be signed in to change notification settings - Fork 623
/
api_op_ExportCertificate.go
158 lines (131 loc) · 4.92 KB
/
api_op_ExportCertificate.go
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package acm
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
type ExportCertificateInput struct {
_ struct{} `type:"structure"`
// An Amazon Resource Name (ARN) of the issued certificate. This must be of
// the form:
//
// arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012
//
// CertificateArn is a required field
CertificateArn *string `min:"20" type:"string" required:"true"`
// Passphrase to associate with the encrypted exported private key. If you want
// to later decrypt the private key, you must have the passphrase. You can use
// the following OpenSSL command to decrypt a private key:
//
// openssl rsa -in encrypted_key.pem -out decrypted_key.pem
//
// Passphrase is automatically base64 encoded/decoded by the SDK.
//
// Passphrase is a required field
Passphrase []byte `min:"4" type:"blob" required:"true" sensitive:"true"`
}
// String returns the string representation
func (s ExportCertificateInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ExportCertificateInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "ExportCertificateInput"}
if s.CertificateArn == nil {
invalidParams.Add(aws.NewErrParamRequired("CertificateArn"))
}
if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
invalidParams.Add(aws.NewErrParamMinLen("CertificateArn", 20))
}
if s.Passphrase == nil {
invalidParams.Add(aws.NewErrParamRequired("Passphrase"))
}
if s.Passphrase != nil && len(s.Passphrase) < 4 {
invalidParams.Add(aws.NewErrParamMinLen("Passphrase", 4))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type ExportCertificateOutput struct {
_ struct{} `type:"structure"`
// The base64 PEM-encoded certificate.
Certificate *string `min:"1" type:"string"`
// The base64 PEM-encoded certificate chain. This does not include the certificate
// that you are exporting.
CertificateChain *string `min:"1" type:"string"`
// The encrypted private key associated with the public key in the certificate.
// The key is output in PKCS #8 format and is base64 PEM-encoded.
PrivateKey *string `min:"1" type:"string" sensitive:"true"`
}
// String returns the string representation
func (s ExportCertificateOutput) String() string {
return awsutil.Prettify(s)
}
const opExportCertificate = "ExportCertificate"
// ExportCertificateRequest returns a request value for making API operation for
// AWS Certificate Manager.
//
// Exports a private certificate issued by a private certificate authority (CA)
// for use anywhere. You can export the certificate, the certificate chain,
// and the encrypted private key associated with the public key embedded in
// the certificate. You must store the private key securely. The private key
// is a 2048 bit RSA key. You must provide a passphrase for the private key
// when exporting it. You can use the following OpenSSL command to decrypt it
// later. Provide the passphrase when prompted.
//
// openssl rsa -in encrypted_key.pem -out decrypted_key.pem
//
// // Example sending a request using ExportCertificateRequest.
// req := client.ExportCertificateRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ExportCertificate
func (c *Client) ExportCertificateRequest(input *ExportCertificateInput) ExportCertificateRequest {
op := &aws.Operation{
Name: opExportCertificate,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &ExportCertificateInput{}
}
req := c.newRequest(op, input, &ExportCertificateOutput{})
return ExportCertificateRequest{Request: req, Input: input, Copy: c.ExportCertificateRequest}
}
// ExportCertificateRequest is the request type for the
// ExportCertificate API operation.
type ExportCertificateRequest struct {
*aws.Request
Input *ExportCertificateInput
Copy func(*ExportCertificateInput) ExportCertificateRequest
}
// Send marshals and sends the ExportCertificate API request.
func (r ExportCertificateRequest) Send(ctx context.Context) (*ExportCertificateResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &ExportCertificateResponse{
ExportCertificateOutput: r.Request.Data.(*ExportCertificateOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// ExportCertificateResponse is the response type for the
// ExportCertificate API operation.
type ExportCertificateResponse struct {
*ExportCertificateOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// ExportCertificate request.
func (r *ExportCertificateResponse) SDKResponseMetdata() *aws.Response {
return r.response
}