1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package memorydb
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13)
14
15const opBatchUpdateCluster = "BatchUpdateCluster"
16
17// BatchUpdateClusterRequest generates a "aws/request.Request" representing the
18// client's request for the BatchUpdateCluster operation. The "output" return
19// value will be populated with the request's response once the request completes
20// successfully.
21//
22// Use "Send" method on the returned Request to send the API call to the service.
23// the "output" return value is not valid until after Send returns without error.
24//
25// See BatchUpdateCluster for more information on using the BatchUpdateCluster
26// API call, and error handling.
27//
28// This method is useful when you want to inject custom logic or configuration
29// into the SDK's request lifecycle. Such as custom headers, or retry logic.
30//
31//
32//    // Example sending a request using the BatchUpdateClusterRequest method.
33//    req, resp := client.BatchUpdateClusterRequest(params)
34//
35//    err := req.Send()
36//    if err == nil { // resp is now filled
37//        fmt.Println(resp)
38//    }
39//
40// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/BatchUpdateCluster
41func (c *MemoryDB) BatchUpdateClusterRequest(input *BatchUpdateClusterInput) (req *request.Request, output *BatchUpdateClusterOutput) {
42	op := &request.Operation{
43		Name:       opBatchUpdateCluster,
44		HTTPMethod: "POST",
45		HTTPPath:   "/",
46	}
47
48	if input == nil {
49		input = &BatchUpdateClusterInput{}
50	}
51
52	output = &BatchUpdateClusterOutput{}
53	req = c.newRequest(op, input, output)
54	return
55}
56
57// BatchUpdateCluster API operation for Amazon MemoryDB.
58//
59// Apply the service update to a list of clusters supplied. For more information
60// on service updates and applying them, see Applying the service updates (https://docs.aws.amazon.com/MemoryDB/latest/devguide/managing-updates.html#applying-updates).
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for Amazon MemoryDB's
67// API operation BatchUpdateCluster for usage and error information.
68//
69// Returned Error Types:
70//   * ServiceUpdateNotFoundFault
71//
72//   * InvalidParameterValueException
73//
74// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/BatchUpdateCluster
75func (c *MemoryDB) BatchUpdateCluster(input *BatchUpdateClusterInput) (*BatchUpdateClusterOutput, error) {
76	req, out := c.BatchUpdateClusterRequest(input)
77	return out, req.Send()
78}
79
80// BatchUpdateClusterWithContext is the same as BatchUpdateCluster with the addition of
81// the ability to pass a context and additional request options.
82//
83// See BatchUpdateCluster for details on how to use this API operation.
84//
85// The context must be non-nil and will be used for request cancellation. If
86// the context is nil a panic will occur. In the future the SDK may create
87// sub-contexts for http.Requests. See https://golang.org/pkg/context/
88// for more information on using Contexts.
89func (c *MemoryDB) BatchUpdateClusterWithContext(ctx aws.Context, input *BatchUpdateClusterInput, opts ...request.Option) (*BatchUpdateClusterOutput, error) {
90	req, out := c.BatchUpdateClusterRequest(input)
91	req.SetContext(ctx)
92	req.ApplyOptions(opts...)
93	return out, req.Send()
94}
95
96const opCopySnapshot = "CopySnapshot"
97
98// CopySnapshotRequest generates a "aws/request.Request" representing the
99// client's request for the CopySnapshot operation. The "output" return
100// value will be populated with the request's response once the request completes
101// successfully.
102//
103// Use "Send" method on the returned Request to send the API call to the service.
104// the "output" return value is not valid until after Send returns without error.
105//
106// See CopySnapshot for more information on using the CopySnapshot
107// API call, and error handling.
108//
109// This method is useful when you want to inject custom logic or configuration
110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
111//
112//
113//    // Example sending a request using the CopySnapshotRequest method.
114//    req, resp := client.CopySnapshotRequest(params)
115//
116//    err := req.Send()
117//    if err == nil { // resp is now filled
118//        fmt.Println(resp)
119//    }
120//
121// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CopySnapshot
122func (c *MemoryDB) CopySnapshotRequest(input *CopySnapshotInput) (req *request.Request, output *CopySnapshotOutput) {
123	op := &request.Operation{
124		Name:       opCopySnapshot,
125		HTTPMethod: "POST",
126		HTTPPath:   "/",
127	}
128
129	if input == nil {
130		input = &CopySnapshotInput{}
131	}
132
133	output = &CopySnapshotOutput{}
134	req = c.newRequest(op, input, output)
135	return
136}
137
138// CopySnapshot API operation for Amazon MemoryDB.
139//
140// Makes a copy of an existing snapshot.
141//
142// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
143// with awserr.Error's Code and Message methods to get detailed information about
144// the error.
145//
146// See the AWS API reference guide for Amazon MemoryDB's
147// API operation CopySnapshot for usage and error information.
148//
149// Returned Error Types:
150//   * SnapshotAlreadyExistsFault
151//
152//   * SnapshotNotFoundFault
153//
154//   * SnapshotQuotaExceededFault
155//
156//   * InvalidSnapshotStateFault
157//
158//   * ServiceLinkedRoleNotFoundFault
159//
160//   * InvalidParameterValueException
161//
162//   * InvalidParameterCombinationException
163//
164//   * TagQuotaPerResourceExceeded
165//
166// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CopySnapshot
167func (c *MemoryDB) CopySnapshot(input *CopySnapshotInput) (*CopySnapshotOutput, error) {
168	req, out := c.CopySnapshotRequest(input)
169	return out, req.Send()
170}
171
172// CopySnapshotWithContext is the same as CopySnapshot with the addition of
173// the ability to pass a context and additional request options.
174//
175// See CopySnapshot for details on how to use this API operation.
176//
177// The context must be non-nil and will be used for request cancellation. If
178// the context is nil a panic will occur. In the future the SDK may create
179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
180// for more information on using Contexts.
181func (c *MemoryDB) CopySnapshotWithContext(ctx aws.Context, input *CopySnapshotInput, opts ...request.Option) (*CopySnapshotOutput, error) {
182	req, out := c.CopySnapshotRequest(input)
183	req.SetContext(ctx)
184	req.ApplyOptions(opts...)
185	return out, req.Send()
186}
187
188const opCreateACL = "CreateACL"
189
190// CreateACLRequest generates a "aws/request.Request" representing the
191// client's request for the CreateACL operation. The "output" return
192// value will be populated with the request's response once the request completes
193// successfully.
194//
195// Use "Send" method on the returned Request to send the API call to the service.
196// the "output" return value is not valid until after Send returns without error.
197//
198// See CreateACL for more information on using the CreateACL
199// API call, and error handling.
200//
201// This method is useful when you want to inject custom logic or configuration
202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
203//
204//
205//    // Example sending a request using the CreateACLRequest method.
206//    req, resp := client.CreateACLRequest(params)
207//
208//    err := req.Send()
209//    if err == nil { // resp is now filled
210//        fmt.Println(resp)
211//    }
212//
213// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateACL
214func (c *MemoryDB) CreateACLRequest(input *CreateACLInput) (req *request.Request, output *CreateACLOutput) {
215	op := &request.Operation{
216		Name:       opCreateACL,
217		HTTPMethod: "POST",
218		HTTPPath:   "/",
219	}
220
221	if input == nil {
222		input = &CreateACLInput{}
223	}
224
225	output = &CreateACLOutput{}
226	req = c.newRequest(op, input, output)
227	return
228}
229
230// CreateACL API operation for Amazon MemoryDB.
231//
232// Creates an Access Control List. For more information, see Authenticating
233// users with Access Contol Lists (ACLs) (https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html).
234//
235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
236// with awserr.Error's Code and Message methods to get detailed information about
237// the error.
238//
239// See the AWS API reference guide for Amazon MemoryDB's
240// API operation CreateACL for usage and error information.
241//
242// Returned Error Types:
243//   * UserNotFoundFault
244//
245//   * DuplicateUserNameFault
246//
247//   * ACLAlreadyExistsFault
248//
249//   * DefaultUserRequired
250//
251//   * ACLQuotaExceededFault
252//
253//   * InvalidParameterValueException
254//
255//   * TagQuotaPerResourceExceeded
256//
257// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateACL
258func (c *MemoryDB) CreateACL(input *CreateACLInput) (*CreateACLOutput, error) {
259	req, out := c.CreateACLRequest(input)
260	return out, req.Send()
261}
262
263// CreateACLWithContext is the same as CreateACL with the addition of
264// the ability to pass a context and additional request options.
265//
266// See CreateACL for details on how to use this API operation.
267//
268// The context must be non-nil and will be used for request cancellation. If
269// the context is nil a panic will occur. In the future the SDK may create
270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
271// for more information on using Contexts.
272func (c *MemoryDB) CreateACLWithContext(ctx aws.Context, input *CreateACLInput, opts ...request.Option) (*CreateACLOutput, error) {
273	req, out := c.CreateACLRequest(input)
274	req.SetContext(ctx)
275	req.ApplyOptions(opts...)
276	return out, req.Send()
277}
278
279const opCreateCluster = "CreateCluster"
280
281// CreateClusterRequest generates a "aws/request.Request" representing the
282// client's request for the CreateCluster operation. The "output" return
283// value will be populated with the request's response once the request completes
284// successfully.
285//
286// Use "Send" method on the returned Request to send the API call to the service.
287// the "output" return value is not valid until after Send returns without error.
288//
289// See CreateCluster for more information on using the CreateCluster
290// API call, and error handling.
291//
292// This method is useful when you want to inject custom logic or configuration
293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
294//
295//
296//    // Example sending a request using the CreateClusterRequest method.
297//    req, resp := client.CreateClusterRequest(params)
298//
299//    err := req.Send()
300//    if err == nil { // resp is now filled
301//        fmt.Println(resp)
302//    }
303//
304// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateCluster
305func (c *MemoryDB) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
306	op := &request.Operation{
307		Name:       opCreateCluster,
308		HTTPMethod: "POST",
309		HTTPPath:   "/",
310	}
311
312	if input == nil {
313		input = &CreateClusterInput{}
314	}
315
316	output = &CreateClusterOutput{}
317	req = c.newRequest(op, input, output)
318	return
319}
320
321// CreateCluster API operation for Amazon MemoryDB.
322//
323// Creates a cluster. All nodes in the cluster run the same protocol-compliant
324// engine software.
325//
326// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
327// with awserr.Error's Code and Message methods to get detailed information about
328// the error.
329//
330// See the AWS API reference guide for Amazon MemoryDB's
331// API operation CreateCluster for usage and error information.
332//
333// Returned Error Types:
334//   * ClusterAlreadyExistsFault
335//
336//   * SubnetGroupNotFoundFault
337//
338//   * ClusterQuotaForCustomerExceededFault
339//
340//   * NodeQuotaForClusterExceededFault
341//
342//   * NodeQuotaForCustomerExceededFault
343//
344//   * ParameterGroupNotFoundFault
345//
346//   * InsufficientClusterCapacityFault
347//
348//   * InvalidVPCNetworkStateFault
349//
350//   * ServiceLinkedRoleNotFoundFault
351//
352//   * ShardsPerClusterQuotaExceededFault
353//
354//   * InvalidParameterValueException
355//
356//   * InvalidParameterCombinationException
357//
358//   * InvalidCredentialsException
359//
360//   * TagQuotaPerResourceExceeded
361//
362//   * ACLNotFoundFault
363//
364//   * InvalidACLStateFault
365//
366// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateCluster
367func (c *MemoryDB) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
368	req, out := c.CreateClusterRequest(input)
369	return out, req.Send()
370}
371
372// CreateClusterWithContext is the same as CreateCluster with the addition of
373// the ability to pass a context and additional request options.
374//
375// See CreateCluster for details on how to use this API operation.
376//
377// The context must be non-nil and will be used for request cancellation. If
378// the context is nil a panic will occur. In the future the SDK may create
379// sub-contexts for http.Requests. See https://golang.org/pkg/context/
380// for more information on using Contexts.
381func (c *MemoryDB) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
382	req, out := c.CreateClusterRequest(input)
383	req.SetContext(ctx)
384	req.ApplyOptions(opts...)
385	return out, req.Send()
386}
387
388const opCreateParameterGroup = "CreateParameterGroup"
389
390// CreateParameterGroupRequest generates a "aws/request.Request" representing the
391// client's request for the CreateParameterGroup operation. The "output" return
392// value will be populated with the request's response once the request completes
393// successfully.
394//
395// Use "Send" method on the returned Request to send the API call to the service.
396// the "output" return value is not valid until after Send returns without error.
397//
398// See CreateParameterGroup for more information on using the CreateParameterGroup
399// API call, and error handling.
400//
401// This method is useful when you want to inject custom logic or configuration
402// into the SDK's request lifecycle. Such as custom headers, or retry logic.
403//
404//
405//    // Example sending a request using the CreateParameterGroupRequest method.
406//    req, resp := client.CreateParameterGroupRequest(params)
407//
408//    err := req.Send()
409//    if err == nil { // resp is now filled
410//        fmt.Println(resp)
411//    }
412//
413// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateParameterGroup
414func (c *MemoryDB) CreateParameterGroupRequest(input *CreateParameterGroupInput) (req *request.Request, output *CreateParameterGroupOutput) {
415	op := &request.Operation{
416		Name:       opCreateParameterGroup,
417		HTTPMethod: "POST",
418		HTTPPath:   "/",
419	}
420
421	if input == nil {
422		input = &CreateParameterGroupInput{}
423	}
424
425	output = &CreateParameterGroupOutput{}
426	req = c.newRequest(op, input, output)
427	return
428}
429
430// CreateParameterGroup API operation for Amazon MemoryDB.
431//
432// Creates a new MemoryDB parameter group. A parameter group is a collection
433// of parameters and their values that are applied to all of the nodes in any
434// cluster. For more information, see Configuring engine parameters using parameter
435// groups (https://docs.aws.amazon.com/MemoryDB/latest/devguide/parametergroups.html).
436//
437// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
438// with awserr.Error's Code and Message methods to get detailed information about
439// the error.
440//
441// See the AWS API reference guide for Amazon MemoryDB's
442// API operation CreateParameterGroup for usage and error information.
443//
444// Returned Error Types:
445//   * ParameterGroupQuotaExceededFault
446//
447//   * ParameterGroupAlreadyExistsFault
448//
449//   * InvalidParameterGroupStateFault
450//
451//   * ServiceLinkedRoleNotFoundFault
452//
453//   * TagQuotaPerResourceExceeded
454//
455//   * InvalidParameterValueException
456//
457//   * InvalidParameterCombinationException
458//
459// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateParameterGroup
460func (c *MemoryDB) CreateParameterGroup(input *CreateParameterGroupInput) (*CreateParameterGroupOutput, error) {
461	req, out := c.CreateParameterGroupRequest(input)
462	return out, req.Send()
463}
464
465// CreateParameterGroupWithContext is the same as CreateParameterGroup with the addition of
466// the ability to pass a context and additional request options.
467//
468// See CreateParameterGroup for details on how to use this API operation.
469//
470// The context must be non-nil and will be used for request cancellation. If
471// the context is nil a panic will occur. In the future the SDK may create
472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
473// for more information on using Contexts.
474func (c *MemoryDB) CreateParameterGroupWithContext(ctx aws.Context, input *CreateParameterGroupInput, opts ...request.Option) (*CreateParameterGroupOutput, error) {
475	req, out := c.CreateParameterGroupRequest(input)
476	req.SetContext(ctx)
477	req.ApplyOptions(opts...)
478	return out, req.Send()
479}
480
481const opCreateSnapshot = "CreateSnapshot"
482
483// CreateSnapshotRequest generates a "aws/request.Request" representing the
484// client's request for the CreateSnapshot operation. The "output" return
485// value will be populated with the request's response once the request completes
486// successfully.
487//
488// Use "Send" method on the returned Request to send the API call to the service.
489// the "output" return value is not valid until after Send returns without error.
490//
491// See CreateSnapshot for more information on using the CreateSnapshot
492// API call, and error handling.
493//
494// This method is useful when you want to inject custom logic or configuration
495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
496//
497//
498//    // Example sending a request using the CreateSnapshotRequest method.
499//    req, resp := client.CreateSnapshotRequest(params)
500//
501//    err := req.Send()
502//    if err == nil { // resp is now filled
503//        fmt.Println(resp)
504//    }
505//
506// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateSnapshot
507func (c *MemoryDB) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
508	op := &request.Operation{
509		Name:       opCreateSnapshot,
510		HTTPMethod: "POST",
511		HTTPPath:   "/",
512	}
513
514	if input == nil {
515		input = &CreateSnapshotInput{}
516	}
517
518	output = &CreateSnapshotOutput{}
519	req = c.newRequest(op, input, output)
520	return
521}
522
523// CreateSnapshot API operation for Amazon MemoryDB.
524//
525// Creates a copy of an entire cluster at a specific moment in time.
526//
527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
528// with awserr.Error's Code and Message methods to get detailed information about
529// the error.
530//
531// See the AWS API reference guide for Amazon MemoryDB's
532// API operation CreateSnapshot for usage and error information.
533//
534// Returned Error Types:
535//   * SnapshotAlreadyExistsFault
536//
537//   * ClusterNotFoundFault
538//
539//   * InvalidClusterStateFault
540//
541//   * SnapshotQuotaExceededFault
542//
543//   * ServiceLinkedRoleNotFoundFault
544//
545//   * InvalidParameterCombinationException
546//
547//   * InvalidParameterValueException
548//
549//   * TagQuotaPerResourceExceeded
550//
551// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateSnapshot
552func (c *MemoryDB) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
553	req, out := c.CreateSnapshotRequest(input)
554	return out, req.Send()
555}
556
557// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
558// the ability to pass a context and additional request options.
559//
560// See CreateSnapshot for details on how to use this API operation.
561//
562// The context must be non-nil and will be used for request cancellation. If
563// the context is nil a panic will occur. In the future the SDK may create
564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
565// for more information on using Contexts.
566func (c *MemoryDB) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
567	req, out := c.CreateSnapshotRequest(input)
568	req.SetContext(ctx)
569	req.ApplyOptions(opts...)
570	return out, req.Send()
571}
572
573const opCreateSubnetGroup = "CreateSubnetGroup"
574
575// CreateSubnetGroupRequest generates a "aws/request.Request" representing the
576// client's request for the CreateSubnetGroup operation. The "output" return
577// value will be populated with the request's response once the request completes
578// successfully.
579//
580// Use "Send" method on the returned Request to send the API call to the service.
581// the "output" return value is not valid until after Send returns without error.
582//
583// See CreateSubnetGroup for more information on using the CreateSubnetGroup
584// API call, and error handling.
585//
586// This method is useful when you want to inject custom logic or configuration
587// into the SDK's request lifecycle. Such as custom headers, or retry logic.
588//
589//
590//    // Example sending a request using the CreateSubnetGroupRequest method.
591//    req, resp := client.CreateSubnetGroupRequest(params)
592//
593//    err := req.Send()
594//    if err == nil { // resp is now filled
595//        fmt.Println(resp)
596//    }
597//
598// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateSubnetGroup
599func (c *MemoryDB) CreateSubnetGroupRequest(input *CreateSubnetGroupInput) (req *request.Request, output *CreateSubnetGroupOutput) {
600	op := &request.Operation{
601		Name:       opCreateSubnetGroup,
602		HTTPMethod: "POST",
603		HTTPPath:   "/",
604	}
605
606	if input == nil {
607		input = &CreateSubnetGroupInput{}
608	}
609
610	output = &CreateSubnetGroupOutput{}
611	req = c.newRequest(op, input, output)
612	return
613}
614
615// CreateSubnetGroup API operation for Amazon MemoryDB.
616//
617// Creates a subnet group. A subnet group is a collection of subnets (typically
618// private) that you can designate for your clusters running in an Amazon Virtual
619// Private Cloud (VPC) environment. When you create a cluster in an Amazon VPC,
620// you must specify a subnet group. MemoryDB uses that subnet group to choose
621// a subnet and IP addresses within that subnet to associate with your nodes.
622// For more information, see Subnets and subnet groups (https://docs.aws.amazon.com/MemoryDB/latest/devguide/subnetgroups.html).
623//
624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
625// with awserr.Error's Code and Message methods to get detailed information about
626// the error.
627//
628// See the AWS API reference guide for Amazon MemoryDB's
629// API operation CreateSubnetGroup for usage and error information.
630//
631// Returned Error Types:
632//   * SubnetGroupAlreadyExistsFault
633//
634//   * SubnetGroupQuotaExceededFault
635//
636//   * SubnetQuotaExceededFault
637//
638//   * InvalidSubnet
639//
640//   * ServiceLinkedRoleNotFoundFault
641//
642//   * SubnetNotAllowedFault
643//
644//   * TagQuotaPerResourceExceeded
645//
646// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateSubnetGroup
647func (c *MemoryDB) CreateSubnetGroup(input *CreateSubnetGroupInput) (*CreateSubnetGroupOutput, error) {
648	req, out := c.CreateSubnetGroupRequest(input)
649	return out, req.Send()
650}
651
652// CreateSubnetGroupWithContext is the same as CreateSubnetGroup with the addition of
653// the ability to pass a context and additional request options.
654//
655// See CreateSubnetGroup for details on how to use this API operation.
656//
657// The context must be non-nil and will be used for request cancellation. If
658// the context is nil a panic will occur. In the future the SDK may create
659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
660// for more information on using Contexts.
661func (c *MemoryDB) CreateSubnetGroupWithContext(ctx aws.Context, input *CreateSubnetGroupInput, opts ...request.Option) (*CreateSubnetGroupOutput, error) {
662	req, out := c.CreateSubnetGroupRequest(input)
663	req.SetContext(ctx)
664	req.ApplyOptions(opts...)
665	return out, req.Send()
666}
667
668const opCreateUser = "CreateUser"
669
670// CreateUserRequest generates a "aws/request.Request" representing the
671// client's request for the CreateUser operation. The "output" return
672// value will be populated with the request's response once the request completes
673// successfully.
674//
675// Use "Send" method on the returned Request to send the API call to the service.
676// the "output" return value is not valid until after Send returns without error.
677//
678// See CreateUser for more information on using the CreateUser
679// API call, and error handling.
680//
681// This method is useful when you want to inject custom logic or configuration
682// into the SDK's request lifecycle. Such as custom headers, or retry logic.
683//
684//
685//    // Example sending a request using the CreateUserRequest method.
686//    req, resp := client.CreateUserRequest(params)
687//
688//    err := req.Send()
689//    if err == nil { // resp is now filled
690//        fmt.Println(resp)
691//    }
692//
693// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateUser
694func (c *MemoryDB) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) {
695	op := &request.Operation{
696		Name:       opCreateUser,
697		HTTPMethod: "POST",
698		HTTPPath:   "/",
699	}
700
701	if input == nil {
702		input = &CreateUserInput{}
703	}
704
705	output = &CreateUserOutput{}
706	req = c.newRequest(op, input, output)
707	return
708}
709
710// CreateUser API operation for Amazon MemoryDB.
711//
712// Creates a MemoryDB user. For more information, see Authenticating users with
713// Access Contol Lists (ACLs) (https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html).
714//
715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
716// with awserr.Error's Code and Message methods to get detailed information about
717// the error.
718//
719// See the AWS API reference guide for Amazon MemoryDB's
720// API operation CreateUser for usage and error information.
721//
722// Returned Error Types:
723//   * UserAlreadyExistsFault
724//
725//   * UserQuotaExceededFault
726//
727//   * DuplicateUserNameFault
728//
729//   * InvalidParameterValueException
730//
731//   * InvalidParameterCombinationException
732//
733//   * TagQuotaPerResourceExceeded
734//
735// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/CreateUser
736func (c *MemoryDB) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) {
737	req, out := c.CreateUserRequest(input)
738	return out, req.Send()
739}
740
741// CreateUserWithContext is the same as CreateUser with the addition of
742// the ability to pass a context and additional request options.
743//
744// See CreateUser for details on how to use this API operation.
745//
746// The context must be non-nil and will be used for request cancellation. If
747// the context is nil a panic will occur. In the future the SDK may create
748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
749// for more information on using Contexts.
750func (c *MemoryDB) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) {
751	req, out := c.CreateUserRequest(input)
752	req.SetContext(ctx)
753	req.ApplyOptions(opts...)
754	return out, req.Send()
755}
756
757const opDeleteACL = "DeleteACL"
758
759// DeleteACLRequest generates a "aws/request.Request" representing the
760// client's request for the DeleteACL operation. The "output" return
761// value will be populated with the request's response once the request completes
762// successfully.
763//
764// Use "Send" method on the returned Request to send the API call to the service.
765// the "output" return value is not valid until after Send returns without error.
766//
767// See DeleteACL for more information on using the DeleteACL
768// API call, and error handling.
769//
770// This method is useful when you want to inject custom logic or configuration
771// into the SDK's request lifecycle. Such as custom headers, or retry logic.
772//
773//
774//    // Example sending a request using the DeleteACLRequest method.
775//    req, resp := client.DeleteACLRequest(params)
776//
777//    err := req.Send()
778//    if err == nil { // resp is now filled
779//        fmt.Println(resp)
780//    }
781//
782// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteACL
783func (c *MemoryDB) DeleteACLRequest(input *DeleteACLInput) (req *request.Request, output *DeleteACLOutput) {
784	op := &request.Operation{
785		Name:       opDeleteACL,
786		HTTPMethod: "POST",
787		HTTPPath:   "/",
788	}
789
790	if input == nil {
791		input = &DeleteACLInput{}
792	}
793
794	output = &DeleteACLOutput{}
795	req = c.newRequest(op, input, output)
796	return
797}
798
799// DeleteACL API operation for Amazon MemoryDB.
800//
801// Deletes an Access Control List. The ACL must first be disassociated from
802// the cluster before it can be deleted. For more information, see Authenticating
803// users with Access Contol Lists (ACLs) (https://docs.aws.amazon.com/MemoryDB/latest/devguide/clusters.acls.html).
804//
805// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
806// with awserr.Error's Code and Message methods to get detailed information about
807// the error.
808//
809// See the AWS API reference guide for Amazon MemoryDB's
810// API operation DeleteACL for usage and error information.
811//
812// Returned Error Types:
813//   * ACLNotFoundFault
814//
815//   * InvalidACLStateFault
816//
817//   * InvalidParameterValueException
818//
819// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteACL
820func (c *MemoryDB) DeleteACL(input *DeleteACLInput) (*DeleteACLOutput, error) {
821	req, out := c.DeleteACLRequest(input)
822	return out, req.Send()
823}
824
825// DeleteACLWithContext is the same as DeleteACL with the addition of
826// the ability to pass a context and additional request options.
827//
828// See DeleteACL for details on how to use this API operation.
829//
830// The context must be non-nil and will be used for request cancellation. If
831// the context is nil a panic will occur. In the future the SDK may create
832// sub-contexts for http.Requests. See https://golang.org/pkg/context/
833// for more information on using Contexts.
834func (c *MemoryDB) DeleteACLWithContext(ctx aws.Context, input *DeleteACLInput, opts ...request.Option) (*DeleteACLOutput, error) {
835	req, out := c.DeleteACLRequest(input)
836	req.SetContext(ctx)
837	req.ApplyOptions(opts...)
838	return out, req.Send()
839}
840
841const opDeleteCluster = "DeleteCluster"
842
843// DeleteClusterRequest generates a "aws/request.Request" representing the
844// client's request for the DeleteCluster operation. The "output" return
845// value will be populated with the request's response once the request completes
846// successfully.
847//
848// Use "Send" method on the returned Request to send the API call to the service.
849// the "output" return value is not valid until after Send returns without error.
850//
851// See DeleteCluster for more information on using the DeleteCluster
852// API call, and error handling.
853//
854// This method is useful when you want to inject custom logic or configuration
855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
856//
857//
858//    // Example sending a request using the DeleteClusterRequest method.
859//    req, resp := client.DeleteClusterRequest(params)
860//
861//    err := req.Send()
862//    if err == nil { // resp is now filled
863//        fmt.Println(resp)
864//    }
865//
866// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteCluster
867func (c *MemoryDB) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) {
868	op := &request.Operation{
869		Name:       opDeleteCluster,
870		HTTPMethod: "POST",
871		HTTPPath:   "/",
872	}
873
874	if input == nil {
875		input = &DeleteClusterInput{}
876	}
877
878	output = &DeleteClusterOutput{}
879	req = c.newRequest(op, input, output)
880	return
881}
882
883// DeleteCluster API operation for Amazon MemoryDB.
884//
885// Deletes a cluster. It also deletes all associated nodes and node endpoints
886//
887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
888// with awserr.Error's Code and Message methods to get detailed information about
889// the error.
890//
891// See the AWS API reference guide for Amazon MemoryDB's
892// API operation DeleteCluster for usage and error information.
893//
894// Returned Error Types:
895//   * ClusterNotFoundFault
896//
897//   * InvalidClusterStateFault
898//
899//   * SnapshotAlreadyExistsFault
900//
901//   * ServiceLinkedRoleNotFoundFault
902//
903//   * InvalidParameterValueException
904//
905//   * InvalidParameterCombinationException
906//
907// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteCluster
908func (c *MemoryDB) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) {
909	req, out := c.DeleteClusterRequest(input)
910	return out, req.Send()
911}
912
913// DeleteClusterWithContext is the same as DeleteCluster with the addition of
914// the ability to pass a context and additional request options.
915//
916// See DeleteCluster for details on how to use this API operation.
917//
918// The context must be non-nil and will be used for request cancellation. If
919// the context is nil a panic will occur. In the future the SDK may create
920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
921// for more information on using Contexts.
922func (c *MemoryDB) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) {
923	req, out := c.DeleteClusterRequest(input)
924	req.SetContext(ctx)
925	req.ApplyOptions(opts...)
926	return out, req.Send()
927}
928
929const opDeleteParameterGroup = "DeleteParameterGroup"
930
931// DeleteParameterGroupRequest generates a "aws/request.Request" representing the
932// client's request for the DeleteParameterGroup operation. The "output" return
933// value will be populated with the request's response once the request completes
934// successfully.
935//
936// Use "Send" method on the returned Request to send the API call to the service.
937// the "output" return value is not valid until after Send returns without error.
938//
939// See DeleteParameterGroup for more information on using the DeleteParameterGroup
940// API call, and error handling.
941//
942// This method is useful when you want to inject custom logic or configuration
943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
944//
945//
946//    // Example sending a request using the DeleteParameterGroupRequest method.
947//    req, resp := client.DeleteParameterGroupRequest(params)
948//
949//    err := req.Send()
950//    if err == nil { // resp is now filled
951//        fmt.Println(resp)
952//    }
953//
954// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteParameterGroup
955func (c *MemoryDB) DeleteParameterGroupRequest(input *DeleteParameterGroupInput) (req *request.Request, output *DeleteParameterGroupOutput) {
956	op := &request.Operation{
957		Name:       opDeleteParameterGroup,
958		HTTPMethod: "POST",
959		HTTPPath:   "/",
960	}
961
962	if input == nil {
963		input = &DeleteParameterGroupInput{}
964	}
965
966	output = &DeleteParameterGroupOutput{}
967	req = c.newRequest(op, input, output)
968	return
969}
970
971// DeleteParameterGroup API operation for Amazon MemoryDB.
972//
973// Deletes the specified parameter group. You cannot delete a parameter group
974// if it is associated with any clusters. You cannot delete the default parameter
975// groups in your account.
976//
977// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
978// with awserr.Error's Code and Message methods to get detailed information about
979// the error.
980//
981// See the AWS API reference guide for Amazon MemoryDB's
982// API operation DeleteParameterGroup for usage and error information.
983//
984// Returned Error Types:
985//   * InvalidParameterGroupStateFault
986//
987//   * ParameterGroupNotFoundFault
988//
989//   * ServiceLinkedRoleNotFoundFault
990//
991//   * InvalidParameterValueException
992//
993//   * InvalidParameterCombinationException
994//
995// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteParameterGroup
996func (c *MemoryDB) DeleteParameterGroup(input *DeleteParameterGroupInput) (*DeleteParameterGroupOutput, error) {
997	req, out := c.DeleteParameterGroupRequest(input)
998	return out, req.Send()
999}
1000
1001// DeleteParameterGroupWithContext is the same as DeleteParameterGroup with the addition of
1002// the ability to pass a context and additional request options.
1003//
1004// See DeleteParameterGroup for details on how to use this API operation.
1005//
1006// The context must be non-nil and will be used for request cancellation. If
1007// the context is nil a panic will occur. In the future the SDK may create
1008// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1009// for more information on using Contexts.
1010func (c *MemoryDB) DeleteParameterGroupWithContext(ctx aws.Context, input *DeleteParameterGroupInput, opts ...request.Option) (*DeleteParameterGroupOutput, error) {
1011	req, out := c.DeleteParameterGroupRequest(input)
1012	req.SetContext(ctx)
1013	req.ApplyOptions(opts...)
1014	return out, req.Send()
1015}
1016
1017const opDeleteSnapshot = "DeleteSnapshot"
1018
1019// DeleteSnapshotRequest generates a "aws/request.Request" representing the
1020// client's request for the DeleteSnapshot operation. The "output" return
1021// value will be populated with the request's response once the request completes
1022// successfully.
1023//
1024// Use "Send" method on the returned Request to send the API call to the service.
1025// the "output" return value is not valid until after Send returns without error.
1026//
1027// See DeleteSnapshot for more information on using the DeleteSnapshot
1028// API call, and error handling.
1029//
1030// This method is useful when you want to inject custom logic or configuration
1031// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1032//
1033//
1034//    // Example sending a request using the DeleteSnapshotRequest method.
1035//    req, resp := client.DeleteSnapshotRequest(params)
1036//
1037//    err := req.Send()
1038//    if err == nil { // resp is now filled
1039//        fmt.Println(resp)
1040//    }
1041//
1042// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteSnapshot
1043func (c *MemoryDB) DeleteSnapshotRequest(input *DeleteSnapshotInput) (req *request.Request, output *DeleteSnapshotOutput) {
1044	op := &request.Operation{
1045		Name:       opDeleteSnapshot,
1046		HTTPMethod: "POST",
1047		HTTPPath:   "/",
1048	}
1049
1050	if input == nil {
1051		input = &DeleteSnapshotInput{}
1052	}
1053
1054	output = &DeleteSnapshotOutput{}
1055	req = c.newRequest(op, input, output)
1056	return
1057}
1058
1059// DeleteSnapshot API operation for Amazon MemoryDB.
1060//
1061// Deletes an existing snapshot. When you receive a successful response from
1062// this operation, MemoryDB immediately begins deleting the snapshot; you cannot
1063// cancel or revert this operation.
1064//
1065// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1066// with awserr.Error's Code and Message methods to get detailed information about
1067// the error.
1068//
1069// See the AWS API reference guide for Amazon MemoryDB's
1070// API operation DeleteSnapshot for usage and error information.
1071//
1072// Returned Error Types:
1073//   * SnapshotNotFoundFault
1074//
1075//   * InvalidSnapshotStateFault
1076//
1077//   * ServiceLinkedRoleNotFoundFault
1078//
1079//   * InvalidParameterValueException
1080//
1081//   * InvalidParameterCombinationException
1082//
1083// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteSnapshot
1084func (c *MemoryDB) DeleteSnapshot(input *DeleteSnapshotInput) (*DeleteSnapshotOutput, error) {
1085	req, out := c.DeleteSnapshotRequest(input)
1086	return out, req.Send()
1087}
1088
1089// DeleteSnapshotWithContext is the same as DeleteSnapshot with the addition of
1090// the ability to pass a context and additional request options.
1091//
1092// See DeleteSnapshot for details on how to use this API operation.
1093//
1094// The context must be non-nil and will be used for request cancellation. If
1095// the context is nil a panic will occur. In the future the SDK may create
1096// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1097// for more information on using Contexts.
1098func (c *MemoryDB) DeleteSnapshotWithContext(ctx aws.Context, input *DeleteSnapshotInput, opts ...request.Option) (*DeleteSnapshotOutput, error) {
1099	req, out := c.DeleteSnapshotRequest(input)
1100	req.SetContext(ctx)
1101	req.ApplyOptions(opts...)
1102	return out, req.Send()
1103}
1104
1105const opDeleteSubnetGroup = "DeleteSubnetGroup"
1106
1107// DeleteSubnetGroupRequest generates a "aws/request.Request" representing the
1108// client's request for the DeleteSubnetGroup operation. The "output" return
1109// value will be populated with the request's response once the request completes
1110// successfully.
1111//
1112// Use "Send" method on the returned Request to send the API call to the service.
1113// the "output" return value is not valid until after Send returns without error.
1114//
1115// See DeleteSubnetGroup for more information on using the DeleteSubnetGroup
1116// API call, and error handling.
1117//
1118// This method is useful when you want to inject custom logic or configuration
1119// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1120//
1121//
1122//    // Example sending a request using the DeleteSubnetGroupRequest method.
1123//    req, resp := client.DeleteSubnetGroupRequest(params)
1124//
1125//    err := req.Send()
1126//    if err == nil { // resp is now filled
1127//        fmt.Println(resp)
1128//    }
1129//
1130// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteSubnetGroup
1131func (c *MemoryDB) DeleteSubnetGroupRequest(input *DeleteSubnetGroupInput) (req *request.Request, output *DeleteSubnetGroupOutput) {
1132	op := &request.Operation{
1133		Name:       opDeleteSubnetGroup,
1134		HTTPMethod: "POST",
1135		HTTPPath:   "/",
1136	}
1137
1138	if input == nil {
1139		input = &DeleteSubnetGroupInput{}
1140	}
1141
1142	output = &DeleteSubnetGroupOutput{}
1143	req = c.newRequest(op, input, output)
1144	return
1145}
1146
1147// DeleteSubnetGroup API operation for Amazon MemoryDB.
1148//
1149// Deletes a subnet group. You cannot delete a default subnet group or one that
1150// is associated with any clusters.
1151//
1152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1153// with awserr.Error's Code and Message methods to get detailed information about
1154// the error.
1155//
1156// See the AWS API reference guide for Amazon MemoryDB's
1157// API operation DeleteSubnetGroup for usage and error information.
1158//
1159// Returned Error Types:
1160//   * SubnetGroupInUseFault
1161//
1162//   * SubnetGroupNotFoundFault
1163//
1164//   * ServiceLinkedRoleNotFoundFault
1165//
1166// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteSubnetGroup
1167func (c *MemoryDB) DeleteSubnetGroup(input *DeleteSubnetGroupInput) (*DeleteSubnetGroupOutput, error) {
1168	req, out := c.DeleteSubnetGroupRequest(input)
1169	return out, req.Send()
1170}
1171
1172// DeleteSubnetGroupWithContext is the same as DeleteSubnetGroup with the addition of
1173// the ability to pass a context and additional request options.
1174//
1175// See DeleteSubnetGroup for details on how to use this API operation.
1176//
1177// The context must be non-nil and will be used for request cancellation. If
1178// the context is nil a panic will occur. In the future the SDK may create
1179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1180// for more information on using Contexts.
1181func (c *MemoryDB) DeleteSubnetGroupWithContext(ctx aws.Context, input *DeleteSubnetGroupInput, opts ...request.Option) (*DeleteSubnetGroupOutput, error) {
1182	req, out := c.DeleteSubnetGroupRequest(input)
1183	req.SetContext(ctx)
1184	req.ApplyOptions(opts...)
1185	return out, req.Send()
1186}
1187
1188const opDeleteUser = "DeleteUser"
1189
1190// DeleteUserRequest generates a "aws/request.Request" representing the
1191// client's request for the DeleteUser operation. The "output" return
1192// value will be populated with the request's response once the request completes
1193// successfully.
1194//
1195// Use "Send" method on the returned Request to send the API call to the service.
1196// the "output" return value is not valid until after Send returns without error.
1197//
1198// See DeleteUser for more information on using the DeleteUser
1199// API call, and error handling.
1200//
1201// This method is useful when you want to inject custom logic or configuration
1202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1203//
1204//
1205//    // Example sending a request using the DeleteUserRequest method.
1206//    req, resp := client.DeleteUserRequest(params)
1207//
1208//    err := req.Send()
1209//    if err == nil { // resp is now filled
1210//        fmt.Println(resp)
1211//    }
1212//
1213// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteUser
1214func (c *MemoryDB) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) {
1215	op := &request.Operation{
1216		Name:       opDeleteUser,
1217		HTTPMethod: "POST",
1218		HTTPPath:   "/",
1219	}
1220
1221	if input == nil {
1222		input = &DeleteUserInput{}
1223	}
1224
1225	output = &DeleteUserOutput{}
1226	req = c.newRequest(op, input, output)
1227	return
1228}
1229
1230// DeleteUser API operation for Amazon MemoryDB.
1231//
1232// Deletes a user. The user will be removed from all ACLs and in turn removed
1233// from all clusters.
1234//
1235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1236// with awserr.Error's Code and Message methods to get detailed information about
1237// the error.
1238//
1239// See the AWS API reference guide for Amazon MemoryDB's
1240// API operation DeleteUser for usage and error information.
1241//
1242// Returned Error Types:
1243//   * InvalidUserStateFault
1244//
1245//   * UserNotFoundFault
1246//
1247//   * InvalidParameterValueException
1248//
1249// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DeleteUser
1250func (c *MemoryDB) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) {
1251	req, out := c.DeleteUserRequest(input)
1252	return out, req.Send()
1253}
1254
1255// DeleteUserWithContext is the same as DeleteUser with the addition of
1256// the ability to pass a context and additional request options.
1257//
1258// See DeleteUser for details on how to use this API operation.
1259//
1260// The context must be non-nil and will be used for request cancellation. If
1261// the context is nil a panic will occur. In the future the SDK may create
1262// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1263// for more information on using Contexts.
1264func (c *MemoryDB) DeleteUserWithContext(ctx aws.Context, input *DeleteUserInput, opts ...request.Option) (*DeleteUserOutput, error) {
1265	req, out := c.DeleteUserRequest(input)
1266	req.SetContext(ctx)
1267	req.ApplyOptions(opts...)
1268	return out, req.Send()
1269}
1270
1271const opDescribeACLs = "DescribeACLs"
1272
1273// DescribeACLsRequest generates a "aws/request.Request" representing the
1274// client's request for the DescribeACLs operation. The "output" return
1275// value will be populated with the request's response once the request completes
1276// successfully.
1277//
1278// Use "Send" method on the returned Request to send the API call to the service.
1279// the "output" return value is not valid until after Send returns without error.
1280//
1281// See DescribeACLs for more information on using the DescribeACLs
1282// API call, and error handling.
1283//
1284// This method is useful when you want to inject custom logic or configuration
1285// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1286//
1287//
1288//    // Example sending a request using the DescribeACLsRequest method.
1289//    req, resp := client.DescribeACLsRequest(params)
1290//
1291//    err := req.Send()
1292//    if err == nil { // resp is now filled
1293//        fmt.Println(resp)
1294//    }
1295//
1296// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeACLs
1297func (c *MemoryDB) DescribeACLsRequest(input *DescribeACLsInput) (req *request.Request, output *DescribeACLsOutput) {
1298	op := &request.Operation{
1299		Name:       opDescribeACLs,
1300		HTTPMethod: "POST",
1301		HTTPPath:   "/",
1302	}
1303
1304	if input == nil {
1305		input = &DescribeACLsInput{}
1306	}
1307
1308	output = &DescribeACLsOutput{}
1309	req = c.newRequest(op, input, output)
1310	return
1311}
1312
1313// DescribeACLs API operation for Amazon MemoryDB.
1314//
1315// Returns a list of ACLs
1316//
1317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1318// with awserr.Error's Code and Message methods to get detailed information about
1319// the error.
1320//
1321// See the AWS API reference guide for Amazon MemoryDB's
1322// API operation DescribeACLs for usage and error information.
1323//
1324// Returned Error Types:
1325//   * ACLNotFoundFault
1326//
1327//   * InvalidParameterCombinationException
1328//
1329// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeACLs
1330func (c *MemoryDB) DescribeACLs(input *DescribeACLsInput) (*DescribeACLsOutput, error) {
1331	req, out := c.DescribeACLsRequest(input)
1332	return out, req.Send()
1333}
1334
1335// DescribeACLsWithContext is the same as DescribeACLs with the addition of
1336// the ability to pass a context and additional request options.
1337//
1338// See DescribeACLs for details on how to use this API operation.
1339//
1340// The context must be non-nil and will be used for request cancellation. If
1341// the context is nil a panic will occur. In the future the SDK may create
1342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1343// for more information on using Contexts.
1344func (c *MemoryDB) DescribeACLsWithContext(ctx aws.Context, input *DescribeACLsInput, opts ...request.Option) (*DescribeACLsOutput, error) {
1345	req, out := c.DescribeACLsRequest(input)
1346	req.SetContext(ctx)
1347	req.ApplyOptions(opts...)
1348	return out, req.Send()
1349}
1350
1351const opDescribeClusters = "DescribeClusters"
1352
1353// DescribeClustersRequest generates a "aws/request.Request" representing the
1354// client's request for the DescribeClusters operation. The "output" return
1355// value will be populated with the request's response once the request completes
1356// successfully.
1357//
1358// Use "Send" method on the returned Request to send the API call to the service.
1359// the "output" return value is not valid until after Send returns without error.
1360//
1361// See DescribeClusters for more information on using the DescribeClusters
1362// API call, and error handling.
1363//
1364// This method is useful when you want to inject custom logic or configuration
1365// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1366//
1367//
1368//    // Example sending a request using the DescribeClustersRequest method.
1369//    req, resp := client.DescribeClustersRequest(params)
1370//
1371//    err := req.Send()
1372//    if err == nil { // resp is now filled
1373//        fmt.Println(resp)
1374//    }
1375//
1376// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeClusters
1377func (c *MemoryDB) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) {
1378	op := &request.Operation{
1379		Name:       opDescribeClusters,
1380		HTTPMethod: "POST",
1381		HTTPPath:   "/",
1382	}
1383
1384	if input == nil {
1385		input = &DescribeClustersInput{}
1386	}
1387
1388	output = &DescribeClustersOutput{}
1389	req = c.newRequest(op, input, output)
1390	return
1391}
1392
1393// DescribeClusters API operation for Amazon MemoryDB.
1394//
1395// Returns information about all provisioned clusters if no cluster identifier
1396// is specified, or about a specific cluster if a cluster name is supplied.
1397//
1398// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1399// with awserr.Error's Code and Message methods to get detailed information about
1400// the error.
1401//
1402// See the AWS API reference guide for Amazon MemoryDB's
1403// API operation DescribeClusters for usage and error information.
1404//
1405// Returned Error Types:
1406//   * ClusterNotFoundFault
1407//
1408//   * ServiceLinkedRoleNotFoundFault
1409//
1410//   * InvalidParameterValueException
1411//
1412//   * InvalidParameterCombinationException
1413//
1414// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeClusters
1415func (c *MemoryDB) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) {
1416	req, out := c.DescribeClustersRequest(input)
1417	return out, req.Send()
1418}
1419
1420// DescribeClustersWithContext is the same as DescribeClusters with the addition of
1421// the ability to pass a context and additional request options.
1422//
1423// See DescribeClusters for details on how to use this API operation.
1424//
1425// The context must be non-nil and will be used for request cancellation. If
1426// the context is nil a panic will occur. In the future the SDK may create
1427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1428// for more information on using Contexts.
1429func (c *MemoryDB) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) {
1430	req, out := c.DescribeClustersRequest(input)
1431	req.SetContext(ctx)
1432	req.ApplyOptions(opts...)
1433	return out, req.Send()
1434}
1435
1436const opDescribeEngineVersions = "DescribeEngineVersions"
1437
1438// DescribeEngineVersionsRequest generates a "aws/request.Request" representing the
1439// client's request for the DescribeEngineVersions operation. The "output" return
1440// value will be populated with the request's response once the request completes
1441// successfully.
1442//
1443// Use "Send" method on the returned Request to send the API call to the service.
1444// the "output" return value is not valid until after Send returns without error.
1445//
1446// See DescribeEngineVersions for more information on using the DescribeEngineVersions
1447// API call, and error handling.
1448//
1449// This method is useful when you want to inject custom logic or configuration
1450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1451//
1452//
1453//    // Example sending a request using the DescribeEngineVersionsRequest method.
1454//    req, resp := client.DescribeEngineVersionsRequest(params)
1455//
1456//    err := req.Send()
1457//    if err == nil { // resp is now filled
1458//        fmt.Println(resp)
1459//    }
1460//
1461// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeEngineVersions
1462func (c *MemoryDB) DescribeEngineVersionsRequest(input *DescribeEngineVersionsInput) (req *request.Request, output *DescribeEngineVersionsOutput) {
1463	op := &request.Operation{
1464		Name:       opDescribeEngineVersions,
1465		HTTPMethod: "POST",
1466		HTTPPath:   "/",
1467	}
1468
1469	if input == nil {
1470		input = &DescribeEngineVersionsInput{}
1471	}
1472
1473	output = &DescribeEngineVersionsOutput{}
1474	req = c.newRequest(op, input, output)
1475	return
1476}
1477
1478// DescribeEngineVersions API operation for Amazon MemoryDB.
1479//
1480// Returns a list of the available Redis engine versions.
1481//
1482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1483// with awserr.Error's Code and Message methods to get detailed information about
1484// the error.
1485//
1486// See the AWS API reference guide for Amazon MemoryDB's
1487// API operation DescribeEngineVersions for usage and error information.
1488//
1489// Returned Error Types:
1490//   * ServiceLinkedRoleNotFoundFault
1491//
1492//   * InvalidParameterValueException
1493//
1494//   * InvalidParameterCombinationException
1495//
1496// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeEngineVersions
1497func (c *MemoryDB) DescribeEngineVersions(input *DescribeEngineVersionsInput) (*DescribeEngineVersionsOutput, error) {
1498	req, out := c.DescribeEngineVersionsRequest(input)
1499	return out, req.Send()
1500}
1501
1502// DescribeEngineVersionsWithContext is the same as DescribeEngineVersions with the addition of
1503// the ability to pass a context and additional request options.
1504//
1505// See DescribeEngineVersions for details on how to use this API operation.
1506//
1507// The context must be non-nil and will be used for request cancellation. If
1508// the context is nil a panic will occur. In the future the SDK may create
1509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1510// for more information on using Contexts.
1511func (c *MemoryDB) DescribeEngineVersionsWithContext(ctx aws.Context, input *DescribeEngineVersionsInput, opts ...request.Option) (*DescribeEngineVersionsOutput, error) {
1512	req, out := c.DescribeEngineVersionsRequest(input)
1513	req.SetContext(ctx)
1514	req.ApplyOptions(opts...)
1515	return out, req.Send()
1516}
1517
1518const opDescribeEvents = "DescribeEvents"
1519
1520// DescribeEventsRequest generates a "aws/request.Request" representing the
1521// client's request for the DescribeEvents operation. The "output" return
1522// value will be populated with the request's response once the request completes
1523// successfully.
1524//
1525// Use "Send" method on the returned Request to send the API call to the service.
1526// the "output" return value is not valid until after Send returns without error.
1527//
1528// See DescribeEvents for more information on using the DescribeEvents
1529// API call, and error handling.
1530//
1531// This method is useful when you want to inject custom logic or configuration
1532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1533//
1534//
1535//    // Example sending a request using the DescribeEventsRequest method.
1536//    req, resp := client.DescribeEventsRequest(params)
1537//
1538//    err := req.Send()
1539//    if err == nil { // resp is now filled
1540//        fmt.Println(resp)
1541//    }
1542//
1543// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeEvents
1544func (c *MemoryDB) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) {
1545	op := &request.Operation{
1546		Name:       opDescribeEvents,
1547		HTTPMethod: "POST",
1548		HTTPPath:   "/",
1549	}
1550
1551	if input == nil {
1552		input = &DescribeEventsInput{}
1553	}
1554
1555	output = &DescribeEventsOutput{}
1556	req = c.newRequest(op, input, output)
1557	return
1558}
1559
1560// DescribeEvents API operation for Amazon MemoryDB.
1561//
1562// Returns events related to clusters, security groups, and parameter groups.
1563// You can obtain events specific to a particular cluster, security group, or
1564// parameter group by providing the name as a parameter. By default, only the
1565// events occurring within the last hour are returned; however, you can retrieve
1566// up to 14 days' worth of events if necessary.
1567//
1568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1569// with awserr.Error's Code and Message methods to get detailed information about
1570// the error.
1571//
1572// See the AWS API reference guide for Amazon MemoryDB's
1573// API operation DescribeEvents for usage and error information.
1574//
1575// Returned Error Types:
1576//   * ServiceLinkedRoleNotFoundFault
1577//
1578//   * InvalidParameterValueException
1579//
1580//   * InvalidParameterCombinationException
1581//
1582// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeEvents
1583func (c *MemoryDB) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) {
1584	req, out := c.DescribeEventsRequest(input)
1585	return out, req.Send()
1586}
1587
1588// DescribeEventsWithContext is the same as DescribeEvents with the addition of
1589// the ability to pass a context and additional request options.
1590//
1591// See DescribeEvents for details on how to use this API operation.
1592//
1593// The context must be non-nil and will be used for request cancellation. If
1594// the context is nil a panic will occur. In the future the SDK may create
1595// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1596// for more information on using Contexts.
1597func (c *MemoryDB) DescribeEventsWithContext(ctx aws.Context, input *DescribeEventsInput, opts ...request.Option) (*DescribeEventsOutput, error) {
1598	req, out := c.DescribeEventsRequest(input)
1599	req.SetContext(ctx)
1600	req.ApplyOptions(opts...)
1601	return out, req.Send()
1602}
1603
1604const opDescribeParameterGroups = "DescribeParameterGroups"
1605
1606// DescribeParameterGroupsRequest generates a "aws/request.Request" representing the
1607// client's request for the DescribeParameterGroups operation. The "output" return
1608// value will be populated with the request's response once the request completes
1609// successfully.
1610//
1611// Use "Send" method on the returned Request to send the API call to the service.
1612// the "output" return value is not valid until after Send returns without error.
1613//
1614// See DescribeParameterGroups for more information on using the DescribeParameterGroups
1615// API call, and error handling.
1616//
1617// This method is useful when you want to inject custom logic or configuration
1618// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1619//
1620//
1621//    // Example sending a request using the DescribeParameterGroupsRequest method.
1622//    req, resp := client.DescribeParameterGroupsRequest(params)
1623//
1624//    err := req.Send()
1625//    if err == nil { // resp is now filled
1626//        fmt.Println(resp)
1627//    }
1628//
1629// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeParameterGroups
1630func (c *MemoryDB) DescribeParameterGroupsRequest(input *DescribeParameterGroupsInput) (req *request.Request, output *DescribeParameterGroupsOutput) {
1631	op := &request.Operation{
1632		Name:       opDescribeParameterGroups,
1633		HTTPMethod: "POST",
1634		HTTPPath:   "/",
1635	}
1636
1637	if input == nil {
1638		input = &DescribeParameterGroupsInput{}
1639	}
1640
1641	output = &DescribeParameterGroupsOutput{}
1642	req = c.newRequest(op, input, output)
1643	return
1644}
1645
1646// DescribeParameterGroups API operation for Amazon MemoryDB.
1647//
1648// Returns a list of parameter group descriptions. If a parameter group name
1649// is specified, the list contains only the descriptions for that group.
1650//
1651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1652// with awserr.Error's Code and Message methods to get detailed information about
1653// the error.
1654//
1655// See the AWS API reference guide for Amazon MemoryDB's
1656// API operation DescribeParameterGroups for usage and error information.
1657//
1658// Returned Error Types:
1659//   * ParameterGroupNotFoundFault
1660//
1661//   * ServiceLinkedRoleNotFoundFault
1662//
1663//   * InvalidParameterValueException
1664//
1665//   * InvalidParameterCombinationException
1666//
1667// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeParameterGroups
1668func (c *MemoryDB) DescribeParameterGroups(input *DescribeParameterGroupsInput) (*DescribeParameterGroupsOutput, error) {
1669	req, out := c.DescribeParameterGroupsRequest(input)
1670	return out, req.Send()
1671}
1672
1673// DescribeParameterGroupsWithContext is the same as DescribeParameterGroups with the addition of
1674// the ability to pass a context and additional request options.
1675//
1676// See DescribeParameterGroups for details on how to use this API operation.
1677//
1678// The context must be non-nil and will be used for request cancellation. If
1679// the context is nil a panic will occur. In the future the SDK may create
1680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1681// for more information on using Contexts.
1682func (c *MemoryDB) DescribeParameterGroupsWithContext(ctx aws.Context, input *DescribeParameterGroupsInput, opts ...request.Option) (*DescribeParameterGroupsOutput, error) {
1683	req, out := c.DescribeParameterGroupsRequest(input)
1684	req.SetContext(ctx)
1685	req.ApplyOptions(opts...)
1686	return out, req.Send()
1687}
1688
1689const opDescribeParameters = "DescribeParameters"
1690
1691// DescribeParametersRequest generates a "aws/request.Request" representing the
1692// client's request for the DescribeParameters operation. The "output" return
1693// value will be populated with the request's response once the request completes
1694// successfully.
1695//
1696// Use "Send" method on the returned Request to send the API call to the service.
1697// the "output" return value is not valid until after Send returns without error.
1698//
1699// See DescribeParameters for more information on using the DescribeParameters
1700// API call, and error handling.
1701//
1702// This method is useful when you want to inject custom logic or configuration
1703// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1704//
1705//
1706//    // Example sending a request using the DescribeParametersRequest method.
1707//    req, resp := client.DescribeParametersRequest(params)
1708//
1709//    err := req.Send()
1710//    if err == nil { // resp is now filled
1711//        fmt.Println(resp)
1712//    }
1713//
1714// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeParameters
1715func (c *MemoryDB) DescribeParametersRequest(input *DescribeParametersInput) (req *request.Request, output *DescribeParametersOutput) {
1716	op := &request.Operation{
1717		Name:       opDescribeParameters,
1718		HTTPMethod: "POST",
1719		HTTPPath:   "/",
1720	}
1721
1722	if input == nil {
1723		input = &DescribeParametersInput{}
1724	}
1725
1726	output = &DescribeParametersOutput{}
1727	req = c.newRequest(op, input, output)
1728	return
1729}
1730
1731// DescribeParameters API operation for Amazon MemoryDB.
1732//
1733// Returns the detailed parameter list for a particular parameter group.
1734//
1735// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1736// with awserr.Error's Code and Message methods to get detailed information about
1737// the error.
1738//
1739// See the AWS API reference guide for Amazon MemoryDB's
1740// API operation DescribeParameters for usage and error information.
1741//
1742// Returned Error Types:
1743//   * ParameterGroupNotFoundFault
1744//
1745//   * ServiceLinkedRoleNotFoundFault
1746//
1747//   * InvalidParameterValueException
1748//
1749//   * InvalidParameterCombinationException
1750//
1751// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeParameters
1752func (c *MemoryDB) DescribeParameters(input *DescribeParametersInput) (*DescribeParametersOutput, error) {
1753	req, out := c.DescribeParametersRequest(input)
1754	return out, req.Send()
1755}
1756
1757// DescribeParametersWithContext is the same as DescribeParameters with the addition of
1758// the ability to pass a context and additional request options.
1759//
1760// See DescribeParameters for details on how to use this API operation.
1761//
1762// The context must be non-nil and will be used for request cancellation. If
1763// the context is nil a panic will occur. In the future the SDK may create
1764// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1765// for more information on using Contexts.
1766func (c *MemoryDB) DescribeParametersWithContext(ctx aws.Context, input *DescribeParametersInput, opts ...request.Option) (*DescribeParametersOutput, error) {
1767	req, out := c.DescribeParametersRequest(input)
1768	req.SetContext(ctx)
1769	req.ApplyOptions(opts...)
1770	return out, req.Send()
1771}
1772
1773const opDescribeServiceUpdates = "DescribeServiceUpdates"
1774
1775// DescribeServiceUpdatesRequest generates a "aws/request.Request" representing the
1776// client's request for the DescribeServiceUpdates operation. The "output" return
1777// value will be populated with the request's response once the request completes
1778// successfully.
1779//
1780// Use "Send" method on the returned Request to send the API call to the service.
1781// the "output" return value is not valid until after Send returns without error.
1782//
1783// See DescribeServiceUpdates for more information on using the DescribeServiceUpdates
1784// API call, and error handling.
1785//
1786// This method is useful when you want to inject custom logic or configuration
1787// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1788//
1789//
1790//    // Example sending a request using the DescribeServiceUpdatesRequest method.
1791//    req, resp := client.DescribeServiceUpdatesRequest(params)
1792//
1793//    err := req.Send()
1794//    if err == nil { // resp is now filled
1795//        fmt.Println(resp)
1796//    }
1797//
1798// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeServiceUpdates
1799func (c *MemoryDB) DescribeServiceUpdatesRequest(input *DescribeServiceUpdatesInput) (req *request.Request, output *DescribeServiceUpdatesOutput) {
1800	op := &request.Operation{
1801		Name:       opDescribeServiceUpdates,
1802		HTTPMethod: "POST",
1803		HTTPPath:   "/",
1804	}
1805
1806	if input == nil {
1807		input = &DescribeServiceUpdatesInput{}
1808	}
1809
1810	output = &DescribeServiceUpdatesOutput{}
1811	req = c.newRequest(op, input, output)
1812	return
1813}
1814
1815// DescribeServiceUpdates API operation for Amazon MemoryDB.
1816//
1817// Returns details of the service updates
1818//
1819// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1820// with awserr.Error's Code and Message methods to get detailed information about
1821// the error.
1822//
1823// See the AWS API reference guide for Amazon MemoryDB's
1824// API operation DescribeServiceUpdates for usage and error information.
1825//
1826// Returned Error Types:
1827//   * InvalidParameterValueException
1828//
1829//   * InvalidParameterCombinationException
1830//
1831// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeServiceUpdates
1832func (c *MemoryDB) DescribeServiceUpdates(input *DescribeServiceUpdatesInput) (*DescribeServiceUpdatesOutput, error) {
1833	req, out := c.DescribeServiceUpdatesRequest(input)
1834	return out, req.Send()
1835}
1836
1837// DescribeServiceUpdatesWithContext is the same as DescribeServiceUpdates with the addition of
1838// the ability to pass a context and additional request options.
1839//
1840// See DescribeServiceUpdates for details on how to use this API operation.
1841//
1842// The context must be non-nil and will be used for request cancellation. If
1843// the context is nil a panic will occur. In the future the SDK may create
1844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1845// for more information on using Contexts.
1846func (c *MemoryDB) DescribeServiceUpdatesWithContext(ctx aws.Context, input *DescribeServiceUpdatesInput, opts ...request.Option) (*DescribeServiceUpdatesOutput, error) {
1847	req, out := c.DescribeServiceUpdatesRequest(input)
1848	req.SetContext(ctx)
1849	req.ApplyOptions(opts...)
1850	return out, req.Send()
1851}
1852
1853const opDescribeSnapshots = "DescribeSnapshots"
1854
1855// DescribeSnapshotsRequest generates a "aws/request.Request" representing the
1856// client's request for the DescribeSnapshots operation. The "output" return
1857// value will be populated with the request's response once the request completes
1858// successfully.
1859//
1860// Use "Send" method on the returned Request to send the API call to the service.
1861// the "output" return value is not valid until after Send returns without error.
1862//
1863// See DescribeSnapshots for more information on using the DescribeSnapshots
1864// API call, and error handling.
1865//
1866// This method is useful when you want to inject custom logic or configuration
1867// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1868//
1869//
1870//    // Example sending a request using the DescribeSnapshotsRequest method.
1871//    req, resp := client.DescribeSnapshotsRequest(params)
1872//
1873//    err := req.Send()
1874//    if err == nil { // resp is now filled
1875//        fmt.Println(resp)
1876//    }
1877//
1878// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeSnapshots
1879func (c *MemoryDB) DescribeSnapshotsRequest(input *DescribeSnapshotsInput) (req *request.Request, output *DescribeSnapshotsOutput) {
1880	op := &request.Operation{
1881		Name:       opDescribeSnapshots,
1882		HTTPMethod: "POST",
1883		HTTPPath:   "/",
1884	}
1885
1886	if input == nil {
1887		input = &DescribeSnapshotsInput{}
1888	}
1889
1890	output = &DescribeSnapshotsOutput{}
1891	req = c.newRequest(op, input, output)
1892	return
1893}
1894
1895// DescribeSnapshots API operation for Amazon MemoryDB.
1896//
1897// Returns information about cluster snapshots. By default, DescribeSnapshots
1898// lists all of your snapshots; it can optionally describe a single snapshot,
1899// or just the snapshots associated with a particular cluster.
1900//
1901// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1902// with awserr.Error's Code and Message methods to get detailed information about
1903// the error.
1904//
1905// See the AWS API reference guide for Amazon MemoryDB's
1906// API operation DescribeSnapshots for usage and error information.
1907//
1908// Returned Error Types:
1909//   * SnapshotNotFoundFault
1910//
1911//   * ServiceLinkedRoleNotFoundFault
1912//
1913//   * InvalidParameterValueException
1914//
1915//   * InvalidParameterCombinationException
1916//
1917// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeSnapshots
1918func (c *MemoryDB) DescribeSnapshots(input *DescribeSnapshotsInput) (*DescribeSnapshotsOutput, error) {
1919	req, out := c.DescribeSnapshotsRequest(input)
1920	return out, req.Send()
1921}
1922
1923// DescribeSnapshotsWithContext is the same as DescribeSnapshots with the addition of
1924// the ability to pass a context and additional request options.
1925//
1926// See DescribeSnapshots for details on how to use this API operation.
1927//
1928// The context must be non-nil and will be used for request cancellation. If
1929// the context is nil a panic will occur. In the future the SDK may create
1930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1931// for more information on using Contexts.
1932func (c *MemoryDB) DescribeSnapshotsWithContext(ctx aws.Context, input *DescribeSnapshotsInput, opts ...request.Option) (*DescribeSnapshotsOutput, error) {
1933	req, out := c.DescribeSnapshotsRequest(input)
1934	req.SetContext(ctx)
1935	req.ApplyOptions(opts...)
1936	return out, req.Send()
1937}
1938
1939const opDescribeSubnetGroups = "DescribeSubnetGroups"
1940
1941// DescribeSubnetGroupsRequest generates a "aws/request.Request" representing the
1942// client's request for the DescribeSubnetGroups operation. The "output" return
1943// value will be populated with the request's response once the request completes
1944// successfully.
1945//
1946// Use "Send" method on the returned Request to send the API call to the service.
1947// the "output" return value is not valid until after Send returns without error.
1948//
1949// See DescribeSubnetGroups for more information on using the DescribeSubnetGroups
1950// API call, and error handling.
1951//
1952// This method is useful when you want to inject custom logic or configuration
1953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1954//
1955//
1956//    // Example sending a request using the DescribeSubnetGroupsRequest method.
1957//    req, resp := client.DescribeSubnetGroupsRequest(params)
1958//
1959//    err := req.Send()
1960//    if err == nil { // resp is now filled
1961//        fmt.Println(resp)
1962//    }
1963//
1964// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeSubnetGroups
1965func (c *MemoryDB) DescribeSubnetGroupsRequest(input *DescribeSubnetGroupsInput) (req *request.Request, output *DescribeSubnetGroupsOutput) {
1966	op := &request.Operation{
1967		Name:       opDescribeSubnetGroups,
1968		HTTPMethod: "POST",
1969		HTTPPath:   "/",
1970	}
1971
1972	if input == nil {
1973		input = &DescribeSubnetGroupsInput{}
1974	}
1975
1976	output = &DescribeSubnetGroupsOutput{}
1977	req = c.newRequest(op, input, output)
1978	return
1979}
1980
1981// DescribeSubnetGroups API operation for Amazon MemoryDB.
1982//
1983// Returns a list of subnet group descriptions. If a subnet group name is specified,
1984// the list contains only the description of that group.
1985//
1986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1987// with awserr.Error's Code and Message methods to get detailed information about
1988// the error.
1989//
1990// See the AWS API reference guide for Amazon MemoryDB's
1991// API operation DescribeSubnetGroups for usage and error information.
1992//
1993// Returned Error Types:
1994//   * SubnetGroupNotFoundFault
1995//
1996//   * ServiceLinkedRoleNotFoundFault
1997//
1998// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeSubnetGroups
1999func (c *MemoryDB) DescribeSubnetGroups(input *DescribeSubnetGroupsInput) (*DescribeSubnetGroupsOutput, error) {
2000	req, out := c.DescribeSubnetGroupsRequest(input)
2001	return out, req.Send()
2002}
2003
2004// DescribeSubnetGroupsWithContext is the same as DescribeSubnetGroups with the addition of
2005// the ability to pass a context and additional request options.
2006//
2007// See DescribeSubnetGroups for details on how to use this API operation.
2008//
2009// The context must be non-nil and will be used for request cancellation. If
2010// the context is nil a panic will occur. In the future the SDK may create
2011// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2012// for more information on using Contexts.
2013func (c *MemoryDB) DescribeSubnetGroupsWithContext(ctx aws.Context, input *DescribeSubnetGroupsInput, opts ...request.Option) (*DescribeSubnetGroupsOutput, error) {
2014	req, out := c.DescribeSubnetGroupsRequest(input)
2015	req.SetContext(ctx)
2016	req.ApplyOptions(opts...)
2017	return out, req.Send()
2018}
2019
2020const opDescribeUsers = "DescribeUsers"
2021
2022// DescribeUsersRequest generates a "aws/request.Request" representing the
2023// client's request for the DescribeUsers operation. The "output" return
2024// value will be populated with the request's response once the request completes
2025// successfully.
2026//
2027// Use "Send" method on the returned Request to send the API call to the service.
2028// the "output" return value is not valid until after Send returns without error.
2029//
2030// See DescribeUsers for more information on using the DescribeUsers
2031// API call, and error handling.
2032//
2033// This method is useful when you want to inject custom logic or configuration
2034// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2035//
2036//
2037//    // Example sending a request using the DescribeUsersRequest method.
2038//    req, resp := client.DescribeUsersRequest(params)
2039//
2040//    err := req.Send()
2041//    if err == nil { // resp is now filled
2042//        fmt.Println(resp)
2043//    }
2044//
2045// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeUsers
2046func (c *MemoryDB) DescribeUsersRequest(input *DescribeUsersInput) (req *request.Request, output *DescribeUsersOutput) {
2047	op := &request.Operation{
2048		Name:       opDescribeUsers,
2049		HTTPMethod: "POST",
2050		HTTPPath:   "/",
2051	}
2052
2053	if input == nil {
2054		input = &DescribeUsersInput{}
2055	}
2056
2057	output = &DescribeUsersOutput{}
2058	req = c.newRequest(op, input, output)
2059	return
2060}
2061
2062// DescribeUsers API operation for Amazon MemoryDB.
2063//
2064// Returns a list of users.
2065//
2066// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2067// with awserr.Error's Code and Message methods to get detailed information about
2068// the error.
2069//
2070// See the AWS API reference guide for Amazon MemoryDB's
2071// API operation DescribeUsers for usage and error information.
2072//
2073// Returned Error Types:
2074//   * UserNotFoundFault
2075//
2076//   * InvalidParameterCombinationException
2077//
2078// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/DescribeUsers
2079func (c *MemoryDB) DescribeUsers(input *DescribeUsersInput) (*DescribeUsersOutput, error) {
2080	req, out := c.DescribeUsersRequest(input)
2081	return out, req.Send()
2082}
2083
2084// DescribeUsersWithContext is the same as DescribeUsers with the addition of
2085// the ability to pass a context and additional request options.
2086//
2087// See DescribeUsers for details on how to use this API operation.
2088//
2089// The context must be non-nil and will be used for request cancellation. If
2090// the context is nil a panic will occur. In the future the SDK may create
2091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2092// for more information on using Contexts.
2093func (c *MemoryDB) DescribeUsersWithContext(ctx aws.Context, input *DescribeUsersInput, opts ...request.Option) (*DescribeUsersOutput, error) {
2094	req, out := c.DescribeUsersRequest(input)
2095	req.SetContext(ctx)
2096	req.ApplyOptions(opts...)
2097	return out, req.Send()
2098}
2099
2100const opFailoverShard = "FailoverShard"
2101
2102// FailoverShardRequest generates a "aws/request.Request" representing the
2103// client's request for the FailoverShard operation. The "output" return
2104// value will be populated with the request's response once the request completes
2105// successfully.
2106//
2107// Use "Send" method on the returned Request to send the API call to the service.
2108// the "output" return value is not valid until after Send returns without error.
2109//
2110// See FailoverShard for more information on using the FailoverShard
2111// API call, and error handling.
2112//
2113// This method is useful when you want to inject custom logic or configuration
2114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2115//
2116//
2117//    // Example sending a request using the FailoverShardRequest method.
2118//    req, resp := client.FailoverShardRequest(params)
2119//
2120//    err := req.Send()
2121//    if err == nil { // resp is now filled
2122//        fmt.Println(resp)
2123//    }
2124//
2125// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/FailoverShard
2126func (c *MemoryDB) FailoverShardRequest(input *FailoverShardInput) (req *request.Request, output *FailoverShardOutput) {
2127	op := &request.Operation{
2128		Name:       opFailoverShard,
2129		HTTPMethod: "POST",
2130		HTTPPath:   "/",
2131	}
2132
2133	if input == nil {
2134		input = &FailoverShardInput{}
2135	}
2136
2137	output = &FailoverShardOutput{}
2138	req = c.newRequest(op, input, output)
2139	return
2140}
2141
2142// FailoverShard API operation for Amazon MemoryDB.
2143//
2144// Used to failover a shard
2145//
2146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2147// with awserr.Error's Code and Message methods to get detailed information about
2148// the error.
2149//
2150// See the AWS API reference guide for Amazon MemoryDB's
2151// API operation FailoverShard for usage and error information.
2152//
2153// Returned Error Types:
2154//   * APICallRateForCustomerExceededFault
2155//
2156//   * InvalidClusterStateFault
2157//
2158//   * ShardNotFoundFault
2159//
2160//   * ClusterNotFoundFault
2161//
2162//   * TestFailoverNotAvailableFault
2163//
2164//   * InvalidKMSKeyFault
2165//
2166//   * InvalidParameterValueException
2167//
2168//   * InvalidParameterCombinationException
2169//
2170// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/FailoverShard
2171func (c *MemoryDB) FailoverShard(input *FailoverShardInput) (*FailoverShardOutput, error) {
2172	req, out := c.FailoverShardRequest(input)
2173	return out, req.Send()
2174}
2175
2176// FailoverShardWithContext is the same as FailoverShard with the addition of
2177// the ability to pass a context and additional request options.
2178//
2179// See FailoverShard for details on how to use this API operation.
2180//
2181// The context must be non-nil and will be used for request cancellation. If
2182// the context is nil a panic will occur. In the future the SDK may create
2183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2184// for more information on using Contexts.
2185func (c *MemoryDB) FailoverShardWithContext(ctx aws.Context, input *FailoverShardInput, opts ...request.Option) (*FailoverShardOutput, error) {
2186	req, out := c.FailoverShardRequest(input)
2187	req.SetContext(ctx)
2188	req.ApplyOptions(opts...)
2189	return out, req.Send()
2190}
2191
2192const opListAllowedNodeTypeUpdates = "ListAllowedNodeTypeUpdates"
2193
2194// ListAllowedNodeTypeUpdatesRequest generates a "aws/request.Request" representing the
2195// client's request for the ListAllowedNodeTypeUpdates operation. The "output" return
2196// value will be populated with the request's response once the request completes
2197// successfully.
2198//
2199// Use "Send" method on the returned Request to send the API call to the service.
2200// the "output" return value is not valid until after Send returns without error.
2201//
2202// See ListAllowedNodeTypeUpdates for more information on using the ListAllowedNodeTypeUpdates
2203// API call, and error handling.
2204//
2205// This method is useful when you want to inject custom logic or configuration
2206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2207//
2208//
2209//    // Example sending a request using the ListAllowedNodeTypeUpdatesRequest method.
2210//    req, resp := client.ListAllowedNodeTypeUpdatesRequest(params)
2211//
2212//    err := req.Send()
2213//    if err == nil { // resp is now filled
2214//        fmt.Println(resp)
2215//    }
2216//
2217// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ListAllowedNodeTypeUpdates
2218func (c *MemoryDB) ListAllowedNodeTypeUpdatesRequest(input *ListAllowedNodeTypeUpdatesInput) (req *request.Request, output *ListAllowedNodeTypeUpdatesOutput) {
2219	op := &request.Operation{
2220		Name:       opListAllowedNodeTypeUpdates,
2221		HTTPMethod: "POST",
2222		HTTPPath:   "/",
2223	}
2224
2225	if input == nil {
2226		input = &ListAllowedNodeTypeUpdatesInput{}
2227	}
2228
2229	output = &ListAllowedNodeTypeUpdatesOutput{}
2230	req = c.newRequest(op, input, output)
2231	return
2232}
2233
2234// ListAllowedNodeTypeUpdates API operation for Amazon MemoryDB.
2235//
2236// Lists all available node types that you can scale to from your cluster's
2237// current node type. When you use the UpdateCluster operation to scale your
2238// cluster, the value of the NodeType parameter must be one of the node types
2239// returned by this operation.
2240//
2241// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2242// with awserr.Error's Code and Message methods to get detailed information about
2243// the error.
2244//
2245// See the AWS API reference guide for Amazon MemoryDB's
2246// API operation ListAllowedNodeTypeUpdates for usage and error information.
2247//
2248// Returned Error Types:
2249//   * ClusterNotFoundFault
2250//
2251//   * ServiceLinkedRoleNotFoundFault
2252//
2253//   * InvalidParameterCombinationException
2254//
2255//   * InvalidParameterValueException
2256//
2257// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ListAllowedNodeTypeUpdates
2258func (c *MemoryDB) ListAllowedNodeTypeUpdates(input *ListAllowedNodeTypeUpdatesInput) (*ListAllowedNodeTypeUpdatesOutput, error) {
2259	req, out := c.ListAllowedNodeTypeUpdatesRequest(input)
2260	return out, req.Send()
2261}
2262
2263// ListAllowedNodeTypeUpdatesWithContext is the same as ListAllowedNodeTypeUpdates with the addition of
2264// the ability to pass a context and additional request options.
2265//
2266// See ListAllowedNodeTypeUpdates for details on how to use this API operation.
2267//
2268// The context must be non-nil and will be used for request cancellation. If
2269// the context is nil a panic will occur. In the future the SDK may create
2270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2271// for more information on using Contexts.
2272func (c *MemoryDB) ListAllowedNodeTypeUpdatesWithContext(ctx aws.Context, input *ListAllowedNodeTypeUpdatesInput, opts ...request.Option) (*ListAllowedNodeTypeUpdatesOutput, error) {
2273	req, out := c.ListAllowedNodeTypeUpdatesRequest(input)
2274	req.SetContext(ctx)
2275	req.ApplyOptions(opts...)
2276	return out, req.Send()
2277}
2278
2279const opListTags = "ListTags"
2280
2281// ListTagsRequest generates a "aws/request.Request" representing the
2282// client's request for the ListTags operation. The "output" return
2283// value will be populated with the request's response once the request completes
2284// successfully.
2285//
2286// Use "Send" method on the returned Request to send the API call to the service.
2287// the "output" return value is not valid until after Send returns without error.
2288//
2289// See ListTags for more information on using the ListTags
2290// API call, and error handling.
2291//
2292// This method is useful when you want to inject custom logic or configuration
2293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2294//
2295//
2296//    // Example sending a request using the ListTagsRequest method.
2297//    req, resp := client.ListTagsRequest(params)
2298//
2299//    err := req.Send()
2300//    if err == nil { // resp is now filled
2301//        fmt.Println(resp)
2302//    }
2303//
2304// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ListTags
2305func (c *MemoryDB) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
2306	op := &request.Operation{
2307		Name:       opListTags,
2308		HTTPMethod: "POST",
2309		HTTPPath:   "/",
2310	}
2311
2312	if input == nil {
2313		input = &ListTagsInput{}
2314	}
2315
2316	output = &ListTagsOutput{}
2317	req = c.newRequest(op, input, output)
2318	return
2319}
2320
2321// ListTags API operation for Amazon MemoryDB.
2322//
2323// Lists all tags currently on a named resource. A tag is a key-value pair where
2324// the key and value are case-sensitive. You can use tags to categorize and
2325// track your MemoryDB resources. For more information, see Tagging your MemoryDB
2326// resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/Tagging-Resources.html)
2327//
2328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2329// with awserr.Error's Code and Message methods to get detailed information about
2330// the error.
2331//
2332// See the AWS API reference guide for Amazon MemoryDB's
2333// API operation ListTags for usage and error information.
2334//
2335// Returned Error Types:
2336//   * ClusterNotFoundFault
2337//
2338//   * InvalidClusterStateFault
2339//
2340//   * ParameterGroupNotFoundFault
2341//
2342//   * SubnetGroupNotFoundFault
2343//
2344//   * SnapshotNotFoundFault
2345//
2346//   * InvalidARNFault
2347//
2348//   * ServiceLinkedRoleNotFoundFault
2349//
2350//   * UserNotFoundFault
2351//
2352//   * ACLNotFoundFault
2353//
2354// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ListTags
2355func (c *MemoryDB) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
2356	req, out := c.ListTagsRequest(input)
2357	return out, req.Send()
2358}
2359
2360// ListTagsWithContext is the same as ListTags with the addition of
2361// the ability to pass a context and additional request options.
2362//
2363// See ListTags for details on how to use this API operation.
2364//
2365// The context must be non-nil and will be used for request cancellation. If
2366// the context is nil a panic will occur. In the future the SDK may create
2367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2368// for more information on using Contexts.
2369func (c *MemoryDB) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
2370	req, out := c.ListTagsRequest(input)
2371	req.SetContext(ctx)
2372	req.ApplyOptions(opts...)
2373	return out, req.Send()
2374}
2375
2376const opResetParameterGroup = "ResetParameterGroup"
2377
2378// ResetParameterGroupRequest generates a "aws/request.Request" representing the
2379// client's request for the ResetParameterGroup operation. The "output" return
2380// value will be populated with the request's response once the request completes
2381// successfully.
2382//
2383// Use "Send" method on the returned Request to send the API call to the service.
2384// the "output" return value is not valid until after Send returns without error.
2385//
2386// See ResetParameterGroup for more information on using the ResetParameterGroup
2387// API call, and error handling.
2388//
2389// This method is useful when you want to inject custom logic or configuration
2390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2391//
2392//
2393//    // Example sending a request using the ResetParameterGroupRequest method.
2394//    req, resp := client.ResetParameterGroupRequest(params)
2395//
2396//    err := req.Send()
2397//    if err == nil { // resp is now filled
2398//        fmt.Println(resp)
2399//    }
2400//
2401// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ResetParameterGroup
2402func (c *MemoryDB) ResetParameterGroupRequest(input *ResetParameterGroupInput) (req *request.Request, output *ResetParameterGroupOutput) {
2403	op := &request.Operation{
2404		Name:       opResetParameterGroup,
2405		HTTPMethod: "POST",
2406		HTTPPath:   "/",
2407	}
2408
2409	if input == nil {
2410		input = &ResetParameterGroupInput{}
2411	}
2412
2413	output = &ResetParameterGroupOutput{}
2414	req = c.newRequest(op, input, output)
2415	return
2416}
2417
2418// ResetParameterGroup API operation for Amazon MemoryDB.
2419//
2420// Modifies the parameters of a parameter group to the engine or system default
2421// value. You can reset specific parameters by submitting a list of parameter
2422// names. To reset the entire parameter group, specify the AllParameters and
2423// ParameterGroupName parameters.
2424//
2425// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2426// with awserr.Error's Code and Message methods to get detailed information about
2427// the error.
2428//
2429// See the AWS API reference guide for Amazon MemoryDB's
2430// API operation ResetParameterGroup for usage and error information.
2431//
2432// Returned Error Types:
2433//   * InvalidParameterGroupStateFault
2434//
2435//   * ParameterGroupNotFoundFault
2436//
2437//   * ServiceLinkedRoleNotFoundFault
2438//
2439//   * InvalidParameterValueException
2440//
2441//   * InvalidParameterCombinationException
2442//
2443// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/ResetParameterGroup
2444func (c *MemoryDB) ResetParameterGroup(input *ResetParameterGroupInput) (*ResetParameterGroupOutput, error) {
2445	req, out := c.ResetParameterGroupRequest(input)
2446	return out, req.Send()
2447}
2448
2449// ResetParameterGroupWithContext is the same as ResetParameterGroup with the addition of
2450// the ability to pass a context and additional request options.
2451//
2452// See ResetParameterGroup for details on how to use this API operation.
2453//
2454// The context must be non-nil and will be used for request cancellation. If
2455// the context is nil a panic will occur. In the future the SDK may create
2456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2457// for more information on using Contexts.
2458func (c *MemoryDB) ResetParameterGroupWithContext(ctx aws.Context, input *ResetParameterGroupInput, opts ...request.Option) (*ResetParameterGroupOutput, error) {
2459	req, out := c.ResetParameterGroupRequest(input)
2460	req.SetContext(ctx)
2461	req.ApplyOptions(opts...)
2462	return out, req.Send()
2463}
2464
2465const opTagResource = "TagResource"
2466
2467// TagResourceRequest generates a "aws/request.Request" representing the
2468// client's request for the TagResource operation. The "output" return
2469// value will be populated with the request's response once the request completes
2470// successfully.
2471//
2472// Use "Send" method on the returned Request to send the API call to the service.
2473// the "output" return value is not valid until after Send returns without error.
2474//
2475// See TagResource for more information on using the TagResource
2476// API call, and error handling.
2477//
2478// This method is useful when you want to inject custom logic or configuration
2479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2480//
2481//
2482//    // Example sending a request using the TagResourceRequest method.
2483//    req, resp := client.TagResourceRequest(params)
2484//
2485//    err := req.Send()
2486//    if err == nil { // resp is now filled
2487//        fmt.Println(resp)
2488//    }
2489//
2490// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/TagResource
2491func (c *MemoryDB) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2492	op := &request.Operation{
2493		Name:       opTagResource,
2494		HTTPMethod: "POST",
2495		HTTPPath:   "/",
2496	}
2497
2498	if input == nil {
2499		input = &TagResourceInput{}
2500	}
2501
2502	output = &TagResourceOutput{}
2503	req = c.newRequest(op, input, output)
2504	return
2505}
2506
2507// TagResource API operation for Amazon MemoryDB.
2508//
2509// A tag is a key-value pair where the key and value are case-sensitive. You
2510// can use tags to categorize and track all your MemoryDB resources. When you
2511// add or remove tags on clusters, those actions will be replicated to all nodes
2512// in the cluster. For more information, see Resource-level permissions (https://docs.aws.amazon.com/MemoryDB/latest/devguide/iam.resourcelevelpermissions.html).
2513//
2514// For example, you can use cost-allocation tags to your MemoryDB resources,
2515// Amazon generates a cost allocation report as a comma-separated value (CSV)
2516// file with your usage and costs aggregated by your tags. You can apply tags
2517// that represent business categories (such as cost centers, application names,
2518// or owners) to organize your costs across multiple services. For more information,
2519// see Using Cost Allocation Tags (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging.html).
2520//
2521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2522// with awserr.Error's Code and Message methods to get detailed information about
2523// the error.
2524//
2525// See the AWS API reference guide for Amazon MemoryDB's
2526// API operation TagResource for usage and error information.
2527//
2528// Returned Error Types:
2529//   * ClusterNotFoundFault
2530//
2531//   * ParameterGroupNotFoundFault
2532//
2533//   * SubnetGroupNotFoundFault
2534//
2535//   * InvalidClusterStateFault
2536//
2537//   * SnapshotNotFoundFault
2538//
2539//   * UserNotFoundFault
2540//
2541//   * ACLNotFoundFault
2542//
2543//   * TagQuotaPerResourceExceeded
2544//
2545//   * InvalidARNFault
2546//
2547//   * ServiceLinkedRoleNotFoundFault
2548//
2549// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/TagResource
2550func (c *MemoryDB) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2551	req, out := c.TagResourceRequest(input)
2552	return out, req.Send()
2553}
2554
2555// TagResourceWithContext is the same as TagResource with the addition of
2556// the ability to pass a context and additional request options.
2557//
2558// See TagResource for details on how to use this API operation.
2559//
2560// The context must be non-nil and will be used for request cancellation. If
2561// the context is nil a panic will occur. In the future the SDK may create
2562// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2563// for more information on using Contexts.
2564func (c *MemoryDB) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2565	req, out := c.TagResourceRequest(input)
2566	req.SetContext(ctx)
2567	req.ApplyOptions(opts...)
2568	return out, req.Send()
2569}
2570
2571const opUntagResource = "UntagResource"
2572
2573// UntagResourceRequest generates a "aws/request.Request" representing the
2574// client's request for the UntagResource operation. The "output" return
2575// value will be populated with the request's response once the request completes
2576// successfully.
2577//
2578// Use "Send" method on the returned Request to send the API call to the service.
2579// the "output" return value is not valid until after Send returns without error.
2580//
2581// See UntagResource for more information on using the UntagResource
2582// API call, and error handling.
2583//
2584// This method is useful when you want to inject custom logic or configuration
2585// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2586//
2587//
2588//    // Example sending a request using the UntagResourceRequest method.
2589//    req, resp := client.UntagResourceRequest(params)
2590//
2591//    err := req.Send()
2592//    if err == nil { // resp is now filled
2593//        fmt.Println(resp)
2594//    }
2595//
2596// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UntagResource
2597func (c *MemoryDB) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2598	op := &request.Operation{
2599		Name:       opUntagResource,
2600		HTTPMethod: "POST",
2601		HTTPPath:   "/",
2602	}
2603
2604	if input == nil {
2605		input = &UntagResourceInput{}
2606	}
2607
2608	output = &UntagResourceOutput{}
2609	req = c.newRequest(op, input, output)
2610	return
2611}
2612
2613// UntagResource API operation for Amazon MemoryDB.
2614//
2615// Use this operation to remove tags on a resource
2616//
2617// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2618// with awserr.Error's Code and Message methods to get detailed information about
2619// the error.
2620//
2621// See the AWS API reference guide for Amazon MemoryDB's
2622// API operation UntagResource for usage and error information.
2623//
2624// Returned Error Types:
2625//   * ClusterNotFoundFault
2626//
2627//   * InvalidClusterStateFault
2628//
2629//   * ParameterGroupNotFoundFault
2630//
2631//   * SubnetGroupNotFoundFault
2632//
2633//   * SnapshotNotFoundFault
2634//
2635//   * InvalidARNFault
2636//
2637//   * TagNotFoundFault
2638//
2639//   * ServiceLinkedRoleNotFoundFault
2640//
2641//   * UserNotFoundFault
2642//
2643//   * ACLNotFoundFault
2644//
2645// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UntagResource
2646func (c *MemoryDB) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2647	req, out := c.UntagResourceRequest(input)
2648	return out, req.Send()
2649}
2650
2651// UntagResourceWithContext is the same as UntagResource with the addition of
2652// the ability to pass a context and additional request options.
2653//
2654// See UntagResource for details on how to use this API operation.
2655//
2656// The context must be non-nil and will be used for request cancellation. If
2657// the context is nil a panic will occur. In the future the SDK may create
2658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2659// for more information on using Contexts.
2660func (c *MemoryDB) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2661	req, out := c.UntagResourceRequest(input)
2662	req.SetContext(ctx)
2663	req.ApplyOptions(opts...)
2664	return out, req.Send()
2665}
2666
2667const opUpdateACL = "UpdateACL"
2668
2669// UpdateACLRequest generates a "aws/request.Request" representing the
2670// client's request for the UpdateACL operation. The "output" return
2671// value will be populated with the request's response once the request completes
2672// successfully.
2673//
2674// Use "Send" method on the returned Request to send the API call to the service.
2675// the "output" return value is not valid until after Send returns without error.
2676//
2677// See UpdateACL for more information on using the UpdateACL
2678// API call, and error handling.
2679//
2680// This method is useful when you want to inject custom logic or configuration
2681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2682//
2683//
2684//    // Example sending a request using the UpdateACLRequest method.
2685//    req, resp := client.UpdateACLRequest(params)
2686//
2687//    err := req.Send()
2688//    if err == nil { // resp is now filled
2689//        fmt.Println(resp)
2690//    }
2691//
2692// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateACL
2693func (c *MemoryDB) UpdateACLRequest(input *UpdateACLInput) (req *request.Request, output *UpdateACLOutput) {
2694	op := &request.Operation{
2695		Name:       opUpdateACL,
2696		HTTPMethod: "POST",
2697		HTTPPath:   "/",
2698	}
2699
2700	if input == nil {
2701		input = &UpdateACLInput{}
2702	}
2703
2704	output = &UpdateACLOutput{}
2705	req = c.newRequest(op, input, output)
2706	return
2707}
2708
2709// UpdateACL API operation for Amazon MemoryDB.
2710//
2711// Changes the list of users that belong to the Access Control List.
2712//
2713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2714// with awserr.Error's Code and Message methods to get detailed information about
2715// the error.
2716//
2717// See the AWS API reference guide for Amazon MemoryDB's
2718// API operation UpdateACL for usage and error information.
2719//
2720// Returned Error Types:
2721//   * ACLNotFoundFault
2722//
2723//   * UserNotFoundFault
2724//
2725//   * DuplicateUserNameFault
2726//
2727//   * DefaultUserRequired
2728//
2729//   * InvalidACLStateFault
2730//
2731//   * InvalidParameterValueException
2732//
2733//   * InvalidParameterCombinationException
2734//
2735// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateACL
2736func (c *MemoryDB) UpdateACL(input *UpdateACLInput) (*UpdateACLOutput, error) {
2737	req, out := c.UpdateACLRequest(input)
2738	return out, req.Send()
2739}
2740
2741// UpdateACLWithContext is the same as UpdateACL with the addition of
2742// the ability to pass a context and additional request options.
2743//
2744// See UpdateACL for details on how to use this API operation.
2745//
2746// The context must be non-nil and will be used for request cancellation. If
2747// the context is nil a panic will occur. In the future the SDK may create
2748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2749// for more information on using Contexts.
2750func (c *MemoryDB) UpdateACLWithContext(ctx aws.Context, input *UpdateACLInput, opts ...request.Option) (*UpdateACLOutput, error) {
2751	req, out := c.UpdateACLRequest(input)
2752	req.SetContext(ctx)
2753	req.ApplyOptions(opts...)
2754	return out, req.Send()
2755}
2756
2757const opUpdateCluster = "UpdateCluster"
2758
2759// UpdateClusterRequest generates a "aws/request.Request" representing the
2760// client's request for the UpdateCluster operation. The "output" return
2761// value will be populated with the request's response once the request completes
2762// successfully.
2763//
2764// Use "Send" method on the returned Request to send the API call to the service.
2765// the "output" return value is not valid until after Send returns without error.
2766//
2767// See UpdateCluster for more information on using the UpdateCluster
2768// API call, and error handling.
2769//
2770// This method is useful when you want to inject custom logic or configuration
2771// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2772//
2773//
2774//    // Example sending a request using the UpdateClusterRequest method.
2775//    req, resp := client.UpdateClusterRequest(params)
2776//
2777//    err := req.Send()
2778//    if err == nil { // resp is now filled
2779//        fmt.Println(resp)
2780//    }
2781//
2782// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateCluster
2783func (c *MemoryDB) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) {
2784	op := &request.Operation{
2785		Name:       opUpdateCluster,
2786		HTTPMethod: "POST",
2787		HTTPPath:   "/",
2788	}
2789
2790	if input == nil {
2791		input = &UpdateClusterInput{}
2792	}
2793
2794	output = &UpdateClusterOutput{}
2795	req = c.newRequest(op, input, output)
2796	return
2797}
2798
2799// UpdateCluster API operation for Amazon MemoryDB.
2800//
2801// Modifies the settings for a cluster. You can use this operation to change
2802// one or more cluster configuration settings by specifying the settings and
2803// the new values.
2804//
2805// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2806// with awserr.Error's Code and Message methods to get detailed information about
2807// the error.
2808//
2809// See the AWS API reference guide for Amazon MemoryDB's
2810// API operation UpdateCluster for usage and error information.
2811//
2812// Returned Error Types:
2813//   * ClusterNotFoundFault
2814//
2815//   * InvalidClusterStateFault
2816//
2817//   * InvalidNodeStateFault
2818//
2819//   * ParameterGroupNotFoundFault
2820//
2821//   * InvalidVPCNetworkStateFault
2822//
2823//   * ServiceLinkedRoleNotFoundFault
2824//
2825//   * InvalidKMSKeyFault
2826//
2827//   * NodeQuotaForClusterExceededFault
2828//
2829//   * ClusterQuotaForCustomerExceededFault
2830//
2831//   * ShardsPerClusterQuotaExceededFault
2832//
2833//   * NodeQuotaForCustomerExceededFault
2834//
2835//   * NoOperationFault
2836//
2837//   * InvalidACLStateFault
2838//
2839//   * ACLNotFoundFault
2840//
2841//   * InvalidParameterValueException
2842//
2843//   * InvalidParameterCombinationException
2844//
2845// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateCluster
2846func (c *MemoryDB) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) {
2847	req, out := c.UpdateClusterRequest(input)
2848	return out, req.Send()
2849}
2850
2851// UpdateClusterWithContext is the same as UpdateCluster with the addition of
2852// the ability to pass a context and additional request options.
2853//
2854// See UpdateCluster for details on how to use this API operation.
2855//
2856// The context must be non-nil and will be used for request cancellation. If
2857// the context is nil a panic will occur. In the future the SDK may create
2858// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2859// for more information on using Contexts.
2860func (c *MemoryDB) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) {
2861	req, out := c.UpdateClusterRequest(input)
2862	req.SetContext(ctx)
2863	req.ApplyOptions(opts...)
2864	return out, req.Send()
2865}
2866
2867const opUpdateParameterGroup = "UpdateParameterGroup"
2868
2869// UpdateParameterGroupRequest generates a "aws/request.Request" representing the
2870// client's request for the UpdateParameterGroup operation. The "output" return
2871// value will be populated with the request's response once the request completes
2872// successfully.
2873//
2874// Use "Send" method on the returned Request to send the API call to the service.
2875// the "output" return value is not valid until after Send returns without error.
2876//
2877// See UpdateParameterGroup for more information on using the UpdateParameterGroup
2878// API call, and error handling.
2879//
2880// This method is useful when you want to inject custom logic or configuration
2881// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2882//
2883//
2884//    // Example sending a request using the UpdateParameterGroupRequest method.
2885//    req, resp := client.UpdateParameterGroupRequest(params)
2886//
2887//    err := req.Send()
2888//    if err == nil { // resp is now filled
2889//        fmt.Println(resp)
2890//    }
2891//
2892// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateParameterGroup
2893func (c *MemoryDB) UpdateParameterGroupRequest(input *UpdateParameterGroupInput) (req *request.Request, output *UpdateParameterGroupOutput) {
2894	op := &request.Operation{
2895		Name:       opUpdateParameterGroup,
2896		HTTPMethod: "POST",
2897		HTTPPath:   "/",
2898	}
2899
2900	if input == nil {
2901		input = &UpdateParameterGroupInput{}
2902	}
2903
2904	output = &UpdateParameterGroupOutput{}
2905	req = c.newRequest(op, input, output)
2906	return
2907}
2908
2909// UpdateParameterGroup API operation for Amazon MemoryDB.
2910//
2911// Updates the parameters of a parameter group. You can modify up to 20 parameters
2912// in a single request by submitting a list parameter name and value pairs.
2913//
2914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2915// with awserr.Error's Code and Message methods to get detailed information about
2916// the error.
2917//
2918// See the AWS API reference guide for Amazon MemoryDB's
2919// API operation UpdateParameterGroup for usage and error information.
2920//
2921// Returned Error Types:
2922//   * ParameterGroupNotFoundFault
2923//
2924//   * InvalidParameterGroupStateFault
2925//
2926//   * ServiceLinkedRoleNotFoundFault
2927//
2928//   * InvalidParameterValueException
2929//
2930//   * InvalidParameterCombinationException
2931//
2932// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateParameterGroup
2933func (c *MemoryDB) UpdateParameterGroup(input *UpdateParameterGroupInput) (*UpdateParameterGroupOutput, error) {
2934	req, out := c.UpdateParameterGroupRequest(input)
2935	return out, req.Send()
2936}
2937
2938// UpdateParameterGroupWithContext is the same as UpdateParameterGroup with the addition of
2939// the ability to pass a context and additional request options.
2940//
2941// See UpdateParameterGroup for details on how to use this API operation.
2942//
2943// The context must be non-nil and will be used for request cancellation. If
2944// the context is nil a panic will occur. In the future the SDK may create
2945// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2946// for more information on using Contexts.
2947func (c *MemoryDB) UpdateParameterGroupWithContext(ctx aws.Context, input *UpdateParameterGroupInput, opts ...request.Option) (*UpdateParameterGroupOutput, error) {
2948	req, out := c.UpdateParameterGroupRequest(input)
2949	req.SetContext(ctx)
2950	req.ApplyOptions(opts...)
2951	return out, req.Send()
2952}
2953
2954const opUpdateSubnetGroup = "UpdateSubnetGroup"
2955
2956// UpdateSubnetGroupRequest generates a "aws/request.Request" representing the
2957// client's request for the UpdateSubnetGroup operation. The "output" return
2958// value will be populated with the request's response once the request completes
2959// successfully.
2960//
2961// Use "Send" method on the returned Request to send the API call to the service.
2962// the "output" return value is not valid until after Send returns without error.
2963//
2964// See UpdateSubnetGroup for more information on using the UpdateSubnetGroup
2965// API call, and error handling.
2966//
2967// This method is useful when you want to inject custom logic or configuration
2968// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2969//
2970//
2971//    // Example sending a request using the UpdateSubnetGroupRequest method.
2972//    req, resp := client.UpdateSubnetGroupRequest(params)
2973//
2974//    err := req.Send()
2975//    if err == nil { // resp is now filled
2976//        fmt.Println(resp)
2977//    }
2978//
2979// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateSubnetGroup
2980func (c *MemoryDB) UpdateSubnetGroupRequest(input *UpdateSubnetGroupInput) (req *request.Request, output *UpdateSubnetGroupOutput) {
2981	op := &request.Operation{
2982		Name:       opUpdateSubnetGroup,
2983		HTTPMethod: "POST",
2984		HTTPPath:   "/",
2985	}
2986
2987	if input == nil {
2988		input = &UpdateSubnetGroupInput{}
2989	}
2990
2991	output = &UpdateSubnetGroupOutput{}
2992	req = c.newRequest(op, input, output)
2993	return
2994}
2995
2996// UpdateSubnetGroup API operation for Amazon MemoryDB.
2997//
2998// Updates a subnet group. For more information, see Updating a subnet group
2999// (https://docs.aws.amazon.com/MemoryDB/latest/devguide/ubnetGroups.Modifying.html)
3000//
3001// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3002// with awserr.Error's Code and Message methods to get detailed information about
3003// the error.
3004//
3005// See the AWS API reference guide for Amazon MemoryDB's
3006// API operation UpdateSubnetGroup for usage and error information.
3007//
3008// Returned Error Types:
3009//   * SubnetGroupNotFoundFault
3010//
3011//   * SubnetQuotaExceededFault
3012//
3013//   * SubnetInUse
3014//
3015//   * InvalidSubnet
3016//
3017//   * ServiceLinkedRoleNotFoundFault
3018//
3019//   * SubnetNotAllowedFault
3020//
3021// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateSubnetGroup
3022func (c *MemoryDB) UpdateSubnetGroup(input *UpdateSubnetGroupInput) (*UpdateSubnetGroupOutput, error) {
3023	req, out := c.UpdateSubnetGroupRequest(input)
3024	return out, req.Send()
3025}
3026
3027// UpdateSubnetGroupWithContext is the same as UpdateSubnetGroup with the addition of
3028// the ability to pass a context and additional request options.
3029//
3030// See UpdateSubnetGroup for details on how to use this API operation.
3031//
3032// The context must be non-nil and will be used for request cancellation. If
3033// the context is nil a panic will occur. In the future the SDK may create
3034// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3035// for more information on using Contexts.
3036func (c *MemoryDB) UpdateSubnetGroupWithContext(ctx aws.Context, input *UpdateSubnetGroupInput, opts ...request.Option) (*UpdateSubnetGroupOutput, error) {
3037	req, out := c.UpdateSubnetGroupRequest(input)
3038	req.SetContext(ctx)
3039	req.ApplyOptions(opts...)
3040	return out, req.Send()
3041}
3042
3043const opUpdateUser = "UpdateUser"
3044
3045// UpdateUserRequest generates a "aws/request.Request" representing the
3046// client's request for the UpdateUser operation. The "output" return
3047// value will be populated with the request's response once the request completes
3048// successfully.
3049//
3050// Use "Send" method on the returned Request to send the API call to the service.
3051// the "output" return value is not valid until after Send returns without error.
3052//
3053// See UpdateUser for more information on using the UpdateUser
3054// API call, and error handling.
3055//
3056// This method is useful when you want to inject custom logic or configuration
3057// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3058//
3059//
3060//    // Example sending a request using the UpdateUserRequest method.
3061//    req, resp := client.UpdateUserRequest(params)
3062//
3063//    err := req.Send()
3064//    if err == nil { // resp is now filled
3065//        fmt.Println(resp)
3066//    }
3067//
3068// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateUser
3069func (c *MemoryDB) UpdateUserRequest(input *UpdateUserInput) (req *request.Request, output *UpdateUserOutput) {
3070	op := &request.Operation{
3071		Name:       opUpdateUser,
3072		HTTPMethod: "POST",
3073		HTTPPath:   "/",
3074	}
3075
3076	if input == nil {
3077		input = &UpdateUserInput{}
3078	}
3079
3080	output = &UpdateUserOutput{}
3081	req = c.newRequest(op, input, output)
3082	return
3083}
3084
3085// UpdateUser API operation for Amazon MemoryDB.
3086//
3087// Changes user password(s) and/or access string.
3088//
3089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3090// with awserr.Error's Code and Message methods to get detailed information about
3091// the error.
3092//
3093// See the AWS API reference guide for Amazon MemoryDB's
3094// API operation UpdateUser for usage and error information.
3095//
3096// Returned Error Types:
3097//   * UserNotFoundFault
3098//
3099//   * InvalidUserStateFault
3100//
3101//   * InvalidParameterValueException
3102//
3103//   * InvalidParameterCombinationException
3104//
3105// See also, https://docs.aws.amazon.com/goto/WebAPI/memorydb-2021-01-01/UpdateUser
3106func (c *MemoryDB) UpdateUser(input *UpdateUserInput) (*UpdateUserOutput, error) {
3107	req, out := c.UpdateUserRequest(input)
3108	return out, req.Send()
3109}
3110
3111// UpdateUserWithContext is the same as UpdateUser with the addition of
3112// the ability to pass a context and additional request options.
3113//
3114// See UpdateUser for details on how to use this API operation.
3115//
3116// The context must be non-nil and will be used for request cancellation. If
3117// the context is nil a panic will occur. In the future the SDK may create
3118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3119// for more information on using Contexts.
3120func (c *MemoryDB) UpdateUserWithContext(ctx aws.Context, input *UpdateUserInput, opts ...request.Option) (*UpdateUserOutput, error) {
3121	req, out := c.UpdateUserRequest(input)
3122	req.SetContext(ctx)
3123	req.ApplyOptions(opts...)
3124	return out, req.Send()
3125}
3126
3127// An Access Control List. You can authenticate users with Access Contol Lists.
3128// ACLs enable you to control cluster access by grouping users. These Access
3129// control lists are designed as a way to organize access to clusters.
3130type ACL struct {
3131	_ struct{} `type:"structure"`
3132
3133	// The Amazon Resource Name (ARN) of the ACL
3134	ARN *string `type:"string"`
3135
3136	// A list of clusters associated with the ACL.
3137	Clusters []*string `type:"list"`
3138
3139	// The minimum engine version supported for the ACL
3140	MinimumEngineVersion *string `type:"string"`
3141
3142	// The name of the Access Control List
3143	Name *string `type:"string"`
3144
3145	// A list of updates being applied to the ACL.
3146	PendingChanges *ACLPendingChanges `type:"structure"`
3147
3148	// Indicates ACL status. Can be "creating", "active", "modifying", "deleting".
3149	Status *string `type:"string"`
3150
3151	// The list of user names that belong to the ACL.
3152	UserNames []*string `type:"list"`
3153}
3154
3155// String returns the string representation.
3156//
3157// API parameter values that are decorated as "sensitive" in the API will not
3158// be included in the string output. The member name will be present, but the
3159// value will be replaced with "sensitive".
3160func (s ACL) String() string {
3161	return awsutil.Prettify(s)
3162}
3163
3164// GoString returns the string representation.
3165//
3166// API parameter values that are decorated as "sensitive" in the API will not
3167// be included in the string output. The member name will be present, but the
3168// value will be replaced with "sensitive".
3169func (s ACL) GoString() string {
3170	return s.String()
3171}
3172
3173// SetARN sets the ARN field's value.
3174func (s *ACL) SetARN(v string) *ACL {
3175	s.ARN = &v
3176	return s
3177}
3178
3179// SetClusters sets the Clusters field's value.
3180func (s *ACL) SetClusters(v []*string) *ACL {
3181	s.Clusters = v
3182	return s
3183}
3184
3185// SetMinimumEngineVersion sets the MinimumEngineVersion field's value.
3186func (s *ACL) SetMinimumEngineVersion(v string) *ACL {
3187	s.MinimumEngineVersion = &v
3188	return s
3189}
3190
3191// SetName sets the Name field's value.
3192func (s *ACL) SetName(v string) *ACL {
3193	s.Name = &v
3194	return s
3195}
3196
3197// SetPendingChanges sets the PendingChanges field's value.
3198func (s *ACL) SetPendingChanges(v *ACLPendingChanges) *ACL {
3199	s.PendingChanges = v
3200	return s
3201}
3202
3203// SetStatus sets the Status field's value.
3204func (s *ACL) SetStatus(v string) *ACL {
3205	s.Status = &v
3206	return s
3207}
3208
3209// SetUserNames sets the UserNames field's value.
3210func (s *ACL) SetUserNames(v []*string) *ACL {
3211	s.UserNames = v
3212	return s
3213}
3214
3215type ACLAlreadyExistsFault struct {
3216	_            struct{}                  `type:"structure"`
3217	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3218
3219	Message_ *string `locationName:"message" type:"string"`
3220}
3221
3222// String returns the string representation.
3223//
3224// API parameter values that are decorated as "sensitive" in the API will not
3225// be included in the string output. The member name will be present, but the
3226// value will be replaced with "sensitive".
3227func (s ACLAlreadyExistsFault) String() string {
3228	return awsutil.Prettify(s)
3229}
3230
3231// GoString returns the string representation.
3232//
3233// API parameter values that are decorated as "sensitive" in the API will not
3234// be included in the string output. The member name will be present, but the
3235// value will be replaced with "sensitive".
3236func (s ACLAlreadyExistsFault) GoString() string {
3237	return s.String()
3238}
3239
3240func newErrorACLAlreadyExistsFault(v protocol.ResponseMetadata) error {
3241	return &ACLAlreadyExistsFault{
3242		RespMetadata: v,
3243	}
3244}
3245
3246// Code returns the exception type name.
3247func (s *ACLAlreadyExistsFault) Code() string {
3248	return "ACLAlreadyExistsFault"
3249}
3250
3251// Message returns the exception's message.
3252func (s *ACLAlreadyExistsFault) Message() string {
3253	if s.Message_ != nil {
3254		return *s.Message_
3255	}
3256	return ""
3257}
3258
3259// OrigErr always returns nil, satisfies awserr.Error interface.
3260func (s *ACLAlreadyExistsFault) OrigErr() error {
3261	return nil
3262}
3263
3264func (s *ACLAlreadyExistsFault) Error() string {
3265	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3266}
3267
3268// Status code returns the HTTP status code for the request's response error.
3269func (s *ACLAlreadyExistsFault) StatusCode() int {
3270	return s.RespMetadata.StatusCode
3271}
3272
3273// RequestID returns the service's response RequestID for request.
3274func (s *ACLAlreadyExistsFault) RequestID() string {
3275	return s.RespMetadata.RequestID
3276}
3277
3278type ACLNotFoundFault struct {
3279	_            struct{}                  `type:"structure"`
3280	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3281
3282	Message_ *string `locationName:"message" type:"string"`
3283}
3284
3285// String returns the string representation.
3286//
3287// API parameter values that are decorated as "sensitive" in the API will not
3288// be included in the string output. The member name will be present, but the
3289// value will be replaced with "sensitive".
3290func (s ACLNotFoundFault) String() string {
3291	return awsutil.Prettify(s)
3292}
3293
3294// GoString returns the string representation.
3295//
3296// API parameter values that are decorated as "sensitive" in the API will not
3297// be included in the string output. The member name will be present, but the
3298// value will be replaced with "sensitive".
3299func (s ACLNotFoundFault) GoString() string {
3300	return s.String()
3301}
3302
3303func newErrorACLNotFoundFault(v protocol.ResponseMetadata) error {
3304	return &ACLNotFoundFault{
3305		RespMetadata: v,
3306	}
3307}
3308
3309// Code returns the exception type name.
3310func (s *ACLNotFoundFault) Code() string {
3311	return "ACLNotFoundFault"
3312}
3313
3314// Message returns the exception's message.
3315func (s *ACLNotFoundFault) Message() string {
3316	if s.Message_ != nil {
3317		return *s.Message_
3318	}
3319	return ""
3320}
3321
3322// OrigErr always returns nil, satisfies awserr.Error interface.
3323func (s *ACLNotFoundFault) OrigErr() error {
3324	return nil
3325}
3326
3327func (s *ACLNotFoundFault) Error() string {
3328	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3329}
3330
3331// Status code returns the HTTP status code for the request's response error.
3332func (s *ACLNotFoundFault) StatusCode() int {
3333	return s.RespMetadata.StatusCode
3334}
3335
3336// RequestID returns the service's response RequestID for request.
3337func (s *ACLNotFoundFault) RequestID() string {
3338	return s.RespMetadata.RequestID
3339}
3340
3341// Returns the updates being applied to the ACL.
3342type ACLPendingChanges struct {
3343	_ struct{} `type:"structure"`
3344
3345	// A list of users being added to the ACL
3346	UserNamesToAdd []*string `type:"list"`
3347
3348	// A list of user names being removed from the ACL
3349	UserNamesToRemove []*string `type:"list"`
3350}
3351
3352// String returns the string representation.
3353//
3354// API parameter values that are decorated as "sensitive" in the API will not
3355// be included in the string output. The member name will be present, but the
3356// value will be replaced with "sensitive".
3357func (s ACLPendingChanges) String() string {
3358	return awsutil.Prettify(s)
3359}
3360
3361// GoString returns the string representation.
3362//
3363// API parameter values that are decorated as "sensitive" in the API will not
3364// be included in the string output. The member name will be present, but the
3365// value will be replaced with "sensitive".
3366func (s ACLPendingChanges) GoString() string {
3367	return s.String()
3368}
3369
3370// SetUserNamesToAdd sets the UserNamesToAdd field's value.
3371func (s *ACLPendingChanges) SetUserNamesToAdd(v []*string) *ACLPendingChanges {
3372	s.UserNamesToAdd = v
3373	return s
3374}
3375
3376// SetUserNamesToRemove sets the UserNamesToRemove field's value.
3377func (s *ACLPendingChanges) SetUserNamesToRemove(v []*string) *ACLPendingChanges {
3378	s.UserNamesToRemove = v
3379	return s
3380}
3381
3382type ACLQuotaExceededFault struct {
3383	_            struct{}                  `type:"structure"`
3384	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3385
3386	Message_ *string `locationName:"message" type:"string"`
3387}
3388
3389// String returns the string representation.
3390//
3391// API parameter values that are decorated as "sensitive" in the API will not
3392// be included in the string output. The member name will be present, but the
3393// value will be replaced with "sensitive".
3394func (s ACLQuotaExceededFault) String() string {
3395	return awsutil.Prettify(s)
3396}
3397
3398// GoString returns the string representation.
3399//
3400// API parameter values that are decorated as "sensitive" in the API will not
3401// be included in the string output. The member name will be present, but the
3402// value will be replaced with "sensitive".
3403func (s ACLQuotaExceededFault) GoString() string {
3404	return s.String()
3405}
3406
3407func newErrorACLQuotaExceededFault(v protocol.ResponseMetadata) error {
3408	return &ACLQuotaExceededFault{
3409		RespMetadata: v,
3410	}
3411}
3412
3413// Code returns the exception type name.
3414func (s *ACLQuotaExceededFault) Code() string {
3415	return "ACLQuotaExceededFault"
3416}
3417
3418// Message returns the exception's message.
3419func (s *ACLQuotaExceededFault) Message() string {
3420	if s.Message_ != nil {
3421		return *s.Message_
3422	}
3423	return ""
3424}
3425
3426// OrigErr always returns nil, satisfies awserr.Error interface.
3427func (s *ACLQuotaExceededFault) OrigErr() error {
3428	return nil
3429}
3430
3431func (s *ACLQuotaExceededFault) Error() string {
3432	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3433}
3434
3435// Status code returns the HTTP status code for the request's response error.
3436func (s *ACLQuotaExceededFault) StatusCode() int {
3437	return s.RespMetadata.StatusCode
3438}
3439
3440// RequestID returns the service's response RequestID for request.
3441func (s *ACLQuotaExceededFault) RequestID() string {
3442	return s.RespMetadata.RequestID
3443}
3444
3445// The status of the ACL update
3446type ACLsUpdateStatus struct {
3447	_ struct{} `type:"structure"`
3448
3449	// A list of ACLs pending to be applied.
3450	ACLToApply *string `min:"1" type:"string"`
3451}
3452
3453// String returns the string representation.
3454//
3455// API parameter values that are decorated as "sensitive" in the API will not
3456// be included in the string output. The member name will be present, but the
3457// value will be replaced with "sensitive".
3458func (s ACLsUpdateStatus) String() string {
3459	return awsutil.Prettify(s)
3460}
3461
3462// GoString returns the string representation.
3463//
3464// API parameter values that are decorated as "sensitive" in the API will not
3465// be included in the string output. The member name will be present, but the
3466// value will be replaced with "sensitive".
3467func (s ACLsUpdateStatus) GoString() string {
3468	return s.String()
3469}
3470
3471// SetACLToApply sets the ACLToApply field's value.
3472func (s *ACLsUpdateStatus) SetACLToApply(v string) *ACLsUpdateStatus {
3473	s.ACLToApply = &v
3474	return s
3475}
3476
3477type APICallRateForCustomerExceededFault struct {
3478	_            struct{}                  `type:"structure"`
3479	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3480
3481	Message_ *string `locationName:"message" type:"string"`
3482}
3483
3484// String returns the string representation.
3485//
3486// API parameter values that are decorated as "sensitive" in the API will not
3487// be included in the string output. The member name will be present, but the
3488// value will be replaced with "sensitive".
3489func (s APICallRateForCustomerExceededFault) String() string {
3490	return awsutil.Prettify(s)
3491}
3492
3493// GoString returns the string representation.
3494//
3495// API parameter values that are decorated as "sensitive" in the API will not
3496// be included in the string output. The member name will be present, but the
3497// value will be replaced with "sensitive".
3498func (s APICallRateForCustomerExceededFault) GoString() string {
3499	return s.String()
3500}
3501
3502func newErrorAPICallRateForCustomerExceededFault(v protocol.ResponseMetadata) error {
3503	return &APICallRateForCustomerExceededFault{
3504		RespMetadata: v,
3505	}
3506}
3507
3508// Code returns the exception type name.
3509func (s *APICallRateForCustomerExceededFault) Code() string {
3510	return "APICallRateForCustomerExceededFault"
3511}
3512
3513// Message returns the exception's message.
3514func (s *APICallRateForCustomerExceededFault) Message() string {
3515	if s.Message_ != nil {
3516		return *s.Message_
3517	}
3518	return ""
3519}
3520
3521// OrigErr always returns nil, satisfies awserr.Error interface.
3522func (s *APICallRateForCustomerExceededFault) OrigErr() error {
3523	return nil
3524}
3525
3526func (s *APICallRateForCustomerExceededFault) Error() string {
3527	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3528}
3529
3530// Status code returns the HTTP status code for the request's response error.
3531func (s *APICallRateForCustomerExceededFault) StatusCode() int {
3532	return s.RespMetadata.StatusCode
3533}
3534
3535// RequestID returns the service's response RequestID for request.
3536func (s *APICallRateForCustomerExceededFault) RequestID() string {
3537	return s.RespMetadata.RequestID
3538}
3539
3540// Denotes the user's authentication properties, such as whether it requires
3541// a password to authenticate. Used in output responses.
3542type Authentication struct {
3543	_ struct{} `type:"structure"`
3544
3545	// The number of passwords belonging to the user. The maximum is two.
3546	PasswordCount *int64 `type:"integer"`
3547
3548	// Indicates whether the user requires a password to authenticate.
3549	Type *string `type:"string" enum:"AuthenticationType"`
3550}
3551
3552// String returns the string representation.
3553//
3554// API parameter values that are decorated as "sensitive" in the API will not
3555// be included in the string output. The member name will be present, but the
3556// value will be replaced with "sensitive".
3557func (s Authentication) String() string {
3558	return awsutil.Prettify(s)
3559}
3560
3561// GoString returns the string representation.
3562//
3563// API parameter values that are decorated as "sensitive" in the API will not
3564// be included in the string output. The member name will be present, but the
3565// value will be replaced with "sensitive".
3566func (s Authentication) GoString() string {
3567	return s.String()
3568}
3569
3570// SetPasswordCount sets the PasswordCount field's value.
3571func (s *Authentication) SetPasswordCount(v int64) *Authentication {
3572	s.PasswordCount = &v
3573	return s
3574}
3575
3576// SetType sets the Type field's value.
3577func (s *Authentication) SetType(v string) *Authentication {
3578	s.Type = &v
3579	return s
3580}
3581
3582// Denotes the user's authentication properties, such as whether it requires
3583// a password to authenticate. Used in output responses.
3584type AuthenticationMode struct {
3585	_ struct{} `type:"structure"`
3586
3587	// The password(s) used for authentication
3588	Passwords []*string `min:"1" type:"list"`
3589
3590	// Indicates whether the user requires a password to authenticate. All newly-created
3591	// users require a password.
3592	Type *string `type:"string" enum:"InputAuthenticationType"`
3593}
3594
3595// String returns the string representation.
3596//
3597// API parameter values that are decorated as "sensitive" in the API will not
3598// be included in the string output. The member name will be present, but the
3599// value will be replaced with "sensitive".
3600func (s AuthenticationMode) String() string {
3601	return awsutil.Prettify(s)
3602}
3603
3604// GoString returns the string representation.
3605//
3606// API parameter values that are decorated as "sensitive" in the API will not
3607// be included in the string output. The member name will be present, but the
3608// value will be replaced with "sensitive".
3609func (s AuthenticationMode) GoString() string {
3610	return s.String()
3611}
3612
3613// Validate inspects the fields of the type to determine if they are valid.
3614func (s *AuthenticationMode) Validate() error {
3615	invalidParams := request.ErrInvalidParams{Context: "AuthenticationMode"}
3616	if s.Passwords != nil && len(s.Passwords) < 1 {
3617		invalidParams.Add(request.NewErrParamMinLen("Passwords", 1))
3618	}
3619
3620	if invalidParams.Len() > 0 {
3621		return invalidParams
3622	}
3623	return nil
3624}
3625
3626// SetPasswords sets the Passwords field's value.
3627func (s *AuthenticationMode) SetPasswords(v []*string) *AuthenticationMode {
3628	s.Passwords = v
3629	return s
3630}
3631
3632// SetType sets the Type field's value.
3633func (s *AuthenticationMode) SetType(v string) *AuthenticationMode {
3634	s.Type = &v
3635	return s
3636}
3637
3638// Indicates if the cluster has a Multi-AZ configuration (multiaz) or not (singleaz).
3639type AvailabilityZone struct {
3640	_ struct{} `type:"structure"`
3641
3642	// The name of the Availability Zone.
3643	Name *string `type:"string"`
3644}
3645
3646// String returns the string representation.
3647//
3648// API parameter values that are decorated as "sensitive" in the API will not
3649// be included in the string output. The member name will be present, but the
3650// value will be replaced with "sensitive".
3651func (s AvailabilityZone) String() string {
3652	return awsutil.Prettify(s)
3653}
3654
3655// GoString returns the string representation.
3656//
3657// API parameter values that are decorated as "sensitive" in the API will not
3658// be included in the string output. The member name will be present, but the
3659// value will be replaced with "sensitive".
3660func (s AvailabilityZone) GoString() string {
3661	return s.String()
3662}
3663
3664// SetName sets the Name field's value.
3665func (s *AvailabilityZone) SetName(v string) *AvailabilityZone {
3666	s.Name = &v
3667	return s
3668}
3669
3670type BatchUpdateClusterInput struct {
3671	_ struct{} `type:"structure"`
3672
3673	// The cluster names to apply the updates.
3674	//
3675	// ClusterNames is a required field
3676	ClusterNames []*string `type:"list" required:"true"`
3677
3678	// The unique ID of the service update
3679	ServiceUpdate *ServiceUpdateRequest `type:"structure"`
3680}
3681
3682// String returns the string representation.
3683//
3684// API parameter values that are decorated as "sensitive" in the API will not
3685// be included in the string output. The member name will be present, but the
3686// value will be replaced with "sensitive".
3687func (s BatchUpdateClusterInput) String() string {
3688	return awsutil.Prettify(s)
3689}
3690
3691// GoString returns the string representation.
3692//
3693// API parameter values that are decorated as "sensitive" in the API will not
3694// be included in the string output. The member name will be present, but the
3695// value will be replaced with "sensitive".
3696func (s BatchUpdateClusterInput) GoString() string {
3697	return s.String()
3698}
3699
3700// Validate inspects the fields of the type to determine if they are valid.
3701func (s *BatchUpdateClusterInput) Validate() error {
3702	invalidParams := request.ErrInvalidParams{Context: "BatchUpdateClusterInput"}
3703	if s.ClusterNames == nil {
3704		invalidParams.Add(request.NewErrParamRequired("ClusterNames"))
3705	}
3706
3707	if invalidParams.Len() > 0 {
3708		return invalidParams
3709	}
3710	return nil
3711}
3712
3713// SetClusterNames sets the ClusterNames field's value.
3714func (s *BatchUpdateClusterInput) SetClusterNames(v []*string) *BatchUpdateClusterInput {
3715	s.ClusterNames = v
3716	return s
3717}
3718
3719// SetServiceUpdate sets the ServiceUpdate field's value.
3720func (s *BatchUpdateClusterInput) SetServiceUpdate(v *ServiceUpdateRequest) *BatchUpdateClusterInput {
3721	s.ServiceUpdate = v
3722	return s
3723}
3724
3725type BatchUpdateClusterOutput struct {
3726	_ struct{} `type:"structure"`
3727
3728	// The list of clusters that have been updated.
3729	ProcessedClusters []*Cluster `type:"list"`
3730
3731	// The list of clusters where updates have not been applied.
3732	UnprocessedClusters []*UnprocessedCluster `type:"list"`
3733}
3734
3735// String returns the string representation.
3736//
3737// API parameter values that are decorated as "sensitive" in the API will not
3738// be included in the string output. The member name will be present, but the
3739// value will be replaced with "sensitive".
3740func (s BatchUpdateClusterOutput) String() string {
3741	return awsutil.Prettify(s)
3742}
3743
3744// GoString returns the string representation.
3745//
3746// API parameter values that are decorated as "sensitive" in the API will not
3747// be included in the string output. The member name will be present, but the
3748// value will be replaced with "sensitive".
3749func (s BatchUpdateClusterOutput) GoString() string {
3750	return s.String()
3751}
3752
3753// SetProcessedClusters sets the ProcessedClusters field's value.
3754func (s *BatchUpdateClusterOutput) SetProcessedClusters(v []*Cluster) *BatchUpdateClusterOutput {
3755	s.ProcessedClusters = v
3756	return s
3757}
3758
3759// SetUnprocessedClusters sets the UnprocessedClusters field's value.
3760func (s *BatchUpdateClusterOutput) SetUnprocessedClusters(v []*UnprocessedCluster) *BatchUpdateClusterOutput {
3761	s.UnprocessedClusters = v
3762	return s
3763}
3764
3765// Contains all of the attributes of a specific cluster.
3766type Cluster struct {
3767	_ struct{} `type:"structure"`
3768
3769	// The name of the Access Control List associated with this cluster.
3770	ACLName *string `min:"1" type:"string"`
3771
3772	// The Amazon Resource Name (ARN) of the cluster.
3773	ARN *string `type:"string"`
3774
3775	// When set to true, the cluster will automatically receive minor engine version
3776	// upgrades after launch.
3777	AutoMinorVersionUpgrade *bool `type:"boolean"`
3778
3779	// Indicates if the cluster has a Multi-AZ configuration (multiaz) or not (singleaz).
3780	AvailabilityMode *string `type:"string" enum:"AZStatus"`
3781
3782	// The cluster's configuration endpoint
3783	ClusterEndpoint *Endpoint `type:"structure"`
3784
3785	// A description of the cluster
3786	Description *string `type:"string"`
3787
3788	// The Redis engine patch version used by the cluster
3789	EnginePatchVersion *string `type:"string"`
3790
3791	// The Redis engine version used by the cluster
3792	EngineVersion *string `type:"string"`
3793
3794	// The ID of the KMS key used to encrypt the cluster
3795	KmsKeyId *string `type:"string"`
3796
3797	// Specifies the weekly time range during which maintenance on the cluster is
3798	// performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi
3799	// (24H Clock UTC). The minimum maintenance window is a 60 minute period.
3800	MaintenanceWindow *string `type:"string"`
3801
3802	// The user-supplied name of the cluster. This identifier is a unique key that
3803	// identifies a cluster.
3804	Name *string `type:"string"`
3805
3806	// The cluster's node type
3807	NodeType *string `type:"string"`
3808
3809	// The number of shards in the cluster
3810	NumberOfShards *int64 `type:"integer"`
3811
3812	// The name of the parameter group used by the cluster
3813	ParameterGroupName *string `type:"string"`
3814
3815	// The status of the parameter group used by the cluster, for example 'active'
3816	// or 'applying'.
3817	ParameterGroupStatus *string `type:"string"`
3818
3819	// A group of settings that are currently being applied.
3820	PendingUpdates *ClusterPendingUpdates `type:"structure"`
3821
3822	// A list of security groups used by the cluster
3823	SecurityGroups []*SecurityGroupMembership `type:"list"`
3824
3825	// A list of shards that are members of the cluster.
3826	Shards []*Shard `type:"list"`
3827
3828	// The number of days for which MemoryDB retains automatic snapshots before
3829	// deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot
3830	// that was taken today is retained for 5 days before being deleted.
3831	SnapshotRetentionLimit *int64 `type:"integer"`
3832
3833	// The daily time range (in UTC) during which MemoryDB begins taking a daily
3834	// snapshot of your shard. Example: 05:00-09:00 If you do not specify this parameter,
3835	// MemoryDB automatically chooses an appropriate time range.
3836	SnapshotWindow *string `type:"string"`
3837
3838	// The Amazon Resource Name (ARN) of the SNS notification topic
3839	SnsTopicArn *string `type:"string"`
3840
3841	// The SNS topic must be in Active status to receive notifications
3842	SnsTopicStatus *string `type:"string"`
3843
3844	// The status of the cluster. For example, Available, Updating, Creating.
3845	Status *string `type:"string"`
3846
3847	// The name of the subnet group used by the cluster
3848	SubnetGroupName *string `type:"string"`
3849
3850	// A flag to indicate if In-transit encryption is enabled
3851	TLSEnabled *bool `type:"boolean"`
3852}
3853
3854// String returns the string representation.
3855//
3856// API parameter values that are decorated as "sensitive" in the API will not
3857// be included in the string output. The member name will be present, but the
3858// value will be replaced with "sensitive".
3859func (s Cluster) String() string {
3860	return awsutil.Prettify(s)
3861}
3862
3863// GoString returns the string representation.
3864//
3865// API parameter values that are decorated as "sensitive" in the API will not
3866// be included in the string output. The member name will be present, but the
3867// value will be replaced with "sensitive".
3868func (s Cluster) GoString() string {
3869	return s.String()
3870}
3871
3872// SetACLName sets the ACLName field's value.
3873func (s *Cluster) SetACLName(v string) *Cluster {
3874	s.ACLName = &v
3875	return s
3876}
3877
3878// SetARN sets the ARN field's value.
3879func (s *Cluster) SetARN(v string) *Cluster {
3880	s.ARN = &v
3881	return s
3882}
3883
3884// SetAutoMinorVersionUpgrade sets the AutoMinorVersionUpgrade field's value.
3885func (s *Cluster) SetAutoMinorVersionUpgrade(v bool) *Cluster {
3886	s.AutoMinorVersionUpgrade = &v
3887	return s
3888}
3889
3890// SetAvailabilityMode sets the AvailabilityMode field's value.
3891func (s *Cluster) SetAvailabilityMode(v string) *Cluster {
3892	s.AvailabilityMode = &v
3893	return s
3894}
3895
3896// SetClusterEndpoint sets the ClusterEndpoint field's value.
3897func (s *Cluster) SetClusterEndpoint(v *Endpoint) *Cluster {
3898	s.ClusterEndpoint = v
3899	return s
3900}
3901
3902// SetDescription sets the Description field's value.
3903func (s *Cluster) SetDescription(v string) *Cluster {
3904	s.Description = &v
3905	return s
3906}
3907
3908// SetEnginePatchVersion sets the EnginePatchVersion field's value.
3909func (s *Cluster) SetEnginePatchVersion(v string) *Cluster {
3910	s.EnginePatchVersion = &v
3911	return s
3912}
3913
3914// SetEngineVersion sets the EngineVersion field's value.
3915func (s *Cluster) SetEngineVersion(v string) *Cluster {
3916	s.EngineVersion = &v
3917	return s
3918}
3919
3920// SetKmsKeyId sets the KmsKeyId field's value.
3921func (s *Cluster) SetKmsKeyId(v string) *Cluster {
3922	s.KmsKeyId = &v
3923	return s
3924}
3925
3926// SetMaintenanceWindow sets the MaintenanceWindow field's value.
3927func (s *Cluster) SetMaintenanceWindow(v string) *Cluster {
3928	s.MaintenanceWindow = &v
3929	return s
3930}
3931
3932// SetName sets the Name field's value.
3933func (s *Cluster) SetName(v string) *Cluster {
3934	s.Name = &v
3935	return s
3936}
3937
3938// SetNodeType sets the NodeType field's value.
3939func (s *Cluster) SetNodeType(v string) *Cluster {
3940	s.NodeType = &v
3941	return s
3942}
3943
3944// SetNumberOfShards sets the NumberOfShards field's value.
3945func (s *Cluster) SetNumberOfShards(v int64) *Cluster {
3946	s.NumberOfShards = &v
3947	return s
3948}
3949
3950// SetParameterGroupName sets the ParameterGroupName field's value.
3951func (s *Cluster) SetParameterGroupName(v string) *Cluster {
3952	s.ParameterGroupName = &v
3953	return s
3954}
3955
3956// SetParameterGroupStatus sets the ParameterGroupStatus field's value.
3957func (s *Cluster) SetParameterGroupStatus(v string) *Cluster {
3958	s.ParameterGroupStatus = &v
3959	return s
3960}
3961
3962// SetPendingUpdates sets the PendingUpdates field's value.
3963func (s *Cluster) SetPendingUpdates(v *ClusterPendingUpdates) *Cluster {
3964	s.PendingUpdates = v
3965	return s
3966}
3967
3968// SetSecurityGroups sets the SecurityGroups field's value.
3969func (s *Cluster) SetSecurityGroups(v []*SecurityGroupMembership) *Cluster {
3970	s.SecurityGroups = v
3971	return s
3972}
3973
3974// SetShards sets the Shards field's value.
3975func (s *Cluster) SetShards(v []*Shard) *Cluster {
3976	s.Shards = v
3977	return s
3978}
3979
3980// SetSnapshotRetentionLimit sets the SnapshotRetentionLimit field's value.
3981func (s *Cluster) SetSnapshotRetentionLimit(v int64) *Cluster {
3982	s.SnapshotRetentionLimit = &v
3983	return s
3984}
3985
3986// SetSnapshotWindow sets the SnapshotWindow field's value.
3987func (s *Cluster) SetSnapshotWindow(v string) *Cluster {
3988	s.SnapshotWindow = &v
3989	return s
3990}
3991
3992// SetSnsTopicArn sets the SnsTopicArn field's value.
3993func (s *Cluster) SetSnsTopicArn(v string) *Cluster {
3994	s.SnsTopicArn = &v
3995	return s
3996}
3997
3998// SetSnsTopicStatus sets the SnsTopicStatus field's value.
3999func (s *Cluster) SetSnsTopicStatus(v string) *Cluster {
4000	s.SnsTopicStatus = &v
4001	return s
4002}
4003
4004// SetStatus sets the Status field's value.
4005func (s *Cluster) SetStatus(v string) *Cluster {
4006	s.Status = &v
4007	return s
4008}
4009
4010// SetSubnetGroupName sets the SubnetGroupName field's value.
4011func (s *Cluster) SetSubnetGroupName(v string) *Cluster {
4012	s.SubnetGroupName = &v
4013	return s
4014}
4015
4016// SetTLSEnabled sets the TLSEnabled field's value.
4017func (s *Cluster) SetTLSEnabled(v bool) *Cluster {
4018	s.TLSEnabled = &v
4019	return s
4020}
4021
4022type ClusterAlreadyExistsFault struct {
4023	_            struct{}                  `type:"structure"`
4024	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4025
4026	Message_ *string `locationName:"message" type:"string"`
4027}
4028
4029// String returns the string representation.
4030//
4031// API parameter values that are decorated as "sensitive" in the API will not
4032// be included in the string output. The member name will be present, but the
4033// value will be replaced with "sensitive".
4034func (s ClusterAlreadyExistsFault) String() string {
4035	return awsutil.Prettify(s)
4036}
4037
4038// GoString returns the string representation.
4039//
4040// API parameter values that are decorated as "sensitive" in the API will not
4041// be included in the string output. The member name will be present, but the
4042// value will be replaced with "sensitive".
4043func (s ClusterAlreadyExistsFault) GoString() string {
4044	return s.String()
4045}
4046
4047func newErrorClusterAlreadyExistsFault(v protocol.ResponseMetadata) error {
4048	return &ClusterAlreadyExistsFault{
4049		RespMetadata: v,
4050	}
4051}
4052
4053// Code returns the exception type name.
4054func (s *ClusterAlreadyExistsFault) Code() string {
4055	return "ClusterAlreadyExistsFault"
4056}
4057
4058// Message returns the exception's message.
4059func (s *ClusterAlreadyExistsFault) Message() string {
4060	if s.Message_ != nil {
4061		return *s.Message_
4062	}
4063	return ""
4064}
4065
4066// OrigErr always returns nil, satisfies awserr.Error interface.
4067func (s *ClusterAlreadyExistsFault) OrigErr() error {
4068	return nil
4069}
4070
4071func (s *ClusterAlreadyExistsFault) Error() string {
4072	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4073}
4074
4075// Status code returns the HTTP status code for the request's response error.
4076func (s *ClusterAlreadyExistsFault) StatusCode() int {
4077	return s.RespMetadata.StatusCode
4078}
4079
4080// RequestID returns the service's response RequestID for request.
4081func (s *ClusterAlreadyExistsFault) RequestID() string {
4082	return s.RespMetadata.RequestID
4083}
4084
4085// A list of cluster configuration options.
4086type ClusterConfiguration struct {
4087	_ struct{} `type:"structure"`
4088
4089	// The description of the cluster configuration
4090	Description *string `type:"string"`
4091
4092	// The Redis engine version used by the cluster
4093	EngineVersion *string `type:"string"`
4094
4095	// The specified maintenance window for the cluster
4096	MaintenanceWindow *string `type:"string"`
4097
4098	// The name of the cluster
4099	Name *string `type:"string"`
4100
4101	// The node type used for the cluster
4102	NodeType *string `type:"string"`
4103
4104	// The number of shards in the cluster
4105	NumShards *int64 `type:"integer"`
4106
4107	// The name of parameter group used by the cluster
4108	ParameterGroupName *string `type:"string"`
4109
4110	// The port used by the cluster
4111	Port *int64 `type:"integer"`
4112
4113	// The list of shards in the cluster
4114	Shards []*ShardDetail `type:"list"`
4115
4116	// The snapshot retention limit set by the cluster
4117	SnapshotRetentionLimit *int64 `type:"integer"`
4118
4119	// The snapshot window set by the cluster
4120	SnapshotWindow *string `type:"string"`
4121
4122	// The name of the subnet group used by the cluster
4123	SubnetGroupName *string `type:"string"`
4124
4125	// The Amazon Resource Name (ARN) of the SNS notification topic for the cluster
4126	TopicArn *string `type:"string"`
4127
4128	// The ID of the VPC the cluster belongs to
4129	VpcId *string `type:"string"`
4130}
4131
4132// String returns the string representation.
4133//
4134// API parameter values that are decorated as "sensitive" in the API will not
4135// be included in the string output. The member name will be present, but the
4136// value will be replaced with "sensitive".
4137func (s ClusterConfiguration) String() string {
4138	return awsutil.Prettify(s)
4139}
4140
4141// GoString returns the string representation.
4142//
4143// API parameter values that are decorated as "sensitive" in the API will not
4144// be included in the string output. The member name will be present, but the
4145// value will be replaced with "sensitive".
4146func (s ClusterConfiguration) GoString() string {
4147	return s.String()
4148}
4149
4150// SetDescription sets the Description field's value.
4151func (s *ClusterConfiguration) SetDescription(v string) *ClusterConfiguration {
4152	s.Description = &v
4153	return s
4154}
4155
4156// SetEngineVersion sets the EngineVersion field's value.
4157func (s *ClusterConfiguration) SetEngineVersion(v string) *ClusterConfiguration {
4158	s.EngineVersion = &v
4159	return s
4160}
4161
4162// SetMaintenanceWindow sets the MaintenanceWindow field's value.
4163func (s *ClusterConfiguration) SetMaintenanceWindow(v string) *ClusterConfiguration {
4164	s.MaintenanceWindow = &v
4165	return s
4166}
4167
4168// SetName sets the Name field's value.
4169func (s *ClusterConfiguration) SetName(v string) *ClusterConfiguration {
4170	s.Name = &v
4171	return s
4172}
4173
4174// SetNodeType sets the NodeType field's value.
4175func (s *ClusterConfiguration) SetNodeType(v string) *ClusterConfiguration {
4176	s.NodeType = &v
4177	return s
4178}
4179
4180// SetNumShards sets the NumShards field's value.
4181func (s *ClusterConfiguration) SetNumShards(v int64) *ClusterConfiguration {
4182	s.NumShards = &v
4183	return s
4184}
4185
4186// SetParameterGroupName sets the ParameterGroupName field's value.
4187func (s *ClusterConfiguration) SetParameterGroupName(v string) *ClusterConfiguration {
4188	s.ParameterGroupName = &v
4189	return s
4190}
4191
4192// SetPort sets the Port field's value.
4193func (s *ClusterConfiguration) SetPort(v int64) *ClusterConfiguration {
4194	s.Port = &v
4195	return s
4196}
4197
4198// SetShards sets the Shards field's value.
4199func (s *ClusterConfiguration) SetShards(v []*ShardDetail) *ClusterConfiguration {
4200	s.Shards = v
4201	return s
4202}
4203
4204// SetSnapshotRetentionLimit sets the SnapshotRetentionLimit field's value.
4205func (s *ClusterConfiguration) SetSnapshotRetentionLimit(v int64) *ClusterConfiguration {
4206	s.SnapshotRetentionLimit = &v
4207	return s
4208}
4209
4210// SetSnapshotWindow sets the SnapshotWindow field's value.
4211func (s *ClusterConfiguration) SetSnapshotWindow(v string) *ClusterConfiguration {
4212	s.SnapshotWindow = &v
4213	return s
4214}
4215
4216// SetSubnetGroupName sets the SubnetGroupName field's value.
4217func (s *ClusterConfiguration) SetSubnetGroupName(v string) *ClusterConfiguration {
4218	s.SubnetGroupName = &v
4219	return s
4220}
4221
4222// SetTopicArn sets the TopicArn field's value.
4223func (s *ClusterConfiguration) SetTopicArn(v string) *ClusterConfiguration {
4224	s.TopicArn = &v
4225	return s
4226}
4227
4228// SetVpcId sets the VpcId field's value.
4229func (s *ClusterConfiguration) SetVpcId(v string) *ClusterConfiguration {
4230	s.VpcId = &v
4231	return s
4232}
4233
4234type ClusterNotFoundFault struct {
4235	_            struct{}                  `type:"structure"`
4236	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4237
4238	Message_ *string `locationName:"message" type:"string"`
4239}
4240
4241// String returns the string representation.
4242//
4243// API parameter values that are decorated as "sensitive" in the API will not
4244// be included in the string output. The member name will be present, but the
4245// value will be replaced with "sensitive".
4246func (s ClusterNotFoundFault) String() string {
4247	return awsutil.Prettify(s)
4248}
4249
4250// GoString returns the string representation.
4251//
4252// API parameter values that are decorated as "sensitive" in the API will not
4253// be included in the string output. The member name will be present, but the
4254// value will be replaced with "sensitive".
4255func (s ClusterNotFoundFault) GoString() string {
4256	return s.String()
4257}
4258
4259func newErrorClusterNotFoundFault(v protocol.ResponseMetadata) error {
4260	return &ClusterNotFoundFault{
4261		RespMetadata: v,
4262	}
4263}
4264
4265// Code returns the exception type name.
4266func (s *ClusterNotFoundFault) Code() string {
4267	return "ClusterNotFoundFault"
4268}
4269
4270// Message returns the exception's message.
4271func (s *ClusterNotFoundFault) Message() string {
4272	if s.Message_ != nil {
4273		return *s.Message_
4274	}
4275	return ""
4276}
4277
4278// OrigErr always returns nil, satisfies awserr.Error interface.
4279func (s *ClusterNotFoundFault) OrigErr() error {
4280	return nil
4281}
4282
4283func (s *ClusterNotFoundFault) Error() string {
4284	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4285}
4286
4287// Status code returns the HTTP status code for the request's response error.
4288func (s *ClusterNotFoundFault) StatusCode() int {
4289	return s.RespMetadata.StatusCode
4290}
4291
4292// RequestID returns the service's response RequestID for request.
4293func (s *ClusterNotFoundFault) RequestID() string {
4294	return s.RespMetadata.RequestID
4295}
4296
4297// A list of updates being applied to the cluster
4298type ClusterPendingUpdates struct {
4299	_ struct{} `type:"structure"`
4300
4301	// A list of ACLs associated with the cluster that are being updated
4302	ACLs *ACLsUpdateStatus `type:"structure"`
4303
4304	// The status of an online resharding operation.
4305	Resharding *ReshardingStatus `type:"structure"`
4306
4307	// A list of service updates being applied to the cluster
4308	ServiceUpdates []*PendingModifiedServiceUpdate `type:"list"`
4309}
4310
4311// String returns the string representation.
4312//
4313// API parameter values that are decorated as "sensitive" in the API will not
4314// be included in the string output. The member name will be present, but the
4315// value will be replaced with "sensitive".
4316func (s ClusterPendingUpdates) String() string {
4317	return awsutil.Prettify(s)
4318}
4319
4320// GoString returns the string representation.
4321//
4322// API parameter values that are decorated as "sensitive" in the API will not
4323// be included in the string output. The member name will be present, but the
4324// value will be replaced with "sensitive".
4325func (s ClusterPendingUpdates) GoString() string {
4326	return s.String()
4327}
4328
4329// SetACLs sets the ACLs field's value.
4330func (s *ClusterPendingUpdates) SetACLs(v *ACLsUpdateStatus) *ClusterPendingUpdates {
4331	s.ACLs = v
4332	return s
4333}
4334
4335// SetResharding sets the Resharding field's value.
4336func (s *ClusterPendingUpdates) SetResharding(v *ReshardingStatus) *ClusterPendingUpdates {
4337	s.Resharding = v
4338	return s
4339}
4340
4341// SetServiceUpdates sets the ServiceUpdates field's value.
4342func (s *ClusterPendingUpdates) SetServiceUpdates(v []*PendingModifiedServiceUpdate) *ClusterPendingUpdates {
4343	s.ServiceUpdates = v
4344	return s
4345}
4346
4347type ClusterQuotaForCustomerExceededFault struct {
4348	_            struct{}                  `type:"structure"`
4349	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4350
4351	Message_ *string `locationName:"message" type:"string"`
4352}
4353
4354// String returns the string representation.
4355//
4356// API parameter values that are decorated as "sensitive" in the API will not
4357// be included in the string output. The member name will be present, but the
4358// value will be replaced with "sensitive".
4359func (s ClusterQuotaForCustomerExceededFault) String() string {
4360	return awsutil.Prettify(s)
4361}
4362
4363// GoString returns the string representation.
4364//
4365// API parameter values that are decorated as "sensitive" in the API will not
4366// be included in the string output. The member name will be present, but the
4367// value will be replaced with "sensitive".
4368func (s ClusterQuotaForCustomerExceededFault) GoString() string {
4369	return s.String()
4370}
4371
4372func newErrorClusterQuotaForCustomerExceededFault(v protocol.ResponseMetadata) error {
4373	return &ClusterQuotaForCustomerExceededFault{
4374		RespMetadata: v,
4375	}
4376}
4377
4378// Code returns the exception type name.
4379func (s *ClusterQuotaForCustomerExceededFault) Code() string {
4380	return "ClusterQuotaForCustomerExceededFault"
4381}
4382
4383// Message returns the exception's message.
4384func (s *ClusterQuotaForCustomerExceededFault) Message() string {
4385	if s.Message_ != nil {
4386		return *s.Message_
4387	}
4388	return ""
4389}
4390
4391// OrigErr always returns nil, satisfies awserr.Error interface.
4392func (s *ClusterQuotaForCustomerExceededFault) OrigErr() error {
4393	return nil
4394}
4395
4396func (s *ClusterQuotaForCustomerExceededFault) Error() string {
4397	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4398}
4399
4400// Status code returns the HTTP status code for the request's response error.
4401func (s *ClusterQuotaForCustomerExceededFault) StatusCode() int {
4402	return s.RespMetadata.StatusCode
4403}
4404
4405// RequestID returns the service's response RequestID for request.
4406func (s *ClusterQuotaForCustomerExceededFault) RequestID() string {
4407	return s.RespMetadata.RequestID
4408}
4409
4410type CopySnapshotInput struct {
4411	_ struct{} `type:"structure"`
4412
4413	// The ID of the KMS key used to encrypt the target snapshot.
4414	KmsKeyId *string `type:"string"`
4415
4416	// The name of an existing snapshot from which to make a copy.
4417	//
4418	// SourceSnapshotName is a required field
4419	SourceSnapshotName *string `type:"string" required:"true"`
4420
4421	// A list of tags to be added to this resource. A tag is a key-value pair. A
4422	// tag key must be accompanied by a tag value, although null is accepted.
4423	Tags []*Tag `type:"list"`
4424
4425	// The Amazon S3 bucket to which the snapshot is exported. This parameter is
4426	// used only when exporting a snapshot for external access. When using this
4427	// parameter to export a snapshot, be sure MemoryDB has the needed permissions
4428	// to this S3 bucket. For more information, see Step 2: Grant MemoryDB Access
4429	// to Your Amazon S3 Bucket (https://docs.aws.amazon.com/MemoryDB/latest/devguide/snapshots-exporting.html).
4430	TargetBucket *string `type:"string"`
4431
4432	// A name for the snapshot copy. MemoryDB does not permit overwriting a snapshot,
4433	// therefore this name must be unique within its context - MemoryDB or an Amazon
4434	// S3 bucket if exporting.
4435	//
4436	// TargetSnapshotName is a required field
4437	TargetSnapshotName *string `type:"string" required:"true"`
4438}
4439
4440// String returns the string representation.
4441//
4442// API parameter values that are decorated as "sensitive" in the API will not
4443// be included in the string output. The member name will be present, but the
4444// value will be replaced with "sensitive".
4445func (s CopySnapshotInput) String() string {
4446	return awsutil.Prettify(s)
4447}
4448
4449// GoString returns the string representation.
4450//
4451// API parameter values that are decorated as "sensitive" in the API will not
4452// be included in the string output. The member name will be present, but the
4453// value will be replaced with "sensitive".
4454func (s CopySnapshotInput) GoString() string {
4455	return s.String()
4456}
4457
4458// Validate inspects the fields of the type to determine if they are valid.
4459func (s *CopySnapshotInput) Validate() error {
4460	invalidParams := request.ErrInvalidParams{Context: "CopySnapshotInput"}
4461	if s.SourceSnapshotName == nil {
4462		invalidParams.Add(request.NewErrParamRequired("SourceSnapshotName"))
4463	}
4464	if s.TargetSnapshotName == nil {
4465		invalidParams.Add(request.NewErrParamRequired("TargetSnapshotName"))
4466	}
4467
4468	if invalidParams.Len() > 0 {
4469		return invalidParams
4470	}
4471	return nil
4472}
4473
4474// SetKmsKeyId sets the KmsKeyId field's value.
4475func (s *CopySnapshotInput) SetKmsKeyId(v string) *CopySnapshotInput {
4476	s.KmsKeyId = &v
4477	return s
4478}
4479
4480// SetSourceSnapshotName sets the SourceSnapshotName field's value.
4481func (s *CopySnapshotInput) SetSourceSnapshotName(v string) *CopySnapshotInput {
4482	s.SourceSnapshotName = &v
4483	return s
4484}
4485
4486// SetTags sets the Tags field's value.
4487func (s *CopySnapshotInput) SetTags(v []*Tag) *CopySnapshotInput {
4488	s.Tags = v
4489	return s
4490}
4491
4492// SetTargetBucket sets the TargetBucket field's value.
4493func (s *CopySnapshotInput) SetTargetBucket(v string) *CopySnapshotInput {
4494	s.TargetBucket = &v
4495	return s
4496}
4497
4498// SetTargetSnapshotName sets the TargetSnapshotName field's value.
4499func (s *CopySnapshotInput) SetTargetSnapshotName(v string) *CopySnapshotInput {
4500	s.TargetSnapshotName = &v
4501	return s
4502}
4503
4504type CopySnapshotOutput struct {
4505	_ struct{} `type:"structure"`
4506
4507	// Represents a copy of an entire cluster as of the time when the snapshot was
4508	// taken.
4509	Snapshot *Snapshot `type:"structure"`
4510}
4511
4512// String returns the string representation.
4513//
4514// API parameter values that are decorated as "sensitive" in the API will not
4515// be included in the string output. The member name will be present, but the
4516// value will be replaced with "sensitive".
4517func (s CopySnapshotOutput) String() string {
4518	return awsutil.Prettify(s)
4519}
4520
4521// GoString returns the string representation.
4522//
4523// API parameter values that are decorated as "sensitive" in the API will not
4524// be included in the string output. The member name will be present, but the
4525// value will be replaced with "sensitive".
4526func (s CopySnapshotOutput) GoString() string {
4527	return s.String()
4528}
4529
4530// SetSnapshot sets the Snapshot field's value.
4531func (s *CopySnapshotOutput) SetSnapshot(v *Snapshot) *CopySnapshotOutput {
4532	s.Snapshot = v
4533	return s
4534}
4535
4536type CreateACLInput struct {
4537	_ struct{} `type:"structure"`
4538
4539	// The name of the Access Control List.
4540	//
4541	// ACLName is a required field
4542	ACLName *string `type:"string" required:"true"`
4543
4544	// A list of tags to be added to this resource. A tag is a key-value pair. A
4545	// tag key must be accompanied by a tag value, although null is accepted.
4546	Tags []*Tag `type:"list"`
4547
4548	// The list of users that belong to the Access Control List.
4549	UserNames []*string `min:"1" type:"list"`
4550}
4551
4552// String returns the string representation.
4553//
4554// API parameter values that are decorated as "sensitive" in the API will not
4555// be included in the string output. The member name will be present, but the
4556// value will be replaced with "sensitive".
4557func (s CreateACLInput) String() string {
4558	return awsutil.Prettify(s)
4559}
4560
4561// GoString returns the string representation.
4562//
4563// API parameter values that are decorated as "sensitive" in the API will not
4564// be included in the string output. The member name will be present, but the
4565// value will be replaced with "sensitive".
4566func (s CreateACLInput) GoString() string {
4567	return s.String()
4568}
4569
4570// Validate inspects the fields of the type to determine if they are valid.
4571func (s *CreateACLInput) Validate() error {
4572	invalidParams := request.ErrInvalidParams{Context: "CreateACLInput"}
4573	if s.ACLName == nil {
4574		invalidParams.Add(request.NewErrParamRequired("ACLName"))
4575	}
4576	if s.UserNames != nil && len(s.UserNames) < 1 {
4577		invalidParams.Add(request.NewErrParamMinLen("UserNames", 1))
4578	}
4579
4580	if invalidParams.Len() > 0 {
4581		return invalidParams
4582	}
4583	return nil
4584}
4585
4586// SetACLName sets the ACLName field's value.
4587func (s *CreateACLInput) SetACLName(v string) *CreateACLInput {
4588	s.ACLName = &v
4589	return s
4590}
4591
4592// SetTags sets the Tags field's value.
4593func (s *CreateACLInput) SetTags(v []*Tag) *CreateACLInput {
4594	s.Tags = v
4595	return s
4596}
4597
4598// SetUserNames sets the UserNames field's value.
4599func (s *CreateACLInput) SetUserNames(v []*string) *CreateACLInput {
4600	s.UserNames = v
4601	return s
4602}
4603
4604type CreateACLOutput struct {
4605	_ struct{} `type:"structure"`
4606
4607	// The newly-created Access Control List.
4608	ACL *ACL `type:"structure"`
4609}
4610
4611// String returns the string representation.
4612//
4613// API parameter values that are decorated as "sensitive" in the API will not
4614// be included in the string output. The member name will be present, but the
4615// value will be replaced with "sensitive".
4616func (s CreateACLOutput) String() string {
4617	return awsutil.Prettify(s)
4618}
4619
4620// GoString returns the string representation.
4621//
4622// API parameter values that are decorated as "sensitive" in the API will not
4623// be included in the string output. The member name will be present, but the
4624// value will be replaced with "sensitive".
4625func (s CreateACLOutput) GoString() string {
4626	return s.String()
4627}
4628
4629// SetACL sets the ACL field's value.
4630func (s *CreateACLOutput) SetACL(v *ACL) *CreateACLOutput {
4631	s.ACL = v
4632	return s
4633}
4634
4635type CreateClusterInput struct {
4636	_ struct{} `type:"structure"`
4637
4638	// The name of the Access Control List to associate with the cluster.
4639	//
4640	// ACLName is a required field
4641	ACLName *string `min:"1" type:"string" required:"true"`
4642
4643	// When set to true, the cluster will automatically receive minor engine version
4644	// upgrades after launch.
4645	AutoMinorVersionUpgrade *bool `type:"boolean"`
4646
4647	// The name of the cluster. This value must be unique as it also serves as the
4648	// cluster identifier.
4649	//
4650	// ClusterName is a required field
4651	ClusterName *string `type:"string" required:"true"`
4652
4653	// An optional description of the cluster.
4654	Description *string `type:"string"`
4655
4656	// The version number of the Redis engine to be used for the cluster.
4657	EngineVersion *string `type:"string"`
4658
4659	// The ID of the KMS key used to encrypt the cluster.
4660	KmsKeyId *string `type:"string"`
4661
4662	// Specifies the weekly time range during which maintenance on the cluster is
4663	// performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi
4664	// (24H Clock UTC). The minimum maintenance window is a 60 minute period.
4665	MaintenanceWindow *string `type:"string"`
4666
4667	// The compute and memory capacity of the nodes in the cluster.
4668	//
4669	// NodeType is a required field
4670	NodeType *string `type:"string" required:"true"`
4671
4672	// The number of replicas to apply to each shard. The default value is 1. The
4673	// maximum is 5.
4674	NumReplicasPerShard *int64 `type:"integer"`
4675
4676	// The number of shards the cluster will contain. The default value is 1.
4677	NumShards *int64 `type:"integer"`
4678
4679	// The name of the parameter group associated with the cluster.
4680	ParameterGroupName *string `type:"string"`
4681
4682	// The port number on which each of the nodes accepts connections.
4683	Port *int64 `type:"integer"`
4684
4685	// A list of security group names to associate with this cluster.
4686	SecurityGroupIds []*string `type:"list"`
4687
4688	// A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot
4689	// files stored in Amazon S3. The snapshot files are used to populate the new
4690	// cluster. The Amazon S3 object name in the ARN cannot contain any commas.
4691	SnapshotArns []*string `type:"list"`
4692
4693	// The name of a snapshot from which to restore data into the new cluster. The
4694	// snapshot status changes to restoring while the new cluster is being created.
4695	SnapshotName *string `type:"string"`
4696
4697	// The number of days for which MemoryDB retains automatic snapshots before
4698	// deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot
4699	// that was taken today is retained for 5 days before being deleted.
4700	SnapshotRetentionLimit *int64 `type:"integer"`
4701
4702	// The daily time range (in UTC) during which MemoryDB begins taking a daily
4703	// snapshot of your shard.
4704	//
4705	// Example: 05:00-09:00
4706	//
4707	// If you do not specify this parameter, MemoryDB automatically chooses an appropriate
4708	// time range.
4709	SnapshotWindow *string `type:"string"`
4710
4711	// The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
4712	// (SNS) topic to which notifications are sent.
4713	SnsTopicArn *string `type:"string"`
4714
4715	// The name of the subnet group to be used for the cluster.
4716	SubnetGroupName *string `type:"string"`
4717
4718	// A flag to enable in-transit encryption on the cluster.
4719	TLSEnabled *bool `type:"boolean"`
4720
4721	// A list of tags to be added to this resource. Tags are comma-separated key,value
4722	// pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as
4723	// shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue.
4724	Tags []*Tag `type:"list"`
4725}
4726
4727// String returns the string representation.
4728//
4729// API parameter values that are decorated as "sensitive" in the API will not
4730// be included in the string output. The member name will be present, but the
4731// value will be replaced with "sensitive".
4732func (s CreateClusterInput) String() string {
4733	return awsutil.Prettify(s)
4734}
4735
4736// GoString returns the string representation.
4737//
4738// API parameter values that are decorated as "sensitive" in the API will not
4739// be included in the string output. The member name will be present, but the
4740// value will be replaced with "sensitive".
4741func (s CreateClusterInput) GoString() string {
4742	return s.String()
4743}
4744
4745// Validate inspects the fields of the type to determine if they are valid.
4746func (s *CreateClusterInput) Validate() error {
4747	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
4748	if s.ACLName == nil {
4749		invalidParams.Add(request.NewErrParamRequired("ACLName"))
4750	}
4751	if s.ACLName != nil && len(*s.ACLName) < 1 {
4752		invalidParams.Add(request.NewErrParamMinLen("ACLName", 1))
4753	}
4754	if s.ClusterName == nil {
4755		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
4756	}
4757	if s.NodeType == nil {
4758		invalidParams.Add(request.NewErrParamRequired("NodeType"))
4759	}
4760
4761	if invalidParams.Len() > 0 {
4762		return invalidParams
4763	}
4764	return nil
4765}
4766
4767// SetACLName sets the ACLName field's value.
4768func (s *CreateClusterInput) SetACLName(v string) *CreateClusterInput {
4769	s.ACLName = &v
4770	return s
4771}
4772
4773// SetAutoMinorVersionUpgrade sets the AutoMinorVersionUpgrade field's value.
4774func (s *CreateClusterInput) SetAutoMinorVersionUpgrade(v bool) *CreateClusterInput {
4775	s.AutoMinorVersionUpgrade = &v
4776	return s
4777}
4778
4779// SetClusterName sets the ClusterName field's value.
4780func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput {
4781	s.ClusterName = &v
4782	return s
4783}
4784
4785// SetDescription sets the Description field's value.
4786func (s *CreateClusterInput) SetDescription(v string) *CreateClusterInput {
4787	s.Description = &v
4788	return s
4789}
4790
4791// SetEngineVersion sets the EngineVersion field's value.
4792func (s *CreateClusterInput) SetEngineVersion(v string) *CreateClusterInput {
4793	s.EngineVersion = &v
4794	return s
4795}
4796
4797// SetKmsKeyId sets the KmsKeyId field's value.
4798func (s *CreateClusterInput) SetKmsKeyId(v string) *CreateClusterInput {
4799	s.KmsKeyId = &v
4800	return s
4801}
4802
4803// SetMaintenanceWindow sets the MaintenanceWindow field's value.
4804func (s *CreateClusterInput) SetMaintenanceWindow(v string) *CreateClusterInput {
4805	s.MaintenanceWindow = &v
4806	return s
4807}
4808
4809// SetNodeType sets the NodeType field's value.
4810func (s *CreateClusterInput) SetNodeType(v string) *CreateClusterInput {
4811	s.NodeType = &v
4812	return s
4813}
4814
4815// SetNumReplicasPerShard sets the NumReplicasPerShard field's value.
4816func (s *CreateClusterInput) SetNumReplicasPerShard(v int64) *CreateClusterInput {
4817	s.NumReplicasPerShard = &v
4818	return s
4819}
4820
4821// SetNumShards sets the NumShards field's value.
4822func (s *CreateClusterInput) SetNumShards(v int64) *CreateClusterInput {
4823	s.NumShards = &v
4824	return s
4825}
4826
4827// SetParameterGroupName sets the ParameterGroupName field's value.
4828func (s *CreateClusterInput) SetParameterGroupName(v string) *CreateClusterInput {
4829	s.ParameterGroupName = &v
4830	return s
4831}
4832
4833// SetPort sets the Port field's value.
4834func (s *CreateClusterInput) SetPort(v int64) *CreateClusterInput {
4835	s.Port = &v
4836	return s
4837}
4838
4839// SetSecurityGroupIds sets the SecurityGroupIds field's value.
4840func (s *CreateClusterInput) SetSecurityGroupIds(v []*string) *CreateClusterInput {
4841	s.SecurityGroupIds = v
4842	return s
4843}
4844
4845// SetSnapshotArns sets the SnapshotArns field's value.
4846func (s *CreateClusterInput) SetSnapshotArns(v []*string) *CreateClusterInput {
4847	s.SnapshotArns = v
4848	return s
4849}
4850
4851// SetSnapshotName sets the SnapshotName field's value.
4852func (s *CreateClusterInput) SetSnapshotName(v string) *CreateClusterInput {
4853	s.SnapshotName = &v
4854	return s
4855}
4856
4857// SetSnapshotRetentionLimit sets the SnapshotRetentionLimit field's value.
4858func (s *CreateClusterInput) SetSnapshotRetentionLimit(v int64) *CreateClusterInput {
4859	s.SnapshotRetentionLimit = &v
4860	return s
4861}
4862
4863// SetSnapshotWindow sets the SnapshotWindow field's value.
4864func (s *CreateClusterInput) SetSnapshotWindow(v string) *CreateClusterInput {
4865	s.SnapshotWindow = &v
4866	return s
4867}
4868
4869// SetSnsTopicArn sets the SnsTopicArn field's value.
4870func (s *CreateClusterInput) SetSnsTopicArn(v string) *CreateClusterInput {
4871	s.SnsTopicArn = &v
4872	return s
4873}
4874
4875// SetSubnetGroupName sets the SubnetGroupName field's value.
4876func (s *CreateClusterInput) SetSubnetGroupName(v string) *CreateClusterInput {
4877	s.SubnetGroupName = &v
4878	return s
4879}
4880
4881// SetTLSEnabled sets the TLSEnabled field's value.
4882func (s *CreateClusterInput) SetTLSEnabled(v bool) *CreateClusterInput {
4883	s.TLSEnabled = &v
4884	return s
4885}
4886
4887// SetTags sets the Tags field's value.
4888func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput {
4889	s.Tags = v
4890	return s
4891}
4892
4893type CreateClusterOutput struct {
4894	_ struct{} `type:"structure"`
4895
4896	// The newly-created cluster.
4897	Cluster *Cluster `type:"structure"`
4898}
4899
4900// String returns the string representation.
4901//
4902// API parameter values that are decorated as "sensitive" in the API will not
4903// be included in the string output. The member name will be present, but the
4904// value will be replaced with "sensitive".
4905func (s CreateClusterOutput) String() string {
4906	return awsutil.Prettify(s)
4907}
4908
4909// GoString returns the string representation.
4910//
4911// API parameter values that are decorated as "sensitive" in the API will not
4912// be included in the string output. The member name will be present, but the
4913// value will be replaced with "sensitive".
4914func (s CreateClusterOutput) GoString() string {
4915	return s.String()
4916}
4917
4918// SetCluster sets the Cluster field's value.
4919func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput {
4920	s.Cluster = v
4921	return s
4922}
4923
4924type CreateParameterGroupInput struct {
4925	_ struct{} `type:"structure"`
4926
4927	// An optional description of the parameter group.
4928	Description *string `type:"string"`
4929
4930	// The name of the parameter group family that the parameter group can be used
4931	// with.
4932	//
4933	// Family is a required field
4934	Family *string `type:"string" required:"true"`
4935
4936	// The name of the parameter group.
4937	//
4938	// ParameterGroupName is a required field
4939	ParameterGroupName *string `type:"string" required:"true"`
4940
4941	// A list of tags to be added to this resource. A tag is a key-value pair. A
4942	// tag key must be accompanied by a tag value, although null is accepted.
4943	Tags []*Tag `type:"list"`
4944}
4945
4946// String returns the string representation.
4947//
4948// API parameter values that are decorated as "sensitive" in the API will not
4949// be included in the string output. The member name will be present, but the
4950// value will be replaced with "sensitive".
4951func (s CreateParameterGroupInput) String() string {
4952	return awsutil.Prettify(s)
4953}
4954
4955// GoString returns the string representation.
4956//
4957// API parameter values that are decorated as "sensitive" in the API will not
4958// be included in the string output. The member name will be present, but the
4959// value will be replaced with "sensitive".
4960func (s CreateParameterGroupInput) GoString() string {
4961	return s.String()
4962}
4963
4964// Validate inspects the fields of the type to determine if they are valid.
4965func (s *CreateParameterGroupInput) Validate() error {
4966	invalidParams := request.ErrInvalidParams{Context: "CreateParameterGroupInput"}
4967	if s.Family == nil {
4968		invalidParams.Add(request.NewErrParamRequired("Family"))
4969	}
4970	if s.ParameterGroupName == nil {
4971		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
4972	}
4973
4974	if invalidParams.Len() > 0 {
4975		return invalidParams
4976	}
4977	return nil
4978}
4979
4980// SetDescription sets the Description field's value.
4981func (s *CreateParameterGroupInput) SetDescription(v string) *CreateParameterGroupInput {
4982	s.Description = &v
4983	return s
4984}
4985
4986// SetFamily sets the Family field's value.
4987func (s *CreateParameterGroupInput) SetFamily(v string) *CreateParameterGroupInput {
4988	s.Family = &v
4989	return s
4990}
4991
4992// SetParameterGroupName sets the ParameterGroupName field's value.
4993func (s *CreateParameterGroupInput) SetParameterGroupName(v string) *CreateParameterGroupInput {
4994	s.ParameterGroupName = &v
4995	return s
4996}
4997
4998// SetTags sets the Tags field's value.
4999func (s *CreateParameterGroupInput) SetTags(v []*Tag) *CreateParameterGroupInput {
5000	s.Tags = v
5001	return s
5002}
5003
5004type CreateParameterGroupOutput struct {
5005	_ struct{} `type:"structure"`
5006
5007	// The newly-created parameter group.
5008	ParameterGroup *ParameterGroup `type:"structure"`
5009}
5010
5011// String returns the string representation.
5012//
5013// API parameter values that are decorated as "sensitive" in the API will not
5014// be included in the string output. The member name will be present, but the
5015// value will be replaced with "sensitive".
5016func (s CreateParameterGroupOutput) String() string {
5017	return awsutil.Prettify(s)
5018}
5019
5020// GoString returns the string representation.
5021//
5022// API parameter values that are decorated as "sensitive" in the API will not
5023// be included in the string output. The member name will be present, but the
5024// value will be replaced with "sensitive".
5025func (s CreateParameterGroupOutput) GoString() string {
5026	return s.String()
5027}
5028
5029// SetParameterGroup sets the ParameterGroup field's value.
5030func (s *CreateParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *CreateParameterGroupOutput {
5031	s.ParameterGroup = v
5032	return s
5033}
5034
5035type CreateSnapshotInput struct {
5036	_ struct{} `type:"structure"`
5037
5038	// The snapshot is created from this cluster.
5039	//
5040	// ClusterName is a required field
5041	ClusterName *string `type:"string" required:"true"`
5042
5043	// The ID of the KMS key used to encrypt the snapshot.
5044	KmsKeyId *string `type:"string"`
5045
5046	// A name for the snapshot being created.
5047	//
5048	// SnapshotName is a required field
5049	SnapshotName *string `type:"string" required:"true"`
5050
5051	// A list of tags to be added to this resource. A tag is a key-value pair. A
5052	// tag key must be accompanied by a tag value, although null is accepted.
5053	Tags []*Tag `type:"list"`
5054}
5055
5056// String returns the string representation.
5057//
5058// API parameter values that are decorated as "sensitive" in the API will not
5059// be included in the string output. The member name will be present, but the
5060// value will be replaced with "sensitive".
5061func (s CreateSnapshotInput) String() string {
5062	return awsutil.Prettify(s)
5063}
5064
5065// GoString returns the string representation.
5066//
5067// API parameter values that are decorated as "sensitive" in the API will not
5068// be included in the string output. The member name will be present, but the
5069// value will be replaced with "sensitive".
5070func (s CreateSnapshotInput) GoString() string {
5071	return s.String()
5072}
5073
5074// Validate inspects the fields of the type to determine if they are valid.
5075func (s *CreateSnapshotInput) Validate() error {
5076	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
5077	if s.ClusterName == nil {
5078		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5079	}
5080	if s.SnapshotName == nil {
5081		invalidParams.Add(request.NewErrParamRequired("SnapshotName"))
5082	}
5083
5084	if invalidParams.Len() > 0 {
5085		return invalidParams
5086	}
5087	return nil
5088}
5089
5090// SetClusterName sets the ClusterName field's value.
5091func (s *CreateSnapshotInput) SetClusterName(v string) *CreateSnapshotInput {
5092	s.ClusterName = &v
5093	return s
5094}
5095
5096// SetKmsKeyId sets the KmsKeyId field's value.
5097func (s *CreateSnapshotInput) SetKmsKeyId(v string) *CreateSnapshotInput {
5098	s.KmsKeyId = &v
5099	return s
5100}
5101
5102// SetSnapshotName sets the SnapshotName field's value.
5103func (s *CreateSnapshotInput) SetSnapshotName(v string) *CreateSnapshotInput {
5104	s.SnapshotName = &v
5105	return s
5106}
5107
5108// SetTags sets the Tags field's value.
5109func (s *CreateSnapshotInput) SetTags(v []*Tag) *CreateSnapshotInput {
5110	s.Tags = v
5111	return s
5112}
5113
5114type CreateSnapshotOutput struct {
5115	_ struct{} `type:"structure"`
5116
5117	// The newly-created snapshot.
5118	Snapshot *Snapshot `type:"structure"`
5119}
5120
5121// String returns the string representation.
5122//
5123// API parameter values that are decorated as "sensitive" in the API will not
5124// be included in the string output. The member name will be present, but the
5125// value will be replaced with "sensitive".
5126func (s CreateSnapshotOutput) String() string {
5127	return awsutil.Prettify(s)
5128}
5129
5130// GoString returns the string representation.
5131//
5132// API parameter values that are decorated as "sensitive" in the API will not
5133// be included in the string output. The member name will be present, but the
5134// value will be replaced with "sensitive".
5135func (s CreateSnapshotOutput) GoString() string {
5136	return s.String()
5137}
5138
5139// SetSnapshot sets the Snapshot field's value.
5140func (s *CreateSnapshotOutput) SetSnapshot(v *Snapshot) *CreateSnapshotOutput {
5141	s.Snapshot = v
5142	return s
5143}
5144
5145type CreateSubnetGroupInput struct {
5146	_ struct{} `type:"structure"`
5147
5148	// A description for the subnet group.
5149	Description *string `type:"string"`
5150
5151	// The name of the subnet group.
5152	//
5153	// SubnetGroupName is a required field
5154	SubnetGroupName *string `type:"string" required:"true"`
5155
5156	// A list of VPC subnet IDs for the subnet group.
5157	//
5158	// SubnetIds is a required field
5159	SubnetIds []*string `type:"list" required:"true"`
5160
5161	// A list of tags to be added to this resource. A tag is a key-value pair. A
5162	// tag key must be accompanied by a tag value, although null is accepted.
5163	Tags []*Tag `type:"list"`
5164}
5165
5166// String returns the string representation.
5167//
5168// API parameter values that are decorated as "sensitive" in the API will not
5169// be included in the string output. The member name will be present, but the
5170// value will be replaced with "sensitive".
5171func (s CreateSubnetGroupInput) String() string {
5172	return awsutil.Prettify(s)
5173}
5174
5175// GoString returns the string representation.
5176//
5177// API parameter values that are decorated as "sensitive" in the API will not
5178// be included in the string output. The member name will be present, but the
5179// value will be replaced with "sensitive".
5180func (s CreateSubnetGroupInput) GoString() string {
5181	return s.String()
5182}
5183
5184// Validate inspects the fields of the type to determine if they are valid.
5185func (s *CreateSubnetGroupInput) Validate() error {
5186	invalidParams := request.ErrInvalidParams{Context: "CreateSubnetGroupInput"}
5187	if s.SubnetGroupName == nil {
5188		invalidParams.Add(request.NewErrParamRequired("SubnetGroupName"))
5189	}
5190	if s.SubnetIds == nil {
5191		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
5192	}
5193
5194	if invalidParams.Len() > 0 {
5195		return invalidParams
5196	}
5197	return nil
5198}
5199
5200// SetDescription sets the Description field's value.
5201func (s *CreateSubnetGroupInput) SetDescription(v string) *CreateSubnetGroupInput {
5202	s.Description = &v
5203	return s
5204}
5205
5206// SetSubnetGroupName sets the SubnetGroupName field's value.
5207func (s *CreateSubnetGroupInput) SetSubnetGroupName(v string) *CreateSubnetGroupInput {
5208	s.SubnetGroupName = &v
5209	return s
5210}
5211
5212// SetSubnetIds sets the SubnetIds field's value.
5213func (s *CreateSubnetGroupInput) SetSubnetIds(v []*string) *CreateSubnetGroupInput {
5214	s.SubnetIds = v
5215	return s
5216}
5217
5218// SetTags sets the Tags field's value.
5219func (s *CreateSubnetGroupInput) SetTags(v []*Tag) *CreateSubnetGroupInput {
5220	s.Tags = v
5221	return s
5222}
5223
5224type CreateSubnetGroupOutput struct {
5225	_ struct{} `type:"structure"`
5226
5227	// The newly-created subnet group
5228	SubnetGroup *SubnetGroup `type:"structure"`
5229}
5230
5231// String returns the string representation.
5232//
5233// API parameter values that are decorated as "sensitive" in the API will not
5234// be included in the string output. The member name will be present, but the
5235// value will be replaced with "sensitive".
5236func (s CreateSubnetGroupOutput) String() string {
5237	return awsutil.Prettify(s)
5238}
5239
5240// GoString returns the string representation.
5241//
5242// API parameter values that are decorated as "sensitive" in the API will not
5243// be included in the string output. The member name will be present, but the
5244// value will be replaced with "sensitive".
5245func (s CreateSubnetGroupOutput) GoString() string {
5246	return s.String()
5247}
5248
5249// SetSubnetGroup sets the SubnetGroup field's value.
5250func (s *CreateSubnetGroupOutput) SetSubnetGroup(v *SubnetGroup) *CreateSubnetGroupOutput {
5251	s.SubnetGroup = v
5252	return s
5253}
5254
5255type CreateUserInput struct {
5256	_ struct{} `type:"structure"`
5257
5258	// Access permissions string used for this user.
5259	//
5260	// AccessString is a required field
5261	AccessString *string `type:"string" required:"true"`
5262
5263	// Denotes the user's authentication properties, such as whether it requires
5264	// a password to authenticate.
5265	//
5266	// AuthenticationMode is a required field
5267	AuthenticationMode *AuthenticationMode `type:"structure" required:"true"`
5268
5269	// A list of tags to be added to this resource. A tag is a key-value pair. A
5270	// tag key must be accompanied by a tag value, although null is accepted.
5271	Tags []*Tag `type:"list"`
5272
5273	// The name of the user. This value must be unique as it also serves as the
5274	// user identifier.
5275	//
5276	// UserName is a required field
5277	UserName *string `min:"1" type:"string" required:"true"`
5278}
5279
5280// String returns the string representation.
5281//
5282// API parameter values that are decorated as "sensitive" in the API will not
5283// be included in the string output. The member name will be present, but the
5284// value will be replaced with "sensitive".
5285func (s CreateUserInput) String() string {
5286	return awsutil.Prettify(s)
5287}
5288
5289// GoString returns the string representation.
5290//
5291// API parameter values that are decorated as "sensitive" in the API will not
5292// be included in the string output. The member name will be present, but the
5293// value will be replaced with "sensitive".
5294func (s CreateUserInput) GoString() string {
5295	return s.String()
5296}
5297
5298// Validate inspects the fields of the type to determine if they are valid.
5299func (s *CreateUserInput) Validate() error {
5300	invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
5301	if s.AccessString == nil {
5302		invalidParams.Add(request.NewErrParamRequired("AccessString"))
5303	}
5304	if s.AuthenticationMode == nil {
5305		invalidParams.Add(request.NewErrParamRequired("AuthenticationMode"))
5306	}
5307	if s.UserName == nil {
5308		invalidParams.Add(request.NewErrParamRequired("UserName"))
5309	}
5310	if s.UserName != nil && len(*s.UserName) < 1 {
5311		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
5312	}
5313	if s.AuthenticationMode != nil {
5314		if err := s.AuthenticationMode.Validate(); err != nil {
5315			invalidParams.AddNested("AuthenticationMode", err.(request.ErrInvalidParams))
5316		}
5317	}
5318
5319	if invalidParams.Len() > 0 {
5320		return invalidParams
5321	}
5322	return nil
5323}
5324
5325// SetAccessString sets the AccessString field's value.
5326func (s *CreateUserInput) SetAccessString(v string) *CreateUserInput {
5327	s.AccessString = &v
5328	return s
5329}
5330
5331// SetAuthenticationMode sets the AuthenticationMode field's value.
5332func (s *CreateUserInput) SetAuthenticationMode(v *AuthenticationMode) *CreateUserInput {
5333	s.AuthenticationMode = v
5334	return s
5335}
5336
5337// SetTags sets the Tags field's value.
5338func (s *CreateUserInput) SetTags(v []*Tag) *CreateUserInput {
5339	s.Tags = v
5340	return s
5341}
5342
5343// SetUserName sets the UserName field's value.
5344func (s *CreateUserInput) SetUserName(v string) *CreateUserInput {
5345	s.UserName = &v
5346	return s
5347}
5348
5349type CreateUserOutput struct {
5350	_ struct{} `type:"structure"`
5351
5352	// The newly-created user.
5353	User *User `type:"structure"`
5354}
5355
5356// String returns the string representation.
5357//
5358// API parameter values that are decorated as "sensitive" in the API will not
5359// be included in the string output. The member name will be present, but the
5360// value will be replaced with "sensitive".
5361func (s CreateUserOutput) String() string {
5362	return awsutil.Prettify(s)
5363}
5364
5365// GoString returns the string representation.
5366//
5367// API parameter values that are decorated as "sensitive" in the API will not
5368// be included in the string output. The member name will be present, but the
5369// value will be replaced with "sensitive".
5370func (s CreateUserOutput) GoString() string {
5371	return s.String()
5372}
5373
5374// SetUser sets the User field's value.
5375func (s *CreateUserOutput) SetUser(v *User) *CreateUserOutput {
5376	s.User = v
5377	return s
5378}
5379
5380type DefaultUserRequired struct {
5381	_            struct{}                  `type:"structure"`
5382	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5383
5384	Message_ *string `locationName:"message" type:"string"`
5385}
5386
5387// String returns the string representation.
5388//
5389// API parameter values that are decorated as "sensitive" in the API will not
5390// be included in the string output. The member name will be present, but the
5391// value will be replaced with "sensitive".
5392func (s DefaultUserRequired) String() string {
5393	return awsutil.Prettify(s)
5394}
5395
5396// GoString returns the string representation.
5397//
5398// API parameter values that are decorated as "sensitive" in the API will not
5399// be included in the string output. The member name will be present, but the
5400// value will be replaced with "sensitive".
5401func (s DefaultUserRequired) GoString() string {
5402	return s.String()
5403}
5404
5405func newErrorDefaultUserRequired(v protocol.ResponseMetadata) error {
5406	return &DefaultUserRequired{
5407		RespMetadata: v,
5408	}
5409}
5410
5411// Code returns the exception type name.
5412func (s *DefaultUserRequired) Code() string {
5413	return "DefaultUserRequired"
5414}
5415
5416// Message returns the exception's message.
5417func (s *DefaultUserRequired) Message() string {
5418	if s.Message_ != nil {
5419		return *s.Message_
5420	}
5421	return ""
5422}
5423
5424// OrigErr always returns nil, satisfies awserr.Error interface.
5425func (s *DefaultUserRequired) OrigErr() error {
5426	return nil
5427}
5428
5429func (s *DefaultUserRequired) Error() string {
5430	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5431}
5432
5433// Status code returns the HTTP status code for the request's response error.
5434func (s *DefaultUserRequired) StatusCode() int {
5435	return s.RespMetadata.StatusCode
5436}
5437
5438// RequestID returns the service's response RequestID for request.
5439func (s *DefaultUserRequired) RequestID() string {
5440	return s.RespMetadata.RequestID
5441}
5442
5443type DeleteACLInput struct {
5444	_ struct{} `type:"structure"`
5445
5446	// The name of the Access Control List to delete
5447	//
5448	// ACLName is a required field
5449	ACLName *string `type:"string" required:"true"`
5450}
5451
5452// String returns the string representation.
5453//
5454// API parameter values that are decorated as "sensitive" in the API will not
5455// be included in the string output. The member name will be present, but the
5456// value will be replaced with "sensitive".
5457func (s DeleteACLInput) String() string {
5458	return awsutil.Prettify(s)
5459}
5460
5461// GoString returns the string representation.
5462//
5463// API parameter values that are decorated as "sensitive" in the API will not
5464// be included in the string output. The member name will be present, but the
5465// value will be replaced with "sensitive".
5466func (s DeleteACLInput) GoString() string {
5467	return s.String()
5468}
5469
5470// Validate inspects the fields of the type to determine if they are valid.
5471func (s *DeleteACLInput) Validate() error {
5472	invalidParams := request.ErrInvalidParams{Context: "DeleteACLInput"}
5473	if s.ACLName == nil {
5474		invalidParams.Add(request.NewErrParamRequired("ACLName"))
5475	}
5476
5477	if invalidParams.Len() > 0 {
5478		return invalidParams
5479	}
5480	return nil
5481}
5482
5483// SetACLName sets the ACLName field's value.
5484func (s *DeleteACLInput) SetACLName(v string) *DeleteACLInput {
5485	s.ACLName = &v
5486	return s
5487}
5488
5489type DeleteACLOutput struct {
5490	_ struct{} `type:"structure"`
5491
5492	// The Access Control List object that has been deleted.
5493	ACL *ACL `type:"structure"`
5494}
5495
5496// String returns the string representation.
5497//
5498// API parameter values that are decorated as "sensitive" in the API will not
5499// be included in the string output. The member name will be present, but the
5500// value will be replaced with "sensitive".
5501func (s DeleteACLOutput) String() string {
5502	return awsutil.Prettify(s)
5503}
5504
5505// GoString returns the string representation.
5506//
5507// API parameter values that are decorated as "sensitive" in the API will not
5508// be included in the string output. The member name will be present, but the
5509// value will be replaced with "sensitive".
5510func (s DeleteACLOutput) GoString() string {
5511	return s.String()
5512}
5513
5514// SetACL sets the ACL field's value.
5515func (s *DeleteACLOutput) SetACL(v *ACL) *DeleteACLOutput {
5516	s.ACL = v
5517	return s
5518}
5519
5520type DeleteClusterInput struct {
5521	_ struct{} `type:"structure"`
5522
5523	// The name of the cluster to be deleted
5524	//
5525	// ClusterName is a required field
5526	ClusterName *string `type:"string" required:"true"`
5527
5528	// The user-supplied name of a final cluster snapshot. This is the unique name
5529	// that identifies the snapshot. MemoryDB creates the snapshot, and then deletes
5530	// the cluster immediately afterward.
5531	FinalSnapshotName *string `type:"string"`
5532}
5533
5534// String returns the string representation.
5535//
5536// API parameter values that are decorated as "sensitive" in the API will not
5537// be included in the string output. The member name will be present, but the
5538// value will be replaced with "sensitive".
5539func (s DeleteClusterInput) String() string {
5540	return awsutil.Prettify(s)
5541}
5542
5543// GoString returns the string representation.
5544//
5545// API parameter values that are decorated as "sensitive" in the API will not
5546// be included in the string output. The member name will be present, but the
5547// value will be replaced with "sensitive".
5548func (s DeleteClusterInput) GoString() string {
5549	return s.String()
5550}
5551
5552// Validate inspects the fields of the type to determine if they are valid.
5553func (s *DeleteClusterInput) Validate() error {
5554	invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"}
5555	if s.ClusterName == nil {
5556		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
5557	}
5558
5559	if invalidParams.Len() > 0 {
5560		return invalidParams
5561	}
5562	return nil
5563}
5564
5565// SetClusterName sets the ClusterName field's value.
5566func (s *DeleteClusterInput) SetClusterName(v string) *DeleteClusterInput {
5567	s.ClusterName = &v
5568	return s
5569}
5570
5571// SetFinalSnapshotName sets the FinalSnapshotName field's value.
5572func (s *DeleteClusterInput) SetFinalSnapshotName(v string) *DeleteClusterInput {
5573	s.FinalSnapshotName = &v
5574	return s
5575}
5576
5577type DeleteClusterOutput struct {
5578	_ struct{} `type:"structure"`
5579
5580	// The cluster object that has been deleted
5581	Cluster *Cluster `type:"structure"`
5582}
5583
5584// String returns the string representation.
5585//
5586// API parameter values that are decorated as "sensitive" in the API will not
5587// be included in the string output. The member name will be present, but the
5588// value will be replaced with "sensitive".
5589func (s DeleteClusterOutput) String() string {
5590	return awsutil.Prettify(s)
5591}
5592
5593// GoString returns the string representation.
5594//
5595// API parameter values that are decorated as "sensitive" in the API will not
5596// be included in the string output. The member name will be present, but the
5597// value will be replaced with "sensitive".
5598func (s DeleteClusterOutput) GoString() string {
5599	return s.String()
5600}
5601
5602// SetCluster sets the Cluster field's value.
5603func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput {
5604	s.Cluster = v
5605	return s
5606}
5607
5608type DeleteParameterGroupInput struct {
5609	_ struct{} `type:"structure"`
5610
5611	// The name of the parameter group to delete.
5612	//
5613	// ParameterGroupName is a required field
5614	ParameterGroupName *string `type:"string" required:"true"`
5615}
5616
5617// String returns the string representation.
5618//
5619// API parameter values that are decorated as "sensitive" in the API will not
5620// be included in the string output. The member name will be present, but the
5621// value will be replaced with "sensitive".
5622func (s DeleteParameterGroupInput) String() string {
5623	return awsutil.Prettify(s)
5624}
5625
5626// GoString returns the string representation.
5627//
5628// API parameter values that are decorated as "sensitive" in the API will not
5629// be included in the string output. The member name will be present, but the
5630// value will be replaced with "sensitive".
5631func (s DeleteParameterGroupInput) GoString() string {
5632	return s.String()
5633}
5634
5635// Validate inspects the fields of the type to determine if they are valid.
5636func (s *DeleteParameterGroupInput) Validate() error {
5637	invalidParams := request.ErrInvalidParams{Context: "DeleteParameterGroupInput"}
5638	if s.ParameterGroupName == nil {
5639		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
5640	}
5641
5642	if invalidParams.Len() > 0 {
5643		return invalidParams
5644	}
5645	return nil
5646}
5647
5648// SetParameterGroupName sets the ParameterGroupName field's value.
5649func (s *DeleteParameterGroupInput) SetParameterGroupName(v string) *DeleteParameterGroupInput {
5650	s.ParameterGroupName = &v
5651	return s
5652}
5653
5654type DeleteParameterGroupOutput struct {
5655	_ struct{} `type:"structure"`
5656
5657	// The parameter group that has been deleted.
5658	ParameterGroup *ParameterGroup `type:"structure"`
5659}
5660
5661// String returns the string representation.
5662//
5663// API parameter values that are decorated as "sensitive" in the API will not
5664// be included in the string output. The member name will be present, but the
5665// value will be replaced with "sensitive".
5666func (s DeleteParameterGroupOutput) String() string {
5667	return awsutil.Prettify(s)
5668}
5669
5670// GoString returns the string representation.
5671//
5672// API parameter values that are decorated as "sensitive" in the API will not
5673// be included in the string output. The member name will be present, but the
5674// value will be replaced with "sensitive".
5675func (s DeleteParameterGroupOutput) GoString() string {
5676	return s.String()
5677}
5678
5679// SetParameterGroup sets the ParameterGroup field's value.
5680func (s *DeleteParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *DeleteParameterGroupOutput {
5681	s.ParameterGroup = v
5682	return s
5683}
5684
5685type DeleteSnapshotInput struct {
5686	_ struct{} `type:"structure"`
5687
5688	// The name of the snapshot to delete
5689	//
5690	// SnapshotName is a required field
5691	SnapshotName *string `type:"string" required:"true"`
5692}
5693
5694// String returns the string representation.
5695//
5696// API parameter values that are decorated as "sensitive" in the API will not
5697// be included in the string output. The member name will be present, but the
5698// value will be replaced with "sensitive".
5699func (s DeleteSnapshotInput) String() string {
5700	return awsutil.Prettify(s)
5701}
5702
5703// GoString returns the string representation.
5704//
5705// API parameter values that are decorated as "sensitive" in the API will not
5706// be included in the string output. The member name will be present, but the
5707// value will be replaced with "sensitive".
5708func (s DeleteSnapshotInput) GoString() string {
5709	return s.String()
5710}
5711
5712// Validate inspects the fields of the type to determine if they are valid.
5713func (s *DeleteSnapshotInput) Validate() error {
5714	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotInput"}
5715	if s.SnapshotName == nil {
5716		invalidParams.Add(request.NewErrParamRequired("SnapshotName"))
5717	}
5718
5719	if invalidParams.Len() > 0 {
5720		return invalidParams
5721	}
5722	return nil
5723}
5724
5725// SetSnapshotName sets the SnapshotName field's value.
5726func (s *DeleteSnapshotInput) SetSnapshotName(v string) *DeleteSnapshotInput {
5727	s.SnapshotName = &v
5728	return s
5729}
5730
5731type DeleteSnapshotOutput struct {
5732	_ struct{} `type:"structure"`
5733
5734	// The snapshot object that has been deleted.
5735	Snapshot *Snapshot `type:"structure"`
5736}
5737
5738// String returns the string representation.
5739//
5740// API parameter values that are decorated as "sensitive" in the API will not
5741// be included in the string output. The member name will be present, but the
5742// value will be replaced with "sensitive".
5743func (s DeleteSnapshotOutput) String() string {
5744	return awsutil.Prettify(s)
5745}
5746
5747// GoString returns the string representation.
5748//
5749// API parameter values that are decorated as "sensitive" in the API will not
5750// be included in the string output. The member name will be present, but the
5751// value will be replaced with "sensitive".
5752func (s DeleteSnapshotOutput) GoString() string {
5753	return s.String()
5754}
5755
5756// SetSnapshot sets the Snapshot field's value.
5757func (s *DeleteSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteSnapshotOutput {
5758	s.Snapshot = v
5759	return s
5760}
5761
5762type DeleteSubnetGroupInput struct {
5763	_ struct{} `type:"structure"`
5764
5765	// The name of the subnet group to delete
5766	//
5767	// SubnetGroupName is a required field
5768	SubnetGroupName *string `type:"string" required:"true"`
5769}
5770
5771// String returns the string representation.
5772//
5773// API parameter values that are decorated as "sensitive" in the API will not
5774// be included in the string output. The member name will be present, but the
5775// value will be replaced with "sensitive".
5776func (s DeleteSubnetGroupInput) String() string {
5777	return awsutil.Prettify(s)
5778}
5779
5780// GoString returns the string representation.
5781//
5782// API parameter values that are decorated as "sensitive" in the API will not
5783// be included in the string output. The member name will be present, but the
5784// value will be replaced with "sensitive".
5785func (s DeleteSubnetGroupInput) GoString() string {
5786	return s.String()
5787}
5788
5789// Validate inspects the fields of the type to determine if they are valid.
5790func (s *DeleteSubnetGroupInput) Validate() error {
5791	invalidParams := request.ErrInvalidParams{Context: "DeleteSubnetGroupInput"}
5792	if s.SubnetGroupName == nil {
5793		invalidParams.Add(request.NewErrParamRequired("SubnetGroupName"))
5794	}
5795
5796	if invalidParams.Len() > 0 {
5797		return invalidParams
5798	}
5799	return nil
5800}
5801
5802// SetSubnetGroupName sets the SubnetGroupName field's value.
5803func (s *DeleteSubnetGroupInput) SetSubnetGroupName(v string) *DeleteSubnetGroupInput {
5804	s.SubnetGroupName = &v
5805	return s
5806}
5807
5808type DeleteSubnetGroupOutput struct {
5809	_ struct{} `type:"structure"`
5810
5811	// The subnet group object that has been deleted.
5812	SubnetGroup *SubnetGroup `type:"structure"`
5813}
5814
5815// String returns the string representation.
5816//
5817// API parameter values that are decorated as "sensitive" in the API will not
5818// be included in the string output. The member name will be present, but the
5819// value will be replaced with "sensitive".
5820func (s DeleteSubnetGroupOutput) String() string {
5821	return awsutil.Prettify(s)
5822}
5823
5824// GoString returns the string representation.
5825//
5826// API parameter values that are decorated as "sensitive" in the API will not
5827// be included in the string output. The member name will be present, but the
5828// value will be replaced with "sensitive".
5829func (s DeleteSubnetGroupOutput) GoString() string {
5830	return s.String()
5831}
5832
5833// SetSubnetGroup sets the SubnetGroup field's value.
5834func (s *DeleteSubnetGroupOutput) SetSubnetGroup(v *SubnetGroup) *DeleteSubnetGroupOutput {
5835	s.SubnetGroup = v
5836	return s
5837}
5838
5839type DeleteUserInput struct {
5840	_ struct{} `type:"structure"`
5841
5842	// The name of the user to delete
5843	//
5844	// UserName is a required field
5845	UserName *string `min:"1" type:"string" required:"true"`
5846}
5847
5848// String returns the string representation.
5849//
5850// API parameter values that are decorated as "sensitive" in the API will not
5851// be included in the string output. The member name will be present, but the
5852// value will be replaced with "sensitive".
5853func (s DeleteUserInput) String() string {
5854	return awsutil.Prettify(s)
5855}
5856
5857// GoString returns the string representation.
5858//
5859// API parameter values that are decorated as "sensitive" in the API will not
5860// be included in the string output. The member name will be present, but the
5861// value will be replaced with "sensitive".
5862func (s DeleteUserInput) GoString() string {
5863	return s.String()
5864}
5865
5866// Validate inspects the fields of the type to determine if they are valid.
5867func (s *DeleteUserInput) Validate() error {
5868	invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"}
5869	if s.UserName == nil {
5870		invalidParams.Add(request.NewErrParamRequired("UserName"))
5871	}
5872	if s.UserName != nil && len(*s.UserName) < 1 {
5873		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
5874	}
5875
5876	if invalidParams.Len() > 0 {
5877		return invalidParams
5878	}
5879	return nil
5880}
5881
5882// SetUserName sets the UserName field's value.
5883func (s *DeleteUserInput) SetUserName(v string) *DeleteUserInput {
5884	s.UserName = &v
5885	return s
5886}
5887
5888type DeleteUserOutput struct {
5889	_ struct{} `type:"structure"`
5890
5891	// The user object that has been deleted.
5892	User *User `type:"structure"`
5893}
5894
5895// String returns the string representation.
5896//
5897// API parameter values that are decorated as "sensitive" in the API will not
5898// be included in the string output. The member name will be present, but the
5899// value will be replaced with "sensitive".
5900func (s DeleteUserOutput) String() string {
5901	return awsutil.Prettify(s)
5902}
5903
5904// GoString returns the string representation.
5905//
5906// API parameter values that are decorated as "sensitive" in the API will not
5907// be included in the string output. The member name will be present, but the
5908// value will be replaced with "sensitive".
5909func (s DeleteUserOutput) GoString() string {
5910	return s.String()
5911}
5912
5913// SetUser sets the User field's value.
5914func (s *DeleteUserOutput) SetUser(v *User) *DeleteUserOutput {
5915	s.User = v
5916	return s
5917}
5918
5919type DescribeACLsInput struct {
5920	_ struct{} `type:"structure"`
5921
5922	// The name of the ACL
5923	ACLName *string `type:"string"`
5924
5925	// The maximum number of records to include in the response. If more records
5926	// exist than the specified MaxResults value, a token is included in the response
5927	// so that the remaining results can be retrieved.
5928	MaxResults *int64 `type:"integer"`
5929
5930	// An optional argument to pass in case the total number of records exceeds
5931	// the value of MaxResults. If nextToken is returned, there are more results
5932	// available. The value of nextToken is a unique pagination token for each page.
5933	// Make the call again using the returned token to retrieve the next page. Keep
5934	// all other arguments unchanged.
5935	NextToken *string `type:"string"`
5936}
5937
5938// String returns the string representation.
5939//
5940// API parameter values that are decorated as "sensitive" in the API will not
5941// be included in the string output. The member name will be present, but the
5942// value will be replaced with "sensitive".
5943func (s DescribeACLsInput) String() string {
5944	return awsutil.Prettify(s)
5945}
5946
5947// GoString returns the string representation.
5948//
5949// API parameter values that are decorated as "sensitive" in the API will not
5950// be included in the string output. The member name will be present, but the
5951// value will be replaced with "sensitive".
5952func (s DescribeACLsInput) GoString() string {
5953	return s.String()
5954}
5955
5956// SetACLName sets the ACLName field's value.
5957func (s *DescribeACLsInput) SetACLName(v string) *DescribeACLsInput {
5958	s.ACLName = &v
5959	return s
5960}
5961
5962// SetMaxResults sets the MaxResults field's value.
5963func (s *DescribeACLsInput) SetMaxResults(v int64) *DescribeACLsInput {
5964	s.MaxResults = &v
5965	return s
5966}
5967
5968// SetNextToken sets the NextToken field's value.
5969func (s *DescribeACLsInput) SetNextToken(v string) *DescribeACLsInput {
5970	s.NextToken = &v
5971	return s
5972}
5973
5974type DescribeACLsOutput struct {
5975	_ struct{} `type:"structure"`
5976
5977	// The list of ACLs
5978	ACLs []*ACL `type:"list"`
5979
5980	// If nextToken is returned, there are more results available. The value of
5981	// nextToken is a unique pagination token for each page. Make the call again
5982	// using the returned token to retrieve the next page. Keep all other arguments
5983	// unchanged.
5984	NextToken *string `type:"string"`
5985}
5986
5987// String returns the string representation.
5988//
5989// API parameter values that are decorated as "sensitive" in the API will not
5990// be included in the string output. The member name will be present, but the
5991// value will be replaced with "sensitive".
5992func (s DescribeACLsOutput) String() string {
5993	return awsutil.Prettify(s)
5994}
5995
5996// GoString returns the string representation.
5997//
5998// API parameter values that are decorated as "sensitive" in the API will not
5999// be included in the string output. The member name will be present, but the
6000// value will be replaced with "sensitive".
6001func (s DescribeACLsOutput) GoString() string {
6002	return s.String()
6003}
6004
6005// SetACLs sets the ACLs field's value.
6006func (s *DescribeACLsOutput) SetACLs(v []*ACL) *DescribeACLsOutput {
6007	s.ACLs = v
6008	return s
6009}
6010
6011// SetNextToken sets the NextToken field's value.
6012func (s *DescribeACLsOutput) SetNextToken(v string) *DescribeACLsOutput {
6013	s.NextToken = &v
6014	return s
6015}
6016
6017type DescribeClustersInput struct {
6018	_ struct{} `type:"structure"`
6019
6020	// The name of the cluster
6021	ClusterName *string `type:"string"`
6022
6023	// The maximum number of records to include in the response. If more records
6024	// exist than the specified MaxResults value, a token is included in the response
6025	// so that the remaining results can be retrieved.
6026	MaxResults *int64 `type:"integer"`
6027
6028	// An optional argument to pass in case the total number of records exceeds
6029	// the value of MaxResults. If nextToken is returned, there are more results
6030	// available. The value of nextToken is a unique pagination token for each page.
6031	// Make the call again using the returned token to retrieve the next page. Keep
6032	// all other arguments unchanged.
6033	NextToken *string `type:"string"`
6034
6035	// An optional flag that can be included in the request to retrieve information
6036	// about the individual shard(s).
6037	ShowShardDetails *bool `type:"boolean"`
6038}
6039
6040// String returns the string representation.
6041//
6042// API parameter values that are decorated as "sensitive" in the API will not
6043// be included in the string output. The member name will be present, but the
6044// value will be replaced with "sensitive".
6045func (s DescribeClustersInput) String() string {
6046	return awsutil.Prettify(s)
6047}
6048
6049// GoString returns the string representation.
6050//
6051// API parameter values that are decorated as "sensitive" in the API will not
6052// be included in the string output. The member name will be present, but the
6053// value will be replaced with "sensitive".
6054func (s DescribeClustersInput) GoString() string {
6055	return s.String()
6056}
6057
6058// SetClusterName sets the ClusterName field's value.
6059func (s *DescribeClustersInput) SetClusterName(v string) *DescribeClustersInput {
6060	s.ClusterName = &v
6061	return s
6062}
6063
6064// SetMaxResults sets the MaxResults field's value.
6065func (s *DescribeClustersInput) SetMaxResults(v int64) *DescribeClustersInput {
6066	s.MaxResults = &v
6067	return s
6068}
6069
6070// SetNextToken sets the NextToken field's value.
6071func (s *DescribeClustersInput) SetNextToken(v string) *DescribeClustersInput {
6072	s.NextToken = &v
6073	return s
6074}
6075
6076// SetShowShardDetails sets the ShowShardDetails field's value.
6077func (s *DescribeClustersInput) SetShowShardDetails(v bool) *DescribeClustersInput {
6078	s.ShowShardDetails = &v
6079	return s
6080}
6081
6082type DescribeClustersOutput struct {
6083	_ struct{} `type:"structure"`
6084
6085	// A list of clusters
6086	Clusters []*Cluster `type:"list"`
6087
6088	// An optional argument to pass in case the total number of records exceeds
6089	// the value of MaxResults. If nextToken is returned, there are more results
6090	// available. The value of nextToken is a unique pagination token for each page.
6091	// Make the call again using the returned token to retrieve the next page. Keep
6092	// all other arguments unchanged.
6093	NextToken *string `type:"string"`
6094}
6095
6096// String returns the string representation.
6097//
6098// API parameter values that are decorated as "sensitive" in the API will not
6099// be included in the string output. The member name will be present, but the
6100// value will be replaced with "sensitive".
6101func (s DescribeClustersOutput) String() string {
6102	return awsutil.Prettify(s)
6103}
6104
6105// GoString returns the string representation.
6106//
6107// API parameter values that are decorated as "sensitive" in the API will not
6108// be included in the string output. The member name will be present, but the
6109// value will be replaced with "sensitive".
6110func (s DescribeClustersOutput) GoString() string {
6111	return s.String()
6112}
6113
6114// SetClusters sets the Clusters field's value.
6115func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput {
6116	s.Clusters = v
6117	return s
6118}
6119
6120// SetNextToken sets the NextToken field's value.
6121func (s *DescribeClustersOutput) SetNextToken(v string) *DescribeClustersOutput {
6122	s.NextToken = &v
6123	return s
6124}
6125
6126type DescribeEngineVersionsInput struct {
6127	_ struct{} `type:"structure"`
6128
6129	// If true, specifies that only the default version of the specified engine
6130	// or engine and major version combination is to be returned.
6131	DefaultOnly *bool `type:"boolean"`
6132
6133	// The Redis engine version
6134	EngineVersion *string `type:"string"`
6135
6136	// The maximum number of records to include in the response. If more records
6137	// exist than the specified MaxResults value, a token is included in the response
6138	// so that the remaining results can be retrieved.
6139	MaxResults *int64 `type:"integer"`
6140
6141	// An optional argument to pass in case the total number of records exceeds
6142	// the value of MaxResults. If nextToken is returned, there are more results
6143	// available. The value of nextToken is a unique pagination token for each page.
6144	// Make the call again using the returned token to retrieve the next page. Keep
6145	// all other arguments unchanged.
6146	NextToken *string `type:"string"`
6147
6148	// The name of a specific parameter group family to return details for.
6149	ParameterGroupFamily *string `type:"string"`
6150}
6151
6152// String returns the string representation.
6153//
6154// API parameter values that are decorated as "sensitive" in the API will not
6155// be included in the string output. The member name will be present, but the
6156// value will be replaced with "sensitive".
6157func (s DescribeEngineVersionsInput) String() string {
6158	return awsutil.Prettify(s)
6159}
6160
6161// GoString returns the string representation.
6162//
6163// API parameter values that are decorated as "sensitive" in the API will not
6164// be included in the string output. The member name will be present, but the
6165// value will be replaced with "sensitive".
6166func (s DescribeEngineVersionsInput) GoString() string {
6167	return s.String()
6168}
6169
6170// SetDefaultOnly sets the DefaultOnly field's value.
6171func (s *DescribeEngineVersionsInput) SetDefaultOnly(v bool) *DescribeEngineVersionsInput {
6172	s.DefaultOnly = &v
6173	return s
6174}
6175
6176// SetEngineVersion sets the EngineVersion field's value.
6177func (s *DescribeEngineVersionsInput) SetEngineVersion(v string) *DescribeEngineVersionsInput {
6178	s.EngineVersion = &v
6179	return s
6180}
6181
6182// SetMaxResults sets the MaxResults field's value.
6183func (s *DescribeEngineVersionsInput) SetMaxResults(v int64) *DescribeEngineVersionsInput {
6184	s.MaxResults = &v
6185	return s
6186}
6187
6188// SetNextToken sets the NextToken field's value.
6189func (s *DescribeEngineVersionsInput) SetNextToken(v string) *DescribeEngineVersionsInput {
6190	s.NextToken = &v
6191	return s
6192}
6193
6194// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
6195func (s *DescribeEngineVersionsInput) SetParameterGroupFamily(v string) *DescribeEngineVersionsInput {
6196	s.ParameterGroupFamily = &v
6197	return s
6198}
6199
6200type DescribeEngineVersionsOutput struct {
6201	_ struct{} `type:"structure"`
6202
6203	// A list of engine version details. Each element in the list contains detailed
6204	// information about one engine version.
6205	EngineVersions []*EngineVersionInfo `type:"list"`
6206
6207	// An optional argument to pass in case the total number of records exceeds
6208	// the value of MaxResults. If nextToken is returned, there are more results
6209	// available. The value of nextToken is a unique pagination token for each page.
6210	// Make the call again using the returned token to retrieve the next page. Keep
6211	// all other arguments unchanged.
6212	NextToken *string `type:"string"`
6213}
6214
6215// String returns the string representation.
6216//
6217// API parameter values that are decorated as "sensitive" in the API will not
6218// be included in the string output. The member name will be present, but the
6219// value will be replaced with "sensitive".
6220func (s DescribeEngineVersionsOutput) String() string {
6221	return awsutil.Prettify(s)
6222}
6223
6224// GoString returns the string representation.
6225//
6226// API parameter values that are decorated as "sensitive" in the API will not
6227// be included in the string output. The member name will be present, but the
6228// value will be replaced with "sensitive".
6229func (s DescribeEngineVersionsOutput) GoString() string {
6230	return s.String()
6231}
6232
6233// SetEngineVersions sets the EngineVersions field's value.
6234func (s *DescribeEngineVersionsOutput) SetEngineVersions(v []*EngineVersionInfo) *DescribeEngineVersionsOutput {
6235	s.EngineVersions = v
6236	return s
6237}
6238
6239// SetNextToken sets the NextToken field's value.
6240func (s *DescribeEngineVersionsOutput) SetNextToken(v string) *DescribeEngineVersionsOutput {
6241	s.NextToken = &v
6242	return s
6243}
6244
6245type DescribeEventsInput struct {
6246	_ struct{} `type:"structure"`
6247
6248	// The number of minutes worth of events to retrieve.
6249	Duration *int64 `type:"integer"`
6250
6251	// The end of the time interval for which to retrieve events, specified in ISO
6252	// 8601 format. Example: 2017-03-30T07:03:49.555Z
6253	EndTime *time.Time `type:"timestamp"`
6254
6255	// The maximum number of records to include in the response. If more records
6256	// exist than the specified MaxResults value, a token is included in the response
6257	// so that the remaining results can be retrieved.
6258	MaxResults *int64 `type:"integer"`
6259
6260	// An optional argument to pass in case the total number of records exceeds
6261	// the value of MaxResults. If nextToken is returned, there are more results
6262	// available. The value of nextToken is a unique pagination token for each page.
6263	// Make the call again using the returned token to retrieve the next page. Keep
6264	// all other arguments unchanged.
6265	NextToken *string `type:"string"`
6266
6267	// The identifier of the event source for which events are returned. If not
6268	// specified, all sources are included in the response.
6269	SourceName *string `type:"string"`
6270
6271	// The event source to retrieve events for. If no value is specified, all events
6272	// are returned.
6273	SourceType *string `type:"string" enum:"SourceType"`
6274
6275	// The beginning of the time interval to retrieve events for, specified in ISO
6276	// 8601 format. Example: 2017-03-30T07:03:49.555Z
6277	StartTime *time.Time `type:"timestamp"`
6278}
6279
6280// String returns the string representation.
6281//
6282// API parameter values that are decorated as "sensitive" in the API will not
6283// be included in the string output. The member name will be present, but the
6284// value will be replaced with "sensitive".
6285func (s DescribeEventsInput) String() string {
6286	return awsutil.Prettify(s)
6287}
6288
6289// GoString returns the string representation.
6290//
6291// API parameter values that are decorated as "sensitive" in the API will not
6292// be included in the string output. The member name will be present, but the
6293// value will be replaced with "sensitive".
6294func (s DescribeEventsInput) GoString() string {
6295	return s.String()
6296}
6297
6298// SetDuration sets the Duration field's value.
6299func (s *DescribeEventsInput) SetDuration(v int64) *DescribeEventsInput {
6300	s.Duration = &v
6301	return s
6302}
6303
6304// SetEndTime sets the EndTime field's value.
6305func (s *DescribeEventsInput) SetEndTime(v time.Time) *DescribeEventsInput {
6306	s.EndTime = &v
6307	return s
6308}
6309
6310// SetMaxResults sets the MaxResults field's value.
6311func (s *DescribeEventsInput) SetMaxResults(v int64) *DescribeEventsInput {
6312	s.MaxResults = &v
6313	return s
6314}
6315
6316// SetNextToken sets the NextToken field's value.
6317func (s *DescribeEventsInput) SetNextToken(v string) *DescribeEventsInput {
6318	s.NextToken = &v
6319	return s
6320}
6321
6322// SetSourceName sets the SourceName field's value.
6323func (s *DescribeEventsInput) SetSourceName(v string) *DescribeEventsInput {
6324	s.SourceName = &v
6325	return s
6326}
6327
6328// SetSourceType sets the SourceType field's value.
6329func (s *DescribeEventsInput) SetSourceType(v string) *DescribeEventsInput {
6330	s.SourceType = &v
6331	return s
6332}
6333
6334// SetStartTime sets the StartTime field's value.
6335func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput {
6336	s.StartTime = &v
6337	return s
6338}
6339
6340type DescribeEventsOutput struct {
6341	_ struct{} `type:"structure"`
6342
6343	// A list of events. Each element in the list contains detailed information
6344	// about one event.
6345	Events []*Event `type:"list"`
6346
6347	// An optional argument to pass in case the total number of records exceeds
6348	// the value of MaxResults. If nextToken is returned, there are more results
6349	// available. The value of nextToken is a unique pagination token for each page.
6350	// Make the call again using the returned token to retrieve the next page. Keep
6351	// all other arguments unchanged.
6352	NextToken *string `type:"string"`
6353}
6354
6355// String returns the string representation.
6356//
6357// API parameter values that are decorated as "sensitive" in the API will not
6358// be included in the string output. The member name will be present, but the
6359// value will be replaced with "sensitive".
6360func (s DescribeEventsOutput) String() string {
6361	return awsutil.Prettify(s)
6362}
6363
6364// GoString returns the string representation.
6365//
6366// API parameter values that are decorated as "sensitive" in the API will not
6367// be included in the string output. The member name will be present, but the
6368// value will be replaced with "sensitive".
6369func (s DescribeEventsOutput) GoString() string {
6370	return s.String()
6371}
6372
6373// SetEvents sets the Events field's value.
6374func (s *DescribeEventsOutput) SetEvents(v []*Event) *DescribeEventsOutput {
6375	s.Events = v
6376	return s
6377}
6378
6379// SetNextToken sets the NextToken field's value.
6380func (s *DescribeEventsOutput) SetNextToken(v string) *DescribeEventsOutput {
6381	s.NextToken = &v
6382	return s
6383}
6384
6385type DescribeParameterGroupsInput struct {
6386	_ struct{} `type:"structure"`
6387
6388	// The maximum number of records to include in the response. If more records
6389	// exist than the specified MaxResults value, a token is included in the response
6390	// so that the remaining results can be retrieved.
6391	MaxResults *int64 `type:"integer"`
6392
6393	// An optional argument to pass in case the total number of records exceeds
6394	// the value of MaxResults. If nextToken is returned, there are more results
6395	// available. The value of nextToken is a unique pagination token for each page.
6396	// Make the call again using the returned token to retrieve the next page. Keep
6397	// all other arguments unchanged.
6398	NextToken *string `type:"string"`
6399
6400	// The name of a specific parameter group to return details for.
6401	ParameterGroupName *string `type:"string"`
6402}
6403
6404// String returns the string representation.
6405//
6406// API parameter values that are decorated as "sensitive" in the API will not
6407// be included in the string output. The member name will be present, but the
6408// value will be replaced with "sensitive".
6409func (s DescribeParameterGroupsInput) String() string {
6410	return awsutil.Prettify(s)
6411}
6412
6413// GoString returns the string representation.
6414//
6415// API parameter values that are decorated as "sensitive" in the API will not
6416// be included in the string output. The member name will be present, but the
6417// value will be replaced with "sensitive".
6418func (s DescribeParameterGroupsInput) GoString() string {
6419	return s.String()
6420}
6421
6422// SetMaxResults sets the MaxResults field's value.
6423func (s *DescribeParameterGroupsInput) SetMaxResults(v int64) *DescribeParameterGroupsInput {
6424	s.MaxResults = &v
6425	return s
6426}
6427
6428// SetNextToken sets the NextToken field's value.
6429func (s *DescribeParameterGroupsInput) SetNextToken(v string) *DescribeParameterGroupsInput {
6430	s.NextToken = &v
6431	return s
6432}
6433
6434// SetParameterGroupName sets the ParameterGroupName field's value.
6435func (s *DescribeParameterGroupsInput) SetParameterGroupName(v string) *DescribeParameterGroupsInput {
6436	s.ParameterGroupName = &v
6437	return s
6438}
6439
6440type DescribeParameterGroupsOutput struct {
6441	_ struct{} `type:"structure"`
6442
6443	// An optional argument to pass in case the total number of records exceeds
6444	// the value of MaxResults. If nextToken is returned, there are more results
6445	// available. The value of nextToken is a unique pagination token for each page.
6446	// Make the call again using the returned token to retrieve the next page. Keep
6447	// all other arguments unchanged.
6448	NextToken *string `type:"string"`
6449
6450	// A list of parameter groups. Each element in the list contains detailed information
6451	// about one parameter group.
6452	ParameterGroups []*ParameterGroup `type:"list"`
6453}
6454
6455// String returns the string representation.
6456//
6457// API parameter values that are decorated as "sensitive" in the API will not
6458// be included in the string output. The member name will be present, but the
6459// value will be replaced with "sensitive".
6460func (s DescribeParameterGroupsOutput) String() string {
6461	return awsutil.Prettify(s)
6462}
6463
6464// GoString returns the string representation.
6465//
6466// API parameter values that are decorated as "sensitive" in the API will not
6467// be included in the string output. The member name will be present, but the
6468// value will be replaced with "sensitive".
6469func (s DescribeParameterGroupsOutput) GoString() string {
6470	return s.String()
6471}
6472
6473// SetNextToken sets the NextToken field's value.
6474func (s *DescribeParameterGroupsOutput) SetNextToken(v string) *DescribeParameterGroupsOutput {
6475	s.NextToken = &v
6476	return s
6477}
6478
6479// SetParameterGroups sets the ParameterGroups field's value.
6480func (s *DescribeParameterGroupsOutput) SetParameterGroups(v []*ParameterGroup) *DescribeParameterGroupsOutput {
6481	s.ParameterGroups = v
6482	return s
6483}
6484
6485type DescribeParametersInput struct {
6486	_ struct{} `type:"structure"`
6487
6488	// The maximum number of records to include in the response. If more records
6489	// exist than the specified MaxResults value, a token is included in the response
6490	// so that the remaining results can be retrieved.
6491	MaxResults *int64 `type:"integer"`
6492
6493	// An optional argument to pass in case the total number of records exceeds
6494	// the value of MaxResults. If nextToken is returned, there are more results
6495	// available. The value of nextToken is a unique pagination token for each page.
6496	// Make the call again using the returned token to retrieve the next page. Keep
6497	// all other arguments unchanged.
6498	NextToken *string `type:"string"`
6499
6500	// he name of a specific parameter group to return details for.
6501	//
6502	// ParameterGroupName is a required field
6503	ParameterGroupName *string `type:"string" required:"true"`
6504}
6505
6506// String returns the string representation.
6507//
6508// API parameter values that are decorated as "sensitive" in the API will not
6509// be included in the string output. The member name will be present, but the
6510// value will be replaced with "sensitive".
6511func (s DescribeParametersInput) String() string {
6512	return awsutil.Prettify(s)
6513}
6514
6515// GoString returns the string representation.
6516//
6517// API parameter values that are decorated as "sensitive" in the API will not
6518// be included in the string output. The member name will be present, but the
6519// value will be replaced with "sensitive".
6520func (s DescribeParametersInput) GoString() string {
6521	return s.String()
6522}
6523
6524// Validate inspects the fields of the type to determine if they are valid.
6525func (s *DescribeParametersInput) Validate() error {
6526	invalidParams := request.ErrInvalidParams{Context: "DescribeParametersInput"}
6527	if s.ParameterGroupName == nil {
6528		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
6529	}
6530
6531	if invalidParams.Len() > 0 {
6532		return invalidParams
6533	}
6534	return nil
6535}
6536
6537// SetMaxResults sets the MaxResults field's value.
6538func (s *DescribeParametersInput) SetMaxResults(v int64) *DescribeParametersInput {
6539	s.MaxResults = &v
6540	return s
6541}
6542
6543// SetNextToken sets the NextToken field's value.
6544func (s *DescribeParametersInput) SetNextToken(v string) *DescribeParametersInput {
6545	s.NextToken = &v
6546	return s
6547}
6548
6549// SetParameterGroupName sets the ParameterGroupName field's value.
6550func (s *DescribeParametersInput) SetParameterGroupName(v string) *DescribeParametersInput {
6551	s.ParameterGroupName = &v
6552	return s
6553}
6554
6555type DescribeParametersOutput struct {
6556	_ struct{} `type:"structure"`
6557
6558	// An optional argument to pass in case the total number of records exceeds
6559	// the value of MaxResults. If nextToken is returned, there are more results
6560	// available. The value of nextToken is a unique pagination token for each page.
6561	// Make the call again using the returned token to retrieve the next page. Keep
6562	// all other arguments unchanged.
6563	NextToken *string `type:"string"`
6564
6565	// A list of parameters specific to a particular parameter group. Each element
6566	// in the list contains detailed information about one parameter.
6567	Parameters []*Parameter `type:"list"`
6568}
6569
6570// String returns the string representation.
6571//
6572// API parameter values that are decorated as "sensitive" in the API will not
6573// be included in the string output. The member name will be present, but the
6574// value will be replaced with "sensitive".
6575func (s DescribeParametersOutput) String() string {
6576	return awsutil.Prettify(s)
6577}
6578
6579// GoString returns the string representation.
6580//
6581// API parameter values that are decorated as "sensitive" in the API will not
6582// be included in the string output. The member name will be present, but the
6583// value will be replaced with "sensitive".
6584func (s DescribeParametersOutput) GoString() string {
6585	return s.String()
6586}
6587
6588// SetNextToken sets the NextToken field's value.
6589func (s *DescribeParametersOutput) SetNextToken(v string) *DescribeParametersOutput {
6590	s.NextToken = &v
6591	return s
6592}
6593
6594// SetParameters sets the Parameters field's value.
6595func (s *DescribeParametersOutput) SetParameters(v []*Parameter) *DescribeParametersOutput {
6596	s.Parameters = v
6597	return s
6598}
6599
6600type DescribeServiceUpdatesInput struct {
6601	_ struct{} `type:"structure"`
6602
6603	// The list of cluster names to identify service updates to apply
6604	ClusterNames []*string `type:"list"`
6605
6606	// The maximum number of records to include in the response. If more records
6607	// exist than the specified MaxResults value, a token is included in the response
6608	// so that the remaining results can be retrieved.
6609	MaxResults *int64 `type:"integer"`
6610
6611	// An optional argument to pass in case the total number of records exceeds
6612	// the value of MaxResults. If nextToken is returned, there are more results
6613	// available. The value of nextToken is a unique pagination token for each page.
6614	// Make the call again using the returned token to retrieve the next page. Keep
6615	// all other arguments unchanged.
6616	NextToken *string `type:"string"`
6617
6618	// The unique ID of the service update to describe.
6619	ServiceUpdateName *string `type:"string"`
6620
6621	// The status(es) of the service updates to filter on
6622	Status []*string `type:"list"`
6623}
6624
6625// String returns the string representation.
6626//
6627// API parameter values that are decorated as "sensitive" in the API will not
6628// be included in the string output. The member name will be present, but the
6629// value will be replaced with "sensitive".
6630func (s DescribeServiceUpdatesInput) String() string {
6631	return awsutil.Prettify(s)
6632}
6633
6634// GoString returns the string representation.
6635//
6636// API parameter values that are decorated as "sensitive" in the API will not
6637// be included in the string output. The member name will be present, but the
6638// value will be replaced with "sensitive".
6639func (s DescribeServiceUpdatesInput) GoString() string {
6640	return s.String()
6641}
6642
6643// SetClusterNames sets the ClusterNames field's value.
6644func (s *DescribeServiceUpdatesInput) SetClusterNames(v []*string) *DescribeServiceUpdatesInput {
6645	s.ClusterNames = v
6646	return s
6647}
6648
6649// SetMaxResults sets the MaxResults field's value.
6650func (s *DescribeServiceUpdatesInput) SetMaxResults(v int64) *DescribeServiceUpdatesInput {
6651	s.MaxResults = &v
6652	return s
6653}
6654
6655// SetNextToken sets the NextToken field's value.
6656func (s *DescribeServiceUpdatesInput) SetNextToken(v string) *DescribeServiceUpdatesInput {
6657	s.NextToken = &v
6658	return s
6659}
6660
6661// SetServiceUpdateName sets the ServiceUpdateName field's value.
6662func (s *DescribeServiceUpdatesInput) SetServiceUpdateName(v string) *DescribeServiceUpdatesInput {
6663	s.ServiceUpdateName = &v
6664	return s
6665}
6666
6667// SetStatus sets the Status field's value.
6668func (s *DescribeServiceUpdatesInput) SetStatus(v []*string) *DescribeServiceUpdatesInput {
6669	s.Status = v
6670	return s
6671}
6672
6673type DescribeServiceUpdatesOutput struct {
6674	_ struct{} `type:"structure"`
6675
6676	// An optional argument to pass in case the total number of records exceeds
6677	// the value of MaxResults. If nextToken is returned, there are more results
6678	// available. The value of nextToken is a unique pagination token for each page.
6679	// Make the call again using the returned token to retrieve the next page. Keep
6680	// all other arguments unchanged.
6681	NextToken *string `type:"string"`
6682
6683	// A list of service updates
6684	ServiceUpdates []*ServiceUpdate `type:"list"`
6685}
6686
6687// String returns the string representation.
6688//
6689// API parameter values that are decorated as "sensitive" in the API will not
6690// be included in the string output. The member name will be present, but the
6691// value will be replaced with "sensitive".
6692func (s DescribeServiceUpdatesOutput) String() string {
6693	return awsutil.Prettify(s)
6694}
6695
6696// GoString returns the string representation.
6697//
6698// API parameter values that are decorated as "sensitive" in the API will not
6699// be included in the string output. The member name will be present, but the
6700// value will be replaced with "sensitive".
6701func (s DescribeServiceUpdatesOutput) GoString() string {
6702	return s.String()
6703}
6704
6705// SetNextToken sets the NextToken field's value.
6706func (s *DescribeServiceUpdatesOutput) SetNextToken(v string) *DescribeServiceUpdatesOutput {
6707	s.NextToken = &v
6708	return s
6709}
6710
6711// SetServiceUpdates sets the ServiceUpdates field's value.
6712func (s *DescribeServiceUpdatesOutput) SetServiceUpdates(v []*ServiceUpdate) *DescribeServiceUpdatesOutput {
6713	s.ServiceUpdates = v
6714	return s
6715}
6716
6717type DescribeSnapshotsInput struct {
6718	_ struct{} `type:"structure"`
6719
6720	// A user-supplied cluster identifier. If this parameter is specified, only
6721	// snapshots associated with that specific cluster are described.
6722	ClusterName *string `type:"string"`
6723
6724	// The maximum number of records to include in the response. If more records
6725	// exist than the specified MaxResults value, a token is included in the response
6726	// so that the remaining results can be retrieved.
6727	MaxResults *int64 `type:"integer"`
6728
6729	// An optional argument to pass in case the total number of records exceeds
6730	// the value of MaxResults. If nextToken is returned, there are more results
6731	// available. The value of nextToken is a unique pagination token for each page.
6732	// Make the call again using the returned token to retrieve the next page. Keep
6733	// all other arguments unchanged.
6734	NextToken *string `type:"string"`
6735
6736	// A Boolean value which if true, the shard configuration is included in the
6737	// snapshot description.
6738	ShowDetail *bool `type:"boolean"`
6739
6740	// A user-supplied name of the snapshot. If this parameter is specified, only
6741	// this named snapshot is described.
6742	SnapshotName *string `type:"string"`
6743
6744	// If set to system, the output shows snapshots that were automatically created
6745	// by MemoryDB. If set to user the output shows snapshots that were manually
6746	// created. If omitted, the output shows both automatically and manually created
6747	// snapshots.
6748	Source *string `type:"string"`
6749}
6750
6751// String returns the string representation.
6752//
6753// API parameter values that are decorated as "sensitive" in the API will not
6754// be included in the string output. The member name will be present, but the
6755// value will be replaced with "sensitive".
6756func (s DescribeSnapshotsInput) String() string {
6757	return awsutil.Prettify(s)
6758}
6759
6760// GoString returns the string representation.
6761//
6762// API parameter values that are decorated as "sensitive" in the API will not
6763// be included in the string output. The member name will be present, but the
6764// value will be replaced with "sensitive".
6765func (s DescribeSnapshotsInput) GoString() string {
6766	return s.String()
6767}
6768
6769// SetClusterName sets the ClusterName field's value.
6770func (s *DescribeSnapshotsInput) SetClusterName(v string) *DescribeSnapshotsInput {
6771	s.ClusterName = &v
6772	return s
6773}
6774
6775// SetMaxResults sets the MaxResults field's value.
6776func (s *DescribeSnapshotsInput) SetMaxResults(v int64) *DescribeSnapshotsInput {
6777	s.MaxResults = &v
6778	return s
6779}
6780
6781// SetNextToken sets the NextToken field's value.
6782func (s *DescribeSnapshotsInput) SetNextToken(v string) *DescribeSnapshotsInput {
6783	s.NextToken = &v
6784	return s
6785}
6786
6787// SetShowDetail sets the ShowDetail field's value.
6788func (s *DescribeSnapshotsInput) SetShowDetail(v bool) *DescribeSnapshotsInput {
6789	s.ShowDetail = &v
6790	return s
6791}
6792
6793// SetSnapshotName sets the SnapshotName field's value.
6794func (s *DescribeSnapshotsInput) SetSnapshotName(v string) *DescribeSnapshotsInput {
6795	s.SnapshotName = &v
6796	return s
6797}
6798
6799// SetSource sets the Source field's value.
6800func (s *DescribeSnapshotsInput) SetSource(v string) *DescribeSnapshotsInput {
6801	s.Source = &v
6802	return s
6803}
6804
6805type DescribeSnapshotsOutput struct {
6806	_ struct{} `type:"structure"`
6807
6808	// An optional argument to pass in case the total number of records exceeds
6809	// the value of MaxResults. If nextToken is returned, there are more results
6810	// available. The value of nextToken is a unique pagination token for each page.
6811	// Make the call again using the returned token to retrieve the next page. Keep
6812	// all other arguments unchanged.
6813	NextToken *string `type:"string"`
6814
6815	// A list of snapshots. Each item in the list contains detailed information
6816	// about one snapshot.
6817	Snapshots []*Snapshot `type:"list"`
6818}
6819
6820// String returns the string representation.
6821//
6822// API parameter values that are decorated as "sensitive" in the API will not
6823// be included in the string output. The member name will be present, but the
6824// value will be replaced with "sensitive".
6825func (s DescribeSnapshotsOutput) String() string {
6826	return awsutil.Prettify(s)
6827}
6828
6829// GoString returns the string representation.
6830//
6831// API parameter values that are decorated as "sensitive" in the API will not
6832// be included in the string output. The member name will be present, but the
6833// value will be replaced with "sensitive".
6834func (s DescribeSnapshotsOutput) GoString() string {
6835	return s.String()
6836}
6837
6838// SetNextToken sets the NextToken field's value.
6839func (s *DescribeSnapshotsOutput) SetNextToken(v string) *DescribeSnapshotsOutput {
6840	s.NextToken = &v
6841	return s
6842}
6843
6844// SetSnapshots sets the Snapshots field's value.
6845func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshotsOutput {
6846	s.Snapshots = v
6847	return s
6848}
6849
6850type DescribeSubnetGroupsInput struct {
6851	_ struct{} `type:"structure"`
6852
6853	// The maximum number of records to include in the response. If more records
6854	// exist than the specified MaxResults value, a token is included in the response
6855	// so that the remaining results can be retrieved.
6856	MaxResults *int64 `type:"integer"`
6857
6858	// An optional argument to pass in case the total number of records exceeds
6859	// the value of MaxResults. If nextToken is returned, there are more results
6860	// available. The value of nextToken is a unique pagination token for each page.
6861	// Make the call again using the returned token to retrieve the next page. Keep
6862	// all other arguments unchanged.
6863	NextToken *string `type:"string"`
6864
6865	// The name of the subnet group to return details for.
6866	SubnetGroupName *string `type:"string"`
6867}
6868
6869// String returns the string representation.
6870//
6871// API parameter values that are decorated as "sensitive" in the API will not
6872// be included in the string output. The member name will be present, but the
6873// value will be replaced with "sensitive".
6874func (s DescribeSubnetGroupsInput) String() string {
6875	return awsutil.Prettify(s)
6876}
6877
6878// GoString returns the string representation.
6879//
6880// API parameter values that are decorated as "sensitive" in the API will not
6881// be included in the string output. The member name will be present, but the
6882// value will be replaced with "sensitive".
6883func (s DescribeSubnetGroupsInput) GoString() string {
6884	return s.String()
6885}
6886
6887// SetMaxResults sets the MaxResults field's value.
6888func (s *DescribeSubnetGroupsInput) SetMaxResults(v int64) *DescribeSubnetGroupsInput {
6889	s.MaxResults = &v
6890	return s
6891}
6892
6893// SetNextToken sets the NextToken field's value.
6894func (s *DescribeSubnetGroupsInput) SetNextToken(v string) *DescribeSubnetGroupsInput {
6895	s.NextToken = &v
6896	return s
6897}
6898
6899// SetSubnetGroupName sets the SubnetGroupName field's value.
6900func (s *DescribeSubnetGroupsInput) SetSubnetGroupName(v string) *DescribeSubnetGroupsInput {
6901	s.SubnetGroupName = &v
6902	return s
6903}
6904
6905type DescribeSubnetGroupsOutput struct {
6906	_ struct{} `type:"structure"`
6907
6908	// An optional argument to pass in case the total number of records exceeds
6909	// the value of MaxResults. If nextToken is returned, there are more results
6910	// available. The value of nextToken is a unique pagination token for each page.
6911	// Make the call again using the returned token to retrieve the next page. Keep
6912	// all other arguments unchanged.
6913	NextToken *string `type:"string"`
6914
6915	// A list of subnet groups. Each element in the list contains detailed information
6916	// about one group.
6917	SubnetGroups []*SubnetGroup `type:"list"`
6918}
6919
6920// String returns the string representation.
6921//
6922// API parameter values that are decorated as "sensitive" in the API will not
6923// be included in the string output. The member name will be present, but the
6924// value will be replaced with "sensitive".
6925func (s DescribeSubnetGroupsOutput) String() string {
6926	return awsutil.Prettify(s)
6927}
6928
6929// GoString returns the string representation.
6930//
6931// API parameter values that are decorated as "sensitive" in the API will not
6932// be included in the string output. The member name will be present, but the
6933// value will be replaced with "sensitive".
6934func (s DescribeSubnetGroupsOutput) GoString() string {
6935	return s.String()
6936}
6937
6938// SetNextToken sets the NextToken field's value.
6939func (s *DescribeSubnetGroupsOutput) SetNextToken(v string) *DescribeSubnetGroupsOutput {
6940	s.NextToken = &v
6941	return s
6942}
6943
6944// SetSubnetGroups sets the SubnetGroups field's value.
6945func (s *DescribeSubnetGroupsOutput) SetSubnetGroups(v []*SubnetGroup) *DescribeSubnetGroupsOutput {
6946	s.SubnetGroups = v
6947	return s
6948}
6949
6950type DescribeUsersInput struct {
6951	_ struct{} `type:"structure"`
6952
6953	// Filter to determine the list of users to return.
6954	Filters []*Filter `type:"list"`
6955
6956	// The maximum number of records to include in the response. If more records
6957	// exist than the specified MaxResults value, a token is included in the response
6958	// so that the remaining results can be retrieved.
6959	MaxResults *int64 `type:"integer"`
6960
6961	// An optional argument to pass in case the total number of records exceeds
6962	// the value of MaxResults. If nextToken is returned, there are more results
6963	// available. The value of nextToken is a unique pagination token for each page.
6964	// Make the call again using the returned token to retrieve the next page. Keep
6965	// all other arguments unchanged.
6966	NextToken *string `type:"string"`
6967
6968	// The name of the user
6969	UserName *string `min:"1" type:"string"`
6970}
6971
6972// String returns the string representation.
6973//
6974// API parameter values that are decorated as "sensitive" in the API will not
6975// be included in the string output. The member name will be present, but the
6976// value will be replaced with "sensitive".
6977func (s DescribeUsersInput) String() string {
6978	return awsutil.Prettify(s)
6979}
6980
6981// GoString returns the string representation.
6982//
6983// API parameter values that are decorated as "sensitive" in the API will not
6984// be included in the string output. The member name will be present, but the
6985// value will be replaced with "sensitive".
6986func (s DescribeUsersInput) GoString() string {
6987	return s.String()
6988}
6989
6990// Validate inspects the fields of the type to determine if they are valid.
6991func (s *DescribeUsersInput) Validate() error {
6992	invalidParams := request.ErrInvalidParams{Context: "DescribeUsersInput"}
6993	if s.UserName != nil && len(*s.UserName) < 1 {
6994		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
6995	}
6996	if s.Filters != nil {
6997		for i, v := range s.Filters {
6998			if v == nil {
6999				continue
7000			}
7001			if err := v.Validate(); err != nil {
7002				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
7003			}
7004		}
7005	}
7006
7007	if invalidParams.Len() > 0 {
7008		return invalidParams
7009	}
7010	return nil
7011}
7012
7013// SetFilters sets the Filters field's value.
7014func (s *DescribeUsersInput) SetFilters(v []*Filter) *DescribeUsersInput {
7015	s.Filters = v
7016	return s
7017}
7018
7019// SetMaxResults sets the MaxResults field's value.
7020func (s *DescribeUsersInput) SetMaxResults(v int64) *DescribeUsersInput {
7021	s.MaxResults = &v
7022	return s
7023}
7024
7025// SetNextToken sets the NextToken field's value.
7026func (s *DescribeUsersInput) SetNextToken(v string) *DescribeUsersInput {
7027	s.NextToken = &v
7028	return s
7029}
7030
7031// SetUserName sets the UserName field's value.
7032func (s *DescribeUsersInput) SetUserName(v string) *DescribeUsersInput {
7033	s.UserName = &v
7034	return s
7035}
7036
7037type DescribeUsersOutput struct {
7038	_ struct{} `type:"structure"`
7039
7040	// An optional argument to pass in case the total number of records exceeds
7041	// the value of MaxResults. If nextToken is returned, there are more results
7042	// available. The value of nextToken is a unique pagination token for each page.
7043	// Make the call again using the returned token to retrieve the next page. Keep
7044	// all other arguments unchanged.
7045	NextToken *string `type:"string"`
7046
7047	// A list of users.
7048	Users []*User `type:"list"`
7049}
7050
7051// String returns the string representation.
7052//
7053// API parameter values that are decorated as "sensitive" in the API will not
7054// be included in the string output. The member name will be present, but the
7055// value will be replaced with "sensitive".
7056func (s DescribeUsersOutput) String() string {
7057	return awsutil.Prettify(s)
7058}
7059
7060// GoString returns the string representation.
7061//
7062// API parameter values that are decorated as "sensitive" in the API will not
7063// be included in the string output. The member name will be present, but the
7064// value will be replaced with "sensitive".
7065func (s DescribeUsersOutput) GoString() string {
7066	return s.String()
7067}
7068
7069// SetNextToken sets the NextToken field's value.
7070func (s *DescribeUsersOutput) SetNextToken(v string) *DescribeUsersOutput {
7071	s.NextToken = &v
7072	return s
7073}
7074
7075// SetUsers sets the Users field's value.
7076func (s *DescribeUsersOutput) SetUsers(v []*User) *DescribeUsersOutput {
7077	s.Users = v
7078	return s
7079}
7080
7081type DuplicateUserNameFault struct {
7082	_            struct{}                  `type:"structure"`
7083	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7084
7085	Message_ *string `locationName:"message" type:"string"`
7086}
7087
7088// String returns the string representation.
7089//
7090// API parameter values that are decorated as "sensitive" in the API will not
7091// be included in the string output. The member name will be present, but the
7092// value will be replaced with "sensitive".
7093func (s DuplicateUserNameFault) String() string {
7094	return awsutil.Prettify(s)
7095}
7096
7097// GoString returns the string representation.
7098//
7099// API parameter values that are decorated as "sensitive" in the API will not
7100// be included in the string output. The member name will be present, but the
7101// value will be replaced with "sensitive".
7102func (s DuplicateUserNameFault) GoString() string {
7103	return s.String()
7104}
7105
7106func newErrorDuplicateUserNameFault(v protocol.ResponseMetadata) error {
7107	return &DuplicateUserNameFault{
7108		RespMetadata: v,
7109	}
7110}
7111
7112// Code returns the exception type name.
7113func (s *DuplicateUserNameFault) Code() string {
7114	return "DuplicateUserNameFault"
7115}
7116
7117// Message returns the exception's message.
7118func (s *DuplicateUserNameFault) Message() string {
7119	if s.Message_ != nil {
7120		return *s.Message_
7121	}
7122	return ""
7123}
7124
7125// OrigErr always returns nil, satisfies awserr.Error interface.
7126func (s *DuplicateUserNameFault) OrigErr() error {
7127	return nil
7128}
7129
7130func (s *DuplicateUserNameFault) Error() string {
7131	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7132}
7133
7134// Status code returns the HTTP status code for the request's response error.
7135func (s *DuplicateUserNameFault) StatusCode() int {
7136	return s.RespMetadata.StatusCode
7137}
7138
7139// RequestID returns the service's response RequestID for request.
7140func (s *DuplicateUserNameFault) RequestID() string {
7141	return s.RespMetadata.RequestID
7142}
7143
7144// Represents the information required for client programs to connect to the
7145// cluster and its nodes.
7146type Endpoint struct {
7147	_ struct{} `type:"structure"`
7148
7149	// The DNS hostname of the node.
7150	Address *string `type:"string"`
7151
7152	// The port number that the engine is listening on.
7153	Port *int64 `type:"integer"`
7154}
7155
7156// String returns the string representation.
7157//
7158// API parameter values that are decorated as "sensitive" in the API will not
7159// be included in the string output. The member name will be present, but the
7160// value will be replaced with "sensitive".
7161func (s Endpoint) String() string {
7162	return awsutil.Prettify(s)
7163}
7164
7165// GoString returns the string representation.
7166//
7167// API parameter values that are decorated as "sensitive" in the API will not
7168// be included in the string output. The member name will be present, but the
7169// value will be replaced with "sensitive".
7170func (s Endpoint) GoString() string {
7171	return s.String()
7172}
7173
7174// SetAddress sets the Address field's value.
7175func (s *Endpoint) SetAddress(v string) *Endpoint {
7176	s.Address = &v
7177	return s
7178}
7179
7180// SetPort sets the Port field's value.
7181func (s *Endpoint) SetPort(v int64) *Endpoint {
7182	s.Port = &v
7183	return s
7184}
7185
7186// Provides details of the Redis engine version
7187type EngineVersionInfo struct {
7188	_ struct{} `type:"structure"`
7189
7190	// The patched engine version
7191	EnginePatchVersion *string `type:"string"`
7192
7193	// The engine version
7194	EngineVersion *string `type:"string"`
7195
7196	// Specifies the name of the parameter group family to which the engine default
7197	// parameters apply.
7198	ParameterGroupFamily *string `type:"string"`
7199}
7200
7201// String returns the string representation.
7202//
7203// API parameter values that are decorated as "sensitive" in the API will not
7204// be included in the string output. The member name will be present, but the
7205// value will be replaced with "sensitive".
7206func (s EngineVersionInfo) String() string {
7207	return awsutil.Prettify(s)
7208}
7209
7210// GoString returns the string representation.
7211//
7212// API parameter values that are decorated as "sensitive" in the API will not
7213// be included in the string output. The member name will be present, but the
7214// value will be replaced with "sensitive".
7215func (s EngineVersionInfo) GoString() string {
7216	return s.String()
7217}
7218
7219// SetEnginePatchVersion sets the EnginePatchVersion field's value.
7220func (s *EngineVersionInfo) SetEnginePatchVersion(v string) *EngineVersionInfo {
7221	s.EnginePatchVersion = &v
7222	return s
7223}
7224
7225// SetEngineVersion sets the EngineVersion field's value.
7226func (s *EngineVersionInfo) SetEngineVersion(v string) *EngineVersionInfo {
7227	s.EngineVersion = &v
7228	return s
7229}
7230
7231// SetParameterGroupFamily sets the ParameterGroupFamily field's value.
7232func (s *EngineVersionInfo) SetParameterGroupFamily(v string) *EngineVersionInfo {
7233	s.ParameterGroupFamily = &v
7234	return s
7235}
7236
7237// Represents a single occurrence of something interesting within the system.
7238// Some examples of events are creating a cluster or adding or removing a node.
7239type Event struct {
7240	_ struct{} `type:"structure"`
7241
7242	// The date and time when the event occurred.
7243	Date *time.Time `type:"timestamp"`
7244
7245	// The text of the event.
7246	Message *string `type:"string"`
7247
7248	// The name for the source of the event. For example, if the event occurred
7249	// at the cluster level, the identifier would be the name of the cluster.
7250	SourceName *string `type:"string"`
7251
7252	// Specifies the origin of this event - a cluster, a parameter group, a security
7253	// group, etc.
7254	SourceType *string `type:"string" enum:"SourceType"`
7255}
7256
7257// String returns the string representation.
7258//
7259// API parameter values that are decorated as "sensitive" in the API will not
7260// be included in the string output. The member name will be present, but the
7261// value will be replaced with "sensitive".
7262func (s Event) String() string {
7263	return awsutil.Prettify(s)
7264}
7265
7266// GoString returns the string representation.
7267//
7268// API parameter values that are decorated as "sensitive" in the API will not
7269// be included in the string output. The member name will be present, but the
7270// value will be replaced with "sensitive".
7271func (s Event) GoString() string {
7272	return s.String()
7273}
7274
7275// SetDate sets the Date field's value.
7276func (s *Event) SetDate(v time.Time) *Event {
7277	s.Date = &v
7278	return s
7279}
7280
7281// SetMessage sets the Message field's value.
7282func (s *Event) SetMessage(v string) *Event {
7283	s.Message = &v
7284	return s
7285}
7286
7287// SetSourceName sets the SourceName field's value.
7288func (s *Event) SetSourceName(v string) *Event {
7289	s.SourceName = &v
7290	return s
7291}
7292
7293// SetSourceType sets the SourceType field's value.
7294func (s *Event) SetSourceType(v string) *Event {
7295	s.SourceType = &v
7296	return s
7297}
7298
7299type FailoverShardInput struct {
7300	_ struct{} `type:"structure"`
7301
7302	// The cluster being failed over
7303	//
7304	// ClusterName is a required field
7305	ClusterName *string `type:"string" required:"true"`
7306
7307	// The name of the shard
7308	//
7309	// ShardName is a required field
7310	ShardName *string `type:"string" required:"true"`
7311}
7312
7313// String returns the string representation.
7314//
7315// API parameter values that are decorated as "sensitive" in the API will not
7316// be included in the string output. The member name will be present, but the
7317// value will be replaced with "sensitive".
7318func (s FailoverShardInput) String() string {
7319	return awsutil.Prettify(s)
7320}
7321
7322// GoString returns the string representation.
7323//
7324// API parameter values that are decorated as "sensitive" in the API will not
7325// be included in the string output. The member name will be present, but the
7326// value will be replaced with "sensitive".
7327func (s FailoverShardInput) GoString() string {
7328	return s.String()
7329}
7330
7331// Validate inspects the fields of the type to determine if they are valid.
7332func (s *FailoverShardInput) Validate() error {
7333	invalidParams := request.ErrInvalidParams{Context: "FailoverShardInput"}
7334	if s.ClusterName == nil {
7335		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
7336	}
7337	if s.ShardName == nil {
7338		invalidParams.Add(request.NewErrParamRequired("ShardName"))
7339	}
7340
7341	if invalidParams.Len() > 0 {
7342		return invalidParams
7343	}
7344	return nil
7345}
7346
7347// SetClusterName sets the ClusterName field's value.
7348func (s *FailoverShardInput) SetClusterName(v string) *FailoverShardInput {
7349	s.ClusterName = &v
7350	return s
7351}
7352
7353// SetShardName sets the ShardName field's value.
7354func (s *FailoverShardInput) SetShardName(v string) *FailoverShardInput {
7355	s.ShardName = &v
7356	return s
7357}
7358
7359type FailoverShardOutput struct {
7360	_ struct{} `type:"structure"`
7361
7362	// The cluster being failed over
7363	Cluster *Cluster `type:"structure"`
7364}
7365
7366// String returns the string representation.
7367//
7368// API parameter values that are decorated as "sensitive" in the API will not
7369// be included in the string output. The member name will be present, but the
7370// value will be replaced with "sensitive".
7371func (s FailoverShardOutput) String() string {
7372	return awsutil.Prettify(s)
7373}
7374
7375// GoString returns the string representation.
7376//
7377// API parameter values that are decorated as "sensitive" in the API will not
7378// be included in the string output. The member name will be present, but the
7379// value will be replaced with "sensitive".
7380func (s FailoverShardOutput) GoString() string {
7381	return s.String()
7382}
7383
7384// SetCluster sets the Cluster field's value.
7385func (s *FailoverShardOutput) SetCluster(v *Cluster) *FailoverShardOutput {
7386	s.Cluster = v
7387	return s
7388}
7389
7390// Used to streamline results of a search based on the property being filtered.
7391type Filter struct {
7392	_ struct{} `type:"structure"`
7393
7394	// The property being filtered. For example, UserName.
7395	//
7396	// Name is a required field
7397	Name *string `type:"string" required:"true"`
7398
7399	// The property values to filter on. For example, "user-123".
7400	//
7401	// Values is a required field
7402	Values []*string `min:"1" type:"list" required:"true"`
7403}
7404
7405// String returns the string representation.
7406//
7407// API parameter values that are decorated as "sensitive" in the API will not
7408// be included in the string output. The member name will be present, but the
7409// value will be replaced with "sensitive".
7410func (s Filter) String() string {
7411	return awsutil.Prettify(s)
7412}
7413
7414// GoString returns the string representation.
7415//
7416// API parameter values that are decorated as "sensitive" in the API will not
7417// be included in the string output. The member name will be present, but the
7418// value will be replaced with "sensitive".
7419func (s Filter) GoString() string {
7420	return s.String()
7421}
7422
7423// Validate inspects the fields of the type to determine if they are valid.
7424func (s *Filter) Validate() error {
7425	invalidParams := request.ErrInvalidParams{Context: "Filter"}
7426	if s.Name == nil {
7427		invalidParams.Add(request.NewErrParamRequired("Name"))
7428	}
7429	if s.Values == nil {
7430		invalidParams.Add(request.NewErrParamRequired("Values"))
7431	}
7432	if s.Values != nil && len(s.Values) < 1 {
7433		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
7434	}
7435
7436	if invalidParams.Len() > 0 {
7437		return invalidParams
7438	}
7439	return nil
7440}
7441
7442// SetName sets the Name field's value.
7443func (s *Filter) SetName(v string) *Filter {
7444	s.Name = &v
7445	return s
7446}
7447
7448// SetValues sets the Values field's value.
7449func (s *Filter) SetValues(v []*string) *Filter {
7450	s.Values = v
7451	return s
7452}
7453
7454type InsufficientClusterCapacityFault struct {
7455	_            struct{}                  `type:"structure"`
7456	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7457
7458	Message_ *string `locationName:"message" type:"string"`
7459}
7460
7461// String returns the string representation.
7462//
7463// API parameter values that are decorated as "sensitive" in the API will not
7464// be included in the string output. The member name will be present, but the
7465// value will be replaced with "sensitive".
7466func (s InsufficientClusterCapacityFault) String() string {
7467	return awsutil.Prettify(s)
7468}
7469
7470// GoString returns the string representation.
7471//
7472// API parameter values that are decorated as "sensitive" in the API will not
7473// be included in the string output. The member name will be present, but the
7474// value will be replaced with "sensitive".
7475func (s InsufficientClusterCapacityFault) GoString() string {
7476	return s.String()
7477}
7478
7479func newErrorInsufficientClusterCapacityFault(v protocol.ResponseMetadata) error {
7480	return &InsufficientClusterCapacityFault{
7481		RespMetadata: v,
7482	}
7483}
7484
7485// Code returns the exception type name.
7486func (s *InsufficientClusterCapacityFault) Code() string {
7487	return "InsufficientClusterCapacityFault"
7488}
7489
7490// Message returns the exception's message.
7491func (s *InsufficientClusterCapacityFault) Message() string {
7492	if s.Message_ != nil {
7493		return *s.Message_
7494	}
7495	return ""
7496}
7497
7498// OrigErr always returns nil, satisfies awserr.Error interface.
7499func (s *InsufficientClusterCapacityFault) OrigErr() error {
7500	return nil
7501}
7502
7503func (s *InsufficientClusterCapacityFault) Error() string {
7504	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7505}
7506
7507// Status code returns the HTTP status code for the request's response error.
7508func (s *InsufficientClusterCapacityFault) StatusCode() int {
7509	return s.RespMetadata.StatusCode
7510}
7511
7512// RequestID returns the service's response RequestID for request.
7513func (s *InsufficientClusterCapacityFault) RequestID() string {
7514	return s.RespMetadata.RequestID
7515}
7516
7517type InvalidACLStateFault struct {
7518	_            struct{}                  `type:"structure"`
7519	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7520
7521	Message_ *string `locationName:"message" type:"string"`
7522}
7523
7524// String returns the string representation.
7525//
7526// API parameter values that are decorated as "sensitive" in the API will not
7527// be included in the string output. The member name will be present, but the
7528// value will be replaced with "sensitive".
7529func (s InvalidACLStateFault) String() string {
7530	return awsutil.Prettify(s)
7531}
7532
7533// GoString returns the string representation.
7534//
7535// API parameter values that are decorated as "sensitive" in the API will not
7536// be included in the string output. The member name will be present, but the
7537// value will be replaced with "sensitive".
7538func (s InvalidACLStateFault) GoString() string {
7539	return s.String()
7540}
7541
7542func newErrorInvalidACLStateFault(v protocol.ResponseMetadata) error {
7543	return &InvalidACLStateFault{
7544		RespMetadata: v,
7545	}
7546}
7547
7548// Code returns the exception type name.
7549func (s *InvalidACLStateFault) Code() string {
7550	return "InvalidACLStateFault"
7551}
7552
7553// Message returns the exception's message.
7554func (s *InvalidACLStateFault) Message() string {
7555	if s.Message_ != nil {
7556		return *s.Message_
7557	}
7558	return ""
7559}
7560
7561// OrigErr always returns nil, satisfies awserr.Error interface.
7562func (s *InvalidACLStateFault) OrigErr() error {
7563	return nil
7564}
7565
7566func (s *InvalidACLStateFault) Error() string {
7567	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7568}
7569
7570// Status code returns the HTTP status code for the request's response error.
7571func (s *InvalidACLStateFault) StatusCode() int {
7572	return s.RespMetadata.StatusCode
7573}
7574
7575// RequestID returns the service's response RequestID for request.
7576func (s *InvalidACLStateFault) RequestID() string {
7577	return s.RespMetadata.RequestID
7578}
7579
7580type InvalidARNFault struct {
7581	_            struct{}                  `type:"structure"`
7582	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7583
7584	Message_ *string `locationName:"message" type:"string"`
7585}
7586
7587// String returns the string representation.
7588//
7589// API parameter values that are decorated as "sensitive" in the API will not
7590// be included in the string output. The member name will be present, but the
7591// value will be replaced with "sensitive".
7592func (s InvalidARNFault) String() string {
7593	return awsutil.Prettify(s)
7594}
7595
7596// GoString returns the string representation.
7597//
7598// API parameter values that are decorated as "sensitive" in the API will not
7599// be included in the string output. The member name will be present, but the
7600// value will be replaced with "sensitive".
7601func (s InvalidARNFault) GoString() string {
7602	return s.String()
7603}
7604
7605func newErrorInvalidARNFault(v protocol.ResponseMetadata) error {
7606	return &InvalidARNFault{
7607		RespMetadata: v,
7608	}
7609}
7610
7611// Code returns the exception type name.
7612func (s *InvalidARNFault) Code() string {
7613	return "InvalidARNFault"
7614}
7615
7616// Message returns the exception's message.
7617func (s *InvalidARNFault) Message() string {
7618	if s.Message_ != nil {
7619		return *s.Message_
7620	}
7621	return ""
7622}
7623
7624// OrigErr always returns nil, satisfies awserr.Error interface.
7625func (s *InvalidARNFault) OrigErr() error {
7626	return nil
7627}
7628
7629func (s *InvalidARNFault) Error() string {
7630	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7631}
7632
7633// Status code returns the HTTP status code for the request's response error.
7634func (s *InvalidARNFault) StatusCode() int {
7635	return s.RespMetadata.StatusCode
7636}
7637
7638// RequestID returns the service's response RequestID for request.
7639func (s *InvalidARNFault) RequestID() string {
7640	return s.RespMetadata.RequestID
7641}
7642
7643type InvalidClusterStateFault struct {
7644	_            struct{}                  `type:"structure"`
7645	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7646
7647	Message_ *string `locationName:"message" type:"string"`
7648}
7649
7650// String returns the string representation.
7651//
7652// API parameter values that are decorated as "sensitive" in the API will not
7653// be included in the string output. The member name will be present, but the
7654// value will be replaced with "sensitive".
7655func (s InvalidClusterStateFault) String() string {
7656	return awsutil.Prettify(s)
7657}
7658
7659// GoString returns the string representation.
7660//
7661// API parameter values that are decorated as "sensitive" in the API will not
7662// be included in the string output. The member name will be present, but the
7663// value will be replaced with "sensitive".
7664func (s InvalidClusterStateFault) GoString() string {
7665	return s.String()
7666}
7667
7668func newErrorInvalidClusterStateFault(v protocol.ResponseMetadata) error {
7669	return &InvalidClusterStateFault{
7670		RespMetadata: v,
7671	}
7672}
7673
7674// Code returns the exception type name.
7675func (s *InvalidClusterStateFault) Code() string {
7676	return "InvalidClusterStateFault"
7677}
7678
7679// Message returns the exception's message.
7680func (s *InvalidClusterStateFault) Message() string {
7681	if s.Message_ != nil {
7682		return *s.Message_
7683	}
7684	return ""
7685}
7686
7687// OrigErr always returns nil, satisfies awserr.Error interface.
7688func (s *InvalidClusterStateFault) OrigErr() error {
7689	return nil
7690}
7691
7692func (s *InvalidClusterStateFault) Error() string {
7693	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7694}
7695
7696// Status code returns the HTTP status code for the request's response error.
7697func (s *InvalidClusterStateFault) StatusCode() int {
7698	return s.RespMetadata.StatusCode
7699}
7700
7701// RequestID returns the service's response RequestID for request.
7702func (s *InvalidClusterStateFault) RequestID() string {
7703	return s.RespMetadata.RequestID
7704}
7705
7706type InvalidCredentialsException struct {
7707	_            struct{}                  `type:"structure"`
7708	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7709
7710	Message_ *string `locationName:"message" type:"string"`
7711}
7712
7713// String returns the string representation.
7714//
7715// API parameter values that are decorated as "sensitive" in the API will not
7716// be included in the string output. The member name will be present, but the
7717// value will be replaced with "sensitive".
7718func (s InvalidCredentialsException) String() string {
7719	return awsutil.Prettify(s)
7720}
7721
7722// GoString returns the string representation.
7723//
7724// API parameter values that are decorated as "sensitive" in the API will not
7725// be included in the string output. The member name will be present, but the
7726// value will be replaced with "sensitive".
7727func (s InvalidCredentialsException) GoString() string {
7728	return s.String()
7729}
7730
7731func newErrorInvalidCredentialsException(v protocol.ResponseMetadata) error {
7732	return &InvalidCredentialsException{
7733		RespMetadata: v,
7734	}
7735}
7736
7737// Code returns the exception type name.
7738func (s *InvalidCredentialsException) Code() string {
7739	return "InvalidCredentialsException"
7740}
7741
7742// Message returns the exception's message.
7743func (s *InvalidCredentialsException) Message() string {
7744	if s.Message_ != nil {
7745		return *s.Message_
7746	}
7747	return ""
7748}
7749
7750// OrigErr always returns nil, satisfies awserr.Error interface.
7751func (s *InvalidCredentialsException) OrigErr() error {
7752	return nil
7753}
7754
7755func (s *InvalidCredentialsException) Error() string {
7756	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7757}
7758
7759// Status code returns the HTTP status code for the request's response error.
7760func (s *InvalidCredentialsException) StatusCode() int {
7761	return s.RespMetadata.StatusCode
7762}
7763
7764// RequestID returns the service's response RequestID for request.
7765func (s *InvalidCredentialsException) RequestID() string {
7766	return s.RespMetadata.RequestID
7767}
7768
7769type InvalidKMSKeyFault struct {
7770	_            struct{}                  `type:"structure"`
7771	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7772
7773	Message_ *string `locationName:"message" type:"string"`
7774}
7775
7776// String returns the string representation.
7777//
7778// API parameter values that are decorated as "sensitive" in the API will not
7779// be included in the string output. The member name will be present, but the
7780// value will be replaced with "sensitive".
7781func (s InvalidKMSKeyFault) String() string {
7782	return awsutil.Prettify(s)
7783}
7784
7785// GoString returns the string representation.
7786//
7787// API parameter values that are decorated as "sensitive" in the API will not
7788// be included in the string output. The member name will be present, but the
7789// value will be replaced with "sensitive".
7790func (s InvalidKMSKeyFault) GoString() string {
7791	return s.String()
7792}
7793
7794func newErrorInvalidKMSKeyFault(v protocol.ResponseMetadata) error {
7795	return &InvalidKMSKeyFault{
7796		RespMetadata: v,
7797	}
7798}
7799
7800// Code returns the exception type name.
7801func (s *InvalidKMSKeyFault) Code() string {
7802	return "InvalidKMSKeyFault"
7803}
7804
7805// Message returns the exception's message.
7806func (s *InvalidKMSKeyFault) Message() string {
7807	if s.Message_ != nil {
7808		return *s.Message_
7809	}
7810	return ""
7811}
7812
7813// OrigErr always returns nil, satisfies awserr.Error interface.
7814func (s *InvalidKMSKeyFault) OrigErr() error {
7815	return nil
7816}
7817
7818func (s *InvalidKMSKeyFault) Error() string {
7819	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7820}
7821
7822// Status code returns the HTTP status code for the request's response error.
7823func (s *InvalidKMSKeyFault) StatusCode() int {
7824	return s.RespMetadata.StatusCode
7825}
7826
7827// RequestID returns the service's response RequestID for request.
7828func (s *InvalidKMSKeyFault) RequestID() string {
7829	return s.RespMetadata.RequestID
7830}
7831
7832type InvalidNodeStateFault struct {
7833	_            struct{}                  `type:"structure"`
7834	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7835
7836	Message_ *string `locationName:"message" type:"string"`
7837}
7838
7839// String returns the string representation.
7840//
7841// API parameter values that are decorated as "sensitive" in the API will not
7842// be included in the string output. The member name will be present, but the
7843// value will be replaced with "sensitive".
7844func (s InvalidNodeStateFault) String() string {
7845	return awsutil.Prettify(s)
7846}
7847
7848// GoString returns the string representation.
7849//
7850// API parameter values that are decorated as "sensitive" in the API will not
7851// be included in the string output. The member name will be present, but the
7852// value will be replaced with "sensitive".
7853func (s InvalidNodeStateFault) GoString() string {
7854	return s.String()
7855}
7856
7857func newErrorInvalidNodeStateFault(v protocol.ResponseMetadata) error {
7858	return &InvalidNodeStateFault{
7859		RespMetadata: v,
7860	}
7861}
7862
7863// Code returns the exception type name.
7864func (s *InvalidNodeStateFault) Code() string {
7865	return "InvalidNodeStateFault"
7866}
7867
7868// Message returns the exception's message.
7869func (s *InvalidNodeStateFault) Message() string {
7870	if s.Message_ != nil {
7871		return *s.Message_
7872	}
7873	return ""
7874}
7875
7876// OrigErr always returns nil, satisfies awserr.Error interface.
7877func (s *InvalidNodeStateFault) OrigErr() error {
7878	return nil
7879}
7880
7881func (s *InvalidNodeStateFault) Error() string {
7882	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7883}
7884
7885// Status code returns the HTTP status code for the request's response error.
7886func (s *InvalidNodeStateFault) StatusCode() int {
7887	return s.RespMetadata.StatusCode
7888}
7889
7890// RequestID returns the service's response RequestID for request.
7891func (s *InvalidNodeStateFault) RequestID() string {
7892	return s.RespMetadata.RequestID
7893}
7894
7895type InvalidParameterCombinationException struct {
7896	_            struct{}                  `type:"structure"`
7897	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7898
7899	Message_ *string `locationName:"message" type:"string"`
7900}
7901
7902// String returns the string representation.
7903//
7904// API parameter values that are decorated as "sensitive" in the API will not
7905// be included in the string output. The member name will be present, but the
7906// value will be replaced with "sensitive".
7907func (s InvalidParameterCombinationException) String() string {
7908	return awsutil.Prettify(s)
7909}
7910
7911// GoString returns the string representation.
7912//
7913// API parameter values that are decorated as "sensitive" in the API will not
7914// be included in the string output. The member name will be present, but the
7915// value will be replaced with "sensitive".
7916func (s InvalidParameterCombinationException) GoString() string {
7917	return s.String()
7918}
7919
7920func newErrorInvalidParameterCombinationException(v protocol.ResponseMetadata) error {
7921	return &InvalidParameterCombinationException{
7922		RespMetadata: v,
7923	}
7924}
7925
7926// Code returns the exception type name.
7927func (s *InvalidParameterCombinationException) Code() string {
7928	return "InvalidParameterCombinationException"
7929}
7930
7931// Message returns the exception's message.
7932func (s *InvalidParameterCombinationException) Message() string {
7933	if s.Message_ != nil {
7934		return *s.Message_
7935	}
7936	return ""
7937}
7938
7939// OrigErr always returns nil, satisfies awserr.Error interface.
7940func (s *InvalidParameterCombinationException) OrigErr() error {
7941	return nil
7942}
7943
7944func (s *InvalidParameterCombinationException) Error() string {
7945	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7946}
7947
7948// Status code returns the HTTP status code for the request's response error.
7949func (s *InvalidParameterCombinationException) StatusCode() int {
7950	return s.RespMetadata.StatusCode
7951}
7952
7953// RequestID returns the service's response RequestID for request.
7954func (s *InvalidParameterCombinationException) RequestID() string {
7955	return s.RespMetadata.RequestID
7956}
7957
7958type InvalidParameterGroupStateFault struct {
7959	_            struct{}                  `type:"structure"`
7960	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7961
7962	Message_ *string `locationName:"message" type:"string"`
7963}
7964
7965// String returns the string representation.
7966//
7967// API parameter values that are decorated as "sensitive" in the API will not
7968// be included in the string output. The member name will be present, but the
7969// value will be replaced with "sensitive".
7970func (s InvalidParameterGroupStateFault) String() string {
7971	return awsutil.Prettify(s)
7972}
7973
7974// GoString returns the string representation.
7975//
7976// API parameter values that are decorated as "sensitive" in the API will not
7977// be included in the string output. The member name will be present, but the
7978// value will be replaced with "sensitive".
7979func (s InvalidParameterGroupStateFault) GoString() string {
7980	return s.String()
7981}
7982
7983func newErrorInvalidParameterGroupStateFault(v protocol.ResponseMetadata) error {
7984	return &InvalidParameterGroupStateFault{
7985		RespMetadata: v,
7986	}
7987}
7988
7989// Code returns the exception type name.
7990func (s *InvalidParameterGroupStateFault) Code() string {
7991	return "InvalidParameterGroupStateFault"
7992}
7993
7994// Message returns the exception's message.
7995func (s *InvalidParameterGroupStateFault) Message() string {
7996	if s.Message_ != nil {
7997		return *s.Message_
7998	}
7999	return ""
8000}
8001
8002// OrigErr always returns nil, satisfies awserr.Error interface.
8003func (s *InvalidParameterGroupStateFault) OrigErr() error {
8004	return nil
8005}
8006
8007func (s *InvalidParameterGroupStateFault) Error() string {
8008	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8009}
8010
8011// Status code returns the HTTP status code for the request's response error.
8012func (s *InvalidParameterGroupStateFault) StatusCode() int {
8013	return s.RespMetadata.StatusCode
8014}
8015
8016// RequestID returns the service's response RequestID for request.
8017func (s *InvalidParameterGroupStateFault) RequestID() string {
8018	return s.RespMetadata.RequestID
8019}
8020
8021type InvalidParameterValueException struct {
8022	_            struct{}                  `type:"structure"`
8023	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8024
8025	Message_ *string `locationName:"message" type:"string"`
8026}
8027
8028// String returns the string representation.
8029//
8030// API parameter values that are decorated as "sensitive" in the API will not
8031// be included in the string output. The member name will be present, but the
8032// value will be replaced with "sensitive".
8033func (s InvalidParameterValueException) String() string {
8034	return awsutil.Prettify(s)
8035}
8036
8037// GoString returns the string representation.
8038//
8039// API parameter values that are decorated as "sensitive" in the API will not
8040// be included in the string output. The member name will be present, but the
8041// value will be replaced with "sensitive".
8042func (s InvalidParameterValueException) GoString() string {
8043	return s.String()
8044}
8045
8046func newErrorInvalidParameterValueException(v protocol.ResponseMetadata) error {
8047	return &InvalidParameterValueException{
8048		RespMetadata: v,
8049	}
8050}
8051
8052// Code returns the exception type name.
8053func (s *InvalidParameterValueException) Code() string {
8054	return "InvalidParameterValueException"
8055}
8056
8057// Message returns the exception's message.
8058func (s *InvalidParameterValueException) Message() string {
8059	if s.Message_ != nil {
8060		return *s.Message_
8061	}
8062	return ""
8063}
8064
8065// OrigErr always returns nil, satisfies awserr.Error interface.
8066func (s *InvalidParameterValueException) OrigErr() error {
8067	return nil
8068}
8069
8070func (s *InvalidParameterValueException) Error() string {
8071	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8072}
8073
8074// Status code returns the HTTP status code for the request's response error.
8075func (s *InvalidParameterValueException) StatusCode() int {
8076	return s.RespMetadata.StatusCode
8077}
8078
8079// RequestID returns the service's response RequestID for request.
8080func (s *InvalidParameterValueException) RequestID() string {
8081	return s.RespMetadata.RequestID
8082}
8083
8084type InvalidSnapshotStateFault struct {
8085	_            struct{}                  `type:"structure"`
8086	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8087
8088	Message_ *string `locationName:"message" type:"string"`
8089}
8090
8091// String returns the string representation.
8092//
8093// API parameter values that are decorated as "sensitive" in the API will not
8094// be included in the string output. The member name will be present, but the
8095// value will be replaced with "sensitive".
8096func (s InvalidSnapshotStateFault) String() string {
8097	return awsutil.Prettify(s)
8098}
8099
8100// GoString returns the string representation.
8101//
8102// API parameter values that are decorated as "sensitive" in the API will not
8103// be included in the string output. The member name will be present, but the
8104// value will be replaced with "sensitive".
8105func (s InvalidSnapshotStateFault) GoString() string {
8106	return s.String()
8107}
8108
8109func newErrorInvalidSnapshotStateFault(v protocol.ResponseMetadata) error {
8110	return &InvalidSnapshotStateFault{
8111		RespMetadata: v,
8112	}
8113}
8114
8115// Code returns the exception type name.
8116func (s *InvalidSnapshotStateFault) Code() string {
8117	return "InvalidSnapshotStateFault"
8118}
8119
8120// Message returns the exception's message.
8121func (s *InvalidSnapshotStateFault) Message() string {
8122	if s.Message_ != nil {
8123		return *s.Message_
8124	}
8125	return ""
8126}
8127
8128// OrigErr always returns nil, satisfies awserr.Error interface.
8129func (s *InvalidSnapshotStateFault) OrigErr() error {
8130	return nil
8131}
8132
8133func (s *InvalidSnapshotStateFault) Error() string {
8134	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8135}
8136
8137// Status code returns the HTTP status code for the request's response error.
8138func (s *InvalidSnapshotStateFault) StatusCode() int {
8139	return s.RespMetadata.StatusCode
8140}
8141
8142// RequestID returns the service's response RequestID for request.
8143func (s *InvalidSnapshotStateFault) RequestID() string {
8144	return s.RespMetadata.RequestID
8145}
8146
8147type InvalidSubnet struct {
8148	_            struct{}                  `type:"structure"`
8149	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8150
8151	Message_ *string `locationName:"message" type:"string"`
8152}
8153
8154// String returns the string representation.
8155//
8156// API parameter values that are decorated as "sensitive" in the API will not
8157// be included in the string output. The member name will be present, but the
8158// value will be replaced with "sensitive".
8159func (s InvalidSubnet) String() string {
8160	return awsutil.Prettify(s)
8161}
8162
8163// GoString returns the string representation.
8164//
8165// API parameter values that are decorated as "sensitive" in the API will not
8166// be included in the string output. The member name will be present, but the
8167// value will be replaced with "sensitive".
8168func (s InvalidSubnet) GoString() string {
8169	return s.String()
8170}
8171
8172func newErrorInvalidSubnet(v protocol.ResponseMetadata) error {
8173	return &InvalidSubnet{
8174		RespMetadata: v,
8175	}
8176}
8177
8178// Code returns the exception type name.
8179func (s *InvalidSubnet) Code() string {
8180	return "InvalidSubnet"
8181}
8182
8183// Message returns the exception's message.
8184func (s *InvalidSubnet) Message() string {
8185	if s.Message_ != nil {
8186		return *s.Message_
8187	}
8188	return ""
8189}
8190
8191// OrigErr always returns nil, satisfies awserr.Error interface.
8192func (s *InvalidSubnet) OrigErr() error {
8193	return nil
8194}
8195
8196func (s *InvalidSubnet) Error() string {
8197	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8198}
8199
8200// Status code returns the HTTP status code for the request's response error.
8201func (s *InvalidSubnet) StatusCode() int {
8202	return s.RespMetadata.StatusCode
8203}
8204
8205// RequestID returns the service's response RequestID for request.
8206func (s *InvalidSubnet) RequestID() string {
8207	return s.RespMetadata.RequestID
8208}
8209
8210type InvalidUserStateFault struct {
8211	_            struct{}                  `type:"structure"`
8212	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8213
8214	Message_ *string `locationName:"message" type:"string"`
8215}
8216
8217// String returns the string representation.
8218//
8219// API parameter values that are decorated as "sensitive" in the API will not
8220// be included in the string output. The member name will be present, but the
8221// value will be replaced with "sensitive".
8222func (s InvalidUserStateFault) String() string {
8223	return awsutil.Prettify(s)
8224}
8225
8226// GoString returns the string representation.
8227//
8228// API parameter values that are decorated as "sensitive" in the API will not
8229// be included in the string output. The member name will be present, but the
8230// value will be replaced with "sensitive".
8231func (s InvalidUserStateFault) GoString() string {
8232	return s.String()
8233}
8234
8235func newErrorInvalidUserStateFault(v protocol.ResponseMetadata) error {
8236	return &InvalidUserStateFault{
8237		RespMetadata: v,
8238	}
8239}
8240
8241// Code returns the exception type name.
8242func (s *InvalidUserStateFault) Code() string {
8243	return "InvalidUserStateFault"
8244}
8245
8246// Message returns the exception's message.
8247func (s *InvalidUserStateFault) Message() string {
8248	if s.Message_ != nil {
8249		return *s.Message_
8250	}
8251	return ""
8252}
8253
8254// OrigErr always returns nil, satisfies awserr.Error interface.
8255func (s *InvalidUserStateFault) OrigErr() error {
8256	return nil
8257}
8258
8259func (s *InvalidUserStateFault) Error() string {
8260	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8261}
8262
8263// Status code returns the HTTP status code for the request's response error.
8264func (s *InvalidUserStateFault) StatusCode() int {
8265	return s.RespMetadata.StatusCode
8266}
8267
8268// RequestID returns the service's response RequestID for request.
8269func (s *InvalidUserStateFault) RequestID() string {
8270	return s.RespMetadata.RequestID
8271}
8272
8273type InvalidVPCNetworkStateFault struct {
8274	_            struct{}                  `type:"structure"`
8275	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8276
8277	Message_ *string `locationName:"message" type:"string"`
8278}
8279
8280// String returns the string representation.
8281//
8282// API parameter values that are decorated as "sensitive" in the API will not
8283// be included in the string output. The member name will be present, but the
8284// value will be replaced with "sensitive".
8285func (s InvalidVPCNetworkStateFault) String() string {
8286	return awsutil.Prettify(s)
8287}
8288
8289// GoString returns the string representation.
8290//
8291// API parameter values that are decorated as "sensitive" in the API will not
8292// be included in the string output. The member name will be present, but the
8293// value will be replaced with "sensitive".
8294func (s InvalidVPCNetworkStateFault) GoString() string {
8295	return s.String()
8296}
8297
8298func newErrorInvalidVPCNetworkStateFault(v protocol.ResponseMetadata) error {
8299	return &InvalidVPCNetworkStateFault{
8300		RespMetadata: v,
8301	}
8302}
8303
8304// Code returns the exception type name.
8305func (s *InvalidVPCNetworkStateFault) Code() string {
8306	return "InvalidVPCNetworkStateFault"
8307}
8308
8309// Message returns the exception's message.
8310func (s *InvalidVPCNetworkStateFault) Message() string {
8311	if s.Message_ != nil {
8312		return *s.Message_
8313	}
8314	return ""
8315}
8316
8317// OrigErr always returns nil, satisfies awserr.Error interface.
8318func (s *InvalidVPCNetworkStateFault) OrigErr() error {
8319	return nil
8320}
8321
8322func (s *InvalidVPCNetworkStateFault) Error() string {
8323	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8324}
8325
8326// Status code returns the HTTP status code for the request's response error.
8327func (s *InvalidVPCNetworkStateFault) StatusCode() int {
8328	return s.RespMetadata.StatusCode
8329}
8330
8331// RequestID returns the service's response RequestID for request.
8332func (s *InvalidVPCNetworkStateFault) RequestID() string {
8333	return s.RespMetadata.RequestID
8334}
8335
8336type ListAllowedNodeTypeUpdatesInput struct {
8337	_ struct{} `type:"structure"`
8338
8339	// The name of the cluster you want to scale. MemoryDB uses the cluster name
8340	// to identify the current node type being used by this cluster, and from that
8341	// to create a list of node types you can scale up to.
8342	//
8343	// ClusterName is a required field
8344	ClusterName *string `type:"string" required:"true"`
8345}
8346
8347// String returns the string representation.
8348//
8349// API parameter values that are decorated as "sensitive" in the API will not
8350// be included in the string output. The member name will be present, but the
8351// value will be replaced with "sensitive".
8352func (s ListAllowedNodeTypeUpdatesInput) String() string {
8353	return awsutil.Prettify(s)
8354}
8355
8356// GoString returns the string representation.
8357//
8358// API parameter values that are decorated as "sensitive" in the API will not
8359// be included in the string output. The member name will be present, but the
8360// value will be replaced with "sensitive".
8361func (s ListAllowedNodeTypeUpdatesInput) GoString() string {
8362	return s.String()
8363}
8364
8365// Validate inspects the fields of the type to determine if they are valid.
8366func (s *ListAllowedNodeTypeUpdatesInput) Validate() error {
8367	invalidParams := request.ErrInvalidParams{Context: "ListAllowedNodeTypeUpdatesInput"}
8368	if s.ClusterName == nil {
8369		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
8370	}
8371
8372	if invalidParams.Len() > 0 {
8373		return invalidParams
8374	}
8375	return nil
8376}
8377
8378// SetClusterName sets the ClusterName field's value.
8379func (s *ListAllowedNodeTypeUpdatesInput) SetClusterName(v string) *ListAllowedNodeTypeUpdatesInput {
8380	s.ClusterName = &v
8381	return s
8382}
8383
8384type ListAllowedNodeTypeUpdatesOutput struct {
8385	_ struct{} `type:"structure"`
8386
8387	// A list node types which you can use to scale down your cluster.
8388	ScaleDownNodeTypes []*string `type:"list"`
8389
8390	// A list node types which you can use to scale up your cluster.
8391	ScaleUpNodeTypes []*string `type:"list"`
8392}
8393
8394// String returns the string representation.
8395//
8396// API parameter values that are decorated as "sensitive" in the API will not
8397// be included in the string output. The member name will be present, but the
8398// value will be replaced with "sensitive".
8399func (s ListAllowedNodeTypeUpdatesOutput) String() string {
8400	return awsutil.Prettify(s)
8401}
8402
8403// GoString returns the string representation.
8404//
8405// API parameter values that are decorated as "sensitive" in the API will not
8406// be included in the string output. The member name will be present, but the
8407// value will be replaced with "sensitive".
8408func (s ListAllowedNodeTypeUpdatesOutput) GoString() string {
8409	return s.String()
8410}
8411
8412// SetScaleDownNodeTypes sets the ScaleDownNodeTypes field's value.
8413func (s *ListAllowedNodeTypeUpdatesOutput) SetScaleDownNodeTypes(v []*string) *ListAllowedNodeTypeUpdatesOutput {
8414	s.ScaleDownNodeTypes = v
8415	return s
8416}
8417
8418// SetScaleUpNodeTypes sets the ScaleUpNodeTypes field's value.
8419func (s *ListAllowedNodeTypeUpdatesOutput) SetScaleUpNodeTypes(v []*string) *ListAllowedNodeTypeUpdatesOutput {
8420	s.ScaleUpNodeTypes = v
8421	return s
8422}
8423
8424type ListTagsInput struct {
8425	_ struct{} `type:"structure"`
8426
8427	// The Amazon Resource Name (ARN) of the resource for which you want the list
8428	// of tags
8429	//
8430	// ResourceArn is a required field
8431	ResourceArn *string `type:"string" required:"true"`
8432}
8433
8434// String returns the string representation.
8435//
8436// API parameter values that are decorated as "sensitive" in the API will not
8437// be included in the string output. The member name will be present, but the
8438// value will be replaced with "sensitive".
8439func (s ListTagsInput) String() string {
8440	return awsutil.Prettify(s)
8441}
8442
8443// GoString returns the string representation.
8444//
8445// API parameter values that are decorated as "sensitive" in the API will not
8446// be included in the string output. The member name will be present, but the
8447// value will be replaced with "sensitive".
8448func (s ListTagsInput) GoString() string {
8449	return s.String()
8450}
8451
8452// Validate inspects the fields of the type to determine if they are valid.
8453func (s *ListTagsInput) Validate() error {
8454	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
8455	if s.ResourceArn == nil {
8456		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
8457	}
8458
8459	if invalidParams.Len() > 0 {
8460		return invalidParams
8461	}
8462	return nil
8463}
8464
8465// SetResourceArn sets the ResourceArn field's value.
8466func (s *ListTagsInput) SetResourceArn(v string) *ListTagsInput {
8467	s.ResourceArn = &v
8468	return s
8469}
8470
8471type ListTagsOutput struct {
8472	_ struct{} `type:"structure"`
8473
8474	// A list of tags as key-value pairs.
8475	TagList []*Tag `type:"list"`
8476}
8477
8478// String returns the string representation.
8479//
8480// API parameter values that are decorated as "sensitive" in the API will not
8481// be included in the string output. The member name will be present, but the
8482// value will be replaced with "sensitive".
8483func (s ListTagsOutput) String() string {
8484	return awsutil.Prettify(s)
8485}
8486
8487// GoString returns the string representation.
8488//
8489// API parameter values that are decorated as "sensitive" in the API will not
8490// be included in the string output. The member name will be present, but the
8491// value will be replaced with "sensitive".
8492func (s ListTagsOutput) GoString() string {
8493	return s.String()
8494}
8495
8496// SetTagList sets the TagList field's value.
8497func (s *ListTagsOutput) SetTagList(v []*Tag) *ListTagsOutput {
8498	s.TagList = v
8499	return s
8500}
8501
8502type NoOperationFault struct {
8503	_            struct{}                  `type:"structure"`
8504	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8505
8506	Message_ *string `locationName:"message" type:"string"`
8507}
8508
8509// String returns the string representation.
8510//
8511// API parameter values that are decorated as "sensitive" in the API will not
8512// be included in the string output. The member name will be present, but the
8513// value will be replaced with "sensitive".
8514func (s NoOperationFault) String() string {
8515	return awsutil.Prettify(s)
8516}
8517
8518// GoString returns the string representation.
8519//
8520// API parameter values that are decorated as "sensitive" in the API will not
8521// be included in the string output. The member name will be present, but the
8522// value will be replaced with "sensitive".
8523func (s NoOperationFault) GoString() string {
8524	return s.String()
8525}
8526
8527func newErrorNoOperationFault(v protocol.ResponseMetadata) error {
8528	return &NoOperationFault{
8529		RespMetadata: v,
8530	}
8531}
8532
8533// Code returns the exception type name.
8534func (s *NoOperationFault) Code() string {
8535	return "NoOperationFault"
8536}
8537
8538// Message returns the exception's message.
8539func (s *NoOperationFault) Message() string {
8540	if s.Message_ != nil {
8541		return *s.Message_
8542	}
8543	return ""
8544}
8545
8546// OrigErr always returns nil, satisfies awserr.Error interface.
8547func (s *NoOperationFault) OrigErr() error {
8548	return nil
8549}
8550
8551func (s *NoOperationFault) Error() string {
8552	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8553}
8554
8555// Status code returns the HTTP status code for the request's response error.
8556func (s *NoOperationFault) StatusCode() int {
8557	return s.RespMetadata.StatusCode
8558}
8559
8560// RequestID returns the service's response RequestID for request.
8561func (s *NoOperationFault) RequestID() string {
8562	return s.RespMetadata.RequestID
8563}
8564
8565// Represents an individual node within a cluster. Each node runs its own instance
8566// of the cluster's protocol-compliant caching software.
8567type Node struct {
8568	_ struct{} `type:"structure"`
8569
8570	// The Availability Zone in which the node resides
8571	AvailabilityZone *string `type:"string"`
8572
8573	// The date and time when the node was created.
8574	CreateTime *time.Time `type:"timestamp"`
8575
8576	// The hostname for connecting to this node.
8577	Endpoint *Endpoint `type:"structure"`
8578
8579	// The node identifier. A node name is a numeric identifier (0001, 0002, etc.).
8580	// The combination of cluster name, shard name and node name uniquely identifies
8581	// every node used in a customer's Amazon account.
8582	Name *string `type:"string"`
8583
8584	// The status of the service update on the node
8585	Status *string `type:"string"`
8586}
8587
8588// String returns the string representation.
8589//
8590// API parameter values that are decorated as "sensitive" in the API will not
8591// be included in the string output. The member name will be present, but the
8592// value will be replaced with "sensitive".
8593func (s Node) String() string {
8594	return awsutil.Prettify(s)
8595}
8596
8597// GoString returns the string representation.
8598//
8599// API parameter values that are decorated as "sensitive" in the API will not
8600// be included in the string output. The member name will be present, but the
8601// value will be replaced with "sensitive".
8602func (s Node) GoString() string {
8603	return s.String()
8604}
8605
8606// SetAvailabilityZone sets the AvailabilityZone field's value.
8607func (s *Node) SetAvailabilityZone(v string) *Node {
8608	s.AvailabilityZone = &v
8609	return s
8610}
8611
8612// SetCreateTime sets the CreateTime field's value.
8613func (s *Node) SetCreateTime(v time.Time) *Node {
8614	s.CreateTime = &v
8615	return s
8616}
8617
8618// SetEndpoint sets the Endpoint field's value.
8619func (s *Node) SetEndpoint(v *Endpoint) *Node {
8620	s.Endpoint = v
8621	return s
8622}
8623
8624// SetName sets the Name field's value.
8625func (s *Node) SetName(v string) *Node {
8626	s.Name = &v
8627	return s
8628}
8629
8630// SetStatus sets the Status field's value.
8631func (s *Node) SetStatus(v string) *Node {
8632	s.Status = &v
8633	return s
8634}
8635
8636type NodeQuotaForClusterExceededFault struct {
8637	_            struct{}                  `type:"structure"`
8638	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8639
8640	Message_ *string `locationName:"message" type:"string"`
8641}
8642
8643// String returns the string representation.
8644//
8645// API parameter values that are decorated as "sensitive" in the API will not
8646// be included in the string output. The member name will be present, but the
8647// value will be replaced with "sensitive".
8648func (s NodeQuotaForClusterExceededFault) String() string {
8649	return awsutil.Prettify(s)
8650}
8651
8652// GoString returns the string representation.
8653//
8654// API parameter values that are decorated as "sensitive" in the API will not
8655// be included in the string output. The member name will be present, but the
8656// value will be replaced with "sensitive".
8657func (s NodeQuotaForClusterExceededFault) GoString() string {
8658	return s.String()
8659}
8660
8661func newErrorNodeQuotaForClusterExceededFault(v protocol.ResponseMetadata) error {
8662	return &NodeQuotaForClusterExceededFault{
8663		RespMetadata: v,
8664	}
8665}
8666
8667// Code returns the exception type name.
8668func (s *NodeQuotaForClusterExceededFault) Code() string {
8669	return "NodeQuotaForClusterExceededFault"
8670}
8671
8672// Message returns the exception's message.
8673func (s *NodeQuotaForClusterExceededFault) Message() string {
8674	if s.Message_ != nil {
8675		return *s.Message_
8676	}
8677	return ""
8678}
8679
8680// OrigErr always returns nil, satisfies awserr.Error interface.
8681func (s *NodeQuotaForClusterExceededFault) OrigErr() error {
8682	return nil
8683}
8684
8685func (s *NodeQuotaForClusterExceededFault) Error() string {
8686	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8687}
8688
8689// Status code returns the HTTP status code for the request's response error.
8690func (s *NodeQuotaForClusterExceededFault) StatusCode() int {
8691	return s.RespMetadata.StatusCode
8692}
8693
8694// RequestID returns the service's response RequestID for request.
8695func (s *NodeQuotaForClusterExceededFault) RequestID() string {
8696	return s.RespMetadata.RequestID
8697}
8698
8699type NodeQuotaForCustomerExceededFault struct {
8700	_            struct{}                  `type:"structure"`
8701	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8702
8703	Message_ *string `locationName:"message" type:"string"`
8704}
8705
8706// String returns the string representation.
8707//
8708// API parameter values that are decorated as "sensitive" in the API will not
8709// be included in the string output. The member name will be present, but the
8710// value will be replaced with "sensitive".
8711func (s NodeQuotaForCustomerExceededFault) String() string {
8712	return awsutil.Prettify(s)
8713}
8714
8715// GoString returns the string representation.
8716//
8717// API parameter values that are decorated as "sensitive" in the API will not
8718// be included in the string output. The member name will be present, but the
8719// value will be replaced with "sensitive".
8720func (s NodeQuotaForCustomerExceededFault) GoString() string {
8721	return s.String()
8722}
8723
8724func newErrorNodeQuotaForCustomerExceededFault(v protocol.ResponseMetadata) error {
8725	return &NodeQuotaForCustomerExceededFault{
8726		RespMetadata: v,
8727	}
8728}
8729
8730// Code returns the exception type name.
8731func (s *NodeQuotaForCustomerExceededFault) Code() string {
8732	return "NodeQuotaForCustomerExceededFault"
8733}
8734
8735// Message returns the exception's message.
8736func (s *NodeQuotaForCustomerExceededFault) Message() string {
8737	if s.Message_ != nil {
8738		return *s.Message_
8739	}
8740	return ""
8741}
8742
8743// OrigErr always returns nil, satisfies awserr.Error interface.
8744func (s *NodeQuotaForCustomerExceededFault) OrigErr() error {
8745	return nil
8746}
8747
8748func (s *NodeQuotaForCustomerExceededFault) Error() string {
8749	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8750}
8751
8752// Status code returns the HTTP status code for the request's response error.
8753func (s *NodeQuotaForCustomerExceededFault) StatusCode() int {
8754	return s.RespMetadata.StatusCode
8755}
8756
8757// RequestID returns the service's response RequestID for request.
8758func (s *NodeQuotaForCustomerExceededFault) RequestID() string {
8759	return s.RespMetadata.RequestID
8760}
8761
8762// Describes an individual setting that controls some aspect of MemoryDB behavior.
8763type Parameter struct {
8764	_ struct{} `type:"structure"`
8765
8766	// The valid range of values for the parameter.
8767	AllowedValues *string `type:"string"`
8768
8769	// The parameter's data type
8770	DataType *string `type:"string"`
8771
8772	// A description of the parameter
8773	Description *string `type:"string"`
8774
8775	// The earliest engine version to which the parameter can apply.
8776	MinimumEngineVersion *string `type:"string"`
8777
8778	// The name of the parameter
8779	Name *string `type:"string"`
8780
8781	// The value of the parameter
8782	Value *string `type:"string"`
8783}
8784
8785// String returns the string representation.
8786//
8787// API parameter values that are decorated as "sensitive" in the API will not
8788// be included in the string output. The member name will be present, but the
8789// value will be replaced with "sensitive".
8790func (s Parameter) String() string {
8791	return awsutil.Prettify(s)
8792}
8793
8794// GoString returns the string representation.
8795//
8796// API parameter values that are decorated as "sensitive" in the API will not
8797// be included in the string output. The member name will be present, but the
8798// value will be replaced with "sensitive".
8799func (s Parameter) GoString() string {
8800	return s.String()
8801}
8802
8803// SetAllowedValues sets the AllowedValues field's value.
8804func (s *Parameter) SetAllowedValues(v string) *Parameter {
8805	s.AllowedValues = &v
8806	return s
8807}
8808
8809// SetDataType sets the DataType field's value.
8810func (s *Parameter) SetDataType(v string) *Parameter {
8811	s.DataType = &v
8812	return s
8813}
8814
8815// SetDescription sets the Description field's value.
8816func (s *Parameter) SetDescription(v string) *Parameter {
8817	s.Description = &v
8818	return s
8819}
8820
8821// SetMinimumEngineVersion sets the MinimumEngineVersion field's value.
8822func (s *Parameter) SetMinimumEngineVersion(v string) *Parameter {
8823	s.MinimumEngineVersion = &v
8824	return s
8825}
8826
8827// SetName sets the Name field's value.
8828func (s *Parameter) SetName(v string) *Parameter {
8829	s.Name = &v
8830	return s
8831}
8832
8833// SetValue sets the Value field's value.
8834func (s *Parameter) SetValue(v string) *Parameter {
8835	s.Value = &v
8836	return s
8837}
8838
8839// Represents the output of a CreateParameterGroup operation. A parameter group
8840// represents a combination of specific values for the parameters that are passed
8841// to the engine software during startup.
8842type ParameterGroup struct {
8843	_ struct{} `type:"structure"`
8844
8845	// The Amazon Resource Name (ARN) of the parameter group
8846	ARN *string `type:"string"`
8847
8848	// A description of the parameter group
8849	Description *string `type:"string"`
8850
8851	// The name of the parameter group family that this parameter group is compatible
8852	// with.
8853	Family *string `type:"string"`
8854
8855	// The name of the parameter group
8856	Name *string `type:"string"`
8857}
8858
8859// String returns the string representation.
8860//
8861// API parameter values that are decorated as "sensitive" in the API will not
8862// be included in the string output. The member name will be present, but the
8863// value will be replaced with "sensitive".
8864func (s ParameterGroup) String() string {
8865	return awsutil.Prettify(s)
8866}
8867
8868// GoString returns the string representation.
8869//
8870// API parameter values that are decorated as "sensitive" in the API will not
8871// be included in the string output. The member name will be present, but the
8872// value will be replaced with "sensitive".
8873func (s ParameterGroup) GoString() string {
8874	return s.String()
8875}
8876
8877// SetARN sets the ARN field's value.
8878func (s *ParameterGroup) SetARN(v string) *ParameterGroup {
8879	s.ARN = &v
8880	return s
8881}
8882
8883// SetDescription sets the Description field's value.
8884func (s *ParameterGroup) SetDescription(v string) *ParameterGroup {
8885	s.Description = &v
8886	return s
8887}
8888
8889// SetFamily sets the Family field's value.
8890func (s *ParameterGroup) SetFamily(v string) *ParameterGroup {
8891	s.Family = &v
8892	return s
8893}
8894
8895// SetName sets the Name field's value.
8896func (s *ParameterGroup) SetName(v string) *ParameterGroup {
8897	s.Name = &v
8898	return s
8899}
8900
8901type ParameterGroupAlreadyExistsFault struct {
8902	_            struct{}                  `type:"structure"`
8903	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8904
8905	Message_ *string `locationName:"message" type:"string"`
8906}
8907
8908// String returns the string representation.
8909//
8910// API parameter values that are decorated as "sensitive" in the API will not
8911// be included in the string output. The member name will be present, but the
8912// value will be replaced with "sensitive".
8913func (s ParameterGroupAlreadyExistsFault) String() string {
8914	return awsutil.Prettify(s)
8915}
8916
8917// GoString returns the string representation.
8918//
8919// API parameter values that are decorated as "sensitive" in the API will not
8920// be included in the string output. The member name will be present, but the
8921// value will be replaced with "sensitive".
8922func (s ParameterGroupAlreadyExistsFault) GoString() string {
8923	return s.String()
8924}
8925
8926func newErrorParameterGroupAlreadyExistsFault(v protocol.ResponseMetadata) error {
8927	return &ParameterGroupAlreadyExistsFault{
8928		RespMetadata: v,
8929	}
8930}
8931
8932// Code returns the exception type name.
8933func (s *ParameterGroupAlreadyExistsFault) Code() string {
8934	return "ParameterGroupAlreadyExistsFault"
8935}
8936
8937// Message returns the exception's message.
8938func (s *ParameterGroupAlreadyExistsFault) Message() string {
8939	if s.Message_ != nil {
8940		return *s.Message_
8941	}
8942	return ""
8943}
8944
8945// OrigErr always returns nil, satisfies awserr.Error interface.
8946func (s *ParameterGroupAlreadyExistsFault) OrigErr() error {
8947	return nil
8948}
8949
8950func (s *ParameterGroupAlreadyExistsFault) Error() string {
8951	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8952}
8953
8954// Status code returns the HTTP status code for the request's response error.
8955func (s *ParameterGroupAlreadyExistsFault) StatusCode() int {
8956	return s.RespMetadata.StatusCode
8957}
8958
8959// RequestID returns the service's response RequestID for request.
8960func (s *ParameterGroupAlreadyExistsFault) RequestID() string {
8961	return s.RespMetadata.RequestID
8962}
8963
8964type ParameterGroupNotFoundFault struct {
8965	_            struct{}                  `type:"structure"`
8966	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8967
8968	Message_ *string `locationName:"message" type:"string"`
8969}
8970
8971// String returns the string representation.
8972//
8973// API parameter values that are decorated as "sensitive" in the API will not
8974// be included in the string output. The member name will be present, but the
8975// value will be replaced with "sensitive".
8976func (s ParameterGroupNotFoundFault) String() string {
8977	return awsutil.Prettify(s)
8978}
8979
8980// GoString returns the string representation.
8981//
8982// API parameter values that are decorated as "sensitive" in the API will not
8983// be included in the string output. The member name will be present, but the
8984// value will be replaced with "sensitive".
8985func (s ParameterGroupNotFoundFault) GoString() string {
8986	return s.String()
8987}
8988
8989func newErrorParameterGroupNotFoundFault(v protocol.ResponseMetadata) error {
8990	return &ParameterGroupNotFoundFault{
8991		RespMetadata: v,
8992	}
8993}
8994
8995// Code returns the exception type name.
8996func (s *ParameterGroupNotFoundFault) Code() string {
8997	return "ParameterGroupNotFoundFault"
8998}
8999
9000// Message returns the exception's message.
9001func (s *ParameterGroupNotFoundFault) Message() string {
9002	if s.Message_ != nil {
9003		return *s.Message_
9004	}
9005	return ""
9006}
9007
9008// OrigErr always returns nil, satisfies awserr.Error interface.
9009func (s *ParameterGroupNotFoundFault) OrigErr() error {
9010	return nil
9011}
9012
9013func (s *ParameterGroupNotFoundFault) Error() string {
9014	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9015}
9016
9017// Status code returns the HTTP status code for the request's response error.
9018func (s *ParameterGroupNotFoundFault) StatusCode() int {
9019	return s.RespMetadata.StatusCode
9020}
9021
9022// RequestID returns the service's response RequestID for request.
9023func (s *ParameterGroupNotFoundFault) RequestID() string {
9024	return s.RespMetadata.RequestID
9025}
9026
9027type ParameterGroupQuotaExceededFault struct {
9028	_            struct{}                  `type:"structure"`
9029	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9030
9031	Message_ *string `locationName:"message" type:"string"`
9032}
9033
9034// String returns the string representation.
9035//
9036// API parameter values that are decorated as "sensitive" in the API will not
9037// be included in the string output. The member name will be present, but the
9038// value will be replaced with "sensitive".
9039func (s ParameterGroupQuotaExceededFault) String() string {
9040	return awsutil.Prettify(s)
9041}
9042
9043// GoString returns the string representation.
9044//
9045// API parameter values that are decorated as "sensitive" in the API will not
9046// be included in the string output. The member name will be present, but the
9047// value will be replaced with "sensitive".
9048func (s ParameterGroupQuotaExceededFault) GoString() string {
9049	return s.String()
9050}
9051
9052func newErrorParameterGroupQuotaExceededFault(v protocol.ResponseMetadata) error {
9053	return &ParameterGroupQuotaExceededFault{
9054		RespMetadata: v,
9055	}
9056}
9057
9058// Code returns the exception type name.
9059func (s *ParameterGroupQuotaExceededFault) Code() string {
9060	return "ParameterGroupQuotaExceededFault"
9061}
9062
9063// Message returns the exception's message.
9064func (s *ParameterGroupQuotaExceededFault) Message() string {
9065	if s.Message_ != nil {
9066		return *s.Message_
9067	}
9068	return ""
9069}
9070
9071// OrigErr always returns nil, satisfies awserr.Error interface.
9072func (s *ParameterGroupQuotaExceededFault) OrigErr() error {
9073	return nil
9074}
9075
9076func (s *ParameterGroupQuotaExceededFault) Error() string {
9077	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9078}
9079
9080// Status code returns the HTTP status code for the request's response error.
9081func (s *ParameterGroupQuotaExceededFault) StatusCode() int {
9082	return s.RespMetadata.StatusCode
9083}
9084
9085// RequestID returns the service's response RequestID for request.
9086func (s *ParameterGroupQuotaExceededFault) RequestID() string {
9087	return s.RespMetadata.RequestID
9088}
9089
9090// Describes a name-value pair that is used to update the value of a parameter.
9091type ParameterNameValue struct {
9092	_ struct{} `type:"structure"`
9093
9094	// The name of the parameter
9095	ParameterName *string `type:"string"`
9096
9097	// The value of the parameter
9098	ParameterValue *string `type:"string"`
9099}
9100
9101// String returns the string representation.
9102//
9103// API parameter values that are decorated as "sensitive" in the API will not
9104// be included in the string output. The member name will be present, but the
9105// value will be replaced with "sensitive".
9106func (s ParameterNameValue) String() string {
9107	return awsutil.Prettify(s)
9108}
9109
9110// GoString returns the string representation.
9111//
9112// API parameter values that are decorated as "sensitive" in the API will not
9113// be included in the string output. The member name will be present, but the
9114// value will be replaced with "sensitive".
9115func (s ParameterNameValue) GoString() string {
9116	return s.String()
9117}
9118
9119// SetParameterName sets the ParameterName field's value.
9120func (s *ParameterNameValue) SetParameterName(v string) *ParameterNameValue {
9121	s.ParameterName = &v
9122	return s
9123}
9124
9125// SetParameterValue sets the ParameterValue field's value.
9126func (s *ParameterNameValue) SetParameterValue(v string) *ParameterNameValue {
9127	s.ParameterValue = &v
9128	return s
9129}
9130
9131// Update action that has yet to be processed for the corresponding apply/stop
9132// request
9133type PendingModifiedServiceUpdate struct {
9134	_ struct{} `type:"structure"`
9135
9136	// The unique ID of the service update
9137	ServiceUpdateName *string `type:"string"`
9138
9139	// The status of the service update
9140	Status *string `type:"string" enum:"ServiceUpdateStatus"`
9141}
9142
9143// String returns the string representation.
9144//
9145// API parameter values that are decorated as "sensitive" in the API will not
9146// be included in the string output. The member name will be present, but the
9147// value will be replaced with "sensitive".
9148func (s PendingModifiedServiceUpdate) String() string {
9149	return awsutil.Prettify(s)
9150}
9151
9152// GoString returns the string representation.
9153//
9154// API parameter values that are decorated as "sensitive" in the API will not
9155// be included in the string output. The member name will be present, but the
9156// value will be replaced with "sensitive".
9157func (s PendingModifiedServiceUpdate) GoString() string {
9158	return s.String()
9159}
9160
9161// SetServiceUpdateName sets the ServiceUpdateName field's value.
9162func (s *PendingModifiedServiceUpdate) SetServiceUpdateName(v string) *PendingModifiedServiceUpdate {
9163	s.ServiceUpdateName = &v
9164	return s
9165}
9166
9167// SetStatus sets the Status field's value.
9168func (s *PendingModifiedServiceUpdate) SetStatus(v string) *PendingModifiedServiceUpdate {
9169	s.Status = &v
9170	return s
9171}
9172
9173// A request to configure the number of replicas in a shard
9174type ReplicaConfigurationRequest struct {
9175	_ struct{} `type:"structure"`
9176
9177	// The number of replicas to scale up or down to
9178	ReplicaCount *int64 `type:"integer"`
9179}
9180
9181// String returns the string representation.
9182//
9183// API parameter values that are decorated as "sensitive" in the API will not
9184// be included in the string output. The member name will be present, but the
9185// value will be replaced with "sensitive".
9186func (s ReplicaConfigurationRequest) String() string {
9187	return awsutil.Prettify(s)
9188}
9189
9190// GoString returns the string representation.
9191//
9192// API parameter values that are decorated as "sensitive" in the API will not
9193// be included in the string output. The member name will be present, but the
9194// value will be replaced with "sensitive".
9195func (s ReplicaConfigurationRequest) GoString() string {
9196	return s.String()
9197}
9198
9199// SetReplicaCount sets the ReplicaCount field's value.
9200func (s *ReplicaConfigurationRequest) SetReplicaCount(v int64) *ReplicaConfigurationRequest {
9201	s.ReplicaCount = &v
9202	return s
9203}
9204
9205type ResetParameterGroupInput struct {
9206	_ struct{} `type:"structure"`
9207
9208	// If true, all parameters in the parameter group are reset to their default
9209	// values. If false, only the parameters listed by ParameterNames are reset
9210	// to their default values.
9211	AllParameters *bool `type:"boolean"`
9212
9213	// The name of the parameter group to reset.
9214	//
9215	// ParameterGroupName is a required field
9216	ParameterGroupName *string `type:"string" required:"true"`
9217
9218	// An array of parameter names to reset to their default values. If AllParameters
9219	// is true, do not use ParameterNames. If AllParameters is false, you must specify
9220	// the name of at least one parameter to reset.
9221	ParameterNames []*string `type:"list"`
9222}
9223
9224// String returns the string representation.
9225//
9226// API parameter values that are decorated as "sensitive" in the API will not
9227// be included in the string output. The member name will be present, but the
9228// value will be replaced with "sensitive".
9229func (s ResetParameterGroupInput) String() string {
9230	return awsutil.Prettify(s)
9231}
9232
9233// GoString returns the string representation.
9234//
9235// API parameter values that are decorated as "sensitive" in the API will not
9236// be included in the string output. The member name will be present, but the
9237// value will be replaced with "sensitive".
9238func (s ResetParameterGroupInput) GoString() string {
9239	return s.String()
9240}
9241
9242// Validate inspects the fields of the type to determine if they are valid.
9243func (s *ResetParameterGroupInput) Validate() error {
9244	invalidParams := request.ErrInvalidParams{Context: "ResetParameterGroupInput"}
9245	if s.ParameterGroupName == nil {
9246		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
9247	}
9248
9249	if invalidParams.Len() > 0 {
9250		return invalidParams
9251	}
9252	return nil
9253}
9254
9255// SetAllParameters sets the AllParameters field's value.
9256func (s *ResetParameterGroupInput) SetAllParameters(v bool) *ResetParameterGroupInput {
9257	s.AllParameters = &v
9258	return s
9259}
9260
9261// SetParameterGroupName sets the ParameterGroupName field's value.
9262func (s *ResetParameterGroupInput) SetParameterGroupName(v string) *ResetParameterGroupInput {
9263	s.ParameterGroupName = &v
9264	return s
9265}
9266
9267// SetParameterNames sets the ParameterNames field's value.
9268func (s *ResetParameterGroupInput) SetParameterNames(v []*string) *ResetParameterGroupInput {
9269	s.ParameterNames = v
9270	return s
9271}
9272
9273type ResetParameterGroupOutput struct {
9274	_ struct{} `type:"structure"`
9275
9276	// The parameter group being reset.
9277	ParameterGroup *ParameterGroup `type:"structure"`
9278}
9279
9280// String returns the string representation.
9281//
9282// API parameter values that are decorated as "sensitive" in the API will not
9283// be included in the string output. The member name will be present, but the
9284// value will be replaced with "sensitive".
9285func (s ResetParameterGroupOutput) String() string {
9286	return awsutil.Prettify(s)
9287}
9288
9289// GoString returns the string representation.
9290//
9291// API parameter values that are decorated as "sensitive" in the API will not
9292// be included in the string output. The member name will be present, but the
9293// value will be replaced with "sensitive".
9294func (s ResetParameterGroupOutput) GoString() string {
9295	return s.String()
9296}
9297
9298// SetParameterGroup sets the ParameterGroup field's value.
9299func (s *ResetParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *ResetParameterGroupOutput {
9300	s.ParameterGroup = v
9301	return s
9302}
9303
9304// The status of the online resharding
9305type ReshardingStatus struct {
9306	_ struct{} `type:"structure"`
9307
9308	// The status of the online resharding slot migration
9309	SlotMigration *SlotMigration `type:"structure"`
9310}
9311
9312// String returns the string representation.
9313//
9314// API parameter values that are decorated as "sensitive" in the API will not
9315// be included in the string output. The member name will be present, but the
9316// value will be replaced with "sensitive".
9317func (s ReshardingStatus) String() string {
9318	return awsutil.Prettify(s)
9319}
9320
9321// GoString returns the string representation.
9322//
9323// API parameter values that are decorated as "sensitive" in the API will not
9324// be included in the string output. The member name will be present, but the
9325// value will be replaced with "sensitive".
9326func (s ReshardingStatus) GoString() string {
9327	return s.String()
9328}
9329
9330// SetSlotMigration sets the SlotMigration field's value.
9331func (s *ReshardingStatus) SetSlotMigration(v *SlotMigration) *ReshardingStatus {
9332	s.SlotMigration = v
9333	return s
9334}
9335
9336// Represents a single security group and its status.
9337type SecurityGroupMembership struct {
9338	_ struct{} `type:"structure"`
9339
9340	// The identifier of the security group.
9341	SecurityGroupId *string `type:"string"`
9342
9343	// The status of the security group membership. The status changes whenever
9344	// a security group is modified, or when the security groups assigned to a cluster
9345	// are modified.
9346	Status *string `type:"string"`
9347}
9348
9349// String returns the string representation.
9350//
9351// API parameter values that are decorated as "sensitive" in the API will not
9352// be included in the string output. The member name will be present, but the
9353// value will be replaced with "sensitive".
9354func (s SecurityGroupMembership) String() string {
9355	return awsutil.Prettify(s)
9356}
9357
9358// GoString returns the string representation.
9359//
9360// API parameter values that are decorated as "sensitive" in the API will not
9361// be included in the string output. The member name will be present, but the
9362// value will be replaced with "sensitive".
9363func (s SecurityGroupMembership) GoString() string {
9364	return s.String()
9365}
9366
9367// SetSecurityGroupId sets the SecurityGroupId field's value.
9368func (s *SecurityGroupMembership) SetSecurityGroupId(v string) *SecurityGroupMembership {
9369	s.SecurityGroupId = &v
9370	return s
9371}
9372
9373// SetStatus sets the Status field's value.
9374func (s *SecurityGroupMembership) SetStatus(v string) *SecurityGroupMembership {
9375	s.Status = &v
9376	return s
9377}
9378
9379type ServiceLinkedRoleNotFoundFault struct {
9380	_            struct{}                  `type:"structure"`
9381	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9382
9383	Message_ *string `locationName:"message" type:"string"`
9384}
9385
9386// String returns the string representation.
9387//
9388// API parameter values that are decorated as "sensitive" in the API will not
9389// be included in the string output. The member name will be present, but the
9390// value will be replaced with "sensitive".
9391func (s ServiceLinkedRoleNotFoundFault) String() string {
9392	return awsutil.Prettify(s)
9393}
9394
9395// GoString returns the string representation.
9396//
9397// API parameter values that are decorated as "sensitive" in the API will not
9398// be included in the string output. The member name will be present, but the
9399// value will be replaced with "sensitive".
9400func (s ServiceLinkedRoleNotFoundFault) GoString() string {
9401	return s.String()
9402}
9403
9404func newErrorServiceLinkedRoleNotFoundFault(v protocol.ResponseMetadata) error {
9405	return &ServiceLinkedRoleNotFoundFault{
9406		RespMetadata: v,
9407	}
9408}
9409
9410// Code returns the exception type name.
9411func (s *ServiceLinkedRoleNotFoundFault) Code() string {
9412	return "ServiceLinkedRoleNotFoundFault"
9413}
9414
9415// Message returns the exception's message.
9416func (s *ServiceLinkedRoleNotFoundFault) Message() string {
9417	if s.Message_ != nil {
9418		return *s.Message_
9419	}
9420	return ""
9421}
9422
9423// OrigErr always returns nil, satisfies awserr.Error interface.
9424func (s *ServiceLinkedRoleNotFoundFault) OrigErr() error {
9425	return nil
9426}
9427
9428func (s *ServiceLinkedRoleNotFoundFault) Error() string {
9429	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9430}
9431
9432// Status code returns the HTTP status code for the request's response error.
9433func (s *ServiceLinkedRoleNotFoundFault) StatusCode() int {
9434	return s.RespMetadata.StatusCode
9435}
9436
9437// RequestID returns the service's response RequestID for request.
9438func (s *ServiceLinkedRoleNotFoundFault) RequestID() string {
9439	return s.RespMetadata.RequestID
9440}
9441
9442// An update that you can apply to your MemoryDB clusters.
9443type ServiceUpdate struct {
9444	_ struct{} `type:"structure"`
9445
9446	// The date at which the service update will be automatically applied
9447	AutoUpdateStartDate *time.Time `type:"timestamp"`
9448
9449	// The name of the cluster to which the service update applies
9450	ClusterName *string `type:"string"`
9451
9452	// Provides details of the service update
9453	Description *string `type:"string"`
9454
9455	// A list of nodes updated by the service update
9456	NodesUpdated *string `type:"string"`
9457
9458	// The date when the service update is initially available
9459	ReleaseDate *time.Time `type:"timestamp"`
9460
9461	// The unique ID of the service update
9462	ServiceUpdateName *string `type:"string"`
9463
9464	// The status of the service update
9465	Status *string `type:"string" enum:"ServiceUpdateStatus"`
9466
9467	// Reflects the nature of the service update
9468	Type *string `type:"string" enum:"ServiceUpdateType"`
9469}
9470
9471// String returns the string representation.
9472//
9473// API parameter values that are decorated as "sensitive" in the API will not
9474// be included in the string output. The member name will be present, but the
9475// value will be replaced with "sensitive".
9476func (s ServiceUpdate) String() string {
9477	return awsutil.Prettify(s)
9478}
9479
9480// GoString returns the string representation.
9481//
9482// API parameter values that are decorated as "sensitive" in the API will not
9483// be included in the string output. The member name will be present, but the
9484// value will be replaced with "sensitive".
9485func (s ServiceUpdate) GoString() string {
9486	return s.String()
9487}
9488
9489// SetAutoUpdateStartDate sets the AutoUpdateStartDate field's value.
9490func (s *ServiceUpdate) SetAutoUpdateStartDate(v time.Time) *ServiceUpdate {
9491	s.AutoUpdateStartDate = &v
9492	return s
9493}
9494
9495// SetClusterName sets the ClusterName field's value.
9496func (s *ServiceUpdate) SetClusterName(v string) *ServiceUpdate {
9497	s.ClusterName = &v
9498	return s
9499}
9500
9501// SetDescription sets the Description field's value.
9502func (s *ServiceUpdate) SetDescription(v string) *ServiceUpdate {
9503	s.Description = &v
9504	return s
9505}
9506
9507// SetNodesUpdated sets the NodesUpdated field's value.
9508func (s *ServiceUpdate) SetNodesUpdated(v string) *ServiceUpdate {
9509	s.NodesUpdated = &v
9510	return s
9511}
9512
9513// SetReleaseDate sets the ReleaseDate field's value.
9514func (s *ServiceUpdate) SetReleaseDate(v time.Time) *ServiceUpdate {
9515	s.ReleaseDate = &v
9516	return s
9517}
9518
9519// SetServiceUpdateName sets the ServiceUpdateName field's value.
9520func (s *ServiceUpdate) SetServiceUpdateName(v string) *ServiceUpdate {
9521	s.ServiceUpdateName = &v
9522	return s
9523}
9524
9525// SetStatus sets the Status field's value.
9526func (s *ServiceUpdate) SetStatus(v string) *ServiceUpdate {
9527	s.Status = &v
9528	return s
9529}
9530
9531// SetType sets the Type field's value.
9532func (s *ServiceUpdate) SetType(v string) *ServiceUpdate {
9533	s.Type = &v
9534	return s
9535}
9536
9537type ServiceUpdateNotFoundFault struct {
9538	_            struct{}                  `type:"structure"`
9539	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9540
9541	Message_ *string `locationName:"message" type:"string"`
9542}
9543
9544// String returns the string representation.
9545//
9546// API parameter values that are decorated as "sensitive" in the API will not
9547// be included in the string output. The member name will be present, but the
9548// value will be replaced with "sensitive".
9549func (s ServiceUpdateNotFoundFault) String() string {
9550	return awsutil.Prettify(s)
9551}
9552
9553// GoString returns the string representation.
9554//
9555// API parameter values that are decorated as "sensitive" in the API will not
9556// be included in the string output. The member name will be present, but the
9557// value will be replaced with "sensitive".
9558func (s ServiceUpdateNotFoundFault) GoString() string {
9559	return s.String()
9560}
9561
9562func newErrorServiceUpdateNotFoundFault(v protocol.ResponseMetadata) error {
9563	return &ServiceUpdateNotFoundFault{
9564		RespMetadata: v,
9565	}
9566}
9567
9568// Code returns the exception type name.
9569func (s *ServiceUpdateNotFoundFault) Code() string {
9570	return "ServiceUpdateNotFoundFault"
9571}
9572
9573// Message returns the exception's message.
9574func (s *ServiceUpdateNotFoundFault) Message() string {
9575	if s.Message_ != nil {
9576		return *s.Message_
9577	}
9578	return ""
9579}
9580
9581// OrigErr always returns nil, satisfies awserr.Error interface.
9582func (s *ServiceUpdateNotFoundFault) OrigErr() error {
9583	return nil
9584}
9585
9586func (s *ServiceUpdateNotFoundFault) Error() string {
9587	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9588}
9589
9590// Status code returns the HTTP status code for the request's response error.
9591func (s *ServiceUpdateNotFoundFault) StatusCode() int {
9592	return s.RespMetadata.StatusCode
9593}
9594
9595// RequestID returns the service's response RequestID for request.
9596func (s *ServiceUpdateNotFoundFault) RequestID() string {
9597	return s.RespMetadata.RequestID
9598}
9599
9600// A request to apply a service update
9601type ServiceUpdateRequest struct {
9602	_ struct{} `type:"structure"`
9603
9604	// The unique ID of the service update
9605	ServiceUpdateNameToApply *string `type:"string"`
9606}
9607
9608// String returns the string representation.
9609//
9610// API parameter values that are decorated as "sensitive" in the API will not
9611// be included in the string output. The member name will be present, but the
9612// value will be replaced with "sensitive".
9613func (s ServiceUpdateRequest) String() string {
9614	return awsutil.Prettify(s)
9615}
9616
9617// GoString returns the string representation.
9618//
9619// API parameter values that are decorated as "sensitive" in the API will not
9620// be included in the string output. The member name will be present, but the
9621// value will be replaced with "sensitive".
9622func (s ServiceUpdateRequest) GoString() string {
9623	return s.String()
9624}
9625
9626// SetServiceUpdateNameToApply sets the ServiceUpdateNameToApply field's value.
9627func (s *ServiceUpdateRequest) SetServiceUpdateNameToApply(v string) *ServiceUpdateRequest {
9628	s.ServiceUpdateNameToApply = &v
9629	return s
9630}
9631
9632// Represents a collection of nodes in a cluster. One node in the node group
9633// is the read/write primary node. All the other nodes are read-only Replica
9634// nodes.
9635type Shard struct {
9636	_ struct{} `type:"structure"`
9637
9638	// The name of the shard
9639	Name *string `type:"string"`
9640
9641	// A list containing information about individual nodes within the shard
9642	Nodes []*Node `type:"list"`
9643
9644	// The number of nodes in the shard
9645	NumberOfNodes *int64 `type:"integer"`
9646
9647	// The keyspace for this shard.
9648	Slots *string `type:"string"`
9649
9650	// The current state of this replication group - creating, available, modifying,
9651	// deleting.
9652	Status *string `type:"string"`
9653}
9654
9655// String returns the string representation.
9656//
9657// API parameter values that are decorated as "sensitive" in the API will not
9658// be included in the string output. The member name will be present, but the
9659// value will be replaced with "sensitive".
9660func (s Shard) String() string {
9661	return awsutil.Prettify(s)
9662}
9663
9664// GoString returns the string representation.
9665//
9666// API parameter values that are decorated as "sensitive" in the API will not
9667// be included in the string output. The member name will be present, but the
9668// value will be replaced with "sensitive".
9669func (s Shard) GoString() string {
9670	return s.String()
9671}
9672
9673// SetName sets the Name field's value.
9674func (s *Shard) SetName(v string) *Shard {
9675	s.Name = &v
9676	return s
9677}
9678
9679// SetNodes sets the Nodes field's value.
9680func (s *Shard) SetNodes(v []*Node) *Shard {
9681	s.Nodes = v
9682	return s
9683}
9684
9685// SetNumberOfNodes sets the NumberOfNodes field's value.
9686func (s *Shard) SetNumberOfNodes(v int64) *Shard {
9687	s.NumberOfNodes = &v
9688	return s
9689}
9690
9691// SetSlots sets the Slots field's value.
9692func (s *Shard) SetSlots(v string) *Shard {
9693	s.Slots = &v
9694	return s
9695}
9696
9697// SetStatus sets the Status field's value.
9698func (s *Shard) SetStatus(v string) *Shard {
9699	s.Status = &v
9700	return s
9701}
9702
9703// Shard configuration options. Each shard configuration has the following:
9704// Slots and ReplicaCount.
9705type ShardConfiguration struct {
9706	_ struct{} `type:"structure"`
9707
9708	// The number of read replica nodes in this shard.
9709	ReplicaCount *int64 `type:"integer"`
9710
9711	// A string that specifies the keyspace for a particular node group. Keyspaces
9712	// range from 0 to 16,383. The string is in the format startkey-endkey.
9713	Slots *string `type:"string"`
9714}
9715
9716// String returns the string representation.
9717//
9718// API parameter values that are decorated as "sensitive" in the API will not
9719// be included in the string output. The member name will be present, but the
9720// value will be replaced with "sensitive".
9721func (s ShardConfiguration) String() string {
9722	return awsutil.Prettify(s)
9723}
9724
9725// GoString returns the string representation.
9726//
9727// API parameter values that are decorated as "sensitive" in the API will not
9728// be included in the string output. The member name will be present, but the
9729// value will be replaced with "sensitive".
9730func (s ShardConfiguration) GoString() string {
9731	return s.String()
9732}
9733
9734// SetReplicaCount sets the ReplicaCount field's value.
9735func (s *ShardConfiguration) SetReplicaCount(v int64) *ShardConfiguration {
9736	s.ReplicaCount = &v
9737	return s
9738}
9739
9740// SetSlots sets the Slots field's value.
9741func (s *ShardConfiguration) SetSlots(v string) *ShardConfiguration {
9742	s.Slots = &v
9743	return s
9744}
9745
9746// A request to configure the sharding properties of a cluster
9747type ShardConfigurationRequest struct {
9748	_ struct{} `type:"structure"`
9749
9750	// The number of shards in the cluster
9751	ShardCount *int64 `type:"integer"`
9752}
9753
9754// String returns the string representation.
9755//
9756// API parameter values that are decorated as "sensitive" in the API will not
9757// be included in the string output. The member name will be present, but the
9758// value will be replaced with "sensitive".
9759func (s ShardConfigurationRequest) String() string {
9760	return awsutil.Prettify(s)
9761}
9762
9763// GoString returns the string representation.
9764//
9765// API parameter values that are decorated as "sensitive" in the API will not
9766// be included in the string output. The member name will be present, but the
9767// value will be replaced with "sensitive".
9768func (s ShardConfigurationRequest) GoString() string {
9769	return s.String()
9770}
9771
9772// SetShardCount sets the ShardCount field's value.
9773func (s *ShardConfigurationRequest) SetShardCount(v int64) *ShardConfigurationRequest {
9774	s.ShardCount = &v
9775	return s
9776}
9777
9778// Provides details of a shard in a snapshot
9779type ShardDetail struct {
9780	_ struct{} `type:"structure"`
9781
9782	// The configuration details of the shard
9783	Configuration *ShardConfiguration `type:"structure"`
9784
9785	// The name of the shard
9786	Name *string `type:"string"`
9787
9788	// The size of the shard's snapshot
9789	Size *string `type:"string"`
9790
9791	// The date and time that the shard's snapshot was created
9792	SnapshotCreationTime *time.Time `type:"timestamp"`
9793}
9794
9795// String returns the string representation.
9796//
9797// API parameter values that are decorated as "sensitive" in the API will not
9798// be included in the string output. The member name will be present, but the
9799// value will be replaced with "sensitive".
9800func (s ShardDetail) String() string {
9801	return awsutil.Prettify(s)
9802}
9803
9804// GoString returns the string representation.
9805//
9806// API parameter values that are decorated as "sensitive" in the API will not
9807// be included in the string output. The member name will be present, but the
9808// value will be replaced with "sensitive".
9809func (s ShardDetail) GoString() string {
9810	return s.String()
9811}
9812
9813// SetConfiguration sets the Configuration field's value.
9814func (s *ShardDetail) SetConfiguration(v *ShardConfiguration) *ShardDetail {
9815	s.Configuration = v
9816	return s
9817}
9818
9819// SetName sets the Name field's value.
9820func (s *ShardDetail) SetName(v string) *ShardDetail {
9821	s.Name = &v
9822	return s
9823}
9824
9825// SetSize sets the Size field's value.
9826func (s *ShardDetail) SetSize(v string) *ShardDetail {
9827	s.Size = &v
9828	return s
9829}
9830
9831// SetSnapshotCreationTime sets the SnapshotCreationTime field's value.
9832func (s *ShardDetail) SetSnapshotCreationTime(v time.Time) *ShardDetail {
9833	s.SnapshotCreationTime = &v
9834	return s
9835}
9836
9837type ShardNotFoundFault struct {
9838	_            struct{}                  `type:"structure"`
9839	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9840
9841	Message_ *string `locationName:"message" type:"string"`
9842}
9843
9844// String returns the string representation.
9845//
9846// API parameter values that are decorated as "sensitive" in the API will not
9847// be included in the string output. The member name will be present, but the
9848// value will be replaced with "sensitive".
9849func (s ShardNotFoundFault) String() string {
9850	return awsutil.Prettify(s)
9851}
9852
9853// GoString returns the string representation.
9854//
9855// API parameter values that are decorated as "sensitive" in the API will not
9856// be included in the string output. The member name will be present, but the
9857// value will be replaced with "sensitive".
9858func (s ShardNotFoundFault) GoString() string {
9859	return s.String()
9860}
9861
9862func newErrorShardNotFoundFault(v protocol.ResponseMetadata) error {
9863	return &ShardNotFoundFault{
9864		RespMetadata: v,
9865	}
9866}
9867
9868// Code returns the exception type name.
9869func (s *ShardNotFoundFault) Code() string {
9870	return "ShardNotFoundFault"
9871}
9872
9873// Message returns the exception's message.
9874func (s *ShardNotFoundFault) Message() string {
9875	if s.Message_ != nil {
9876		return *s.Message_
9877	}
9878	return ""
9879}
9880
9881// OrigErr always returns nil, satisfies awserr.Error interface.
9882func (s *ShardNotFoundFault) OrigErr() error {
9883	return nil
9884}
9885
9886func (s *ShardNotFoundFault) Error() string {
9887	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9888}
9889
9890// Status code returns the HTTP status code for the request's response error.
9891func (s *ShardNotFoundFault) StatusCode() int {
9892	return s.RespMetadata.StatusCode
9893}
9894
9895// RequestID returns the service's response RequestID for request.
9896func (s *ShardNotFoundFault) RequestID() string {
9897	return s.RespMetadata.RequestID
9898}
9899
9900type ShardsPerClusterQuotaExceededFault struct {
9901	_            struct{}                  `type:"structure"`
9902	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9903
9904	Message_ *string `locationName:"message" type:"string"`
9905}
9906
9907// String returns the string representation.
9908//
9909// API parameter values that are decorated as "sensitive" in the API will not
9910// be included in the string output. The member name will be present, but the
9911// value will be replaced with "sensitive".
9912func (s ShardsPerClusterQuotaExceededFault) String() string {
9913	return awsutil.Prettify(s)
9914}
9915
9916// GoString returns the string representation.
9917//
9918// API parameter values that are decorated as "sensitive" in the API will not
9919// be included in the string output. The member name will be present, but the
9920// value will be replaced with "sensitive".
9921func (s ShardsPerClusterQuotaExceededFault) GoString() string {
9922	return s.String()
9923}
9924
9925func newErrorShardsPerClusterQuotaExceededFault(v protocol.ResponseMetadata) error {
9926	return &ShardsPerClusterQuotaExceededFault{
9927		RespMetadata: v,
9928	}
9929}
9930
9931// Code returns the exception type name.
9932func (s *ShardsPerClusterQuotaExceededFault) Code() string {
9933	return "ShardsPerClusterQuotaExceededFault"
9934}
9935
9936// Message returns the exception's message.
9937func (s *ShardsPerClusterQuotaExceededFault) Message() string {
9938	if s.Message_ != nil {
9939		return *s.Message_
9940	}
9941	return ""
9942}
9943
9944// OrigErr always returns nil, satisfies awserr.Error interface.
9945func (s *ShardsPerClusterQuotaExceededFault) OrigErr() error {
9946	return nil
9947}
9948
9949func (s *ShardsPerClusterQuotaExceededFault) Error() string {
9950	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9951}
9952
9953// Status code returns the HTTP status code for the request's response error.
9954func (s *ShardsPerClusterQuotaExceededFault) StatusCode() int {
9955	return s.RespMetadata.StatusCode
9956}
9957
9958// RequestID returns the service's response RequestID for request.
9959func (s *ShardsPerClusterQuotaExceededFault) RequestID() string {
9960	return s.RespMetadata.RequestID
9961}
9962
9963// Represents the progress of an online resharding operation.
9964type SlotMigration struct {
9965	_ struct{} `type:"structure"`
9966
9967	// The percentage of the slot migration that is complete.
9968	ProgressPercentage *float64 `type:"double"`
9969}
9970
9971// String returns the string representation.
9972//
9973// API parameter values that are decorated as "sensitive" in the API will not
9974// be included in the string output. The member name will be present, but the
9975// value will be replaced with "sensitive".
9976func (s SlotMigration) String() string {
9977	return awsutil.Prettify(s)
9978}
9979
9980// GoString returns the string representation.
9981//
9982// API parameter values that are decorated as "sensitive" in the API will not
9983// be included in the string output. The member name will be present, but the
9984// value will be replaced with "sensitive".
9985func (s SlotMigration) GoString() string {
9986	return s.String()
9987}
9988
9989// SetProgressPercentage sets the ProgressPercentage field's value.
9990func (s *SlotMigration) SetProgressPercentage(v float64) *SlotMigration {
9991	s.ProgressPercentage = &v
9992	return s
9993}
9994
9995// Represents a copy of an entire cluster as of the time when the snapshot was
9996// taken.
9997type Snapshot struct {
9998	_ struct{} `type:"structure"`
9999
10000	// The ARN (Amazon Resource Name) of the snapshot.
10001	ARN *string `type:"string"`
10002
10003	// The configuration of the cluster from which the snapshot was taken
10004	ClusterConfiguration *ClusterConfiguration `type:"structure"`
10005
10006	// The ID of the KMS key used to encrypt the snapshot.
10007	KmsKeyId *string `type:"string"`
10008
10009	// The name of the snapshot
10010	Name *string `type:"string"`
10011
10012	// Indicates whether the snapshot is from an automatic backup (automated) or
10013	// was created manually (manual).
10014	Source *string `type:"string"`
10015
10016	// The status of the snapshot. Valid values: creating | available | restoring
10017	// | copying | deleting.
10018	Status *string `type:"string"`
10019}
10020
10021// String returns the string representation.
10022//
10023// API parameter values that are decorated as "sensitive" in the API will not
10024// be included in the string output. The member name will be present, but the
10025// value will be replaced with "sensitive".
10026func (s Snapshot) String() string {
10027	return awsutil.Prettify(s)
10028}
10029
10030// GoString returns the string representation.
10031//
10032// API parameter values that are decorated as "sensitive" in the API will not
10033// be included in the string output. The member name will be present, but the
10034// value will be replaced with "sensitive".
10035func (s Snapshot) GoString() string {
10036	return s.String()
10037}
10038
10039// SetARN sets the ARN field's value.
10040func (s *Snapshot) SetARN(v string) *Snapshot {
10041	s.ARN = &v
10042	return s
10043}
10044
10045// SetClusterConfiguration sets the ClusterConfiguration field's value.
10046func (s *Snapshot) SetClusterConfiguration(v *ClusterConfiguration) *Snapshot {
10047	s.ClusterConfiguration = v
10048	return s
10049}
10050
10051// SetKmsKeyId sets the KmsKeyId field's value.
10052func (s *Snapshot) SetKmsKeyId(v string) *Snapshot {
10053	s.KmsKeyId = &v
10054	return s
10055}
10056
10057// SetName sets the Name field's value.
10058func (s *Snapshot) SetName(v string) *Snapshot {
10059	s.Name = &v
10060	return s
10061}
10062
10063// SetSource sets the Source field's value.
10064func (s *Snapshot) SetSource(v string) *Snapshot {
10065	s.Source = &v
10066	return s
10067}
10068
10069// SetStatus sets the Status field's value.
10070func (s *Snapshot) SetStatus(v string) *Snapshot {
10071	s.Status = &v
10072	return s
10073}
10074
10075type SnapshotAlreadyExistsFault struct {
10076	_            struct{}                  `type:"structure"`
10077	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10078
10079	Message_ *string `locationName:"message" type:"string"`
10080}
10081
10082// String returns the string representation.
10083//
10084// API parameter values that are decorated as "sensitive" in the API will not
10085// be included in the string output. The member name will be present, but the
10086// value will be replaced with "sensitive".
10087func (s SnapshotAlreadyExistsFault) String() string {
10088	return awsutil.Prettify(s)
10089}
10090
10091// GoString returns the string representation.
10092//
10093// API parameter values that are decorated as "sensitive" in the API will not
10094// be included in the string output. The member name will be present, but the
10095// value will be replaced with "sensitive".
10096func (s SnapshotAlreadyExistsFault) GoString() string {
10097	return s.String()
10098}
10099
10100func newErrorSnapshotAlreadyExistsFault(v protocol.ResponseMetadata) error {
10101	return &SnapshotAlreadyExistsFault{
10102		RespMetadata: v,
10103	}
10104}
10105
10106// Code returns the exception type name.
10107func (s *SnapshotAlreadyExistsFault) Code() string {
10108	return "SnapshotAlreadyExistsFault"
10109}
10110
10111// Message returns the exception's message.
10112func (s *SnapshotAlreadyExistsFault) Message() string {
10113	if s.Message_ != nil {
10114		return *s.Message_
10115	}
10116	return ""
10117}
10118
10119// OrigErr always returns nil, satisfies awserr.Error interface.
10120func (s *SnapshotAlreadyExistsFault) OrigErr() error {
10121	return nil
10122}
10123
10124func (s *SnapshotAlreadyExistsFault) Error() string {
10125	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10126}
10127
10128// Status code returns the HTTP status code for the request's response error.
10129func (s *SnapshotAlreadyExistsFault) StatusCode() int {
10130	return s.RespMetadata.StatusCode
10131}
10132
10133// RequestID returns the service's response RequestID for request.
10134func (s *SnapshotAlreadyExistsFault) RequestID() string {
10135	return s.RespMetadata.RequestID
10136}
10137
10138type SnapshotNotFoundFault struct {
10139	_            struct{}                  `type:"structure"`
10140	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10141
10142	Message_ *string `locationName:"message" type:"string"`
10143}
10144
10145// String returns the string representation.
10146//
10147// API parameter values that are decorated as "sensitive" in the API will not
10148// be included in the string output. The member name will be present, but the
10149// value will be replaced with "sensitive".
10150func (s SnapshotNotFoundFault) String() string {
10151	return awsutil.Prettify(s)
10152}
10153
10154// GoString returns the string representation.
10155//
10156// API parameter values that are decorated as "sensitive" in the API will not
10157// be included in the string output. The member name will be present, but the
10158// value will be replaced with "sensitive".
10159func (s SnapshotNotFoundFault) GoString() string {
10160	return s.String()
10161}
10162
10163func newErrorSnapshotNotFoundFault(v protocol.ResponseMetadata) error {
10164	return &SnapshotNotFoundFault{
10165		RespMetadata: v,
10166	}
10167}
10168
10169// Code returns the exception type name.
10170func (s *SnapshotNotFoundFault) Code() string {
10171	return "SnapshotNotFoundFault"
10172}
10173
10174// Message returns the exception's message.
10175func (s *SnapshotNotFoundFault) Message() string {
10176	if s.Message_ != nil {
10177		return *s.Message_
10178	}
10179	return ""
10180}
10181
10182// OrigErr always returns nil, satisfies awserr.Error interface.
10183func (s *SnapshotNotFoundFault) OrigErr() error {
10184	return nil
10185}
10186
10187func (s *SnapshotNotFoundFault) Error() string {
10188	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10189}
10190
10191// Status code returns the HTTP status code for the request's response error.
10192func (s *SnapshotNotFoundFault) StatusCode() int {
10193	return s.RespMetadata.StatusCode
10194}
10195
10196// RequestID returns the service's response RequestID for request.
10197func (s *SnapshotNotFoundFault) RequestID() string {
10198	return s.RespMetadata.RequestID
10199}
10200
10201type SnapshotQuotaExceededFault struct {
10202	_            struct{}                  `type:"structure"`
10203	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10204
10205	Message_ *string `locationName:"message" type:"string"`
10206}
10207
10208// String returns the string representation.
10209//
10210// API parameter values that are decorated as "sensitive" in the API will not
10211// be included in the string output. The member name will be present, but the
10212// value will be replaced with "sensitive".
10213func (s SnapshotQuotaExceededFault) String() string {
10214	return awsutil.Prettify(s)
10215}
10216
10217// GoString returns the string representation.
10218//
10219// API parameter values that are decorated as "sensitive" in the API will not
10220// be included in the string output. The member name will be present, but the
10221// value will be replaced with "sensitive".
10222func (s SnapshotQuotaExceededFault) GoString() string {
10223	return s.String()
10224}
10225
10226func newErrorSnapshotQuotaExceededFault(v protocol.ResponseMetadata) error {
10227	return &SnapshotQuotaExceededFault{
10228		RespMetadata: v,
10229	}
10230}
10231
10232// Code returns the exception type name.
10233func (s *SnapshotQuotaExceededFault) Code() string {
10234	return "SnapshotQuotaExceededFault"
10235}
10236
10237// Message returns the exception's message.
10238func (s *SnapshotQuotaExceededFault) Message() string {
10239	if s.Message_ != nil {
10240		return *s.Message_
10241	}
10242	return ""
10243}
10244
10245// OrigErr always returns nil, satisfies awserr.Error interface.
10246func (s *SnapshotQuotaExceededFault) OrigErr() error {
10247	return nil
10248}
10249
10250func (s *SnapshotQuotaExceededFault) Error() string {
10251	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10252}
10253
10254// Status code returns the HTTP status code for the request's response error.
10255func (s *SnapshotQuotaExceededFault) StatusCode() int {
10256	return s.RespMetadata.StatusCode
10257}
10258
10259// RequestID returns the service's response RequestID for request.
10260func (s *SnapshotQuotaExceededFault) RequestID() string {
10261	return s.RespMetadata.RequestID
10262}
10263
10264// Represents the subnet associated with a cluster. This parameter refers to
10265// subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with
10266// MemoryDB.
10267type Subnet struct {
10268	_ struct{} `type:"structure"`
10269
10270	// The Availability Zone where the subnet resides
10271	AvailabilityZone *AvailabilityZone `type:"structure"`
10272
10273	// The unique identifier for the subnet.
10274	Identifier *string `type:"string"`
10275}
10276
10277// String returns the string representation.
10278//
10279// API parameter values that are decorated as "sensitive" in the API will not
10280// be included in the string output. The member name will be present, but the
10281// value will be replaced with "sensitive".
10282func (s Subnet) String() string {
10283	return awsutil.Prettify(s)
10284}
10285
10286// GoString returns the string representation.
10287//
10288// API parameter values that are decorated as "sensitive" in the API will not
10289// be included in the string output. The member name will be present, but the
10290// value will be replaced with "sensitive".
10291func (s Subnet) GoString() string {
10292	return s.String()
10293}
10294
10295// SetAvailabilityZone sets the AvailabilityZone field's value.
10296func (s *Subnet) SetAvailabilityZone(v *AvailabilityZone) *Subnet {
10297	s.AvailabilityZone = v
10298	return s
10299}
10300
10301// SetIdentifier sets the Identifier field's value.
10302func (s *Subnet) SetIdentifier(v string) *Subnet {
10303	s.Identifier = &v
10304	return s
10305}
10306
10307// Represents the output of one of the following operations:
10308//
10309//    * CreateSubnetGroup
10310//
10311//    * UpdateSubnetGroup
10312//
10313// A subnet group is a collection of subnets (typically private) that you can
10314// designate for your clusters running in an Amazon Virtual Private Cloud (VPC)
10315// environment.
10316type SubnetGroup struct {
10317	_ struct{} `type:"structure"`
10318
10319	// The ARN (Amazon Resource Name) of the subnet group.
10320	ARN *string `type:"string"`
10321
10322	// A description of the subnet group
10323	Description *string `type:"string"`
10324
10325	// The name of the subnet group
10326	Name *string `type:"string"`
10327
10328	// A list of subnets associated with the subnet group.
10329	Subnets []*Subnet `type:"list"`
10330
10331	// The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.
10332	VpcId *string `type:"string"`
10333}
10334
10335// String returns the string representation.
10336//
10337// API parameter values that are decorated as "sensitive" in the API will not
10338// be included in the string output. The member name will be present, but the
10339// value will be replaced with "sensitive".
10340func (s SubnetGroup) String() string {
10341	return awsutil.Prettify(s)
10342}
10343
10344// GoString returns the string representation.
10345//
10346// API parameter values that are decorated as "sensitive" in the API will not
10347// be included in the string output. The member name will be present, but the
10348// value will be replaced with "sensitive".
10349func (s SubnetGroup) GoString() string {
10350	return s.String()
10351}
10352
10353// SetARN sets the ARN field's value.
10354func (s *SubnetGroup) SetARN(v string) *SubnetGroup {
10355	s.ARN = &v
10356	return s
10357}
10358
10359// SetDescription sets the Description field's value.
10360func (s *SubnetGroup) SetDescription(v string) *SubnetGroup {
10361	s.Description = &v
10362	return s
10363}
10364
10365// SetName sets the Name field's value.
10366func (s *SubnetGroup) SetName(v string) *SubnetGroup {
10367	s.Name = &v
10368	return s
10369}
10370
10371// SetSubnets sets the Subnets field's value.
10372func (s *SubnetGroup) SetSubnets(v []*Subnet) *SubnetGroup {
10373	s.Subnets = v
10374	return s
10375}
10376
10377// SetVpcId sets the VpcId field's value.
10378func (s *SubnetGroup) SetVpcId(v string) *SubnetGroup {
10379	s.VpcId = &v
10380	return s
10381}
10382
10383type SubnetGroupAlreadyExistsFault struct {
10384	_            struct{}                  `type:"structure"`
10385	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10386
10387	Message_ *string `locationName:"message" type:"string"`
10388}
10389
10390// String returns the string representation.
10391//
10392// API parameter values that are decorated as "sensitive" in the API will not
10393// be included in the string output. The member name will be present, but the
10394// value will be replaced with "sensitive".
10395func (s SubnetGroupAlreadyExistsFault) String() string {
10396	return awsutil.Prettify(s)
10397}
10398
10399// GoString returns the string representation.
10400//
10401// API parameter values that are decorated as "sensitive" in the API will not
10402// be included in the string output. The member name will be present, but the
10403// value will be replaced with "sensitive".
10404func (s SubnetGroupAlreadyExistsFault) GoString() string {
10405	return s.String()
10406}
10407
10408func newErrorSubnetGroupAlreadyExistsFault(v protocol.ResponseMetadata) error {
10409	return &SubnetGroupAlreadyExistsFault{
10410		RespMetadata: v,
10411	}
10412}
10413
10414// Code returns the exception type name.
10415func (s *SubnetGroupAlreadyExistsFault) Code() string {
10416	return "SubnetGroupAlreadyExistsFault"
10417}
10418
10419// Message returns the exception's message.
10420func (s *SubnetGroupAlreadyExistsFault) Message() string {
10421	if s.Message_ != nil {
10422		return *s.Message_
10423	}
10424	return ""
10425}
10426
10427// OrigErr always returns nil, satisfies awserr.Error interface.
10428func (s *SubnetGroupAlreadyExistsFault) OrigErr() error {
10429	return nil
10430}
10431
10432func (s *SubnetGroupAlreadyExistsFault) Error() string {
10433	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10434}
10435
10436// Status code returns the HTTP status code for the request's response error.
10437func (s *SubnetGroupAlreadyExistsFault) StatusCode() int {
10438	return s.RespMetadata.StatusCode
10439}
10440
10441// RequestID returns the service's response RequestID for request.
10442func (s *SubnetGroupAlreadyExistsFault) RequestID() string {
10443	return s.RespMetadata.RequestID
10444}
10445
10446type SubnetGroupInUseFault struct {
10447	_            struct{}                  `type:"structure"`
10448	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10449
10450	Message_ *string `locationName:"message" type:"string"`
10451}
10452
10453// String returns the string representation.
10454//
10455// API parameter values that are decorated as "sensitive" in the API will not
10456// be included in the string output. The member name will be present, but the
10457// value will be replaced with "sensitive".
10458func (s SubnetGroupInUseFault) String() string {
10459	return awsutil.Prettify(s)
10460}
10461
10462// GoString returns the string representation.
10463//
10464// API parameter values that are decorated as "sensitive" in the API will not
10465// be included in the string output. The member name will be present, but the
10466// value will be replaced with "sensitive".
10467func (s SubnetGroupInUseFault) GoString() string {
10468	return s.String()
10469}
10470
10471func newErrorSubnetGroupInUseFault(v protocol.ResponseMetadata) error {
10472	return &SubnetGroupInUseFault{
10473		RespMetadata: v,
10474	}
10475}
10476
10477// Code returns the exception type name.
10478func (s *SubnetGroupInUseFault) Code() string {
10479	return "SubnetGroupInUseFault"
10480}
10481
10482// Message returns the exception's message.
10483func (s *SubnetGroupInUseFault) Message() string {
10484	if s.Message_ != nil {
10485		return *s.Message_
10486	}
10487	return ""
10488}
10489
10490// OrigErr always returns nil, satisfies awserr.Error interface.
10491func (s *SubnetGroupInUseFault) OrigErr() error {
10492	return nil
10493}
10494
10495func (s *SubnetGroupInUseFault) Error() string {
10496	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10497}
10498
10499// Status code returns the HTTP status code for the request's response error.
10500func (s *SubnetGroupInUseFault) StatusCode() int {
10501	return s.RespMetadata.StatusCode
10502}
10503
10504// RequestID returns the service's response RequestID for request.
10505func (s *SubnetGroupInUseFault) RequestID() string {
10506	return s.RespMetadata.RequestID
10507}
10508
10509type SubnetGroupNotFoundFault struct {
10510	_            struct{}                  `type:"structure"`
10511	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10512
10513	Message_ *string `locationName:"message" type:"string"`
10514}
10515
10516// String returns the string representation.
10517//
10518// API parameter values that are decorated as "sensitive" in the API will not
10519// be included in the string output. The member name will be present, but the
10520// value will be replaced with "sensitive".
10521func (s SubnetGroupNotFoundFault) String() string {
10522	return awsutil.Prettify(s)
10523}
10524
10525// GoString returns the string representation.
10526//
10527// API parameter values that are decorated as "sensitive" in the API will not
10528// be included in the string output. The member name will be present, but the
10529// value will be replaced with "sensitive".
10530func (s SubnetGroupNotFoundFault) GoString() string {
10531	return s.String()
10532}
10533
10534func newErrorSubnetGroupNotFoundFault(v protocol.ResponseMetadata) error {
10535	return &SubnetGroupNotFoundFault{
10536		RespMetadata: v,
10537	}
10538}
10539
10540// Code returns the exception type name.
10541func (s *SubnetGroupNotFoundFault) Code() string {
10542	return "SubnetGroupNotFoundFault"
10543}
10544
10545// Message returns the exception's message.
10546func (s *SubnetGroupNotFoundFault) Message() string {
10547	if s.Message_ != nil {
10548		return *s.Message_
10549	}
10550	return ""
10551}
10552
10553// OrigErr always returns nil, satisfies awserr.Error interface.
10554func (s *SubnetGroupNotFoundFault) OrigErr() error {
10555	return nil
10556}
10557
10558func (s *SubnetGroupNotFoundFault) Error() string {
10559	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10560}
10561
10562// Status code returns the HTTP status code for the request's response error.
10563func (s *SubnetGroupNotFoundFault) StatusCode() int {
10564	return s.RespMetadata.StatusCode
10565}
10566
10567// RequestID returns the service's response RequestID for request.
10568func (s *SubnetGroupNotFoundFault) RequestID() string {
10569	return s.RespMetadata.RequestID
10570}
10571
10572type SubnetGroupQuotaExceededFault struct {
10573	_            struct{}                  `type:"structure"`
10574	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10575
10576	Message_ *string `locationName:"message" type:"string"`
10577}
10578
10579// String returns the string representation.
10580//
10581// API parameter values that are decorated as "sensitive" in the API will not
10582// be included in the string output. The member name will be present, but the
10583// value will be replaced with "sensitive".
10584func (s SubnetGroupQuotaExceededFault) String() string {
10585	return awsutil.Prettify(s)
10586}
10587
10588// GoString returns the string representation.
10589//
10590// API parameter values that are decorated as "sensitive" in the API will not
10591// be included in the string output. The member name will be present, but the
10592// value will be replaced with "sensitive".
10593func (s SubnetGroupQuotaExceededFault) GoString() string {
10594	return s.String()
10595}
10596
10597func newErrorSubnetGroupQuotaExceededFault(v protocol.ResponseMetadata) error {
10598	return &SubnetGroupQuotaExceededFault{
10599		RespMetadata: v,
10600	}
10601}
10602
10603// Code returns the exception type name.
10604func (s *SubnetGroupQuotaExceededFault) Code() string {
10605	return "SubnetGroupQuotaExceededFault"
10606}
10607
10608// Message returns the exception's message.
10609func (s *SubnetGroupQuotaExceededFault) Message() string {
10610	if s.Message_ != nil {
10611		return *s.Message_
10612	}
10613	return ""
10614}
10615
10616// OrigErr always returns nil, satisfies awserr.Error interface.
10617func (s *SubnetGroupQuotaExceededFault) OrigErr() error {
10618	return nil
10619}
10620
10621func (s *SubnetGroupQuotaExceededFault) Error() string {
10622	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10623}
10624
10625// Status code returns the HTTP status code for the request's response error.
10626func (s *SubnetGroupQuotaExceededFault) StatusCode() int {
10627	return s.RespMetadata.StatusCode
10628}
10629
10630// RequestID returns the service's response RequestID for request.
10631func (s *SubnetGroupQuotaExceededFault) RequestID() string {
10632	return s.RespMetadata.RequestID
10633}
10634
10635type SubnetInUse struct {
10636	_            struct{}                  `type:"structure"`
10637	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10638
10639	Message_ *string `locationName:"message" type:"string"`
10640}
10641
10642// String returns the string representation.
10643//
10644// API parameter values that are decorated as "sensitive" in the API will not
10645// be included in the string output. The member name will be present, but the
10646// value will be replaced with "sensitive".
10647func (s SubnetInUse) String() string {
10648	return awsutil.Prettify(s)
10649}
10650
10651// GoString returns the string representation.
10652//
10653// API parameter values that are decorated as "sensitive" in the API will not
10654// be included in the string output. The member name will be present, but the
10655// value will be replaced with "sensitive".
10656func (s SubnetInUse) GoString() string {
10657	return s.String()
10658}
10659
10660func newErrorSubnetInUse(v protocol.ResponseMetadata) error {
10661	return &SubnetInUse{
10662		RespMetadata: v,
10663	}
10664}
10665
10666// Code returns the exception type name.
10667func (s *SubnetInUse) Code() string {
10668	return "SubnetInUse"
10669}
10670
10671// Message returns the exception's message.
10672func (s *SubnetInUse) Message() string {
10673	if s.Message_ != nil {
10674		return *s.Message_
10675	}
10676	return ""
10677}
10678
10679// OrigErr always returns nil, satisfies awserr.Error interface.
10680func (s *SubnetInUse) OrigErr() error {
10681	return nil
10682}
10683
10684func (s *SubnetInUse) Error() string {
10685	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10686}
10687
10688// Status code returns the HTTP status code for the request's response error.
10689func (s *SubnetInUse) StatusCode() int {
10690	return s.RespMetadata.StatusCode
10691}
10692
10693// RequestID returns the service's response RequestID for request.
10694func (s *SubnetInUse) RequestID() string {
10695	return s.RespMetadata.RequestID
10696}
10697
10698type SubnetNotAllowedFault struct {
10699	_            struct{}                  `type:"structure"`
10700	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10701
10702	Message_ *string `locationName:"message" type:"string"`
10703}
10704
10705// String returns the string representation.
10706//
10707// API parameter values that are decorated as "sensitive" in the API will not
10708// be included in the string output. The member name will be present, but the
10709// value will be replaced with "sensitive".
10710func (s SubnetNotAllowedFault) String() string {
10711	return awsutil.Prettify(s)
10712}
10713
10714// GoString returns the string representation.
10715//
10716// API parameter values that are decorated as "sensitive" in the API will not
10717// be included in the string output. The member name will be present, but the
10718// value will be replaced with "sensitive".
10719func (s SubnetNotAllowedFault) GoString() string {
10720	return s.String()
10721}
10722
10723func newErrorSubnetNotAllowedFault(v protocol.ResponseMetadata) error {
10724	return &SubnetNotAllowedFault{
10725		RespMetadata: v,
10726	}
10727}
10728
10729// Code returns the exception type name.
10730func (s *SubnetNotAllowedFault) Code() string {
10731	return "SubnetNotAllowedFault"
10732}
10733
10734// Message returns the exception's message.
10735func (s *SubnetNotAllowedFault) Message() string {
10736	if s.Message_ != nil {
10737		return *s.Message_
10738	}
10739	return ""
10740}
10741
10742// OrigErr always returns nil, satisfies awserr.Error interface.
10743func (s *SubnetNotAllowedFault) OrigErr() error {
10744	return nil
10745}
10746
10747func (s *SubnetNotAllowedFault) Error() string {
10748	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10749}
10750
10751// Status code returns the HTTP status code for the request's response error.
10752func (s *SubnetNotAllowedFault) StatusCode() int {
10753	return s.RespMetadata.StatusCode
10754}
10755
10756// RequestID returns the service's response RequestID for request.
10757func (s *SubnetNotAllowedFault) RequestID() string {
10758	return s.RespMetadata.RequestID
10759}
10760
10761type SubnetQuotaExceededFault struct {
10762	_            struct{}                  `type:"structure"`
10763	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10764
10765	Message_ *string `locationName:"message" type:"string"`
10766}
10767
10768// String returns the string representation.
10769//
10770// API parameter values that are decorated as "sensitive" in the API will not
10771// be included in the string output. The member name will be present, but the
10772// value will be replaced with "sensitive".
10773func (s SubnetQuotaExceededFault) String() string {
10774	return awsutil.Prettify(s)
10775}
10776
10777// GoString returns the string representation.
10778//
10779// API parameter values that are decorated as "sensitive" in the API will not
10780// be included in the string output. The member name will be present, but the
10781// value will be replaced with "sensitive".
10782func (s SubnetQuotaExceededFault) GoString() string {
10783	return s.String()
10784}
10785
10786func newErrorSubnetQuotaExceededFault(v protocol.ResponseMetadata) error {
10787	return &SubnetQuotaExceededFault{
10788		RespMetadata: v,
10789	}
10790}
10791
10792// Code returns the exception type name.
10793func (s *SubnetQuotaExceededFault) Code() string {
10794	return "SubnetQuotaExceededFault"
10795}
10796
10797// Message returns the exception's message.
10798func (s *SubnetQuotaExceededFault) Message() string {
10799	if s.Message_ != nil {
10800		return *s.Message_
10801	}
10802	return ""
10803}
10804
10805// OrigErr always returns nil, satisfies awserr.Error interface.
10806func (s *SubnetQuotaExceededFault) OrigErr() error {
10807	return nil
10808}
10809
10810func (s *SubnetQuotaExceededFault) Error() string {
10811	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10812}
10813
10814// Status code returns the HTTP status code for the request's response error.
10815func (s *SubnetQuotaExceededFault) StatusCode() int {
10816	return s.RespMetadata.StatusCode
10817}
10818
10819// RequestID returns the service's response RequestID for request.
10820func (s *SubnetQuotaExceededFault) RequestID() string {
10821	return s.RespMetadata.RequestID
10822}
10823
10824// A tag that can be added to an MemoryDB resource. Tags are composed of a Key/Value
10825// pair. You can use tags to categorize and track all your MemoryDB resources.
10826// When you add or remove tags on clusters, those actions will be replicated
10827// to all nodes in the cluster. A tag with a null Value is permitted. For more
10828// information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html)
10829type Tag struct {
10830	_ struct{} `type:"structure"`
10831
10832	// The key for the tag. May not be null.
10833	Key *string `type:"string"`
10834
10835	// The tag's value. May be null.
10836	Value *string `type:"string"`
10837}
10838
10839// String returns the string representation.
10840//
10841// API parameter values that are decorated as "sensitive" in the API will not
10842// be included in the string output. The member name will be present, but the
10843// value will be replaced with "sensitive".
10844func (s Tag) String() string {
10845	return awsutil.Prettify(s)
10846}
10847
10848// GoString returns the string representation.
10849//
10850// API parameter values that are decorated as "sensitive" in the API will not
10851// be included in the string output. The member name will be present, but the
10852// value will be replaced with "sensitive".
10853func (s Tag) GoString() string {
10854	return s.String()
10855}
10856
10857// SetKey sets the Key field's value.
10858func (s *Tag) SetKey(v string) *Tag {
10859	s.Key = &v
10860	return s
10861}
10862
10863// SetValue sets the Value field's value.
10864func (s *Tag) SetValue(v string) *Tag {
10865	s.Value = &v
10866	return s
10867}
10868
10869type TagNotFoundFault struct {
10870	_            struct{}                  `type:"structure"`
10871	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10872
10873	Message_ *string `locationName:"message" type:"string"`
10874}
10875
10876// String returns the string representation.
10877//
10878// API parameter values that are decorated as "sensitive" in the API will not
10879// be included in the string output. The member name will be present, but the
10880// value will be replaced with "sensitive".
10881func (s TagNotFoundFault) String() string {
10882	return awsutil.Prettify(s)
10883}
10884
10885// GoString returns the string representation.
10886//
10887// API parameter values that are decorated as "sensitive" in the API will not
10888// be included in the string output. The member name will be present, but the
10889// value will be replaced with "sensitive".
10890func (s TagNotFoundFault) GoString() string {
10891	return s.String()
10892}
10893
10894func newErrorTagNotFoundFault(v protocol.ResponseMetadata) error {
10895	return &TagNotFoundFault{
10896		RespMetadata: v,
10897	}
10898}
10899
10900// Code returns the exception type name.
10901func (s *TagNotFoundFault) Code() string {
10902	return "TagNotFoundFault"
10903}
10904
10905// Message returns the exception's message.
10906func (s *TagNotFoundFault) Message() string {
10907	if s.Message_ != nil {
10908		return *s.Message_
10909	}
10910	return ""
10911}
10912
10913// OrigErr always returns nil, satisfies awserr.Error interface.
10914func (s *TagNotFoundFault) OrigErr() error {
10915	return nil
10916}
10917
10918func (s *TagNotFoundFault) Error() string {
10919	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10920}
10921
10922// Status code returns the HTTP status code for the request's response error.
10923func (s *TagNotFoundFault) StatusCode() int {
10924	return s.RespMetadata.StatusCode
10925}
10926
10927// RequestID returns the service's response RequestID for request.
10928func (s *TagNotFoundFault) RequestID() string {
10929	return s.RespMetadata.RequestID
10930}
10931
10932type TagQuotaPerResourceExceeded struct {
10933	_            struct{}                  `type:"structure"`
10934	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10935
10936	Message_ *string `locationName:"message" type:"string"`
10937}
10938
10939// String returns the string representation.
10940//
10941// API parameter values that are decorated as "sensitive" in the API will not
10942// be included in the string output. The member name will be present, but the
10943// value will be replaced with "sensitive".
10944func (s TagQuotaPerResourceExceeded) String() string {
10945	return awsutil.Prettify(s)
10946}
10947
10948// GoString returns the string representation.
10949//
10950// API parameter values that are decorated as "sensitive" in the API will not
10951// be included in the string output. The member name will be present, but the
10952// value will be replaced with "sensitive".
10953func (s TagQuotaPerResourceExceeded) GoString() string {
10954	return s.String()
10955}
10956
10957func newErrorTagQuotaPerResourceExceeded(v protocol.ResponseMetadata) error {
10958	return &TagQuotaPerResourceExceeded{
10959		RespMetadata: v,
10960	}
10961}
10962
10963// Code returns the exception type name.
10964func (s *TagQuotaPerResourceExceeded) Code() string {
10965	return "TagQuotaPerResourceExceeded"
10966}
10967
10968// Message returns the exception's message.
10969func (s *TagQuotaPerResourceExceeded) Message() string {
10970	if s.Message_ != nil {
10971		return *s.Message_
10972	}
10973	return ""
10974}
10975
10976// OrigErr always returns nil, satisfies awserr.Error interface.
10977func (s *TagQuotaPerResourceExceeded) OrigErr() error {
10978	return nil
10979}
10980
10981func (s *TagQuotaPerResourceExceeded) Error() string {
10982	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10983}
10984
10985// Status code returns the HTTP status code for the request's response error.
10986func (s *TagQuotaPerResourceExceeded) StatusCode() int {
10987	return s.RespMetadata.StatusCode
10988}
10989
10990// RequestID returns the service's response RequestID for request.
10991func (s *TagQuotaPerResourceExceeded) RequestID() string {
10992	return s.RespMetadata.RequestID
10993}
10994
10995type TagResourceInput struct {
10996	_ struct{} `type:"structure"`
10997
10998	// The Amazon Resource Name (ARN) of the resource to which the tags are to be
10999	// added
11000	//
11001	// ResourceArn is a required field
11002	ResourceArn *string `type:"string" required:"true"`
11003
11004	// A list of tags to be added to this resource. A tag is a key-value pair. A
11005	// tag key must be accompanied by a tag value, although null is accepted.
11006	//
11007	// Tags is a required field
11008	Tags []*Tag `type:"list" required:"true"`
11009}
11010
11011// String returns the string representation.
11012//
11013// API parameter values that are decorated as "sensitive" in the API will not
11014// be included in the string output. The member name will be present, but the
11015// value will be replaced with "sensitive".
11016func (s TagResourceInput) String() string {
11017	return awsutil.Prettify(s)
11018}
11019
11020// GoString returns the string representation.
11021//
11022// API parameter values that are decorated as "sensitive" in the API will not
11023// be included in the string output. The member name will be present, but the
11024// value will be replaced with "sensitive".
11025func (s TagResourceInput) GoString() string {
11026	return s.String()
11027}
11028
11029// Validate inspects the fields of the type to determine if they are valid.
11030func (s *TagResourceInput) Validate() error {
11031	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
11032	if s.ResourceArn == nil {
11033		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
11034	}
11035	if s.Tags == nil {
11036		invalidParams.Add(request.NewErrParamRequired("Tags"))
11037	}
11038
11039	if invalidParams.Len() > 0 {
11040		return invalidParams
11041	}
11042	return nil
11043}
11044
11045// SetResourceArn sets the ResourceArn field's value.
11046func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
11047	s.ResourceArn = &v
11048	return s
11049}
11050
11051// SetTags sets the Tags field's value.
11052func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
11053	s.Tags = v
11054	return s
11055}
11056
11057type TagResourceOutput struct {
11058	_ struct{} `type:"structure"`
11059
11060	// A list of tags as key-value pairs.
11061	TagList []*Tag `type:"list"`
11062}
11063
11064// String returns the string representation.
11065//
11066// API parameter values that are decorated as "sensitive" in the API will not
11067// be included in the string output. The member name will be present, but the
11068// value will be replaced with "sensitive".
11069func (s TagResourceOutput) String() string {
11070	return awsutil.Prettify(s)
11071}
11072
11073// GoString returns the string representation.
11074//
11075// API parameter values that are decorated as "sensitive" in the API will not
11076// be included in the string output. The member name will be present, but the
11077// value will be replaced with "sensitive".
11078func (s TagResourceOutput) GoString() string {
11079	return s.String()
11080}
11081
11082// SetTagList sets the TagList field's value.
11083func (s *TagResourceOutput) SetTagList(v []*Tag) *TagResourceOutput {
11084	s.TagList = v
11085	return s
11086}
11087
11088type TestFailoverNotAvailableFault struct {
11089	_            struct{}                  `type:"structure"`
11090	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11091
11092	Message_ *string `locationName:"message" type:"string"`
11093}
11094
11095// String returns the string representation.
11096//
11097// API parameter values that are decorated as "sensitive" in the API will not
11098// be included in the string output. The member name will be present, but the
11099// value will be replaced with "sensitive".
11100func (s TestFailoverNotAvailableFault) String() string {
11101	return awsutil.Prettify(s)
11102}
11103
11104// GoString returns the string representation.
11105//
11106// API parameter values that are decorated as "sensitive" in the API will not
11107// be included in the string output. The member name will be present, but the
11108// value will be replaced with "sensitive".
11109func (s TestFailoverNotAvailableFault) GoString() string {
11110	return s.String()
11111}
11112
11113func newErrorTestFailoverNotAvailableFault(v protocol.ResponseMetadata) error {
11114	return &TestFailoverNotAvailableFault{
11115		RespMetadata: v,
11116	}
11117}
11118
11119// Code returns the exception type name.
11120func (s *TestFailoverNotAvailableFault) Code() string {
11121	return "TestFailoverNotAvailableFault"
11122}
11123
11124// Message returns the exception's message.
11125func (s *TestFailoverNotAvailableFault) Message() string {
11126	if s.Message_ != nil {
11127		return *s.Message_
11128	}
11129	return ""
11130}
11131
11132// OrigErr always returns nil, satisfies awserr.Error interface.
11133func (s *TestFailoverNotAvailableFault) OrigErr() error {
11134	return nil
11135}
11136
11137func (s *TestFailoverNotAvailableFault) Error() string {
11138	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11139}
11140
11141// Status code returns the HTTP status code for the request's response error.
11142func (s *TestFailoverNotAvailableFault) StatusCode() int {
11143	return s.RespMetadata.StatusCode
11144}
11145
11146// RequestID returns the service's response RequestID for request.
11147func (s *TestFailoverNotAvailableFault) RequestID() string {
11148	return s.RespMetadata.RequestID
11149}
11150
11151// A cluster whose updates have failed
11152type UnprocessedCluster struct {
11153	_ struct{} `type:"structure"`
11154
11155	// The name of the cluster
11156	ClusterName *string `type:"string"`
11157
11158	// The error message associated with the update failure
11159	ErrorMessage *string `type:"string"`
11160
11161	// The error type associated with the update failure
11162	ErrorType *string `type:"string"`
11163}
11164
11165// String returns the string representation.
11166//
11167// API parameter values that are decorated as "sensitive" in the API will not
11168// be included in the string output. The member name will be present, but the
11169// value will be replaced with "sensitive".
11170func (s UnprocessedCluster) String() string {
11171	return awsutil.Prettify(s)
11172}
11173
11174// GoString returns the string representation.
11175//
11176// API parameter values that are decorated as "sensitive" in the API will not
11177// be included in the string output. The member name will be present, but the
11178// value will be replaced with "sensitive".
11179func (s UnprocessedCluster) GoString() string {
11180	return s.String()
11181}
11182
11183// SetClusterName sets the ClusterName field's value.
11184func (s *UnprocessedCluster) SetClusterName(v string) *UnprocessedCluster {
11185	s.ClusterName = &v
11186	return s
11187}
11188
11189// SetErrorMessage sets the ErrorMessage field's value.
11190func (s *UnprocessedCluster) SetErrorMessage(v string) *UnprocessedCluster {
11191	s.ErrorMessage = &v
11192	return s
11193}
11194
11195// SetErrorType sets the ErrorType field's value.
11196func (s *UnprocessedCluster) SetErrorType(v string) *UnprocessedCluster {
11197	s.ErrorType = &v
11198	return s
11199}
11200
11201type UntagResourceInput struct {
11202	_ struct{} `type:"structure"`
11203
11204	// The Amazon Resource Name (ARN) of the resource to which the tags are to be
11205	// removed
11206	//
11207	// ResourceArn is a required field
11208	ResourceArn *string `type:"string" required:"true"`
11209
11210	// The list of keys of the tags that are to be removed
11211	//
11212	// TagKeys is a required field
11213	TagKeys []*string `type:"list" required:"true"`
11214}
11215
11216// String returns the string representation.
11217//
11218// API parameter values that are decorated as "sensitive" in the API will not
11219// be included in the string output. The member name will be present, but the
11220// value will be replaced with "sensitive".
11221func (s UntagResourceInput) String() string {
11222	return awsutil.Prettify(s)
11223}
11224
11225// GoString returns the string representation.
11226//
11227// API parameter values that are decorated as "sensitive" in the API will not
11228// be included in the string output. The member name will be present, but the
11229// value will be replaced with "sensitive".
11230func (s UntagResourceInput) GoString() string {
11231	return s.String()
11232}
11233
11234// Validate inspects the fields of the type to determine if they are valid.
11235func (s *UntagResourceInput) Validate() error {
11236	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
11237	if s.ResourceArn == nil {
11238		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
11239	}
11240	if s.TagKeys == nil {
11241		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
11242	}
11243
11244	if invalidParams.Len() > 0 {
11245		return invalidParams
11246	}
11247	return nil
11248}
11249
11250// SetResourceArn sets the ResourceArn field's value.
11251func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
11252	s.ResourceArn = &v
11253	return s
11254}
11255
11256// SetTagKeys sets the TagKeys field's value.
11257func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
11258	s.TagKeys = v
11259	return s
11260}
11261
11262type UntagResourceOutput struct {
11263	_ struct{} `type:"structure"`
11264
11265	// The list of tags removed
11266	TagList []*Tag `type:"list"`
11267}
11268
11269// String returns the string representation.
11270//
11271// API parameter values that are decorated as "sensitive" in the API will not
11272// be included in the string output. The member name will be present, but the
11273// value will be replaced with "sensitive".
11274func (s UntagResourceOutput) String() string {
11275	return awsutil.Prettify(s)
11276}
11277
11278// GoString returns the string representation.
11279//
11280// API parameter values that are decorated as "sensitive" in the API will not
11281// be included in the string output. The member name will be present, but the
11282// value will be replaced with "sensitive".
11283func (s UntagResourceOutput) GoString() string {
11284	return s.String()
11285}
11286
11287// SetTagList sets the TagList field's value.
11288func (s *UntagResourceOutput) SetTagList(v []*Tag) *UntagResourceOutput {
11289	s.TagList = v
11290	return s
11291}
11292
11293type UpdateACLInput struct {
11294	_ struct{} `type:"structure"`
11295
11296	// The name of the Access Control List
11297	//
11298	// ACLName is a required field
11299	ACLName *string `type:"string" required:"true"`
11300
11301	// The list of users to add to the Access Control List
11302	UserNamesToAdd []*string `min:"1" type:"list"`
11303
11304	// The list of users to remove from the Access Control List
11305	UserNamesToRemove []*string `min:"1" type:"list"`
11306}
11307
11308// String returns the string representation.
11309//
11310// API parameter values that are decorated as "sensitive" in the API will not
11311// be included in the string output. The member name will be present, but the
11312// value will be replaced with "sensitive".
11313func (s UpdateACLInput) String() string {
11314	return awsutil.Prettify(s)
11315}
11316
11317// GoString returns the string representation.
11318//
11319// API parameter values that are decorated as "sensitive" in the API will not
11320// be included in the string output. The member name will be present, but the
11321// value will be replaced with "sensitive".
11322func (s UpdateACLInput) GoString() string {
11323	return s.String()
11324}
11325
11326// Validate inspects the fields of the type to determine if they are valid.
11327func (s *UpdateACLInput) Validate() error {
11328	invalidParams := request.ErrInvalidParams{Context: "UpdateACLInput"}
11329	if s.ACLName == nil {
11330		invalidParams.Add(request.NewErrParamRequired("ACLName"))
11331	}
11332	if s.UserNamesToAdd != nil && len(s.UserNamesToAdd) < 1 {
11333		invalidParams.Add(request.NewErrParamMinLen("UserNamesToAdd", 1))
11334	}
11335	if s.UserNamesToRemove != nil && len(s.UserNamesToRemove) < 1 {
11336		invalidParams.Add(request.NewErrParamMinLen("UserNamesToRemove", 1))
11337	}
11338
11339	if invalidParams.Len() > 0 {
11340		return invalidParams
11341	}
11342	return nil
11343}
11344
11345// SetACLName sets the ACLName field's value.
11346func (s *UpdateACLInput) SetACLName(v string) *UpdateACLInput {
11347	s.ACLName = &v
11348	return s
11349}
11350
11351// SetUserNamesToAdd sets the UserNamesToAdd field's value.
11352func (s *UpdateACLInput) SetUserNamesToAdd(v []*string) *UpdateACLInput {
11353	s.UserNamesToAdd = v
11354	return s
11355}
11356
11357// SetUserNamesToRemove sets the UserNamesToRemove field's value.
11358func (s *UpdateACLInput) SetUserNamesToRemove(v []*string) *UpdateACLInput {
11359	s.UserNamesToRemove = v
11360	return s
11361}
11362
11363type UpdateACLOutput struct {
11364	_ struct{} `type:"structure"`
11365
11366	// The updated Access Control List
11367	ACL *ACL `type:"structure"`
11368}
11369
11370// String returns the string representation.
11371//
11372// API parameter values that are decorated as "sensitive" in the API will not
11373// be included in the string output. The member name will be present, but the
11374// value will be replaced with "sensitive".
11375func (s UpdateACLOutput) String() string {
11376	return awsutil.Prettify(s)
11377}
11378
11379// GoString returns the string representation.
11380//
11381// API parameter values that are decorated as "sensitive" in the API will not
11382// be included in the string output. The member name will be present, but the
11383// value will be replaced with "sensitive".
11384func (s UpdateACLOutput) GoString() string {
11385	return s.String()
11386}
11387
11388// SetACL sets the ACL field's value.
11389func (s *UpdateACLOutput) SetACL(v *ACL) *UpdateACLOutput {
11390	s.ACL = v
11391	return s
11392}
11393
11394type UpdateClusterInput struct {
11395	_ struct{} `type:"structure"`
11396
11397	// The Access Control List that is associated with the cluster
11398	ACLName *string `min:"1" type:"string"`
11399
11400	// The name of the cluster to update
11401	//
11402	// ClusterName is a required field
11403	ClusterName *string `type:"string" required:"true"`
11404
11405	// The description of the cluster to update
11406	Description *string `type:"string"`
11407
11408	// The upgraded version of the engine to be run on the nodes. You can upgrade
11409	// to a newer engine version, but you cannot downgrade to an earlier engine
11410	// version. If you want to use an earlier engine version, you must delete the
11411	// existing cluster and create it anew with the earlier engine version.
11412	EngineVersion *string `type:"string"`
11413
11414	// The maintenance window to update
11415	MaintenanceWindow *string `type:"string"`
11416
11417	// A valid node type that you want to scale this cluster up or down to.
11418	NodeType *string `type:"string"`
11419
11420	// The name of the parameter group to update
11421	ParameterGroupName *string `type:"string"`
11422
11423	// The number of replicas that will reside in each shard
11424	ReplicaConfiguration *ReplicaConfigurationRequest `type:"structure"`
11425
11426	// The SecurityGroupIds to update
11427	SecurityGroupIds []*string `type:"list"`
11428
11429	// The number of shards in the cluster
11430	ShardConfiguration *ShardConfigurationRequest `type:"structure"`
11431
11432	// The number of days for which MemoryDB retains automatic cluster snapshots
11433	// before deleting them. For example, if you set SnapshotRetentionLimit to 5,
11434	// a snapshot that was taken today is retained for 5 days before being deleted.
11435	SnapshotRetentionLimit *int64 `type:"integer"`
11436
11437	// The daily time range (in UTC) during which MemoryDB begins taking a daily
11438	// snapshot of your cluster.
11439	SnapshotWindow *string `type:"string"`
11440
11441	// The SNS topic ARN to update
11442	SnsTopicArn *string `type:"string"`
11443
11444	// The status of the Amazon SNS notification topic. Notifications are sent only
11445	// if the status is active.
11446	SnsTopicStatus *string `type:"string"`
11447}
11448
11449// String returns the string representation.
11450//
11451// API parameter values that are decorated as "sensitive" in the API will not
11452// be included in the string output. The member name will be present, but the
11453// value will be replaced with "sensitive".
11454func (s UpdateClusterInput) String() string {
11455	return awsutil.Prettify(s)
11456}
11457
11458// GoString returns the string representation.
11459//
11460// API parameter values that are decorated as "sensitive" in the API will not
11461// be included in the string output. The member name will be present, but the
11462// value will be replaced with "sensitive".
11463func (s UpdateClusterInput) GoString() string {
11464	return s.String()
11465}
11466
11467// Validate inspects the fields of the type to determine if they are valid.
11468func (s *UpdateClusterInput) Validate() error {
11469	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"}
11470	if s.ACLName != nil && len(*s.ACLName) < 1 {
11471		invalidParams.Add(request.NewErrParamMinLen("ACLName", 1))
11472	}
11473	if s.ClusterName == nil {
11474		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
11475	}
11476
11477	if invalidParams.Len() > 0 {
11478		return invalidParams
11479	}
11480	return nil
11481}
11482
11483// SetACLName sets the ACLName field's value.
11484func (s *UpdateClusterInput) SetACLName(v string) *UpdateClusterInput {
11485	s.ACLName = &v
11486	return s
11487}
11488
11489// SetClusterName sets the ClusterName field's value.
11490func (s *UpdateClusterInput) SetClusterName(v string) *UpdateClusterInput {
11491	s.ClusterName = &v
11492	return s
11493}
11494
11495// SetDescription sets the Description field's value.
11496func (s *UpdateClusterInput) SetDescription(v string) *UpdateClusterInput {
11497	s.Description = &v
11498	return s
11499}
11500
11501// SetEngineVersion sets the EngineVersion field's value.
11502func (s *UpdateClusterInput) SetEngineVersion(v string) *UpdateClusterInput {
11503	s.EngineVersion = &v
11504	return s
11505}
11506
11507// SetMaintenanceWindow sets the MaintenanceWindow field's value.
11508func (s *UpdateClusterInput) SetMaintenanceWindow(v string) *UpdateClusterInput {
11509	s.MaintenanceWindow = &v
11510	return s
11511}
11512
11513// SetNodeType sets the NodeType field's value.
11514func (s *UpdateClusterInput) SetNodeType(v string) *UpdateClusterInput {
11515	s.NodeType = &v
11516	return s
11517}
11518
11519// SetParameterGroupName sets the ParameterGroupName field's value.
11520func (s *UpdateClusterInput) SetParameterGroupName(v string) *UpdateClusterInput {
11521	s.ParameterGroupName = &v
11522	return s
11523}
11524
11525// SetReplicaConfiguration sets the ReplicaConfiguration field's value.
11526func (s *UpdateClusterInput) SetReplicaConfiguration(v *ReplicaConfigurationRequest) *UpdateClusterInput {
11527	s.ReplicaConfiguration = v
11528	return s
11529}
11530
11531// SetSecurityGroupIds sets the SecurityGroupIds field's value.
11532func (s *UpdateClusterInput) SetSecurityGroupIds(v []*string) *UpdateClusterInput {
11533	s.SecurityGroupIds = v
11534	return s
11535}
11536
11537// SetShardConfiguration sets the ShardConfiguration field's value.
11538func (s *UpdateClusterInput) SetShardConfiguration(v *ShardConfigurationRequest) *UpdateClusterInput {
11539	s.ShardConfiguration = v
11540	return s
11541}
11542
11543// SetSnapshotRetentionLimit sets the SnapshotRetentionLimit field's value.
11544func (s *UpdateClusterInput) SetSnapshotRetentionLimit(v int64) *UpdateClusterInput {
11545	s.SnapshotRetentionLimit = &v
11546	return s
11547}
11548
11549// SetSnapshotWindow sets the SnapshotWindow field's value.
11550func (s *UpdateClusterInput) SetSnapshotWindow(v string) *UpdateClusterInput {
11551	s.SnapshotWindow = &v
11552	return s
11553}
11554
11555// SetSnsTopicArn sets the SnsTopicArn field's value.
11556func (s *UpdateClusterInput) SetSnsTopicArn(v string) *UpdateClusterInput {
11557	s.SnsTopicArn = &v
11558	return s
11559}
11560
11561// SetSnsTopicStatus sets the SnsTopicStatus field's value.
11562func (s *UpdateClusterInput) SetSnsTopicStatus(v string) *UpdateClusterInput {
11563	s.SnsTopicStatus = &v
11564	return s
11565}
11566
11567type UpdateClusterOutput struct {
11568	_ struct{} `type:"structure"`
11569
11570	// The updated cluster
11571	Cluster *Cluster `type:"structure"`
11572}
11573
11574// String returns the string representation.
11575//
11576// API parameter values that are decorated as "sensitive" in the API will not
11577// be included in the string output. The member name will be present, but the
11578// value will be replaced with "sensitive".
11579func (s UpdateClusterOutput) String() string {
11580	return awsutil.Prettify(s)
11581}
11582
11583// GoString returns the string representation.
11584//
11585// API parameter values that are decorated as "sensitive" in the API will not
11586// be included in the string output. The member name will be present, but the
11587// value will be replaced with "sensitive".
11588func (s UpdateClusterOutput) GoString() string {
11589	return s.String()
11590}
11591
11592// SetCluster sets the Cluster field's value.
11593func (s *UpdateClusterOutput) SetCluster(v *Cluster) *UpdateClusterOutput {
11594	s.Cluster = v
11595	return s
11596}
11597
11598type UpdateParameterGroupInput struct {
11599	_ struct{} `type:"structure"`
11600
11601	// The name of the parameter group to update.
11602	//
11603	// ParameterGroupName is a required field
11604	ParameterGroupName *string `type:"string" required:"true"`
11605
11606	// An array of parameter names and values for the parameter update. You must
11607	// supply at least one parameter name and value; subsequent arguments are optional.
11608	// A maximum of 20 parameters may be updated per request.
11609	//
11610	// ParameterNameValues is a required field
11611	ParameterNameValues []*ParameterNameValue `type:"list" required:"true"`
11612}
11613
11614// String returns the string representation.
11615//
11616// API parameter values that are decorated as "sensitive" in the API will not
11617// be included in the string output. The member name will be present, but the
11618// value will be replaced with "sensitive".
11619func (s UpdateParameterGroupInput) String() string {
11620	return awsutil.Prettify(s)
11621}
11622
11623// GoString returns the string representation.
11624//
11625// API parameter values that are decorated as "sensitive" in the API will not
11626// be included in the string output. The member name will be present, but the
11627// value will be replaced with "sensitive".
11628func (s UpdateParameterGroupInput) GoString() string {
11629	return s.String()
11630}
11631
11632// Validate inspects the fields of the type to determine if they are valid.
11633func (s *UpdateParameterGroupInput) Validate() error {
11634	invalidParams := request.ErrInvalidParams{Context: "UpdateParameterGroupInput"}
11635	if s.ParameterGroupName == nil {
11636		invalidParams.Add(request.NewErrParamRequired("ParameterGroupName"))
11637	}
11638	if s.ParameterNameValues == nil {
11639		invalidParams.Add(request.NewErrParamRequired("ParameterNameValues"))
11640	}
11641
11642	if invalidParams.Len() > 0 {
11643		return invalidParams
11644	}
11645	return nil
11646}
11647
11648// SetParameterGroupName sets the ParameterGroupName field's value.
11649func (s *UpdateParameterGroupInput) SetParameterGroupName(v string) *UpdateParameterGroupInput {
11650	s.ParameterGroupName = &v
11651	return s
11652}
11653
11654// SetParameterNameValues sets the ParameterNameValues field's value.
11655func (s *UpdateParameterGroupInput) SetParameterNameValues(v []*ParameterNameValue) *UpdateParameterGroupInput {
11656	s.ParameterNameValues = v
11657	return s
11658}
11659
11660type UpdateParameterGroupOutput struct {
11661	_ struct{} `type:"structure"`
11662
11663	// The updated parameter group
11664	ParameterGroup *ParameterGroup `type:"structure"`
11665}
11666
11667// String returns the string representation.
11668//
11669// API parameter values that are decorated as "sensitive" in the API will not
11670// be included in the string output. The member name will be present, but the
11671// value will be replaced with "sensitive".
11672func (s UpdateParameterGroupOutput) String() string {
11673	return awsutil.Prettify(s)
11674}
11675
11676// GoString returns the string representation.
11677//
11678// API parameter values that are decorated as "sensitive" in the API will not
11679// be included in the string output. The member name will be present, but the
11680// value will be replaced with "sensitive".
11681func (s UpdateParameterGroupOutput) GoString() string {
11682	return s.String()
11683}
11684
11685// SetParameterGroup sets the ParameterGroup field's value.
11686func (s *UpdateParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *UpdateParameterGroupOutput {
11687	s.ParameterGroup = v
11688	return s
11689}
11690
11691type UpdateSubnetGroupInput struct {
11692	_ struct{} `type:"structure"`
11693
11694	// A description of the subnet group
11695	Description *string `type:"string"`
11696
11697	// The name of the subnet group
11698	//
11699	// SubnetGroupName is a required field
11700	SubnetGroupName *string `type:"string" required:"true"`
11701
11702	// The EC2 subnet IDs for the subnet group.
11703	SubnetIds []*string `type:"list"`
11704}
11705
11706// String returns the string representation.
11707//
11708// API parameter values that are decorated as "sensitive" in the API will not
11709// be included in the string output. The member name will be present, but the
11710// value will be replaced with "sensitive".
11711func (s UpdateSubnetGroupInput) String() string {
11712	return awsutil.Prettify(s)
11713}
11714
11715// GoString returns the string representation.
11716//
11717// API parameter values that are decorated as "sensitive" in the API will not
11718// be included in the string output. The member name will be present, but the
11719// value will be replaced with "sensitive".
11720func (s UpdateSubnetGroupInput) GoString() string {
11721	return s.String()
11722}
11723
11724// Validate inspects the fields of the type to determine if they are valid.
11725func (s *UpdateSubnetGroupInput) Validate() error {
11726	invalidParams := request.ErrInvalidParams{Context: "UpdateSubnetGroupInput"}
11727	if s.SubnetGroupName == nil {
11728		invalidParams.Add(request.NewErrParamRequired("SubnetGroupName"))
11729	}
11730
11731	if invalidParams.Len() > 0 {
11732		return invalidParams
11733	}
11734	return nil
11735}
11736
11737// SetDescription sets the Description field's value.
11738func (s *UpdateSubnetGroupInput) SetDescription(v string) *UpdateSubnetGroupInput {
11739	s.Description = &v
11740	return s
11741}
11742
11743// SetSubnetGroupName sets the SubnetGroupName field's value.
11744func (s *UpdateSubnetGroupInput) SetSubnetGroupName(v string) *UpdateSubnetGroupInput {
11745	s.SubnetGroupName = &v
11746	return s
11747}
11748
11749// SetSubnetIds sets the SubnetIds field's value.
11750func (s *UpdateSubnetGroupInput) SetSubnetIds(v []*string) *UpdateSubnetGroupInput {
11751	s.SubnetIds = v
11752	return s
11753}
11754
11755type UpdateSubnetGroupOutput struct {
11756	_ struct{} `type:"structure"`
11757
11758	// The updated subnet group
11759	SubnetGroup *SubnetGroup `type:"structure"`
11760}
11761
11762// String returns the string representation.
11763//
11764// API parameter values that are decorated as "sensitive" in the API will not
11765// be included in the string output. The member name will be present, but the
11766// value will be replaced with "sensitive".
11767func (s UpdateSubnetGroupOutput) String() string {
11768	return awsutil.Prettify(s)
11769}
11770
11771// GoString returns the string representation.
11772//
11773// API parameter values that are decorated as "sensitive" in the API will not
11774// be included in the string output. The member name will be present, but the
11775// value will be replaced with "sensitive".
11776func (s UpdateSubnetGroupOutput) GoString() string {
11777	return s.String()
11778}
11779
11780// SetSubnetGroup sets the SubnetGroup field's value.
11781func (s *UpdateSubnetGroupOutput) SetSubnetGroup(v *SubnetGroup) *UpdateSubnetGroupOutput {
11782	s.SubnetGroup = v
11783	return s
11784}
11785
11786type UpdateUserInput struct {
11787	_ struct{} `type:"structure"`
11788
11789	// Access permissions string used for this user.
11790	AccessString *string `type:"string"`
11791
11792	// Denotes the user's authentication properties, such as whether it requires
11793	// a password to authenticate.
11794	AuthenticationMode *AuthenticationMode `type:"structure"`
11795
11796	// The name of the user
11797	//
11798	// UserName is a required field
11799	UserName *string `min:"1" type:"string" required:"true"`
11800}
11801
11802// String returns the string representation.
11803//
11804// API parameter values that are decorated as "sensitive" in the API will not
11805// be included in the string output. The member name will be present, but the
11806// value will be replaced with "sensitive".
11807func (s UpdateUserInput) String() string {
11808	return awsutil.Prettify(s)
11809}
11810
11811// GoString returns the string representation.
11812//
11813// API parameter values that are decorated as "sensitive" in the API will not
11814// be included in the string output. The member name will be present, but the
11815// value will be replaced with "sensitive".
11816func (s UpdateUserInput) GoString() string {
11817	return s.String()
11818}
11819
11820// Validate inspects the fields of the type to determine if they are valid.
11821func (s *UpdateUserInput) Validate() error {
11822	invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"}
11823	if s.UserName == nil {
11824		invalidParams.Add(request.NewErrParamRequired("UserName"))
11825	}
11826	if s.UserName != nil && len(*s.UserName) < 1 {
11827		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
11828	}
11829	if s.AuthenticationMode != nil {
11830		if err := s.AuthenticationMode.Validate(); err != nil {
11831			invalidParams.AddNested("AuthenticationMode", err.(request.ErrInvalidParams))
11832		}
11833	}
11834
11835	if invalidParams.Len() > 0 {
11836		return invalidParams
11837	}
11838	return nil
11839}
11840
11841// SetAccessString sets the AccessString field's value.
11842func (s *UpdateUserInput) SetAccessString(v string) *UpdateUserInput {
11843	s.AccessString = &v
11844	return s
11845}
11846
11847// SetAuthenticationMode sets the AuthenticationMode field's value.
11848func (s *UpdateUserInput) SetAuthenticationMode(v *AuthenticationMode) *UpdateUserInput {
11849	s.AuthenticationMode = v
11850	return s
11851}
11852
11853// SetUserName sets the UserName field's value.
11854func (s *UpdateUserInput) SetUserName(v string) *UpdateUserInput {
11855	s.UserName = &v
11856	return s
11857}
11858
11859type UpdateUserOutput struct {
11860	_ struct{} `type:"structure"`
11861
11862	// The updated user
11863	User *User `type:"structure"`
11864}
11865
11866// String returns the string representation.
11867//
11868// API parameter values that are decorated as "sensitive" in the API will not
11869// be included in the string output. The member name will be present, but the
11870// value will be replaced with "sensitive".
11871func (s UpdateUserOutput) String() string {
11872	return awsutil.Prettify(s)
11873}
11874
11875// GoString returns the string representation.
11876//
11877// API parameter values that are decorated as "sensitive" in the API will not
11878// be included in the string output. The member name will be present, but the
11879// value will be replaced with "sensitive".
11880func (s UpdateUserOutput) GoString() string {
11881	return s.String()
11882}
11883
11884// SetUser sets the User field's value.
11885func (s *UpdateUserOutput) SetUser(v *User) *UpdateUserOutput {
11886	s.User = v
11887	return s
11888}
11889
11890// You create users and assign them specific permissions by using an access
11891// string. You assign the users to Access Control Lists aligned with a specific
11892// role (administrators, human resources) that are then deployed to one or more
11893// MemoryDB clusters.
11894type User struct {
11895	_ struct{} `type:"structure"`
11896
11897	// The names of the Access Control Lists to which the user belongs
11898	ACLNames []*string `type:"list"`
11899
11900	// The Amazon Resource Name (ARN) of the user.
11901	ARN *string `type:"string"`
11902
11903	// Access permissions string used for this user.
11904	AccessString *string `type:"string"`
11905
11906	// Denotes whether the user requires a password to authenticate.
11907	Authentication *Authentication `type:"structure"`
11908
11909	// The minimum engine version supported for the user
11910	MinimumEngineVersion *string `type:"string"`
11911
11912	// The name of the user
11913	Name *string `type:"string"`
11914
11915	// Indicates the user status. Can be "active", "modifying" or "deleting".
11916	Status *string `type:"string"`
11917}
11918
11919// String returns the string representation.
11920//
11921// API parameter values that are decorated as "sensitive" in the API will not
11922// be included in the string output. The member name will be present, but the
11923// value will be replaced with "sensitive".
11924func (s User) String() string {
11925	return awsutil.Prettify(s)
11926}
11927
11928// GoString returns the string representation.
11929//
11930// API parameter values that are decorated as "sensitive" in the API will not
11931// be included in the string output. The member name will be present, but the
11932// value will be replaced with "sensitive".
11933func (s User) GoString() string {
11934	return s.String()
11935}
11936
11937// SetACLNames sets the ACLNames field's value.
11938func (s *User) SetACLNames(v []*string) *User {
11939	s.ACLNames = v
11940	return s
11941}
11942
11943// SetARN sets the ARN field's value.
11944func (s *User) SetARN(v string) *User {
11945	s.ARN = &v
11946	return s
11947}
11948
11949// SetAccessString sets the AccessString field's value.
11950func (s *User) SetAccessString(v string) *User {
11951	s.AccessString = &v
11952	return s
11953}
11954
11955// SetAuthentication sets the Authentication field's value.
11956func (s *User) SetAuthentication(v *Authentication) *User {
11957	s.Authentication = v
11958	return s
11959}
11960
11961// SetMinimumEngineVersion sets the MinimumEngineVersion field's value.
11962func (s *User) SetMinimumEngineVersion(v string) *User {
11963	s.MinimumEngineVersion = &v
11964	return s
11965}
11966
11967// SetName sets the Name field's value.
11968func (s *User) SetName(v string) *User {
11969	s.Name = &v
11970	return s
11971}
11972
11973// SetStatus sets the Status field's value.
11974func (s *User) SetStatus(v string) *User {
11975	s.Status = &v
11976	return s
11977}
11978
11979type UserAlreadyExistsFault struct {
11980	_            struct{}                  `type:"structure"`
11981	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11982
11983	Message_ *string `locationName:"message" type:"string"`
11984}
11985
11986// String returns the string representation.
11987//
11988// API parameter values that are decorated as "sensitive" in the API will not
11989// be included in the string output. The member name will be present, but the
11990// value will be replaced with "sensitive".
11991func (s UserAlreadyExistsFault) String() string {
11992	return awsutil.Prettify(s)
11993}
11994
11995// GoString returns the string representation.
11996//
11997// API parameter values that are decorated as "sensitive" in the API will not
11998// be included in the string output. The member name will be present, but the
11999// value will be replaced with "sensitive".
12000func (s UserAlreadyExistsFault) GoString() string {
12001	return s.String()
12002}
12003
12004func newErrorUserAlreadyExistsFault(v protocol.ResponseMetadata) error {
12005	return &UserAlreadyExistsFault{
12006		RespMetadata: v,
12007	}
12008}
12009
12010// Code returns the exception type name.
12011func (s *UserAlreadyExistsFault) Code() string {
12012	return "UserAlreadyExistsFault"
12013}
12014
12015// Message returns the exception's message.
12016func (s *UserAlreadyExistsFault) Message() string {
12017	if s.Message_ != nil {
12018		return *s.Message_
12019	}
12020	return ""
12021}
12022
12023// OrigErr always returns nil, satisfies awserr.Error interface.
12024func (s *UserAlreadyExistsFault) OrigErr() error {
12025	return nil
12026}
12027
12028func (s *UserAlreadyExistsFault) Error() string {
12029	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12030}
12031
12032// Status code returns the HTTP status code for the request's response error.
12033func (s *UserAlreadyExistsFault) StatusCode() int {
12034	return s.RespMetadata.StatusCode
12035}
12036
12037// RequestID returns the service's response RequestID for request.
12038func (s *UserAlreadyExistsFault) RequestID() string {
12039	return s.RespMetadata.RequestID
12040}
12041
12042type UserNotFoundFault struct {
12043	_            struct{}                  `type:"structure"`
12044	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12045
12046	Message_ *string `locationName:"message" type:"string"`
12047}
12048
12049// String returns the string representation.
12050//
12051// API parameter values that are decorated as "sensitive" in the API will not
12052// be included in the string output. The member name will be present, but the
12053// value will be replaced with "sensitive".
12054func (s UserNotFoundFault) String() string {
12055	return awsutil.Prettify(s)
12056}
12057
12058// GoString returns the string representation.
12059//
12060// API parameter values that are decorated as "sensitive" in the API will not
12061// be included in the string output. The member name will be present, but the
12062// value will be replaced with "sensitive".
12063func (s UserNotFoundFault) GoString() string {
12064	return s.String()
12065}
12066
12067func newErrorUserNotFoundFault(v protocol.ResponseMetadata) error {
12068	return &UserNotFoundFault{
12069		RespMetadata: v,
12070	}
12071}
12072
12073// Code returns the exception type name.
12074func (s *UserNotFoundFault) Code() string {
12075	return "UserNotFoundFault"
12076}
12077
12078// Message returns the exception's message.
12079func (s *UserNotFoundFault) Message() string {
12080	if s.Message_ != nil {
12081		return *s.Message_
12082	}
12083	return ""
12084}
12085
12086// OrigErr always returns nil, satisfies awserr.Error interface.
12087func (s *UserNotFoundFault) OrigErr() error {
12088	return nil
12089}
12090
12091func (s *UserNotFoundFault) Error() string {
12092	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12093}
12094
12095// Status code returns the HTTP status code for the request's response error.
12096func (s *UserNotFoundFault) StatusCode() int {
12097	return s.RespMetadata.StatusCode
12098}
12099
12100// RequestID returns the service's response RequestID for request.
12101func (s *UserNotFoundFault) RequestID() string {
12102	return s.RespMetadata.RequestID
12103}
12104
12105type UserQuotaExceededFault struct {
12106	_            struct{}                  `type:"structure"`
12107	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12108
12109	Message_ *string `locationName:"message" type:"string"`
12110}
12111
12112// String returns the string representation.
12113//
12114// API parameter values that are decorated as "sensitive" in the API will not
12115// be included in the string output. The member name will be present, but the
12116// value will be replaced with "sensitive".
12117func (s UserQuotaExceededFault) String() string {
12118	return awsutil.Prettify(s)
12119}
12120
12121// GoString returns the string representation.
12122//
12123// API parameter values that are decorated as "sensitive" in the API will not
12124// be included in the string output. The member name will be present, but the
12125// value will be replaced with "sensitive".
12126func (s UserQuotaExceededFault) GoString() string {
12127	return s.String()
12128}
12129
12130func newErrorUserQuotaExceededFault(v protocol.ResponseMetadata) error {
12131	return &UserQuotaExceededFault{
12132		RespMetadata: v,
12133	}
12134}
12135
12136// Code returns the exception type name.
12137func (s *UserQuotaExceededFault) Code() string {
12138	return "UserQuotaExceededFault"
12139}
12140
12141// Message returns the exception's message.
12142func (s *UserQuotaExceededFault) Message() string {
12143	if s.Message_ != nil {
12144		return *s.Message_
12145	}
12146	return ""
12147}
12148
12149// OrigErr always returns nil, satisfies awserr.Error interface.
12150func (s *UserQuotaExceededFault) OrigErr() error {
12151	return nil
12152}
12153
12154func (s *UserQuotaExceededFault) Error() string {
12155	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12156}
12157
12158// Status code returns the HTTP status code for the request's response error.
12159func (s *UserQuotaExceededFault) StatusCode() int {
12160	return s.RespMetadata.StatusCode
12161}
12162
12163// RequestID returns the service's response RequestID for request.
12164func (s *UserQuotaExceededFault) RequestID() string {
12165	return s.RespMetadata.RequestID
12166}
12167
12168const (
12169	// AZStatusSingleaz is a AZStatus enum value
12170	AZStatusSingleaz = "singleaz"
12171
12172	// AZStatusMultiaz is a AZStatus enum value
12173	AZStatusMultiaz = "multiaz"
12174)
12175
12176// AZStatus_Values returns all elements of the AZStatus enum
12177func AZStatus_Values() []string {
12178	return []string{
12179		AZStatusSingleaz,
12180		AZStatusMultiaz,
12181	}
12182}
12183
12184const (
12185	// AuthenticationTypePassword is a AuthenticationType enum value
12186	AuthenticationTypePassword = "password"
12187
12188	// AuthenticationTypeNoPassword is a AuthenticationType enum value
12189	AuthenticationTypeNoPassword = "no-password"
12190)
12191
12192// AuthenticationType_Values returns all elements of the AuthenticationType enum
12193func AuthenticationType_Values() []string {
12194	return []string{
12195		AuthenticationTypePassword,
12196		AuthenticationTypeNoPassword,
12197	}
12198}
12199
12200const (
12201	// InputAuthenticationTypePassword is a InputAuthenticationType enum value
12202	InputAuthenticationTypePassword = "password"
12203)
12204
12205// InputAuthenticationType_Values returns all elements of the InputAuthenticationType enum
12206func InputAuthenticationType_Values() []string {
12207	return []string{
12208		InputAuthenticationTypePassword,
12209	}
12210}
12211
12212const (
12213	// ServiceUpdateStatusAvailable is a ServiceUpdateStatus enum value
12214	ServiceUpdateStatusAvailable = "available"
12215
12216	// ServiceUpdateStatusInProgress is a ServiceUpdateStatus enum value
12217	ServiceUpdateStatusInProgress = "in-progress"
12218
12219	// ServiceUpdateStatusComplete is a ServiceUpdateStatus enum value
12220	ServiceUpdateStatusComplete = "complete"
12221
12222	// ServiceUpdateStatusScheduled is a ServiceUpdateStatus enum value
12223	ServiceUpdateStatusScheduled = "scheduled"
12224)
12225
12226// ServiceUpdateStatus_Values returns all elements of the ServiceUpdateStatus enum
12227func ServiceUpdateStatus_Values() []string {
12228	return []string{
12229		ServiceUpdateStatusAvailable,
12230		ServiceUpdateStatusInProgress,
12231		ServiceUpdateStatusComplete,
12232		ServiceUpdateStatusScheduled,
12233	}
12234}
12235
12236const (
12237	// ServiceUpdateTypeSecurityUpdate is a ServiceUpdateType enum value
12238	ServiceUpdateTypeSecurityUpdate = "security-update"
12239)
12240
12241// ServiceUpdateType_Values returns all elements of the ServiceUpdateType enum
12242func ServiceUpdateType_Values() []string {
12243	return []string{
12244		ServiceUpdateTypeSecurityUpdate,
12245	}
12246}
12247
12248const (
12249	// SourceTypeNode is a SourceType enum value
12250	SourceTypeNode = "node"
12251
12252	// SourceTypeParameterGroup is a SourceType enum value
12253	SourceTypeParameterGroup = "parameter-group"
12254
12255	// SourceTypeSubnetGroup is a SourceType enum value
12256	SourceTypeSubnetGroup = "subnet-group"
12257
12258	// SourceTypeCluster is a SourceType enum value
12259	SourceTypeCluster = "cluster"
12260
12261	// SourceTypeUser is a SourceType enum value
12262	SourceTypeUser = "user"
12263
12264	// SourceTypeAcl is a SourceType enum value
12265	SourceTypeAcl = "acl"
12266)
12267
12268// SourceType_Values returns all elements of the SourceType enum
12269func SourceType_Values() []string {
12270	return []string{
12271		SourceTypeNode,
12272		SourceTypeParameterGroup,
12273		SourceTypeSubnetGroup,
12274		SourceTypeCluster,
12275		SourceTypeUser,
12276		SourceTypeAcl,
12277	}
12278}
12279