-
Notifications
You must be signed in to change notification settings - Fork 623
/
api_op_CreateHsm.go
189 lines (157 loc) · 6.01 KB
/
api_op_CreateHsm.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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package cloudhsm
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
// Contains the inputs for the CreateHsm operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateHsmRequest
type CreateHsmInput struct {
_ struct{} `locationName:"CreateHsmRequest" type:"structure"`
// A user-defined token to ensure idempotence. Subsequent calls to this operation
// with the same token will be ignored.
ClientToken *string `locationName:"ClientToken" type:"string"`
// The IP address to assign to the HSM's ENI.
//
// If an IP address is not specified, an IP address will be randomly chosen
// from the CIDR range of the subnet.
EniIp *string `locationName:"EniIp" type:"string"`
// The external ID from IamRoleArn, if present.
ExternalId *string `locationName:"ExternalId" type:"string"`
// The ARN of an IAM role to enable the AWS CloudHSM service to allocate an
// ENI on your behalf.
//
// IamRoleArn is a required field
IamRoleArn *string `locationName:"IamRoleArn" type:"string" required:"true"`
// The SSH public key to install on the HSM.
//
// SshKey is a required field
SshKey *string `locationName:"SshKey" type:"string" required:"true"`
// The identifier of the subnet in your VPC in which to place the HSM.
//
// SubnetId is a required field
SubnetId *string `locationName:"SubnetId" type:"string" required:"true"`
// Specifies the type of subscription for the HSM.
//
// * PRODUCTION - The HSM is being used in a production environment.
//
// * TRIAL - The HSM is being used in a product trial.
//
// SubscriptionType is a required field
SubscriptionType SubscriptionType `locationName:"SubscriptionType" type:"string" required:"true" enum:"true"`
// The IP address for the syslog monitoring server. The AWS CloudHSM service
// only supports one syslog monitoring server.
SyslogIp *string `locationName:"SyslogIp" type:"string"`
}
// String returns the string representation
func (s CreateHsmInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateHsmInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "CreateHsmInput"}
if s.IamRoleArn == nil {
invalidParams.Add(aws.NewErrParamRequired("IamRoleArn"))
}
if s.SshKey == nil {
invalidParams.Add(aws.NewErrParamRequired("SshKey"))
}
if s.SubnetId == nil {
invalidParams.Add(aws.NewErrParamRequired("SubnetId"))
}
if len(s.SubscriptionType) == 0 {
invalidParams.Add(aws.NewErrParamRequired("SubscriptionType"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Contains the output of the CreateHsm operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateHsmResponse
type CreateHsmOutput struct {
_ struct{} `type:"structure"`
// The ARN of the HSM.
HsmArn *string `type:"string"`
}
// String returns the string representation
func (s CreateHsmOutput) String() string {
return awsutil.Prettify(s)
}
const opCreateHsm = "CreateHsm"
// CreateHsmRequest returns a request value for making API operation for
// Amazon CloudHSM.
//
// This is documentation for AWS CloudHSM Classic. For more information, see
// AWS CloudHSM Classic FAQs (http://aws.amazon.com/cloudhsm/faqs-classic/),
// the AWS CloudHSM Classic User Guide (http://docs.aws.amazon.com/cloudhsm/classic/userguide/),
// and the AWS CloudHSM Classic API Reference (http://docs.aws.amazon.com/cloudhsm/classic/APIReference/).
//
// For information about the current version of AWS CloudHSM, see AWS CloudHSM
// (http://aws.amazon.com/cloudhsm/), the AWS CloudHSM User Guide (http://docs.aws.amazon.com/cloudhsm/latest/userguide/),
// and the AWS CloudHSM API Reference (http://docs.aws.amazon.com/cloudhsm/latest/APIReference/).
//
// Creates an uninitialized HSM instance.
//
// There is an upfront fee charged for each HSM instance that you create with
// the CreateHsm operation. If you accidentally provision an HSM and want to
// request a refund, delete the instance using the DeleteHsm operation, go to
// the AWS Support Center (https://console.aws.amazon.com/support/home), create
// a new case, and select Account and Billing Support.
//
// It can take up to 20 minutes to create and provision an HSM. You can monitor
// the status of the HSM with the DescribeHsm operation. The HSM is ready to
// be initialized when the status changes to RUNNING.
//
// // Example sending a request using CreateHsmRequest.
// req := client.CreateHsmRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/cloudhsm-2014-05-30/CreateHsm
func (c *Client) CreateHsmRequest(input *CreateHsmInput) CreateHsmRequest {
op := &aws.Operation{
Name: opCreateHsm,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &CreateHsmInput{}
}
req := c.newRequest(op, input, &CreateHsmOutput{})
return CreateHsmRequest{Request: req, Input: input, Copy: c.CreateHsmRequest}
}
// CreateHsmRequest is the request type for the
// CreateHsm API operation.
type CreateHsmRequest struct {
*aws.Request
Input *CreateHsmInput
Copy func(*CreateHsmInput) CreateHsmRequest
}
// Send marshals and sends the CreateHsm API request.
func (r CreateHsmRequest) Send(ctx context.Context) (*CreateHsmResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &CreateHsmResponse{
CreateHsmOutput: r.Request.Data.(*CreateHsmOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// CreateHsmResponse is the response type for the
// CreateHsm API operation.
type CreateHsmResponse struct {
*CreateHsmOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// CreateHsm request.
func (r *CreateHsmResponse) SDKResponseMetdata() *aws.Response {
return r.response
}