1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package dax
4
5import (
6	"time"
7
8	"github.com/aws/aws-sdk-go/aws"
9	"github.com/aws/aws-sdk-go/aws/awsutil"
10	"github.com/aws/aws-sdk-go/aws/request"
11)
12
13const opCreateCluster = "CreateCluster"
14
15// CreateClusterRequest generates a "aws/request.Request" representing the
16// client's request for the CreateCluster operation. The "output" return
17// value will be populated with the request's response once the request complets
18// successfuly.
19//
20// Use "Send" method on the returned Request to send the API call to the service.
21// the "output" return value is not valid until after Send returns without error.
22//
23// See CreateCluster for more information on using the CreateCluster
24// API call, and error handling.
25//
26// This method is useful when you want to inject custom logic or configuration
27// into the SDK's request lifecycle. Such as custom headers, or retry logic.
28//
29//
30//    // Example sending a request using the CreateClusterRequest method.
31//    req, resp := client.CreateClusterRequest(params)
32//
33//    err := req.Send()
34//    if err == nil { // resp is now filled
35//        fmt.Println(resp)
36//    }
37//
38// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateCluster
39func (c *DAX) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
40	op := &request.Operation{
41		Name:       opCreateCluster,
42		HTTPMethod: "POST",
43		HTTPPath:   "/",
44	}
45
46	if input == nil {
47		input = &CreateClusterInput{}
48	}
49
50	output = &CreateClusterOutput{}
51	req = c.newRequest(op, input, output)
52	return
53}
54
55// CreateCluster API operation for Amazon DynamoDB Accelerator (DAX).
56//
57// Creates a DAX cluster. All nodes in the cluster run the same DAX caching
58// software.
59//
60// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
61// with awserr.Error's Code and Message methods to get detailed information about
62// the error.
63//
64// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
65// API operation CreateCluster for usage and error information.
66//
67// Returned Error Codes:
68//   * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExistsFault"
69//   You already have a DAX cluster with the given identifier.
70//
71//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
72//   The requested DAX cluster is not in the available state.
73//
74//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacityFault"
75//   There are not enough system resources to create the cluster you requested
76//   (or to resize an already-existing cluster).
77//
78//   * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault"
79//   The requested subnet group name does not refer to an existing subnet group.
80//
81//   * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault"
82//   One or more parameters in a parameter group are in an invalid state.
83//
84//   * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault"
85//   The specified parameter group does not exist.
86//
87//   * ErrCodeClusterQuotaForCustomerExceededFault "ClusterQuotaForCustomerExceededFault"
88//   You have attempted to exceed the maximum number of DAX clusters for your
89//   AWS account.
90//
91//   * ErrCodeNodeQuotaForClusterExceededFault "NodeQuotaForClusterExceededFault"
92//   You have attempted to exceed the maximum number of nodes for a DAX cluster.
93//
94//   * ErrCodeNodeQuotaForCustomerExceededFault "NodeQuotaForCustomerExceededFault"
95//   You have attempted to exceed the maximum number of nodes for your AWS account.
96//
97//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
98//   The VPC network is in an invalid state.
99//
100//   * ErrCodeTagQuotaPerResourceExceeded "TagQuotaPerResourceExceeded"
101//   You have exceeded the maximum number of tags for this DAX cluster.
102//
103//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
104//   The value for a parameter is invalid.
105//
106//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
107//   Two or more incompatible parameters were specified.
108//
109// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateCluster
110func (c *DAX) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
111	req, out := c.CreateClusterRequest(input)
112	return out, req.Send()
113}
114
115// CreateClusterWithContext is the same as CreateCluster with the addition of
116// the ability to pass a context and additional request options.
117//
118// See CreateCluster for details on how to use this API operation.
119//
120// The context must be non-nil and will be used for request cancellation. If
121// the context is nil a panic will occur. In the future the SDK may create
122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
123// for more information on using Contexts.
124func (c *DAX) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
125	req, out := c.CreateClusterRequest(input)
126	req.SetContext(ctx)
127	req.ApplyOptions(opts...)
128	return out, req.Send()
129}
130
131const opCreateParameterGroup = "CreateParameterGroup"
132
133// CreateParameterGroupRequest generates a "aws/request.Request" representing the
134// client's request for the CreateParameterGroup operation. The "output" return
135// value will be populated with the request's response once the request complets
136// successfuly.
137//
138// Use "Send" method on the returned Request to send the API call to the service.
139// the "output" return value is not valid until after Send returns without error.
140//
141// See CreateParameterGroup for more information on using the CreateParameterGroup
142// API call, and error handling.
143//
144// This method is useful when you want to inject custom logic or configuration
145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
146//
147//
148//    // Example sending a request using the CreateParameterGroupRequest method.
149//    req, resp := client.CreateParameterGroupRequest(params)
150//
151//    err := req.Send()
152//    if err == nil { // resp is now filled
153//        fmt.Println(resp)
154//    }
155//
156// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateParameterGroup
157func (c *DAX) CreateParameterGroupRequest(input *CreateParameterGroupInput) (req *request.Request, output *CreateParameterGroupOutput) {
158	op := &request.Operation{
159		Name:       opCreateParameterGroup,
160		HTTPMethod: "POST",
161		HTTPPath:   "/",
162	}
163
164	if input == nil {
165		input = &CreateParameterGroupInput{}
166	}
167
168	output = &CreateParameterGroupOutput{}
169	req = c.newRequest(op, input, output)
170	return
171}
172
173// CreateParameterGroup API operation for Amazon DynamoDB Accelerator (DAX).
174//
175// Creates a new parameter group. A parameter group is a collection of parameters
176// that you apply to all of the nodes in a DAX cluster.
177//
178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
179// with awserr.Error's Code and Message methods to get detailed information about
180// the error.
181//
182// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
183// API operation CreateParameterGroup for usage and error information.
184//
185// Returned Error Codes:
186//   * ErrCodeParameterGroupQuotaExceededFault "ParameterGroupQuotaExceededFault"
187//   You have attempted to exceed the maximum number of parameter groups.
188//
189//   * ErrCodeParameterGroupAlreadyExistsFault "ParameterGroupAlreadyExistsFault"
190//   The specified parameter group already exists.
191//
192//   * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault"
193//   One or more parameters in a parameter group are in an invalid state.
194//
195//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
196//   The value for a parameter is invalid.
197//
198//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
199//   Two or more incompatible parameters were specified.
200//
201// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateParameterGroup
202func (c *DAX) CreateParameterGroup(input *CreateParameterGroupInput) (*CreateParameterGroupOutput, error) {
203	req, out := c.CreateParameterGroupRequest(input)
204	return out, req.Send()
205}
206
207// CreateParameterGroupWithContext is the same as CreateParameterGroup with the addition of
208// the ability to pass a context and additional request options.
209//
210// See CreateParameterGroup for details on how to use this API operation.
211//
212// The context must be non-nil and will be used for request cancellation. If
213// the context is nil a panic will occur. In the future the SDK may create
214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
215// for more information on using Contexts.
216func (c *DAX) CreateParameterGroupWithContext(ctx aws.Context, input *CreateParameterGroupInput, opts ...request.Option) (*CreateParameterGroupOutput, error) {
217	req, out := c.CreateParameterGroupRequest(input)
218	req.SetContext(ctx)
219	req.ApplyOptions(opts...)
220	return out, req.Send()
221}
222
223const opCreateSubnetGroup = "CreateSubnetGroup"
224
225// CreateSubnetGroupRequest generates a "aws/request.Request" representing the
226// client's request for the CreateSubnetGroup operation. The "output" return
227// value will be populated with the request's response once the request complets
228// successfuly.
229//
230// Use "Send" method on the returned Request to send the API call to the service.
231// the "output" return value is not valid until after Send returns without error.
232//
233// See CreateSubnetGroup for more information on using the CreateSubnetGroup
234// API call, and error handling.
235//
236// This method is useful when you want to inject custom logic or configuration
237// into the SDK's request lifecycle. Such as custom headers, or retry logic.
238//
239//
240//    // Example sending a request using the CreateSubnetGroupRequest method.
241//    req, resp := client.CreateSubnetGroupRequest(params)
242//
243//    err := req.Send()
244//    if err == nil { // resp is now filled
245//        fmt.Println(resp)
246//    }
247//
248// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateSubnetGroup
249func (c *DAX) CreateSubnetGroupRequest(input *CreateSubnetGroupInput) (req *request.Request, output *CreateSubnetGroupOutput) {
250	op := &request.Operation{
251		Name:       opCreateSubnetGroup,
252		HTTPMethod: "POST",
253		HTTPPath:   "/",
254	}
255
256	if input == nil {
257		input = &CreateSubnetGroupInput{}
258	}
259
260	output = &CreateSubnetGroupOutput{}
261	req = c.newRequest(op, input, output)
262	return
263}
264
265// CreateSubnetGroup API operation for Amazon DynamoDB Accelerator (DAX).
266//
267// Creates a new subnet group.
268//
269// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
270// with awserr.Error's Code and Message methods to get detailed information about
271// the error.
272//
273// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
274// API operation CreateSubnetGroup for usage and error information.
275//
276// Returned Error Codes:
277//   * ErrCodeSubnetGroupAlreadyExistsFault "SubnetGroupAlreadyExistsFault"
278//   The specified subnet group already exists.
279//
280//   * ErrCodeSubnetGroupQuotaExceededFault "SubnetGroupQuotaExceededFault"
281//   The request cannot be processed because it would exceed the allowed number
282//   of subnets in a subnet group.
283//
284//   * ErrCodeSubnetQuotaExceededFault "SubnetQuotaExceededFault"
285//   The request cannot be processed because it would exceed the allowed number
286//   of subnets in a subnet group.
287//
288//   * ErrCodeInvalidSubnet "InvalidSubnet"
289//   An invalid subnet identifier was specified.
290//
291// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateSubnetGroup
292func (c *DAX) CreateSubnetGroup(input *CreateSubnetGroupInput) (*CreateSubnetGroupOutput, error) {
293	req, out := c.CreateSubnetGroupRequest(input)
294	return out, req.Send()
295}
296
297// CreateSubnetGroupWithContext is the same as CreateSubnetGroup with the addition of
298// the ability to pass a context and additional request options.
299//
300// See CreateSubnetGroup for details on how to use this API operation.
301//
302// The context must be non-nil and will be used for request cancellation. If
303// the context is nil a panic will occur. In the future the SDK may create
304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
305// for more information on using Contexts.
306func (c *DAX) CreateSubnetGroupWithContext(ctx aws.Context, input *CreateSubnetGroupInput, opts ...request.Option) (*CreateSubnetGroupOutput, error) {
307	req, out := c.CreateSubnetGroupRequest(input)
308	req.SetContext(ctx)
309	req.ApplyOptions(opts...)
310	return out, req.Send()
311}
312
313const opDecreaseReplicationFactor = "DecreaseReplicationFactor"
314
315// DecreaseReplicationFactorRequest generates a "aws/request.Request" representing the
316// client's request for the DecreaseReplicationFactor operation. The "output" return
317// value will be populated with the request's response once the request complets
318// successfuly.
319//
320// Use "Send" method on the returned Request to send the API call to the service.
321// the "output" return value is not valid until after Send returns without error.
322//
323// See DecreaseReplicationFactor for more information on using the DecreaseReplicationFactor
324// API call, and error handling.
325//
326// This method is useful when you want to inject custom logic or configuration
327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
328//
329//
330//    // Example sending a request using the DecreaseReplicationFactorRequest method.
331//    req, resp := client.DecreaseReplicationFactorRequest(params)
332//
333//    err := req.Send()
334//    if err == nil { // resp is now filled
335//        fmt.Println(resp)
336//    }
337//
338// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DecreaseReplicationFactor
339func (c *DAX) DecreaseReplicationFactorRequest(input *DecreaseReplicationFactorInput) (req *request.Request, output *DecreaseReplicationFactorOutput) {
340	op := &request.Operation{
341		Name:       opDecreaseReplicationFactor,
342		HTTPMethod: "POST",
343		HTTPPath:   "/",
344	}
345
346	if input == nil {
347		input = &DecreaseReplicationFactorInput{}
348	}
349
350	output = &DecreaseReplicationFactorOutput{}
351	req = c.newRequest(op, input, output)
352	return
353}
354
355// DecreaseReplicationFactor API operation for Amazon DynamoDB Accelerator (DAX).
356//
357// Removes one or more nodes from a DAX cluster.
358//
359// You cannot use DecreaseReplicationFactor to remove the last node in a DAX
360// cluster. If you need to do this, use DeleteCluster instead.
361//
362// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
363// with awserr.Error's Code and Message methods to get detailed information about
364// the error.
365//
366// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
367// API operation DecreaseReplicationFactor for usage and error information.
368//
369// Returned Error Codes:
370//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
371//   The requested cluster ID does not refer to an existing DAX cluster.
372//
373//   * ErrCodeNodeNotFoundFault "NodeNotFoundFault"
374//   None of the nodes in the cluster have the given node ID.
375//
376//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
377//   The requested DAX cluster is not in the available state.
378//
379//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
380//   The value for a parameter is invalid.
381//
382//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
383//   Two or more incompatible parameters were specified.
384//
385// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DecreaseReplicationFactor
386func (c *DAX) DecreaseReplicationFactor(input *DecreaseReplicationFactorInput) (*DecreaseReplicationFactorOutput, error) {
387	req, out := c.DecreaseReplicationFactorRequest(input)
388	return out, req.Send()
389}
390
391// DecreaseReplicationFactorWithContext is the same as DecreaseReplicationFactor with the addition of
392// the ability to pass a context and additional request options.
393//
394// See DecreaseReplicationFactor for details on how to use this API operation.
395//
396// The context must be non-nil and will be used for request cancellation. If
397// the context is nil a panic will occur. In the future the SDK may create
398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
399// for more information on using Contexts.
400func (c *DAX) DecreaseReplicationFactorWithContext(ctx aws.Context, input *DecreaseReplicationFactorInput, opts ...request.Option) (*DecreaseReplicationFactorOutput, error) {
401	req, out := c.DecreaseReplicationFactorRequest(input)
402	req.SetContext(ctx)
403	req.ApplyOptions(opts...)
404	return out, req.Send()
405}
406
407const opDeleteCluster = "DeleteCluster"
408
409// DeleteClusterRequest generates a "aws/request.Request" representing the
410// client's request for the DeleteCluster operation. The "output" return
411// value will be populated with the request's response once the request complets
412// successfuly.
413//
414// Use "Send" method on the returned Request to send the API call to the service.
415// the "output" return value is not valid until after Send returns without error.
416//
417// See DeleteCluster for more information on using the DeleteCluster
418// API call, and error handling.
419//
420// This method is useful when you want to inject custom logic or configuration
421// into the SDK's request lifecycle. Such as custom headers, or retry logic.
422//
423//
424//    // Example sending a request using the DeleteClusterRequest method.
425//    req, resp := client.DeleteClusterRequest(params)
426//
427//    err := req.Send()
428//    if err == nil { // resp is now filled
429//        fmt.Println(resp)
430//    }
431//
432// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteCluster
433func (c *DAX) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
434	op := &request.Operation{
435		Name:       opDeleteCluster,
436		HTTPMethod: "POST",
437		HTTPPath:   "/",
438	}
439
440	if input == nil {
441		input = &DeleteClusterInput{}
442	}
443
444	output = &DeleteClusterOutput{}
445	req = c.newRequest(op, input, output)
446	return
447}
448
449// DeleteCluster API operation for Amazon DynamoDB Accelerator (DAX).
450//
451// Deletes a previously provisioned DAX cluster. DeleteCluster deletes all associated
452// nodes, node endpoints and the DAX cluster itself. When you receive a successful
453// response from this action, DAX immediately begins deleting the cluster; you
454// cannot cancel or revert this action.
455//
456// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
457// with awserr.Error's Code and Message methods to get detailed information about
458// the error.
459//
460// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
461// API operation DeleteCluster for usage and error information.
462//
463// Returned Error Codes:
464//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
465//   The requested cluster ID does not refer to an existing DAX cluster.
466//
467//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
468//   The requested DAX cluster is not in the available state.
469//
470//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
471//   The value for a parameter is invalid.
472//
473//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
474//   Two or more incompatible parameters were specified.
475//
476// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteCluster
477func (c *DAX) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
478	req, out := c.DeleteClusterRequest(input)
479	return out, req.Send()
480}
481
482// DeleteClusterWithContext is the same as DeleteCluster with the addition of
483// the ability to pass a context and additional request options.
484//
485// See DeleteCluster for details on how to use this API operation.
486//
487// The context must be non-nil and will be used for request cancellation. If
488// the context is nil a panic will occur. In the future the SDK may create
489// sub-contexts for http.Requests. See https://golang.org/pkg/context/
490// for more information on using Contexts.
491func (c *DAX) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
492	req, out := c.DeleteClusterRequest(input)
493	req.SetContext(ctx)
494	req.ApplyOptions(opts...)
495	return out, req.Send()
496}
497
498const opDeleteParameterGroup = "DeleteParameterGroup"
499
500// DeleteParameterGroupRequest generates a "aws/request.Request" representing the
501// client's request for the DeleteParameterGroup operation. The "output" return
502// value will be populated with the request's response once the request complets
503// successfuly.
504//
505// Use "Send" method on the returned Request to send the API call to the service.
506// the "output" return value is not valid until after Send returns without error.
507//
508// See DeleteParameterGroup for more information on using the DeleteParameterGroup
509// API call, and error handling.
510//
511// This method is useful when you want to inject custom logic or configuration
512// into the SDK's request lifecycle. Such as custom headers, or retry logic.
513//
514//
515//    // Example sending a request using the DeleteParameterGroupRequest method.
516//    req, resp := client.DeleteParameterGroupRequest(params)
517//
518//    err := req.Send()
519//    if err == nil { // resp is now filled
520//        fmt.Println(resp)
521//    }
522//
523// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteParameterGroup
524func (c *DAX) DeleteParameterGroupRequest(input *DeleteParameterGroupInput) (req *request.Request, output *DeleteParameterGroupOutput) {
525	op := &request.Operation{
526		Name:       opDeleteParameterGroup,
527		HTTPMethod: "POST",
528		HTTPPath:   "/",
529	}
530
531	if input == nil {
532		input = &DeleteParameterGroupInput{}
533	}
534
535	output = &DeleteParameterGroupOutput{}
536	req = c.newRequest(op, input, output)
537	return
538}
539
540// DeleteParameterGroup API operation for Amazon DynamoDB Accelerator (DAX).
541//
542// Deletes the specified parameter group. You cannot delete a parameter group
543// if it is associated with any DAX clusters.
544//
545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
546// with awserr.Error's Code and Message methods to get detailed information about
547// the error.
548//
549// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
550// API operation DeleteParameterGroup for usage and error information.
551//
552// Returned Error Codes:
553//   * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault"
554//   One or more parameters in a parameter group are in an invalid state.
555//
556//   * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault"
557//   The specified parameter group does not exist.
558//
559//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
560//   The value for a parameter is invalid.
561//
562//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
563//   Two or more incompatible parameters were specified.
564//
565// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteParameterGroup
566func (c *DAX) DeleteParameterGroup(input *DeleteParameterGroupInput) (*DeleteParameterGroupOutput, error) {
567	req, out := c.DeleteParameterGroupRequest(input)
568	return out, req.Send()
569}
570
571// DeleteParameterGroupWithContext is the same as DeleteParameterGroup with the addition of
572// the ability to pass a context and additional request options.
573//
574// See DeleteParameterGroup for details on how to use this API operation.
575//
576// The context must be non-nil and will be used for request cancellation. If
577// the context is nil a panic will occur. In the future the SDK may create
578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
579// for more information on using Contexts.
580func (c *DAX) DeleteParameterGroupWithContext(ctx aws.Context, input *DeleteParameterGroupInput, opts ...request.Option) (*DeleteParameterGroupOutput, error) {
581	req, out := c.DeleteParameterGroupRequest(input)
582	req.SetContext(ctx)
583	req.ApplyOptions(opts...)
584	return out, req.Send()
585}
586
587const opDeleteSubnetGroup = "DeleteSubnetGroup"
588
589// DeleteSubnetGroupRequest generates a "aws/request.Request" representing the
590// client's request for the DeleteSubnetGroup operation. The "output" return
591// value will be populated with the request's response once the request complets
592// successfuly.
593//
594// Use "Send" method on the returned Request to send the API call to the service.
595// the "output" return value is not valid until after Send returns without error.
596//
597// See DeleteSubnetGroup for more information on using the DeleteSubnetGroup
598// API call, and error handling.
599//
600// This method is useful when you want to inject custom logic or configuration
601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
602//
603//
604//    // Example sending a request using the DeleteSubnetGroupRequest method.
605//    req, resp := client.DeleteSubnetGroupRequest(params)
606//
607//    err := req.Send()
608//    if err == nil { // resp is now filled
609//        fmt.Println(resp)
610//    }
611//
612// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteSubnetGroup
613func (c *DAX) DeleteSubnetGroupRequest(input *DeleteSubnetGroupInput) (req *request.Request, output *DeleteSubnetGroupOutput) {
614	op := &request.Operation{
615		Name:       opDeleteSubnetGroup,
616		HTTPMethod: "POST",
617		HTTPPath:   "/",
618	}
619
620	if input == nil {
621		input = &DeleteSubnetGroupInput{}
622	}
623
624	output = &DeleteSubnetGroupOutput{}
625	req = c.newRequest(op, input, output)
626	return
627}
628
629// DeleteSubnetGroup API operation for Amazon DynamoDB Accelerator (DAX).
630//
631// Deletes a subnet group.
632//
633// You cannot delete a subnet group if it is associated with any DAX clusters.
634//
635// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
636// with awserr.Error's Code and Message methods to get detailed information about
637// the error.
638//
639// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
640// API operation DeleteSubnetGroup for usage and error information.
641//
642// Returned Error Codes:
643//   * ErrCodeSubnetGroupInUseFault "SubnetGroupInUseFault"
644//   The specified subnet group is currently in use.
645//
646//   * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault"
647//   The requested subnet group name does not refer to an existing subnet group.
648//
649// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteSubnetGroup
650func (c *DAX) DeleteSubnetGroup(input *DeleteSubnetGroupInput) (*DeleteSubnetGroupOutput, error) {
651	req, out := c.DeleteSubnetGroupRequest(input)
652	return out, req.Send()
653}
654
655// DeleteSubnetGroupWithContext is the same as DeleteSubnetGroup with the addition of
656// the ability to pass a context and additional request options.
657//
658// See DeleteSubnetGroup for details on how to use this API operation.
659//
660// The context must be non-nil and will be used for request cancellation. If
661// the context is nil a panic will occur. In the future the SDK may create
662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
663// for more information on using Contexts.
664func (c *DAX) DeleteSubnetGroupWithContext(ctx aws.Context, input *DeleteSubnetGroupInput, opts ...request.Option) (*DeleteSubnetGroupOutput, error) {
665	req, out := c.DeleteSubnetGroupRequest(input)
666	req.SetContext(ctx)
667	req.ApplyOptions(opts...)
668	return out, req.Send()
669}
670
671const opDescribeClusters = "DescribeClusters"
672
673// DescribeClustersRequest generates a "aws/request.Request" representing the
674// client's request for the DescribeClusters operation. The "output" return
675// value will be populated with the request's response once the request complets
676// successfuly.
677//
678// Use "Send" method on the returned Request to send the API call to the service.
679// the "output" return value is not valid until after Send returns without error.
680//
681// See DescribeClusters for more information on using the DescribeClusters
682// API call, and error handling.
683//
684// This method is useful when you want to inject custom logic or configuration
685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
686//
687//
688//    // Example sending a request using the DescribeClustersRequest method.
689//    req, resp := client.DescribeClustersRequest(params)
690//
691//    err := req.Send()
692//    if err == nil { // resp is now filled
693//        fmt.Println(resp)
694//    }
695//
696// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeClusters
697func (c *DAX) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
698	op := &request.Operation{
699		Name:       opDescribeClusters,
700		HTTPMethod: "POST",
701		HTTPPath:   "/",
702	}
703
704	if input == nil {
705		input = &DescribeClustersInput{}
706	}
707
708	output = &DescribeClustersOutput{}
709	req = c.newRequest(op, input, output)
710	return
711}
712
713// DescribeClusters API operation for Amazon DynamoDB Accelerator (DAX).
714//
715// Returns information about all provisioned DAX clusters if no cluster identifier
716// is specified, or about a specific DAX cluster if a cluster identifier is
717// supplied.
718//
719// If the cluster is in the CREATING state, only cluster level information will
720// be displayed until all of the nodes are successfully provisioned.
721//
722// If the cluster is in the DELETING state, only cluster level information will
723// be displayed.
724//
725// If nodes are currently being added to the DAX cluster, node endpoint information
726// and creation time for the additional nodes will not be displayed until they
727// are completely provisioned. When the DAX cluster state is available, the
728// cluster is ready for use.
729//
730// If nodes are currently being removed from the DAX cluster, no endpoint information
731// for the removed nodes is displayed.
732//
733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
734// with awserr.Error's Code and Message methods to get detailed information about
735// the error.
736//
737// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
738// API operation DescribeClusters for usage and error information.
739//
740// Returned Error Codes:
741//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
742//   The requested cluster ID does not refer to an existing DAX cluster.
743//
744//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
745//   The value for a parameter is invalid.
746//
747//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
748//   Two or more incompatible parameters were specified.
749//
750// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeClusters
751func (c *DAX) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
752	req, out := c.DescribeClustersRequest(input)
753	return out, req.Send()
754}
755
756// DescribeClustersWithContext is the same as DescribeClusters with the addition of
757// the ability to pass a context and additional request options.
758//
759// See DescribeClusters for details on how to use this API operation.
760//
761// The context must be non-nil and will be used for request cancellation. If
762// the context is nil a panic will occur. In the future the SDK may create
763// sub-contexts for http.Requests. See https://golang.org/pkg/context/
764// for more information on using Contexts.
765func (c *DAX) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
766	req, out := c.DescribeClustersRequest(input)
767	req.SetContext(ctx)
768	req.ApplyOptions(opts...)
769	return out, req.Send()
770}
771
772const opDescribeDefaultParameters = "DescribeDefaultParameters"
773
774// DescribeDefaultParametersRequest generates a "aws/request.Request" representing the
775// client's request for the DescribeDefaultParameters operation. The "output" return
776// value will be populated with the request's response once the request complets
777// successfuly.
778//
779// Use "Send" method on the returned Request to send the API call to the service.
780// the "output" return value is not valid until after Send returns without error.
781//
782// See DescribeDefaultParameters for more information on using the DescribeDefaultParameters
783// API call, and error handling.
784//
785// This method is useful when you want to inject custom logic or configuration
786// into the SDK's request lifecycle. Such as custom headers, or retry logic.
787//
788//
789//    // Example sending a request using the DescribeDefaultParametersRequest method.
790//    req, resp := client.DescribeDefaultParametersRequest(params)
791//
792//    err := req.Send()
793//    if err == nil { // resp is now filled
794//        fmt.Println(resp)
795//    }
796//
797// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeDefaultParameters
798func (c *DAX) DescribeDefaultParametersRequest(input *DescribeDefaultParametersInput) (req *request.Request, output *DescribeDefaultParametersOutput) {
799	op := &request.Operation{
800		Name:       opDescribeDefaultParameters,
801		HTTPMethod: "POST",
802		HTTPPath:   "/",
803	}
804
805	if input == nil {
806		input = &DescribeDefaultParametersInput{}
807	}
808
809	output = &DescribeDefaultParametersOutput{}
810	req = c.newRequest(op, input, output)
811	return
812}
813
814// DescribeDefaultParameters API operation for Amazon DynamoDB Accelerator (DAX).
815//
816// Returns the default system parameter information for the DAX caching software.
817//
818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
819// with awserr.Error's Code and Message methods to get detailed information about
820// the error.
821//
822// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
823// API operation DescribeDefaultParameters for usage and error information.
824//
825// Returned Error Codes:
826//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
827//   The value for a parameter is invalid.
828//
829//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
830//   Two or more incompatible parameters were specified.
831//
832// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeDefaultParameters
833func (c *DAX) DescribeDefaultParameters(input *DescribeDefaultParametersInput) (*DescribeDefaultParametersOutput, error) {
834	req, out := c.DescribeDefaultParametersRequest(input)
835	return out, req.Send()
836}
837
838// DescribeDefaultParametersWithContext is the same as DescribeDefaultParameters with the addition of
839// the ability to pass a context and additional request options.
840//
841// See DescribeDefaultParameters for details on how to use this API operation.
842//
843// The context must be non-nil and will be used for request cancellation. If
844// the context is nil a panic will occur. In the future the SDK may create
845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
846// for more information on using Contexts.
847func (c *DAX) DescribeDefaultParametersWithContext(ctx aws.Context, input *DescribeDefaultParametersInput, opts ...request.Option) (*DescribeDefaultParametersOutput, error) {
848	req, out := c.DescribeDefaultParametersRequest(input)
849	req.SetContext(ctx)
850	req.ApplyOptions(opts...)
851	return out, req.Send()
852}
853
854const opDescribeEvents = "DescribeEvents"
855
856// DescribeEventsRequest generates a "aws/request.Request" representing the
857// client's request for the DescribeEvents operation. The "output" return
858// value will be populated with the request's response once the request complets
859// successfuly.
860//
861// Use "Send" method on the returned Request to send the API call to the service.
862// the "output" return value is not valid until after Send returns without error.
863//
864// See DescribeEvents for more information on using the DescribeEvents
865// API call, and error handling.
866//
867// This method is useful when you want to inject custom logic or configuration
868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
869//
870//
871//    // Example sending a request using the DescribeEventsRequest method.
872//    req, resp := client.DescribeEventsRequest(params)
873//
874//    err := req.Send()
875//    if err == nil { // resp is now filled
876//        fmt.Println(resp)
877//    }
878//
879// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeEvents
880func (c *DAX) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) {
881	op := &request.Operation{
882		Name:       opDescribeEvents,
883		HTTPMethod: "POST",
884		HTTPPath:   "/",
885	}
886
887	if input == nil {
888		input = &DescribeEventsInput{}
889	}
890
891	output = &DescribeEventsOutput{}
892	req = c.newRequest(op, input, output)
893	return
894}
895
896// DescribeEvents API operation for Amazon DynamoDB Accelerator (DAX).
897//
898// Returns events related to DAX clusters and parameter groups. You can obtain
899// events specific to a particular DAX cluster or parameter group by providing
900// the name as a parameter.
901//
902// By default, only the events occurring within the last hour are returned;
903// however, you can retrieve up to 14 days' worth of events if necessary.
904//
905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
906// with awserr.Error's Code and Message methods to get detailed information about
907// the error.
908//
909// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
910// API operation DescribeEvents for usage and error information.
911//
912// Returned Error Codes:
913//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
914//   The value for a parameter is invalid.
915//
916//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
917//   Two or more incompatible parameters were specified.
918//
919// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeEvents
920func (c *DAX) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) {
921	req, out := c.DescribeEventsRequest(input)
922	return out, req.Send()
923}
924
925// DescribeEventsWithContext is the same as DescribeEvents with the addition of
926// the ability to pass a context and additional request options.
927//
928// See DescribeEvents for details on how to use this API operation.
929//
930// The context must be non-nil and will be used for request cancellation. If
931// the context is nil a panic will occur. In the future the SDK may create
932// sub-contexts for http.Requests. See https://golang.org/pkg/context/
933// for more information on using Contexts.
934func (c *DAX) DescribeEventsWithContext(ctx aws.Context, input *DescribeEventsInput, opts ...request.Option) (*DescribeEventsOutput, error) {
935	req, out := c.DescribeEventsRequest(input)
936	req.SetContext(ctx)
937	req.ApplyOptions(opts...)
938	return out, req.Send()
939}
940
941const opDescribeParameterGroups = "DescribeParameterGroups"
942
943// DescribeParameterGroupsRequest generates a "aws/request.Request" representing the
944// client's request for the DescribeParameterGroups operation. The "output" return
945// value will be populated with the request's response once the request complets
946// successfuly.
947//
948// Use "Send" method on the returned Request to send the API call to the service.
949// the "output" return value is not valid until after Send returns without error.
950//
951// See DescribeParameterGroups for more information on using the DescribeParameterGroups
952// API call, and error handling.
953//
954// This method is useful when you want to inject custom logic or configuration
955// into the SDK's request lifecycle. Such as custom headers, or retry logic.
956//
957//
958//    // Example sending a request using the DescribeParameterGroupsRequest method.
959//    req, resp := client.DescribeParameterGroupsRequest(params)
960//
961//    err := req.Send()
962//    if err == nil { // resp is now filled
963//        fmt.Println(resp)
964//    }
965//
966// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameterGroups
967func (c *DAX) DescribeParameterGroupsRequest(input *DescribeParameterGroupsInput) (req *request.Request, output *DescribeParameterGroupsOutput) {
968	op := &request.Operation{
969		Name:       opDescribeParameterGroups,
970		HTTPMethod: "POST",
971		HTTPPath:   "/",
972	}
973
974	if input == nil {
975		input = &DescribeParameterGroupsInput{}
976	}
977
978	output = &DescribeParameterGroupsOutput{}
979	req = c.newRequest(op, input, output)
980	return
981}
982
983// DescribeParameterGroups API operation for Amazon DynamoDB Accelerator (DAX).
984//
985// Returns a list of parameter group descriptions. If a parameter group name
986// is specified, the list will contain only the descriptions for that group.
987//
988// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
989// with awserr.Error's Code and Message methods to get detailed information about
990// the error.
991//
992// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
993// API operation DescribeParameterGroups for usage and error information.
994//
995// Returned Error Codes:
996//   * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault"
997//   The specified parameter group does not exist.
998//
999//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1000//   The value for a parameter is invalid.
1001//
1002//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1003//   Two or more incompatible parameters were specified.
1004//
1005// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameterGroups
1006func (c *DAX) DescribeParameterGroups(input *DescribeParameterGroupsInput) (*DescribeParameterGroupsOutput, error) {
1007	req, out := c.DescribeParameterGroupsRequest(input)
1008	return out, req.Send()
1009}
1010
1011// DescribeParameterGroupsWithContext is the same as DescribeParameterGroups with the addition of
1012// the ability to pass a context and additional request options.
1013//
1014// See DescribeParameterGroups for details on how to use this API operation.
1015//
1016// The context must be non-nil and will be used for request cancellation. If
1017// the context is nil a panic will occur. In the future the SDK may create
1018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1019// for more information on using Contexts.
1020func (c *DAX) DescribeParameterGroupsWithContext(ctx aws.Context, input *DescribeParameterGroupsInput, opts ...request.Option) (*DescribeParameterGroupsOutput, error) {
1021	req, out := c.DescribeParameterGroupsRequest(input)
1022	req.SetContext(ctx)
1023	req.ApplyOptions(opts...)
1024	return out, req.Send()
1025}
1026
1027const opDescribeParameters = "DescribeParameters"
1028
1029// DescribeParametersRequest generates a "aws/request.Request" representing the
1030// client's request for the DescribeParameters operation. The "output" return
1031// value will be populated with the request's response once the request complets
1032// successfuly.
1033//
1034// Use "Send" method on the returned Request to send the API call to the service.
1035// the "output" return value is not valid until after Send returns without error.
1036//
1037// See DescribeParameters for more information on using the DescribeParameters
1038// API call, and error handling.
1039//
1040// This method is useful when you want to inject custom logic or configuration
1041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1042//
1043//
1044//    // Example sending a request using the DescribeParametersRequest method.
1045//    req, resp := client.DescribeParametersRequest(params)
1046//
1047//    err := req.Send()
1048//    if err == nil { // resp is now filled
1049//        fmt.Println(resp)
1050//    }
1051//
1052// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameters
1053func (c *DAX) DescribeParametersRequest(input *DescribeParametersInput) (req *request.Request, output *DescribeParametersOutput) {
1054	op := &request.Operation{
1055		Name:       opDescribeParameters,
1056		HTTPMethod: "POST",
1057		HTTPPath:   "/",
1058	}
1059
1060	if input == nil {
1061		input = &DescribeParametersInput{}
1062	}
1063
1064	output = &DescribeParametersOutput{}
1065	req = c.newRequest(op, input, output)
1066	return
1067}
1068
1069// DescribeParameters API operation for Amazon DynamoDB Accelerator (DAX).
1070//
1071// Returns the detailed parameter list for a particular parameter group.
1072//
1073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1074// with awserr.Error's Code and Message methods to get detailed information about
1075// the error.
1076//
1077// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1078// API operation DescribeParameters for usage and error information.
1079//
1080// Returned Error Codes:
1081//   * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault"
1082//   The specified parameter group does not exist.
1083//
1084//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1085//   The value for a parameter is invalid.
1086//
1087//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1088//   Two or more incompatible parameters were specified.
1089//
1090// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameters
1091func (c *DAX) DescribeParameters(input *DescribeParametersInput) (*DescribeParametersOutput, error) {
1092	req, out := c.DescribeParametersRequest(input)
1093	return out, req.Send()
1094}
1095
1096// DescribeParametersWithContext is the same as DescribeParameters with the addition of
1097// the ability to pass a context and additional request options.
1098//
1099// See DescribeParameters for details on how to use this API operation.
1100//
1101// The context must be non-nil and will be used for request cancellation. If
1102// the context is nil a panic will occur. In the future the SDK may create
1103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1104// for more information on using Contexts.
1105func (c *DAX) DescribeParametersWithContext(ctx aws.Context, input *DescribeParametersInput, opts ...request.Option) (*DescribeParametersOutput, error) {
1106	req, out := c.DescribeParametersRequest(input)
1107	req.SetContext(ctx)
1108	req.ApplyOptions(opts...)
1109	return out, req.Send()
1110}
1111
1112const opDescribeSubnetGroups = "DescribeSubnetGroups"
1113
1114// DescribeSubnetGroupsRequest generates a "aws/request.Request" representing the
1115// client's request for the DescribeSubnetGroups operation. The "output" return
1116// value will be populated with the request's response once the request complets
1117// successfuly.
1118//
1119// Use "Send" method on the returned Request to send the API call to the service.
1120// the "output" return value is not valid until after Send returns without error.
1121//
1122// See DescribeSubnetGroups for more information on using the DescribeSubnetGroups
1123// API call, and error handling.
1124//
1125// This method is useful when you want to inject custom logic or configuration
1126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1127//
1128//
1129//    // Example sending a request using the DescribeSubnetGroupsRequest method.
1130//    req, resp := client.DescribeSubnetGroupsRequest(params)
1131//
1132//    err := req.Send()
1133//    if err == nil { // resp is now filled
1134//        fmt.Println(resp)
1135//    }
1136//
1137// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeSubnetGroups
1138func (c *DAX) DescribeSubnetGroupsRequest(input *DescribeSubnetGroupsInput) (req *request.Request, output *DescribeSubnetGroupsOutput) {
1139	op := &request.Operation{
1140		Name:       opDescribeSubnetGroups,
1141		HTTPMethod: "POST",
1142		HTTPPath:   "/",
1143	}
1144
1145	if input == nil {
1146		input = &DescribeSubnetGroupsInput{}
1147	}
1148
1149	output = &DescribeSubnetGroupsOutput{}
1150	req = c.newRequest(op, input, output)
1151	return
1152}
1153
1154// DescribeSubnetGroups API operation for Amazon DynamoDB Accelerator (DAX).
1155//
1156// Returns a list of subnet group descriptions. If a subnet group name is specified,
1157// the list will contain only the description of that group.
1158//
1159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1160// with awserr.Error's Code and Message methods to get detailed information about
1161// the error.
1162//
1163// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1164// API operation DescribeSubnetGroups for usage and error information.
1165//
1166// Returned Error Codes:
1167//   * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault"
1168//   The requested subnet group name does not refer to an existing subnet group.
1169//
1170// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeSubnetGroups
1171func (c *DAX) DescribeSubnetGroups(input *DescribeSubnetGroupsInput) (*DescribeSubnetGroupsOutput, error) {
1172	req, out := c.DescribeSubnetGroupsRequest(input)
1173	return out, req.Send()
1174}
1175
1176// DescribeSubnetGroupsWithContext is the same as DescribeSubnetGroups with the addition of
1177// the ability to pass a context and additional request options.
1178//
1179// See DescribeSubnetGroups for details on how to use this API operation.
1180//
1181// The context must be non-nil and will be used for request cancellation. If
1182// the context is nil a panic will occur. In the future the SDK may create
1183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1184// for more information on using Contexts.
1185func (c *DAX) DescribeSubnetGroupsWithContext(ctx aws.Context, input *DescribeSubnetGroupsInput, opts ...request.Option) (*DescribeSubnetGroupsOutput, error) {
1186	req, out := c.DescribeSubnetGroupsRequest(input)
1187	req.SetContext(ctx)
1188	req.ApplyOptions(opts...)
1189	return out, req.Send()
1190}
1191
1192const opIncreaseReplicationFactor = "IncreaseReplicationFactor"
1193
1194// IncreaseReplicationFactorRequest generates a "aws/request.Request" representing the
1195// client's request for the IncreaseReplicationFactor operation. The "output" return
1196// value will be populated with the request's response once the request complets
1197// successfuly.
1198//
1199// Use "Send" method on the returned Request to send the API call to the service.
1200// the "output" return value is not valid until after Send returns without error.
1201//
1202// See IncreaseReplicationFactor for more information on using the IncreaseReplicationFactor
1203// API call, and error handling.
1204//
1205// This method is useful when you want to inject custom logic or configuration
1206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1207//
1208//
1209//    // Example sending a request using the IncreaseReplicationFactorRequest method.
1210//    req, resp := client.IncreaseReplicationFactorRequest(params)
1211//
1212//    err := req.Send()
1213//    if err == nil { // resp is now filled
1214//        fmt.Println(resp)
1215//    }
1216//
1217// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/IncreaseReplicationFactor
1218func (c *DAX) IncreaseReplicationFactorRequest(input *IncreaseReplicationFactorInput) (req *request.Request, output *IncreaseReplicationFactorOutput) {
1219	op := &request.Operation{
1220		Name:       opIncreaseReplicationFactor,
1221		HTTPMethod: "POST",
1222		HTTPPath:   "/",
1223	}
1224
1225	if input == nil {
1226		input = &IncreaseReplicationFactorInput{}
1227	}
1228
1229	output = &IncreaseReplicationFactorOutput{}
1230	req = c.newRequest(op, input, output)
1231	return
1232}
1233
1234// IncreaseReplicationFactor API operation for Amazon DynamoDB Accelerator (DAX).
1235//
1236// Adds one or more nodes to a DAX cluster.
1237//
1238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1239// with awserr.Error's Code and Message methods to get detailed information about
1240// the error.
1241//
1242// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1243// API operation IncreaseReplicationFactor for usage and error information.
1244//
1245// Returned Error Codes:
1246//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
1247//   The requested cluster ID does not refer to an existing DAX cluster.
1248//
1249//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
1250//   The requested DAX cluster is not in the available state.
1251//
1252//   * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacityFault"
1253//   There are not enough system resources to create the cluster you requested
1254//   (or to resize an already-existing cluster).
1255//
1256//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
1257//   The VPC network is in an invalid state.
1258//
1259//   * ErrCodeNodeQuotaForClusterExceededFault "NodeQuotaForClusterExceededFault"
1260//   You have attempted to exceed the maximum number of nodes for a DAX cluster.
1261//
1262//   * ErrCodeNodeQuotaForCustomerExceededFault "NodeQuotaForCustomerExceededFault"
1263//   You have attempted to exceed the maximum number of nodes for your AWS account.
1264//
1265//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1266//   The value for a parameter is invalid.
1267//
1268//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1269//   Two or more incompatible parameters were specified.
1270//
1271// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/IncreaseReplicationFactor
1272func (c *DAX) IncreaseReplicationFactor(input *IncreaseReplicationFactorInput) (*IncreaseReplicationFactorOutput, error) {
1273	req, out := c.IncreaseReplicationFactorRequest(input)
1274	return out, req.Send()
1275}
1276
1277// IncreaseReplicationFactorWithContext is the same as IncreaseReplicationFactor with the addition of
1278// the ability to pass a context and additional request options.
1279//
1280// See IncreaseReplicationFactor for details on how to use this API operation.
1281//
1282// The context must be non-nil and will be used for request cancellation. If
1283// the context is nil a panic will occur. In the future the SDK may create
1284// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1285// for more information on using Contexts.
1286func (c *DAX) IncreaseReplicationFactorWithContext(ctx aws.Context, input *IncreaseReplicationFactorInput, opts ...request.Option) (*IncreaseReplicationFactorOutput, error) {
1287	req, out := c.IncreaseReplicationFactorRequest(input)
1288	req.SetContext(ctx)
1289	req.ApplyOptions(opts...)
1290	return out, req.Send()
1291}
1292
1293const opListTags = "ListTags"
1294
1295// ListTagsRequest generates a "aws/request.Request" representing the
1296// client's request for the ListTags operation. The "output" return
1297// value will be populated with the request's response once the request complets
1298// successfuly.
1299//
1300// Use "Send" method on the returned Request to send the API call to the service.
1301// the "output" return value is not valid until after Send returns without error.
1302//
1303// See ListTags for more information on using the ListTags
1304// API call, and error handling.
1305//
1306// This method is useful when you want to inject custom logic or configuration
1307// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1308//
1309//
1310//    // Example sending a request using the ListTagsRequest method.
1311//    req, resp := client.ListTagsRequest(params)
1312//
1313//    err := req.Send()
1314//    if err == nil { // resp is now filled
1315//        fmt.Println(resp)
1316//    }
1317//
1318// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ListTags
1319func (c *DAX) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
1320	op := &request.Operation{
1321		Name:       opListTags,
1322		HTTPMethod: "POST",
1323		HTTPPath:   "/",
1324	}
1325
1326	if input == nil {
1327		input = &ListTagsInput{}
1328	}
1329
1330	output = &ListTagsOutput{}
1331	req = c.newRequest(op, input, output)
1332	return
1333}
1334
1335// ListTags API operation for Amazon DynamoDB Accelerator (DAX).
1336//
1337// List all of the tags for a DAX cluster. You can call ListTags up to 10 times
1338// per second, per account.
1339//
1340// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1341// with awserr.Error's Code and Message methods to get detailed information about
1342// the error.
1343//
1344// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1345// API operation ListTags for usage and error information.
1346//
1347// Returned Error Codes:
1348//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
1349//   The requested cluster ID does not refer to an existing DAX cluster.
1350//
1351//   * ErrCodeInvalidARNFault "InvalidARNFault"
1352//   The Amazon Resource Name (ARN) supplied in the request is not valid.
1353//
1354//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
1355//   The requested DAX cluster is not in the available state.
1356//
1357//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1358//   The value for a parameter is invalid.
1359//
1360//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1361//   Two or more incompatible parameters were specified.
1362//
1363// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ListTags
1364func (c *DAX) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
1365	req, out := c.ListTagsRequest(input)
1366	return out, req.Send()
1367}
1368
1369// ListTagsWithContext is the same as ListTags with the addition of
1370// the ability to pass a context and additional request options.
1371//
1372// See ListTags for details on how to use this API operation.
1373//
1374// The context must be non-nil and will be used for request cancellation. If
1375// the context is nil a panic will occur. In the future the SDK may create
1376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1377// for more information on using Contexts.
1378func (c *DAX) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
1379	req, out := c.ListTagsRequest(input)
1380	req.SetContext(ctx)
1381	req.ApplyOptions(opts...)
1382	return out, req.Send()
1383}
1384
1385const opRebootNode = "RebootNode"
1386
1387// RebootNodeRequest generates a "aws/request.Request" representing the
1388// client's request for the RebootNode operation. The "output" return
1389// value will be populated with the request's response once the request complets
1390// successfuly.
1391//
1392// Use "Send" method on the returned Request to send the API call to the service.
1393// the "output" return value is not valid until after Send returns without error.
1394//
1395// See RebootNode for more information on using the RebootNode
1396// API call, and error handling.
1397//
1398// This method is useful when you want to inject custom logic or configuration
1399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1400//
1401//
1402//    // Example sending a request using the RebootNodeRequest method.
1403//    req, resp := client.RebootNodeRequest(params)
1404//
1405//    err := req.Send()
1406//    if err == nil { // resp is now filled
1407//        fmt.Println(resp)
1408//    }
1409//
1410// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/RebootNode
1411func (c *DAX) RebootNodeRequest(input *RebootNodeInput) (req *request.Request, output *RebootNodeOutput) {
1412	op := &request.Operation{
1413		Name:       opRebootNode,
1414		HTTPMethod: "POST",
1415		HTTPPath:   "/",
1416	}
1417
1418	if input == nil {
1419		input = &RebootNodeInput{}
1420	}
1421
1422	output = &RebootNodeOutput{}
1423	req = c.newRequest(op, input, output)
1424	return
1425}
1426
1427// RebootNode API operation for Amazon DynamoDB Accelerator (DAX).
1428//
1429// Reboots a single node of a DAX cluster. The reboot action takes place as
1430// soon as possible. During the reboot, the node status is set to REBOOTING.
1431//
1432// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1433// with awserr.Error's Code and Message methods to get detailed information about
1434// the error.
1435//
1436// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1437// API operation RebootNode for usage and error information.
1438//
1439// Returned Error Codes:
1440//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
1441//   The requested cluster ID does not refer to an existing DAX cluster.
1442//
1443//   * ErrCodeNodeNotFoundFault "NodeNotFoundFault"
1444//   None of the nodes in the cluster have the given node ID.
1445//
1446//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
1447//   The requested DAX cluster is not in the available state.
1448//
1449//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1450//   The value for a parameter is invalid.
1451//
1452//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1453//   Two or more incompatible parameters were specified.
1454//
1455// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/RebootNode
1456func (c *DAX) RebootNode(input *RebootNodeInput) (*RebootNodeOutput, error) {
1457	req, out := c.RebootNodeRequest(input)
1458	return out, req.Send()
1459}
1460
1461// RebootNodeWithContext is the same as RebootNode with the addition of
1462// the ability to pass a context and additional request options.
1463//
1464// See RebootNode for details on how to use this API operation.
1465//
1466// The context must be non-nil and will be used for request cancellation. If
1467// the context is nil a panic will occur. In the future the SDK may create
1468// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1469// for more information on using Contexts.
1470func (c *DAX) RebootNodeWithContext(ctx aws.Context, input *RebootNodeInput, opts ...request.Option) (*RebootNodeOutput, error) {
1471	req, out := c.RebootNodeRequest(input)
1472	req.SetContext(ctx)
1473	req.ApplyOptions(opts...)
1474	return out, req.Send()
1475}
1476
1477const opTagResource = "TagResource"
1478
1479// TagResourceRequest generates a "aws/request.Request" representing the
1480// client's request for the TagResource operation. The "output" return
1481// value will be populated with the request's response once the request complets
1482// successfuly.
1483//
1484// Use "Send" method on the returned Request to send the API call to the service.
1485// the "output" return value is not valid until after Send returns without error.
1486//
1487// See TagResource for more information on using the TagResource
1488// API call, and error handling.
1489//
1490// This method is useful when you want to inject custom logic or configuration
1491// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1492//
1493//
1494//    // Example sending a request using the TagResourceRequest method.
1495//    req, resp := client.TagResourceRequest(params)
1496//
1497//    err := req.Send()
1498//    if err == nil { // resp is now filled
1499//        fmt.Println(resp)
1500//    }
1501//
1502// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/TagResource
1503func (c *DAX) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1504	op := &request.Operation{
1505		Name:       opTagResource,
1506		HTTPMethod: "POST",
1507		HTTPPath:   "/",
1508	}
1509
1510	if input == nil {
1511		input = &TagResourceInput{}
1512	}
1513
1514	output = &TagResourceOutput{}
1515	req = c.newRequest(op, input, output)
1516	return
1517}
1518
1519// TagResource API operation for Amazon DynamoDB Accelerator (DAX).
1520//
1521// Associates a set of tags with a DAX resource. You can call TagResource up
1522// to 5 times per second, per account.
1523//
1524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1525// with awserr.Error's Code and Message methods to get detailed information about
1526// the error.
1527//
1528// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1529// API operation TagResource for usage and error information.
1530//
1531// Returned Error Codes:
1532//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
1533//   The requested cluster ID does not refer to an existing DAX cluster.
1534//
1535//   * ErrCodeTagQuotaPerResourceExceeded "TagQuotaPerResourceExceeded"
1536//   You have exceeded the maximum number of tags for this DAX cluster.
1537//
1538//   * ErrCodeInvalidARNFault "InvalidARNFault"
1539//   The Amazon Resource Name (ARN) supplied in the request is not valid.
1540//
1541//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
1542//   The requested DAX cluster is not in the available state.
1543//
1544//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1545//   The value for a parameter is invalid.
1546//
1547//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1548//   Two or more incompatible parameters were specified.
1549//
1550// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/TagResource
1551func (c *DAX) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1552	req, out := c.TagResourceRequest(input)
1553	return out, req.Send()
1554}
1555
1556// TagResourceWithContext is the same as TagResource with the addition of
1557// the ability to pass a context and additional request options.
1558//
1559// See TagResource for details on how to use this API operation.
1560//
1561// The context must be non-nil and will be used for request cancellation. If
1562// the context is nil a panic will occur. In the future the SDK may create
1563// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1564// for more information on using Contexts.
1565func (c *DAX) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1566	req, out := c.TagResourceRequest(input)
1567	req.SetContext(ctx)
1568	req.ApplyOptions(opts...)
1569	return out, req.Send()
1570}
1571
1572const opUntagResource = "UntagResource"
1573
1574// UntagResourceRequest generates a "aws/request.Request" representing the
1575// client's request for the UntagResource operation. The "output" return
1576// value will be populated with the request's response once the request complets
1577// successfuly.
1578//
1579// Use "Send" method on the returned Request to send the API call to the service.
1580// the "output" return value is not valid until after Send returns without error.
1581//
1582// See UntagResource for more information on using the UntagResource
1583// API call, and error handling.
1584//
1585// This method is useful when you want to inject custom logic or configuration
1586// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1587//
1588//
1589//    // Example sending a request using the UntagResourceRequest method.
1590//    req, resp := client.UntagResourceRequest(params)
1591//
1592//    err := req.Send()
1593//    if err == nil { // resp is now filled
1594//        fmt.Println(resp)
1595//    }
1596//
1597// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UntagResource
1598func (c *DAX) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1599	op := &request.Operation{
1600		Name:       opUntagResource,
1601		HTTPMethod: "POST",
1602		HTTPPath:   "/",
1603	}
1604
1605	if input == nil {
1606		input = &UntagResourceInput{}
1607	}
1608
1609	output = &UntagResourceOutput{}
1610	req = c.newRequest(op, input, output)
1611	return
1612}
1613
1614// UntagResource API operation for Amazon DynamoDB Accelerator (DAX).
1615//
1616// Removes the association of tags from a DAX resource. You can call UntagResource
1617// up to 5 times per second, per account.
1618//
1619// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1620// with awserr.Error's Code and Message methods to get detailed information about
1621// the error.
1622//
1623// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1624// API operation UntagResource for usage and error information.
1625//
1626// Returned Error Codes:
1627//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
1628//   The requested cluster ID does not refer to an existing DAX cluster.
1629//
1630//   * ErrCodeInvalidARNFault "InvalidARNFault"
1631//   The Amazon Resource Name (ARN) supplied in the request is not valid.
1632//
1633//   * ErrCodeTagNotFoundFault "TagNotFoundFault"
1634//   The tag does not exist.
1635//
1636//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
1637//   The requested DAX cluster is not in the available state.
1638//
1639//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1640//   The value for a parameter is invalid.
1641//
1642//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1643//   Two or more incompatible parameters were specified.
1644//
1645// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UntagResource
1646func (c *DAX) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1647	req, out := c.UntagResourceRequest(input)
1648	return out, req.Send()
1649}
1650
1651// UntagResourceWithContext is the same as UntagResource with the addition of
1652// the ability to pass a context and additional request options.
1653//
1654// See UntagResource for details on how to use this API operation.
1655//
1656// The context must be non-nil and will be used for request cancellation. If
1657// the context is nil a panic will occur. In the future the SDK may create
1658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1659// for more information on using Contexts.
1660func (c *DAX) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1661	req, out := c.UntagResourceRequest(input)
1662	req.SetContext(ctx)
1663	req.ApplyOptions(opts...)
1664	return out, req.Send()
1665}
1666
1667const opUpdateCluster = "UpdateCluster"
1668
1669// UpdateClusterRequest generates a "aws/request.Request" representing the
1670// client's request for the UpdateCluster operation. The "output" return
1671// value will be populated with the request's response once the request complets
1672// successfuly.
1673//
1674// Use "Send" method on the returned Request to send the API call to the service.
1675// the "output" return value is not valid until after Send returns without error.
1676//
1677// See UpdateCluster for more information on using the UpdateCluster
1678// API call, and error handling.
1679//
1680// This method is useful when you want to inject custom logic or configuration
1681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1682//
1683//
1684//    // Example sending a request using the UpdateClusterRequest method.
1685//    req, resp := client.UpdateClusterRequest(params)
1686//
1687//    err := req.Send()
1688//    if err == nil { // resp is now filled
1689//        fmt.Println(resp)
1690//    }
1691//
1692// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateCluster
1693func (c *DAX) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) {
1694	op := &request.Operation{
1695		Name:       opUpdateCluster,
1696		HTTPMethod: "POST",
1697		HTTPPath:   "/",
1698	}
1699
1700	if input == nil {
1701		input = &UpdateClusterInput{}
1702	}
1703
1704	output = &UpdateClusterOutput{}
1705	req = c.newRequest(op, input, output)
1706	return
1707}
1708
1709// UpdateCluster API operation for Amazon DynamoDB Accelerator (DAX).
1710//
1711// Modifies the settings for a DAX cluster. You can use this action to change
1712// one or more cluster configuration parameters by specifying the parameters
1713// and the new values.
1714//
1715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1716// with awserr.Error's Code and Message methods to get detailed information about
1717// the error.
1718//
1719// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1720// API operation UpdateCluster for usage and error information.
1721//
1722// Returned Error Codes:
1723//   * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault"
1724//   The requested DAX cluster is not in the available state.
1725//
1726//   * ErrCodeClusterNotFoundFault "ClusterNotFoundFault"
1727//   The requested cluster ID does not refer to an existing DAX cluster.
1728//
1729//   * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault"
1730//   One or more parameters in a parameter group are in an invalid state.
1731//
1732//   * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault"
1733//   The specified parameter group does not exist.
1734//
1735//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1736//   The value for a parameter is invalid.
1737//
1738//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1739//   Two or more incompatible parameters were specified.
1740//
1741// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateCluster
1742func (c *DAX) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) {
1743	req, out := c.UpdateClusterRequest(input)
1744	return out, req.Send()
1745}
1746
1747// UpdateClusterWithContext is the same as UpdateCluster with the addition of
1748// the ability to pass a context and additional request options.
1749//
1750// See UpdateCluster for details on how to use this API operation.
1751//
1752// The context must be non-nil and will be used for request cancellation. If
1753// the context is nil a panic will occur. In the future the SDK may create
1754// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1755// for more information on using Contexts.
1756func (c *DAX) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) {
1757	req, out := c.UpdateClusterRequest(input)
1758	req.SetContext(ctx)
1759	req.ApplyOptions(opts...)
1760	return out, req.Send()
1761}
1762
1763const opUpdateParameterGroup = "UpdateParameterGroup"
1764
1765// UpdateParameterGroupRequest generates a "aws/request.Request" representing the
1766// client's request for the UpdateParameterGroup operation. The "output" return
1767// value will be populated with the request's response once the request complets
1768// successfuly.
1769//
1770// Use "Send" method on the returned Request to send the API call to the service.
1771// the "output" return value is not valid until after Send returns without error.
1772//
1773// See UpdateParameterGroup for more information on using the UpdateParameterGroup
1774// API call, and error handling.
1775//
1776// This method is useful when you want to inject custom logic or configuration
1777// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1778//
1779//
1780//    // Example sending a request using the UpdateParameterGroupRequest method.
1781//    req, resp := client.UpdateParameterGroupRequest(params)
1782//
1783//    err := req.Send()
1784//    if err == nil { // resp is now filled
1785//        fmt.Println(resp)
1786//    }
1787//
1788// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateParameterGroup
1789func (c *DAX) UpdateParameterGroupRequest(input *UpdateParameterGroupInput) (req *request.Request, output *UpdateParameterGroupOutput) {
1790	op := &request.Operation{
1791		Name:       opUpdateParameterGroup,
1792		HTTPMethod: "POST",
1793		HTTPPath:   "/",
1794	}
1795
1796	if input == nil {
1797		input = &UpdateParameterGroupInput{}
1798	}
1799
1800	output = &UpdateParameterGroupOutput{}
1801	req = c.newRequest(op, input, output)
1802	return
1803}
1804
1805// UpdateParameterGroup API operation for Amazon DynamoDB Accelerator (DAX).
1806//
1807// Modifies the parameters of a parameter group. You can modify up to 20 parameters
1808// in a single request by submitting a list parameter name and value pairs.
1809//
1810// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1811// with awserr.Error's Code and Message methods to get detailed information about
1812// the error.
1813//
1814// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1815// API operation UpdateParameterGroup for usage and error information.
1816//
1817// Returned Error Codes:
1818//   * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault"
1819//   One or more parameters in a parameter group are in an invalid state.
1820//
1821//   * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault"
1822//   The specified parameter group does not exist.
1823//
1824//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1825//   The value for a parameter is invalid.
1826//
1827//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1828//   Two or more incompatible parameters were specified.
1829//
1830// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateParameterGroup
1831func (c *DAX) UpdateParameterGroup(input *UpdateParameterGroupInput) (*UpdateParameterGroupOutput, error) {
1832	req, out := c.UpdateParameterGroupRequest(input)
1833	return out, req.Send()
1834}
1835
1836// UpdateParameterGroupWithContext is the same as UpdateParameterGroup with the addition of
1837// the ability to pass a context and additional request options.
1838//
1839// See UpdateParameterGroup for details on how to use this API operation.
1840//
1841// The context must be non-nil and will be used for request cancellation. If
1842// the context is nil a panic will occur. In the future the SDK may create
1843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1844// for more information on using Contexts.
1845func (c *DAX) UpdateParameterGroupWithContext(ctx aws.Context, input *UpdateParameterGroupInput, opts ...request.Option) (*UpdateParameterGroupOutput, error) {
1846	req, out := c.UpdateParameterGroupRequest(input)
1847	req.SetContext(ctx)
1848	req.ApplyOptions(opts...)
1849	return out, req.Send()
1850}
1851
1852const opUpdateSubnetGroup = "UpdateSubnetGroup"
1853
1854// UpdateSubnetGroupRequest generates a "aws/request.Request" representing the
1855// client's request for the UpdateSubnetGroup operation. The "output" return
1856// value will be populated with the request's response once the request complets
1857// successfuly.
1858//
1859// Use "Send" method on the returned Request to send the API call to the service.
1860// the "output" return value is not valid until after Send returns without error.
1861//
1862// See UpdateSubnetGroup for more information on using the UpdateSubnetGroup
1863// API call, and error handling.
1864//
1865// This method is useful when you want to inject custom logic or configuration
1866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1867//
1868//
1869//    // Example sending a request using the UpdateSubnetGroupRequest method.
1870//    req, resp := client.UpdateSubnetGroupRequest(params)
1871//
1872//    err := req.Send()
1873//    if err == nil { // resp is now filled
1874//        fmt.Println(resp)
1875//    }
1876//
1877// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateSubnetGroup
1878func (c *DAX) UpdateSubnetGroupRequest(input *UpdateSubnetGroupInput) (req *request.Request, output *UpdateSubnetGroupOutput) {
1879	op := &request.Operation{
1880		Name:       opUpdateSubnetGroup,
1881		HTTPMethod: "POST",
1882		HTTPPath:   "/",
1883	}
1884
1885	if input == nil {
1886		input = &UpdateSubnetGroupInput{}
1887	}
1888
1889	output = &UpdateSubnetGroupOutput{}
1890	req = c.newRequest(op, input, output)
1891	return
1892}
1893
1894// UpdateSubnetGroup API operation for Amazon DynamoDB Accelerator (DAX).
1895//
1896// Modifies an existing subnet group.
1897//
1898// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1899// with awserr.Error's Code and Message methods to get detailed information about
1900// the error.
1901//
1902// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s
1903// API operation UpdateSubnetGroup for usage and error information.
1904//
1905// Returned Error Codes:
1906//   * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault"
1907//   The requested subnet group name does not refer to an existing subnet group.
1908//
1909//   * ErrCodeSubnetQuotaExceededFault "SubnetQuotaExceededFault"
1910//   The request cannot be processed because it would exceed the allowed number
1911//   of subnets in a subnet group.
1912//
1913//   * ErrCodeSubnetInUse "SubnetInUse"
1914//   The requested subnet is being used by another subnet group.
1915//
1916//   * ErrCodeInvalidSubnet "InvalidSubnet"
1917//   An invalid subnet identifier was specified.
1918//
1919// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateSubnetGroup
1920func (c *DAX) UpdateSubnetGroup(input *UpdateSubnetGroupInput) (*UpdateSubnetGroupOutput, error) {
1921	req, out := c.UpdateSubnetGroupRequest(input)
1922	return out, req.Send()
1923}
1924
1925// UpdateSubnetGroupWithContext is the same as UpdateSubnetGroup with the addition of
1926// the ability to pass a context and additional request options.
1927//
1928// See UpdateSubnetGroup for details on how to use this API operation.
1929//
1930// The context must be non-nil and will be used for request cancellation. If
1931// the context is nil a panic will occur. In the future the SDK may create
1932// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1933// for more information on using Contexts.
1934func (c *DAX) UpdateSubnetGroupWithContext(ctx aws.Context, input *UpdateSubnetGroupInput, opts ...request.Option) (*UpdateSubnetGroupOutput, error) {
1935	req, out := c.UpdateSubnetGroupRequest(input)
1936	req.SetContext(ctx)
1937	req.ApplyOptions(opts...)
1938	return out, req.Send()
1939}
1940
1941// Contains all of the attributes of a specific DAX cluster.
1942// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/Cluster
1943type Cluster struct {
1944	_ struct{} `type:"structure"`
1945
1946	// The number of nodes in the cluster that are active (i.e., capable of serving
1947	// requests).
1948	ActiveNodes *int64 `type:"integer"`
1949
1950	// The Amazon Resource Name (ARN) that uniquely identifies the cluster.
1951	ClusterArn *string `type:"string"`
1952
1953	// The configuration endpoint for this DAX cluster, consisting of a DNS name
1954	// and a port number. Client applications can specify this endpoint, rather
1955	// than an individual node endpoint, and allow the DAX client software to intelligently
1956	// route requests and responses to nodes in the DAX cluster.
1957	ClusterDiscoveryEndpoint *Endpoint `type:"structure"`
1958
1959	// The name of the DAX cluster.
1960	ClusterName *string `type:"string"`
1961
1962	// The description of the cluster.
1963	Description *string `type:"string"`
1964
1965	// A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime,
1966	// DAX will assume this role and use the role's permissions to access DynamoDB
1967	// on your behalf.
1968	IamRoleArn *string `type:"string"`
1969
1970	// A list of nodes to be removed from the cluster.
1971	NodeIdsToRemove []*string `type:"list"`
1972
1973	// The node type for the nodes in the cluster. (All nodes in a DAX cluster are
1974	// of the same type.)
1975	NodeType *string `type:"string"`
1976
1977	// A list of nodes that are currently in the cluster.
1978	Nodes []*Node `type:"list"`
1979
1980	// Describes a notification topic and its status. Notification topics are used
1981	// for publishing DAX events to subscribers using Amazon Simple Notification
1982	// Service (SNS).
1983	NotificationConfiguration *NotificationConfiguration `type:"structure"`
1984
1985	// The parameter group being used by nodes in the cluster.
1986	ParameterGroup *ParameterGroupStatus `type:"structure"`
1987
1988	// A range of time when maintenance of DAX cluster software will be performed.
1989	// For example: sun:01:00-sun:09:00. Cluster maintenance normally takes less
1990	// than 30 minutes, and is performed automatically within the maintenance window.
1991	PreferredMaintenanceWindow *string `type:"string"`
1992
1993	// A list of security groups, and the status of each, for the nodes in the cluster.
1994	SecurityGroups []*SecurityGroupMembership `type:"list"`
1995
1996	// The current status of the cluster.
1997	Status *string `type:"string"`
1998
1999	// The subnet group where the DAX cluster is running.
2000	SubnetGroup *string `type:"string"`
2001
2002	// The total number of nodes in the cluster.
2003	TotalNodes *int64 `type:"integer"`
2004}
2005
2006// String returns the string representation
2007func (s Cluster) String() string {
2008	return awsutil.Prettify(s)
2009}
2010
2011// GoString returns the string representation
2012func (s Cluster) GoString() string {
2013	return s.String()
2014}
2015
2016// SetActiveNodes sets the ActiveNodes field's value.
2017func (s *Cluster) SetActiveNodes(v int64) *Cluster {
2018	s.ActiveNodes = &v
2019	return s
2020}
2021
2022// SetClusterArn sets the ClusterArn field's value.
2023func (s *Cluster) SetClusterArn(v string) *Cluster {
2024	s.ClusterArn = &v
2025	return s
2026}
2027
2028// SetClusterDiscoveryEndpoint sets the ClusterDiscoveryEndpoint field's value.
2029func (s *Cluster) SetClusterDiscoveryEndpoint(v *Endpoint) *Cluster {
2030	s.ClusterDiscoveryEndpoint = v
2031	return s
2032}
2033
2034// SetClusterName sets the ClusterName field's value.
2035func (s *Cluster) SetClusterName(v string) *Cluster {
2036	s.ClusterName = &v
2037	return s
2038}
2039
2040// SetDescription sets the Description field's value.
2041func (s *Cluster) SetDescription(v string) *Cluster {
2042	s.Description = &v
2043	return s
2044}
2045
2046// SetIamRoleArn sets the IamRoleArn field's value.
2047func (s *Cluster) SetIamRoleArn(v string) *Cluster {
2048	s.IamRoleArn = &v
2049	return s
2050}
2051
2052// SetNodeIdsToRemove sets the NodeIdsToRemove field's value.
2053func (s *Cluster) SetNodeIdsToRemove(v []*string) *Cluster {
2054	s.NodeIdsToRemove = v
2055	return s
2056}
2057
2058// SetNodeType sets the NodeType field's value.
2059func (s *Cluster) SetNodeType(v string) *Cluster {
2060	s.NodeType = &v
2061	return s
2062}
2063
2064// SetNodes sets the Nodes field's value.
2065func (s *Cluster) SetNodes(v []*Node) *Cluster {
2066	s.Nodes = v
2067	return s
2068}
2069
2070// SetNotificationConfiguration sets the NotificationConfiguration field's value.
2071func (s *Cluster) SetNotificationConfiguration(v *NotificationConfiguration) *Cluster {
2072	s.NotificationConfiguration = v
2073	return s
2074}
2075
2076// SetParameterGroup sets the ParameterGroup field's value.
2077func (s *Cluster) SetParameterGroup(v *ParameterGroupStatus) *Cluster {
2078	s.ParameterGroup = v
2079	return s
2080}
2081
2082// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
2083func (s *Cluster) SetPreferredMaintenanceWindow(v string) *Cluster {
2084	s.PreferredMaintenanceWindow = &v
2085	return s
2086}
2087
2088// SetSecurityGroups sets the SecurityGroups field's value.
2089func (s *Cluster) SetSecurityGroups(v []*SecurityGroupMembership) *Cluster {
2090	s.SecurityGroups = v
2091	return s
2092}
2093
2094// SetStatus sets the Status field's value.
2095func (s *Cluster) SetStatus(v string) *Cluster {
2096	s.Status = &v
2097	return s
2098}
2099
2100// SetSubnetGroup sets the SubnetGroup field's value.
2101func (s *Cluster) SetSubnetGroup(v string) *Cluster {
2102	s.SubnetGroup = &v
2103	return s
2104}
2105
2106// SetTotalNodes sets the TotalNodes field's value.
2107func (s *Cluster) SetTotalNodes(v int64) *Cluster {
2108	s.TotalNodes = &v
2109	return s
2110}
2111
2112// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateClusterRequest
2113type CreateClusterInput struct {
2114	_ struct{} `type:"structure"`
2115
2116	// The Availability Zones (AZs) in which the cluster nodes will be created.
2117	// All nodes belonging to the cluster are placed in these Availability Zones.
2118	// Use this parameter if you want to distribute the nodes across multiple AZs.
2119	AvailabilityZones []*string `type:"list"`
2120
2121	// The cluster identifier. This parameter is stored as a lowercase string.
2122	//
2123	// Constraints:
2124	//
2125	//    * A name must contain from 1 to 20 alphanumeric characters or hyphens.
2126	//
2127	//    * The first character must be a letter.
2128	//
2129	//    * A name cannot end with a hyphen or contain two consecutive hyphens.
2130	//
2131	// ClusterName is a required field
2132	ClusterName *string `type:"string" required:"true"`
2133
2134	// A description of the cluster.
2135	Description *string `type:"string"`
2136
2137	// A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime,
2138	// DAX will assume this role and use the role's permissions to access DynamoDB
2139	// on your behalf.
2140	//
2141	// IamRoleArn is a required field
2142	IamRoleArn *string `type:"string" required:"true"`
2143
2144	// The compute and memory capacity of the nodes in the cluster.
2145	//
2146	// NodeType is a required field
2147	NodeType *string `type:"string" required:"true"`
2148
2149	// The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications
2150	// will be sent.
2151	//
2152	// The Amazon SNS topic owner must be same as the DAX cluster owner.
2153	NotificationTopicArn *string `type:"string"`
2154
2155	// The parameter group to be associated with the DAX cluster.
2156	ParameterGroupName *string `type:"string"`
2157
2158	// Specifies the weekly time range during which maintenance on the DAX cluster
2159	// is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi
2160	// (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid
2161	// values for ddd are:
2162	//
2163	//    * sun
2164	//
2165	//    * mon
2166	//
2167	//    * tue
2168	//
2169	//    * wed
2170	//
2171	//    * thu
2172	//
2173	//    * fri
2174	//
2175	//    * sat
2176	//
2177	// Example: sun:05:00-sun:09:00
2178	//
2179	// If you don't specify a preferred maintenance window when you create or modify
2180	// a cache cluster, DAX assigns a 60-minute maintenance window on a randomly
2181	// selected day of the week.
2182	PreferredMaintenanceWindow *string `type:"string"`
2183
2184	// The number of nodes in the DAX cluster. A replication factor of 1 will create
2185	// a single-node cluster, without any read replicas. For additional fault tolerance,
2186	// you can create a multiple node cluster with one or more read replicas. To
2187	// do this, set ReplicationFactor to 2 or more.
2188	//
2189	// AWS recommends that you have at least two read replicas per cluster.
2190	//
2191	// ReplicationFactor is a required field
2192	ReplicationFactor *int64 `type:"integer" required:"true"`
2193
2194	// A list of security group IDs to be assigned to each node in the DAX cluster.
2195	// (Each of the security group ID is system-generated.)
2196	//
2197	// If this parameter is not specified, DAX assigns the default VPC security
2198	// group to each node.
2199	SecurityGroupIds []*string `type:"list"`
2200
2201	// The name of the subnet group to be used for the replication group.
2202	//
2203	// DAX clusters can only run in an Amazon VPC environment. All of the subnets
2204	// that you specify in a subnet group must exist in the same VPC.
2205	SubnetGroupName *string `type:"string"`
2206
2207	// A set of tags to associate with the DAX cluster.
2208	Tags []*Tag `type:"list"`
2209}
2210
2211// String returns the string representation
2212func (s CreateClusterInput) String() string {
2213	return awsutil.Prettify(s)
2214}
2215
2216// GoString returns the string representation
2217func (s CreateClusterInput) GoString() string {
2218	return s.String()
2219}
2220
2221// Validate inspects the fields of the type to determine if they are valid.
2222func (s *CreateClusterInput) Validate() error {
2223	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
2224	if s.ClusterName == nil {
2225		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
2226	}
2227	if s.IamRoleArn == nil {
2228		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
2229	}
2230	if s.NodeType == nil {
2231		invalidParams.Add(request.NewErrParamRequired("NodeType"))
2232	}
2233	if s.ReplicationFactor == nil {
2234		invalidParams.Add(request.NewErrParamRequired("ReplicationFactor"))
2235	}
2236
2237	if invalidParams.Len() > 0 {
2238		return invalidParams
2239	}
2240	return nil
2241}
2242
2243// SetAvailabilityZones sets the AvailabilityZones field's value.
2244func (s *CreateClusterInput) SetAvailabilityZones(v []*string) *CreateClusterInput {
2245	s.AvailabilityZones = v
2246	return s
2247}
2248
2249// SetClusterName sets the ClusterName field's value.
2250func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
2251	s.ClusterName = &v
2252	return s
2253}
2254
2255// SetDescription sets the Description field's value.
2256func (s *CreateClusterInput) SetDescription(v string) *CreateClusterInput {
2257	s.Description = &v
2258	return s
2259}
2260
2261// SetIamRoleArn sets the IamRoleArn field's value.
2262func (s *CreateClusterInput) SetIamRoleArn(v string) *CreateClusterInput {
2263	s.IamRoleArn = &v
2264	return s
2265}
2266
2267// SetNodeType sets the NodeType field's value.
2268func (s *CreateClusterInput) SetNodeType(v string) *CreateClusterInput {
2269	s.NodeType = &v
2270	return s
2271}
2272
2273// SetNotificationTopicArn sets the NotificationTopicArn field's value.
2274func (s *CreateClusterInput) SetNotificationTopicArn(v string) *CreateClusterInput {
2275	s.NotificationTopicArn = &v
2276	return s
2277}
2278
2279// SetParameterGroupName sets the ParameterGroupName field's value.
2280func (s *CreateClusterInput) SetParameterGroupName(v string) *CreateClusterInput {
2281	s.ParameterGroupName = &v
2282	return s
2283}
2284
2285// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
2286func (s *CreateClusterInput) SetPreferredMaintenanceWindow(v string) *CreateClusterInput {
2287	s.PreferredMaintenanceWindow = &v
2288	return s
2289}
2290
2291// SetReplicationFactor sets the ReplicationFactor field's value.
2292func (s *CreateClusterInput) SetReplicationFactor(v int64) *CreateClusterInput {
2293	s.ReplicationFactor = &v
2294	return s
2295}
2296
2297// SetSecurityGroupIds sets the SecurityGroupIds field's value.
2298func (s *CreateClusterInput) SetSecurityGroupIds(v []*string) *CreateClusterInput {
2299	s.SecurityGroupIds = v
2300	return s
2301}
2302
2303// SetSubnetGroupName sets the SubnetGroupName field's value.
2304func (s *CreateClusterInput) SetSubnetGroupName(v string) *CreateClusterInput {
2305	s.SubnetGroupName = &v
2306	return s
2307}
2308
2309// SetTags sets the Tags field's value.
2310func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
2311	s.Tags = v
2312	return s
2313}
2314
2315// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateClusterResponse
2316type CreateClusterOutput struct {
2317	_ struct{} `type:"structure"`
2318
2319	// A description of the DAX cluster that you have created.
2320	Cluster *Cluster `type:"structure"`
2321}
2322
2323// String returns the string representation
2324func (s CreateClusterOutput) String() string {
2325	return awsutil.Prettify(s)
2326}
2327
2328// GoString returns the string representation
2329func (s CreateClusterOutput) GoString() string {
2330	return s.String()
2331}
2332
2333// SetCluster sets the Cluster field's value.
2334func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
2335	s.Cluster = v
2336	return s
2337}
2338
2339// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateParameterGroupRequest
2340type CreateParameterGroupInput struct {
2341	_ struct{} `type:"structure"`
2342
2343	// A description of the parameter group.
2344	Description *string `type:"string"`
2345
2346	// The name of the parameter group to apply to all of the clusters in this replication
2347	// group.
2348	//
2349	// ParameterGroupName is a required field
2350	ParameterGroupName *string `type:"string" required:"true"`
2351}
2352
2353// String returns the string representation
2354func (s CreateParameterGroupInput) String() string {
2355	return awsutil.Prettify(s)
2356}
2357
2358// GoString returns the string representation
2359func (s CreateParameterGroupInput) GoString() string {
2360	return s.String()
2361}
2362
2363// Validate inspects the fields of the type to determine if they are valid.
2364func (s *CreateParameterGroupInput) Validate() error {
2365	invalidParams := request.ErrInvalidParams{Context: "CreateParameterGroupInput"}
2366	if s.ParameterGroupName == nil {
2367		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
2368	}
2369
2370	if invalidParams.Len() > 0 {
2371		return invalidParams
2372	}
2373	return nil
2374}
2375
2376// SetDescription sets the Description field's value.
2377func (s *CreateParameterGroupInput) SetDescription(v string) *CreateParameterGroupInput {
2378	s.Description = &v
2379	return s
2380}
2381
2382// SetParameterGroupName sets the ParameterGroupName field's value.
2383func (s *CreateParameterGroupInput) SetParameterGroupName(v string) *CreateParameterGroupInput {
2384	s.ParameterGroupName = &v
2385	return s
2386}
2387
2388// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateParameterGroupResponse
2389type CreateParameterGroupOutput struct {
2390	_ struct{} `type:"structure"`
2391
2392	// Represents the output of a CreateParameterGroup action.
2393	ParameterGroup *ParameterGroup `type:"structure"`
2394}
2395
2396// String returns the string representation
2397func (s CreateParameterGroupOutput) String() string {
2398	return awsutil.Prettify(s)
2399}
2400
2401// GoString returns the string representation
2402func (s CreateParameterGroupOutput) GoString() string {
2403	return s.String()
2404}
2405
2406// SetParameterGroup sets the ParameterGroup field's value.
2407func (s *CreateParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *CreateParameterGroupOutput {
2408	s.ParameterGroup = v
2409	return s
2410}
2411
2412// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateSubnetGroupRequest
2413type CreateSubnetGroupInput struct {
2414	_ struct{} `type:"structure"`
2415
2416	// A description for the subnet group
2417	Description *string `type:"string"`
2418
2419	// A name for the subnet group. This value is stored as a lowercase string.
2420	//
2421	// SubnetGroupName is a required field
2422	SubnetGroupName *string `type:"string" required:"true"`
2423
2424	// A list of VPC subnet IDs for the subnet group.
2425	//
2426	// SubnetIds is a required field
2427	SubnetIds []*string `type:"list" required:"true"`
2428}
2429
2430// String returns the string representation
2431func (s CreateSubnetGroupInput) String() string {
2432	return awsutil.Prettify(s)
2433}
2434
2435// GoString returns the string representation
2436func (s CreateSubnetGroupInput) GoString() string {
2437	return s.String()
2438}
2439
2440// Validate inspects the fields of the type to determine if they are valid.
2441func (s *CreateSubnetGroupInput) Validate() error {
2442	invalidParams := request.ErrInvalidParams{Context: "CreateSubnetGroupInput"}
2443	if s.SubnetGroupName == nil {
2444		invalidParams.Add(request.NewErrParamRequired("SubnetGroupName"))
2445	}
2446	if s.SubnetIds == nil {
2447		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
2448	}
2449
2450	if invalidParams.Len() > 0 {
2451		return invalidParams
2452	}
2453	return nil
2454}
2455
2456// SetDescription sets the Description field's value.
2457func (s *CreateSubnetGroupInput) SetDescription(v string) *CreateSubnetGroupInput {
2458	s.Description = &v
2459	return s
2460}
2461
2462// SetSubnetGroupName sets the SubnetGroupName field's value.
2463func (s *CreateSubnetGroupInput) SetSubnetGroupName(v string) *CreateSubnetGroupInput {
2464	s.SubnetGroupName = &v
2465	return s
2466}
2467
2468// SetSubnetIds sets the SubnetIds field's value.
2469func (s *CreateSubnetGroupInput) SetSubnetIds(v []*string) *CreateSubnetGroupInput {
2470	s.SubnetIds = v
2471	return s
2472}
2473
2474// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateSubnetGroupResponse
2475type CreateSubnetGroupOutput struct {
2476	_ struct{} `type:"structure"`
2477
2478	// Represents the output of a CreateSubnetGroup operation.
2479	SubnetGroup *SubnetGroup `type:"structure"`
2480}
2481
2482// String returns the string representation
2483func (s CreateSubnetGroupOutput) String() string {
2484	return awsutil.Prettify(s)
2485}
2486
2487// GoString returns the string representation
2488func (s CreateSubnetGroupOutput) GoString() string {
2489	return s.String()
2490}
2491
2492// SetSubnetGroup sets the SubnetGroup field's value.
2493func (s *CreateSubnetGroupOutput) SetSubnetGroup(v *SubnetGroup) *CreateSubnetGroupOutput {
2494	s.SubnetGroup = v
2495	return s
2496}
2497
2498// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DecreaseReplicationFactorRequest
2499type DecreaseReplicationFactorInput struct {
2500	_ struct{} `type:"structure"`
2501
2502	// The Availability Zone(s) from which to remove nodes.
2503	AvailabilityZones []*string `type:"list"`
2504
2505	// The name of the DAX cluster from which you want to remove nodes.
2506	//
2507	// ClusterName is a required field
2508	ClusterName *string `type:"string" required:"true"`
2509
2510	// The new number of nodes for the DAX cluster.
2511	//
2512	// NewReplicationFactor is a required field
2513	NewReplicationFactor *int64 `type:"integer" required:"true"`
2514
2515	// The unique identifiers of the nodes to be removed from the cluster.
2516	NodeIdsToRemove []*string `type:"list"`
2517}
2518
2519// String returns the string representation
2520func (s DecreaseReplicationFactorInput) String() string {
2521	return awsutil.Prettify(s)
2522}
2523
2524// GoString returns the string representation
2525func (s DecreaseReplicationFactorInput) GoString() string {
2526	return s.String()
2527}
2528
2529// Validate inspects the fields of the type to determine if they are valid.
2530func (s *DecreaseReplicationFactorInput) Validate() error {
2531	invalidParams := request.ErrInvalidParams{Context: "DecreaseReplicationFactorInput"}
2532	if s.ClusterName == nil {
2533		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
2534	}
2535	if s.NewReplicationFactor == nil {
2536		invalidParams.Add(request.NewErrParamRequired("NewReplicationFactor"))
2537	}
2538
2539	if invalidParams.Len() > 0 {
2540		return invalidParams
2541	}
2542	return nil
2543}
2544
2545// SetAvailabilityZones sets the AvailabilityZones field's value.
2546func (s *DecreaseReplicationFactorInput) SetAvailabilityZones(v []*string) *DecreaseReplicationFactorInput {
2547	s.AvailabilityZones = v
2548	return s
2549}
2550
2551// SetClusterName sets the ClusterName field's value.
2552func (s *DecreaseReplicationFactorInput) SetClusterName(v string) *DecreaseReplicationFactorInput {
2553	s.ClusterName = &v
2554	return s
2555}
2556
2557// SetNewReplicationFactor sets the NewReplicationFactor field's value.
2558func (s *DecreaseReplicationFactorInput) SetNewReplicationFactor(v int64) *DecreaseReplicationFactorInput {
2559	s.NewReplicationFactor = &v
2560	return s
2561}
2562
2563// SetNodeIdsToRemove sets the NodeIdsToRemove field's value.
2564func (s *DecreaseReplicationFactorInput) SetNodeIdsToRemove(v []*string) *DecreaseReplicationFactorInput {
2565	s.NodeIdsToRemove = v
2566	return s
2567}
2568
2569// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DecreaseReplicationFactorResponse
2570type DecreaseReplicationFactorOutput struct {
2571	_ struct{} `type:"structure"`
2572
2573	// A description of the DAX cluster, after you have decreased its replication
2574	// factor.
2575	Cluster *Cluster `type:"structure"`
2576}
2577
2578// String returns the string representation
2579func (s DecreaseReplicationFactorOutput) String() string {
2580	return awsutil.Prettify(s)
2581}
2582
2583// GoString returns the string representation
2584func (s DecreaseReplicationFactorOutput) GoString() string {
2585	return s.String()
2586}
2587
2588// SetCluster sets the Cluster field's value.
2589func (s *DecreaseReplicationFactorOutput) SetCluster(v *Cluster) *DecreaseReplicationFactorOutput {
2590	s.Cluster = v
2591	return s
2592}
2593
2594// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteClusterRequest
2595type DeleteClusterInput struct {
2596	_ struct{} `type:"structure"`
2597
2598	// The name of the cluster to be deleted.
2599	//
2600	// ClusterName is a required field
2601	ClusterName *string `type:"string" required:"true"`
2602}
2603
2604// String returns the string representation
2605func (s DeleteClusterInput) String() string {
2606	return awsutil.Prettify(s)
2607}
2608
2609// GoString returns the string representation
2610func (s DeleteClusterInput) GoString() string {
2611	return s.String()
2612}
2613
2614// Validate inspects the fields of the type to determine if they are valid.
2615func (s *DeleteClusterInput) Validate() error {
2616	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
2617	if s.ClusterName == nil {
2618		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
2619	}
2620
2621	if invalidParams.Len() > 0 {
2622		return invalidParams
2623	}
2624	return nil
2625}
2626
2627// SetClusterName sets the ClusterName field's value.
2628func (s *DeleteClusterInput) SetClusterName(v string) *DeleteClusterInput {
2629	s.ClusterName = &v
2630	return s
2631}
2632
2633// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteClusterResponse
2634type DeleteClusterOutput struct {
2635	_ struct{} `type:"structure"`
2636
2637	// A description of the DAX cluster that is being deleted.
2638	Cluster *Cluster `type:"structure"`
2639}
2640
2641// String returns the string representation
2642func (s DeleteClusterOutput) String() string {
2643	return awsutil.Prettify(s)
2644}
2645
2646// GoString returns the string representation
2647func (s DeleteClusterOutput) GoString() string {
2648	return s.String()
2649}
2650
2651// SetCluster sets the Cluster field's value.
2652func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
2653	s.Cluster = v
2654	return s
2655}
2656
2657// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteParameterGroupRequest
2658type DeleteParameterGroupInput struct {
2659	_ struct{} `type:"structure"`
2660
2661	// The name of the parameter group to delete.
2662	//
2663	// ParameterGroupName is a required field
2664	ParameterGroupName *string `type:"string" required:"true"`
2665}
2666
2667// String returns the string representation
2668func (s DeleteParameterGroupInput) String() string {
2669	return awsutil.Prettify(s)
2670}
2671
2672// GoString returns the string representation
2673func (s DeleteParameterGroupInput) GoString() string {
2674	return s.String()
2675}
2676
2677// Validate inspects the fields of the type to determine if they are valid.
2678func (s *DeleteParameterGroupInput) Validate() error {
2679	invalidParams := request.ErrInvalidParams{Context: "DeleteParameterGroupInput"}
2680	if s.ParameterGroupName == nil {
2681		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
2682	}
2683
2684	if invalidParams.Len() > 0 {
2685		return invalidParams
2686	}
2687	return nil
2688}
2689
2690// SetParameterGroupName sets the ParameterGroupName field's value.
2691func (s *DeleteParameterGroupInput) SetParameterGroupName(v string) *DeleteParameterGroupInput {
2692	s.ParameterGroupName = &v
2693	return s
2694}
2695
2696// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteParameterGroupResponse
2697type DeleteParameterGroupOutput struct {
2698	_ struct{} `type:"structure"`
2699
2700	// A user-specified message for this action (i.e., a reason for deleting the
2701	// parameter group).
2702	DeletionMessage *string `type:"string"`
2703}
2704
2705// String returns the string representation
2706func (s DeleteParameterGroupOutput) String() string {
2707	return awsutil.Prettify(s)
2708}
2709
2710// GoString returns the string representation
2711func (s DeleteParameterGroupOutput) GoString() string {
2712	return s.String()
2713}
2714
2715// SetDeletionMessage sets the DeletionMessage field's value.
2716func (s *DeleteParameterGroupOutput) SetDeletionMessage(v string) *DeleteParameterGroupOutput {
2717	s.DeletionMessage = &v
2718	return s
2719}
2720
2721// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteSubnetGroupRequest
2722type DeleteSubnetGroupInput struct {
2723	_ struct{} `type:"structure"`
2724
2725	// The name of the subnet group to delete.
2726	//
2727	// SubnetGroupName is a required field
2728	SubnetGroupName *string `type:"string" required:"true"`
2729}
2730
2731// String returns the string representation
2732func (s DeleteSubnetGroupInput) String() string {
2733	return awsutil.Prettify(s)
2734}
2735
2736// GoString returns the string representation
2737func (s DeleteSubnetGroupInput) GoString() string {
2738	return s.String()
2739}
2740
2741// Validate inspects the fields of the type to determine if they are valid.
2742func (s *DeleteSubnetGroupInput) Validate() error {
2743	invalidParams := request.ErrInvalidParams{Context: "DeleteSubnetGroupInput"}
2744	if s.SubnetGroupName == nil {
2745		invalidParams.Add(request.NewErrParamRequired("SubnetGroupName"))
2746	}
2747
2748	if invalidParams.Len() > 0 {
2749		return invalidParams
2750	}
2751	return nil
2752}
2753
2754// SetSubnetGroupName sets the SubnetGroupName field's value.
2755func (s *DeleteSubnetGroupInput) SetSubnetGroupName(v string) *DeleteSubnetGroupInput {
2756	s.SubnetGroupName = &v
2757	return s
2758}
2759
2760// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteSubnetGroupResponse
2761type DeleteSubnetGroupOutput struct {
2762	_ struct{} `type:"structure"`
2763
2764	// A user-specified message for this action (i.e., a reason for deleting the
2765	// subnet group).
2766	DeletionMessage *string `type:"string"`
2767}
2768
2769// String returns the string representation
2770func (s DeleteSubnetGroupOutput) String() string {
2771	return awsutil.Prettify(s)
2772}
2773
2774// GoString returns the string representation
2775func (s DeleteSubnetGroupOutput) GoString() string {
2776	return s.String()
2777}
2778
2779// SetDeletionMessage sets the DeletionMessage field's value.
2780func (s *DeleteSubnetGroupOutput) SetDeletionMessage(v string) *DeleteSubnetGroupOutput {
2781	s.DeletionMessage = &v
2782	return s
2783}
2784
2785// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeClustersRequest
2786type DescribeClustersInput struct {
2787	_ struct{} `type:"structure"`
2788
2789	// The names of the DAX clusters being described.
2790	ClusterNames []*string `type:"list"`
2791
2792	// The maximum number of results to include in the response. If more results
2793	// exist than the specified MaxResults value, a token is included in the response
2794	// so that the remaining results can be retrieved.
2795	//
2796	// The value for MaxResults must be between 20 and 100.
2797	MaxResults *int64 `type:"integer"`
2798
2799	// An optional token returned from a prior request. Use this token for pagination
2800	// of results from this action. If this parameter is specified, the response
2801	// includes only results beyond the token, up to the value specified by MaxResults.
2802	NextToken *string `type:"string"`
2803}
2804
2805// String returns the string representation
2806func (s DescribeClustersInput) String() string {
2807	return awsutil.Prettify(s)
2808}
2809
2810// GoString returns the string representation
2811func (s DescribeClustersInput) GoString() string {
2812	return s.String()
2813}
2814
2815// SetClusterNames sets the ClusterNames field's value.
2816func (s *DescribeClustersInput) SetClusterNames(v []*string) *DescribeClustersInput {
2817	s.ClusterNames = v
2818	return s
2819}
2820
2821// SetMaxResults sets the MaxResults field's value.
2822func (s *DescribeClustersInput) SetMaxResults(v int64) *DescribeClustersInput {
2823	s.MaxResults = &v
2824	return s
2825}
2826
2827// SetNextToken sets the NextToken field's value.
2828func (s *DescribeClustersInput) SetNextToken(v string) *DescribeClustersInput {
2829	s.NextToken = &v
2830	return s
2831}
2832
2833// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeClustersResponse
2834type DescribeClustersOutput struct {
2835	_ struct{} `type:"structure"`
2836
2837	// The descriptions of your DAX clusters, in response to a DescribeClusters
2838	// request.
2839	Clusters []*Cluster `type:"list"`
2840
2841	// Provides an identifier to allow retrieval of paginated results.
2842	NextToken *string `type:"string"`
2843}
2844
2845// String returns the string representation
2846func (s DescribeClustersOutput) String() string {
2847	return awsutil.Prettify(s)
2848}
2849
2850// GoString returns the string representation
2851func (s DescribeClustersOutput) GoString() string {
2852	return s.String()
2853}
2854
2855// SetClusters sets the Clusters field's value.
2856func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
2857	s.Clusters = v
2858	return s
2859}
2860
2861// SetNextToken sets the NextToken field's value.
2862func (s *DescribeClustersOutput) SetNextToken(v string) *DescribeClustersOutput {
2863	s.NextToken = &v
2864	return s
2865}
2866
2867// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeDefaultParametersRequest
2868type DescribeDefaultParametersInput struct {
2869	_ struct{} `type:"structure"`
2870
2871	// The maximum number of results to include in the response. If more results
2872	// exist than the specified MaxResults value, a token is included in the response
2873	// so that the remaining results can be retrieved.
2874	//
2875	// The value for MaxResults must be between 20 and 100.
2876	MaxResults *int64 `type:"integer"`
2877
2878	// An optional token returned from a prior request. Use this token for pagination
2879	// of results from this action. If this parameter is specified, the response
2880	// includes only results beyond the token, up to the value specified by MaxResults.
2881	NextToken *string `type:"string"`
2882}
2883
2884// String returns the string representation
2885func (s DescribeDefaultParametersInput) String() string {
2886	return awsutil.Prettify(s)
2887}
2888
2889// GoString returns the string representation
2890func (s DescribeDefaultParametersInput) GoString() string {
2891	return s.String()
2892}
2893
2894// SetMaxResults sets the MaxResults field's value.
2895func (s *DescribeDefaultParametersInput) SetMaxResults(v int64) *DescribeDefaultParametersInput {
2896	s.MaxResults = &v
2897	return s
2898}
2899
2900// SetNextToken sets the NextToken field's value.
2901func (s *DescribeDefaultParametersInput) SetNextToken(v string) *DescribeDefaultParametersInput {
2902	s.NextToken = &v
2903	return s
2904}
2905
2906// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeDefaultParametersResponse
2907type DescribeDefaultParametersOutput struct {
2908	_ struct{} `type:"structure"`
2909
2910	// Provides an identifier to allow retrieval of paginated results.
2911	NextToken *string `type:"string"`
2912
2913	// A list of parameters. Each element in the list represents one parameter.
2914	Parameters []*Parameter `type:"list"`
2915}
2916
2917// String returns the string representation
2918func (s DescribeDefaultParametersOutput) String() string {
2919	return awsutil.Prettify(s)
2920}
2921
2922// GoString returns the string representation
2923func (s DescribeDefaultParametersOutput) GoString() string {
2924	return s.String()
2925}
2926
2927// SetNextToken sets the NextToken field's value.
2928func (s *DescribeDefaultParametersOutput) SetNextToken(v string) *DescribeDefaultParametersOutput {
2929	s.NextToken = &v
2930	return s
2931}
2932
2933// SetParameters sets the Parameters field's value.
2934func (s *DescribeDefaultParametersOutput) SetParameters(v []*Parameter) *DescribeDefaultParametersOutput {
2935	s.Parameters = v
2936	return s
2937}
2938
2939// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeEventsRequest
2940type DescribeEventsInput struct {
2941	_ struct{} `type:"structure"`
2942
2943	// The number of minutes' worth of events to retrieve.
2944	Duration *int64 `type:"integer"`
2945
2946	// The end of the time interval for which to retrieve events, specified in ISO
2947	// 8601 format.
2948	EndTime *time.Time `type:"timestamp" timestampFormat:"unix"`
2949
2950	// The maximum number of results to include in the response. If more results
2951	// exist than the specified MaxResults value, a token is included in the response
2952	// so that the remaining results can be retrieved.
2953	//
2954	// The value for MaxResults must be between 20 and 100.
2955	MaxResults *int64 `type:"integer"`
2956
2957	// An optional token returned from a prior request. Use this token for pagination
2958	// of results from this action. If this parameter is specified, the response
2959	// includes only results beyond the token, up to the value specified by MaxResults.
2960	NextToken *string `type:"string"`
2961
2962	// The identifier of the event source for which events will be returned. If
2963	// not specified, then all sources are included in the response.
2964	SourceName *string `type:"string"`
2965
2966	// The event source to retrieve events for. If no value is specified, all events
2967	// are returned.
2968	SourceType *string `type:"string" enum:"SourceType"`
2969
2970	// The beginning of the time interval to retrieve events for, specified in ISO
2971	// 8601 format.
2972	StartTime *time.Time `type:"timestamp" timestampFormat:"unix"`
2973}
2974
2975// String returns the string representation
2976func (s DescribeEventsInput) String() string {
2977	return awsutil.Prettify(s)
2978}
2979
2980// GoString returns the string representation
2981func (s DescribeEventsInput) GoString() string {
2982	return s.String()
2983}
2984
2985// SetDuration sets the Duration field's value.
2986func (s *DescribeEventsInput) SetDuration(v int64) *DescribeEventsInput {
2987	s.Duration = &v
2988	return s
2989}
2990
2991// SetEndTime sets the EndTime field's value.
2992func (s *DescribeEventsInput) SetEndTime(v time.Time) *DescribeEventsInput {
2993	s.EndTime = &v
2994	return s
2995}
2996
2997// SetMaxResults sets the MaxResults field's value.
2998func (s *DescribeEventsInput) SetMaxResults(v int64) *DescribeEventsInput {
2999	s.MaxResults = &v
3000	return s
3001}
3002
3003// SetNextToken sets the NextToken field's value.
3004func (s *DescribeEventsInput) SetNextToken(v string) *DescribeEventsInput {
3005	s.NextToken = &v
3006	return s
3007}
3008
3009// SetSourceName sets the SourceName field's value.
3010func (s *DescribeEventsInput) SetSourceName(v string) *DescribeEventsInput {
3011	s.SourceName = &v
3012	return s
3013}
3014
3015// SetSourceType sets the SourceType field's value.
3016func (s *DescribeEventsInput) SetSourceType(v string) *DescribeEventsInput {
3017	s.SourceType = &v
3018	return s
3019}
3020
3021// SetStartTime sets the StartTime field's value.
3022func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput {
3023	s.StartTime = &v
3024	return s
3025}
3026
3027// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeEventsResponse
3028type DescribeEventsOutput struct {
3029	_ struct{} `type:"structure"`
3030
3031	// An array of events. Each element in the array represents one event.
3032	Events []*Event `type:"list"`
3033
3034	// Provides an identifier to allow retrieval of paginated results.
3035	NextToken *string `type:"string"`
3036}
3037
3038// String returns the string representation
3039func (s DescribeEventsOutput) String() string {
3040	return awsutil.Prettify(s)
3041}
3042
3043// GoString returns the string representation
3044func (s DescribeEventsOutput) GoString() string {
3045	return s.String()
3046}
3047
3048// SetEvents sets the Events field's value.
3049func (s *DescribeEventsOutput) SetEvents(v []*Event) *DescribeEventsOutput {
3050	s.Events = v
3051	return s
3052}
3053
3054// SetNextToken sets the NextToken field's value.
3055func (s *DescribeEventsOutput) SetNextToken(v string) *DescribeEventsOutput {
3056	s.NextToken = &v
3057	return s
3058}
3059
3060// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameterGroupsRequest
3061type DescribeParameterGroupsInput struct {
3062	_ struct{} `type:"structure"`
3063
3064	// The maximum number of results to include in the response. If more results
3065	// exist than the specified MaxResults value, a token is included in the response
3066	// so that the remaining results can be retrieved.
3067	//
3068	// The value for MaxResults must be between 20 and 100.
3069	MaxResults *int64 `type:"integer"`
3070
3071	// An optional token returned from a prior request. Use this token for pagination
3072	// of results from this action. If this parameter is specified, the response
3073	// includes only results beyond the token, up to the value specified by MaxResults.
3074	NextToken *string `type:"string"`
3075
3076	// The names of the parameter groups.
3077	ParameterGroupNames []*string `type:"list"`
3078}
3079
3080// String returns the string representation
3081func (s DescribeParameterGroupsInput) String() string {
3082	return awsutil.Prettify(s)
3083}
3084
3085// GoString returns the string representation
3086func (s DescribeParameterGroupsInput) GoString() string {
3087	return s.String()
3088}
3089
3090// SetMaxResults sets the MaxResults field's value.
3091func (s *DescribeParameterGroupsInput) SetMaxResults(v int64) *DescribeParameterGroupsInput {
3092	s.MaxResults = &v
3093	return s
3094}
3095
3096// SetNextToken sets the NextToken field's value.
3097func (s *DescribeParameterGroupsInput) SetNextToken(v string) *DescribeParameterGroupsInput {
3098	s.NextToken = &v
3099	return s
3100}
3101
3102// SetParameterGroupNames sets the ParameterGroupNames field's value.
3103func (s *DescribeParameterGroupsInput) SetParameterGroupNames(v []*string) *DescribeParameterGroupsInput {
3104	s.ParameterGroupNames = v
3105	return s
3106}
3107
3108// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameterGroupsResponse
3109type DescribeParameterGroupsOutput struct {
3110	_ struct{} `type:"structure"`
3111
3112	// Provides an identifier to allow retrieval of paginated results.
3113	NextToken *string `type:"string"`
3114
3115	// An array of parameter groups. Each element in the array represents one parameter
3116	// group.
3117	ParameterGroups []*ParameterGroup `type:"list"`
3118}
3119
3120// String returns the string representation
3121func (s DescribeParameterGroupsOutput) String() string {
3122	return awsutil.Prettify(s)
3123}
3124
3125// GoString returns the string representation
3126func (s DescribeParameterGroupsOutput) GoString() string {
3127	return s.String()
3128}
3129
3130// SetNextToken sets the NextToken field's value.
3131func (s *DescribeParameterGroupsOutput) SetNextToken(v string) *DescribeParameterGroupsOutput {
3132	s.NextToken = &v
3133	return s
3134}
3135
3136// SetParameterGroups sets the ParameterGroups field's value.
3137func (s *DescribeParameterGroupsOutput) SetParameterGroups(v []*ParameterGroup) *DescribeParameterGroupsOutput {
3138	s.ParameterGroups = v
3139	return s
3140}
3141
3142// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParametersRequest
3143type DescribeParametersInput struct {
3144	_ struct{} `type:"structure"`
3145
3146	// The maximum number of results to include in the response. If more results
3147	// exist than the specified MaxResults value, a token is included in the response
3148	// so that the remaining results can be retrieved.
3149	//
3150	// The value for MaxResults must be between 20 and 100.
3151	MaxResults *int64 `type:"integer"`
3152
3153	// An optional token returned from a prior request. Use this token for pagination
3154	// of results from this action. If this parameter is specified, the response
3155	// includes only results beyond the token, up to the value specified by MaxResults.
3156	NextToken *string `type:"string"`
3157
3158	// The name of the parameter group.
3159	//
3160	// ParameterGroupName is a required field
3161	ParameterGroupName *string `type:"string" required:"true"`
3162
3163	// How the parameter is defined. For example, system denotes a system-defined
3164	// parameter.
3165	Source *string `type:"string"`
3166}
3167
3168// String returns the string representation
3169func (s DescribeParametersInput) String() string {
3170	return awsutil.Prettify(s)
3171}
3172
3173// GoString returns the string representation
3174func (s DescribeParametersInput) GoString() string {
3175	return s.String()
3176}
3177
3178// Validate inspects the fields of the type to determine if they are valid.
3179func (s *DescribeParametersInput) Validate() error {
3180	invalidParams := request.ErrInvalidParams{Context: "DescribeParametersInput"}
3181	if s.ParameterGroupName == nil {
3182		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
3183	}
3184
3185	if invalidParams.Len() > 0 {
3186		return invalidParams
3187	}
3188	return nil
3189}
3190
3191// SetMaxResults sets the MaxResults field's value.
3192func (s *DescribeParametersInput) SetMaxResults(v int64) *DescribeParametersInput {
3193	s.MaxResults = &v
3194	return s
3195}
3196
3197// SetNextToken sets the NextToken field's value.
3198func (s *DescribeParametersInput) SetNextToken(v string) *DescribeParametersInput {
3199	s.NextToken = &v
3200	return s
3201}
3202
3203// SetParameterGroupName sets the ParameterGroupName field's value.
3204func (s *DescribeParametersInput) SetParameterGroupName(v string) *DescribeParametersInput {
3205	s.ParameterGroupName = &v
3206	return s
3207}
3208
3209// SetSource sets the Source field's value.
3210func (s *DescribeParametersInput) SetSource(v string) *DescribeParametersInput {
3211	s.Source = &v
3212	return s
3213}
3214
3215// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParametersResponse
3216type DescribeParametersOutput struct {
3217	_ struct{} `type:"structure"`
3218
3219	// Provides an identifier to allow retrieval of paginated results.
3220	NextToken *string `type:"string"`
3221
3222	// A list of parameters within a parameter group. Each element in the list represents
3223	// one parameter.
3224	Parameters []*Parameter `type:"list"`
3225}
3226
3227// String returns the string representation
3228func (s DescribeParametersOutput) String() string {
3229	return awsutil.Prettify(s)
3230}
3231
3232// GoString returns the string representation
3233func (s DescribeParametersOutput) GoString() string {
3234	return s.String()
3235}
3236
3237// SetNextToken sets the NextToken field's value.
3238func (s *DescribeParametersOutput) SetNextToken(v string) *DescribeParametersOutput {
3239	s.NextToken = &v
3240	return s
3241}
3242
3243// SetParameters sets the Parameters field's value.
3244func (s *DescribeParametersOutput) SetParameters(v []*Parameter) *DescribeParametersOutput {
3245	s.Parameters = v
3246	return s
3247}
3248
3249// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeSubnetGroupsRequest
3250type DescribeSubnetGroupsInput struct {
3251	_ struct{} `type:"structure"`
3252
3253	// The maximum number of results to include in the response. If more results
3254	// exist than the specified MaxResults value, a token is included in the response
3255	// so that the remaining results can be retrieved.
3256	//
3257	// The value for MaxResults must be between 20 and 100.
3258	MaxResults *int64 `type:"integer"`
3259
3260	// An optional token returned from a prior request. Use this token for pagination
3261	// of results from this action. If this parameter is specified, the response
3262	// includes only results beyond the token, up to the value specified by MaxResults.
3263	NextToken *string `type:"string"`
3264
3265	// The name of the subnet group.
3266	SubnetGroupNames []*string `type:"list"`
3267}
3268
3269// String returns the string representation
3270func (s DescribeSubnetGroupsInput) String() string {
3271	return awsutil.Prettify(s)
3272}
3273
3274// GoString returns the string representation
3275func (s DescribeSubnetGroupsInput) GoString() string {
3276	return s.String()
3277}
3278
3279// SetMaxResults sets the MaxResults field's value.
3280func (s *DescribeSubnetGroupsInput) SetMaxResults(v int64) *DescribeSubnetGroupsInput {
3281	s.MaxResults = &v
3282	return s
3283}
3284
3285// SetNextToken sets the NextToken field's value.
3286func (s *DescribeSubnetGroupsInput) SetNextToken(v string) *DescribeSubnetGroupsInput {
3287	s.NextToken = &v
3288	return s
3289}
3290
3291// SetSubnetGroupNames sets the SubnetGroupNames field's value.
3292func (s *DescribeSubnetGroupsInput) SetSubnetGroupNames(v []*string) *DescribeSubnetGroupsInput {
3293	s.SubnetGroupNames = v
3294	return s
3295}
3296
3297// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeSubnetGroupsResponse
3298type DescribeSubnetGroupsOutput struct {
3299	_ struct{} `type:"structure"`
3300
3301	// Provides an identifier to allow retrieval of paginated results.
3302	NextToken *string `type:"string"`
3303
3304	// An array of subnet groups. Each element in the array represents a single
3305	// subnet group.
3306	SubnetGroups []*SubnetGroup `type:"list"`
3307}
3308
3309// String returns the string representation
3310func (s DescribeSubnetGroupsOutput) String() string {
3311	return awsutil.Prettify(s)
3312}
3313
3314// GoString returns the string representation
3315func (s DescribeSubnetGroupsOutput) GoString() string {
3316	return s.String()
3317}
3318
3319// SetNextToken sets the NextToken field's value.
3320func (s *DescribeSubnetGroupsOutput) SetNextToken(v string) *DescribeSubnetGroupsOutput {
3321	s.NextToken = &v
3322	return s
3323}
3324
3325// SetSubnetGroups sets the SubnetGroups field's value.
3326func (s *DescribeSubnetGroupsOutput) SetSubnetGroups(v []*SubnetGroup) *DescribeSubnetGroupsOutput {
3327	s.SubnetGroups = v
3328	return s
3329}
3330
3331// Represents the information required for client programs to connect to the
3332// configuration endpoint for a DAX cluster, or to an individual node within
3333// the cluster.
3334// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/Endpoint
3335type Endpoint struct {
3336	_ struct{} `type:"structure"`
3337
3338	// The DNS hostname of the endpoint.
3339	Address *string `type:"string"`
3340
3341	// The port number that applications should use to connect to the endpoint.
3342	Port *int64 `type:"integer"`
3343}
3344
3345// String returns the string representation
3346func (s Endpoint) String() string {
3347	return awsutil.Prettify(s)
3348}
3349
3350// GoString returns the string representation
3351func (s Endpoint) GoString() string {
3352	return s.String()
3353}
3354
3355// SetAddress sets the Address field's value.
3356func (s *Endpoint) SetAddress(v string) *Endpoint {
3357	s.Address = &v
3358	return s
3359}
3360
3361// SetPort sets the Port field's value.
3362func (s *Endpoint) SetPort(v int64) *Endpoint {
3363	s.Port = &v
3364	return s
3365}
3366
3367// Represents a single occurrence of something interesting within the system.
3368// Some examples of events are creating a DAX cluster, adding or removing a
3369// node, or rebooting a node.
3370// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/Event
3371type Event struct {
3372	_ struct{} `type:"structure"`
3373
3374	// The date and time when the event occurred.
3375	Date *time.Time `type:"timestamp" timestampFormat:"unix"`
3376
3377	// A user-defined message associated with the event.
3378	Message *string `type:"string"`
3379
3380	// The source of the event. For example, if the event occurred at the node level,
3381	// the source would be the node ID.
3382	SourceName *string `type:"string"`
3383
3384	// Specifies the origin of this event - a cluster, a parameter group, a node
3385	// ID, etc.
3386	SourceType *string `type:"string" enum:"SourceType"`
3387}
3388
3389// String returns the string representation
3390func (s Event) String() string {
3391	return awsutil.Prettify(s)
3392}
3393
3394// GoString returns the string representation
3395func (s Event) GoString() string {
3396	return s.String()
3397}
3398
3399// SetDate sets the Date field's value.
3400func (s *Event) SetDate(v time.Time) *Event {
3401	s.Date = &v
3402	return s
3403}
3404
3405// SetMessage sets the Message field's value.
3406func (s *Event) SetMessage(v string) *Event {
3407	s.Message = &v
3408	return s
3409}
3410
3411// SetSourceName sets the SourceName field's value.
3412func (s *Event) SetSourceName(v string) *Event {
3413	s.SourceName = &v
3414	return s
3415}
3416
3417// SetSourceType sets the SourceType field's value.
3418func (s *Event) SetSourceType(v string) *Event {
3419	s.SourceType = &v
3420	return s
3421}
3422
3423// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/IncreaseReplicationFactorRequest
3424type IncreaseReplicationFactorInput struct {
3425	_ struct{} `type:"structure"`
3426
3427	// The Availability Zones (AZs) in which the cluster nodes will be created.
3428	// All nodes belonging to the cluster are placed in these Availability Zones.
3429	// Use this parameter if you want to distribute the nodes across multiple AZs.
3430	AvailabilityZones []*string `type:"list"`
3431
3432	// The name of the DAX cluster that will receive additional nodes.
3433	//
3434	// ClusterName is a required field
3435	ClusterName *string `type:"string" required:"true"`
3436
3437	// The new number of nodes for the DAX cluster.
3438	//
3439	// NewReplicationFactor is a required field
3440	NewReplicationFactor *int64 `type:"integer" required:"true"`
3441}
3442
3443// String returns the string representation
3444func (s IncreaseReplicationFactorInput) String() string {
3445	return awsutil.Prettify(s)
3446}
3447
3448// GoString returns the string representation
3449func (s IncreaseReplicationFactorInput) GoString() string {
3450	return s.String()
3451}
3452
3453// Validate inspects the fields of the type to determine if they are valid.
3454func (s *IncreaseReplicationFactorInput) Validate() error {
3455	invalidParams := request.ErrInvalidParams{Context: "IncreaseReplicationFactorInput"}
3456	if s.ClusterName == nil {
3457		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
3458	}
3459	if s.NewReplicationFactor == nil {
3460		invalidParams.Add(request.NewErrParamRequired("NewReplicationFactor"))
3461	}
3462
3463	if invalidParams.Len() > 0 {
3464		return invalidParams
3465	}
3466	return nil
3467}
3468
3469// SetAvailabilityZones sets the AvailabilityZones field's value.
3470func (s *IncreaseReplicationFactorInput) SetAvailabilityZones(v []*string) *IncreaseReplicationFactorInput {
3471	s.AvailabilityZones = v
3472	return s
3473}
3474
3475// SetClusterName sets the ClusterName field's value.
3476func (s *IncreaseReplicationFactorInput) SetClusterName(v string) *IncreaseReplicationFactorInput {
3477	s.ClusterName = &v
3478	return s
3479}
3480
3481// SetNewReplicationFactor sets the NewReplicationFactor field's value.
3482func (s *IncreaseReplicationFactorInput) SetNewReplicationFactor(v int64) *IncreaseReplicationFactorInput {
3483	s.NewReplicationFactor = &v
3484	return s
3485}
3486
3487// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/IncreaseReplicationFactorResponse
3488type IncreaseReplicationFactorOutput struct {
3489	_ struct{} `type:"structure"`
3490
3491	// A description of the DAX cluster. with its new replication factor.
3492	Cluster *Cluster `type:"structure"`
3493}
3494
3495// String returns the string representation
3496func (s IncreaseReplicationFactorOutput) String() string {
3497	return awsutil.Prettify(s)
3498}
3499
3500// GoString returns the string representation
3501func (s IncreaseReplicationFactorOutput) GoString() string {
3502	return s.String()
3503}
3504
3505// SetCluster sets the Cluster field's value.
3506func (s *IncreaseReplicationFactorOutput) SetCluster(v *Cluster) *IncreaseReplicationFactorOutput {
3507	s.Cluster = v
3508	return s
3509}
3510
3511// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ListTagsRequest
3512type ListTagsInput struct {
3513	_ struct{} `type:"structure"`
3514
3515	// An optional token returned from a prior request. Use this token for pagination
3516	// of results from this action. If this parameter is specified, the response
3517	// includes only results beyond the token.
3518	NextToken *string `type:"string"`
3519
3520	// The name of the DAX resource to which the tags belong.
3521	//
3522	// ResourceName is a required field
3523	ResourceName *string `type:"string" required:"true"`
3524}
3525
3526// String returns the string representation
3527func (s ListTagsInput) String() string {
3528	return awsutil.Prettify(s)
3529}
3530
3531// GoString returns the string representation
3532func (s ListTagsInput) GoString() string {
3533	return s.String()
3534}
3535
3536// Validate inspects the fields of the type to determine if they are valid.
3537func (s *ListTagsInput) Validate() error {
3538	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
3539	if s.ResourceName == nil {
3540		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
3541	}
3542
3543	if invalidParams.Len() > 0 {
3544		return invalidParams
3545	}
3546	return nil
3547}
3548
3549// SetNextToken sets the NextToken field's value.
3550func (s *ListTagsInput) SetNextToken(v string) *ListTagsInput {
3551	s.NextToken = &v
3552	return s
3553}
3554
3555// SetResourceName sets the ResourceName field's value.
3556func (s *ListTagsInput) SetResourceName(v string) *ListTagsInput {
3557	s.ResourceName = &v
3558	return s
3559}
3560
3561// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ListTagsResponse
3562type ListTagsOutput struct {
3563	_ struct{} `type:"structure"`
3564
3565	// If this value is present, there are additional results to be displayed. To
3566	// retrieve them, call ListTags again, with NextToken set to this value.
3567	NextToken *string `type:"string"`
3568
3569	// A list of tags currently associated with the DAX cluster.
3570	Tags []*Tag `type:"list"`
3571}
3572
3573// String returns the string representation
3574func (s ListTagsOutput) String() string {
3575	return awsutil.Prettify(s)
3576}
3577
3578// GoString returns the string representation
3579func (s ListTagsOutput) GoString() string {
3580	return s.String()
3581}
3582
3583// SetNextToken sets the NextToken field's value.
3584func (s *ListTagsOutput) SetNextToken(v string) *ListTagsOutput {
3585	s.NextToken = &v
3586	return s
3587}
3588
3589// SetTags sets the Tags field's value.
3590func (s *ListTagsOutput) SetTags(v []*Tag) *ListTagsOutput {
3591	s.Tags = v
3592	return s
3593}
3594
3595// Represents an individual node within a DAX cluster.
3596// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/Node
3597type Node struct {
3598	_ struct{} `type:"structure"`
3599
3600	// The Availability Zone (AZ) in which the node has been deployed.
3601	AvailabilityZone *string `type:"string"`
3602
3603	// The endpoint for the node, consisting of a DNS name and a port number. Client
3604	// applications can connect directly to a node endpoint, if desired (as an alternative
3605	// to allowing DAX client software to intelligently route requests and responses
3606	// to nodes in the DAX cluster.
3607	Endpoint *Endpoint `type:"structure"`
3608
3609	// The date and time (in UNIX epoch format) when the node was launched.
3610	NodeCreateTime *time.Time `type:"timestamp" timestampFormat:"unix"`
3611
3612	// A system-generated identifier for the node.
3613	NodeId *string `type:"string"`
3614
3615	// The current status of the node. For example: available.
3616	NodeStatus *string `type:"string"`
3617
3618	// The status of the parameter group associated with this node. For example,
3619	// in-sync.
3620	ParameterGroupStatus *string `type:"string"`
3621}
3622
3623// String returns the string representation
3624func (s Node) String() string {
3625	return awsutil.Prettify(s)
3626}
3627
3628// GoString returns the string representation
3629func (s Node) GoString() string {
3630	return s.String()
3631}
3632
3633// SetAvailabilityZone sets the AvailabilityZone field's value.
3634func (s *Node) SetAvailabilityZone(v string) *Node {
3635	s.AvailabilityZone = &v
3636	return s
3637}
3638
3639// SetEndpoint sets the Endpoint field's value.
3640func (s *Node) SetEndpoint(v *Endpoint) *Node {
3641	s.Endpoint = v
3642	return s
3643}
3644
3645// SetNodeCreateTime sets the NodeCreateTime field's value.
3646func (s *Node) SetNodeCreateTime(v time.Time) *Node {
3647	s.NodeCreateTime = &v
3648	return s
3649}
3650
3651// SetNodeId sets the NodeId field's value.
3652func (s *Node) SetNodeId(v string) *Node {
3653	s.NodeId = &v
3654	return s
3655}
3656
3657// SetNodeStatus sets the NodeStatus field's value.
3658func (s *Node) SetNodeStatus(v string) *Node {
3659	s.NodeStatus = &v
3660	return s
3661}
3662
3663// SetParameterGroupStatus sets the ParameterGroupStatus field's value.
3664func (s *Node) SetParameterGroupStatus(v string) *Node {
3665	s.ParameterGroupStatus = &v
3666	return s
3667}
3668
3669// Represents a parameter value that is applicable to a particular node type.
3670// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/NodeTypeSpecificValue
3671type NodeTypeSpecificValue struct {
3672	_ struct{} `type:"structure"`
3673
3674	// A node type to which the parameter value applies.
3675	NodeType *string `type:"string"`
3676
3677	// The parameter value for this node type.
3678	Value *string `type:"string"`
3679}
3680
3681// String returns the string representation
3682func (s NodeTypeSpecificValue) String() string {
3683	return awsutil.Prettify(s)
3684}
3685
3686// GoString returns the string representation
3687func (s NodeTypeSpecificValue) GoString() string {
3688	return s.String()
3689}
3690
3691// SetNodeType sets the NodeType field's value.
3692func (s *NodeTypeSpecificValue) SetNodeType(v string) *NodeTypeSpecificValue {
3693	s.NodeType = &v
3694	return s
3695}
3696
3697// SetValue sets the Value field's value.
3698func (s *NodeTypeSpecificValue) SetValue(v string) *NodeTypeSpecificValue {
3699	s.Value = &v
3700	return s
3701}
3702
3703// Describes a notification topic and its status. Notification topics are used
3704// for publishing DAX events to subscribers using Amazon Simple Notification
3705// Service (SNS).
3706// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/NotificationConfiguration
3707type NotificationConfiguration struct {
3708	_ struct{} `type:"structure"`
3709
3710	// The Amazon Resource Name (ARN) that identifies the topic.
3711	TopicArn *string `type:"string"`
3712
3713	// The current state of the topic.
3714	TopicStatus *string `type:"string"`
3715}
3716
3717// String returns the string representation
3718func (s NotificationConfiguration) String() string {
3719	return awsutil.Prettify(s)
3720}
3721
3722// GoString returns the string representation
3723func (s NotificationConfiguration) GoString() string {
3724	return s.String()
3725}
3726
3727// SetTopicArn sets the TopicArn field's value.
3728func (s *NotificationConfiguration) SetTopicArn(v string) *NotificationConfiguration {
3729	s.TopicArn = &v
3730	return s
3731}
3732
3733// SetTopicStatus sets the TopicStatus field's value.
3734func (s *NotificationConfiguration) SetTopicStatus(v string) *NotificationConfiguration {
3735	s.TopicStatus = &v
3736	return s
3737}
3738
3739// Describes an individual setting that controls some aspect of DAX behavior.
3740// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/Parameter
3741type Parameter struct {
3742	_ struct{} `type:"structure"`
3743
3744	// A range of values within which the parameter can be set.
3745	AllowedValues *string `type:"string"`
3746
3747	// The conditions under which changes to this parameter can be applied. For
3748	// example, requires-reboot indicates that a new value for this parameter will
3749	// only take effect if a node is rebooted.
3750	ChangeType *string `type:"string" enum:"ChangeType"`
3751
3752	// The data type of the parameter. For example, integer:
3753	DataType *string `type:"string"`
3754
3755	// A description of the parameter
3756	Description *string `type:"string"`
3757
3758	// Whether the customer is allowed to modify the parameter.
3759	IsModifiable *string `type:"string" enum:"IsModifiable"`
3760
3761	// A list of node types, and specific parameter values for each node.
3762	NodeTypeSpecificValues []*NodeTypeSpecificValue `type:"list"`
3763
3764	// The name of the parameter.
3765	ParameterName *string `type:"string"`
3766
3767	// Determines whether the parameter can be applied to any nodes, or only nodes
3768	// of a particular type.
3769	ParameterType *string `type:"string" enum:"ParameterType"`
3770
3771	// The value for the parameter.
3772	ParameterValue *string `type:"string"`
3773
3774	// How the parameter is defined. For example, system denotes a system-defined
3775	// parameter.
3776	Source *string `type:"string"`
3777}
3778
3779// String returns the string representation
3780func (s Parameter) String() string {
3781	return awsutil.Prettify(s)
3782}
3783
3784// GoString returns the string representation
3785func (s Parameter) GoString() string {
3786	return s.String()
3787}
3788
3789// SetAllowedValues sets the AllowedValues field's value.
3790func (s *Parameter) SetAllowedValues(v string) *Parameter {
3791	s.AllowedValues = &v
3792	return s
3793}
3794
3795// SetChangeType sets the ChangeType field's value.
3796func (s *Parameter) SetChangeType(v string) *Parameter {
3797	s.ChangeType = &v
3798	return s
3799}
3800
3801// SetDataType sets the DataType field's value.
3802func (s *Parameter) SetDataType(v string) *Parameter {
3803	s.DataType = &v
3804	return s
3805}
3806
3807// SetDescription sets the Description field's value.
3808func (s *Parameter) SetDescription(v string) *Parameter {
3809	s.Description = &v
3810	return s
3811}
3812
3813// SetIsModifiable sets the IsModifiable field's value.
3814func (s *Parameter) SetIsModifiable(v string) *Parameter {
3815	s.IsModifiable = &v
3816	return s
3817}
3818
3819// SetNodeTypeSpecificValues sets the NodeTypeSpecificValues field's value.
3820func (s *Parameter) SetNodeTypeSpecificValues(v []*NodeTypeSpecificValue) *Parameter {
3821	s.NodeTypeSpecificValues = v
3822	return s
3823}
3824
3825// SetParameterName sets the ParameterName field's value.
3826func (s *Parameter) SetParameterName(v string) *Parameter {
3827	s.ParameterName = &v
3828	return s
3829}
3830
3831// SetParameterType sets the ParameterType field's value.
3832func (s *Parameter) SetParameterType(v string) *Parameter {
3833	s.ParameterType = &v
3834	return s
3835}
3836
3837// SetParameterValue sets the ParameterValue field's value.
3838func (s *Parameter) SetParameterValue(v string) *Parameter {
3839	s.ParameterValue = &v
3840	return s
3841}
3842
3843// SetSource sets the Source field's value.
3844func (s *Parameter) SetSource(v string) *Parameter {
3845	s.Source = &v
3846	return s
3847}
3848
3849// A named set of parameters that are applied to all of the nodes in a DAX cluster.
3850// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ParameterGroup
3851type ParameterGroup struct {
3852	_ struct{} `type:"structure"`
3853
3854	// A description of the parameter group.
3855	Description *string `type:"string"`
3856
3857	// The name of the parameter group.
3858	ParameterGroupName *string `type:"string"`
3859}
3860
3861// String returns the string representation
3862func (s ParameterGroup) String() string {
3863	return awsutil.Prettify(s)
3864}
3865
3866// GoString returns the string representation
3867func (s ParameterGroup) GoString() string {
3868	return s.String()
3869}
3870
3871// SetDescription sets the Description field's value.
3872func (s *ParameterGroup) SetDescription(v string) *ParameterGroup {
3873	s.Description = &v
3874	return s
3875}
3876
3877// SetParameterGroupName sets the ParameterGroupName field's value.
3878func (s *ParameterGroup) SetParameterGroupName(v string) *ParameterGroup {
3879	s.ParameterGroupName = &v
3880	return s
3881}
3882
3883// The status of a parameter group.
3884// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ParameterGroupStatus
3885type ParameterGroupStatus struct {
3886	_ struct{} `type:"structure"`
3887
3888	// The node IDs of one or more nodes to be rebooted.
3889	NodeIdsToReboot []*string `type:"list"`
3890
3891	// The status of parameter updates.
3892	ParameterApplyStatus *string `type:"string"`
3893
3894	// The name of the parameter group.
3895	ParameterGroupName *string `type:"string"`
3896}
3897
3898// String returns the string representation
3899func (s ParameterGroupStatus) String() string {
3900	return awsutil.Prettify(s)
3901}
3902
3903// GoString returns the string representation
3904func (s ParameterGroupStatus) GoString() string {
3905	return s.String()
3906}
3907
3908// SetNodeIdsToReboot sets the NodeIdsToReboot field's value.
3909func (s *ParameterGroupStatus) SetNodeIdsToReboot(v []*string) *ParameterGroupStatus {
3910	s.NodeIdsToReboot = v
3911	return s
3912}
3913
3914// SetParameterApplyStatus sets the ParameterApplyStatus field's value.
3915func (s *ParameterGroupStatus) SetParameterApplyStatus(v string) *ParameterGroupStatus {
3916	s.ParameterApplyStatus = &v
3917	return s
3918}
3919
3920// SetParameterGroupName sets the ParameterGroupName field's value.
3921func (s *ParameterGroupStatus) SetParameterGroupName(v string) *ParameterGroupStatus {
3922	s.ParameterGroupName = &v
3923	return s
3924}
3925
3926// An individual DAX parameter.
3927// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ParameterNameValue
3928type ParameterNameValue struct {
3929	_ struct{} `type:"structure"`
3930
3931	// The name of the parameter.
3932	ParameterName *string `type:"string"`
3933
3934	// The value of the parameter.
3935	ParameterValue *string `type:"string"`
3936}
3937
3938// String returns the string representation
3939func (s ParameterNameValue) String() string {
3940	return awsutil.Prettify(s)
3941}
3942
3943// GoString returns the string representation
3944func (s ParameterNameValue) GoString() string {
3945	return s.String()
3946}
3947
3948// SetParameterName sets the ParameterName field's value.
3949func (s *ParameterNameValue) SetParameterName(v string) *ParameterNameValue {
3950	s.ParameterName = &v
3951	return s
3952}
3953
3954// SetParameterValue sets the ParameterValue field's value.
3955func (s *ParameterNameValue) SetParameterValue(v string) *ParameterNameValue {
3956	s.ParameterValue = &v
3957	return s
3958}
3959
3960// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/RebootNodeRequest
3961type RebootNodeInput struct {
3962	_ struct{} `type:"structure"`
3963
3964	// The name of the DAX cluster containing the node to be rebooted.
3965	//
3966	// ClusterName is a required field
3967	ClusterName *string `type:"string" required:"true"`
3968
3969	// The system-assigned ID of the node to be rebooted.
3970	//
3971	// NodeId is a required field
3972	NodeId *string `type:"string" required:"true"`
3973}
3974
3975// String returns the string representation
3976func (s RebootNodeInput) String() string {
3977	return awsutil.Prettify(s)
3978}
3979
3980// GoString returns the string representation
3981func (s RebootNodeInput) GoString() string {
3982	return s.String()
3983}
3984
3985// Validate inspects the fields of the type to determine if they are valid.
3986func (s *RebootNodeInput) Validate() error {
3987	invalidParams := request.ErrInvalidParams{Context: "RebootNodeInput"}
3988	if s.ClusterName == nil {
3989		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
3990	}
3991	if s.NodeId == nil {
3992		invalidParams.Add(request.NewErrParamRequired("NodeId"))
3993	}
3994
3995	if invalidParams.Len() > 0 {
3996		return invalidParams
3997	}
3998	return nil
3999}
4000
4001// SetClusterName sets the ClusterName field's value.
4002func (s *RebootNodeInput) SetClusterName(v string) *RebootNodeInput {
4003	s.ClusterName = &v
4004	return s
4005}
4006
4007// SetNodeId sets the NodeId field's value.
4008func (s *RebootNodeInput) SetNodeId(v string) *RebootNodeInput {
4009	s.NodeId = &v
4010	return s
4011}
4012
4013// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/RebootNodeResponse
4014type RebootNodeOutput struct {
4015	_ struct{} `type:"structure"`
4016
4017	// A description of the DAX cluster after a node has been rebooted.
4018	Cluster *Cluster `type:"structure"`
4019}
4020
4021// String returns the string representation
4022func (s RebootNodeOutput) String() string {
4023	return awsutil.Prettify(s)
4024}
4025
4026// GoString returns the string representation
4027func (s RebootNodeOutput) GoString() string {
4028	return s.String()
4029}
4030
4031// SetCluster sets the Cluster field's value.
4032func (s *RebootNodeOutput) SetCluster(v *Cluster) *RebootNodeOutput {
4033	s.Cluster = v
4034	return s
4035}
4036
4037// An individual VPC security group and its status.
4038// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/SecurityGroupMembership
4039type SecurityGroupMembership struct {
4040	_ struct{} `type:"structure"`
4041
4042	// The unique ID for this security group.
4043	SecurityGroupIdentifier *string `type:"string"`
4044
4045	// The status of this security group.
4046	Status *string `type:"string"`
4047}
4048
4049// String returns the string representation
4050func (s SecurityGroupMembership) String() string {
4051	return awsutil.Prettify(s)
4052}
4053
4054// GoString returns the string representation
4055func (s SecurityGroupMembership) GoString() string {
4056	return s.String()
4057}
4058
4059// SetSecurityGroupIdentifier sets the SecurityGroupIdentifier field's value.
4060func (s *SecurityGroupMembership) SetSecurityGroupIdentifier(v string) *SecurityGroupMembership {
4061	s.SecurityGroupIdentifier = &v
4062	return s
4063}
4064
4065// SetStatus sets the Status field's value.
4066func (s *SecurityGroupMembership) SetStatus(v string) *SecurityGroupMembership {
4067	s.Status = &v
4068	return s
4069}
4070
4071// Represents the subnet associated with a DAX cluster. This parameter refers
4072// to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used
4073// with DAX.
4074// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/Subnet
4075type Subnet struct {
4076	_ struct{} `type:"structure"`
4077
4078	// The Availability Zone (AZ) for subnet subnet.
4079	SubnetAvailabilityZone *string `type:"string"`
4080
4081	// The system-assigned identifier for the subnet.
4082	SubnetIdentifier *string `type:"string"`
4083}
4084
4085// String returns the string representation
4086func (s Subnet) String() string {
4087	return awsutil.Prettify(s)
4088}
4089
4090// GoString returns the string representation
4091func (s Subnet) GoString() string {
4092	return s.String()
4093}
4094
4095// SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value.
4096func (s *Subnet) SetSubnetAvailabilityZone(v string) *Subnet {
4097	s.SubnetAvailabilityZone = &v
4098	return s
4099}
4100
4101// SetSubnetIdentifier sets the SubnetIdentifier field's value.
4102func (s *Subnet) SetSubnetIdentifier(v string) *Subnet {
4103	s.SubnetIdentifier = &v
4104	return s
4105}
4106
4107// Represents the output of one of the following actions:
4108//
4109//    * CreateSubnetGroup
4110//
4111//    * ModifySubnetGroup
4112// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/SubnetGroup
4113type SubnetGroup struct {
4114	_ struct{} `type:"structure"`
4115
4116	// The description of the subnet group.
4117	Description *string `type:"string"`
4118
4119	// The name of the subnet group.
4120	SubnetGroupName *string `type:"string"`
4121
4122	// A list of subnets associated with the subnet group.
4123	Subnets []*Subnet `type:"list"`
4124
4125	// The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.
4126	VpcId *string `type:"string"`
4127}
4128
4129// String returns the string representation
4130func (s SubnetGroup) String() string {
4131	return awsutil.Prettify(s)
4132}
4133
4134// GoString returns the string representation
4135func (s SubnetGroup) GoString() string {
4136	return s.String()
4137}
4138
4139// SetDescription sets the Description field's value.
4140func (s *SubnetGroup) SetDescription(v string) *SubnetGroup {
4141	s.Description = &v
4142	return s
4143}
4144
4145// SetSubnetGroupName sets the SubnetGroupName field's value.
4146func (s *SubnetGroup) SetSubnetGroupName(v string) *SubnetGroup {
4147	s.SubnetGroupName = &v
4148	return s
4149}
4150
4151// SetSubnets sets the Subnets field's value.
4152func (s *SubnetGroup) SetSubnets(v []*Subnet) *SubnetGroup {
4153	s.Subnets = v
4154	return s
4155}
4156
4157// SetVpcId sets the VpcId field's value.
4158func (s *SubnetGroup) SetVpcId(v string) *SubnetGroup {
4159	s.VpcId = &v
4160	return s
4161}
4162
4163// A description of a tag. Every tag is a key-value pair. You can add up to
4164// 50 tags to a single DAX cluster.
4165//
4166// AWS-assigned tag names and values are automatically assigned the aws: prefix,
4167// which the user cannot assign. AWS-assigned tag names do not count towards
4168// the tag limit of 50. User-assigned tag names have the prefix user:.
4169//
4170// You cannot backdate the application of a tag.
4171// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/Tag
4172type Tag struct {
4173	_ struct{} `type:"structure"`
4174
4175	// The key for the tag. Tag keys are case sensitive. Every DAX cluster can only
4176	// have one tag with the same key. If you try to add an existing tag (same key),
4177	// the existing tag value will be updated to the new value.
4178	Key *string `type:"string"`
4179
4180	// The value of the tag. Tag values are case-sensitive and can be null.
4181	Value *string `type:"string"`
4182}
4183
4184// String returns the string representation
4185func (s Tag) String() string {
4186	return awsutil.Prettify(s)
4187}
4188
4189// GoString returns the string representation
4190func (s Tag) GoString() string {
4191	return s.String()
4192}
4193
4194// SetKey sets the Key field's value.
4195func (s *Tag) SetKey(v string) *Tag {
4196	s.Key = &v
4197	return s
4198}
4199
4200// SetValue sets the Value field's value.
4201func (s *Tag) SetValue(v string) *Tag {
4202	s.Value = &v
4203	return s
4204}
4205
4206// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/TagResourceRequest
4207type TagResourceInput struct {
4208	_ struct{} `type:"structure"`
4209
4210	// The name of the DAX resource to which tags should be added.
4211	//
4212	// ResourceName is a required field
4213	ResourceName *string `type:"string" required:"true"`
4214
4215	// The tags to be assigned to the DAX resource.
4216	//
4217	// Tags is a required field
4218	Tags []*Tag `type:"list" required:"true"`
4219}
4220
4221// String returns the string representation
4222func (s TagResourceInput) String() string {
4223	return awsutil.Prettify(s)
4224}
4225
4226// GoString returns the string representation
4227func (s TagResourceInput) GoString() string {
4228	return s.String()
4229}
4230
4231// Validate inspects the fields of the type to determine if they are valid.
4232func (s *TagResourceInput) Validate() error {
4233	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
4234	if s.ResourceName == nil {
4235		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
4236	}
4237	if s.Tags == nil {
4238		invalidParams.Add(request.NewErrParamRequired("Tags"))
4239	}
4240
4241	if invalidParams.Len() > 0 {
4242		return invalidParams
4243	}
4244	return nil
4245}
4246
4247// SetResourceName sets the ResourceName field's value.
4248func (s *TagResourceInput) SetResourceName(v string) *TagResourceInput {
4249	s.ResourceName = &v
4250	return s
4251}
4252
4253// SetTags sets the Tags field's value.
4254func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
4255	s.Tags = v
4256	return s
4257}
4258
4259// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/TagResourceResponse
4260type TagResourceOutput struct {
4261	_ struct{} `type:"structure"`
4262
4263	// The list of tags that are associated with the DAX resource.
4264	Tags []*Tag `type:"list"`
4265}
4266
4267// String returns the string representation
4268func (s TagResourceOutput) String() string {
4269	return awsutil.Prettify(s)
4270}
4271
4272// GoString returns the string representation
4273func (s TagResourceOutput) GoString() string {
4274	return s.String()
4275}
4276
4277// SetTags sets the Tags field's value.
4278func (s *TagResourceOutput) SetTags(v []*Tag) *TagResourceOutput {
4279	s.Tags = v
4280	return s
4281}
4282
4283// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UntagResourceRequest
4284type UntagResourceInput struct {
4285	_ struct{} `type:"structure"`
4286
4287	// The name of the DAX resource from which the tags should be removed.
4288	//
4289	// ResourceName is a required field
4290	ResourceName *string `type:"string" required:"true"`
4291
4292	// A list of tag keys. If the DAX cluster has any tags with these keys, then
4293	// the tags are removed from the cluster.
4294	//
4295	// TagKeys is a required field
4296	TagKeys []*string `type:"list" required:"true"`
4297}
4298
4299// String returns the string representation
4300func (s UntagResourceInput) String() string {
4301	return awsutil.Prettify(s)
4302}
4303
4304// GoString returns the string representation
4305func (s UntagResourceInput) GoString() string {
4306	return s.String()
4307}
4308
4309// Validate inspects the fields of the type to determine if they are valid.
4310func (s *UntagResourceInput) Validate() error {
4311	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
4312	if s.ResourceName == nil {
4313		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
4314	}
4315	if s.TagKeys == nil {
4316		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
4317	}
4318
4319	if invalidParams.Len() > 0 {
4320		return invalidParams
4321	}
4322	return nil
4323}
4324
4325// SetResourceName sets the ResourceName field's value.
4326func (s *UntagResourceInput) SetResourceName(v string) *UntagResourceInput {
4327	s.ResourceName = &v
4328	return s
4329}
4330
4331// SetTagKeys sets the TagKeys field's value.
4332func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
4333	s.TagKeys = v
4334	return s
4335}
4336
4337// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UntagResourceResponse
4338type UntagResourceOutput struct {
4339	_ struct{} `type:"structure"`
4340
4341	// The tag keys that have been removed from the cluster.
4342	Tags []*Tag `type:"list"`
4343}
4344
4345// String returns the string representation
4346func (s UntagResourceOutput) String() string {
4347	return awsutil.Prettify(s)
4348}
4349
4350// GoString returns the string representation
4351func (s UntagResourceOutput) GoString() string {
4352	return s.String()
4353}
4354
4355// SetTags sets the Tags field's value.
4356func (s *UntagResourceOutput) SetTags(v []*Tag) *UntagResourceOutput {
4357	s.Tags = v
4358	return s
4359}
4360
4361// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateClusterRequest
4362type UpdateClusterInput struct {
4363	_ struct{} `type:"structure"`
4364
4365	// The name of the DAX cluster to be modified.
4366	//
4367	// ClusterName is a required field
4368	ClusterName *string `type:"string" required:"true"`
4369
4370	// A description of the changes being made to the cluster.
4371	Description *string `type:"string"`
4372
4373	// The Amazon Resource Name (ARN) that identifies the topic.
4374	NotificationTopicArn *string `type:"string"`
4375
4376	// The current state of the topic.
4377	NotificationTopicStatus *string `type:"string"`
4378
4379	// The name of a parameter group for this cluster.
4380	ParameterGroupName *string `type:"string"`
4381
4382	// A range of time when maintenance of DAX cluster software will be performed.
4383	// For example: sun:01:00-sun:09:00. Cluster maintenance normally takes less
4384	// than 30 minutes, and is performed automatically within the maintenance window.
4385	PreferredMaintenanceWindow *string `type:"string"`
4386
4387	// A list of user-specified security group IDs to be assigned to each node in
4388	// the DAX cluster. If this parameter is not specified, DAX assigns the default
4389	// VPC security group to each node.
4390	SecurityGroupIds []*string `type:"list"`
4391}
4392
4393// String returns the string representation
4394func (s UpdateClusterInput) String() string {
4395	return awsutil.Prettify(s)
4396}
4397
4398// GoString returns the string representation
4399func (s UpdateClusterInput) GoString() string {
4400	return s.String()
4401}
4402
4403// Validate inspects the fields of the type to determine if they are valid.
4404func (s *UpdateClusterInput) Validate() error {
4405	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"}
4406	if s.ClusterName == nil {
4407		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
4408	}
4409
4410	if invalidParams.Len() > 0 {
4411		return invalidParams
4412	}
4413	return nil
4414}
4415
4416// SetClusterName sets the ClusterName field's value.
4417func (s *UpdateClusterInput) SetClusterName(v string) *UpdateClusterInput {
4418	s.ClusterName = &v
4419	return s
4420}
4421
4422// SetDescription sets the Description field's value.
4423func (s *UpdateClusterInput) SetDescription(v string) *UpdateClusterInput {
4424	s.Description = &v
4425	return s
4426}
4427
4428// SetNotificationTopicArn sets the NotificationTopicArn field's value.
4429func (s *UpdateClusterInput) SetNotificationTopicArn(v string) *UpdateClusterInput {
4430	s.NotificationTopicArn = &v
4431	return s
4432}
4433
4434// SetNotificationTopicStatus sets the NotificationTopicStatus field's value.
4435func (s *UpdateClusterInput) SetNotificationTopicStatus(v string) *UpdateClusterInput {
4436	s.NotificationTopicStatus = &v
4437	return s
4438}
4439
4440// SetParameterGroupName sets the ParameterGroupName field's value.
4441func (s *UpdateClusterInput) SetParameterGroupName(v string) *UpdateClusterInput {
4442	s.ParameterGroupName = &v
4443	return s
4444}
4445
4446// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
4447func (s *UpdateClusterInput) SetPreferredMaintenanceWindow(v string) *UpdateClusterInput {
4448	s.PreferredMaintenanceWindow = &v
4449	return s
4450}
4451
4452// SetSecurityGroupIds sets the SecurityGroupIds field's value.
4453func (s *UpdateClusterInput) SetSecurityGroupIds(v []*string) *UpdateClusterInput {
4454	s.SecurityGroupIds = v
4455	return s
4456}
4457
4458// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateClusterResponse
4459type UpdateClusterOutput struct {
4460	_ struct{} `type:"structure"`
4461
4462	// A description of the DAX cluster, after it has been modified.
4463	Cluster *Cluster `type:"structure"`
4464}
4465
4466// String returns the string representation
4467func (s UpdateClusterOutput) String() string {
4468	return awsutil.Prettify(s)
4469}
4470
4471// GoString returns the string representation
4472func (s UpdateClusterOutput) GoString() string {
4473	return s.String()
4474}
4475
4476// SetCluster sets the Cluster field's value.
4477func (s *UpdateClusterOutput) SetCluster(v *Cluster) *UpdateClusterOutput {
4478	s.Cluster = v
4479	return s
4480}
4481
4482// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateParameterGroupRequest
4483type UpdateParameterGroupInput struct {
4484	_ struct{} `type:"structure"`
4485
4486	// The name of the parameter group.
4487	//
4488	// ParameterGroupName is a required field
4489	ParameterGroupName *string `type:"string" required:"true"`
4490
4491	// An array of name-value pairs for the parameters in the group. Each element
4492	// in the array represents a single parameter.
4493	//
4494	// ParameterNameValues is a required field
4495	ParameterNameValues []*ParameterNameValue `type:"list" required:"true"`
4496}
4497
4498// String returns the string representation
4499func (s UpdateParameterGroupInput) String() string {
4500	return awsutil.Prettify(s)
4501}
4502
4503// GoString returns the string representation
4504func (s UpdateParameterGroupInput) GoString() string {
4505	return s.String()
4506}
4507
4508// Validate inspects the fields of the type to determine if they are valid.
4509func (s *UpdateParameterGroupInput) Validate() error {
4510	invalidParams := request.ErrInvalidParams{Context: "UpdateParameterGroupInput"}
4511	if s.ParameterGroupName == nil {
4512		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
4513	}
4514	if s.ParameterNameValues == nil {
4515		invalidParams.Add(request.NewErrParamRequired("ParameterNameValues"))
4516	}
4517
4518	if invalidParams.Len() > 0 {
4519		return invalidParams
4520	}
4521	return nil
4522}
4523
4524// SetParameterGroupName sets the ParameterGroupName field's value.
4525func (s *UpdateParameterGroupInput) SetParameterGroupName(v string) *UpdateParameterGroupInput {
4526	s.ParameterGroupName = &v
4527	return s
4528}
4529
4530// SetParameterNameValues sets the ParameterNameValues field's value.
4531func (s *UpdateParameterGroupInput) SetParameterNameValues(v []*ParameterNameValue) *UpdateParameterGroupInput {
4532	s.ParameterNameValues = v
4533	return s
4534}
4535
4536// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateParameterGroupResponse
4537type UpdateParameterGroupOutput struct {
4538	_ struct{} `type:"structure"`
4539
4540	// The parameter group that has been modified.
4541	ParameterGroup *ParameterGroup `type:"structure"`
4542}
4543
4544// String returns the string representation
4545func (s UpdateParameterGroupOutput) String() string {
4546	return awsutil.Prettify(s)
4547}
4548
4549// GoString returns the string representation
4550func (s UpdateParameterGroupOutput) GoString() string {
4551	return s.String()
4552}
4553
4554// SetParameterGroup sets the ParameterGroup field's value.
4555func (s *UpdateParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *UpdateParameterGroupOutput {
4556	s.ParameterGroup = v
4557	return s
4558}
4559
4560// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateSubnetGroupRequest
4561type UpdateSubnetGroupInput struct {
4562	_ struct{} `type:"structure"`
4563
4564	// A description of the subnet group.
4565	Description *string `type:"string"`
4566
4567	// The name of the subnet group.
4568	//
4569	// SubnetGroupName is a required field
4570	SubnetGroupName *string `type:"string" required:"true"`
4571
4572	// A list of subnet IDs in the subnet group.
4573	SubnetIds []*string `type:"list"`
4574}
4575
4576// String returns the string representation
4577func (s UpdateSubnetGroupInput) String() string {
4578	return awsutil.Prettify(s)
4579}
4580
4581// GoString returns the string representation
4582func (s UpdateSubnetGroupInput) GoString() string {
4583	return s.String()
4584}
4585
4586// Validate inspects the fields of the type to determine if they are valid.
4587func (s *UpdateSubnetGroupInput) Validate() error {
4588	invalidParams := request.ErrInvalidParams{Context: "UpdateSubnetGroupInput"}
4589	if s.SubnetGroupName == nil {
4590		invalidParams.Add(request.NewErrParamRequired("SubnetGroupName"))
4591	}
4592
4593	if invalidParams.Len() > 0 {
4594		return invalidParams
4595	}
4596	return nil
4597}
4598
4599// SetDescription sets the Description field's value.
4600func (s *UpdateSubnetGroupInput) SetDescription(v string) *UpdateSubnetGroupInput {
4601	s.Description = &v
4602	return s
4603}
4604
4605// SetSubnetGroupName sets the SubnetGroupName field's value.
4606func (s *UpdateSubnetGroupInput) SetSubnetGroupName(v string) *UpdateSubnetGroupInput {
4607	s.SubnetGroupName = &v
4608	return s
4609}
4610
4611// SetSubnetIds sets the SubnetIds field's value.
4612func (s *UpdateSubnetGroupInput) SetSubnetIds(v []*string) *UpdateSubnetGroupInput {
4613	s.SubnetIds = v
4614	return s
4615}
4616
4617// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateSubnetGroupResponse
4618type UpdateSubnetGroupOutput struct {
4619	_ struct{} `type:"structure"`
4620
4621	// The subnet group that has been modified.
4622	SubnetGroup *SubnetGroup `type:"structure"`
4623}
4624
4625// String returns the string representation
4626func (s UpdateSubnetGroupOutput) String() string {
4627	return awsutil.Prettify(s)
4628}
4629
4630// GoString returns the string representation
4631func (s UpdateSubnetGroupOutput) GoString() string {
4632	return s.String()
4633}
4634
4635// SetSubnetGroup sets the SubnetGroup field's value.
4636func (s *UpdateSubnetGroupOutput) SetSubnetGroup(v *SubnetGroup) *UpdateSubnetGroupOutput {
4637	s.SubnetGroup = v
4638	return s
4639}
4640
4641const (
4642	// ChangeTypeImmediate is a ChangeType enum value
4643	ChangeTypeImmediate = "IMMEDIATE"
4644
4645	// ChangeTypeRequiresReboot is a ChangeType enum value
4646	ChangeTypeRequiresReboot = "REQUIRES_REBOOT"
4647)
4648
4649const (
4650	// IsModifiableTrue is a IsModifiable enum value
4651	IsModifiableTrue = "TRUE"
4652
4653	// IsModifiableFalse is a IsModifiable enum value
4654	IsModifiableFalse = "FALSE"
4655
4656	// IsModifiableConditional is a IsModifiable enum value
4657	IsModifiableConditional = "CONDITIONAL"
4658)
4659
4660const (
4661	// ParameterTypeDefault is a ParameterType enum value
4662	ParameterTypeDefault = "DEFAULT"
4663
4664	// ParameterTypeNodeTypeSpecific is a ParameterType enum value
4665	ParameterTypeNodeTypeSpecific = "NODE_TYPE_SPECIFIC"
4666)
4667
4668const (
4669	// SourceTypeCluster is a SourceType enum value
4670	SourceTypeCluster = "CLUSTER"
4671
4672	// SourceTypeParameterGroup is a SourceType enum value
4673	SourceTypeParameterGroup = "PARAMETER_GROUP"
4674
4675	// SourceTypeSubnetGroup is a SourceType enum value
4676	SourceTypeSubnetGroup = "SUBNET_GROUP"
4677)
4678