-
Notifications
You must be signed in to change notification settings - Fork 600
/
api_op_ActivateGateway.go
255 lines (222 loc) · 9 KB
/
api_op_ActivateGateway.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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package storagegateway
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
// A JSON object containing one or more of the following fields:
//
// * ActivateGatewayInput$ActivationKey
//
// * ActivateGatewayInput$GatewayName
//
// * ActivateGatewayInput$GatewayRegion
//
// * ActivateGatewayInput$GatewayTimezone
//
// * ActivateGatewayInput$GatewayType
//
// * ActivateGatewayInput$TapeDriveType
//
// * ActivateGatewayInput$MediumChangerType
// Please also see https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ActivateGatewayInput
type ActivateGatewayInput struct {
_ struct{} `type:"structure"`
// Your gateway activation key. You can obtain the activation key by sending
// an HTTP GET request with redirects enabled to the gateway IP address (port
// 80). The redirect URL returned in the response provides you the activation
// key for your gateway in the query string parameter activationKey. It may
// also include other activation-related parameters, however, these are merely
// defaults -- the arguments you pass to the ActivateGateway API call determine
// the actual configuration of your gateway.
//
// For more information, see https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html
// in the Storage Gateway User Guide.
//
// ActivationKey is a required field
ActivationKey *string `min:"1" type:"string" required:"true"`
// The name you configured for your gateway.
//
// GatewayName is a required field
GatewayName *string `min:"2" type:"string" required:"true"`
// A value that indicates the region where you want to store your data. The
// gateway region specified must be the same region as the region in your Host
// header in the request. For more information about available regions and endpoints
// for AWS Storage Gateway, see Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region)
// in the Amazon Web Services Glossary.
//
// Valid Values: See AWS Storage Gateway Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region)
// in the AWS General Reference.
//
// GatewayRegion is a required field
GatewayRegion *string `min:"1" type:"string" required:"true"`
// A value that indicates the time zone you want to set for the gateway. The
// time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00
// indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is
// 2 hours ahead of GMT. The time zone is used, for example, for scheduling
// snapshots and your gateway's maintenance schedule.
//
// GatewayTimezone is a required field
GatewayTimezone *string `min:"3" type:"string" required:"true"`
// A value that defines the type of gateway to activate. The type specified
// is critical to all later functions of the gateway and cannot be changed after
// activation. The default value is CACHED.
//
// Valid Values: "STORED", "CACHED", "VTL", "FILE_S3"
GatewayType *string `min:"2" type:"string"`
// The value that indicates the type of medium changer to use for tape gateway.
// This field is optional.
//
// Valid Values: "STK-L700", "AWS-Gateway-VTL"
MediumChangerType *string `min:"2" type:"string"`
// A list of up to 50 tags that can be assigned to the gateway. Each tag is
// a key-value pair.
//
// Valid characters for key and value are letters, spaces, and numbers representable
// in UTF-8 format, and the following special characters: + - = . _ : / @. The
// maximum length of a tag's key is 128 characters, and the maximum length for
// a tag's value is 256.
Tags []Tag `type:"list"`
// The value that indicates the type of tape drive to use for tape gateway.
// This field is optional.
//
// Valid Values: "IBM-ULT3580-TD5"
TapeDriveType *string `min:"2" type:"string"`
}
// String returns the string representation
func (s ActivateGatewayInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ActivateGatewayInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "ActivateGatewayInput"}
if s.ActivationKey == nil {
invalidParams.Add(aws.NewErrParamRequired("ActivationKey"))
}
if s.ActivationKey != nil && len(*s.ActivationKey) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("ActivationKey", 1))
}
if s.GatewayName == nil {
invalidParams.Add(aws.NewErrParamRequired("GatewayName"))
}
if s.GatewayName != nil && len(*s.GatewayName) < 2 {
invalidParams.Add(aws.NewErrParamMinLen("GatewayName", 2))
}
if s.GatewayRegion == nil {
invalidParams.Add(aws.NewErrParamRequired("GatewayRegion"))
}
if s.GatewayRegion != nil && len(*s.GatewayRegion) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("GatewayRegion", 1))
}
if s.GatewayTimezone == nil {
invalidParams.Add(aws.NewErrParamRequired("GatewayTimezone"))
}
if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
invalidParams.Add(aws.NewErrParamMinLen("GatewayTimezone", 3))
}
if s.GatewayType != nil && len(*s.GatewayType) < 2 {
invalidParams.Add(aws.NewErrParamMinLen("GatewayType", 2))
}
if s.MediumChangerType != nil && len(*s.MediumChangerType) < 2 {
invalidParams.Add(aws.NewErrParamMinLen("MediumChangerType", 2))
}
if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
invalidParams.Add(aws.NewErrParamMinLen("TapeDriveType", 2))
}
if s.Tags != nil {
for i, v := range s.Tags {
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(aws.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated
// gateway. It is a string made of information such as your account, gateway
// name, and region. This ARN is used to reference the gateway in other API
// operations as well as resource-based authorization.
//
// For gateways activated prior to September 02, 2015, the gateway ARN contains
// the gateway name rather than the gateway ID. Changing the name of the gateway
// has no effect on the gateway ARN.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ActivateGatewayOutput
type ActivateGatewayOutput struct {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
// to return a list of gateways for your account and region.
GatewayARN *string `min:"50" type:"string"`
}
// String returns the string representation
func (s ActivateGatewayOutput) String() string {
return awsutil.Prettify(s)
}
const opActivateGateway = "ActivateGateway"
// ActivateGatewayRequest returns a request value for making API operation for
// AWS Storage Gateway.
//
// Activates the gateway you previously deployed on your host. In the activation
// process, you specify information such as the region you want to use for storing
// snapshots or tapes, the time zone for scheduled snapshots the gateway snapshot
// schedule window, an activation key, and a name for your gateway. The activation
// process also associates your gateway with your account; for more information,
// see UpdateGatewayInformation.
//
// You must turn on the gateway VM before you can activate your gateway.
//
// // Example sending a request using ActivateGatewayRequest.
// req := client.ActivateGatewayRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ActivateGateway
func (c *Client) ActivateGatewayRequest(input *ActivateGatewayInput) ActivateGatewayRequest {
op := &aws.Operation{
Name: opActivateGateway,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &ActivateGatewayInput{}
}
req := c.newRequest(op, input, &ActivateGatewayOutput{})
return ActivateGatewayRequest{Request: req, Input: input, Copy: c.ActivateGatewayRequest}
}
// ActivateGatewayRequest is the request type for the
// ActivateGateway API operation.
type ActivateGatewayRequest struct {
*aws.Request
Input *ActivateGatewayInput
Copy func(*ActivateGatewayInput) ActivateGatewayRequest
}
// Send marshals and sends the ActivateGateway API request.
func (r ActivateGatewayRequest) Send(ctx context.Context) (*ActivateGatewayResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &ActivateGatewayResponse{
ActivateGatewayOutput: r.Request.Data.(*ActivateGatewayOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// ActivateGatewayResponse is the response type for the
// ActivateGateway API operation.
type ActivateGatewayResponse struct {
*ActivateGatewayOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// ActivateGateway request.
func (r *ActivateGatewayResponse) SDKResponseMetdata() *aws.Response {
return r.response
}