1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package docdb
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	"github.com/aws/aws-sdk-go/private/protocol/query"
14)
15
16const opAddSourceIdentifierToSubscription = "AddSourceIdentifierToSubscription"
17
18// AddSourceIdentifierToSubscriptionRequest generates a "aws/request.Request" representing the
19// client's request for the AddSourceIdentifierToSubscription operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AddSourceIdentifierToSubscription for more information on using the AddSourceIdentifierToSubscription
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AddSourceIdentifierToSubscriptionRequest method.
34//    req, resp := client.AddSourceIdentifierToSubscriptionRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddSourceIdentifierToSubscription
42func (c *DocDB) AddSourceIdentifierToSubscriptionRequest(input *AddSourceIdentifierToSubscriptionInput) (req *request.Request, output *AddSourceIdentifierToSubscriptionOutput) {
43	op := &request.Operation{
44		Name:       opAddSourceIdentifierToSubscription,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AddSourceIdentifierToSubscriptionInput{}
51	}
52
53	output = &AddSourceIdentifierToSubscriptionOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AddSourceIdentifierToSubscription API operation for Amazon DocumentDB with MongoDB compatibility.
59//
60// Adds a source identifier to an existing event notification subscription.
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 DocumentDB with MongoDB compatibility's
67// API operation AddSourceIdentifierToSubscription for usage and error information.
68//
69// Returned Error Codes:
70//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
71//   The subscription name does not exist.
72//
73//   * ErrCodeSourceNotFoundFault "SourceNotFound"
74//   The requested source could not be found.
75//
76// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddSourceIdentifierToSubscription
77func (c *DocDB) AddSourceIdentifierToSubscription(input *AddSourceIdentifierToSubscriptionInput) (*AddSourceIdentifierToSubscriptionOutput, error) {
78	req, out := c.AddSourceIdentifierToSubscriptionRequest(input)
79	return out, req.Send()
80}
81
82// AddSourceIdentifierToSubscriptionWithContext is the same as AddSourceIdentifierToSubscription with the addition of
83// the ability to pass a context and additional request options.
84//
85// See AddSourceIdentifierToSubscription for details on how to use this API operation.
86//
87// The context must be non-nil and will be used for request cancellation. If
88// the context is nil a panic will occur. In the future the SDK may create
89// sub-contexts for http.Requests. See https://golang.org/pkg/context/
90// for more information on using Contexts.
91func (c *DocDB) AddSourceIdentifierToSubscriptionWithContext(ctx aws.Context, input *AddSourceIdentifierToSubscriptionInput, opts ...request.Option) (*AddSourceIdentifierToSubscriptionOutput, error) {
92	req, out := c.AddSourceIdentifierToSubscriptionRequest(input)
93	req.SetContext(ctx)
94	req.ApplyOptions(opts...)
95	return out, req.Send()
96}
97
98const opAddTagsToResource = "AddTagsToResource"
99
100// AddTagsToResourceRequest generates a "aws/request.Request" representing the
101// client's request for the AddTagsToResource operation. The "output" return
102// value will be populated with the request's response once the request completes
103// successfully.
104//
105// Use "Send" method on the returned Request to send the API call to the service.
106// the "output" return value is not valid until after Send returns without error.
107//
108// See AddTagsToResource for more information on using the AddTagsToResource
109// API call, and error handling.
110//
111// This method is useful when you want to inject custom logic or configuration
112// into the SDK's request lifecycle. Such as custom headers, or retry logic.
113//
114//
115//    // Example sending a request using the AddTagsToResourceRequest method.
116//    req, resp := client.AddTagsToResourceRequest(params)
117//
118//    err := req.Send()
119//    if err == nil { // resp is now filled
120//        fmt.Println(resp)
121//    }
122//
123// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddTagsToResource
124func (c *DocDB) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) {
125	op := &request.Operation{
126		Name:       opAddTagsToResource,
127		HTTPMethod: "POST",
128		HTTPPath:   "/",
129	}
130
131	if input == nil {
132		input = &AddTagsToResourceInput{}
133	}
134
135	output = &AddTagsToResourceOutput{}
136	req = c.newRequest(op, input, output)
137	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
138	return
139}
140
141// AddTagsToResource API operation for Amazon DocumentDB with MongoDB compatibility.
142//
143// Adds metadata tags to an Amazon DocumentDB resource. You can use these tags
144// with cost allocation reporting to track costs that are associated with Amazon
145// DocumentDB resources or in a Condition statement in an Identity and Access
146// Management (IAM) policy for Amazon DocumentDB.
147//
148// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
149// with awserr.Error's Code and Message methods to get detailed information about
150// the error.
151//
152// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
153// API operation AddTagsToResource for usage and error information.
154//
155// Returned Error Codes:
156//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
157//   DBInstanceIdentifier doesn't refer to an existing instance.
158//
159//   * ErrCodeDBSnapshotNotFoundFault "DBSnapshotNotFound"
160//   DBSnapshotIdentifier doesn't refer to an existing snapshot.
161//
162//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
163//   DBClusterIdentifier doesn't refer to an existing cluster.
164//
165// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddTagsToResource
166func (c *DocDB) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) {
167	req, out := c.AddTagsToResourceRequest(input)
168	return out, req.Send()
169}
170
171// AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of
172// the ability to pass a context and additional request options.
173//
174// See AddTagsToResource for details on how to use this API operation.
175//
176// The context must be non-nil and will be used for request cancellation. If
177// the context is nil a panic will occur. In the future the SDK may create
178// sub-contexts for http.Requests. See https://golang.org/pkg/context/
179// for more information on using Contexts.
180func (c *DocDB) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) {
181	req, out := c.AddTagsToResourceRequest(input)
182	req.SetContext(ctx)
183	req.ApplyOptions(opts...)
184	return out, req.Send()
185}
186
187const opApplyPendingMaintenanceAction = "ApplyPendingMaintenanceAction"
188
189// ApplyPendingMaintenanceActionRequest generates a "aws/request.Request" representing the
190// client's request for the ApplyPendingMaintenanceAction operation. The "output" return
191// value will be populated with the request's response once the request completes
192// successfully.
193//
194// Use "Send" method on the returned Request to send the API call to the service.
195// the "output" return value is not valid until after Send returns without error.
196//
197// See ApplyPendingMaintenanceAction for more information on using the ApplyPendingMaintenanceAction
198// API call, and error handling.
199//
200// This method is useful when you want to inject custom logic or configuration
201// into the SDK's request lifecycle. Such as custom headers, or retry logic.
202//
203//
204//    // Example sending a request using the ApplyPendingMaintenanceActionRequest method.
205//    req, resp := client.ApplyPendingMaintenanceActionRequest(params)
206//
207//    err := req.Send()
208//    if err == nil { // resp is now filled
209//        fmt.Println(resp)
210//    }
211//
212// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ApplyPendingMaintenanceAction
213func (c *DocDB) ApplyPendingMaintenanceActionRequest(input *ApplyPendingMaintenanceActionInput) (req *request.Request, output *ApplyPendingMaintenanceActionOutput) {
214	op := &request.Operation{
215		Name:       opApplyPendingMaintenanceAction,
216		HTTPMethod: "POST",
217		HTTPPath:   "/",
218	}
219
220	if input == nil {
221		input = &ApplyPendingMaintenanceActionInput{}
222	}
223
224	output = &ApplyPendingMaintenanceActionOutput{}
225	req = c.newRequest(op, input, output)
226	return
227}
228
229// ApplyPendingMaintenanceAction API operation for Amazon DocumentDB with MongoDB compatibility.
230//
231// Applies a pending maintenance action to a resource (for example, to an Amazon
232// DocumentDB instance).
233//
234// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
235// with awserr.Error's Code and Message methods to get detailed information about
236// the error.
237//
238// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
239// API operation ApplyPendingMaintenanceAction for usage and error information.
240//
241// Returned Error Codes:
242//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
243//   The specified resource ID was not found.
244//
245//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
246//   The cluster isn't in a valid state.
247//
248//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
249//   The specified instance isn't in the available state.
250//
251// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ApplyPendingMaintenanceAction
252func (c *DocDB) ApplyPendingMaintenanceAction(input *ApplyPendingMaintenanceActionInput) (*ApplyPendingMaintenanceActionOutput, error) {
253	req, out := c.ApplyPendingMaintenanceActionRequest(input)
254	return out, req.Send()
255}
256
257// ApplyPendingMaintenanceActionWithContext is the same as ApplyPendingMaintenanceAction with the addition of
258// the ability to pass a context and additional request options.
259//
260// See ApplyPendingMaintenanceAction for details on how to use this API operation.
261//
262// The context must be non-nil and will be used for request cancellation. If
263// the context is nil a panic will occur. In the future the SDK may create
264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
265// for more information on using Contexts.
266func (c *DocDB) ApplyPendingMaintenanceActionWithContext(ctx aws.Context, input *ApplyPendingMaintenanceActionInput, opts ...request.Option) (*ApplyPendingMaintenanceActionOutput, error) {
267	req, out := c.ApplyPendingMaintenanceActionRequest(input)
268	req.SetContext(ctx)
269	req.ApplyOptions(opts...)
270	return out, req.Send()
271}
272
273const opCopyDBClusterParameterGroup = "CopyDBClusterParameterGroup"
274
275// CopyDBClusterParameterGroupRequest generates a "aws/request.Request" representing the
276// client's request for the CopyDBClusterParameterGroup operation. The "output" return
277// value will be populated with the request's response once the request completes
278// successfully.
279//
280// Use "Send" method on the returned Request to send the API call to the service.
281// the "output" return value is not valid until after Send returns without error.
282//
283// See CopyDBClusterParameterGroup for more information on using the CopyDBClusterParameterGroup
284// API call, and error handling.
285//
286// This method is useful when you want to inject custom logic or configuration
287// into the SDK's request lifecycle. Such as custom headers, or retry logic.
288//
289//
290//    // Example sending a request using the CopyDBClusterParameterGroupRequest method.
291//    req, resp := client.CopyDBClusterParameterGroupRequest(params)
292//
293//    err := req.Send()
294//    if err == nil { // resp is now filled
295//        fmt.Println(resp)
296//    }
297//
298// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterParameterGroup
299func (c *DocDB) CopyDBClusterParameterGroupRequest(input *CopyDBClusterParameterGroupInput) (req *request.Request, output *CopyDBClusterParameterGroupOutput) {
300	op := &request.Operation{
301		Name:       opCopyDBClusterParameterGroup,
302		HTTPMethod: "POST",
303		HTTPPath:   "/",
304	}
305
306	if input == nil {
307		input = &CopyDBClusterParameterGroupInput{}
308	}
309
310	output = &CopyDBClusterParameterGroupOutput{}
311	req = c.newRequest(op, input, output)
312	return
313}
314
315// CopyDBClusterParameterGroup API operation for Amazon DocumentDB with MongoDB compatibility.
316//
317// Copies the specified cluster parameter group.
318//
319// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
320// with awserr.Error's Code and Message methods to get detailed information about
321// the error.
322//
323// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
324// API operation CopyDBClusterParameterGroup for usage and error information.
325//
326// Returned Error Codes:
327//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
328//   DBParameterGroupName doesn't refer to an existing parameter group.
329//
330//   * ErrCodeDBParameterGroupQuotaExceededFault "DBParameterGroupQuotaExceeded"
331//   This request would cause you to exceed the allowed number of parameter groups.
332//
333//   * ErrCodeDBParameterGroupAlreadyExistsFault "DBParameterGroupAlreadyExists"
334//   A parameter group with the same name already exists.
335//
336// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterParameterGroup
337func (c *DocDB) CopyDBClusterParameterGroup(input *CopyDBClusterParameterGroupInput) (*CopyDBClusterParameterGroupOutput, error) {
338	req, out := c.CopyDBClusterParameterGroupRequest(input)
339	return out, req.Send()
340}
341
342// CopyDBClusterParameterGroupWithContext is the same as CopyDBClusterParameterGroup with the addition of
343// the ability to pass a context and additional request options.
344//
345// See CopyDBClusterParameterGroup for details on how to use this API operation.
346//
347// The context must be non-nil and will be used for request cancellation. If
348// the context is nil a panic will occur. In the future the SDK may create
349// sub-contexts for http.Requests. See https://golang.org/pkg/context/
350// for more information on using Contexts.
351func (c *DocDB) CopyDBClusterParameterGroupWithContext(ctx aws.Context, input *CopyDBClusterParameterGroupInput, opts ...request.Option) (*CopyDBClusterParameterGroupOutput, error) {
352	req, out := c.CopyDBClusterParameterGroupRequest(input)
353	req.SetContext(ctx)
354	req.ApplyOptions(opts...)
355	return out, req.Send()
356}
357
358const opCopyDBClusterSnapshot = "CopyDBClusterSnapshot"
359
360// CopyDBClusterSnapshotRequest generates a "aws/request.Request" representing the
361// client's request for the CopyDBClusterSnapshot operation. The "output" return
362// value will be populated with the request's response once the request completes
363// successfully.
364//
365// Use "Send" method on the returned Request to send the API call to the service.
366// the "output" return value is not valid until after Send returns without error.
367//
368// See CopyDBClusterSnapshot for more information on using the CopyDBClusterSnapshot
369// API call, and error handling.
370//
371// This method is useful when you want to inject custom logic or configuration
372// into the SDK's request lifecycle. Such as custom headers, or retry logic.
373//
374//
375//    // Example sending a request using the CopyDBClusterSnapshotRequest method.
376//    req, resp := client.CopyDBClusterSnapshotRequest(params)
377//
378//    err := req.Send()
379//    if err == nil { // resp is now filled
380//        fmt.Println(resp)
381//    }
382//
383// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterSnapshot
384func (c *DocDB) CopyDBClusterSnapshotRequest(input *CopyDBClusterSnapshotInput) (req *request.Request, output *CopyDBClusterSnapshotOutput) {
385	op := &request.Operation{
386		Name:       opCopyDBClusterSnapshot,
387		HTTPMethod: "POST",
388		HTTPPath:   "/",
389	}
390
391	if input == nil {
392		input = &CopyDBClusterSnapshotInput{}
393	}
394
395	output = &CopyDBClusterSnapshotOutput{}
396	req = c.newRequest(op, input, output)
397	return
398}
399
400// CopyDBClusterSnapshot API operation for Amazon DocumentDB with MongoDB compatibility.
401//
402// Copies a snapshot of a cluster.
403//
404// To copy a cluster snapshot from a shared manual cluster snapshot, SourceDBClusterSnapshotIdentifier
405// must be the Amazon Resource Name (ARN) of the shared cluster snapshot. You
406// can only copy a shared DB cluster snapshot, whether encrypted or not, in
407// the same Region.
408//
409// To cancel the copy operation after it is in progress, delete the target cluster
410// snapshot identified by TargetDBClusterSnapshotIdentifier while that cluster
411// snapshot is in the copying status.
412//
413// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
414// with awserr.Error's Code and Message methods to get detailed information about
415// the error.
416//
417// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
418// API operation CopyDBClusterSnapshot for usage and error information.
419//
420// Returned Error Codes:
421//   * ErrCodeDBClusterSnapshotAlreadyExistsFault "DBClusterSnapshotAlreadyExistsFault"
422//   You already have a cluster snapshot with the given identifier.
423//
424//   * ErrCodeDBClusterSnapshotNotFoundFault "DBClusterSnapshotNotFoundFault"
425//   DBClusterSnapshotIdentifier doesn't refer to an existing cluster snapshot.
426//
427//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
428//   The cluster isn't in a valid state.
429//
430//   * ErrCodeInvalidDBClusterSnapshotStateFault "InvalidDBClusterSnapshotStateFault"
431//   The provided value isn't a valid cluster snapshot state.
432//
433//   * ErrCodeSnapshotQuotaExceededFault "SnapshotQuotaExceeded"
434//   The request would cause you to exceed the allowed number of snapshots.
435//
436//   * ErrCodeKMSKeyNotAccessibleFault "KMSKeyNotAccessibleFault"
437//   An error occurred when accessing an KMS key.
438//
439// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterSnapshot
440func (c *DocDB) CopyDBClusterSnapshot(input *CopyDBClusterSnapshotInput) (*CopyDBClusterSnapshotOutput, error) {
441	req, out := c.CopyDBClusterSnapshotRequest(input)
442	return out, req.Send()
443}
444
445// CopyDBClusterSnapshotWithContext is the same as CopyDBClusterSnapshot with the addition of
446// the ability to pass a context and additional request options.
447//
448// See CopyDBClusterSnapshot for details on how to use this API operation.
449//
450// The context must be non-nil and will be used for request cancellation. If
451// the context is nil a panic will occur. In the future the SDK may create
452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
453// for more information on using Contexts.
454func (c *DocDB) CopyDBClusterSnapshotWithContext(ctx aws.Context, input *CopyDBClusterSnapshotInput, opts ...request.Option) (*CopyDBClusterSnapshotOutput, error) {
455	req, out := c.CopyDBClusterSnapshotRequest(input)
456	req.SetContext(ctx)
457	req.ApplyOptions(opts...)
458	return out, req.Send()
459}
460
461const opCreateDBCluster = "CreateDBCluster"
462
463// CreateDBClusterRequest generates a "aws/request.Request" representing the
464// client's request for the CreateDBCluster operation. The "output" return
465// value will be populated with the request's response once the request completes
466// successfully.
467//
468// Use "Send" method on the returned Request to send the API call to the service.
469// the "output" return value is not valid until after Send returns without error.
470//
471// See CreateDBCluster for more information on using the CreateDBCluster
472// API call, and error handling.
473//
474// This method is useful when you want to inject custom logic or configuration
475// into the SDK's request lifecycle. Such as custom headers, or retry logic.
476//
477//
478//    // Example sending a request using the CreateDBClusterRequest method.
479//    req, resp := client.CreateDBClusterRequest(params)
480//
481//    err := req.Send()
482//    if err == nil { // resp is now filled
483//        fmt.Println(resp)
484//    }
485//
486// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBCluster
487func (c *DocDB) CreateDBClusterRequest(input *CreateDBClusterInput) (req *request.Request, output *CreateDBClusterOutput) {
488	op := &request.Operation{
489		Name:       opCreateDBCluster,
490		HTTPMethod: "POST",
491		HTTPPath:   "/",
492	}
493
494	if input == nil {
495		input = &CreateDBClusterInput{}
496	}
497
498	output = &CreateDBClusterOutput{}
499	req = c.newRequest(op, input, output)
500	return
501}
502
503// CreateDBCluster API operation for Amazon DocumentDB with MongoDB compatibility.
504//
505// Creates a new Amazon DocumentDB cluster.
506//
507// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
508// with awserr.Error's Code and Message methods to get detailed information about
509// the error.
510//
511// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
512// API operation CreateDBCluster for usage and error information.
513//
514// Returned Error Codes:
515//   * ErrCodeDBClusterAlreadyExistsFault "DBClusterAlreadyExistsFault"
516//   You already have a cluster with the given identifier.
517//
518//   * ErrCodeInsufficientStorageClusterCapacityFault "InsufficientStorageClusterCapacity"
519//   There is not enough storage available for the current action. You might be
520//   able to resolve this error by updating your subnet group to use different
521//   Availability Zones that have more storage available.
522//
523//   * ErrCodeDBClusterQuotaExceededFault "DBClusterQuotaExceededFault"
524//   The cluster can't be created because you have reached the maximum allowed
525//   quota of clusters.
526//
527//   * ErrCodeStorageQuotaExceededFault "StorageQuotaExceeded"
528//   The request would cause you to exceed the allowed amount of storage available
529//   across all instances.
530//
531//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
532//   DBSubnetGroupName doesn't refer to an existing subnet group.
533//
534//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
535//   The subnet group doesn't cover all Availability Zones after it is created
536//   because of changes that were made.
537//
538//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
539//   The cluster isn't in a valid state.
540//
541//   * ErrCodeInvalidDBSubnetGroupStateFault "InvalidDBSubnetGroupStateFault"
542//   The subnet group can't be deleted because it's in use.
543//
544//   * ErrCodeInvalidSubnet "InvalidSubnet"
545//   The requested subnet is not valid, or multiple subnets were requested that
546//   are not all in a common virtual private cloud (VPC).
547//
548//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
549//   The specified instance isn't in the available state.
550//
551//   * ErrCodeDBClusterParameterGroupNotFoundFault "DBClusterParameterGroupNotFound"
552//   DBClusterParameterGroupName doesn't refer to an existing cluster parameter
553//   group.
554//
555//   * ErrCodeKMSKeyNotAccessibleFault "KMSKeyNotAccessibleFault"
556//   An error occurred when accessing an KMS key.
557//
558//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
559//   DBClusterIdentifier doesn't refer to an existing cluster.
560//
561//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
562//   DBInstanceIdentifier doesn't refer to an existing instance.
563//
564//   * ErrCodeDBSubnetGroupDoesNotCoverEnoughAZs "DBSubnetGroupDoesNotCoverEnoughAZs"
565//   Subnets in the subnet group should cover at least two Availability Zones
566//   unless there is only one Availability Zone.
567//
568//   * ErrCodeGlobalClusterNotFoundFault "GlobalClusterNotFoundFault"
569//   The GlobalClusterIdentifier doesn't refer to an existing global cluster.
570//
571//   * ErrCodeInvalidGlobalClusterStateFault "InvalidGlobalClusterStateFault"
572//   The requested operation can't be performed while the cluster is in this state.
573//
574// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBCluster
575func (c *DocDB) CreateDBCluster(input *CreateDBClusterInput) (*CreateDBClusterOutput, error) {
576	req, out := c.CreateDBClusterRequest(input)
577	return out, req.Send()
578}
579
580// CreateDBClusterWithContext is the same as CreateDBCluster with the addition of
581// the ability to pass a context and additional request options.
582//
583// See CreateDBCluster for details on how to use this API operation.
584//
585// The context must be non-nil and will be used for request cancellation. If
586// the context is nil a panic will occur. In the future the SDK may create
587// sub-contexts for http.Requests. See https://golang.org/pkg/context/
588// for more information on using Contexts.
589func (c *DocDB) CreateDBClusterWithContext(ctx aws.Context, input *CreateDBClusterInput, opts ...request.Option) (*CreateDBClusterOutput, error) {
590	req, out := c.CreateDBClusterRequest(input)
591	req.SetContext(ctx)
592	req.ApplyOptions(opts...)
593	return out, req.Send()
594}
595
596const opCreateDBClusterParameterGroup = "CreateDBClusterParameterGroup"
597
598// CreateDBClusterParameterGroupRequest generates a "aws/request.Request" representing the
599// client's request for the CreateDBClusterParameterGroup operation. The "output" return
600// value will be populated with the request's response once the request completes
601// successfully.
602//
603// Use "Send" method on the returned Request to send the API call to the service.
604// the "output" return value is not valid until after Send returns without error.
605//
606// See CreateDBClusterParameterGroup for more information on using the CreateDBClusterParameterGroup
607// API call, and error handling.
608//
609// This method is useful when you want to inject custom logic or configuration
610// into the SDK's request lifecycle. Such as custom headers, or retry logic.
611//
612//
613//    // Example sending a request using the CreateDBClusterParameterGroupRequest method.
614//    req, resp := client.CreateDBClusterParameterGroupRequest(params)
615//
616//    err := req.Send()
617//    if err == nil { // resp is now filled
618//        fmt.Println(resp)
619//    }
620//
621// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterParameterGroup
622func (c *DocDB) CreateDBClusterParameterGroupRequest(input *CreateDBClusterParameterGroupInput) (req *request.Request, output *CreateDBClusterParameterGroupOutput) {
623	op := &request.Operation{
624		Name:       opCreateDBClusterParameterGroup,
625		HTTPMethod: "POST",
626		HTTPPath:   "/",
627	}
628
629	if input == nil {
630		input = &CreateDBClusterParameterGroupInput{}
631	}
632
633	output = &CreateDBClusterParameterGroupOutput{}
634	req = c.newRequest(op, input, output)
635	return
636}
637
638// CreateDBClusterParameterGroup API operation for Amazon DocumentDB with MongoDB compatibility.
639//
640// Creates a new cluster parameter group.
641//
642// Parameters in a cluster parameter group apply to all of the instances in
643// a cluster.
644//
645// A cluster parameter group is initially created with the default parameters
646// for the database engine used by instances in the cluster. In Amazon DocumentDB,
647// you cannot make modifications directly to the default.docdb3.6 cluster parameter
648// group. If your Amazon DocumentDB cluster is using the default cluster parameter
649// group and you want to modify a value in it, you must first create a new parameter
650// group (https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-create.html)
651// or copy an existing parameter group (https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-copy.html),
652// modify it, and then apply the modified parameter group to your cluster. For
653// the new cluster parameter group and associated settings to take effect, you
654// must then reboot the instances in the cluster without failover. For more
655// information, see Modifying Amazon DocumentDB Cluster Parameter Groups (https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-modify.html).
656//
657// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
658// with awserr.Error's Code and Message methods to get detailed information about
659// the error.
660//
661// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
662// API operation CreateDBClusterParameterGroup for usage and error information.
663//
664// Returned Error Codes:
665//   * ErrCodeDBParameterGroupQuotaExceededFault "DBParameterGroupQuotaExceeded"
666//   This request would cause you to exceed the allowed number of parameter groups.
667//
668//   * ErrCodeDBParameterGroupAlreadyExistsFault "DBParameterGroupAlreadyExists"
669//   A parameter group with the same name already exists.
670//
671// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterParameterGroup
672func (c *DocDB) CreateDBClusterParameterGroup(input *CreateDBClusterParameterGroupInput) (*CreateDBClusterParameterGroupOutput, error) {
673	req, out := c.CreateDBClusterParameterGroupRequest(input)
674	return out, req.Send()
675}
676
677// CreateDBClusterParameterGroupWithContext is the same as CreateDBClusterParameterGroup with the addition of
678// the ability to pass a context and additional request options.
679//
680// See CreateDBClusterParameterGroup for details on how to use this API operation.
681//
682// The context must be non-nil and will be used for request cancellation. If
683// the context is nil a panic will occur. In the future the SDK may create
684// sub-contexts for http.Requests. See https://golang.org/pkg/context/
685// for more information on using Contexts.
686func (c *DocDB) CreateDBClusterParameterGroupWithContext(ctx aws.Context, input *CreateDBClusterParameterGroupInput, opts ...request.Option) (*CreateDBClusterParameterGroupOutput, error) {
687	req, out := c.CreateDBClusterParameterGroupRequest(input)
688	req.SetContext(ctx)
689	req.ApplyOptions(opts...)
690	return out, req.Send()
691}
692
693const opCreateDBClusterSnapshot = "CreateDBClusterSnapshot"
694
695// CreateDBClusterSnapshotRequest generates a "aws/request.Request" representing the
696// client's request for the CreateDBClusterSnapshot operation. The "output" return
697// value will be populated with the request's response once the request completes
698// successfully.
699//
700// Use "Send" method on the returned Request to send the API call to the service.
701// the "output" return value is not valid until after Send returns without error.
702//
703// See CreateDBClusterSnapshot for more information on using the CreateDBClusterSnapshot
704// API call, and error handling.
705//
706// This method is useful when you want to inject custom logic or configuration
707// into the SDK's request lifecycle. Such as custom headers, or retry logic.
708//
709//
710//    // Example sending a request using the CreateDBClusterSnapshotRequest method.
711//    req, resp := client.CreateDBClusterSnapshotRequest(params)
712//
713//    err := req.Send()
714//    if err == nil { // resp is now filled
715//        fmt.Println(resp)
716//    }
717//
718// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterSnapshot
719func (c *DocDB) CreateDBClusterSnapshotRequest(input *CreateDBClusterSnapshotInput) (req *request.Request, output *CreateDBClusterSnapshotOutput) {
720	op := &request.Operation{
721		Name:       opCreateDBClusterSnapshot,
722		HTTPMethod: "POST",
723		HTTPPath:   "/",
724	}
725
726	if input == nil {
727		input = &CreateDBClusterSnapshotInput{}
728	}
729
730	output = &CreateDBClusterSnapshotOutput{}
731	req = c.newRequest(op, input, output)
732	return
733}
734
735// CreateDBClusterSnapshot API operation for Amazon DocumentDB with MongoDB compatibility.
736//
737// Creates a snapshot of a cluster.
738//
739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
740// with awserr.Error's Code and Message methods to get detailed information about
741// the error.
742//
743// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
744// API operation CreateDBClusterSnapshot for usage and error information.
745//
746// Returned Error Codes:
747//   * ErrCodeDBClusterSnapshotAlreadyExistsFault "DBClusterSnapshotAlreadyExistsFault"
748//   You already have a cluster snapshot with the given identifier.
749//
750//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
751//   The cluster isn't in a valid state.
752//
753//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
754//   DBClusterIdentifier doesn't refer to an existing cluster.
755//
756//   * ErrCodeSnapshotQuotaExceededFault "SnapshotQuotaExceeded"
757//   The request would cause you to exceed the allowed number of snapshots.
758//
759//   * ErrCodeInvalidDBClusterSnapshotStateFault "InvalidDBClusterSnapshotStateFault"
760//   The provided value isn't a valid cluster snapshot state.
761//
762// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterSnapshot
763func (c *DocDB) CreateDBClusterSnapshot(input *CreateDBClusterSnapshotInput) (*CreateDBClusterSnapshotOutput, error) {
764	req, out := c.CreateDBClusterSnapshotRequest(input)
765	return out, req.Send()
766}
767
768// CreateDBClusterSnapshotWithContext is the same as CreateDBClusterSnapshot with the addition of
769// the ability to pass a context and additional request options.
770//
771// See CreateDBClusterSnapshot for details on how to use this API operation.
772//
773// The context must be non-nil and will be used for request cancellation. If
774// the context is nil a panic will occur. In the future the SDK may create
775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
776// for more information on using Contexts.
777func (c *DocDB) CreateDBClusterSnapshotWithContext(ctx aws.Context, input *CreateDBClusterSnapshotInput, opts ...request.Option) (*CreateDBClusterSnapshotOutput, error) {
778	req, out := c.CreateDBClusterSnapshotRequest(input)
779	req.SetContext(ctx)
780	req.ApplyOptions(opts...)
781	return out, req.Send()
782}
783
784const opCreateDBInstance = "CreateDBInstance"
785
786// CreateDBInstanceRequest generates a "aws/request.Request" representing the
787// client's request for the CreateDBInstance operation. The "output" return
788// value will be populated with the request's response once the request completes
789// successfully.
790//
791// Use "Send" method on the returned Request to send the API call to the service.
792// the "output" return value is not valid until after Send returns without error.
793//
794// See CreateDBInstance for more information on using the CreateDBInstance
795// API call, and error handling.
796//
797// This method is useful when you want to inject custom logic or configuration
798// into the SDK's request lifecycle. Such as custom headers, or retry logic.
799//
800//
801//    // Example sending a request using the CreateDBInstanceRequest method.
802//    req, resp := client.CreateDBInstanceRequest(params)
803//
804//    err := req.Send()
805//    if err == nil { // resp is now filled
806//        fmt.Println(resp)
807//    }
808//
809// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBInstance
810func (c *DocDB) CreateDBInstanceRequest(input *CreateDBInstanceInput) (req *request.Request, output *CreateDBInstanceOutput) {
811	op := &request.Operation{
812		Name:       opCreateDBInstance,
813		HTTPMethod: "POST",
814		HTTPPath:   "/",
815	}
816
817	if input == nil {
818		input = &CreateDBInstanceInput{}
819	}
820
821	output = &CreateDBInstanceOutput{}
822	req = c.newRequest(op, input, output)
823	return
824}
825
826// CreateDBInstance API operation for Amazon DocumentDB with MongoDB compatibility.
827//
828// Creates a new instance.
829//
830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
831// with awserr.Error's Code and Message methods to get detailed information about
832// the error.
833//
834// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
835// API operation CreateDBInstance for usage and error information.
836//
837// Returned Error Codes:
838//   * ErrCodeDBInstanceAlreadyExistsFault "DBInstanceAlreadyExists"
839//   You already have a instance with the given identifier.
840//
841//   * ErrCodeInsufficientDBInstanceCapacityFault "InsufficientDBInstanceCapacity"
842//   The specified instance class isn't available in the specified Availability
843//   Zone.
844//
845//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
846//   DBParameterGroupName doesn't refer to an existing parameter group.
847//
848//   * ErrCodeDBSecurityGroupNotFoundFault "DBSecurityGroupNotFound"
849//   DBSecurityGroupName doesn't refer to an existing security group.
850//
851//   * ErrCodeInstanceQuotaExceededFault "InstanceQuotaExceeded"
852//   The request would cause you to exceed the allowed number of instances.
853//
854//   * ErrCodeStorageQuotaExceededFault "StorageQuotaExceeded"
855//   The request would cause you to exceed the allowed amount of storage available
856//   across all instances.
857//
858//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
859//   DBSubnetGroupName doesn't refer to an existing subnet group.
860//
861//   * ErrCodeDBSubnetGroupDoesNotCoverEnoughAZs "DBSubnetGroupDoesNotCoverEnoughAZs"
862//   Subnets in the subnet group should cover at least two Availability Zones
863//   unless there is only one Availability Zone.
864//
865//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
866//   The cluster isn't in a valid state.
867//
868//   * ErrCodeInvalidSubnet "InvalidSubnet"
869//   The requested subnet is not valid, or multiple subnets were requested that
870//   are not all in a common virtual private cloud (VPC).
871//
872//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
873//   The subnet group doesn't cover all Availability Zones after it is created
874//   because of changes that were made.
875//
876//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
877//   DBClusterIdentifier doesn't refer to an existing cluster.
878//
879//   * ErrCodeStorageTypeNotSupportedFault "StorageTypeNotSupported"
880//   Storage of the specified StorageType can't be associated with the DB instance.
881//
882//   * ErrCodeAuthorizationNotFoundFault "AuthorizationNotFound"
883//   The specified CIDR IP or Amazon EC2 security group isn't authorized for the
884//   specified security group.
885//
886//   Amazon DocumentDB also might not be authorized to perform necessary actions
887//   on your behalf using IAM.
888//
889//   * ErrCodeKMSKeyNotAccessibleFault "KMSKeyNotAccessibleFault"
890//   An error occurred when accessing an KMS key.
891//
892// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBInstance
893func (c *DocDB) CreateDBInstance(input *CreateDBInstanceInput) (*CreateDBInstanceOutput, error) {
894	req, out := c.CreateDBInstanceRequest(input)
895	return out, req.Send()
896}
897
898// CreateDBInstanceWithContext is the same as CreateDBInstance with the addition of
899// the ability to pass a context and additional request options.
900//
901// See CreateDBInstance for details on how to use this API operation.
902//
903// The context must be non-nil and will be used for request cancellation. If
904// the context is nil a panic will occur. In the future the SDK may create
905// sub-contexts for http.Requests. See https://golang.org/pkg/context/
906// for more information on using Contexts.
907func (c *DocDB) CreateDBInstanceWithContext(ctx aws.Context, input *CreateDBInstanceInput, opts ...request.Option) (*CreateDBInstanceOutput, error) {
908	req, out := c.CreateDBInstanceRequest(input)
909	req.SetContext(ctx)
910	req.ApplyOptions(opts...)
911	return out, req.Send()
912}
913
914const opCreateDBSubnetGroup = "CreateDBSubnetGroup"
915
916// CreateDBSubnetGroupRequest generates a "aws/request.Request" representing the
917// client's request for the CreateDBSubnetGroup operation. The "output" return
918// value will be populated with the request's response once the request completes
919// successfully.
920//
921// Use "Send" method on the returned Request to send the API call to the service.
922// the "output" return value is not valid until after Send returns without error.
923//
924// See CreateDBSubnetGroup for more information on using the CreateDBSubnetGroup
925// API call, and error handling.
926//
927// This method is useful when you want to inject custom logic or configuration
928// into the SDK's request lifecycle. Such as custom headers, or retry logic.
929//
930//
931//    // Example sending a request using the CreateDBSubnetGroupRequest method.
932//    req, resp := client.CreateDBSubnetGroupRequest(params)
933//
934//    err := req.Send()
935//    if err == nil { // resp is now filled
936//        fmt.Println(resp)
937//    }
938//
939// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBSubnetGroup
940func (c *DocDB) CreateDBSubnetGroupRequest(input *CreateDBSubnetGroupInput) (req *request.Request, output *CreateDBSubnetGroupOutput) {
941	op := &request.Operation{
942		Name:       opCreateDBSubnetGroup,
943		HTTPMethod: "POST",
944		HTTPPath:   "/",
945	}
946
947	if input == nil {
948		input = &CreateDBSubnetGroupInput{}
949	}
950
951	output = &CreateDBSubnetGroupOutput{}
952	req = c.newRequest(op, input, output)
953	return
954}
955
956// CreateDBSubnetGroup API operation for Amazon DocumentDB with MongoDB compatibility.
957//
958// Creates a new subnet group. subnet groups must contain at least one subnet
959// in at least two Availability Zones in the Region.
960//
961// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
962// with awserr.Error's Code and Message methods to get detailed information about
963// the error.
964//
965// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
966// API operation CreateDBSubnetGroup for usage and error information.
967//
968// Returned Error Codes:
969//   * ErrCodeDBSubnetGroupAlreadyExistsFault "DBSubnetGroupAlreadyExists"
970//   DBSubnetGroupName is already being used by an existing subnet group.
971//
972//   * ErrCodeDBSubnetGroupQuotaExceededFault "DBSubnetGroupQuotaExceeded"
973//   The request would cause you to exceed the allowed number of subnet groups.
974//
975//   * ErrCodeDBSubnetQuotaExceededFault "DBSubnetQuotaExceededFault"
976//   The request would cause you to exceed the allowed number of subnets in a
977//   subnet group.
978//
979//   * ErrCodeDBSubnetGroupDoesNotCoverEnoughAZs "DBSubnetGroupDoesNotCoverEnoughAZs"
980//   Subnets in the subnet group should cover at least two Availability Zones
981//   unless there is only one Availability Zone.
982//
983//   * ErrCodeInvalidSubnet "InvalidSubnet"
984//   The requested subnet is not valid, or multiple subnets were requested that
985//   are not all in a common virtual private cloud (VPC).
986//
987// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBSubnetGroup
988func (c *DocDB) CreateDBSubnetGroup(input *CreateDBSubnetGroupInput) (*CreateDBSubnetGroupOutput, error) {
989	req, out := c.CreateDBSubnetGroupRequest(input)
990	return out, req.Send()
991}
992
993// CreateDBSubnetGroupWithContext is the same as CreateDBSubnetGroup with the addition of
994// the ability to pass a context and additional request options.
995//
996// See CreateDBSubnetGroup for details on how to use this API operation.
997//
998// The context must be non-nil and will be used for request cancellation. If
999// the context is nil a panic will occur. In the future the SDK may create
1000// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1001// for more information on using Contexts.
1002func (c *DocDB) CreateDBSubnetGroupWithContext(ctx aws.Context, input *CreateDBSubnetGroupInput, opts ...request.Option) (*CreateDBSubnetGroupOutput, error) {
1003	req, out := c.CreateDBSubnetGroupRequest(input)
1004	req.SetContext(ctx)
1005	req.ApplyOptions(opts...)
1006	return out, req.Send()
1007}
1008
1009const opCreateEventSubscription = "CreateEventSubscription"
1010
1011// CreateEventSubscriptionRequest generates a "aws/request.Request" representing the
1012// client's request for the CreateEventSubscription operation. The "output" return
1013// value will be populated with the request's response once the request completes
1014// successfully.
1015//
1016// Use "Send" method on the returned Request to send the API call to the service.
1017// the "output" return value is not valid until after Send returns without error.
1018//
1019// See CreateEventSubscription for more information on using the CreateEventSubscription
1020// API call, and error handling.
1021//
1022// This method is useful when you want to inject custom logic or configuration
1023// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1024//
1025//
1026//    // Example sending a request using the CreateEventSubscriptionRequest method.
1027//    req, resp := client.CreateEventSubscriptionRequest(params)
1028//
1029//    err := req.Send()
1030//    if err == nil { // resp is now filled
1031//        fmt.Println(resp)
1032//    }
1033//
1034// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateEventSubscription
1035func (c *DocDB) CreateEventSubscriptionRequest(input *CreateEventSubscriptionInput) (req *request.Request, output *CreateEventSubscriptionOutput) {
1036	op := &request.Operation{
1037		Name:       opCreateEventSubscription,
1038		HTTPMethod: "POST",
1039		HTTPPath:   "/",
1040	}
1041
1042	if input == nil {
1043		input = &CreateEventSubscriptionInput{}
1044	}
1045
1046	output = &CreateEventSubscriptionOutput{}
1047	req = c.newRequest(op, input, output)
1048	return
1049}
1050
1051// CreateEventSubscription API operation for Amazon DocumentDB with MongoDB compatibility.
1052//
1053// Creates an Amazon DocumentDB event notification subscription. This action
1054// requires a topic Amazon Resource Name (ARN) created by using the Amazon DocumentDB
1055// console, the Amazon SNS console, or the Amazon SNS API. To obtain an ARN
1056// with Amazon SNS, you must create a topic in Amazon SNS and subscribe to the
1057// topic. The ARN is displayed in the Amazon SNS console.
1058//
1059// You can specify the type of source (SourceType) that you want to be notified
1060// of. You can also provide a list of Amazon DocumentDB sources (SourceIds)
1061// that trigger the events, and you can provide a list of event categories (EventCategories)
1062// for events that you want to be notified of. For example, you can specify
1063// SourceType = db-instance, SourceIds = mydbinstance1, mydbinstance2 and EventCategories
1064// = Availability, Backup.
1065//
1066// If you specify both the SourceType and SourceIds (such as SourceType = db-instance
1067// and SourceIdentifier = myDBInstance1), you are notified of all the db-instance
1068// events for the specified source. If you specify a SourceType but do not specify
1069// a SourceIdentifier, you receive notice of the events for that source type
1070// for all your Amazon DocumentDB sources. If you do not specify either the
1071// SourceType or the SourceIdentifier, you are notified of events generated
1072// from all Amazon DocumentDB sources belonging to your customer account.
1073//
1074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1075// with awserr.Error's Code and Message methods to get detailed information about
1076// the error.
1077//
1078// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1079// API operation CreateEventSubscription for usage and error information.
1080//
1081// Returned Error Codes:
1082//   * ErrCodeEventSubscriptionQuotaExceededFault "EventSubscriptionQuotaExceeded"
1083//   You have reached the maximum number of event subscriptions.
1084//
1085//   * ErrCodeSubscriptionAlreadyExistFault "SubscriptionAlreadyExist"
1086//   The provided subscription name already exists.
1087//
1088//   * ErrCodeSNSInvalidTopicFault "SNSInvalidTopic"
1089//   Amazon SNS has responded that there is a problem with the specified topic.
1090//
1091//   * ErrCodeSNSNoAuthorizationFault "SNSNoAuthorization"
1092//   You do not have permission to publish to the SNS topic Amazon Resource Name
1093//   (ARN).
1094//
1095//   * ErrCodeSNSTopicArnNotFoundFault "SNSTopicArnNotFound"
1096//   The SNS topic Amazon Resource Name (ARN) does not exist.
1097//
1098//   * ErrCodeSubscriptionCategoryNotFoundFault "SubscriptionCategoryNotFound"
1099//   The provided category does not exist.
1100//
1101//   * ErrCodeSourceNotFoundFault "SourceNotFound"
1102//   The requested source could not be found.
1103//
1104// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateEventSubscription
1105func (c *DocDB) CreateEventSubscription(input *CreateEventSubscriptionInput) (*CreateEventSubscriptionOutput, error) {
1106	req, out := c.CreateEventSubscriptionRequest(input)
1107	return out, req.Send()
1108}
1109
1110// CreateEventSubscriptionWithContext is the same as CreateEventSubscription with the addition of
1111// the ability to pass a context and additional request options.
1112//
1113// See CreateEventSubscription for details on how to use this API operation.
1114//
1115// The context must be non-nil and will be used for request cancellation. If
1116// the context is nil a panic will occur. In the future the SDK may create
1117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1118// for more information on using Contexts.
1119func (c *DocDB) CreateEventSubscriptionWithContext(ctx aws.Context, input *CreateEventSubscriptionInput, opts ...request.Option) (*CreateEventSubscriptionOutput, error) {
1120	req, out := c.CreateEventSubscriptionRequest(input)
1121	req.SetContext(ctx)
1122	req.ApplyOptions(opts...)
1123	return out, req.Send()
1124}
1125
1126const opCreateGlobalCluster = "CreateGlobalCluster"
1127
1128// CreateGlobalClusterRequest generates a "aws/request.Request" representing the
1129// client's request for the CreateGlobalCluster operation. The "output" return
1130// value will be populated with the request's response once the request completes
1131// successfully.
1132//
1133// Use "Send" method on the returned Request to send the API call to the service.
1134// the "output" return value is not valid until after Send returns without error.
1135//
1136// See CreateGlobalCluster for more information on using the CreateGlobalCluster
1137// API call, and error handling.
1138//
1139// This method is useful when you want to inject custom logic or configuration
1140// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1141//
1142//
1143//    // Example sending a request using the CreateGlobalClusterRequest method.
1144//    req, resp := client.CreateGlobalClusterRequest(params)
1145//
1146//    err := req.Send()
1147//    if err == nil { // resp is now filled
1148//        fmt.Println(resp)
1149//    }
1150//
1151// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateGlobalCluster
1152func (c *DocDB) CreateGlobalClusterRequest(input *CreateGlobalClusterInput) (req *request.Request, output *CreateGlobalClusterOutput) {
1153	op := &request.Operation{
1154		Name:       opCreateGlobalCluster,
1155		HTTPMethod: "POST",
1156		HTTPPath:   "/",
1157	}
1158
1159	if input == nil {
1160		input = &CreateGlobalClusterInput{}
1161	}
1162
1163	output = &CreateGlobalClusterOutput{}
1164	req = c.newRequest(op, input, output)
1165	return
1166}
1167
1168// CreateGlobalCluster API operation for Amazon DocumentDB with MongoDB compatibility.
1169//
1170// Creates an Amazon DocumentDB global cluster that can span multiple multiple
1171// Regions. The global cluster contains one primary cluster with read-write
1172// capability, and up-to give read-only secondary clusters. Global clusters
1173// uses storage-based fast replication across regions with latencies less than
1174// one second, using dedicated infrastructure with no impact to your workload’s
1175// performance.
1176//
1177// You can create a global cluster that is initially empty, and then add a primary
1178// and a secondary to it. Or you can specify an existing cluster during the
1179// create operation, and this cluster becomes the primary of the global cluster.
1180//
1181// This action only applies to Amazon DocumentDB clusters.
1182//
1183// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1184// with awserr.Error's Code and Message methods to get detailed information about
1185// the error.
1186//
1187// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1188// API operation CreateGlobalCluster for usage and error information.
1189//
1190// Returned Error Codes:
1191//   * ErrCodeGlobalClusterAlreadyExistsFault "GlobalClusterAlreadyExistsFault"
1192//   The GlobalClusterIdentifier already exists. Choose a new global cluster identifier
1193//   (unique name) to create a new global cluster.
1194//
1195//   * ErrCodeGlobalClusterQuotaExceededFault "GlobalClusterQuotaExceededFault"
1196//   The number of global clusters for this account is already at the maximum
1197//   allowed.
1198//
1199//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
1200//   The cluster isn't in a valid state.
1201//
1202//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
1203//   DBClusterIdentifier doesn't refer to an existing cluster.
1204//
1205// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateGlobalCluster
1206func (c *DocDB) CreateGlobalCluster(input *CreateGlobalClusterInput) (*CreateGlobalClusterOutput, error) {
1207	req, out := c.CreateGlobalClusterRequest(input)
1208	return out, req.Send()
1209}
1210
1211// CreateGlobalClusterWithContext is the same as CreateGlobalCluster with the addition of
1212// the ability to pass a context and additional request options.
1213//
1214// See CreateGlobalCluster for details on how to use this API operation.
1215//
1216// The context must be non-nil and will be used for request cancellation. If
1217// the context is nil a panic will occur. In the future the SDK may create
1218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1219// for more information on using Contexts.
1220func (c *DocDB) CreateGlobalClusterWithContext(ctx aws.Context, input *CreateGlobalClusterInput, opts ...request.Option) (*CreateGlobalClusterOutput, error) {
1221	req, out := c.CreateGlobalClusterRequest(input)
1222	req.SetContext(ctx)
1223	req.ApplyOptions(opts...)
1224	return out, req.Send()
1225}
1226
1227const opDeleteDBCluster = "DeleteDBCluster"
1228
1229// DeleteDBClusterRequest generates a "aws/request.Request" representing the
1230// client's request for the DeleteDBCluster operation. The "output" return
1231// value will be populated with the request's response once the request completes
1232// successfully.
1233//
1234// Use "Send" method on the returned Request to send the API call to the service.
1235// the "output" return value is not valid until after Send returns without error.
1236//
1237// See DeleteDBCluster for more information on using the DeleteDBCluster
1238// API call, and error handling.
1239//
1240// This method is useful when you want to inject custom logic or configuration
1241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1242//
1243//
1244//    // Example sending a request using the DeleteDBClusterRequest method.
1245//    req, resp := client.DeleteDBClusterRequest(params)
1246//
1247//    err := req.Send()
1248//    if err == nil { // resp is now filled
1249//        fmt.Println(resp)
1250//    }
1251//
1252// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBCluster
1253func (c *DocDB) DeleteDBClusterRequest(input *DeleteDBClusterInput) (req *request.Request, output *DeleteDBClusterOutput) {
1254	op := &request.Operation{
1255		Name:       opDeleteDBCluster,
1256		HTTPMethod: "POST",
1257		HTTPPath:   "/",
1258	}
1259
1260	if input == nil {
1261		input = &DeleteDBClusterInput{}
1262	}
1263
1264	output = &DeleteDBClusterOutput{}
1265	req = c.newRequest(op, input, output)
1266	return
1267}
1268
1269// DeleteDBCluster API operation for Amazon DocumentDB with MongoDB compatibility.
1270//
1271// Deletes a previously provisioned cluster. When you delete a cluster, all
1272// automated backups for that cluster are deleted and can't be recovered. Manual
1273// DB cluster snapshots of the specified cluster are not deleted.
1274//
1275// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1276// with awserr.Error's Code and Message methods to get detailed information about
1277// the error.
1278//
1279// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1280// API operation DeleteDBCluster for usage and error information.
1281//
1282// Returned Error Codes:
1283//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
1284//   DBClusterIdentifier doesn't refer to an existing cluster.
1285//
1286//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
1287//   The cluster isn't in a valid state.
1288//
1289//   * ErrCodeDBClusterSnapshotAlreadyExistsFault "DBClusterSnapshotAlreadyExistsFault"
1290//   You already have a cluster snapshot with the given identifier.
1291//
1292//   * ErrCodeSnapshotQuotaExceededFault "SnapshotQuotaExceeded"
1293//   The request would cause you to exceed the allowed number of snapshots.
1294//
1295//   * ErrCodeInvalidDBClusterSnapshotStateFault "InvalidDBClusterSnapshotStateFault"
1296//   The provided value isn't a valid cluster snapshot state.
1297//
1298// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBCluster
1299func (c *DocDB) DeleteDBCluster(input *DeleteDBClusterInput) (*DeleteDBClusterOutput, error) {
1300	req, out := c.DeleteDBClusterRequest(input)
1301	return out, req.Send()
1302}
1303
1304// DeleteDBClusterWithContext is the same as DeleteDBCluster with the addition of
1305// the ability to pass a context and additional request options.
1306//
1307// See DeleteDBCluster for details on how to use this API operation.
1308//
1309// The context must be non-nil and will be used for request cancellation. If
1310// the context is nil a panic will occur. In the future the SDK may create
1311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1312// for more information on using Contexts.
1313func (c *DocDB) DeleteDBClusterWithContext(ctx aws.Context, input *DeleteDBClusterInput, opts ...request.Option) (*DeleteDBClusterOutput, error) {
1314	req, out := c.DeleteDBClusterRequest(input)
1315	req.SetContext(ctx)
1316	req.ApplyOptions(opts...)
1317	return out, req.Send()
1318}
1319
1320const opDeleteDBClusterParameterGroup = "DeleteDBClusterParameterGroup"
1321
1322// DeleteDBClusterParameterGroupRequest generates a "aws/request.Request" representing the
1323// client's request for the DeleteDBClusterParameterGroup operation. The "output" return
1324// value will be populated with the request's response once the request completes
1325// successfully.
1326//
1327// Use "Send" method on the returned Request to send the API call to the service.
1328// the "output" return value is not valid until after Send returns without error.
1329//
1330// See DeleteDBClusterParameterGroup for more information on using the DeleteDBClusterParameterGroup
1331// API call, and error handling.
1332//
1333// This method is useful when you want to inject custom logic or configuration
1334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1335//
1336//
1337//    // Example sending a request using the DeleteDBClusterParameterGroupRequest method.
1338//    req, resp := client.DeleteDBClusterParameterGroupRequest(params)
1339//
1340//    err := req.Send()
1341//    if err == nil { // resp is now filled
1342//        fmt.Println(resp)
1343//    }
1344//
1345// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterParameterGroup
1346func (c *DocDB) DeleteDBClusterParameterGroupRequest(input *DeleteDBClusterParameterGroupInput) (req *request.Request, output *DeleteDBClusterParameterGroupOutput) {
1347	op := &request.Operation{
1348		Name:       opDeleteDBClusterParameterGroup,
1349		HTTPMethod: "POST",
1350		HTTPPath:   "/",
1351	}
1352
1353	if input == nil {
1354		input = &DeleteDBClusterParameterGroupInput{}
1355	}
1356
1357	output = &DeleteDBClusterParameterGroupOutput{}
1358	req = c.newRequest(op, input, output)
1359	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1360	return
1361}
1362
1363// DeleteDBClusterParameterGroup API operation for Amazon DocumentDB with MongoDB compatibility.
1364//
1365// Deletes a specified cluster parameter group. The cluster parameter group
1366// to be deleted can't be associated with any clusters.
1367//
1368// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1369// with awserr.Error's Code and Message methods to get detailed information about
1370// the error.
1371//
1372// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1373// API operation DeleteDBClusterParameterGroup for usage and error information.
1374//
1375// Returned Error Codes:
1376//   * ErrCodeInvalidDBParameterGroupStateFault "InvalidDBParameterGroupState"
1377//   The parameter group is in use, or it is in a state that is not valid. If
1378//   you are trying to delete the parameter group, you can't delete it when the
1379//   parameter group is in this state.
1380//
1381//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
1382//   DBParameterGroupName doesn't refer to an existing parameter group.
1383//
1384// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterParameterGroup
1385func (c *DocDB) DeleteDBClusterParameterGroup(input *DeleteDBClusterParameterGroupInput) (*DeleteDBClusterParameterGroupOutput, error) {
1386	req, out := c.DeleteDBClusterParameterGroupRequest(input)
1387	return out, req.Send()
1388}
1389
1390// DeleteDBClusterParameterGroupWithContext is the same as DeleteDBClusterParameterGroup with the addition of
1391// the ability to pass a context and additional request options.
1392//
1393// See DeleteDBClusterParameterGroup for details on how to use this API operation.
1394//
1395// The context must be non-nil and will be used for request cancellation. If
1396// the context is nil a panic will occur. In the future the SDK may create
1397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1398// for more information on using Contexts.
1399func (c *DocDB) DeleteDBClusterParameterGroupWithContext(ctx aws.Context, input *DeleteDBClusterParameterGroupInput, opts ...request.Option) (*DeleteDBClusterParameterGroupOutput, error) {
1400	req, out := c.DeleteDBClusterParameterGroupRequest(input)
1401	req.SetContext(ctx)
1402	req.ApplyOptions(opts...)
1403	return out, req.Send()
1404}
1405
1406const opDeleteDBClusterSnapshot = "DeleteDBClusterSnapshot"
1407
1408// DeleteDBClusterSnapshotRequest generates a "aws/request.Request" representing the
1409// client's request for the DeleteDBClusterSnapshot operation. The "output" return
1410// value will be populated with the request's response once the request completes
1411// successfully.
1412//
1413// Use "Send" method on the returned Request to send the API call to the service.
1414// the "output" return value is not valid until after Send returns without error.
1415//
1416// See DeleteDBClusterSnapshot for more information on using the DeleteDBClusterSnapshot
1417// API call, and error handling.
1418//
1419// This method is useful when you want to inject custom logic or configuration
1420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1421//
1422//
1423//    // Example sending a request using the DeleteDBClusterSnapshotRequest method.
1424//    req, resp := client.DeleteDBClusterSnapshotRequest(params)
1425//
1426//    err := req.Send()
1427//    if err == nil { // resp is now filled
1428//        fmt.Println(resp)
1429//    }
1430//
1431// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterSnapshot
1432func (c *DocDB) DeleteDBClusterSnapshotRequest(input *DeleteDBClusterSnapshotInput) (req *request.Request, output *DeleteDBClusterSnapshotOutput) {
1433	op := &request.Operation{
1434		Name:       opDeleteDBClusterSnapshot,
1435		HTTPMethod: "POST",
1436		HTTPPath:   "/",
1437	}
1438
1439	if input == nil {
1440		input = &DeleteDBClusterSnapshotInput{}
1441	}
1442
1443	output = &DeleteDBClusterSnapshotOutput{}
1444	req = c.newRequest(op, input, output)
1445	return
1446}
1447
1448// DeleteDBClusterSnapshot API operation for Amazon DocumentDB with MongoDB compatibility.
1449//
1450// Deletes a cluster snapshot. If the snapshot is being copied, the copy operation
1451// is terminated.
1452//
1453// The cluster snapshot must be in the available state to be deleted.
1454//
1455// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1456// with awserr.Error's Code and Message methods to get detailed information about
1457// the error.
1458//
1459// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1460// API operation DeleteDBClusterSnapshot for usage and error information.
1461//
1462// Returned Error Codes:
1463//   * ErrCodeInvalidDBClusterSnapshotStateFault "InvalidDBClusterSnapshotStateFault"
1464//   The provided value isn't a valid cluster snapshot state.
1465//
1466//   * ErrCodeDBClusterSnapshotNotFoundFault "DBClusterSnapshotNotFoundFault"
1467//   DBClusterSnapshotIdentifier doesn't refer to an existing cluster snapshot.
1468//
1469// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterSnapshot
1470func (c *DocDB) DeleteDBClusterSnapshot(input *DeleteDBClusterSnapshotInput) (*DeleteDBClusterSnapshotOutput, error) {
1471	req, out := c.DeleteDBClusterSnapshotRequest(input)
1472	return out, req.Send()
1473}
1474
1475// DeleteDBClusterSnapshotWithContext is the same as DeleteDBClusterSnapshot with the addition of
1476// the ability to pass a context and additional request options.
1477//
1478// See DeleteDBClusterSnapshot for details on how to use this API operation.
1479//
1480// The context must be non-nil and will be used for request cancellation. If
1481// the context is nil a panic will occur. In the future the SDK may create
1482// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1483// for more information on using Contexts.
1484func (c *DocDB) DeleteDBClusterSnapshotWithContext(ctx aws.Context, input *DeleteDBClusterSnapshotInput, opts ...request.Option) (*DeleteDBClusterSnapshotOutput, error) {
1485	req, out := c.DeleteDBClusterSnapshotRequest(input)
1486	req.SetContext(ctx)
1487	req.ApplyOptions(opts...)
1488	return out, req.Send()
1489}
1490
1491const opDeleteDBInstance = "DeleteDBInstance"
1492
1493// DeleteDBInstanceRequest generates a "aws/request.Request" representing the
1494// client's request for the DeleteDBInstance operation. The "output" return
1495// value will be populated with the request's response once the request completes
1496// successfully.
1497//
1498// Use "Send" method on the returned Request to send the API call to the service.
1499// the "output" return value is not valid until after Send returns without error.
1500//
1501// See DeleteDBInstance for more information on using the DeleteDBInstance
1502// API call, and error handling.
1503//
1504// This method is useful when you want to inject custom logic or configuration
1505// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1506//
1507//
1508//    // Example sending a request using the DeleteDBInstanceRequest method.
1509//    req, resp := client.DeleteDBInstanceRequest(params)
1510//
1511//    err := req.Send()
1512//    if err == nil { // resp is now filled
1513//        fmt.Println(resp)
1514//    }
1515//
1516// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBInstance
1517func (c *DocDB) DeleteDBInstanceRequest(input *DeleteDBInstanceInput) (req *request.Request, output *DeleteDBInstanceOutput) {
1518	op := &request.Operation{
1519		Name:       opDeleteDBInstance,
1520		HTTPMethod: "POST",
1521		HTTPPath:   "/",
1522	}
1523
1524	if input == nil {
1525		input = &DeleteDBInstanceInput{}
1526	}
1527
1528	output = &DeleteDBInstanceOutput{}
1529	req = c.newRequest(op, input, output)
1530	return
1531}
1532
1533// DeleteDBInstance API operation for Amazon DocumentDB with MongoDB compatibility.
1534//
1535// Deletes a previously provisioned instance.
1536//
1537// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1538// with awserr.Error's Code and Message methods to get detailed information about
1539// the error.
1540//
1541// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1542// API operation DeleteDBInstance for usage and error information.
1543//
1544// Returned Error Codes:
1545//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
1546//   DBInstanceIdentifier doesn't refer to an existing instance.
1547//
1548//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
1549//   The specified instance isn't in the available state.
1550//
1551//   * ErrCodeDBSnapshotAlreadyExistsFault "DBSnapshotAlreadyExists"
1552//   DBSnapshotIdentifier is already being used by an existing snapshot.
1553//
1554//   * ErrCodeSnapshotQuotaExceededFault "SnapshotQuotaExceeded"
1555//   The request would cause you to exceed the allowed number of snapshots.
1556//
1557//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
1558//   The cluster isn't in a valid state.
1559//
1560// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBInstance
1561func (c *DocDB) DeleteDBInstance(input *DeleteDBInstanceInput) (*DeleteDBInstanceOutput, error) {
1562	req, out := c.DeleteDBInstanceRequest(input)
1563	return out, req.Send()
1564}
1565
1566// DeleteDBInstanceWithContext is the same as DeleteDBInstance with the addition of
1567// the ability to pass a context and additional request options.
1568//
1569// See DeleteDBInstance for details on how to use this API operation.
1570//
1571// The context must be non-nil and will be used for request cancellation. If
1572// the context is nil a panic will occur. In the future the SDK may create
1573// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1574// for more information on using Contexts.
1575func (c *DocDB) DeleteDBInstanceWithContext(ctx aws.Context, input *DeleteDBInstanceInput, opts ...request.Option) (*DeleteDBInstanceOutput, error) {
1576	req, out := c.DeleteDBInstanceRequest(input)
1577	req.SetContext(ctx)
1578	req.ApplyOptions(opts...)
1579	return out, req.Send()
1580}
1581
1582const opDeleteDBSubnetGroup = "DeleteDBSubnetGroup"
1583
1584// DeleteDBSubnetGroupRequest generates a "aws/request.Request" representing the
1585// client's request for the DeleteDBSubnetGroup operation. The "output" return
1586// value will be populated with the request's response once the request completes
1587// successfully.
1588//
1589// Use "Send" method on the returned Request to send the API call to the service.
1590// the "output" return value is not valid until after Send returns without error.
1591//
1592// See DeleteDBSubnetGroup for more information on using the DeleteDBSubnetGroup
1593// API call, and error handling.
1594//
1595// This method is useful when you want to inject custom logic or configuration
1596// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1597//
1598//
1599//    // Example sending a request using the DeleteDBSubnetGroupRequest method.
1600//    req, resp := client.DeleteDBSubnetGroupRequest(params)
1601//
1602//    err := req.Send()
1603//    if err == nil { // resp is now filled
1604//        fmt.Println(resp)
1605//    }
1606//
1607// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBSubnetGroup
1608func (c *DocDB) DeleteDBSubnetGroupRequest(input *DeleteDBSubnetGroupInput) (req *request.Request, output *DeleteDBSubnetGroupOutput) {
1609	op := &request.Operation{
1610		Name:       opDeleteDBSubnetGroup,
1611		HTTPMethod: "POST",
1612		HTTPPath:   "/",
1613	}
1614
1615	if input == nil {
1616		input = &DeleteDBSubnetGroupInput{}
1617	}
1618
1619	output = &DeleteDBSubnetGroupOutput{}
1620	req = c.newRequest(op, input, output)
1621	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1622	return
1623}
1624
1625// DeleteDBSubnetGroup API operation for Amazon DocumentDB with MongoDB compatibility.
1626//
1627// Deletes a subnet group.
1628//
1629// The specified database subnet group must not be associated with any DB instances.
1630//
1631// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1632// with awserr.Error's Code and Message methods to get detailed information about
1633// the error.
1634//
1635// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1636// API operation DeleteDBSubnetGroup for usage and error information.
1637//
1638// Returned Error Codes:
1639//   * ErrCodeInvalidDBSubnetGroupStateFault "InvalidDBSubnetGroupStateFault"
1640//   The subnet group can't be deleted because it's in use.
1641//
1642//   * ErrCodeInvalidDBSubnetStateFault "InvalidDBSubnetStateFault"
1643//   The subnet isn't in the available state.
1644//
1645//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
1646//   DBSubnetGroupName doesn't refer to an existing subnet group.
1647//
1648// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBSubnetGroup
1649func (c *DocDB) DeleteDBSubnetGroup(input *DeleteDBSubnetGroupInput) (*DeleteDBSubnetGroupOutput, error) {
1650	req, out := c.DeleteDBSubnetGroupRequest(input)
1651	return out, req.Send()
1652}
1653
1654// DeleteDBSubnetGroupWithContext is the same as DeleteDBSubnetGroup with the addition of
1655// the ability to pass a context and additional request options.
1656//
1657// See DeleteDBSubnetGroup for details on how to use this API operation.
1658//
1659// The context must be non-nil and will be used for request cancellation. If
1660// the context is nil a panic will occur. In the future the SDK may create
1661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1662// for more information on using Contexts.
1663func (c *DocDB) DeleteDBSubnetGroupWithContext(ctx aws.Context, input *DeleteDBSubnetGroupInput, opts ...request.Option) (*DeleteDBSubnetGroupOutput, error) {
1664	req, out := c.DeleteDBSubnetGroupRequest(input)
1665	req.SetContext(ctx)
1666	req.ApplyOptions(opts...)
1667	return out, req.Send()
1668}
1669
1670const opDeleteEventSubscription = "DeleteEventSubscription"
1671
1672// DeleteEventSubscriptionRequest generates a "aws/request.Request" representing the
1673// client's request for the DeleteEventSubscription operation. The "output" return
1674// value will be populated with the request's response once the request completes
1675// successfully.
1676//
1677// Use "Send" method on the returned Request to send the API call to the service.
1678// the "output" return value is not valid until after Send returns without error.
1679//
1680// See DeleteEventSubscription for more information on using the DeleteEventSubscription
1681// API call, and error handling.
1682//
1683// This method is useful when you want to inject custom logic or configuration
1684// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1685//
1686//
1687//    // Example sending a request using the DeleteEventSubscriptionRequest method.
1688//    req, resp := client.DeleteEventSubscriptionRequest(params)
1689//
1690//    err := req.Send()
1691//    if err == nil { // resp is now filled
1692//        fmt.Println(resp)
1693//    }
1694//
1695// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteEventSubscription
1696func (c *DocDB) DeleteEventSubscriptionRequest(input *DeleteEventSubscriptionInput) (req *request.Request, output *DeleteEventSubscriptionOutput) {
1697	op := &request.Operation{
1698		Name:       opDeleteEventSubscription,
1699		HTTPMethod: "POST",
1700		HTTPPath:   "/",
1701	}
1702
1703	if input == nil {
1704		input = &DeleteEventSubscriptionInput{}
1705	}
1706
1707	output = &DeleteEventSubscriptionOutput{}
1708	req = c.newRequest(op, input, output)
1709	return
1710}
1711
1712// DeleteEventSubscription API operation for Amazon DocumentDB with MongoDB compatibility.
1713//
1714// Deletes an Amazon DocumentDB event notification subscription.
1715//
1716// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1717// with awserr.Error's Code and Message methods to get detailed information about
1718// the error.
1719//
1720// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1721// API operation DeleteEventSubscription for usage and error information.
1722//
1723// Returned Error Codes:
1724//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
1725//   The subscription name does not exist.
1726//
1727//   * ErrCodeInvalidEventSubscriptionStateFault "InvalidEventSubscriptionState"
1728//   Someone else might be modifying a subscription. Wait a few seconds, and try
1729//   again.
1730//
1731// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteEventSubscription
1732func (c *DocDB) DeleteEventSubscription(input *DeleteEventSubscriptionInput) (*DeleteEventSubscriptionOutput, error) {
1733	req, out := c.DeleteEventSubscriptionRequest(input)
1734	return out, req.Send()
1735}
1736
1737// DeleteEventSubscriptionWithContext is the same as DeleteEventSubscription with the addition of
1738// the ability to pass a context and additional request options.
1739//
1740// See DeleteEventSubscription for details on how to use this API operation.
1741//
1742// The context must be non-nil and will be used for request cancellation. If
1743// the context is nil a panic will occur. In the future the SDK may create
1744// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1745// for more information on using Contexts.
1746func (c *DocDB) DeleteEventSubscriptionWithContext(ctx aws.Context, input *DeleteEventSubscriptionInput, opts ...request.Option) (*DeleteEventSubscriptionOutput, error) {
1747	req, out := c.DeleteEventSubscriptionRequest(input)
1748	req.SetContext(ctx)
1749	req.ApplyOptions(opts...)
1750	return out, req.Send()
1751}
1752
1753const opDeleteGlobalCluster = "DeleteGlobalCluster"
1754
1755// DeleteGlobalClusterRequest generates a "aws/request.Request" representing the
1756// client's request for the DeleteGlobalCluster operation. The "output" return
1757// value will be populated with the request's response once the request completes
1758// successfully.
1759//
1760// Use "Send" method on the returned Request to send the API call to the service.
1761// the "output" return value is not valid until after Send returns without error.
1762//
1763// See DeleteGlobalCluster for more information on using the DeleteGlobalCluster
1764// API call, and error handling.
1765//
1766// This method is useful when you want to inject custom logic or configuration
1767// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1768//
1769//
1770//    // Example sending a request using the DeleteGlobalClusterRequest method.
1771//    req, resp := client.DeleteGlobalClusterRequest(params)
1772//
1773//    err := req.Send()
1774//    if err == nil { // resp is now filled
1775//        fmt.Println(resp)
1776//    }
1777//
1778// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteGlobalCluster
1779func (c *DocDB) DeleteGlobalClusterRequest(input *DeleteGlobalClusterInput) (req *request.Request, output *DeleteGlobalClusterOutput) {
1780	op := &request.Operation{
1781		Name:       opDeleteGlobalCluster,
1782		HTTPMethod: "POST",
1783		HTTPPath:   "/",
1784	}
1785
1786	if input == nil {
1787		input = &DeleteGlobalClusterInput{}
1788	}
1789
1790	output = &DeleteGlobalClusterOutput{}
1791	req = c.newRequest(op, input, output)
1792	return
1793}
1794
1795// DeleteGlobalCluster API operation for Amazon DocumentDB with MongoDB compatibility.
1796//
1797// Deletes a global cluster. The primary and secondary clusters must already
1798// be detached or deleted before attempting to delete a global cluster.
1799//
1800// This action only applies to Amazon DocumentDB clusters.
1801//
1802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1803// with awserr.Error's Code and Message methods to get detailed information about
1804// the error.
1805//
1806// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1807// API operation DeleteGlobalCluster for usage and error information.
1808//
1809// Returned Error Codes:
1810//   * ErrCodeGlobalClusterNotFoundFault "GlobalClusterNotFoundFault"
1811//   The GlobalClusterIdentifier doesn't refer to an existing global cluster.
1812//
1813//   * ErrCodeInvalidGlobalClusterStateFault "InvalidGlobalClusterStateFault"
1814//   The requested operation can't be performed while the cluster is in this state.
1815//
1816// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteGlobalCluster
1817func (c *DocDB) DeleteGlobalCluster(input *DeleteGlobalClusterInput) (*DeleteGlobalClusterOutput, error) {
1818	req, out := c.DeleteGlobalClusterRequest(input)
1819	return out, req.Send()
1820}
1821
1822// DeleteGlobalClusterWithContext is the same as DeleteGlobalCluster with the addition of
1823// the ability to pass a context and additional request options.
1824//
1825// See DeleteGlobalCluster for details on how to use this API operation.
1826//
1827// The context must be non-nil and will be used for request cancellation. If
1828// the context is nil a panic will occur. In the future the SDK may create
1829// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1830// for more information on using Contexts.
1831func (c *DocDB) DeleteGlobalClusterWithContext(ctx aws.Context, input *DeleteGlobalClusterInput, opts ...request.Option) (*DeleteGlobalClusterOutput, error) {
1832	req, out := c.DeleteGlobalClusterRequest(input)
1833	req.SetContext(ctx)
1834	req.ApplyOptions(opts...)
1835	return out, req.Send()
1836}
1837
1838const opDescribeCertificates = "DescribeCertificates"
1839
1840// DescribeCertificatesRequest generates a "aws/request.Request" representing the
1841// client's request for the DescribeCertificates operation. The "output" return
1842// value will be populated with the request's response once the request completes
1843// successfully.
1844//
1845// Use "Send" method on the returned Request to send the API call to the service.
1846// the "output" return value is not valid until after Send returns without error.
1847//
1848// See DescribeCertificates for more information on using the DescribeCertificates
1849// API call, and error handling.
1850//
1851// This method is useful when you want to inject custom logic or configuration
1852// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1853//
1854//
1855//    // Example sending a request using the DescribeCertificatesRequest method.
1856//    req, resp := client.DescribeCertificatesRequest(params)
1857//
1858//    err := req.Send()
1859//    if err == nil { // resp is now filled
1860//        fmt.Println(resp)
1861//    }
1862//
1863// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeCertificates
1864func (c *DocDB) DescribeCertificatesRequest(input *DescribeCertificatesInput) (req *request.Request, output *DescribeCertificatesOutput) {
1865	op := &request.Operation{
1866		Name:       opDescribeCertificates,
1867		HTTPMethod: "POST",
1868		HTTPPath:   "/",
1869		Paginator: &request.Paginator{
1870			InputTokens:     []string{"Marker"},
1871			OutputTokens:    []string{"Marker"},
1872			LimitToken:      "MaxRecords",
1873			TruncationToken: "",
1874		},
1875	}
1876
1877	if input == nil {
1878		input = &DescribeCertificatesInput{}
1879	}
1880
1881	output = &DescribeCertificatesOutput{}
1882	req = c.newRequest(op, input, output)
1883	return
1884}
1885
1886// DescribeCertificates API operation for Amazon DocumentDB with MongoDB compatibility.
1887//
1888// Returns a list of certificate authority (CA) certificates provided by Amazon
1889// DocumentDB for this account.
1890//
1891// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1892// with awserr.Error's Code and Message methods to get detailed information about
1893// the error.
1894//
1895// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
1896// API operation DescribeCertificates for usage and error information.
1897//
1898// Returned Error Codes:
1899//   * ErrCodeCertificateNotFoundFault "CertificateNotFound"
1900//   CertificateIdentifier doesn't refer to an existing certificate.
1901//
1902// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeCertificates
1903func (c *DocDB) DescribeCertificates(input *DescribeCertificatesInput) (*DescribeCertificatesOutput, error) {
1904	req, out := c.DescribeCertificatesRequest(input)
1905	return out, req.Send()
1906}
1907
1908// DescribeCertificatesWithContext is the same as DescribeCertificates with the addition of
1909// the ability to pass a context and additional request options.
1910//
1911// See DescribeCertificates for details on how to use this API operation.
1912//
1913// The context must be non-nil and will be used for request cancellation. If
1914// the context is nil a panic will occur. In the future the SDK may create
1915// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1916// for more information on using Contexts.
1917func (c *DocDB) DescribeCertificatesWithContext(ctx aws.Context, input *DescribeCertificatesInput, opts ...request.Option) (*DescribeCertificatesOutput, error) {
1918	req, out := c.DescribeCertificatesRequest(input)
1919	req.SetContext(ctx)
1920	req.ApplyOptions(opts...)
1921	return out, req.Send()
1922}
1923
1924// DescribeCertificatesPages iterates over the pages of a DescribeCertificates operation,
1925// calling the "fn" function with the response data for each page. To stop
1926// iterating, return false from the fn function.
1927//
1928// See DescribeCertificates method for more information on how to use this operation.
1929//
1930// Note: This operation can generate multiple requests to a service.
1931//
1932//    // Example iterating over at most 3 pages of a DescribeCertificates operation.
1933//    pageNum := 0
1934//    err := client.DescribeCertificatesPages(params,
1935//        func(page *docdb.DescribeCertificatesOutput, lastPage bool) bool {
1936//            pageNum++
1937//            fmt.Println(page)
1938//            return pageNum <= 3
1939//        })
1940//
1941func (c *DocDB) DescribeCertificatesPages(input *DescribeCertificatesInput, fn func(*DescribeCertificatesOutput, bool) bool) error {
1942	return c.DescribeCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
1943}
1944
1945// DescribeCertificatesPagesWithContext same as DescribeCertificatesPages except
1946// it takes a Context and allows setting request options on the pages.
1947//
1948// The context must be non-nil and will be used for request cancellation. If
1949// the context is nil a panic will occur. In the future the SDK may create
1950// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1951// for more information on using Contexts.
1952func (c *DocDB) DescribeCertificatesPagesWithContext(ctx aws.Context, input *DescribeCertificatesInput, fn func(*DescribeCertificatesOutput, bool) bool, opts ...request.Option) error {
1953	p := request.Pagination{
1954		NewRequest: func() (*request.Request, error) {
1955			var inCpy *DescribeCertificatesInput
1956			if input != nil {
1957				tmp := *input
1958				inCpy = &tmp
1959			}
1960			req, _ := c.DescribeCertificatesRequest(inCpy)
1961			req.SetContext(ctx)
1962			req.ApplyOptions(opts...)
1963			return req, nil
1964		},
1965	}
1966
1967	for p.Next() {
1968		if !fn(p.Page().(*DescribeCertificatesOutput), !p.HasNextPage()) {
1969			break
1970		}
1971	}
1972
1973	return p.Err()
1974}
1975
1976const opDescribeDBClusterParameterGroups = "DescribeDBClusterParameterGroups"
1977
1978// DescribeDBClusterParameterGroupsRequest generates a "aws/request.Request" representing the
1979// client's request for the DescribeDBClusterParameterGroups operation. The "output" return
1980// value will be populated with the request's response once the request completes
1981// successfully.
1982//
1983// Use "Send" method on the returned Request to send the API call to the service.
1984// the "output" return value is not valid until after Send returns without error.
1985//
1986// See DescribeDBClusterParameterGroups for more information on using the DescribeDBClusterParameterGroups
1987// API call, and error handling.
1988//
1989// This method is useful when you want to inject custom logic or configuration
1990// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1991//
1992//
1993//    // Example sending a request using the DescribeDBClusterParameterGroupsRequest method.
1994//    req, resp := client.DescribeDBClusterParameterGroupsRequest(params)
1995//
1996//    err := req.Send()
1997//    if err == nil { // resp is now filled
1998//        fmt.Println(resp)
1999//    }
2000//
2001// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameterGroups
2002func (c *DocDB) DescribeDBClusterParameterGroupsRequest(input *DescribeDBClusterParameterGroupsInput) (req *request.Request, output *DescribeDBClusterParameterGroupsOutput) {
2003	op := &request.Operation{
2004		Name:       opDescribeDBClusterParameterGroups,
2005		HTTPMethod: "POST",
2006		HTTPPath:   "/",
2007		Paginator: &request.Paginator{
2008			InputTokens:     []string{"Marker"},
2009			OutputTokens:    []string{"Marker"},
2010			LimitToken:      "MaxRecords",
2011			TruncationToken: "",
2012		},
2013	}
2014
2015	if input == nil {
2016		input = &DescribeDBClusterParameterGroupsInput{}
2017	}
2018
2019	output = &DescribeDBClusterParameterGroupsOutput{}
2020	req = c.newRequest(op, input, output)
2021	return
2022}
2023
2024// DescribeDBClusterParameterGroups API operation for Amazon DocumentDB with MongoDB compatibility.
2025//
2026// Returns a list of DBClusterParameterGroup descriptions. If a DBClusterParameterGroupName
2027// parameter is specified, the list contains only the description of the specified
2028// cluster parameter group.
2029//
2030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2031// with awserr.Error's Code and Message methods to get detailed information about
2032// the error.
2033//
2034// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2035// API operation DescribeDBClusterParameterGroups for usage and error information.
2036//
2037// Returned Error Codes:
2038//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
2039//   DBParameterGroupName doesn't refer to an existing parameter group.
2040//
2041// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameterGroups
2042func (c *DocDB) DescribeDBClusterParameterGroups(input *DescribeDBClusterParameterGroupsInput) (*DescribeDBClusterParameterGroupsOutput, error) {
2043	req, out := c.DescribeDBClusterParameterGroupsRequest(input)
2044	return out, req.Send()
2045}
2046
2047// DescribeDBClusterParameterGroupsWithContext is the same as DescribeDBClusterParameterGroups with the addition of
2048// the ability to pass a context and additional request options.
2049//
2050// See DescribeDBClusterParameterGroups for details on how to use this API operation.
2051//
2052// The context must be non-nil and will be used for request cancellation. If
2053// the context is nil a panic will occur. In the future the SDK may create
2054// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2055// for more information on using Contexts.
2056func (c *DocDB) DescribeDBClusterParameterGroupsWithContext(ctx aws.Context, input *DescribeDBClusterParameterGroupsInput, opts ...request.Option) (*DescribeDBClusterParameterGroupsOutput, error) {
2057	req, out := c.DescribeDBClusterParameterGroupsRequest(input)
2058	req.SetContext(ctx)
2059	req.ApplyOptions(opts...)
2060	return out, req.Send()
2061}
2062
2063// DescribeDBClusterParameterGroupsPages iterates over the pages of a DescribeDBClusterParameterGroups operation,
2064// calling the "fn" function with the response data for each page. To stop
2065// iterating, return false from the fn function.
2066//
2067// See DescribeDBClusterParameterGroups method for more information on how to use this operation.
2068//
2069// Note: This operation can generate multiple requests to a service.
2070//
2071//    // Example iterating over at most 3 pages of a DescribeDBClusterParameterGroups operation.
2072//    pageNum := 0
2073//    err := client.DescribeDBClusterParameterGroupsPages(params,
2074//        func(page *docdb.DescribeDBClusterParameterGroupsOutput, lastPage bool) bool {
2075//            pageNum++
2076//            fmt.Println(page)
2077//            return pageNum <= 3
2078//        })
2079//
2080func (c *DocDB) DescribeDBClusterParameterGroupsPages(input *DescribeDBClusterParameterGroupsInput, fn func(*DescribeDBClusterParameterGroupsOutput, bool) bool) error {
2081	return c.DescribeDBClusterParameterGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2082}
2083
2084// DescribeDBClusterParameterGroupsPagesWithContext same as DescribeDBClusterParameterGroupsPages except
2085// it takes a Context and allows setting request options on the pages.
2086//
2087// The context must be non-nil and will be used for request cancellation. If
2088// the context is nil a panic will occur. In the future the SDK may create
2089// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2090// for more information on using Contexts.
2091func (c *DocDB) DescribeDBClusterParameterGroupsPagesWithContext(ctx aws.Context, input *DescribeDBClusterParameterGroupsInput, fn func(*DescribeDBClusterParameterGroupsOutput, bool) bool, opts ...request.Option) error {
2092	p := request.Pagination{
2093		NewRequest: func() (*request.Request, error) {
2094			var inCpy *DescribeDBClusterParameterGroupsInput
2095			if input != nil {
2096				tmp := *input
2097				inCpy = &tmp
2098			}
2099			req, _ := c.DescribeDBClusterParameterGroupsRequest(inCpy)
2100			req.SetContext(ctx)
2101			req.ApplyOptions(opts...)
2102			return req, nil
2103		},
2104	}
2105
2106	for p.Next() {
2107		if !fn(p.Page().(*DescribeDBClusterParameterGroupsOutput), !p.HasNextPage()) {
2108			break
2109		}
2110	}
2111
2112	return p.Err()
2113}
2114
2115const opDescribeDBClusterParameters = "DescribeDBClusterParameters"
2116
2117// DescribeDBClusterParametersRequest generates a "aws/request.Request" representing the
2118// client's request for the DescribeDBClusterParameters operation. The "output" return
2119// value will be populated with the request's response once the request completes
2120// successfully.
2121//
2122// Use "Send" method on the returned Request to send the API call to the service.
2123// the "output" return value is not valid until after Send returns without error.
2124//
2125// See DescribeDBClusterParameters for more information on using the DescribeDBClusterParameters
2126// API call, and error handling.
2127//
2128// This method is useful when you want to inject custom logic or configuration
2129// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2130//
2131//
2132//    // Example sending a request using the DescribeDBClusterParametersRequest method.
2133//    req, resp := client.DescribeDBClusterParametersRequest(params)
2134//
2135//    err := req.Send()
2136//    if err == nil { // resp is now filled
2137//        fmt.Println(resp)
2138//    }
2139//
2140// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameters
2141func (c *DocDB) DescribeDBClusterParametersRequest(input *DescribeDBClusterParametersInput) (req *request.Request, output *DescribeDBClusterParametersOutput) {
2142	op := &request.Operation{
2143		Name:       opDescribeDBClusterParameters,
2144		HTTPMethod: "POST",
2145		HTTPPath:   "/",
2146		Paginator: &request.Paginator{
2147			InputTokens:     []string{"Marker"},
2148			OutputTokens:    []string{"Marker"},
2149			LimitToken:      "MaxRecords",
2150			TruncationToken: "",
2151		},
2152	}
2153
2154	if input == nil {
2155		input = &DescribeDBClusterParametersInput{}
2156	}
2157
2158	output = &DescribeDBClusterParametersOutput{}
2159	req = c.newRequest(op, input, output)
2160	return
2161}
2162
2163// DescribeDBClusterParameters API operation for Amazon DocumentDB with MongoDB compatibility.
2164//
2165// Returns the detailed parameter list for a particular cluster parameter group.
2166//
2167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2168// with awserr.Error's Code and Message methods to get detailed information about
2169// the error.
2170//
2171// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2172// API operation DescribeDBClusterParameters for usage and error information.
2173//
2174// Returned Error Codes:
2175//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
2176//   DBParameterGroupName doesn't refer to an existing parameter group.
2177//
2178// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameters
2179func (c *DocDB) DescribeDBClusterParameters(input *DescribeDBClusterParametersInput) (*DescribeDBClusterParametersOutput, error) {
2180	req, out := c.DescribeDBClusterParametersRequest(input)
2181	return out, req.Send()
2182}
2183
2184// DescribeDBClusterParametersWithContext is the same as DescribeDBClusterParameters with the addition of
2185// the ability to pass a context and additional request options.
2186//
2187// See DescribeDBClusterParameters for details on how to use this API operation.
2188//
2189// The context must be non-nil and will be used for request cancellation. If
2190// the context is nil a panic will occur. In the future the SDK may create
2191// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2192// for more information on using Contexts.
2193func (c *DocDB) DescribeDBClusterParametersWithContext(ctx aws.Context, input *DescribeDBClusterParametersInput, opts ...request.Option) (*DescribeDBClusterParametersOutput, error) {
2194	req, out := c.DescribeDBClusterParametersRequest(input)
2195	req.SetContext(ctx)
2196	req.ApplyOptions(opts...)
2197	return out, req.Send()
2198}
2199
2200// DescribeDBClusterParametersPages iterates over the pages of a DescribeDBClusterParameters operation,
2201// calling the "fn" function with the response data for each page. To stop
2202// iterating, return false from the fn function.
2203//
2204// See DescribeDBClusterParameters method for more information on how to use this operation.
2205//
2206// Note: This operation can generate multiple requests to a service.
2207//
2208//    // Example iterating over at most 3 pages of a DescribeDBClusterParameters operation.
2209//    pageNum := 0
2210//    err := client.DescribeDBClusterParametersPages(params,
2211//        func(page *docdb.DescribeDBClusterParametersOutput, lastPage bool) bool {
2212//            pageNum++
2213//            fmt.Println(page)
2214//            return pageNum <= 3
2215//        })
2216//
2217func (c *DocDB) DescribeDBClusterParametersPages(input *DescribeDBClusterParametersInput, fn func(*DescribeDBClusterParametersOutput, bool) bool) error {
2218	return c.DescribeDBClusterParametersPagesWithContext(aws.BackgroundContext(), input, fn)
2219}
2220
2221// DescribeDBClusterParametersPagesWithContext same as DescribeDBClusterParametersPages except
2222// it takes a Context and allows setting request options on the pages.
2223//
2224// The context must be non-nil and will be used for request cancellation. If
2225// the context is nil a panic will occur. In the future the SDK may create
2226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2227// for more information on using Contexts.
2228func (c *DocDB) DescribeDBClusterParametersPagesWithContext(ctx aws.Context, input *DescribeDBClusterParametersInput, fn func(*DescribeDBClusterParametersOutput, bool) bool, opts ...request.Option) error {
2229	p := request.Pagination{
2230		NewRequest: func() (*request.Request, error) {
2231			var inCpy *DescribeDBClusterParametersInput
2232			if input != nil {
2233				tmp := *input
2234				inCpy = &tmp
2235			}
2236			req, _ := c.DescribeDBClusterParametersRequest(inCpy)
2237			req.SetContext(ctx)
2238			req.ApplyOptions(opts...)
2239			return req, nil
2240		},
2241	}
2242
2243	for p.Next() {
2244		if !fn(p.Page().(*DescribeDBClusterParametersOutput), !p.HasNextPage()) {
2245			break
2246		}
2247	}
2248
2249	return p.Err()
2250}
2251
2252const opDescribeDBClusterSnapshotAttributes = "DescribeDBClusterSnapshotAttributes"
2253
2254// DescribeDBClusterSnapshotAttributesRequest generates a "aws/request.Request" representing the
2255// client's request for the DescribeDBClusterSnapshotAttributes operation. The "output" return
2256// value will be populated with the request's response once the request completes
2257// successfully.
2258//
2259// Use "Send" method on the returned Request to send the API call to the service.
2260// the "output" return value is not valid until after Send returns without error.
2261//
2262// See DescribeDBClusterSnapshotAttributes for more information on using the DescribeDBClusterSnapshotAttributes
2263// API call, and error handling.
2264//
2265// This method is useful when you want to inject custom logic or configuration
2266// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2267//
2268//
2269//    // Example sending a request using the DescribeDBClusterSnapshotAttributesRequest method.
2270//    req, resp := client.DescribeDBClusterSnapshotAttributesRequest(params)
2271//
2272//    err := req.Send()
2273//    if err == nil { // resp is now filled
2274//        fmt.Println(resp)
2275//    }
2276//
2277// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshotAttributes
2278func (c *DocDB) DescribeDBClusterSnapshotAttributesRequest(input *DescribeDBClusterSnapshotAttributesInput) (req *request.Request, output *DescribeDBClusterSnapshotAttributesOutput) {
2279	op := &request.Operation{
2280		Name:       opDescribeDBClusterSnapshotAttributes,
2281		HTTPMethod: "POST",
2282		HTTPPath:   "/",
2283	}
2284
2285	if input == nil {
2286		input = &DescribeDBClusterSnapshotAttributesInput{}
2287	}
2288
2289	output = &DescribeDBClusterSnapshotAttributesOutput{}
2290	req = c.newRequest(op, input, output)
2291	return
2292}
2293
2294// DescribeDBClusterSnapshotAttributes API operation for Amazon DocumentDB with MongoDB compatibility.
2295//
2296// Returns a list of cluster snapshot attribute names and values for a manual
2297// DB cluster snapshot.
2298//
2299// When you share snapshots with other accounts, DescribeDBClusterSnapshotAttributes
2300// returns the restore attribute and a list of IDs for the accounts that are
2301// authorized to copy or restore the manual cluster snapshot. If all is included
2302// in the list of values for the restore attribute, then the manual cluster
2303// snapshot is public and can be copied or restored by all accounts.
2304//
2305// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2306// with awserr.Error's Code and Message methods to get detailed information about
2307// the error.
2308//
2309// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2310// API operation DescribeDBClusterSnapshotAttributes for usage and error information.
2311//
2312// Returned Error Codes:
2313//   * ErrCodeDBClusterSnapshotNotFoundFault "DBClusterSnapshotNotFoundFault"
2314//   DBClusterSnapshotIdentifier doesn't refer to an existing cluster snapshot.
2315//
2316// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshotAttributes
2317func (c *DocDB) DescribeDBClusterSnapshotAttributes(input *DescribeDBClusterSnapshotAttributesInput) (*DescribeDBClusterSnapshotAttributesOutput, error) {
2318	req, out := c.DescribeDBClusterSnapshotAttributesRequest(input)
2319	return out, req.Send()
2320}
2321
2322// DescribeDBClusterSnapshotAttributesWithContext is the same as DescribeDBClusterSnapshotAttributes with the addition of
2323// the ability to pass a context and additional request options.
2324//
2325// See DescribeDBClusterSnapshotAttributes for details on how to use this API operation.
2326//
2327// The context must be non-nil and will be used for request cancellation. If
2328// the context is nil a panic will occur. In the future the SDK may create
2329// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2330// for more information on using Contexts.
2331func (c *DocDB) DescribeDBClusterSnapshotAttributesWithContext(ctx aws.Context, input *DescribeDBClusterSnapshotAttributesInput, opts ...request.Option) (*DescribeDBClusterSnapshotAttributesOutput, error) {
2332	req, out := c.DescribeDBClusterSnapshotAttributesRequest(input)
2333	req.SetContext(ctx)
2334	req.ApplyOptions(opts...)
2335	return out, req.Send()
2336}
2337
2338const opDescribeDBClusterSnapshots = "DescribeDBClusterSnapshots"
2339
2340// DescribeDBClusterSnapshotsRequest generates a "aws/request.Request" representing the
2341// client's request for the DescribeDBClusterSnapshots operation. The "output" return
2342// value will be populated with the request's response once the request completes
2343// successfully.
2344//
2345// Use "Send" method on the returned Request to send the API call to the service.
2346// the "output" return value is not valid until after Send returns without error.
2347//
2348// See DescribeDBClusterSnapshots for more information on using the DescribeDBClusterSnapshots
2349// API call, and error handling.
2350//
2351// This method is useful when you want to inject custom logic or configuration
2352// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2353//
2354//
2355//    // Example sending a request using the DescribeDBClusterSnapshotsRequest method.
2356//    req, resp := client.DescribeDBClusterSnapshotsRequest(params)
2357//
2358//    err := req.Send()
2359//    if err == nil { // resp is now filled
2360//        fmt.Println(resp)
2361//    }
2362//
2363// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshots
2364func (c *DocDB) DescribeDBClusterSnapshotsRequest(input *DescribeDBClusterSnapshotsInput) (req *request.Request, output *DescribeDBClusterSnapshotsOutput) {
2365	op := &request.Operation{
2366		Name:       opDescribeDBClusterSnapshots,
2367		HTTPMethod: "POST",
2368		HTTPPath:   "/",
2369		Paginator: &request.Paginator{
2370			InputTokens:     []string{"Marker"},
2371			OutputTokens:    []string{"Marker"},
2372			LimitToken:      "MaxRecords",
2373			TruncationToken: "",
2374		},
2375	}
2376
2377	if input == nil {
2378		input = &DescribeDBClusterSnapshotsInput{}
2379	}
2380
2381	output = &DescribeDBClusterSnapshotsOutput{}
2382	req = c.newRequest(op, input, output)
2383	return
2384}
2385
2386// DescribeDBClusterSnapshots API operation for Amazon DocumentDB with MongoDB compatibility.
2387//
2388// Returns information about cluster snapshots. This API operation supports
2389// pagination.
2390//
2391// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2392// with awserr.Error's Code and Message methods to get detailed information about
2393// the error.
2394//
2395// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2396// API operation DescribeDBClusterSnapshots for usage and error information.
2397//
2398// Returned Error Codes:
2399//   * ErrCodeDBClusterSnapshotNotFoundFault "DBClusterSnapshotNotFoundFault"
2400//   DBClusterSnapshotIdentifier doesn't refer to an existing cluster snapshot.
2401//
2402// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshots
2403func (c *DocDB) DescribeDBClusterSnapshots(input *DescribeDBClusterSnapshotsInput) (*DescribeDBClusterSnapshotsOutput, error) {
2404	req, out := c.DescribeDBClusterSnapshotsRequest(input)
2405	return out, req.Send()
2406}
2407
2408// DescribeDBClusterSnapshotsWithContext is the same as DescribeDBClusterSnapshots with the addition of
2409// the ability to pass a context and additional request options.
2410//
2411// See DescribeDBClusterSnapshots for details on how to use this API operation.
2412//
2413// The context must be non-nil and will be used for request cancellation. If
2414// the context is nil a panic will occur. In the future the SDK may create
2415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2416// for more information on using Contexts.
2417func (c *DocDB) DescribeDBClusterSnapshotsWithContext(ctx aws.Context, input *DescribeDBClusterSnapshotsInput, opts ...request.Option) (*DescribeDBClusterSnapshotsOutput, error) {
2418	req, out := c.DescribeDBClusterSnapshotsRequest(input)
2419	req.SetContext(ctx)
2420	req.ApplyOptions(opts...)
2421	return out, req.Send()
2422}
2423
2424// DescribeDBClusterSnapshotsPages iterates over the pages of a DescribeDBClusterSnapshots operation,
2425// calling the "fn" function with the response data for each page. To stop
2426// iterating, return false from the fn function.
2427//
2428// See DescribeDBClusterSnapshots method for more information on how to use this operation.
2429//
2430// Note: This operation can generate multiple requests to a service.
2431//
2432//    // Example iterating over at most 3 pages of a DescribeDBClusterSnapshots operation.
2433//    pageNum := 0
2434//    err := client.DescribeDBClusterSnapshotsPages(params,
2435//        func(page *docdb.DescribeDBClusterSnapshotsOutput, lastPage bool) bool {
2436//            pageNum++
2437//            fmt.Println(page)
2438//            return pageNum <= 3
2439//        })
2440//
2441func (c *DocDB) DescribeDBClusterSnapshotsPages(input *DescribeDBClusterSnapshotsInput, fn func(*DescribeDBClusterSnapshotsOutput, bool) bool) error {
2442	return c.DescribeDBClusterSnapshotsPagesWithContext(aws.BackgroundContext(), input, fn)
2443}
2444
2445// DescribeDBClusterSnapshotsPagesWithContext same as DescribeDBClusterSnapshotsPages except
2446// it takes a Context and allows setting request options on the pages.
2447//
2448// The context must be non-nil and will be used for request cancellation. If
2449// the context is nil a panic will occur. In the future the SDK may create
2450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2451// for more information on using Contexts.
2452func (c *DocDB) DescribeDBClusterSnapshotsPagesWithContext(ctx aws.Context, input *DescribeDBClusterSnapshotsInput, fn func(*DescribeDBClusterSnapshotsOutput, bool) bool, opts ...request.Option) error {
2453	p := request.Pagination{
2454		NewRequest: func() (*request.Request, error) {
2455			var inCpy *DescribeDBClusterSnapshotsInput
2456			if input != nil {
2457				tmp := *input
2458				inCpy = &tmp
2459			}
2460			req, _ := c.DescribeDBClusterSnapshotsRequest(inCpy)
2461			req.SetContext(ctx)
2462			req.ApplyOptions(opts...)
2463			return req, nil
2464		},
2465	}
2466
2467	for p.Next() {
2468		if !fn(p.Page().(*DescribeDBClusterSnapshotsOutput), !p.HasNextPage()) {
2469			break
2470		}
2471	}
2472
2473	return p.Err()
2474}
2475
2476const opDescribeDBClusters = "DescribeDBClusters"
2477
2478// DescribeDBClustersRequest generates a "aws/request.Request" representing the
2479// client's request for the DescribeDBClusters operation. The "output" return
2480// value will be populated with the request's response once the request completes
2481// successfully.
2482//
2483// Use "Send" method on the returned Request to send the API call to the service.
2484// the "output" return value is not valid until after Send returns without error.
2485//
2486// See DescribeDBClusters for more information on using the DescribeDBClusters
2487// API call, and error handling.
2488//
2489// This method is useful when you want to inject custom logic or configuration
2490// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2491//
2492//
2493//    // Example sending a request using the DescribeDBClustersRequest method.
2494//    req, resp := client.DescribeDBClustersRequest(params)
2495//
2496//    err := req.Send()
2497//    if err == nil { // resp is now filled
2498//        fmt.Println(resp)
2499//    }
2500//
2501// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusters
2502func (c *DocDB) DescribeDBClustersRequest(input *DescribeDBClustersInput) (req *request.Request, output *DescribeDBClustersOutput) {
2503	op := &request.Operation{
2504		Name:       opDescribeDBClusters,
2505		HTTPMethod: "POST",
2506		HTTPPath:   "/",
2507		Paginator: &request.Paginator{
2508			InputTokens:     []string{"Marker"},
2509			OutputTokens:    []string{"Marker"},
2510			LimitToken:      "MaxRecords",
2511			TruncationToken: "",
2512		},
2513	}
2514
2515	if input == nil {
2516		input = &DescribeDBClustersInput{}
2517	}
2518
2519	output = &DescribeDBClustersOutput{}
2520	req = c.newRequest(op, input, output)
2521	return
2522}
2523
2524// DescribeDBClusters API operation for Amazon DocumentDB with MongoDB compatibility.
2525//
2526// Returns information about provisioned Amazon DocumentDB clusters. This API
2527// operation supports pagination. For certain management features such as cluster
2528// and instance lifecycle management, Amazon DocumentDB leverages operational
2529// technology that is shared with Amazon RDS and Amazon Neptune. Use the filterName=engine,Values=docdb
2530// filter parameter to return only Amazon DocumentDB clusters.
2531//
2532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2533// with awserr.Error's Code and Message methods to get detailed information about
2534// the error.
2535//
2536// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2537// API operation DescribeDBClusters for usage and error information.
2538//
2539// Returned Error Codes:
2540//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
2541//   DBClusterIdentifier doesn't refer to an existing cluster.
2542//
2543// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusters
2544func (c *DocDB) DescribeDBClusters(input *DescribeDBClustersInput) (*DescribeDBClustersOutput, error) {
2545	req, out := c.DescribeDBClustersRequest(input)
2546	return out, req.Send()
2547}
2548
2549// DescribeDBClustersWithContext is the same as DescribeDBClusters with the addition of
2550// the ability to pass a context and additional request options.
2551//
2552// See DescribeDBClusters for details on how to use this API operation.
2553//
2554// The context must be non-nil and will be used for request cancellation. If
2555// the context is nil a panic will occur. In the future the SDK may create
2556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2557// for more information on using Contexts.
2558func (c *DocDB) DescribeDBClustersWithContext(ctx aws.Context, input *DescribeDBClustersInput, opts ...request.Option) (*DescribeDBClustersOutput, error) {
2559	req, out := c.DescribeDBClustersRequest(input)
2560	req.SetContext(ctx)
2561	req.ApplyOptions(opts...)
2562	return out, req.Send()
2563}
2564
2565// DescribeDBClustersPages iterates over the pages of a DescribeDBClusters operation,
2566// calling the "fn" function with the response data for each page. To stop
2567// iterating, return false from the fn function.
2568//
2569// See DescribeDBClusters method for more information on how to use this operation.
2570//
2571// Note: This operation can generate multiple requests to a service.
2572//
2573//    // Example iterating over at most 3 pages of a DescribeDBClusters operation.
2574//    pageNum := 0
2575//    err := client.DescribeDBClustersPages(params,
2576//        func(page *docdb.DescribeDBClustersOutput, lastPage bool) bool {
2577//            pageNum++
2578//            fmt.Println(page)
2579//            return pageNum <= 3
2580//        })
2581//
2582func (c *DocDB) DescribeDBClustersPages(input *DescribeDBClustersInput, fn func(*DescribeDBClustersOutput, bool) bool) error {
2583	return c.DescribeDBClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2584}
2585
2586// DescribeDBClustersPagesWithContext same as DescribeDBClustersPages except
2587// it takes a Context and allows setting request options on the pages.
2588//
2589// The context must be non-nil and will be used for request cancellation. If
2590// the context is nil a panic will occur. In the future the SDK may create
2591// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2592// for more information on using Contexts.
2593func (c *DocDB) DescribeDBClustersPagesWithContext(ctx aws.Context, input *DescribeDBClustersInput, fn func(*DescribeDBClustersOutput, bool) bool, opts ...request.Option) error {
2594	p := request.Pagination{
2595		NewRequest: func() (*request.Request, error) {
2596			var inCpy *DescribeDBClustersInput
2597			if input != nil {
2598				tmp := *input
2599				inCpy = &tmp
2600			}
2601			req, _ := c.DescribeDBClustersRequest(inCpy)
2602			req.SetContext(ctx)
2603			req.ApplyOptions(opts...)
2604			return req, nil
2605		},
2606	}
2607
2608	for p.Next() {
2609		if !fn(p.Page().(*DescribeDBClustersOutput), !p.HasNextPage()) {
2610			break
2611		}
2612	}
2613
2614	return p.Err()
2615}
2616
2617const opDescribeDBEngineVersions = "DescribeDBEngineVersions"
2618
2619// DescribeDBEngineVersionsRequest generates a "aws/request.Request" representing the
2620// client's request for the DescribeDBEngineVersions operation. The "output" return
2621// value will be populated with the request's response once the request completes
2622// successfully.
2623//
2624// Use "Send" method on the returned Request to send the API call to the service.
2625// the "output" return value is not valid until after Send returns without error.
2626//
2627// See DescribeDBEngineVersions for more information on using the DescribeDBEngineVersions
2628// API call, and error handling.
2629//
2630// This method is useful when you want to inject custom logic or configuration
2631// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2632//
2633//
2634//    // Example sending a request using the DescribeDBEngineVersionsRequest method.
2635//    req, resp := client.DescribeDBEngineVersionsRequest(params)
2636//
2637//    err := req.Send()
2638//    if err == nil { // resp is now filled
2639//        fmt.Println(resp)
2640//    }
2641//
2642// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBEngineVersions
2643func (c *DocDB) DescribeDBEngineVersionsRequest(input *DescribeDBEngineVersionsInput) (req *request.Request, output *DescribeDBEngineVersionsOutput) {
2644	op := &request.Operation{
2645		Name:       opDescribeDBEngineVersions,
2646		HTTPMethod: "POST",
2647		HTTPPath:   "/",
2648		Paginator: &request.Paginator{
2649			InputTokens:     []string{"Marker"},
2650			OutputTokens:    []string{"Marker"},
2651			LimitToken:      "MaxRecords",
2652			TruncationToken: "",
2653		},
2654	}
2655
2656	if input == nil {
2657		input = &DescribeDBEngineVersionsInput{}
2658	}
2659
2660	output = &DescribeDBEngineVersionsOutput{}
2661	req = c.newRequest(op, input, output)
2662	return
2663}
2664
2665// DescribeDBEngineVersions API operation for Amazon DocumentDB with MongoDB compatibility.
2666//
2667// Returns a list of the available engines.
2668//
2669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2670// with awserr.Error's Code and Message methods to get detailed information about
2671// the error.
2672//
2673// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2674// API operation DescribeDBEngineVersions for usage and error information.
2675// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBEngineVersions
2676func (c *DocDB) DescribeDBEngineVersions(input *DescribeDBEngineVersionsInput) (*DescribeDBEngineVersionsOutput, error) {
2677	req, out := c.DescribeDBEngineVersionsRequest(input)
2678	return out, req.Send()
2679}
2680
2681// DescribeDBEngineVersionsWithContext is the same as DescribeDBEngineVersions with the addition of
2682// the ability to pass a context and additional request options.
2683//
2684// See DescribeDBEngineVersions for details on how to use this API operation.
2685//
2686// The context must be non-nil and will be used for request cancellation. If
2687// the context is nil a panic will occur. In the future the SDK may create
2688// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2689// for more information on using Contexts.
2690func (c *DocDB) DescribeDBEngineVersionsWithContext(ctx aws.Context, input *DescribeDBEngineVersionsInput, opts ...request.Option) (*DescribeDBEngineVersionsOutput, error) {
2691	req, out := c.DescribeDBEngineVersionsRequest(input)
2692	req.SetContext(ctx)
2693	req.ApplyOptions(opts...)
2694	return out, req.Send()
2695}
2696
2697// DescribeDBEngineVersionsPages iterates over the pages of a DescribeDBEngineVersions operation,
2698// calling the "fn" function with the response data for each page. To stop
2699// iterating, return false from the fn function.
2700//
2701// See DescribeDBEngineVersions method for more information on how to use this operation.
2702//
2703// Note: This operation can generate multiple requests to a service.
2704//
2705//    // Example iterating over at most 3 pages of a DescribeDBEngineVersions operation.
2706//    pageNum := 0
2707//    err := client.DescribeDBEngineVersionsPages(params,
2708//        func(page *docdb.DescribeDBEngineVersionsOutput, lastPage bool) bool {
2709//            pageNum++
2710//            fmt.Println(page)
2711//            return pageNum <= 3
2712//        })
2713//
2714func (c *DocDB) DescribeDBEngineVersionsPages(input *DescribeDBEngineVersionsInput, fn func(*DescribeDBEngineVersionsOutput, bool) bool) error {
2715	return c.DescribeDBEngineVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
2716}
2717
2718// DescribeDBEngineVersionsPagesWithContext same as DescribeDBEngineVersionsPages except
2719// it takes a Context and allows setting request options on the pages.
2720//
2721// The context must be non-nil and will be used for request cancellation. If
2722// the context is nil a panic will occur. In the future the SDK may create
2723// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2724// for more information on using Contexts.
2725func (c *DocDB) DescribeDBEngineVersionsPagesWithContext(ctx aws.Context, input *DescribeDBEngineVersionsInput, fn func(*DescribeDBEngineVersionsOutput, bool) bool, opts ...request.Option) error {
2726	p := request.Pagination{
2727		NewRequest: func() (*request.Request, error) {
2728			var inCpy *DescribeDBEngineVersionsInput
2729			if input != nil {
2730				tmp := *input
2731				inCpy = &tmp
2732			}
2733			req, _ := c.DescribeDBEngineVersionsRequest(inCpy)
2734			req.SetContext(ctx)
2735			req.ApplyOptions(opts...)
2736			return req, nil
2737		},
2738	}
2739
2740	for p.Next() {
2741		if !fn(p.Page().(*DescribeDBEngineVersionsOutput), !p.HasNextPage()) {
2742			break
2743		}
2744	}
2745
2746	return p.Err()
2747}
2748
2749const opDescribeDBInstances = "DescribeDBInstances"
2750
2751// DescribeDBInstancesRequest generates a "aws/request.Request" representing the
2752// client's request for the DescribeDBInstances operation. The "output" return
2753// value will be populated with the request's response once the request completes
2754// successfully.
2755//
2756// Use "Send" method on the returned Request to send the API call to the service.
2757// the "output" return value is not valid until after Send returns without error.
2758//
2759// See DescribeDBInstances for more information on using the DescribeDBInstances
2760// API call, and error handling.
2761//
2762// This method is useful when you want to inject custom logic or configuration
2763// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2764//
2765//
2766//    // Example sending a request using the DescribeDBInstancesRequest method.
2767//    req, resp := client.DescribeDBInstancesRequest(params)
2768//
2769//    err := req.Send()
2770//    if err == nil { // resp is now filled
2771//        fmt.Println(resp)
2772//    }
2773//
2774// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBInstances
2775func (c *DocDB) DescribeDBInstancesRequest(input *DescribeDBInstancesInput) (req *request.Request, output *DescribeDBInstancesOutput) {
2776	op := &request.Operation{
2777		Name:       opDescribeDBInstances,
2778		HTTPMethod: "POST",
2779		HTTPPath:   "/",
2780		Paginator: &request.Paginator{
2781			InputTokens:     []string{"Marker"},
2782			OutputTokens:    []string{"Marker"},
2783			LimitToken:      "MaxRecords",
2784			TruncationToken: "",
2785		},
2786	}
2787
2788	if input == nil {
2789		input = &DescribeDBInstancesInput{}
2790	}
2791
2792	output = &DescribeDBInstancesOutput{}
2793	req = c.newRequest(op, input, output)
2794	return
2795}
2796
2797// DescribeDBInstances API operation for Amazon DocumentDB with MongoDB compatibility.
2798//
2799// Returns information about provisioned Amazon DocumentDB instances. This API
2800// supports pagination.
2801//
2802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2803// with awserr.Error's Code and Message methods to get detailed information about
2804// the error.
2805//
2806// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2807// API operation DescribeDBInstances for usage and error information.
2808//
2809// Returned Error Codes:
2810//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
2811//   DBInstanceIdentifier doesn't refer to an existing instance.
2812//
2813// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBInstances
2814func (c *DocDB) DescribeDBInstances(input *DescribeDBInstancesInput) (*DescribeDBInstancesOutput, error) {
2815	req, out := c.DescribeDBInstancesRequest(input)
2816	return out, req.Send()
2817}
2818
2819// DescribeDBInstancesWithContext is the same as DescribeDBInstances with the addition of
2820// the ability to pass a context and additional request options.
2821//
2822// See DescribeDBInstances for details on how to use this API operation.
2823//
2824// The context must be non-nil and will be used for request cancellation. If
2825// the context is nil a panic will occur. In the future the SDK may create
2826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2827// for more information on using Contexts.
2828func (c *DocDB) DescribeDBInstancesWithContext(ctx aws.Context, input *DescribeDBInstancesInput, opts ...request.Option) (*DescribeDBInstancesOutput, error) {
2829	req, out := c.DescribeDBInstancesRequest(input)
2830	req.SetContext(ctx)
2831	req.ApplyOptions(opts...)
2832	return out, req.Send()
2833}
2834
2835// DescribeDBInstancesPages iterates over the pages of a DescribeDBInstances operation,
2836// calling the "fn" function with the response data for each page. To stop
2837// iterating, return false from the fn function.
2838//
2839// See DescribeDBInstances method for more information on how to use this operation.
2840//
2841// Note: This operation can generate multiple requests to a service.
2842//
2843//    // Example iterating over at most 3 pages of a DescribeDBInstances operation.
2844//    pageNum := 0
2845//    err := client.DescribeDBInstancesPages(params,
2846//        func(page *docdb.DescribeDBInstancesOutput, lastPage bool) bool {
2847//            pageNum++
2848//            fmt.Println(page)
2849//            return pageNum <= 3
2850//        })
2851//
2852func (c *DocDB) DescribeDBInstancesPages(input *DescribeDBInstancesInput, fn func(*DescribeDBInstancesOutput, bool) bool) error {
2853	return c.DescribeDBInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2854}
2855
2856// DescribeDBInstancesPagesWithContext same as DescribeDBInstancesPages except
2857// it takes a Context and allows setting request options on the pages.
2858//
2859// The context must be non-nil and will be used for request cancellation. If
2860// the context is nil a panic will occur. In the future the SDK may create
2861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2862// for more information on using Contexts.
2863func (c *DocDB) DescribeDBInstancesPagesWithContext(ctx aws.Context, input *DescribeDBInstancesInput, fn func(*DescribeDBInstancesOutput, bool) bool, opts ...request.Option) error {
2864	p := request.Pagination{
2865		NewRequest: func() (*request.Request, error) {
2866			var inCpy *DescribeDBInstancesInput
2867			if input != nil {
2868				tmp := *input
2869				inCpy = &tmp
2870			}
2871			req, _ := c.DescribeDBInstancesRequest(inCpy)
2872			req.SetContext(ctx)
2873			req.ApplyOptions(opts...)
2874			return req, nil
2875		},
2876	}
2877
2878	for p.Next() {
2879		if !fn(p.Page().(*DescribeDBInstancesOutput), !p.HasNextPage()) {
2880			break
2881		}
2882	}
2883
2884	return p.Err()
2885}
2886
2887const opDescribeDBSubnetGroups = "DescribeDBSubnetGroups"
2888
2889// DescribeDBSubnetGroupsRequest generates a "aws/request.Request" representing the
2890// client's request for the DescribeDBSubnetGroups operation. The "output" return
2891// value will be populated with the request's response once the request completes
2892// successfully.
2893//
2894// Use "Send" method on the returned Request to send the API call to the service.
2895// the "output" return value is not valid until after Send returns without error.
2896//
2897// See DescribeDBSubnetGroups for more information on using the DescribeDBSubnetGroups
2898// API call, and error handling.
2899//
2900// This method is useful when you want to inject custom logic or configuration
2901// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2902//
2903//
2904//    // Example sending a request using the DescribeDBSubnetGroupsRequest method.
2905//    req, resp := client.DescribeDBSubnetGroupsRequest(params)
2906//
2907//    err := req.Send()
2908//    if err == nil { // resp is now filled
2909//        fmt.Println(resp)
2910//    }
2911//
2912// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBSubnetGroups
2913func (c *DocDB) DescribeDBSubnetGroupsRequest(input *DescribeDBSubnetGroupsInput) (req *request.Request, output *DescribeDBSubnetGroupsOutput) {
2914	op := &request.Operation{
2915		Name:       opDescribeDBSubnetGroups,
2916		HTTPMethod: "POST",
2917		HTTPPath:   "/",
2918		Paginator: &request.Paginator{
2919			InputTokens:     []string{"Marker"},
2920			OutputTokens:    []string{"Marker"},
2921			LimitToken:      "MaxRecords",
2922			TruncationToken: "",
2923		},
2924	}
2925
2926	if input == nil {
2927		input = &DescribeDBSubnetGroupsInput{}
2928	}
2929
2930	output = &DescribeDBSubnetGroupsOutput{}
2931	req = c.newRequest(op, input, output)
2932	return
2933}
2934
2935// DescribeDBSubnetGroups API operation for Amazon DocumentDB with MongoDB compatibility.
2936//
2937// Returns a list of DBSubnetGroup descriptions. If a DBSubnetGroupName is specified,
2938// the list will contain only the descriptions of the specified DBSubnetGroup.
2939//
2940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2941// with awserr.Error's Code and Message methods to get detailed information about
2942// the error.
2943//
2944// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
2945// API operation DescribeDBSubnetGroups for usage and error information.
2946//
2947// Returned Error Codes:
2948//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
2949//   DBSubnetGroupName doesn't refer to an existing subnet group.
2950//
2951// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBSubnetGroups
2952func (c *DocDB) DescribeDBSubnetGroups(input *DescribeDBSubnetGroupsInput) (*DescribeDBSubnetGroupsOutput, error) {
2953	req, out := c.DescribeDBSubnetGroupsRequest(input)
2954	return out, req.Send()
2955}
2956
2957// DescribeDBSubnetGroupsWithContext is the same as DescribeDBSubnetGroups with the addition of
2958// the ability to pass a context and additional request options.
2959//
2960// See DescribeDBSubnetGroups for details on how to use this API operation.
2961//
2962// The context must be non-nil and will be used for request cancellation. If
2963// the context is nil a panic will occur. In the future the SDK may create
2964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2965// for more information on using Contexts.
2966func (c *DocDB) DescribeDBSubnetGroupsWithContext(ctx aws.Context, input *DescribeDBSubnetGroupsInput, opts ...request.Option) (*DescribeDBSubnetGroupsOutput, error) {
2967	req, out := c.DescribeDBSubnetGroupsRequest(input)
2968	req.SetContext(ctx)
2969	req.ApplyOptions(opts...)
2970	return out, req.Send()
2971}
2972
2973// DescribeDBSubnetGroupsPages iterates over the pages of a DescribeDBSubnetGroups operation,
2974// calling the "fn" function with the response data for each page. To stop
2975// iterating, return false from the fn function.
2976//
2977// See DescribeDBSubnetGroups method for more information on how to use this operation.
2978//
2979// Note: This operation can generate multiple requests to a service.
2980//
2981//    // Example iterating over at most 3 pages of a DescribeDBSubnetGroups operation.
2982//    pageNum := 0
2983//    err := client.DescribeDBSubnetGroupsPages(params,
2984//        func(page *docdb.DescribeDBSubnetGroupsOutput, lastPage bool) bool {
2985//            pageNum++
2986//            fmt.Println(page)
2987//            return pageNum <= 3
2988//        })
2989//
2990func (c *DocDB) DescribeDBSubnetGroupsPages(input *DescribeDBSubnetGroupsInput, fn func(*DescribeDBSubnetGroupsOutput, bool) bool) error {
2991	return c.DescribeDBSubnetGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2992}
2993
2994// DescribeDBSubnetGroupsPagesWithContext same as DescribeDBSubnetGroupsPages except
2995// it takes a Context and allows setting request options on the pages.
2996//
2997// The context must be non-nil and will be used for request cancellation. If
2998// the context is nil a panic will occur. In the future the SDK may create
2999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3000// for more information on using Contexts.
3001func (c *DocDB) DescribeDBSubnetGroupsPagesWithContext(ctx aws.Context, input *DescribeDBSubnetGroupsInput, fn func(*DescribeDBSubnetGroupsOutput, bool) bool, opts ...request.Option) error {
3002	p := request.Pagination{
3003		NewRequest: func() (*request.Request, error) {
3004			var inCpy *DescribeDBSubnetGroupsInput
3005			if input != nil {
3006				tmp := *input
3007				inCpy = &tmp
3008			}
3009			req, _ := c.DescribeDBSubnetGroupsRequest(inCpy)
3010			req.SetContext(ctx)
3011			req.ApplyOptions(opts...)
3012			return req, nil
3013		},
3014	}
3015
3016	for p.Next() {
3017		if !fn(p.Page().(*DescribeDBSubnetGroupsOutput), !p.HasNextPage()) {
3018			break
3019		}
3020	}
3021
3022	return p.Err()
3023}
3024
3025const opDescribeEngineDefaultClusterParameters = "DescribeEngineDefaultClusterParameters"
3026
3027// DescribeEngineDefaultClusterParametersRequest generates a "aws/request.Request" representing the
3028// client's request for the DescribeEngineDefaultClusterParameters operation. The "output" return
3029// value will be populated with the request's response once the request completes
3030// successfully.
3031//
3032// Use "Send" method on the returned Request to send the API call to the service.
3033// the "output" return value is not valid until after Send returns without error.
3034//
3035// See DescribeEngineDefaultClusterParameters for more information on using the DescribeEngineDefaultClusterParameters
3036// API call, and error handling.
3037//
3038// This method is useful when you want to inject custom logic or configuration
3039// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3040//
3041//
3042//    // Example sending a request using the DescribeEngineDefaultClusterParametersRequest method.
3043//    req, resp := client.DescribeEngineDefaultClusterParametersRequest(params)
3044//
3045//    err := req.Send()
3046//    if err == nil { // resp is now filled
3047//        fmt.Println(resp)
3048//    }
3049//
3050// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEngineDefaultClusterParameters
3051func (c *DocDB) DescribeEngineDefaultClusterParametersRequest(input *DescribeEngineDefaultClusterParametersInput) (req *request.Request, output *DescribeEngineDefaultClusterParametersOutput) {
3052	op := &request.Operation{
3053		Name:       opDescribeEngineDefaultClusterParameters,
3054		HTTPMethod: "POST",
3055		HTTPPath:   "/",
3056	}
3057
3058	if input == nil {
3059		input = &DescribeEngineDefaultClusterParametersInput{}
3060	}
3061
3062	output = &DescribeEngineDefaultClusterParametersOutput{}
3063	req = c.newRequest(op, input, output)
3064	return
3065}
3066
3067// DescribeEngineDefaultClusterParameters API operation for Amazon DocumentDB with MongoDB compatibility.
3068//
3069// Returns the default engine and system parameter information for the cluster
3070// database engine.
3071//
3072// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3073// with awserr.Error's Code and Message methods to get detailed information about
3074// the error.
3075//
3076// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3077// API operation DescribeEngineDefaultClusterParameters for usage and error information.
3078// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEngineDefaultClusterParameters
3079func (c *DocDB) DescribeEngineDefaultClusterParameters(input *DescribeEngineDefaultClusterParametersInput) (*DescribeEngineDefaultClusterParametersOutput, error) {
3080	req, out := c.DescribeEngineDefaultClusterParametersRequest(input)
3081	return out, req.Send()
3082}
3083
3084// DescribeEngineDefaultClusterParametersWithContext is the same as DescribeEngineDefaultClusterParameters with the addition of
3085// the ability to pass a context and additional request options.
3086//
3087// See DescribeEngineDefaultClusterParameters for details on how to use this API operation.
3088//
3089// The context must be non-nil and will be used for request cancellation. If
3090// the context is nil a panic will occur. In the future the SDK may create
3091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3092// for more information on using Contexts.
3093func (c *DocDB) DescribeEngineDefaultClusterParametersWithContext(ctx aws.Context, input *DescribeEngineDefaultClusterParametersInput, opts ...request.Option) (*DescribeEngineDefaultClusterParametersOutput, error) {
3094	req, out := c.DescribeEngineDefaultClusterParametersRequest(input)
3095	req.SetContext(ctx)
3096	req.ApplyOptions(opts...)
3097	return out, req.Send()
3098}
3099
3100const opDescribeEventCategories = "DescribeEventCategories"
3101
3102// DescribeEventCategoriesRequest generates a "aws/request.Request" representing the
3103// client's request for the DescribeEventCategories operation. The "output" return
3104// value will be populated with the request's response once the request completes
3105// successfully.
3106//
3107// Use "Send" method on the returned Request to send the API call to the service.
3108// the "output" return value is not valid until after Send returns without error.
3109//
3110// See DescribeEventCategories for more information on using the DescribeEventCategories
3111// API call, and error handling.
3112//
3113// This method is useful when you want to inject custom logic or configuration
3114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3115//
3116//
3117//    // Example sending a request using the DescribeEventCategoriesRequest method.
3118//    req, resp := client.DescribeEventCategoriesRequest(params)
3119//
3120//    err := req.Send()
3121//    if err == nil { // resp is now filled
3122//        fmt.Println(resp)
3123//    }
3124//
3125// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventCategories
3126func (c *DocDB) DescribeEventCategoriesRequest(input *DescribeEventCategoriesInput) (req *request.Request, output *DescribeEventCategoriesOutput) {
3127	op := &request.Operation{
3128		Name:       opDescribeEventCategories,
3129		HTTPMethod: "POST",
3130		HTTPPath:   "/",
3131	}
3132
3133	if input == nil {
3134		input = &DescribeEventCategoriesInput{}
3135	}
3136
3137	output = &DescribeEventCategoriesOutput{}
3138	req = c.newRequest(op, input, output)
3139	return
3140}
3141
3142// DescribeEventCategories API operation for Amazon DocumentDB with MongoDB compatibility.
3143//
3144// Displays a list of categories for all event source types, or, if specified,
3145// for a specified source type.
3146//
3147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3148// with awserr.Error's Code and Message methods to get detailed information about
3149// the error.
3150//
3151// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3152// API operation DescribeEventCategories for usage and error information.
3153// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventCategories
3154func (c *DocDB) DescribeEventCategories(input *DescribeEventCategoriesInput) (*DescribeEventCategoriesOutput, error) {
3155	req, out := c.DescribeEventCategoriesRequest(input)
3156	return out, req.Send()
3157}
3158
3159// DescribeEventCategoriesWithContext is the same as DescribeEventCategories with the addition of
3160// the ability to pass a context and additional request options.
3161//
3162// See DescribeEventCategories for details on how to use this API operation.
3163//
3164// The context must be non-nil and will be used for request cancellation. If
3165// the context is nil a panic will occur. In the future the SDK may create
3166// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3167// for more information on using Contexts.
3168func (c *DocDB) DescribeEventCategoriesWithContext(ctx aws.Context, input *DescribeEventCategoriesInput, opts ...request.Option) (*DescribeEventCategoriesOutput, error) {
3169	req, out := c.DescribeEventCategoriesRequest(input)
3170	req.SetContext(ctx)
3171	req.ApplyOptions(opts...)
3172	return out, req.Send()
3173}
3174
3175const opDescribeEventSubscriptions = "DescribeEventSubscriptions"
3176
3177// DescribeEventSubscriptionsRequest generates a "aws/request.Request" representing the
3178// client's request for the DescribeEventSubscriptions operation. The "output" return
3179// value will be populated with the request's response once the request completes
3180// successfully.
3181//
3182// Use "Send" method on the returned Request to send the API call to the service.
3183// the "output" return value is not valid until after Send returns without error.
3184//
3185// See DescribeEventSubscriptions for more information on using the DescribeEventSubscriptions
3186// API call, and error handling.
3187//
3188// This method is useful when you want to inject custom logic or configuration
3189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3190//
3191//
3192//    // Example sending a request using the DescribeEventSubscriptionsRequest method.
3193//    req, resp := client.DescribeEventSubscriptionsRequest(params)
3194//
3195//    err := req.Send()
3196//    if err == nil { // resp is now filled
3197//        fmt.Println(resp)
3198//    }
3199//
3200// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventSubscriptions
3201func (c *DocDB) DescribeEventSubscriptionsRequest(input *DescribeEventSubscriptionsInput) (req *request.Request, output *DescribeEventSubscriptionsOutput) {
3202	op := &request.Operation{
3203		Name:       opDescribeEventSubscriptions,
3204		HTTPMethod: "POST",
3205		HTTPPath:   "/",
3206		Paginator: &request.Paginator{
3207			InputTokens:     []string{"Marker"},
3208			OutputTokens:    []string{"Marker"},
3209			LimitToken:      "MaxRecords",
3210			TruncationToken: "",
3211		},
3212	}
3213
3214	if input == nil {
3215		input = &DescribeEventSubscriptionsInput{}
3216	}
3217
3218	output = &DescribeEventSubscriptionsOutput{}
3219	req = c.newRequest(op, input, output)
3220	return
3221}
3222
3223// DescribeEventSubscriptions API operation for Amazon DocumentDB with MongoDB compatibility.
3224//
3225// Lists all the subscription descriptions for a customer account. The description
3226// for a subscription includes SubscriptionName, SNSTopicARN, CustomerID, SourceType,
3227// SourceID, CreationTime, and Status.
3228//
3229// If you specify a SubscriptionName, lists the description for that subscription.
3230//
3231// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3232// with awserr.Error's Code and Message methods to get detailed information about
3233// the error.
3234//
3235// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3236// API operation DescribeEventSubscriptions for usage and error information.
3237//
3238// Returned Error Codes:
3239//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
3240//   The subscription name does not exist.
3241//
3242// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventSubscriptions
3243func (c *DocDB) DescribeEventSubscriptions(input *DescribeEventSubscriptionsInput) (*DescribeEventSubscriptionsOutput, error) {
3244	req, out := c.DescribeEventSubscriptionsRequest(input)
3245	return out, req.Send()
3246}
3247
3248// DescribeEventSubscriptionsWithContext is the same as DescribeEventSubscriptions with the addition of
3249// the ability to pass a context and additional request options.
3250//
3251// See DescribeEventSubscriptions for details on how to use this API operation.
3252//
3253// The context must be non-nil and will be used for request cancellation. If
3254// the context is nil a panic will occur. In the future the SDK may create
3255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3256// for more information on using Contexts.
3257func (c *DocDB) DescribeEventSubscriptionsWithContext(ctx aws.Context, input *DescribeEventSubscriptionsInput, opts ...request.Option) (*DescribeEventSubscriptionsOutput, error) {
3258	req, out := c.DescribeEventSubscriptionsRequest(input)
3259	req.SetContext(ctx)
3260	req.ApplyOptions(opts...)
3261	return out, req.Send()
3262}
3263
3264// DescribeEventSubscriptionsPages iterates over the pages of a DescribeEventSubscriptions operation,
3265// calling the "fn" function with the response data for each page. To stop
3266// iterating, return false from the fn function.
3267//
3268// See DescribeEventSubscriptions method for more information on how to use this operation.
3269//
3270// Note: This operation can generate multiple requests to a service.
3271//
3272//    // Example iterating over at most 3 pages of a DescribeEventSubscriptions operation.
3273//    pageNum := 0
3274//    err := client.DescribeEventSubscriptionsPages(params,
3275//        func(page *docdb.DescribeEventSubscriptionsOutput, lastPage bool) bool {
3276//            pageNum++
3277//            fmt.Println(page)
3278//            return pageNum <= 3
3279//        })
3280//
3281func (c *DocDB) DescribeEventSubscriptionsPages(input *DescribeEventSubscriptionsInput, fn func(*DescribeEventSubscriptionsOutput, bool) bool) error {
3282	return c.DescribeEventSubscriptionsPagesWithContext(aws.BackgroundContext(), input, fn)
3283}
3284
3285// DescribeEventSubscriptionsPagesWithContext same as DescribeEventSubscriptionsPages except
3286// it takes a Context and allows setting request options on the pages.
3287//
3288// The context must be non-nil and will be used for request cancellation. If
3289// the context is nil a panic will occur. In the future the SDK may create
3290// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3291// for more information on using Contexts.
3292func (c *DocDB) DescribeEventSubscriptionsPagesWithContext(ctx aws.Context, input *DescribeEventSubscriptionsInput, fn func(*DescribeEventSubscriptionsOutput, bool) bool, opts ...request.Option) error {
3293	p := request.Pagination{
3294		NewRequest: func() (*request.Request, error) {
3295			var inCpy *DescribeEventSubscriptionsInput
3296			if input != nil {
3297				tmp := *input
3298				inCpy = &tmp
3299			}
3300			req, _ := c.DescribeEventSubscriptionsRequest(inCpy)
3301			req.SetContext(ctx)
3302			req.ApplyOptions(opts...)
3303			return req, nil
3304		},
3305	}
3306
3307	for p.Next() {
3308		if !fn(p.Page().(*DescribeEventSubscriptionsOutput), !p.HasNextPage()) {
3309			break
3310		}
3311	}
3312
3313	return p.Err()
3314}
3315
3316const opDescribeEvents = "DescribeEvents"
3317
3318// DescribeEventsRequest generates a "aws/request.Request" representing the
3319// client's request for the DescribeEvents operation. The "output" return
3320// value will be populated with the request's response once the request completes
3321// successfully.
3322//
3323// Use "Send" method on the returned Request to send the API call to the service.
3324// the "output" return value is not valid until after Send returns without error.
3325//
3326// See DescribeEvents for more information on using the DescribeEvents
3327// API call, and error handling.
3328//
3329// This method is useful when you want to inject custom logic or configuration
3330// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3331//
3332//
3333//    // Example sending a request using the DescribeEventsRequest method.
3334//    req, resp := client.DescribeEventsRequest(params)
3335//
3336//    err := req.Send()
3337//    if err == nil { // resp is now filled
3338//        fmt.Println(resp)
3339//    }
3340//
3341// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEvents
3342func (c *DocDB) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) {
3343	op := &request.Operation{
3344		Name:       opDescribeEvents,
3345		HTTPMethod: "POST",
3346		HTTPPath:   "/",
3347		Paginator: &request.Paginator{
3348			InputTokens:     []string{"Marker"},
3349			OutputTokens:    []string{"Marker"},
3350			LimitToken:      "MaxRecords",
3351			TruncationToken: "",
3352		},
3353	}
3354
3355	if input == nil {
3356		input = &DescribeEventsInput{}
3357	}
3358
3359	output = &DescribeEventsOutput{}
3360	req = c.newRequest(op, input, output)
3361	return
3362}
3363
3364// DescribeEvents API operation for Amazon DocumentDB with MongoDB compatibility.
3365//
3366// Returns events related to instances, security groups, snapshots, and DB parameter
3367// groups for the past 14 days. You can obtain events specific to a particular
3368// DB instance, security group, snapshot, or parameter group by providing the
3369// name as a parameter. By default, the events of the past hour are returned.
3370//
3371// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3372// with awserr.Error's Code and Message methods to get detailed information about
3373// the error.
3374//
3375// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3376// API operation DescribeEvents for usage and error information.
3377// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEvents
3378func (c *DocDB) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) {
3379	req, out := c.DescribeEventsRequest(input)
3380	return out, req.Send()
3381}
3382
3383// DescribeEventsWithContext is the same as DescribeEvents with the addition of
3384// the ability to pass a context and additional request options.
3385//
3386// See DescribeEvents for details on how to use this API operation.
3387//
3388// The context must be non-nil and will be used for request cancellation. If
3389// the context is nil a panic will occur. In the future the SDK may create
3390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3391// for more information on using Contexts.
3392func (c *DocDB) DescribeEventsWithContext(ctx aws.Context, input *DescribeEventsInput, opts ...request.Option) (*DescribeEventsOutput, error) {
3393	req, out := c.DescribeEventsRequest(input)
3394	req.SetContext(ctx)
3395	req.ApplyOptions(opts...)
3396	return out, req.Send()
3397}
3398
3399// DescribeEventsPages iterates over the pages of a DescribeEvents operation,
3400// calling the "fn" function with the response data for each page. To stop
3401// iterating, return false from the fn function.
3402//
3403// See DescribeEvents method for more information on how to use this operation.
3404//
3405// Note: This operation can generate multiple requests to a service.
3406//
3407//    // Example iterating over at most 3 pages of a DescribeEvents operation.
3408//    pageNum := 0
3409//    err := client.DescribeEventsPages(params,
3410//        func(page *docdb.DescribeEventsOutput, lastPage bool) bool {
3411//            pageNum++
3412//            fmt.Println(page)
3413//            return pageNum <= 3
3414//        })
3415//
3416func (c *DocDB) DescribeEventsPages(input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool) error {
3417	return c.DescribeEventsPagesWithContext(aws.BackgroundContext(), input, fn)
3418}
3419
3420// DescribeEventsPagesWithContext same as DescribeEventsPages except
3421// it takes a Context and allows setting request options on the pages.
3422//
3423// The context must be non-nil and will be used for request cancellation. If
3424// the context is nil a panic will occur. In the future the SDK may create
3425// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3426// for more information on using Contexts.
3427func (c *DocDB) DescribeEventsPagesWithContext(ctx aws.Context, input *DescribeEventsInput, fn func(*DescribeEventsOutput, bool) bool, opts ...request.Option) error {
3428	p := request.Pagination{
3429		NewRequest: func() (*request.Request, error) {
3430			var inCpy *DescribeEventsInput
3431			if input != nil {
3432				tmp := *input
3433				inCpy = &tmp
3434			}
3435			req, _ := c.DescribeEventsRequest(inCpy)
3436			req.SetContext(ctx)
3437			req.ApplyOptions(opts...)
3438			return req, nil
3439		},
3440	}
3441
3442	for p.Next() {
3443		if !fn(p.Page().(*DescribeEventsOutput), !p.HasNextPage()) {
3444			break
3445		}
3446	}
3447
3448	return p.Err()
3449}
3450
3451const opDescribeGlobalClusters = "DescribeGlobalClusters"
3452
3453// DescribeGlobalClustersRequest generates a "aws/request.Request" representing the
3454// client's request for the DescribeGlobalClusters operation. The "output" return
3455// value will be populated with the request's response once the request completes
3456// successfully.
3457//
3458// Use "Send" method on the returned Request to send the API call to the service.
3459// the "output" return value is not valid until after Send returns without error.
3460//
3461// See DescribeGlobalClusters for more information on using the DescribeGlobalClusters
3462// API call, and error handling.
3463//
3464// This method is useful when you want to inject custom logic or configuration
3465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3466//
3467//
3468//    // Example sending a request using the DescribeGlobalClustersRequest method.
3469//    req, resp := client.DescribeGlobalClustersRequest(params)
3470//
3471//    err := req.Send()
3472//    if err == nil { // resp is now filled
3473//        fmt.Println(resp)
3474//    }
3475//
3476// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeGlobalClusters
3477func (c *DocDB) DescribeGlobalClustersRequest(input *DescribeGlobalClustersInput) (req *request.Request, output *DescribeGlobalClustersOutput) {
3478	op := &request.Operation{
3479		Name:       opDescribeGlobalClusters,
3480		HTTPMethod: "POST",
3481		HTTPPath:   "/",
3482		Paginator: &request.Paginator{
3483			InputTokens:     []string{"Marker"},
3484			OutputTokens:    []string{"Marker"},
3485			LimitToken:      "MaxRecords",
3486			TruncationToken: "",
3487		},
3488	}
3489
3490	if input == nil {
3491		input = &DescribeGlobalClustersInput{}
3492	}
3493
3494	output = &DescribeGlobalClustersOutput{}
3495	req = c.newRequest(op, input, output)
3496	return
3497}
3498
3499// DescribeGlobalClusters API operation for Amazon DocumentDB with MongoDB compatibility.
3500//
3501// Returns information about Amazon DocumentDB global clusters. This API supports
3502// pagination.
3503//
3504// This action only applies to Amazon DocumentDB clusters.
3505//
3506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3507// with awserr.Error's Code and Message methods to get detailed information about
3508// the error.
3509//
3510// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3511// API operation DescribeGlobalClusters for usage and error information.
3512//
3513// Returned Error Codes:
3514//   * ErrCodeGlobalClusterNotFoundFault "GlobalClusterNotFoundFault"
3515//   The GlobalClusterIdentifier doesn't refer to an existing global cluster.
3516//
3517// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeGlobalClusters
3518func (c *DocDB) DescribeGlobalClusters(input *DescribeGlobalClustersInput) (*DescribeGlobalClustersOutput, error) {
3519	req, out := c.DescribeGlobalClustersRequest(input)
3520	return out, req.Send()
3521}
3522
3523// DescribeGlobalClustersWithContext is the same as DescribeGlobalClusters with the addition of
3524// the ability to pass a context and additional request options.
3525//
3526// See DescribeGlobalClusters for details on how to use this API operation.
3527//
3528// The context must be non-nil and will be used for request cancellation. If
3529// the context is nil a panic will occur. In the future the SDK may create
3530// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3531// for more information on using Contexts.
3532func (c *DocDB) DescribeGlobalClustersWithContext(ctx aws.Context, input *DescribeGlobalClustersInput, opts ...request.Option) (*DescribeGlobalClustersOutput, error) {
3533	req, out := c.DescribeGlobalClustersRequest(input)
3534	req.SetContext(ctx)
3535	req.ApplyOptions(opts...)
3536	return out, req.Send()
3537}
3538
3539// DescribeGlobalClustersPages iterates over the pages of a DescribeGlobalClusters operation,
3540// calling the "fn" function with the response data for each page. To stop
3541// iterating, return false from the fn function.
3542//
3543// See DescribeGlobalClusters method for more information on how to use this operation.
3544//
3545// Note: This operation can generate multiple requests to a service.
3546//
3547//    // Example iterating over at most 3 pages of a DescribeGlobalClusters operation.
3548//    pageNum := 0
3549//    err := client.DescribeGlobalClustersPages(params,
3550//        func(page *docdb.DescribeGlobalClustersOutput, lastPage bool) bool {
3551//            pageNum++
3552//            fmt.Println(page)
3553//            return pageNum <= 3
3554//        })
3555//
3556func (c *DocDB) DescribeGlobalClustersPages(input *DescribeGlobalClustersInput, fn func(*DescribeGlobalClustersOutput, bool) bool) error {
3557	return c.DescribeGlobalClustersPagesWithContext(aws.BackgroundContext(), input, fn)
3558}
3559
3560// DescribeGlobalClustersPagesWithContext same as DescribeGlobalClustersPages except
3561// it takes a Context and allows setting request options on the pages.
3562//
3563// The context must be non-nil and will be used for request cancellation. If
3564// the context is nil a panic will occur. In the future the SDK may create
3565// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3566// for more information on using Contexts.
3567func (c *DocDB) DescribeGlobalClustersPagesWithContext(ctx aws.Context, input *DescribeGlobalClustersInput, fn func(*DescribeGlobalClustersOutput, bool) bool, opts ...request.Option) error {
3568	p := request.Pagination{
3569		NewRequest: func() (*request.Request, error) {
3570			var inCpy *DescribeGlobalClustersInput
3571			if input != nil {
3572				tmp := *input
3573				inCpy = &tmp
3574			}
3575			req, _ := c.DescribeGlobalClustersRequest(inCpy)
3576			req.SetContext(ctx)
3577			req.ApplyOptions(opts...)
3578			return req, nil
3579		},
3580	}
3581
3582	for p.Next() {
3583		if !fn(p.Page().(*DescribeGlobalClustersOutput), !p.HasNextPage()) {
3584			break
3585		}
3586	}
3587
3588	return p.Err()
3589}
3590
3591const opDescribeOrderableDBInstanceOptions = "DescribeOrderableDBInstanceOptions"
3592
3593// DescribeOrderableDBInstanceOptionsRequest generates a "aws/request.Request" representing the
3594// client's request for the DescribeOrderableDBInstanceOptions operation. The "output" return
3595// value will be populated with the request's response once the request completes
3596// successfully.
3597//
3598// Use "Send" method on the returned Request to send the API call to the service.
3599// the "output" return value is not valid until after Send returns without error.
3600//
3601// See DescribeOrderableDBInstanceOptions for more information on using the DescribeOrderableDBInstanceOptions
3602// API call, and error handling.
3603//
3604// This method is useful when you want to inject custom logic or configuration
3605// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3606//
3607//
3608//    // Example sending a request using the DescribeOrderableDBInstanceOptionsRequest method.
3609//    req, resp := client.DescribeOrderableDBInstanceOptionsRequest(params)
3610//
3611//    err := req.Send()
3612//    if err == nil { // resp is now filled
3613//        fmt.Println(resp)
3614//    }
3615//
3616// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeOrderableDBInstanceOptions
3617func (c *DocDB) DescribeOrderableDBInstanceOptionsRequest(input *DescribeOrderableDBInstanceOptionsInput) (req *request.Request, output *DescribeOrderableDBInstanceOptionsOutput) {
3618	op := &request.Operation{
3619		Name:       opDescribeOrderableDBInstanceOptions,
3620		HTTPMethod: "POST",
3621		HTTPPath:   "/",
3622		Paginator: &request.Paginator{
3623			InputTokens:     []string{"Marker"},
3624			OutputTokens:    []string{"Marker"},
3625			LimitToken:      "MaxRecords",
3626			TruncationToken: "",
3627		},
3628	}
3629
3630	if input == nil {
3631		input = &DescribeOrderableDBInstanceOptionsInput{}
3632	}
3633
3634	output = &DescribeOrderableDBInstanceOptionsOutput{}
3635	req = c.newRequest(op, input, output)
3636	return
3637}
3638
3639// DescribeOrderableDBInstanceOptions API operation for Amazon DocumentDB with MongoDB compatibility.
3640//
3641// Returns a list of orderable instance options for the specified engine.
3642//
3643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3644// with awserr.Error's Code and Message methods to get detailed information about
3645// the error.
3646//
3647// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3648// API operation DescribeOrderableDBInstanceOptions for usage and error information.
3649// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeOrderableDBInstanceOptions
3650func (c *DocDB) DescribeOrderableDBInstanceOptions(input *DescribeOrderableDBInstanceOptionsInput) (*DescribeOrderableDBInstanceOptionsOutput, error) {
3651	req, out := c.DescribeOrderableDBInstanceOptionsRequest(input)
3652	return out, req.Send()
3653}
3654
3655// DescribeOrderableDBInstanceOptionsWithContext is the same as DescribeOrderableDBInstanceOptions with the addition of
3656// the ability to pass a context and additional request options.
3657//
3658// See DescribeOrderableDBInstanceOptions for details on how to use this API operation.
3659//
3660// The context must be non-nil and will be used for request cancellation. If
3661// the context is nil a panic will occur. In the future the SDK may create
3662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3663// for more information on using Contexts.
3664func (c *DocDB) DescribeOrderableDBInstanceOptionsWithContext(ctx aws.Context, input *DescribeOrderableDBInstanceOptionsInput, opts ...request.Option) (*DescribeOrderableDBInstanceOptionsOutput, error) {
3665	req, out := c.DescribeOrderableDBInstanceOptionsRequest(input)
3666	req.SetContext(ctx)
3667	req.ApplyOptions(opts...)
3668	return out, req.Send()
3669}
3670
3671// DescribeOrderableDBInstanceOptionsPages iterates over the pages of a DescribeOrderableDBInstanceOptions operation,
3672// calling the "fn" function with the response data for each page. To stop
3673// iterating, return false from the fn function.
3674//
3675// See DescribeOrderableDBInstanceOptions method for more information on how to use this operation.
3676//
3677// Note: This operation can generate multiple requests to a service.
3678//
3679//    // Example iterating over at most 3 pages of a DescribeOrderableDBInstanceOptions operation.
3680//    pageNum := 0
3681//    err := client.DescribeOrderableDBInstanceOptionsPages(params,
3682//        func(page *docdb.DescribeOrderableDBInstanceOptionsOutput, lastPage bool) bool {
3683//            pageNum++
3684//            fmt.Println(page)
3685//            return pageNum <= 3
3686//        })
3687//
3688func (c *DocDB) DescribeOrderableDBInstanceOptionsPages(input *DescribeOrderableDBInstanceOptionsInput, fn func(*DescribeOrderableDBInstanceOptionsOutput, bool) bool) error {
3689	return c.DescribeOrderableDBInstanceOptionsPagesWithContext(aws.BackgroundContext(), input, fn)
3690}
3691
3692// DescribeOrderableDBInstanceOptionsPagesWithContext same as DescribeOrderableDBInstanceOptionsPages except
3693// it takes a Context and allows setting request options on the pages.
3694//
3695// The context must be non-nil and will be used for request cancellation. If
3696// the context is nil a panic will occur. In the future the SDK may create
3697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3698// for more information on using Contexts.
3699func (c *DocDB) DescribeOrderableDBInstanceOptionsPagesWithContext(ctx aws.Context, input *DescribeOrderableDBInstanceOptionsInput, fn func(*DescribeOrderableDBInstanceOptionsOutput, bool) bool, opts ...request.Option) error {
3700	p := request.Pagination{
3701		NewRequest: func() (*request.Request, error) {
3702			var inCpy *DescribeOrderableDBInstanceOptionsInput
3703			if input != nil {
3704				tmp := *input
3705				inCpy = &tmp
3706			}
3707			req, _ := c.DescribeOrderableDBInstanceOptionsRequest(inCpy)
3708			req.SetContext(ctx)
3709			req.ApplyOptions(opts...)
3710			return req, nil
3711		},
3712	}
3713
3714	for p.Next() {
3715		if !fn(p.Page().(*DescribeOrderableDBInstanceOptionsOutput), !p.HasNextPage()) {
3716			break
3717		}
3718	}
3719
3720	return p.Err()
3721}
3722
3723const opDescribePendingMaintenanceActions = "DescribePendingMaintenanceActions"
3724
3725// DescribePendingMaintenanceActionsRequest generates a "aws/request.Request" representing the
3726// client's request for the DescribePendingMaintenanceActions operation. The "output" return
3727// value will be populated with the request's response once the request completes
3728// successfully.
3729//
3730// Use "Send" method on the returned Request to send the API call to the service.
3731// the "output" return value is not valid until after Send returns without error.
3732//
3733// See DescribePendingMaintenanceActions for more information on using the DescribePendingMaintenanceActions
3734// API call, and error handling.
3735//
3736// This method is useful when you want to inject custom logic or configuration
3737// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3738//
3739//
3740//    // Example sending a request using the DescribePendingMaintenanceActionsRequest method.
3741//    req, resp := client.DescribePendingMaintenanceActionsRequest(params)
3742//
3743//    err := req.Send()
3744//    if err == nil { // resp is now filled
3745//        fmt.Println(resp)
3746//    }
3747//
3748// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribePendingMaintenanceActions
3749func (c *DocDB) DescribePendingMaintenanceActionsRequest(input *DescribePendingMaintenanceActionsInput) (req *request.Request, output *DescribePendingMaintenanceActionsOutput) {
3750	op := &request.Operation{
3751		Name:       opDescribePendingMaintenanceActions,
3752		HTTPMethod: "POST",
3753		HTTPPath:   "/",
3754		Paginator: &request.Paginator{
3755			InputTokens:     []string{"Marker"},
3756			OutputTokens:    []string{"Marker"},
3757			LimitToken:      "MaxRecords",
3758			TruncationToken: "",
3759		},
3760	}
3761
3762	if input == nil {
3763		input = &DescribePendingMaintenanceActionsInput{}
3764	}
3765
3766	output = &DescribePendingMaintenanceActionsOutput{}
3767	req = c.newRequest(op, input, output)
3768	return
3769}
3770
3771// DescribePendingMaintenanceActions API operation for Amazon DocumentDB with MongoDB compatibility.
3772//
3773// Returns a list of resources (for example, instances) that have at least one
3774// pending maintenance action.
3775//
3776// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3777// with awserr.Error's Code and Message methods to get detailed information about
3778// the error.
3779//
3780// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3781// API operation DescribePendingMaintenanceActions for usage and error information.
3782//
3783// Returned Error Codes:
3784//   * ErrCodeResourceNotFoundFault "ResourceNotFoundFault"
3785//   The specified resource ID was not found.
3786//
3787// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribePendingMaintenanceActions
3788func (c *DocDB) DescribePendingMaintenanceActions(input *DescribePendingMaintenanceActionsInput) (*DescribePendingMaintenanceActionsOutput, error) {
3789	req, out := c.DescribePendingMaintenanceActionsRequest(input)
3790	return out, req.Send()
3791}
3792
3793// DescribePendingMaintenanceActionsWithContext is the same as DescribePendingMaintenanceActions with the addition of
3794// the ability to pass a context and additional request options.
3795//
3796// See DescribePendingMaintenanceActions for details on how to use this API operation.
3797//
3798// The context must be non-nil and will be used for request cancellation. If
3799// the context is nil a panic will occur. In the future the SDK may create
3800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3801// for more information on using Contexts.
3802func (c *DocDB) DescribePendingMaintenanceActionsWithContext(ctx aws.Context, input *DescribePendingMaintenanceActionsInput, opts ...request.Option) (*DescribePendingMaintenanceActionsOutput, error) {
3803	req, out := c.DescribePendingMaintenanceActionsRequest(input)
3804	req.SetContext(ctx)
3805	req.ApplyOptions(opts...)
3806	return out, req.Send()
3807}
3808
3809// DescribePendingMaintenanceActionsPages iterates over the pages of a DescribePendingMaintenanceActions operation,
3810// calling the "fn" function with the response data for each page. To stop
3811// iterating, return false from the fn function.
3812//
3813// See DescribePendingMaintenanceActions method for more information on how to use this operation.
3814//
3815// Note: This operation can generate multiple requests to a service.
3816//
3817//    // Example iterating over at most 3 pages of a DescribePendingMaintenanceActions operation.
3818//    pageNum := 0
3819//    err := client.DescribePendingMaintenanceActionsPages(params,
3820//        func(page *docdb.DescribePendingMaintenanceActionsOutput, lastPage bool) bool {
3821//            pageNum++
3822//            fmt.Println(page)
3823//            return pageNum <= 3
3824//        })
3825//
3826func (c *DocDB) DescribePendingMaintenanceActionsPages(input *DescribePendingMaintenanceActionsInput, fn func(*DescribePendingMaintenanceActionsOutput, bool) bool) error {
3827	return c.DescribePendingMaintenanceActionsPagesWithContext(aws.BackgroundContext(), input, fn)
3828}
3829
3830// DescribePendingMaintenanceActionsPagesWithContext same as DescribePendingMaintenanceActionsPages except
3831// it takes a Context and allows setting request options on the pages.
3832//
3833// The context must be non-nil and will be used for request cancellation. If
3834// the context is nil a panic will occur. In the future the SDK may create
3835// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3836// for more information on using Contexts.
3837func (c *DocDB) DescribePendingMaintenanceActionsPagesWithContext(ctx aws.Context, input *DescribePendingMaintenanceActionsInput, fn func(*DescribePendingMaintenanceActionsOutput, bool) bool, opts ...request.Option) error {
3838	p := request.Pagination{
3839		NewRequest: func() (*request.Request, error) {
3840			var inCpy *DescribePendingMaintenanceActionsInput
3841			if input != nil {
3842				tmp := *input
3843				inCpy = &tmp
3844			}
3845			req, _ := c.DescribePendingMaintenanceActionsRequest(inCpy)
3846			req.SetContext(ctx)
3847			req.ApplyOptions(opts...)
3848			return req, nil
3849		},
3850	}
3851
3852	for p.Next() {
3853		if !fn(p.Page().(*DescribePendingMaintenanceActionsOutput), !p.HasNextPage()) {
3854			break
3855		}
3856	}
3857
3858	return p.Err()
3859}
3860
3861const opFailoverDBCluster = "FailoverDBCluster"
3862
3863// FailoverDBClusterRequest generates a "aws/request.Request" representing the
3864// client's request for the FailoverDBCluster operation. The "output" return
3865// value will be populated with the request's response once the request completes
3866// successfully.
3867//
3868// Use "Send" method on the returned Request to send the API call to the service.
3869// the "output" return value is not valid until after Send returns without error.
3870//
3871// See FailoverDBCluster for more information on using the FailoverDBCluster
3872// API call, and error handling.
3873//
3874// This method is useful when you want to inject custom logic or configuration
3875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3876//
3877//
3878//    // Example sending a request using the FailoverDBClusterRequest method.
3879//    req, resp := client.FailoverDBClusterRequest(params)
3880//
3881//    err := req.Send()
3882//    if err == nil { // resp is now filled
3883//        fmt.Println(resp)
3884//    }
3885//
3886// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/FailoverDBCluster
3887func (c *DocDB) FailoverDBClusterRequest(input *FailoverDBClusterInput) (req *request.Request, output *FailoverDBClusterOutput) {
3888	op := &request.Operation{
3889		Name:       opFailoverDBCluster,
3890		HTTPMethod: "POST",
3891		HTTPPath:   "/",
3892	}
3893
3894	if input == nil {
3895		input = &FailoverDBClusterInput{}
3896	}
3897
3898	output = &FailoverDBClusterOutput{}
3899	req = c.newRequest(op, input, output)
3900	return
3901}
3902
3903// FailoverDBCluster API operation for Amazon DocumentDB with MongoDB compatibility.
3904//
3905// Forces a failover for a cluster.
3906//
3907// A failover for a cluster promotes one of the Amazon DocumentDB replicas (read-only
3908// instances) in the cluster to be the primary instance (the cluster writer).
3909//
3910// If the primary instance fails, Amazon DocumentDB automatically fails over
3911// to an Amazon DocumentDB replica, if one exists. You can force a failover
3912// when you want to simulate a failure of a primary instance for testing.
3913//
3914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3915// with awserr.Error's Code and Message methods to get detailed information about
3916// the error.
3917//
3918// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
3919// API operation FailoverDBCluster for usage and error information.
3920//
3921// Returned Error Codes:
3922//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
3923//   DBClusterIdentifier doesn't refer to an existing cluster.
3924//
3925//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
3926//   The cluster isn't in a valid state.
3927//
3928//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
3929//   The specified instance isn't in the available state.
3930//
3931// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/FailoverDBCluster
3932func (c *DocDB) FailoverDBCluster(input *FailoverDBClusterInput) (*FailoverDBClusterOutput, error) {
3933	req, out := c.FailoverDBClusterRequest(input)
3934	return out, req.Send()
3935}
3936
3937// FailoverDBClusterWithContext is the same as FailoverDBCluster with the addition of
3938// the ability to pass a context and additional request options.
3939//
3940// See FailoverDBCluster for details on how to use this API operation.
3941//
3942// The context must be non-nil and will be used for request cancellation. If
3943// the context is nil a panic will occur. In the future the SDK may create
3944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3945// for more information on using Contexts.
3946func (c *DocDB) FailoverDBClusterWithContext(ctx aws.Context, input *FailoverDBClusterInput, opts ...request.Option) (*FailoverDBClusterOutput, error) {
3947	req, out := c.FailoverDBClusterRequest(input)
3948	req.SetContext(ctx)
3949	req.ApplyOptions(opts...)
3950	return out, req.Send()
3951}
3952
3953const opListTagsForResource = "ListTagsForResource"
3954
3955// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3956// client's request for the ListTagsForResource operation. The "output" return
3957// value will be populated with the request's response once the request completes
3958// successfully.
3959//
3960// Use "Send" method on the returned Request to send the API call to the service.
3961// the "output" return value is not valid until after Send returns without error.
3962//
3963// See ListTagsForResource for more information on using the ListTagsForResource
3964// API call, and error handling.
3965//
3966// This method is useful when you want to inject custom logic or configuration
3967// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3968//
3969//
3970//    // Example sending a request using the ListTagsForResourceRequest method.
3971//    req, resp := client.ListTagsForResourceRequest(params)
3972//
3973//    err := req.Send()
3974//    if err == nil { // resp is now filled
3975//        fmt.Println(resp)
3976//    }
3977//
3978// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ListTagsForResource
3979func (c *DocDB) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3980	op := &request.Operation{
3981		Name:       opListTagsForResource,
3982		HTTPMethod: "POST",
3983		HTTPPath:   "/",
3984	}
3985
3986	if input == nil {
3987		input = &ListTagsForResourceInput{}
3988	}
3989
3990	output = &ListTagsForResourceOutput{}
3991	req = c.newRequest(op, input, output)
3992	return
3993}
3994
3995// ListTagsForResource API operation for Amazon DocumentDB with MongoDB compatibility.
3996//
3997// Lists all tags on an Amazon DocumentDB resource.
3998//
3999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4000// with awserr.Error's Code and Message methods to get detailed information about
4001// the error.
4002//
4003// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4004// API operation ListTagsForResource for usage and error information.
4005//
4006// Returned Error Codes:
4007//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
4008//   DBInstanceIdentifier doesn't refer to an existing instance.
4009//
4010//   * ErrCodeDBSnapshotNotFoundFault "DBSnapshotNotFound"
4011//   DBSnapshotIdentifier doesn't refer to an existing snapshot.
4012//
4013//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
4014//   DBClusterIdentifier doesn't refer to an existing cluster.
4015//
4016// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ListTagsForResource
4017func (c *DocDB) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4018	req, out := c.ListTagsForResourceRequest(input)
4019	return out, req.Send()
4020}
4021
4022// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4023// the ability to pass a context and additional request options.
4024//
4025// See ListTagsForResource for details on how to use this API operation.
4026//
4027// The context must be non-nil and will be used for request cancellation. If
4028// the context is nil a panic will occur. In the future the SDK may create
4029// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4030// for more information on using Contexts.
4031func (c *DocDB) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4032	req, out := c.ListTagsForResourceRequest(input)
4033	req.SetContext(ctx)
4034	req.ApplyOptions(opts...)
4035	return out, req.Send()
4036}
4037
4038const opModifyDBCluster = "ModifyDBCluster"
4039
4040// ModifyDBClusterRequest generates a "aws/request.Request" representing the
4041// client's request for the ModifyDBCluster operation. The "output" return
4042// value will be populated with the request's response once the request completes
4043// successfully.
4044//
4045// Use "Send" method on the returned Request to send the API call to the service.
4046// the "output" return value is not valid until after Send returns without error.
4047//
4048// See ModifyDBCluster for more information on using the ModifyDBCluster
4049// API call, and error handling.
4050//
4051// This method is useful when you want to inject custom logic or configuration
4052// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4053//
4054//
4055//    // Example sending a request using the ModifyDBClusterRequest method.
4056//    req, resp := client.ModifyDBClusterRequest(params)
4057//
4058//    err := req.Send()
4059//    if err == nil { // resp is now filled
4060//        fmt.Println(resp)
4061//    }
4062//
4063// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBCluster
4064func (c *DocDB) ModifyDBClusterRequest(input *ModifyDBClusterInput) (req *request.Request, output *ModifyDBClusterOutput) {
4065	op := &request.Operation{
4066		Name:       opModifyDBCluster,
4067		HTTPMethod: "POST",
4068		HTTPPath:   "/",
4069	}
4070
4071	if input == nil {
4072		input = &ModifyDBClusterInput{}
4073	}
4074
4075	output = &ModifyDBClusterOutput{}
4076	req = c.newRequest(op, input, output)
4077	return
4078}
4079
4080// ModifyDBCluster API operation for Amazon DocumentDB with MongoDB compatibility.
4081//
4082// Modifies a setting for an Amazon DocumentDB cluster. You can change one or
4083// more database configuration parameters by specifying these parameters and
4084// the new values in the request.
4085//
4086// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4087// with awserr.Error's Code and Message methods to get detailed information about
4088// the error.
4089//
4090// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4091// API operation ModifyDBCluster for usage and error information.
4092//
4093// Returned Error Codes:
4094//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
4095//   DBClusterIdentifier doesn't refer to an existing cluster.
4096//
4097//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
4098//   The cluster isn't in a valid state.
4099//
4100//   * ErrCodeStorageQuotaExceededFault "StorageQuotaExceeded"
4101//   The request would cause you to exceed the allowed amount of storage available
4102//   across all instances.
4103//
4104//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
4105//   DBSubnetGroupName doesn't refer to an existing subnet group.
4106//
4107//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
4108//   The subnet group doesn't cover all Availability Zones after it is created
4109//   because of changes that were made.
4110//
4111//   * ErrCodeInvalidDBSubnetGroupStateFault "InvalidDBSubnetGroupStateFault"
4112//   The subnet group can't be deleted because it's in use.
4113//
4114//   * ErrCodeInvalidSubnet "InvalidSubnet"
4115//   The requested subnet is not valid, or multiple subnets were requested that
4116//   are not all in a common virtual private cloud (VPC).
4117//
4118//   * ErrCodeDBClusterParameterGroupNotFoundFault "DBClusterParameterGroupNotFound"
4119//   DBClusterParameterGroupName doesn't refer to an existing cluster parameter
4120//   group.
4121//
4122//   * ErrCodeInvalidDBSecurityGroupStateFault "InvalidDBSecurityGroupState"
4123//   The state of the security group doesn't allow deletion.
4124//
4125//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
4126//   The specified instance isn't in the available state.
4127//
4128//   * ErrCodeDBClusterAlreadyExistsFault "DBClusterAlreadyExistsFault"
4129//   You already have a cluster with the given identifier.
4130//
4131// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBCluster
4132func (c *DocDB) ModifyDBCluster(input *ModifyDBClusterInput) (*ModifyDBClusterOutput, error) {
4133	req, out := c.ModifyDBClusterRequest(input)
4134	return out, req.Send()
4135}
4136
4137// ModifyDBClusterWithContext is the same as ModifyDBCluster with the addition of
4138// the ability to pass a context and additional request options.
4139//
4140// See ModifyDBCluster for details on how to use this API operation.
4141//
4142// The context must be non-nil and will be used for request cancellation. If
4143// the context is nil a panic will occur. In the future the SDK may create
4144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4145// for more information on using Contexts.
4146func (c *DocDB) ModifyDBClusterWithContext(ctx aws.Context, input *ModifyDBClusterInput, opts ...request.Option) (*ModifyDBClusterOutput, error) {
4147	req, out := c.ModifyDBClusterRequest(input)
4148	req.SetContext(ctx)
4149	req.ApplyOptions(opts...)
4150	return out, req.Send()
4151}
4152
4153const opModifyDBClusterParameterGroup = "ModifyDBClusterParameterGroup"
4154
4155// ModifyDBClusterParameterGroupRequest generates a "aws/request.Request" representing the
4156// client's request for the ModifyDBClusterParameterGroup operation. The "output" return
4157// value will be populated with the request's response once the request completes
4158// successfully.
4159//
4160// Use "Send" method on the returned Request to send the API call to the service.
4161// the "output" return value is not valid until after Send returns without error.
4162//
4163// See ModifyDBClusterParameterGroup for more information on using the ModifyDBClusterParameterGroup
4164// API call, and error handling.
4165//
4166// This method is useful when you want to inject custom logic or configuration
4167// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4168//
4169//
4170//    // Example sending a request using the ModifyDBClusterParameterGroupRequest method.
4171//    req, resp := client.ModifyDBClusterParameterGroupRequest(params)
4172//
4173//    err := req.Send()
4174//    if err == nil { // resp is now filled
4175//        fmt.Println(resp)
4176//    }
4177//
4178// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterParameterGroup
4179func (c *DocDB) ModifyDBClusterParameterGroupRequest(input *ModifyDBClusterParameterGroupInput) (req *request.Request, output *ModifyDBClusterParameterGroupOutput) {
4180	op := &request.Operation{
4181		Name:       opModifyDBClusterParameterGroup,
4182		HTTPMethod: "POST",
4183		HTTPPath:   "/",
4184	}
4185
4186	if input == nil {
4187		input = &ModifyDBClusterParameterGroupInput{}
4188	}
4189
4190	output = &ModifyDBClusterParameterGroupOutput{}
4191	req = c.newRequest(op, input, output)
4192	return
4193}
4194
4195// ModifyDBClusterParameterGroup API operation for Amazon DocumentDB with MongoDB compatibility.
4196//
4197// Modifies the parameters of a cluster parameter group. To modify more than
4198// one parameter, submit a list of the following: ParameterName, ParameterValue,
4199// and ApplyMethod. A maximum of 20 parameters can be modified in a single request.
4200//
4201// Changes to dynamic parameters are applied immediately. Changes to static
4202// parameters require a reboot or maintenance window before the change can take
4203// effect.
4204//
4205// After you create a cluster parameter group, you should wait at least 5 minutes
4206// before creating your first cluster that uses that cluster parameter group
4207// as the default parameter group. This allows Amazon DocumentDB to fully complete
4208// the create action before the parameter group is used as the default for a
4209// new cluster. This step is especially important for parameters that are critical
4210// when creating the default database for a cluster, such as the character set
4211// for the default database defined by the character_set_database parameter.
4212//
4213// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4214// with awserr.Error's Code and Message methods to get detailed information about
4215// the error.
4216//
4217// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4218// API operation ModifyDBClusterParameterGroup for usage and error information.
4219//
4220// Returned Error Codes:
4221//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
4222//   DBParameterGroupName doesn't refer to an existing parameter group.
4223//
4224//   * ErrCodeInvalidDBParameterGroupStateFault "InvalidDBParameterGroupState"
4225//   The parameter group is in use, or it is in a state that is not valid. If
4226//   you are trying to delete the parameter group, you can't delete it when the
4227//   parameter group is in this state.
4228//
4229// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterParameterGroup
4230func (c *DocDB) ModifyDBClusterParameterGroup(input *ModifyDBClusterParameterGroupInput) (*ModifyDBClusterParameterGroupOutput, error) {
4231	req, out := c.ModifyDBClusterParameterGroupRequest(input)
4232	return out, req.Send()
4233}
4234
4235// ModifyDBClusterParameterGroupWithContext is the same as ModifyDBClusterParameterGroup with the addition of
4236// the ability to pass a context and additional request options.
4237//
4238// See ModifyDBClusterParameterGroup for details on how to use this API operation.
4239//
4240// The context must be non-nil and will be used for request cancellation. If
4241// the context is nil a panic will occur. In the future the SDK may create
4242// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4243// for more information on using Contexts.
4244func (c *DocDB) ModifyDBClusterParameterGroupWithContext(ctx aws.Context, input *ModifyDBClusterParameterGroupInput, opts ...request.Option) (*ModifyDBClusterParameterGroupOutput, error) {
4245	req, out := c.ModifyDBClusterParameterGroupRequest(input)
4246	req.SetContext(ctx)
4247	req.ApplyOptions(opts...)
4248	return out, req.Send()
4249}
4250
4251const opModifyDBClusterSnapshotAttribute = "ModifyDBClusterSnapshotAttribute"
4252
4253// ModifyDBClusterSnapshotAttributeRequest generates a "aws/request.Request" representing the
4254// client's request for the ModifyDBClusterSnapshotAttribute operation. The "output" return
4255// value will be populated with the request's response once the request completes
4256// successfully.
4257//
4258// Use "Send" method on the returned Request to send the API call to the service.
4259// the "output" return value is not valid until after Send returns without error.
4260//
4261// See ModifyDBClusterSnapshotAttribute for more information on using the ModifyDBClusterSnapshotAttribute
4262// API call, and error handling.
4263//
4264// This method is useful when you want to inject custom logic or configuration
4265// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4266//
4267//
4268//    // Example sending a request using the ModifyDBClusterSnapshotAttributeRequest method.
4269//    req, resp := client.ModifyDBClusterSnapshotAttributeRequest(params)
4270//
4271//    err := req.Send()
4272//    if err == nil { // resp is now filled
4273//        fmt.Println(resp)
4274//    }
4275//
4276// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterSnapshotAttribute
4277func (c *DocDB) ModifyDBClusterSnapshotAttributeRequest(input *ModifyDBClusterSnapshotAttributeInput) (req *request.Request, output *ModifyDBClusterSnapshotAttributeOutput) {
4278	op := &request.Operation{
4279		Name:       opModifyDBClusterSnapshotAttribute,
4280		HTTPMethod: "POST",
4281		HTTPPath:   "/",
4282	}
4283
4284	if input == nil {
4285		input = &ModifyDBClusterSnapshotAttributeInput{}
4286	}
4287
4288	output = &ModifyDBClusterSnapshotAttributeOutput{}
4289	req = c.newRequest(op, input, output)
4290	return
4291}
4292
4293// ModifyDBClusterSnapshotAttribute API operation for Amazon DocumentDB with MongoDB compatibility.
4294//
4295// Adds an attribute and values to, or removes an attribute and values from,
4296// a manual cluster snapshot.
4297//
4298// To share a manual cluster snapshot with other accounts, specify restore as
4299// the AttributeName, and use the ValuesToAdd parameter to add a list of IDs
4300// of the accounts that are authorized to restore the manual cluster snapshot.
4301// Use the value all to make the manual cluster snapshot public, which means
4302// that it can be copied or restored by all accounts. Do not add the all value
4303// for any manual cluster snapshots that contain private information that you
4304// don't want available to all accounts. If a manual cluster snapshot is encrypted,
4305// it can be shared, but only by specifying a list of authorized account IDs
4306// for the ValuesToAdd parameter. You can't use all as a value for that parameter
4307// in this case.
4308//
4309// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4310// with awserr.Error's Code and Message methods to get detailed information about
4311// the error.
4312//
4313// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4314// API operation ModifyDBClusterSnapshotAttribute for usage and error information.
4315//
4316// Returned Error Codes:
4317//   * ErrCodeDBClusterSnapshotNotFoundFault "DBClusterSnapshotNotFoundFault"
4318//   DBClusterSnapshotIdentifier doesn't refer to an existing cluster snapshot.
4319//
4320//   * ErrCodeInvalidDBClusterSnapshotStateFault "InvalidDBClusterSnapshotStateFault"
4321//   The provided value isn't a valid cluster snapshot state.
4322//
4323//   * ErrCodeSharedSnapshotQuotaExceededFault "SharedSnapshotQuotaExceeded"
4324//   You have exceeded the maximum number of accounts that you can share a manual
4325//   DB snapshot with.
4326//
4327// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterSnapshotAttribute
4328func (c *DocDB) ModifyDBClusterSnapshotAttribute(input *ModifyDBClusterSnapshotAttributeInput) (*ModifyDBClusterSnapshotAttributeOutput, error) {
4329	req, out := c.ModifyDBClusterSnapshotAttributeRequest(input)
4330	return out, req.Send()
4331}
4332
4333// ModifyDBClusterSnapshotAttributeWithContext is the same as ModifyDBClusterSnapshotAttribute with the addition of
4334// the ability to pass a context and additional request options.
4335//
4336// See ModifyDBClusterSnapshotAttribute for details on how to use this API operation.
4337//
4338// The context must be non-nil and will be used for request cancellation. If
4339// the context is nil a panic will occur. In the future the SDK may create
4340// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4341// for more information on using Contexts.
4342func (c *DocDB) ModifyDBClusterSnapshotAttributeWithContext(ctx aws.Context, input *ModifyDBClusterSnapshotAttributeInput, opts ...request.Option) (*ModifyDBClusterSnapshotAttributeOutput, error) {
4343	req, out := c.ModifyDBClusterSnapshotAttributeRequest(input)
4344	req.SetContext(ctx)
4345	req.ApplyOptions(opts...)
4346	return out, req.Send()
4347}
4348
4349const opModifyDBInstance = "ModifyDBInstance"
4350
4351// ModifyDBInstanceRequest generates a "aws/request.Request" representing the
4352// client's request for the ModifyDBInstance operation. The "output" return
4353// value will be populated with the request's response once the request completes
4354// successfully.
4355//
4356// Use "Send" method on the returned Request to send the API call to the service.
4357// the "output" return value is not valid until after Send returns without error.
4358//
4359// See ModifyDBInstance for more information on using the ModifyDBInstance
4360// API call, and error handling.
4361//
4362// This method is useful when you want to inject custom logic or configuration
4363// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4364//
4365//
4366//    // Example sending a request using the ModifyDBInstanceRequest method.
4367//    req, resp := client.ModifyDBInstanceRequest(params)
4368//
4369//    err := req.Send()
4370//    if err == nil { // resp is now filled
4371//        fmt.Println(resp)
4372//    }
4373//
4374// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBInstance
4375func (c *DocDB) ModifyDBInstanceRequest(input *ModifyDBInstanceInput) (req *request.Request, output *ModifyDBInstanceOutput) {
4376	op := &request.Operation{
4377		Name:       opModifyDBInstance,
4378		HTTPMethod: "POST",
4379		HTTPPath:   "/",
4380	}
4381
4382	if input == nil {
4383		input = &ModifyDBInstanceInput{}
4384	}
4385
4386	output = &ModifyDBInstanceOutput{}
4387	req = c.newRequest(op, input, output)
4388	return
4389}
4390
4391// ModifyDBInstance API operation for Amazon DocumentDB with MongoDB compatibility.
4392//
4393// Modifies settings for an instance. You can change one or more database configuration
4394// parameters by specifying these parameters and the new values in the request.
4395//
4396// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4397// with awserr.Error's Code and Message methods to get detailed information about
4398// the error.
4399//
4400// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4401// API operation ModifyDBInstance for usage and error information.
4402//
4403// Returned Error Codes:
4404//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
4405//   The specified instance isn't in the available state.
4406//
4407//   * ErrCodeInvalidDBSecurityGroupStateFault "InvalidDBSecurityGroupState"
4408//   The state of the security group doesn't allow deletion.
4409//
4410//   * ErrCodeDBInstanceAlreadyExistsFault "DBInstanceAlreadyExists"
4411//   You already have a instance with the given identifier.
4412//
4413//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
4414//   DBInstanceIdentifier doesn't refer to an existing instance.
4415//
4416//   * ErrCodeDBSecurityGroupNotFoundFault "DBSecurityGroupNotFound"
4417//   DBSecurityGroupName doesn't refer to an existing security group.
4418//
4419//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
4420//   DBParameterGroupName doesn't refer to an existing parameter group.
4421//
4422//   * ErrCodeInsufficientDBInstanceCapacityFault "InsufficientDBInstanceCapacity"
4423//   The specified instance class isn't available in the specified Availability
4424//   Zone.
4425//
4426//   * ErrCodeStorageQuotaExceededFault "StorageQuotaExceeded"
4427//   The request would cause you to exceed the allowed amount of storage available
4428//   across all instances.
4429//
4430//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
4431//   The subnet group doesn't cover all Availability Zones after it is created
4432//   because of changes that were made.
4433//
4434//   * ErrCodeDBUpgradeDependencyFailureFault "DBUpgradeDependencyFailure"
4435//   The upgrade failed because a resource that the depends on can't be modified.
4436//
4437//   * ErrCodeStorageTypeNotSupportedFault "StorageTypeNotSupported"
4438//   Storage of the specified StorageType can't be associated with the DB instance.
4439//
4440//   * ErrCodeAuthorizationNotFoundFault "AuthorizationNotFound"
4441//   The specified CIDR IP or Amazon EC2 security group isn't authorized for the
4442//   specified security group.
4443//
4444//   Amazon DocumentDB also might not be authorized to perform necessary actions
4445//   on your behalf using IAM.
4446//
4447//   * ErrCodeCertificateNotFoundFault "CertificateNotFound"
4448//   CertificateIdentifier doesn't refer to an existing certificate.
4449//
4450// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBInstance
4451func (c *DocDB) ModifyDBInstance(input *ModifyDBInstanceInput) (*ModifyDBInstanceOutput, error) {
4452	req, out := c.ModifyDBInstanceRequest(input)
4453	return out, req.Send()
4454}
4455
4456// ModifyDBInstanceWithContext is the same as ModifyDBInstance with the addition of
4457// the ability to pass a context and additional request options.
4458//
4459// See ModifyDBInstance for details on how to use this API operation.
4460//
4461// The context must be non-nil and will be used for request cancellation. If
4462// the context is nil a panic will occur. In the future the SDK may create
4463// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4464// for more information on using Contexts.
4465func (c *DocDB) ModifyDBInstanceWithContext(ctx aws.Context, input *ModifyDBInstanceInput, opts ...request.Option) (*ModifyDBInstanceOutput, error) {
4466	req, out := c.ModifyDBInstanceRequest(input)
4467	req.SetContext(ctx)
4468	req.ApplyOptions(opts...)
4469	return out, req.Send()
4470}
4471
4472const opModifyDBSubnetGroup = "ModifyDBSubnetGroup"
4473
4474// ModifyDBSubnetGroupRequest generates a "aws/request.Request" representing the
4475// client's request for the ModifyDBSubnetGroup operation. The "output" return
4476// value will be populated with the request's response once the request completes
4477// successfully.
4478//
4479// Use "Send" method on the returned Request to send the API call to the service.
4480// the "output" return value is not valid until after Send returns without error.
4481//
4482// See ModifyDBSubnetGroup for more information on using the ModifyDBSubnetGroup
4483// API call, and error handling.
4484//
4485// This method is useful when you want to inject custom logic or configuration
4486// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4487//
4488//
4489//    // Example sending a request using the ModifyDBSubnetGroupRequest method.
4490//    req, resp := client.ModifyDBSubnetGroupRequest(params)
4491//
4492//    err := req.Send()
4493//    if err == nil { // resp is now filled
4494//        fmt.Println(resp)
4495//    }
4496//
4497// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBSubnetGroup
4498func (c *DocDB) ModifyDBSubnetGroupRequest(input *ModifyDBSubnetGroupInput) (req *request.Request, output *ModifyDBSubnetGroupOutput) {
4499	op := &request.Operation{
4500		Name:       opModifyDBSubnetGroup,
4501		HTTPMethod: "POST",
4502		HTTPPath:   "/",
4503	}
4504
4505	if input == nil {
4506		input = &ModifyDBSubnetGroupInput{}
4507	}
4508
4509	output = &ModifyDBSubnetGroupOutput{}
4510	req = c.newRequest(op, input, output)
4511	return
4512}
4513
4514// ModifyDBSubnetGroup API operation for Amazon DocumentDB with MongoDB compatibility.
4515//
4516// Modifies an existing subnet group. subnet groups must contain at least one
4517// subnet in at least two Availability Zones in the Region.
4518//
4519// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4520// with awserr.Error's Code and Message methods to get detailed information about
4521// the error.
4522//
4523// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4524// API operation ModifyDBSubnetGroup for usage and error information.
4525//
4526// Returned Error Codes:
4527//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
4528//   DBSubnetGroupName doesn't refer to an existing subnet group.
4529//
4530//   * ErrCodeDBSubnetQuotaExceededFault "DBSubnetQuotaExceededFault"
4531//   The request would cause you to exceed the allowed number of subnets in a
4532//   subnet group.
4533//
4534//   * ErrCodeSubnetAlreadyInUse "SubnetAlreadyInUse"
4535//   The subnet is already in use in the Availability Zone.
4536//
4537//   * ErrCodeDBSubnetGroupDoesNotCoverEnoughAZs "DBSubnetGroupDoesNotCoverEnoughAZs"
4538//   Subnets in the subnet group should cover at least two Availability Zones
4539//   unless there is only one Availability Zone.
4540//
4541//   * ErrCodeInvalidSubnet "InvalidSubnet"
4542//   The requested subnet is not valid, or multiple subnets were requested that
4543//   are not all in a common virtual private cloud (VPC).
4544//
4545// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBSubnetGroup
4546func (c *DocDB) ModifyDBSubnetGroup(input *ModifyDBSubnetGroupInput) (*ModifyDBSubnetGroupOutput, error) {
4547	req, out := c.ModifyDBSubnetGroupRequest(input)
4548	return out, req.Send()
4549}
4550
4551// ModifyDBSubnetGroupWithContext is the same as ModifyDBSubnetGroup with the addition of
4552// the ability to pass a context and additional request options.
4553//
4554// See ModifyDBSubnetGroup for details on how to use this API operation.
4555//
4556// The context must be non-nil and will be used for request cancellation. If
4557// the context is nil a panic will occur. In the future the SDK may create
4558// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4559// for more information on using Contexts.
4560func (c *DocDB) ModifyDBSubnetGroupWithContext(ctx aws.Context, input *ModifyDBSubnetGroupInput, opts ...request.Option) (*ModifyDBSubnetGroupOutput, error) {
4561	req, out := c.ModifyDBSubnetGroupRequest(input)
4562	req.SetContext(ctx)
4563	req.ApplyOptions(opts...)
4564	return out, req.Send()
4565}
4566
4567const opModifyEventSubscription = "ModifyEventSubscription"
4568
4569// ModifyEventSubscriptionRequest generates a "aws/request.Request" representing the
4570// client's request for the ModifyEventSubscription operation. The "output" return
4571// value will be populated with the request's response once the request completes
4572// successfully.
4573//
4574// Use "Send" method on the returned Request to send the API call to the service.
4575// the "output" return value is not valid until after Send returns without error.
4576//
4577// See ModifyEventSubscription for more information on using the ModifyEventSubscription
4578// API call, and error handling.
4579//
4580// This method is useful when you want to inject custom logic or configuration
4581// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4582//
4583//
4584//    // Example sending a request using the ModifyEventSubscriptionRequest method.
4585//    req, resp := client.ModifyEventSubscriptionRequest(params)
4586//
4587//    err := req.Send()
4588//    if err == nil { // resp is now filled
4589//        fmt.Println(resp)
4590//    }
4591//
4592// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyEventSubscription
4593func (c *DocDB) ModifyEventSubscriptionRequest(input *ModifyEventSubscriptionInput) (req *request.Request, output *ModifyEventSubscriptionOutput) {
4594	op := &request.Operation{
4595		Name:       opModifyEventSubscription,
4596		HTTPMethod: "POST",
4597		HTTPPath:   "/",
4598	}
4599
4600	if input == nil {
4601		input = &ModifyEventSubscriptionInput{}
4602	}
4603
4604	output = &ModifyEventSubscriptionOutput{}
4605	req = c.newRequest(op, input, output)
4606	return
4607}
4608
4609// ModifyEventSubscription API operation for Amazon DocumentDB with MongoDB compatibility.
4610//
4611// Modifies an existing Amazon DocumentDB event notification subscription.
4612//
4613// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4614// with awserr.Error's Code and Message methods to get detailed information about
4615// the error.
4616//
4617// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4618// API operation ModifyEventSubscription for usage and error information.
4619//
4620// Returned Error Codes:
4621//   * ErrCodeEventSubscriptionQuotaExceededFault "EventSubscriptionQuotaExceeded"
4622//   You have reached the maximum number of event subscriptions.
4623//
4624//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
4625//   The subscription name does not exist.
4626//
4627//   * ErrCodeSNSInvalidTopicFault "SNSInvalidTopic"
4628//   Amazon SNS has responded that there is a problem with the specified topic.
4629//
4630//   * ErrCodeSNSNoAuthorizationFault "SNSNoAuthorization"
4631//   You do not have permission to publish to the SNS topic Amazon Resource Name
4632//   (ARN).
4633//
4634//   * ErrCodeSNSTopicArnNotFoundFault "SNSTopicArnNotFound"
4635//   The SNS topic Amazon Resource Name (ARN) does not exist.
4636//
4637//   * ErrCodeSubscriptionCategoryNotFoundFault "SubscriptionCategoryNotFound"
4638//   The provided category does not exist.
4639//
4640// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyEventSubscription
4641func (c *DocDB) ModifyEventSubscription(input *ModifyEventSubscriptionInput) (*ModifyEventSubscriptionOutput, error) {
4642	req, out := c.ModifyEventSubscriptionRequest(input)
4643	return out, req.Send()
4644}
4645
4646// ModifyEventSubscriptionWithContext is the same as ModifyEventSubscription with the addition of
4647// the ability to pass a context and additional request options.
4648//
4649// See ModifyEventSubscription for details on how to use this API operation.
4650//
4651// The context must be non-nil and will be used for request cancellation. If
4652// the context is nil a panic will occur. In the future the SDK may create
4653// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4654// for more information on using Contexts.
4655func (c *DocDB) ModifyEventSubscriptionWithContext(ctx aws.Context, input *ModifyEventSubscriptionInput, opts ...request.Option) (*ModifyEventSubscriptionOutput, error) {
4656	req, out := c.ModifyEventSubscriptionRequest(input)
4657	req.SetContext(ctx)
4658	req.ApplyOptions(opts...)
4659	return out, req.Send()
4660}
4661
4662const opModifyGlobalCluster = "ModifyGlobalCluster"
4663
4664// ModifyGlobalClusterRequest generates a "aws/request.Request" representing the
4665// client's request for the ModifyGlobalCluster operation. The "output" return
4666// value will be populated with the request's response once the request completes
4667// successfully.
4668//
4669// Use "Send" method on the returned Request to send the API call to the service.
4670// the "output" return value is not valid until after Send returns without error.
4671//
4672// See ModifyGlobalCluster for more information on using the ModifyGlobalCluster
4673// API call, and error handling.
4674//
4675// This method is useful when you want to inject custom logic or configuration
4676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4677//
4678//
4679//    // Example sending a request using the ModifyGlobalClusterRequest method.
4680//    req, resp := client.ModifyGlobalClusterRequest(params)
4681//
4682//    err := req.Send()
4683//    if err == nil { // resp is now filled
4684//        fmt.Println(resp)
4685//    }
4686//
4687// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyGlobalCluster
4688func (c *DocDB) ModifyGlobalClusterRequest(input *ModifyGlobalClusterInput) (req *request.Request, output *ModifyGlobalClusterOutput) {
4689	op := &request.Operation{
4690		Name:       opModifyGlobalCluster,
4691		HTTPMethod: "POST",
4692		HTTPPath:   "/",
4693	}
4694
4695	if input == nil {
4696		input = &ModifyGlobalClusterInput{}
4697	}
4698
4699	output = &ModifyGlobalClusterOutput{}
4700	req = c.newRequest(op, input, output)
4701	return
4702}
4703
4704// ModifyGlobalCluster API operation for Amazon DocumentDB with MongoDB compatibility.
4705//
4706// Modify a setting for an Amazon DocumentDB global cluster. You can change
4707// one or more configuration parameters (for example: deletion protection),
4708// or the global cluster identifier by specifying these parameters and the new
4709// values in the request.
4710//
4711// This action only applies to Amazon DocumentDB clusters.
4712//
4713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4714// with awserr.Error's Code and Message methods to get detailed information about
4715// the error.
4716//
4717// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4718// API operation ModifyGlobalCluster for usage and error information.
4719//
4720// Returned Error Codes:
4721//   * ErrCodeGlobalClusterNotFoundFault "GlobalClusterNotFoundFault"
4722//   The GlobalClusterIdentifier doesn't refer to an existing global cluster.
4723//
4724//   * ErrCodeInvalidGlobalClusterStateFault "InvalidGlobalClusterStateFault"
4725//   The requested operation can't be performed while the cluster is in this state.
4726//
4727// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyGlobalCluster
4728func (c *DocDB) ModifyGlobalCluster(input *ModifyGlobalClusterInput) (*ModifyGlobalClusterOutput, error) {
4729	req, out := c.ModifyGlobalClusterRequest(input)
4730	return out, req.Send()
4731}
4732
4733// ModifyGlobalClusterWithContext is the same as ModifyGlobalCluster with the addition of
4734// the ability to pass a context and additional request options.
4735//
4736// See ModifyGlobalCluster for details on how to use this API operation.
4737//
4738// The context must be non-nil and will be used for request cancellation. If
4739// the context is nil a panic will occur. In the future the SDK may create
4740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4741// for more information on using Contexts.
4742func (c *DocDB) ModifyGlobalClusterWithContext(ctx aws.Context, input *ModifyGlobalClusterInput, opts ...request.Option) (*ModifyGlobalClusterOutput, error) {
4743	req, out := c.ModifyGlobalClusterRequest(input)
4744	req.SetContext(ctx)
4745	req.ApplyOptions(opts...)
4746	return out, req.Send()
4747}
4748
4749const opRebootDBInstance = "RebootDBInstance"
4750
4751// RebootDBInstanceRequest generates a "aws/request.Request" representing the
4752// client's request for the RebootDBInstance operation. The "output" return
4753// value will be populated with the request's response once the request completes
4754// successfully.
4755//
4756// Use "Send" method on the returned Request to send the API call to the service.
4757// the "output" return value is not valid until after Send returns without error.
4758//
4759// See RebootDBInstance for more information on using the RebootDBInstance
4760// API call, and error handling.
4761//
4762// This method is useful when you want to inject custom logic or configuration
4763// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4764//
4765//
4766//    // Example sending a request using the RebootDBInstanceRequest method.
4767//    req, resp := client.RebootDBInstanceRequest(params)
4768//
4769//    err := req.Send()
4770//    if err == nil { // resp is now filled
4771//        fmt.Println(resp)
4772//    }
4773//
4774// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RebootDBInstance
4775func (c *DocDB) RebootDBInstanceRequest(input *RebootDBInstanceInput) (req *request.Request, output *RebootDBInstanceOutput) {
4776	op := &request.Operation{
4777		Name:       opRebootDBInstance,
4778		HTTPMethod: "POST",
4779		HTTPPath:   "/",
4780	}
4781
4782	if input == nil {
4783		input = &RebootDBInstanceInput{}
4784	}
4785
4786	output = &RebootDBInstanceOutput{}
4787	req = c.newRequest(op, input, output)
4788	return
4789}
4790
4791// RebootDBInstance API operation for Amazon DocumentDB with MongoDB compatibility.
4792//
4793// You might need to reboot your instance, usually for maintenance reasons.
4794// For example, if you make certain changes, or if you change the cluster parameter
4795// group that is associated with the instance, you must reboot the instance
4796// for the changes to take effect.
4797//
4798// Rebooting an instance restarts the database engine service. Rebooting an
4799// instance results in a momentary outage, during which the instance status
4800// is set to rebooting.
4801//
4802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4803// with awserr.Error's Code and Message methods to get detailed information about
4804// the error.
4805//
4806// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4807// API operation RebootDBInstance for usage and error information.
4808//
4809// Returned Error Codes:
4810//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
4811//   The specified instance isn't in the available state.
4812//
4813//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
4814//   DBInstanceIdentifier doesn't refer to an existing instance.
4815//
4816// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RebootDBInstance
4817func (c *DocDB) RebootDBInstance(input *RebootDBInstanceInput) (*RebootDBInstanceOutput, error) {
4818	req, out := c.RebootDBInstanceRequest(input)
4819	return out, req.Send()
4820}
4821
4822// RebootDBInstanceWithContext is the same as RebootDBInstance with the addition of
4823// the ability to pass a context and additional request options.
4824//
4825// See RebootDBInstance for details on how to use this API operation.
4826//
4827// The context must be non-nil and will be used for request cancellation. If
4828// the context is nil a panic will occur. In the future the SDK may create
4829// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4830// for more information on using Contexts.
4831func (c *DocDB) RebootDBInstanceWithContext(ctx aws.Context, input *RebootDBInstanceInput, opts ...request.Option) (*RebootDBInstanceOutput, error) {
4832	req, out := c.RebootDBInstanceRequest(input)
4833	req.SetContext(ctx)
4834	req.ApplyOptions(opts...)
4835	return out, req.Send()
4836}
4837
4838const opRemoveFromGlobalCluster = "RemoveFromGlobalCluster"
4839
4840// RemoveFromGlobalClusterRequest generates a "aws/request.Request" representing the
4841// client's request for the RemoveFromGlobalCluster operation. The "output" return
4842// value will be populated with the request's response once the request completes
4843// successfully.
4844//
4845// Use "Send" method on the returned Request to send the API call to the service.
4846// the "output" return value is not valid until after Send returns without error.
4847//
4848// See RemoveFromGlobalCluster for more information on using the RemoveFromGlobalCluster
4849// API call, and error handling.
4850//
4851// This method is useful when you want to inject custom logic or configuration
4852// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4853//
4854//
4855//    // Example sending a request using the RemoveFromGlobalClusterRequest method.
4856//    req, resp := client.RemoveFromGlobalClusterRequest(params)
4857//
4858//    err := req.Send()
4859//    if err == nil { // resp is now filled
4860//        fmt.Println(resp)
4861//    }
4862//
4863// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveFromGlobalCluster
4864func (c *DocDB) RemoveFromGlobalClusterRequest(input *RemoveFromGlobalClusterInput) (req *request.Request, output *RemoveFromGlobalClusterOutput) {
4865	op := &request.Operation{
4866		Name:       opRemoveFromGlobalCluster,
4867		HTTPMethod: "POST",
4868		HTTPPath:   "/",
4869	}
4870
4871	if input == nil {
4872		input = &RemoveFromGlobalClusterInput{}
4873	}
4874
4875	output = &RemoveFromGlobalClusterOutput{}
4876	req = c.newRequest(op, input, output)
4877	return
4878}
4879
4880// RemoveFromGlobalCluster API operation for Amazon DocumentDB with MongoDB compatibility.
4881//
4882// Detaches an Amazon DocumentDB secondary cluster from a global cluster. The
4883// cluster becomes a standalone cluster with read-write capability instead of
4884// being read-only and receiving data from a primary in a different region.
4885//
4886// This action only applies to Amazon DocumentDB clusters.
4887//
4888// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4889// with awserr.Error's Code and Message methods to get detailed information about
4890// the error.
4891//
4892// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4893// API operation RemoveFromGlobalCluster for usage and error information.
4894//
4895// Returned Error Codes:
4896//   * ErrCodeGlobalClusterNotFoundFault "GlobalClusterNotFoundFault"
4897//   The GlobalClusterIdentifier doesn't refer to an existing global cluster.
4898//
4899//   * ErrCodeInvalidGlobalClusterStateFault "InvalidGlobalClusterStateFault"
4900//   The requested operation can't be performed while the cluster is in this state.
4901//
4902//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
4903//   DBClusterIdentifier doesn't refer to an existing cluster.
4904//
4905// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveFromGlobalCluster
4906func (c *DocDB) RemoveFromGlobalCluster(input *RemoveFromGlobalClusterInput) (*RemoveFromGlobalClusterOutput, error) {
4907	req, out := c.RemoveFromGlobalClusterRequest(input)
4908	return out, req.Send()
4909}
4910
4911// RemoveFromGlobalClusterWithContext is the same as RemoveFromGlobalCluster with the addition of
4912// the ability to pass a context and additional request options.
4913//
4914// See RemoveFromGlobalCluster for details on how to use this API operation.
4915//
4916// The context must be non-nil and will be used for request cancellation. If
4917// the context is nil a panic will occur. In the future the SDK may create
4918// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4919// for more information on using Contexts.
4920func (c *DocDB) RemoveFromGlobalClusterWithContext(ctx aws.Context, input *RemoveFromGlobalClusterInput, opts ...request.Option) (*RemoveFromGlobalClusterOutput, error) {
4921	req, out := c.RemoveFromGlobalClusterRequest(input)
4922	req.SetContext(ctx)
4923	req.ApplyOptions(opts...)
4924	return out, req.Send()
4925}
4926
4927const opRemoveSourceIdentifierFromSubscription = "RemoveSourceIdentifierFromSubscription"
4928
4929// RemoveSourceIdentifierFromSubscriptionRequest generates a "aws/request.Request" representing the
4930// client's request for the RemoveSourceIdentifierFromSubscription operation. The "output" return
4931// value will be populated with the request's response once the request completes
4932// successfully.
4933//
4934// Use "Send" method on the returned Request to send the API call to the service.
4935// the "output" return value is not valid until after Send returns without error.
4936//
4937// See RemoveSourceIdentifierFromSubscription for more information on using the RemoveSourceIdentifierFromSubscription
4938// API call, and error handling.
4939//
4940// This method is useful when you want to inject custom logic or configuration
4941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4942//
4943//
4944//    // Example sending a request using the RemoveSourceIdentifierFromSubscriptionRequest method.
4945//    req, resp := client.RemoveSourceIdentifierFromSubscriptionRequest(params)
4946//
4947//    err := req.Send()
4948//    if err == nil { // resp is now filled
4949//        fmt.Println(resp)
4950//    }
4951//
4952// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveSourceIdentifierFromSubscription
4953func (c *DocDB) RemoveSourceIdentifierFromSubscriptionRequest(input *RemoveSourceIdentifierFromSubscriptionInput) (req *request.Request, output *RemoveSourceIdentifierFromSubscriptionOutput) {
4954	op := &request.Operation{
4955		Name:       opRemoveSourceIdentifierFromSubscription,
4956		HTTPMethod: "POST",
4957		HTTPPath:   "/",
4958	}
4959
4960	if input == nil {
4961		input = &RemoveSourceIdentifierFromSubscriptionInput{}
4962	}
4963
4964	output = &RemoveSourceIdentifierFromSubscriptionOutput{}
4965	req = c.newRequest(op, input, output)
4966	return
4967}
4968
4969// RemoveSourceIdentifierFromSubscription API operation for Amazon DocumentDB with MongoDB compatibility.
4970//
4971// Removes a source identifier from an existing Amazon DocumentDB event notification
4972// subscription.
4973//
4974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4975// with awserr.Error's Code and Message methods to get detailed information about
4976// the error.
4977//
4978// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
4979// API operation RemoveSourceIdentifierFromSubscription for usage and error information.
4980//
4981// Returned Error Codes:
4982//   * ErrCodeSubscriptionNotFoundFault "SubscriptionNotFound"
4983//   The subscription name does not exist.
4984//
4985//   * ErrCodeSourceNotFoundFault "SourceNotFound"
4986//   The requested source could not be found.
4987//
4988// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveSourceIdentifierFromSubscription
4989func (c *DocDB) RemoveSourceIdentifierFromSubscription(input *RemoveSourceIdentifierFromSubscriptionInput) (*RemoveSourceIdentifierFromSubscriptionOutput, error) {
4990	req, out := c.RemoveSourceIdentifierFromSubscriptionRequest(input)
4991	return out, req.Send()
4992}
4993
4994// RemoveSourceIdentifierFromSubscriptionWithContext is the same as RemoveSourceIdentifierFromSubscription with the addition of
4995// the ability to pass a context and additional request options.
4996//
4997// See RemoveSourceIdentifierFromSubscription for details on how to use this API operation.
4998//
4999// The context must be non-nil and will be used for request cancellation. If
5000// the context is nil a panic will occur. In the future the SDK may create
5001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5002// for more information on using Contexts.
5003func (c *DocDB) RemoveSourceIdentifierFromSubscriptionWithContext(ctx aws.Context, input *RemoveSourceIdentifierFromSubscriptionInput, opts ...request.Option) (*RemoveSourceIdentifierFromSubscriptionOutput, error) {
5004	req, out := c.RemoveSourceIdentifierFromSubscriptionRequest(input)
5005	req.SetContext(ctx)
5006	req.ApplyOptions(opts...)
5007	return out, req.Send()
5008}
5009
5010const opRemoveTagsFromResource = "RemoveTagsFromResource"
5011
5012// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
5013// client's request for the RemoveTagsFromResource operation. The "output" return
5014// value will be populated with the request's response once the request completes
5015// successfully.
5016//
5017// Use "Send" method on the returned Request to send the API call to the service.
5018// the "output" return value is not valid until after Send returns without error.
5019//
5020// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
5021// API call, and error handling.
5022//
5023// This method is useful when you want to inject custom logic or configuration
5024// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5025//
5026//
5027//    // Example sending a request using the RemoveTagsFromResourceRequest method.
5028//    req, resp := client.RemoveTagsFromResourceRequest(params)
5029//
5030//    err := req.Send()
5031//    if err == nil { // resp is now filled
5032//        fmt.Println(resp)
5033//    }
5034//
5035// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveTagsFromResource
5036func (c *DocDB) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
5037	op := &request.Operation{
5038		Name:       opRemoveTagsFromResource,
5039		HTTPMethod: "POST",
5040		HTTPPath:   "/",
5041	}
5042
5043	if input == nil {
5044		input = &RemoveTagsFromResourceInput{}
5045	}
5046
5047	output = &RemoveTagsFromResourceOutput{}
5048	req = c.newRequest(op, input, output)
5049	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5050	return
5051}
5052
5053// RemoveTagsFromResource API operation for Amazon DocumentDB with MongoDB compatibility.
5054//
5055// Removes metadata tags from an Amazon DocumentDB resource.
5056//
5057// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5058// with awserr.Error's Code and Message methods to get detailed information about
5059// the error.
5060//
5061// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
5062// API operation RemoveTagsFromResource for usage and error information.
5063//
5064// Returned Error Codes:
5065//   * ErrCodeDBInstanceNotFoundFault "DBInstanceNotFound"
5066//   DBInstanceIdentifier doesn't refer to an existing instance.
5067//
5068//   * ErrCodeDBSnapshotNotFoundFault "DBSnapshotNotFound"
5069//   DBSnapshotIdentifier doesn't refer to an existing snapshot.
5070//
5071//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
5072//   DBClusterIdentifier doesn't refer to an existing cluster.
5073//
5074// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveTagsFromResource
5075func (c *DocDB) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
5076	req, out := c.RemoveTagsFromResourceRequest(input)
5077	return out, req.Send()
5078}
5079
5080// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
5081// the ability to pass a context and additional request options.
5082//
5083// See RemoveTagsFromResource for details on how to use this API operation.
5084//
5085// The context must be non-nil and will be used for request cancellation. If
5086// the context is nil a panic will occur. In the future the SDK may create
5087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5088// for more information on using Contexts.
5089func (c *DocDB) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
5090	req, out := c.RemoveTagsFromResourceRequest(input)
5091	req.SetContext(ctx)
5092	req.ApplyOptions(opts...)
5093	return out, req.Send()
5094}
5095
5096const opResetDBClusterParameterGroup = "ResetDBClusterParameterGroup"
5097
5098// ResetDBClusterParameterGroupRequest generates a "aws/request.Request" representing the
5099// client's request for the ResetDBClusterParameterGroup operation. The "output" return
5100// value will be populated with the request's response once the request completes
5101// successfully.
5102//
5103// Use "Send" method on the returned Request to send the API call to the service.
5104// the "output" return value is not valid until after Send returns without error.
5105//
5106// See ResetDBClusterParameterGroup for more information on using the ResetDBClusterParameterGroup
5107// API call, and error handling.
5108//
5109// This method is useful when you want to inject custom logic or configuration
5110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5111//
5112//
5113//    // Example sending a request using the ResetDBClusterParameterGroupRequest method.
5114//    req, resp := client.ResetDBClusterParameterGroupRequest(params)
5115//
5116//    err := req.Send()
5117//    if err == nil { // resp is now filled
5118//        fmt.Println(resp)
5119//    }
5120//
5121// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ResetDBClusterParameterGroup
5122func (c *DocDB) ResetDBClusterParameterGroupRequest(input *ResetDBClusterParameterGroupInput) (req *request.Request, output *ResetDBClusterParameterGroupOutput) {
5123	op := &request.Operation{
5124		Name:       opResetDBClusterParameterGroup,
5125		HTTPMethod: "POST",
5126		HTTPPath:   "/",
5127	}
5128
5129	if input == nil {
5130		input = &ResetDBClusterParameterGroupInput{}
5131	}
5132
5133	output = &ResetDBClusterParameterGroupOutput{}
5134	req = c.newRequest(op, input, output)
5135	return
5136}
5137
5138// ResetDBClusterParameterGroup API operation for Amazon DocumentDB with MongoDB compatibility.
5139//
5140// Modifies the parameters of a cluster parameter group to the default value.
5141// To reset specific parameters, submit a list of the following: ParameterName
5142// and ApplyMethod. To reset the entire cluster parameter group, specify the
5143// DBClusterParameterGroupName and ResetAllParameters parameters.
5144//
5145// When you reset the entire group, dynamic parameters are updated immediately
5146// and static parameters are set to pending-reboot to take effect on the next
5147// DB instance reboot.
5148//
5149// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5150// with awserr.Error's Code and Message methods to get detailed information about
5151// the error.
5152//
5153// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
5154// API operation ResetDBClusterParameterGroup for usage and error information.
5155//
5156// Returned Error Codes:
5157//   * ErrCodeInvalidDBParameterGroupStateFault "InvalidDBParameterGroupState"
5158//   The parameter group is in use, or it is in a state that is not valid. If
5159//   you are trying to delete the parameter group, you can't delete it when the
5160//   parameter group is in this state.
5161//
5162//   * ErrCodeDBParameterGroupNotFoundFault "DBParameterGroupNotFound"
5163//   DBParameterGroupName doesn't refer to an existing parameter group.
5164//
5165// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ResetDBClusterParameterGroup
5166func (c *DocDB) ResetDBClusterParameterGroup(input *ResetDBClusterParameterGroupInput) (*ResetDBClusterParameterGroupOutput, error) {
5167	req, out := c.ResetDBClusterParameterGroupRequest(input)
5168	return out, req.Send()
5169}
5170
5171// ResetDBClusterParameterGroupWithContext is the same as ResetDBClusterParameterGroup with the addition of
5172// the ability to pass a context and additional request options.
5173//
5174// See ResetDBClusterParameterGroup for details on how to use this API operation.
5175//
5176// The context must be non-nil and will be used for request cancellation. If
5177// the context is nil a panic will occur. In the future the SDK may create
5178// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5179// for more information on using Contexts.
5180func (c *DocDB) ResetDBClusterParameterGroupWithContext(ctx aws.Context, input *ResetDBClusterParameterGroupInput, opts ...request.Option) (*ResetDBClusterParameterGroupOutput, error) {
5181	req, out := c.ResetDBClusterParameterGroupRequest(input)
5182	req.SetContext(ctx)
5183	req.ApplyOptions(opts...)
5184	return out, req.Send()
5185}
5186
5187const opRestoreDBClusterFromSnapshot = "RestoreDBClusterFromSnapshot"
5188
5189// RestoreDBClusterFromSnapshotRequest generates a "aws/request.Request" representing the
5190// client's request for the RestoreDBClusterFromSnapshot operation. The "output" return
5191// value will be populated with the request's response once the request completes
5192// successfully.
5193//
5194// Use "Send" method on the returned Request to send the API call to the service.
5195// the "output" return value is not valid until after Send returns without error.
5196//
5197// See RestoreDBClusterFromSnapshot for more information on using the RestoreDBClusterFromSnapshot
5198// API call, and error handling.
5199//
5200// This method is useful when you want to inject custom logic or configuration
5201// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5202//
5203//
5204//    // Example sending a request using the RestoreDBClusterFromSnapshotRequest method.
5205//    req, resp := client.RestoreDBClusterFromSnapshotRequest(params)
5206//
5207//    err := req.Send()
5208//    if err == nil { // resp is now filled
5209//        fmt.Println(resp)
5210//    }
5211//
5212// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterFromSnapshot
5213func (c *DocDB) RestoreDBClusterFromSnapshotRequest(input *RestoreDBClusterFromSnapshotInput) (req *request.Request, output *RestoreDBClusterFromSnapshotOutput) {
5214	op := &request.Operation{
5215		Name:       opRestoreDBClusterFromSnapshot,
5216		HTTPMethod: "POST",
5217		HTTPPath:   "/",
5218	}
5219
5220	if input == nil {
5221		input = &RestoreDBClusterFromSnapshotInput{}
5222	}
5223
5224	output = &RestoreDBClusterFromSnapshotOutput{}
5225	req = c.newRequest(op, input, output)
5226	return
5227}
5228
5229// RestoreDBClusterFromSnapshot API operation for Amazon DocumentDB with MongoDB compatibility.
5230//
5231// Creates a new cluster from a snapshot or cluster snapshot.
5232//
5233// If a snapshot is specified, the target cluster is created from the source
5234// DB snapshot with a default configuration and default security group.
5235//
5236// If a cluster snapshot is specified, the target cluster is created from the
5237// source cluster restore point with the same configuration as the original
5238// source DB cluster, except that the new cluster is created with the default
5239// security group.
5240//
5241// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5242// with awserr.Error's Code and Message methods to get detailed information about
5243// the error.
5244//
5245// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
5246// API operation RestoreDBClusterFromSnapshot for usage and error information.
5247//
5248// Returned Error Codes:
5249//   * ErrCodeDBClusterAlreadyExistsFault "DBClusterAlreadyExistsFault"
5250//   You already have a cluster with the given identifier.
5251//
5252//   * ErrCodeDBClusterQuotaExceededFault "DBClusterQuotaExceededFault"
5253//   The cluster can't be created because you have reached the maximum allowed
5254//   quota of clusters.
5255//
5256//   * ErrCodeStorageQuotaExceededFault "StorageQuotaExceeded"
5257//   The request would cause you to exceed the allowed amount of storage available
5258//   across all instances.
5259//
5260//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
5261//   DBSubnetGroupName doesn't refer to an existing subnet group.
5262//
5263//   * ErrCodeDBSnapshotNotFoundFault "DBSnapshotNotFound"
5264//   DBSnapshotIdentifier doesn't refer to an existing snapshot.
5265//
5266//   * ErrCodeDBClusterSnapshotNotFoundFault "DBClusterSnapshotNotFoundFault"
5267//   DBClusterSnapshotIdentifier doesn't refer to an existing cluster snapshot.
5268//
5269//   * ErrCodeInsufficientDBClusterCapacityFault "InsufficientDBClusterCapacityFault"
5270//   The cluster doesn't have enough capacity for the current operation.
5271//
5272//   * ErrCodeInsufficientStorageClusterCapacityFault "InsufficientStorageClusterCapacity"
5273//   There is not enough storage available for the current action. You might be
5274//   able to resolve this error by updating your subnet group to use different
5275//   Availability Zones that have more storage available.
5276//
5277//   * ErrCodeInvalidDBSnapshotStateFault "InvalidDBSnapshotState"
5278//   The state of the snapshot doesn't allow deletion.
5279//
5280//   * ErrCodeInvalidDBClusterSnapshotStateFault "InvalidDBClusterSnapshotStateFault"
5281//   The provided value isn't a valid cluster snapshot state.
5282//
5283//   * ErrCodeStorageQuotaExceededFault "StorageQuotaExceeded"
5284//   The request would cause you to exceed the allowed amount of storage available
5285//   across all instances.
5286//
5287//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
5288//   The subnet group doesn't cover all Availability Zones after it is created
5289//   because of changes that were made.
5290//
5291//   * ErrCodeInvalidRestoreFault "InvalidRestoreFault"
5292//   You cannot restore from a virtual private cloud (VPC) backup to a non-VPC
5293//   DB instance.
5294//
5295//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
5296//   DBSubnetGroupName doesn't refer to an existing subnet group.
5297//
5298//   * ErrCodeInvalidSubnet "InvalidSubnet"
5299//   The requested subnet is not valid, or multiple subnets were requested that
5300//   are not all in a common virtual private cloud (VPC).
5301//
5302//   * ErrCodeKMSKeyNotAccessibleFault "KMSKeyNotAccessibleFault"
5303//   An error occurred when accessing an KMS key.
5304//
5305// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterFromSnapshot
5306func (c *DocDB) RestoreDBClusterFromSnapshot(input *RestoreDBClusterFromSnapshotInput) (*RestoreDBClusterFromSnapshotOutput, error) {
5307	req, out := c.RestoreDBClusterFromSnapshotRequest(input)
5308	return out, req.Send()
5309}
5310
5311// RestoreDBClusterFromSnapshotWithContext is the same as RestoreDBClusterFromSnapshot with the addition of
5312// the ability to pass a context and additional request options.
5313//
5314// See RestoreDBClusterFromSnapshot for details on how to use this API operation.
5315//
5316// The context must be non-nil and will be used for request cancellation. If
5317// the context is nil a panic will occur. In the future the SDK may create
5318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5319// for more information on using Contexts.
5320func (c *DocDB) RestoreDBClusterFromSnapshotWithContext(ctx aws.Context, input *RestoreDBClusterFromSnapshotInput, opts ...request.Option) (*RestoreDBClusterFromSnapshotOutput, error) {
5321	req, out := c.RestoreDBClusterFromSnapshotRequest(input)
5322	req.SetContext(ctx)
5323	req.ApplyOptions(opts...)
5324	return out, req.Send()
5325}
5326
5327const opRestoreDBClusterToPointInTime = "RestoreDBClusterToPointInTime"
5328
5329// RestoreDBClusterToPointInTimeRequest generates a "aws/request.Request" representing the
5330// client's request for the RestoreDBClusterToPointInTime operation. The "output" return
5331// value will be populated with the request's response once the request completes
5332// successfully.
5333//
5334// Use "Send" method on the returned Request to send the API call to the service.
5335// the "output" return value is not valid until after Send returns without error.
5336//
5337// See RestoreDBClusterToPointInTime for more information on using the RestoreDBClusterToPointInTime
5338// API call, and error handling.
5339//
5340// This method is useful when you want to inject custom logic or configuration
5341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5342//
5343//
5344//    // Example sending a request using the RestoreDBClusterToPointInTimeRequest method.
5345//    req, resp := client.RestoreDBClusterToPointInTimeRequest(params)
5346//
5347//    err := req.Send()
5348//    if err == nil { // resp is now filled
5349//        fmt.Println(resp)
5350//    }
5351//
5352// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterToPointInTime
5353func (c *DocDB) RestoreDBClusterToPointInTimeRequest(input *RestoreDBClusterToPointInTimeInput) (req *request.Request, output *RestoreDBClusterToPointInTimeOutput) {
5354	op := &request.Operation{
5355		Name:       opRestoreDBClusterToPointInTime,
5356		HTTPMethod: "POST",
5357		HTTPPath:   "/",
5358	}
5359
5360	if input == nil {
5361		input = &RestoreDBClusterToPointInTimeInput{}
5362	}
5363
5364	output = &RestoreDBClusterToPointInTimeOutput{}
5365	req = c.newRequest(op, input, output)
5366	return
5367}
5368
5369// RestoreDBClusterToPointInTime API operation for Amazon DocumentDB with MongoDB compatibility.
5370//
5371// Restores a cluster to an arbitrary point in time. Users can restore to any
5372// point in time before LatestRestorableTime for up to BackupRetentionPeriod
5373// days. The target cluster is created from the source cluster with the same
5374// configuration as the original cluster, except that the new cluster is created
5375// with the default security group.
5376//
5377// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5378// with awserr.Error's Code and Message methods to get detailed information about
5379// the error.
5380//
5381// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
5382// API operation RestoreDBClusterToPointInTime for usage and error information.
5383//
5384// Returned Error Codes:
5385//   * ErrCodeDBClusterAlreadyExistsFault "DBClusterAlreadyExistsFault"
5386//   You already have a cluster with the given identifier.
5387//
5388//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
5389//   DBClusterIdentifier doesn't refer to an existing cluster.
5390//
5391//   * ErrCodeDBClusterQuotaExceededFault "DBClusterQuotaExceededFault"
5392//   The cluster can't be created because you have reached the maximum allowed
5393//   quota of clusters.
5394//
5395//   * ErrCodeDBClusterSnapshotNotFoundFault "DBClusterSnapshotNotFoundFault"
5396//   DBClusterSnapshotIdentifier doesn't refer to an existing cluster snapshot.
5397//
5398//   * ErrCodeDBSubnetGroupNotFoundFault "DBSubnetGroupNotFoundFault"
5399//   DBSubnetGroupName doesn't refer to an existing subnet group.
5400//
5401//   * ErrCodeInsufficientDBClusterCapacityFault "InsufficientDBClusterCapacityFault"
5402//   The cluster doesn't have enough capacity for the current operation.
5403//
5404//   * ErrCodeInsufficientStorageClusterCapacityFault "InsufficientStorageClusterCapacity"
5405//   There is not enough storage available for the current action. You might be
5406//   able to resolve this error by updating your subnet group to use different
5407//   Availability Zones that have more storage available.
5408//
5409//   * ErrCodeInvalidDBClusterSnapshotStateFault "InvalidDBClusterSnapshotStateFault"
5410//   The provided value isn't a valid cluster snapshot state.
5411//
5412//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
5413//   The cluster isn't in a valid state.
5414//
5415//   * ErrCodeInvalidDBSnapshotStateFault "InvalidDBSnapshotState"
5416//   The state of the snapshot doesn't allow deletion.
5417//
5418//   * ErrCodeInvalidRestoreFault "InvalidRestoreFault"
5419//   You cannot restore from a virtual private cloud (VPC) backup to a non-VPC
5420//   DB instance.
5421//
5422//   * ErrCodeInvalidSubnet "InvalidSubnet"
5423//   The requested subnet is not valid, or multiple subnets were requested that
5424//   are not all in a common virtual private cloud (VPC).
5425//
5426//   * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault"
5427//   The subnet group doesn't cover all Availability Zones after it is created
5428//   because of changes that were made.
5429//
5430//   * ErrCodeKMSKeyNotAccessibleFault "KMSKeyNotAccessibleFault"
5431//   An error occurred when accessing an KMS key.
5432//
5433//   * ErrCodeStorageQuotaExceededFault "StorageQuotaExceeded"
5434//   The request would cause you to exceed the allowed amount of storage available
5435//   across all instances.
5436//
5437// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterToPointInTime
5438func (c *DocDB) RestoreDBClusterToPointInTime(input *RestoreDBClusterToPointInTimeInput) (*RestoreDBClusterToPointInTimeOutput, error) {
5439	req, out := c.RestoreDBClusterToPointInTimeRequest(input)
5440	return out, req.Send()
5441}
5442
5443// RestoreDBClusterToPointInTimeWithContext is the same as RestoreDBClusterToPointInTime with the addition of
5444// the ability to pass a context and additional request options.
5445//
5446// See RestoreDBClusterToPointInTime for details on how to use this API operation.
5447//
5448// The context must be non-nil and will be used for request cancellation. If
5449// the context is nil a panic will occur. In the future the SDK may create
5450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5451// for more information on using Contexts.
5452func (c *DocDB) RestoreDBClusterToPointInTimeWithContext(ctx aws.Context, input *RestoreDBClusterToPointInTimeInput, opts ...request.Option) (*RestoreDBClusterToPointInTimeOutput, error) {
5453	req, out := c.RestoreDBClusterToPointInTimeRequest(input)
5454	req.SetContext(ctx)
5455	req.ApplyOptions(opts...)
5456	return out, req.Send()
5457}
5458
5459const opStartDBCluster = "StartDBCluster"
5460
5461// StartDBClusterRequest generates a "aws/request.Request" representing the
5462// client's request for the StartDBCluster operation. The "output" return
5463// value will be populated with the request's response once the request completes
5464// successfully.
5465//
5466// Use "Send" method on the returned Request to send the API call to the service.
5467// the "output" return value is not valid until after Send returns without error.
5468//
5469// See StartDBCluster for more information on using the StartDBCluster
5470// API call, and error handling.
5471//
5472// This method is useful when you want to inject custom logic or configuration
5473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5474//
5475//
5476//    // Example sending a request using the StartDBClusterRequest method.
5477//    req, resp := client.StartDBClusterRequest(params)
5478//
5479//    err := req.Send()
5480//    if err == nil { // resp is now filled
5481//        fmt.Println(resp)
5482//    }
5483//
5484// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StartDBCluster
5485func (c *DocDB) StartDBClusterRequest(input *StartDBClusterInput) (req *request.Request, output *StartDBClusterOutput) {
5486	op := &request.Operation{
5487		Name:       opStartDBCluster,
5488		HTTPMethod: "POST",
5489		HTTPPath:   "/",
5490	}
5491
5492	if input == nil {
5493		input = &StartDBClusterInput{}
5494	}
5495
5496	output = &StartDBClusterOutput{}
5497	req = c.newRequest(op, input, output)
5498	return
5499}
5500
5501// StartDBCluster API operation for Amazon DocumentDB with MongoDB compatibility.
5502//
5503// Restarts the stopped cluster that is specified by DBClusterIdentifier. For
5504// more information, see Stopping and Starting an Amazon DocumentDB Cluster
5505// (https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html).
5506//
5507// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5508// with awserr.Error's Code and Message methods to get detailed information about
5509// the error.
5510//
5511// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
5512// API operation StartDBCluster for usage and error information.
5513//
5514// Returned Error Codes:
5515//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
5516//   DBClusterIdentifier doesn't refer to an existing cluster.
5517//
5518//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
5519//   The cluster isn't in a valid state.
5520//
5521//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
5522//   The specified instance isn't in the available state.
5523//
5524// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StartDBCluster
5525func (c *DocDB) StartDBCluster(input *StartDBClusterInput) (*StartDBClusterOutput, error) {
5526	req, out := c.StartDBClusterRequest(input)
5527	return out, req.Send()
5528}
5529
5530// StartDBClusterWithContext is the same as StartDBCluster with the addition of
5531// the ability to pass a context and additional request options.
5532//
5533// See StartDBCluster for details on how to use this API operation.
5534//
5535// The context must be non-nil and will be used for request cancellation. If
5536// the context is nil a panic will occur. In the future the SDK may create
5537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5538// for more information on using Contexts.
5539func (c *DocDB) StartDBClusterWithContext(ctx aws.Context, input *StartDBClusterInput, opts ...request.Option) (*StartDBClusterOutput, error) {
5540	req, out := c.StartDBClusterRequest(input)
5541	req.SetContext(ctx)
5542	req.ApplyOptions(opts...)
5543	return out, req.Send()
5544}
5545
5546const opStopDBCluster = "StopDBCluster"
5547
5548// StopDBClusterRequest generates a "aws/request.Request" representing the
5549// client's request for the StopDBCluster operation. The "output" return
5550// value will be populated with the request's response once the request completes
5551// successfully.
5552//
5553// Use "Send" method on the returned Request to send the API call to the service.
5554// the "output" return value is not valid until after Send returns without error.
5555//
5556// See StopDBCluster for more information on using the StopDBCluster
5557// API call, and error handling.
5558//
5559// This method is useful when you want to inject custom logic or configuration
5560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5561//
5562//
5563//    // Example sending a request using the StopDBClusterRequest method.
5564//    req, resp := client.StopDBClusterRequest(params)
5565//
5566//    err := req.Send()
5567//    if err == nil { // resp is now filled
5568//        fmt.Println(resp)
5569//    }
5570//
5571// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StopDBCluster
5572func (c *DocDB) StopDBClusterRequest(input *StopDBClusterInput) (req *request.Request, output *StopDBClusterOutput) {
5573	op := &request.Operation{
5574		Name:       opStopDBCluster,
5575		HTTPMethod: "POST",
5576		HTTPPath:   "/",
5577	}
5578
5579	if input == nil {
5580		input = &StopDBClusterInput{}
5581	}
5582
5583	output = &StopDBClusterOutput{}
5584	req = c.newRequest(op, input, output)
5585	return
5586}
5587
5588// StopDBCluster API operation for Amazon DocumentDB with MongoDB compatibility.
5589//
5590// Stops the running cluster that is specified by DBClusterIdentifier. The cluster
5591// must be in the available state. For more information, see Stopping and Starting
5592// an Amazon DocumentDB Cluster (https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html).
5593//
5594// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5595// with awserr.Error's Code and Message methods to get detailed information about
5596// the error.
5597//
5598// See the AWS API reference guide for Amazon DocumentDB with MongoDB compatibility's
5599// API operation StopDBCluster for usage and error information.
5600//
5601// Returned Error Codes:
5602//   * ErrCodeDBClusterNotFoundFault "DBClusterNotFoundFault"
5603//   DBClusterIdentifier doesn't refer to an existing cluster.
5604//
5605//   * ErrCodeInvalidDBClusterStateFault "InvalidDBClusterStateFault"
5606//   The cluster isn't in a valid state.
5607//
5608//   * ErrCodeInvalidDBInstanceStateFault "InvalidDBInstanceState"
5609//   The specified instance isn't in the available state.
5610//
5611// See also, https://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StopDBCluster
5612func (c *DocDB) StopDBCluster(input *StopDBClusterInput) (*StopDBClusterOutput, error) {
5613	req, out := c.StopDBClusterRequest(input)
5614	return out, req.Send()
5615}
5616
5617// StopDBClusterWithContext is the same as StopDBCluster with the addition of
5618// the ability to pass a context and additional request options.
5619//
5620// See StopDBCluster for details on how to use this API operation.
5621//
5622// The context must be non-nil and will be used for request cancellation. If
5623// the context is nil a panic will occur. In the future the SDK may create
5624// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5625// for more information on using Contexts.
5626func (c *DocDB) StopDBClusterWithContext(ctx aws.Context, input *StopDBClusterInput, opts ...request.Option) (*StopDBClusterOutput, error) {
5627	req, out := c.StopDBClusterRequest(input)
5628	req.SetContext(ctx)
5629	req.ApplyOptions(opts...)
5630	return out, req.Send()
5631}
5632
5633// Represents the input to AddSourceIdentifierToSubscription.
5634type AddSourceIdentifierToSubscriptionInput struct {
5635	_ struct{} `type:"structure"`
5636
5637	// The identifier of the event source to be added:
5638	//
5639	//    * If the source type is an instance, a DBInstanceIdentifier must be provided.
5640	//
5641	//    * If the source type is a security group, a DBSecurityGroupName must be
5642	//    provided.
5643	//
5644	//    * If the source type is a parameter group, a DBParameterGroupName must
5645	//    be provided.
5646	//
5647	//    * If the source type is a snapshot, a DBSnapshotIdentifier must be provided.
5648	//
5649	// SourceIdentifier is a required field
5650	SourceIdentifier *string `type:"string" required:"true"`
5651
5652	// The name of the Amazon DocumentDB event notification subscription that you
5653	// want to add a source identifier to.
5654	//
5655	// SubscriptionName is a required field
5656	SubscriptionName *string `type:"string" required:"true"`
5657}
5658
5659// String returns the string representation.
5660//
5661// API parameter values that are decorated as "sensitive" in the API will not
5662// be included in the string output. The member name will be present, but the
5663// value will be replaced with "sensitive".
5664func (s AddSourceIdentifierToSubscriptionInput) String() string {
5665	return awsutil.Prettify(s)
5666}
5667
5668// GoString returns the string representation.
5669//
5670// API parameter values that are decorated as "sensitive" in the API will not
5671// be included in the string output. The member name will be present, but the
5672// value will be replaced with "sensitive".
5673func (s AddSourceIdentifierToSubscriptionInput) GoString() string {
5674	return s.String()
5675}
5676
5677// Validate inspects the fields of the type to determine if they are valid.
5678func (s *AddSourceIdentifierToSubscriptionInput) Validate() error {
5679	invalidParams := request.ErrInvalidParams{Context: "AddSourceIdentifierToSubscriptionInput"}
5680	if s.SourceIdentifier == nil {
5681		invalidParams.Add(request.NewErrParamRequired("SourceIdentifier"))
5682	}
5683	if s.SubscriptionName == nil {
5684		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
5685	}
5686
5687	if invalidParams.Len() > 0 {
5688		return invalidParams
5689	}
5690	return nil
5691}
5692
5693// SetSourceIdentifier sets the SourceIdentifier field's value.
5694func (s *AddSourceIdentifierToSubscriptionInput) SetSourceIdentifier(v string) *AddSourceIdentifierToSubscriptionInput {
5695	s.SourceIdentifier = &v
5696	return s
5697}
5698
5699// SetSubscriptionName sets the SubscriptionName field's value.
5700func (s *AddSourceIdentifierToSubscriptionInput) SetSubscriptionName(v string) *AddSourceIdentifierToSubscriptionInput {
5701	s.SubscriptionName = &v
5702	return s
5703}
5704
5705type AddSourceIdentifierToSubscriptionOutput struct {
5706	_ struct{} `type:"structure"`
5707
5708	// Detailed information about an event to which you have subscribed.
5709	EventSubscription *EventSubscription `type:"structure"`
5710}
5711
5712// String returns the string representation.
5713//
5714// API parameter values that are decorated as "sensitive" in the API will not
5715// be included in the string output. The member name will be present, but the
5716// value will be replaced with "sensitive".
5717func (s AddSourceIdentifierToSubscriptionOutput) String() string {
5718	return awsutil.Prettify(s)
5719}
5720
5721// GoString returns the string representation.
5722//
5723// API parameter values that are decorated as "sensitive" in the API will not
5724// be included in the string output. The member name will be present, but the
5725// value will be replaced with "sensitive".
5726func (s AddSourceIdentifierToSubscriptionOutput) GoString() string {
5727	return s.String()
5728}
5729
5730// SetEventSubscription sets the EventSubscription field's value.
5731func (s *AddSourceIdentifierToSubscriptionOutput) SetEventSubscription(v *EventSubscription) *AddSourceIdentifierToSubscriptionOutput {
5732	s.EventSubscription = v
5733	return s
5734}
5735
5736// Represents the input to AddTagsToResource.
5737type AddTagsToResourceInput struct {
5738	_ struct{} `type:"structure"`
5739
5740	// The Amazon DocumentDB resource that the tags are added to. This value is
5741	// an Amazon Resource Name .
5742	//
5743	// ResourceName is a required field
5744	ResourceName *string `type:"string" required:"true"`
5745
5746	// The tags to be assigned to the Amazon DocumentDB resource.
5747	//
5748	// Tags is a required field
5749	Tags []*Tag `locationNameList:"Tag" type:"list" required:"true"`
5750}
5751
5752// String returns the string representation.
5753//
5754// API parameter values that are decorated as "sensitive" in the API will not
5755// be included in the string output. The member name will be present, but the
5756// value will be replaced with "sensitive".
5757func (s AddTagsToResourceInput) String() string {
5758	return awsutil.Prettify(s)
5759}
5760
5761// GoString returns the string representation.
5762//
5763// API parameter values that are decorated as "sensitive" in the API will not
5764// be included in the string output. The member name will be present, but the
5765// value will be replaced with "sensitive".
5766func (s AddTagsToResourceInput) GoString() string {
5767	return s.String()
5768}
5769
5770// Validate inspects the fields of the type to determine if they are valid.
5771func (s *AddTagsToResourceInput) Validate() error {
5772	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
5773	if s.ResourceName == nil {
5774		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
5775	}
5776	if s.Tags == nil {
5777		invalidParams.Add(request.NewErrParamRequired("Tags"))
5778	}
5779
5780	if invalidParams.Len() > 0 {
5781		return invalidParams
5782	}
5783	return nil
5784}
5785
5786// SetResourceName sets the ResourceName field's value.
5787func (s *AddTagsToResourceInput) SetResourceName(v string) *AddTagsToResourceInput {
5788	s.ResourceName = &v
5789	return s
5790}
5791
5792// SetTags sets the Tags field's value.
5793func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
5794	s.Tags = v
5795	return s
5796}
5797
5798type AddTagsToResourceOutput struct {
5799	_ struct{} `type:"structure"`
5800}
5801
5802// String returns the string representation.
5803//
5804// API parameter values that are decorated as "sensitive" in the API will not
5805// be included in the string output. The member name will be present, but the
5806// value will be replaced with "sensitive".
5807func (s AddTagsToResourceOutput) String() string {
5808	return awsutil.Prettify(s)
5809}
5810
5811// GoString returns the string representation.
5812//
5813// API parameter values that are decorated as "sensitive" in the API will not
5814// be included in the string output. The member name will be present, but the
5815// value will be replaced with "sensitive".
5816func (s AddTagsToResourceOutput) GoString() string {
5817	return s.String()
5818}
5819
5820// Represents the input to ApplyPendingMaintenanceAction.
5821type ApplyPendingMaintenanceActionInput struct {
5822	_ struct{} `type:"structure"`
5823
5824	// The pending maintenance action to apply to this resource.
5825	//
5826	// Valid values: system-update, db-upgrade
5827	//
5828	// ApplyAction is a required field
5829	ApplyAction *string `type:"string" required:"true"`
5830
5831	// A value that specifies the type of opt-in request or undoes an opt-in request.
5832	// An opt-in request of type immediate can't be undone.
5833	//
5834	// Valid values:
5835	//
5836	//    * immediate - Apply the maintenance action immediately.
5837	//
5838	//    * next-maintenance - Apply the maintenance action during the next maintenance
5839	//    window for the resource.
5840	//
5841	//    * undo-opt-in - Cancel any existing next-maintenance opt-in requests.
5842	//
5843	// OptInType is a required field
5844	OptInType *string `type:"string" required:"true"`
5845
5846	// The Amazon Resource Name (ARN) of the resource that the pending maintenance
5847	// action applies to.
5848	//
5849	// ResourceIdentifier is a required field
5850	ResourceIdentifier *string `type:"string" required:"true"`
5851}
5852
5853// String returns the string representation.
5854//
5855// API parameter values that are decorated as "sensitive" in the API will not
5856// be included in the string output. The member name will be present, but the
5857// value will be replaced with "sensitive".
5858func (s ApplyPendingMaintenanceActionInput) String() string {
5859	return awsutil.Prettify(s)
5860}
5861
5862// GoString returns the string representation.
5863//
5864// API parameter values that are decorated as "sensitive" in the API will not
5865// be included in the string output. The member name will be present, but the
5866// value will be replaced with "sensitive".
5867func (s ApplyPendingMaintenanceActionInput) GoString() string {
5868	return s.String()
5869}
5870
5871// Validate inspects the fields of the type to determine if they are valid.
5872func (s *ApplyPendingMaintenanceActionInput) Validate() error {
5873	invalidParams := request.ErrInvalidParams{Context: "ApplyPendingMaintenanceActionInput"}
5874	if s.ApplyAction == nil {
5875		invalidParams.Add(request.NewErrParamRequired("ApplyAction"))
5876	}
5877	if s.OptInType == nil {
5878		invalidParams.Add(request.NewErrParamRequired("OptInType"))
5879	}
5880	if s.ResourceIdentifier == nil {
5881		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
5882	}
5883
5884	if invalidParams.Len() > 0 {
5885		return invalidParams
5886	}
5887	return nil
5888}
5889
5890// SetApplyAction sets the ApplyAction field's value.
5891func (s *ApplyPendingMaintenanceActionInput) SetApplyAction(v string) *ApplyPendingMaintenanceActionInput {
5892	s.ApplyAction = &v
5893	return s
5894}
5895
5896// SetOptInType sets the OptInType field's value.
5897func (s *ApplyPendingMaintenanceActionInput) SetOptInType(v string) *ApplyPendingMaintenanceActionInput {
5898	s.OptInType = &v
5899	return s
5900}
5901
5902// SetResourceIdentifier sets the ResourceIdentifier field's value.
5903func (s *ApplyPendingMaintenanceActionInput) SetResourceIdentifier(v string) *ApplyPendingMaintenanceActionInput {
5904	s.ResourceIdentifier = &v
5905	return s
5906}
5907
5908type ApplyPendingMaintenanceActionOutput struct {
5909	_ struct{} `type:"structure"`
5910
5911	// Represents the output of ApplyPendingMaintenanceAction.
5912	ResourcePendingMaintenanceActions *ResourcePendingMaintenanceActions `type:"structure"`
5913}
5914
5915// String returns the string representation.
5916//
5917// API parameter values that are decorated as "sensitive" in the API will not
5918// be included in the string output. The member name will be present, but the
5919// value will be replaced with "sensitive".
5920func (s ApplyPendingMaintenanceActionOutput) String() string {
5921	return awsutil.Prettify(s)
5922}
5923
5924// GoString returns the string representation.
5925//
5926// API parameter values that are decorated as "sensitive" in the API will not
5927// be included in the string output. The member name will be present, but the
5928// value will be replaced with "sensitive".
5929func (s ApplyPendingMaintenanceActionOutput) GoString() string {
5930	return s.String()
5931}
5932
5933// SetResourcePendingMaintenanceActions sets the ResourcePendingMaintenanceActions field's value.
5934func (s *ApplyPendingMaintenanceActionOutput) SetResourcePendingMaintenanceActions(v *ResourcePendingMaintenanceActions) *ApplyPendingMaintenanceActionOutput {
5935	s.ResourcePendingMaintenanceActions = v
5936	return s
5937}
5938
5939// Information about an Availability Zone.
5940type AvailabilityZone struct {
5941	_ struct{} `type:"structure"`
5942
5943	// The name of the Availability Zone.
5944	Name *string `type:"string"`
5945}
5946
5947// String 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 AvailabilityZone) String() string {
5953	return awsutil.Prettify(s)
5954}
5955
5956// GoString returns the string representation.
5957//
5958// API parameter values that are decorated as "sensitive" in the API will not
5959// be included in the string output. The member name will be present, but the
5960// value will be replaced with "sensitive".
5961func (s AvailabilityZone) GoString() string {
5962	return s.String()
5963}
5964
5965// SetName sets the Name field's value.
5966func (s *AvailabilityZone) SetName(v string) *AvailabilityZone {
5967	s.Name = &v
5968	return s
5969}
5970
5971// A certificate authority (CA) certificate for an account.
5972type Certificate struct {
5973	_ struct{} `type:"structure"`
5974
5975	// The Amazon Resource Name (ARN) for the certificate.
5976	//
5977	// Example: arn:aws:rds:us-east-1::cert:rds-ca-2019
5978	CertificateArn *string `type:"string"`
5979
5980	// The unique key that identifies a certificate.
5981	//
5982	// Example: rds-ca-2019
5983	CertificateIdentifier *string `type:"string"`
5984
5985	// The type of the certificate.
5986	//
5987	// Example: CA
5988	CertificateType *string `type:"string"`
5989
5990	// The thumbprint of the certificate.
5991	Thumbprint *string `type:"string"`
5992
5993	// The starting date-time from which the certificate is valid.
5994	//
5995	// Example: 2019-07-31T17:57:09Z
5996	ValidFrom *time.Time `type:"timestamp"`
5997
5998	// The date-time after which the certificate is no longer valid.
5999	//
6000	// Example: 2024-07-31T17:57:09Z
6001	ValidTill *time.Time `type:"timestamp"`
6002}
6003
6004// String returns the string representation.
6005//
6006// API parameter values that are decorated as "sensitive" in the API will not
6007// be included in the string output. The member name will be present, but the
6008// value will be replaced with "sensitive".
6009func (s Certificate) String() string {
6010	return awsutil.Prettify(s)
6011}
6012
6013// GoString returns the string representation.
6014//
6015// API parameter values that are decorated as "sensitive" in the API will not
6016// be included in the string output. The member name will be present, but the
6017// value will be replaced with "sensitive".
6018func (s Certificate) GoString() string {
6019	return s.String()
6020}
6021
6022// SetCertificateArn sets the CertificateArn field's value.
6023func (s *Certificate) SetCertificateArn(v string) *Certificate {
6024	s.CertificateArn = &v
6025	return s
6026}
6027
6028// SetCertificateIdentifier sets the CertificateIdentifier field's value.
6029func (s *Certificate) SetCertificateIdentifier(v string) *Certificate {
6030	s.CertificateIdentifier = &v
6031	return s
6032}
6033
6034// SetCertificateType sets the CertificateType field's value.
6035func (s *Certificate) SetCertificateType(v string) *Certificate {
6036	s.CertificateType = &v
6037	return s
6038}
6039
6040// SetThumbprint sets the Thumbprint field's value.
6041func (s *Certificate) SetThumbprint(v string) *Certificate {
6042	s.Thumbprint = &v
6043	return s
6044}
6045
6046// SetValidFrom sets the ValidFrom field's value.
6047func (s *Certificate) SetValidFrom(v time.Time) *Certificate {
6048	s.ValidFrom = &v
6049	return s
6050}
6051
6052// SetValidTill sets the ValidTill field's value.
6053func (s *Certificate) SetValidTill(v time.Time) *Certificate {
6054	s.ValidTill = &v
6055	return s
6056}
6057
6058// The configuration setting for the log types to be enabled for export to Amazon
6059// CloudWatch Logs for a specific instance or cluster.
6060//
6061// The EnableLogTypes and DisableLogTypes arrays determine which logs are exported
6062// (or not exported) to CloudWatch Logs. The values within these arrays depend
6063// on the engine that is being used.
6064type CloudwatchLogsExportConfiguration struct {
6065	_ struct{} `type:"structure"`
6066
6067	// The list of log types to disable.
6068	DisableLogTypes []*string `type:"list"`
6069
6070	// The list of log types to enable.
6071	EnableLogTypes []*string `type:"list"`
6072}
6073
6074// String returns the string representation.
6075//
6076// API parameter values that are decorated as "sensitive" in the API will not
6077// be included in the string output. The member name will be present, but the
6078// value will be replaced with "sensitive".
6079func (s CloudwatchLogsExportConfiguration) String() string {
6080	return awsutil.Prettify(s)
6081}
6082
6083// GoString returns the string representation.
6084//
6085// API parameter values that are decorated as "sensitive" in the API will not
6086// be included in the string output. The member name will be present, but the
6087// value will be replaced with "sensitive".
6088func (s CloudwatchLogsExportConfiguration) GoString() string {
6089	return s.String()
6090}
6091
6092// SetDisableLogTypes sets the DisableLogTypes field's value.
6093func (s *CloudwatchLogsExportConfiguration) SetDisableLogTypes(v []*string) *CloudwatchLogsExportConfiguration {
6094	s.DisableLogTypes = v
6095	return s
6096}
6097
6098// SetEnableLogTypes sets the EnableLogTypes field's value.
6099func (s *CloudwatchLogsExportConfiguration) SetEnableLogTypes(v []*string) *CloudwatchLogsExportConfiguration {
6100	s.EnableLogTypes = v
6101	return s
6102}
6103
6104// Represents the input to CopyDBClusterParameterGroup.
6105type CopyDBClusterParameterGroupInput struct {
6106	_ struct{} `type:"structure"`
6107
6108	// The identifier or Amazon Resource Name (ARN) for the source cluster parameter
6109	// group.
6110	//
6111	// Constraints:
6112	//
6113	//    * Must specify a valid cluster parameter group.
6114	//
6115	//    * If the source cluster parameter group is in the same Region as the copy,
6116	//    specify a valid parameter group identifier; for example, my-db-cluster-param-group,
6117	//    or a valid ARN.
6118	//
6119	//    * If the source parameter group is in a different Region than the copy,
6120	//    specify a valid cluster parameter group ARN; for example, arn:aws:rds:us-east-1:123456789012:sample-cluster:sample-parameter-group.
6121	//
6122	// SourceDBClusterParameterGroupIdentifier is a required field
6123	SourceDBClusterParameterGroupIdentifier *string `type:"string" required:"true"`
6124
6125	// The tags that are to be assigned to the parameter group.
6126	Tags []*Tag `locationNameList:"Tag" type:"list"`
6127
6128	// A description for the copied cluster parameter group.
6129	//
6130	// TargetDBClusterParameterGroupDescription is a required field
6131	TargetDBClusterParameterGroupDescription *string `type:"string" required:"true"`
6132
6133	// The identifier for the copied cluster parameter group.
6134	//
6135	// Constraints:
6136	//
6137	//    * Cannot be null, empty, or blank.
6138	//
6139	//    * Must contain from 1 to 255 letters, numbers, or hyphens.
6140	//
6141	//    * The first character must be a letter.
6142	//
6143	//    * Cannot end with a hyphen or contain two consecutive hyphens.
6144	//
6145	// Example: my-cluster-param-group1
6146	//
6147	// TargetDBClusterParameterGroupIdentifier is a required field
6148	TargetDBClusterParameterGroupIdentifier *string `type:"string" required:"true"`
6149}
6150
6151// String returns the string representation.
6152//
6153// API parameter values that are decorated as "sensitive" in the API will not
6154// be included in the string output. The member name will be present, but the
6155// value will be replaced with "sensitive".
6156func (s CopyDBClusterParameterGroupInput) String() string {
6157	return awsutil.Prettify(s)
6158}
6159
6160// GoString returns the string representation.
6161//
6162// API parameter values that are decorated as "sensitive" in the API will not
6163// be included in the string output. The member name will be present, but the
6164// value will be replaced with "sensitive".
6165func (s CopyDBClusterParameterGroupInput) GoString() string {
6166	return s.String()
6167}
6168
6169// Validate inspects the fields of the type to determine if they are valid.
6170func (s *CopyDBClusterParameterGroupInput) Validate() error {
6171	invalidParams := request.ErrInvalidParams{Context: "CopyDBClusterParameterGroupInput"}
6172	if s.SourceDBClusterParameterGroupIdentifier == nil {
6173		invalidParams.Add(request.NewErrParamRequired("SourceDBClusterParameterGroupIdentifier"))
6174	}
6175	if s.TargetDBClusterParameterGroupDescription == nil {
6176		invalidParams.Add(request.NewErrParamRequired("TargetDBClusterParameterGroupDescription"))
6177	}
6178	if s.TargetDBClusterParameterGroupIdentifier == nil {
6179		invalidParams.Add(request.NewErrParamRequired("TargetDBClusterParameterGroupIdentifier"))
6180	}
6181
6182	if invalidParams.Len() > 0 {
6183		return invalidParams
6184	}
6185	return nil
6186}
6187
6188// SetSourceDBClusterParameterGroupIdentifier sets the SourceDBClusterParameterGroupIdentifier field's value.
6189func (s *CopyDBClusterParameterGroupInput) SetSourceDBClusterParameterGroupIdentifier(v string) *CopyDBClusterParameterGroupInput {
6190	s.SourceDBClusterParameterGroupIdentifier = &v
6191	return s
6192}
6193
6194// SetTags sets the Tags field's value.
6195func (s *CopyDBClusterParameterGroupInput) SetTags(v []*Tag) *CopyDBClusterParameterGroupInput {
6196	s.Tags = v
6197	return s
6198}
6199
6200// SetTargetDBClusterParameterGroupDescription sets the TargetDBClusterParameterGroupDescription field's value.
6201func (s *CopyDBClusterParameterGroupInput) SetTargetDBClusterParameterGroupDescription(v string) *CopyDBClusterParameterGroupInput {
6202	s.TargetDBClusterParameterGroupDescription = &v
6203	return s
6204}
6205
6206// SetTargetDBClusterParameterGroupIdentifier sets the TargetDBClusterParameterGroupIdentifier field's value.
6207func (s *CopyDBClusterParameterGroupInput) SetTargetDBClusterParameterGroupIdentifier(v string) *CopyDBClusterParameterGroupInput {
6208	s.TargetDBClusterParameterGroupIdentifier = &v
6209	return s
6210}
6211
6212type CopyDBClusterParameterGroupOutput struct {
6213	_ struct{} `type:"structure"`
6214
6215	// Detailed information about a cluster parameter group.
6216	DBClusterParameterGroup *DBClusterParameterGroup `type:"structure"`
6217}
6218
6219// String returns the string representation.
6220//
6221// API parameter values that are decorated as "sensitive" in the API will not
6222// be included in the string output. The member name will be present, but the
6223// value will be replaced with "sensitive".
6224func (s CopyDBClusterParameterGroupOutput) String() string {
6225	return awsutil.Prettify(s)
6226}
6227
6228// GoString returns the string representation.
6229//
6230// API parameter values that are decorated as "sensitive" in the API will not
6231// be included in the string output. The member name will be present, but the
6232// value will be replaced with "sensitive".
6233func (s CopyDBClusterParameterGroupOutput) GoString() string {
6234	return s.String()
6235}
6236
6237// SetDBClusterParameterGroup sets the DBClusterParameterGroup field's value.
6238func (s *CopyDBClusterParameterGroupOutput) SetDBClusterParameterGroup(v *DBClusterParameterGroup) *CopyDBClusterParameterGroupOutput {
6239	s.DBClusterParameterGroup = v
6240	return s
6241}
6242
6243// Represents the input to CopyDBClusterSnapshot.
6244type CopyDBClusterSnapshotInput struct {
6245	_ struct{} `type:"structure"`
6246
6247	// Set to true to copy all tags from the source cluster snapshot to the target
6248	// cluster snapshot, and otherwise false. The default is false.
6249	CopyTags *bool `type:"boolean"`
6250
6251	// DestinationRegion is used for presigning the request to a given region.
6252	DestinationRegion *string `type:"string"`
6253
6254	// The KMS key ID for an encrypted cluster snapshot. The KMS key ID is the Amazon
6255	// Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS
6256	// encryption key.
6257	//
6258	// If you copy an encrypted cluster snapshot from your account, you can specify
6259	// a value for KmsKeyId to encrypt the copy with a new KMS encryption key. If
6260	// you don't specify a value for KmsKeyId, then the copy of the cluster snapshot
6261	// is encrypted with the same KMS key as the source cluster snapshot.
6262	//
6263	// If you copy an encrypted cluster snapshot that is shared from another account,
6264	// then you must specify a value for KmsKeyId.
6265	//
6266	// To copy an encrypted cluster snapshot to another Region, set KmsKeyId to
6267	// the KMS key ID that you want to use to encrypt the copy of the cluster snapshot
6268	// in the destination Region. KMS encryption keys are specific to the Region
6269	// that they are created in, and you can't use encryption keys from one Region
6270	// in another Region.
6271	//
6272	// If you copy an unencrypted cluster snapshot and specify a value for the KmsKeyId
6273	// parameter, an error is returned.
6274	KmsKeyId *string `type:"string"`
6275
6276	// The URL that contains a Signature Version 4 signed request for theCopyDBClusterSnapshot
6277	// API action in the Region that contains the source cluster snapshot to copy.
6278	// You must use the PreSignedUrl parameter when copying a cluster snapshot from
6279	// another Region.
6280	//
6281	// If you are using an Amazon Web Services SDK tool or the CLI, you can specify
6282	// SourceRegion (or --source-region for the CLI) instead of specifying PreSignedUrl
6283	// manually. Specifying SourceRegion autogenerates a pre-signed URL that is
6284	// a valid request for the operation that can be executed in the source Region.
6285	//
6286	// The presigned URL must be a valid request for the CopyDBClusterSnapshot API
6287	// action that can be executed in the source Region that contains the cluster
6288	// snapshot to be copied. The presigned URL request must contain the following
6289	// parameter values:
6290	//
6291	//    * SourceRegion - The ID of the region that contains the snapshot to be
6292	//    copied.
6293	//
6294	//    * SourceDBClusterSnapshotIdentifier - The identifier for the the encrypted
6295	//    cluster snapshot to be copied. This identifier must be in the Amazon Resource
6296	//    Name (ARN) format for the source Region. For example, if you are copying
6297	//    an encrypted cluster snapshot from the us-east-1 Region, then your SourceDBClusterSnapshotIdentifier
6298	//    looks something like the following: arn:aws:rds:us-east-1:12345678012:sample-cluster:sample-cluster-snapshot.
6299	//
6300	//    * TargetDBClusterSnapshotIdentifier - The identifier for the new cluster
6301	//    snapshot to be created. This parameter isn't case sensitive.
6302	PreSignedUrl *string `type:"string"`
6303
6304	// The identifier of the cluster snapshot to copy. This parameter is not case
6305	// sensitive.
6306	//
6307	// Constraints:
6308	//
6309	//    * Must specify a valid system snapshot in the available state.
6310	//
6311	//    * If the source snapshot is in the same Region as the copy, specify a
6312	//    valid snapshot identifier.
6313	//
6314	//    * If the source snapshot is in a different Region than the copy, specify
6315	//    a valid cluster snapshot ARN.
6316	//
6317	// Example: my-cluster-snapshot1
6318	//
6319	// SourceDBClusterSnapshotIdentifier is a required field
6320	SourceDBClusterSnapshotIdentifier *string `type:"string" required:"true"`
6321
6322	// SourceRegion is the source region where the resource exists. This is not
6323	// sent over the wire and is only used for presigning. This value should always
6324	// have the same region as the source ARN.
6325	SourceRegion *string `type:"string" ignore:"true"`
6326
6327	// The tags to be assigned to the cluster snapshot.
6328	Tags []*Tag `locationNameList:"Tag" type:"list"`
6329
6330	// The identifier of the new cluster snapshot to create from the source cluster
6331	// snapshot. This parameter is not case sensitive.
6332	//
6333	// Constraints:
6334	//
6335	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
6336	//
6337	//    * The first character must be a letter.
6338	//
6339	//    * Cannot end with a hyphen or contain two consecutive hyphens.
6340	//
6341	// Example: my-cluster-snapshot2
6342	//
6343	// TargetDBClusterSnapshotIdentifier is a required field
6344	TargetDBClusterSnapshotIdentifier *string `type:"string" required:"true"`
6345}
6346
6347// String returns the string representation.
6348//
6349// API parameter values that are decorated as "sensitive" in the API will not
6350// be included in the string output. The member name will be present, but the
6351// value will be replaced with "sensitive".
6352func (s CopyDBClusterSnapshotInput) String() string {
6353	return awsutil.Prettify(s)
6354}
6355
6356// GoString returns the string representation.
6357//
6358// API parameter values that are decorated as "sensitive" in the API will not
6359// be included in the string output. The member name will be present, but the
6360// value will be replaced with "sensitive".
6361func (s CopyDBClusterSnapshotInput) GoString() string {
6362	return s.String()
6363}
6364
6365// Validate inspects the fields of the type to determine if they are valid.
6366func (s *CopyDBClusterSnapshotInput) Validate() error {
6367	invalidParams := request.ErrInvalidParams{Context: "CopyDBClusterSnapshotInput"}
6368	if s.SourceDBClusterSnapshotIdentifier == nil {
6369		invalidParams.Add(request.NewErrParamRequired("SourceDBClusterSnapshotIdentifier"))
6370	}
6371	if s.TargetDBClusterSnapshotIdentifier == nil {
6372		invalidParams.Add(request.NewErrParamRequired("TargetDBClusterSnapshotIdentifier"))
6373	}
6374
6375	if invalidParams.Len() > 0 {
6376		return invalidParams
6377	}
6378	return nil
6379}
6380
6381// SetCopyTags sets the CopyTags field's value.
6382func (s *CopyDBClusterSnapshotInput) SetCopyTags(v bool) *CopyDBClusterSnapshotInput {
6383	s.CopyTags = &v
6384	return s
6385}
6386
6387// SetDestinationRegion sets the DestinationRegion field's value.
6388func (s *CopyDBClusterSnapshotInput) SetDestinationRegion(v string) *CopyDBClusterSnapshotInput {
6389	s.DestinationRegion = &v
6390	return s
6391}
6392
6393// SetKmsKeyId sets the KmsKeyId field's value.
6394func (s *CopyDBClusterSnapshotInput) SetKmsKeyId(v string) *CopyDBClusterSnapshotInput {
6395	s.KmsKeyId = &v
6396	return s
6397}
6398
6399// SetPreSignedUrl sets the PreSignedUrl field's value.
6400func (s *CopyDBClusterSnapshotInput) SetPreSignedUrl(v string) *CopyDBClusterSnapshotInput {
6401	s.PreSignedUrl = &v
6402	return s
6403}
6404
6405// SetSourceDBClusterSnapshotIdentifier sets the SourceDBClusterSnapshotIdentifier field's value.
6406func (s *CopyDBClusterSnapshotInput) SetSourceDBClusterSnapshotIdentifier(v string) *CopyDBClusterSnapshotInput {
6407	s.SourceDBClusterSnapshotIdentifier = &v
6408	return s
6409}
6410
6411// SetSourceRegion sets the SourceRegion field's value.
6412func (s *CopyDBClusterSnapshotInput) SetSourceRegion(v string) *CopyDBClusterSnapshotInput {
6413	s.SourceRegion = &v
6414	return s
6415}
6416
6417// SetTags sets the Tags field's value.
6418func (s *CopyDBClusterSnapshotInput) SetTags(v []*Tag) *CopyDBClusterSnapshotInput {
6419	s.Tags = v
6420	return s
6421}
6422
6423// SetTargetDBClusterSnapshotIdentifier sets the TargetDBClusterSnapshotIdentifier field's value.
6424func (s *CopyDBClusterSnapshotInput) SetTargetDBClusterSnapshotIdentifier(v string) *CopyDBClusterSnapshotInput {
6425	s.TargetDBClusterSnapshotIdentifier = &v
6426	return s
6427}
6428
6429type CopyDBClusterSnapshotOutput struct {
6430	_ struct{} `type:"structure"`
6431
6432	// Detailed information about a cluster snapshot.
6433	DBClusterSnapshot *DBClusterSnapshot `type:"structure"`
6434}
6435
6436// String returns the string representation.
6437//
6438// API parameter values that are decorated as "sensitive" in the API will not
6439// be included in the string output. The member name will be present, but the
6440// value will be replaced with "sensitive".
6441func (s CopyDBClusterSnapshotOutput) String() string {
6442	return awsutil.Prettify(s)
6443}
6444
6445// GoString returns the string representation.
6446//
6447// API parameter values that are decorated as "sensitive" in the API will not
6448// be included in the string output. The member name will be present, but the
6449// value will be replaced with "sensitive".
6450func (s CopyDBClusterSnapshotOutput) GoString() string {
6451	return s.String()
6452}
6453
6454// SetDBClusterSnapshot sets the DBClusterSnapshot field's value.
6455func (s *CopyDBClusterSnapshotOutput) SetDBClusterSnapshot(v *DBClusterSnapshot) *CopyDBClusterSnapshotOutput {
6456	s.DBClusterSnapshot = v
6457	return s
6458}
6459
6460// Represents the input to CreateDBCluster.
6461type CreateDBClusterInput struct {
6462	_ struct{} `type:"structure"`
6463
6464	// A list of Amazon EC2 Availability Zones that instances in the cluster can
6465	// be created in.
6466	AvailabilityZones []*string `locationNameList:"AvailabilityZone" type:"list"`
6467
6468	// The number of days for which automated backups are retained. You must specify
6469	// a minimum value of 1.
6470	//
6471	// Default: 1
6472	//
6473	// Constraints:
6474	//
6475	//    * Must be a value from 1 to 35.
6476	BackupRetentionPeriod *int64 `type:"integer"`
6477
6478	// The cluster identifier. This parameter is stored as a lowercase string.
6479	//
6480	// Constraints:
6481	//
6482	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
6483	//
6484	//    * The first character must be a letter.
6485	//
6486	//    * Cannot end with a hyphen or contain two consecutive hyphens.
6487	//
6488	// Example: my-cluster
6489	//
6490	// DBClusterIdentifier is a required field
6491	DBClusterIdentifier *string `type:"string" required:"true"`
6492
6493	// The name of the cluster parameter group to associate with this cluster.
6494	DBClusterParameterGroupName *string `type:"string"`
6495
6496	// A subnet group to associate with this cluster.
6497	//
6498	// Constraints: Must match the name of an existing DBSubnetGroup. Must not be
6499	// default.
6500	//
6501	// Example: mySubnetgroup
6502	DBSubnetGroupName *string `type:"string"`
6503
6504	// Specifies whether this cluster can be deleted. If DeletionProtection is enabled,
6505	// the cluster cannot be deleted unless it is modified and DeletionProtection
6506	// is disabled. DeletionProtection protects clusters from being accidentally
6507	// deleted.
6508	DeletionProtection *bool `type:"boolean"`
6509
6510	// DestinationRegion is used for presigning the request to a given region.
6511	DestinationRegion *string `type:"string"`
6512
6513	// A list of log types that need to be enabled for exporting to Amazon CloudWatch
6514	// Logs. You can enable audit logs or profiler logs. For more information, see
6515	// Auditing Amazon DocumentDB Events (https://docs.aws.amazon.com/documentdb/latest/developerguide/event-auditing.html)
6516	// and Profiling Amazon DocumentDB Operations (https://docs.aws.amazon.com/documentdb/latest/developerguide/profiling.html).
6517	EnableCloudwatchLogsExports []*string `type:"list"`
6518
6519	// The name of the database engine to be used for this cluster.
6520	//
6521	// Valid values: docdb
6522	//
6523	// Engine is a required field
6524	Engine *string `type:"string" required:"true"`
6525
6526	// The version number of the database engine to use. The --engine-version will
6527	// default to the latest major engine version. For production workloads, we
6528	// recommend explicitly declaring this parameter with the intended major engine
6529	// version.
6530	EngineVersion *string `type:"string"`
6531
6532	// The cluster identifier of the new global cluster.
6533	GlobalClusterIdentifier *string `min:"1" type:"string"`
6534
6535	// The KMS key identifier for an encrypted cluster.
6536	//
6537	// The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption
6538	// key. If you are creating a cluster using the same account that owns the KMS
6539	// encryption key that is used to encrypt the new cluster, you can use the KMS
6540	// key alias instead of the ARN for the KMS encryption key.
6541	//
6542	// If an encryption key is not specified in KmsKeyId:
6543	//
6544	//    * If the StorageEncrypted parameter is true, Amazon DocumentDB uses your
6545	//    default encryption key.
6546	//
6547	// KMS creates the default encryption key for your account. Your account has
6548	// a different default encryption key for each Regions.
6549	KmsKeyId *string `type:"string"`
6550
6551	// The password for the master database user. This password can contain any
6552	// printable ASCII character except forward slash (/), double quote ("), or
6553	// the "at" symbol (@).
6554	//
6555	// Constraints: Must contain from 8 to 100 characters.
6556	MasterUserPassword *string `type:"string"`
6557
6558	// The name of the master user for the cluster.
6559	//
6560	// Constraints:
6561	//
6562	//    * Must be from 1 to 63 letters or numbers.
6563	//
6564	//    * The first character must be a letter.
6565	//
6566	//    * Cannot be a reserved word for the chosen database engine.
6567	MasterUsername *string `type:"string"`
6568
6569	// The port number on which the instances in the cluster accept connections.
6570	Port *int64 `type:"integer"`
6571
6572	// Not currently supported.
6573	PreSignedUrl *string `type:"string"`
6574
6575	// The daily time range during which automated backups are created if automated
6576	// backups are enabled using the BackupRetentionPeriod parameter.
6577	//
6578	// The default is a 30-minute window selected at random from an 8-hour block
6579	// of time for each Region.
6580	//
6581	// Constraints:
6582	//
6583	//    * Must be in the format hh24:mi-hh24:mi.
6584	//
6585	//    * Must be in Universal Coordinated Time (UTC).
6586	//
6587	//    * Must not conflict with the preferred maintenance window.
6588	//
6589	//    * Must be at least 30 minutes.
6590	PreferredBackupWindow *string `type:"string"`
6591
6592	// The weekly time range during which system maintenance can occur, in Universal
6593	// Coordinated Time (UTC).
6594	//
6595	// Format: ddd:hh24:mi-ddd:hh24:mi
6596	//
6597	// The default is a 30-minute window selected at random from an 8-hour block
6598	// of time for each Region, occurring on a random day of the week.
6599	//
6600	// Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
6601	//
6602	// Constraints: Minimum 30-minute window.
6603	PreferredMaintenanceWindow *string `type:"string"`
6604
6605	// SourceRegion is the source region where the resource exists. This is not
6606	// sent over the wire and is only used for presigning. This value should always
6607	// have the same region as the source ARN.
6608	SourceRegion *string `type:"string" ignore:"true"`
6609
6610	// Specifies whether the cluster is encrypted.
6611	StorageEncrypted *bool `type:"boolean"`
6612
6613	// The tags to be assigned to the cluster.
6614	Tags []*Tag `locationNameList:"Tag" type:"list"`
6615
6616	// A list of EC2 VPC security groups to associate with this cluster.
6617	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
6618}
6619
6620// String returns the string representation.
6621//
6622// API parameter values that are decorated as "sensitive" in the API will not
6623// be included in the string output. The member name will be present, but the
6624// value will be replaced with "sensitive".
6625func (s CreateDBClusterInput) String() string {
6626	return awsutil.Prettify(s)
6627}
6628
6629// GoString returns the string representation.
6630//
6631// API parameter values that are decorated as "sensitive" in the API will not
6632// be included in the string output. The member name will be present, but the
6633// value will be replaced with "sensitive".
6634func (s CreateDBClusterInput) GoString() string {
6635	return s.String()
6636}
6637
6638// Validate inspects the fields of the type to determine if they are valid.
6639func (s *CreateDBClusterInput) Validate() error {
6640	invalidParams := request.ErrInvalidParams{Context: "CreateDBClusterInput"}
6641	if s.DBClusterIdentifier == nil {
6642		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
6643	}
6644	if s.Engine == nil {
6645		invalidParams.Add(request.NewErrParamRequired("Engine"))
6646	}
6647	if s.GlobalClusterIdentifier != nil && len(*s.GlobalClusterIdentifier) < 1 {
6648		invalidParams.Add(request.NewErrParamMinLen("GlobalClusterIdentifier", 1))
6649	}
6650
6651	if invalidParams.Len() > 0 {
6652		return invalidParams
6653	}
6654	return nil
6655}
6656
6657// SetAvailabilityZones sets the AvailabilityZones field's value.
6658func (s *CreateDBClusterInput) SetAvailabilityZones(v []*string) *CreateDBClusterInput {
6659	s.AvailabilityZones = v
6660	return s
6661}
6662
6663// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value.
6664func (s *CreateDBClusterInput) SetBackupRetentionPeriod(v int64) *CreateDBClusterInput {
6665	s.BackupRetentionPeriod = &v
6666	return s
6667}
6668
6669// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
6670func (s *CreateDBClusterInput) SetDBClusterIdentifier(v string) *CreateDBClusterInput {
6671	s.DBClusterIdentifier = &v
6672	return s
6673}
6674
6675// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
6676func (s *CreateDBClusterInput) SetDBClusterParameterGroupName(v string) *CreateDBClusterInput {
6677	s.DBClusterParameterGroupName = &v
6678	return s
6679}
6680
6681// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
6682func (s *CreateDBClusterInput) SetDBSubnetGroupName(v string) *CreateDBClusterInput {
6683	s.DBSubnetGroupName = &v
6684	return s
6685}
6686
6687// SetDeletionProtection sets the DeletionProtection field's value.
6688func (s *CreateDBClusterInput) SetDeletionProtection(v bool) *CreateDBClusterInput {
6689	s.DeletionProtection = &v
6690	return s
6691}
6692
6693// SetDestinationRegion sets the DestinationRegion field's value.
6694func (s *CreateDBClusterInput) SetDestinationRegion(v string) *CreateDBClusterInput {
6695	s.DestinationRegion = &v
6696	return s
6697}
6698
6699// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value.
6700func (s *CreateDBClusterInput) SetEnableCloudwatchLogsExports(v []*string) *CreateDBClusterInput {
6701	s.EnableCloudwatchLogsExports = v
6702	return s
6703}
6704
6705// SetEngine sets the Engine field's value.
6706func (s *CreateDBClusterInput) SetEngine(v string) *CreateDBClusterInput {
6707	s.Engine = &v
6708	return s
6709}
6710
6711// SetEngineVersion sets the EngineVersion field's value.
6712func (s *CreateDBClusterInput) SetEngineVersion(v string) *CreateDBClusterInput {
6713	s.EngineVersion = &v
6714	return s
6715}
6716
6717// SetGlobalClusterIdentifier sets the GlobalClusterIdentifier field's value.
6718func (s *CreateDBClusterInput) SetGlobalClusterIdentifier(v string) *CreateDBClusterInput {
6719	s.GlobalClusterIdentifier = &v
6720	return s
6721}
6722
6723// SetKmsKeyId sets the KmsKeyId field's value.
6724func (s *CreateDBClusterInput) SetKmsKeyId(v string) *CreateDBClusterInput {
6725	s.KmsKeyId = &v
6726	return s
6727}
6728
6729// SetMasterUserPassword sets the MasterUserPassword field's value.
6730func (s *CreateDBClusterInput) SetMasterUserPassword(v string) *CreateDBClusterInput {
6731	s.MasterUserPassword = &v
6732	return s
6733}
6734
6735// SetMasterUsername sets the MasterUsername field's value.
6736func (s *CreateDBClusterInput) SetMasterUsername(v string) *CreateDBClusterInput {
6737	s.MasterUsername = &v
6738	return s
6739}
6740
6741// SetPort sets the Port field's value.
6742func (s *CreateDBClusterInput) SetPort(v int64) *CreateDBClusterInput {
6743	s.Port = &v
6744	return s
6745}
6746
6747// SetPreSignedUrl sets the PreSignedUrl field's value.
6748func (s *CreateDBClusterInput) SetPreSignedUrl(v string) *CreateDBClusterInput {
6749	s.PreSignedUrl = &v
6750	return s
6751}
6752
6753// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
6754func (s *CreateDBClusterInput) SetPreferredBackupWindow(v string) *CreateDBClusterInput {
6755	s.PreferredBackupWindow = &v
6756	return s
6757}
6758
6759// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
6760func (s *CreateDBClusterInput) SetPreferredMaintenanceWindow(v string) *CreateDBClusterInput {
6761	s.PreferredMaintenanceWindow = &v
6762	return s
6763}
6764
6765// SetSourceRegion sets the SourceRegion field's value.
6766func (s *CreateDBClusterInput) SetSourceRegion(v string) *CreateDBClusterInput {
6767	s.SourceRegion = &v
6768	return s
6769}
6770
6771// SetStorageEncrypted sets the StorageEncrypted field's value.
6772func (s *CreateDBClusterInput) SetStorageEncrypted(v bool) *CreateDBClusterInput {
6773	s.StorageEncrypted = &v
6774	return s
6775}
6776
6777// SetTags sets the Tags field's value.
6778func (s *CreateDBClusterInput) SetTags(v []*Tag) *CreateDBClusterInput {
6779	s.Tags = v
6780	return s
6781}
6782
6783// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
6784func (s *CreateDBClusterInput) SetVpcSecurityGroupIds(v []*string) *CreateDBClusterInput {
6785	s.VpcSecurityGroupIds = v
6786	return s
6787}
6788
6789type CreateDBClusterOutput struct {
6790	_ struct{} `type:"structure"`
6791
6792	// Detailed information about a cluster.
6793	DBCluster *DBCluster `type:"structure"`
6794}
6795
6796// String returns the string representation.
6797//
6798// API parameter values that are decorated as "sensitive" in the API will not
6799// be included in the string output. The member name will be present, but the
6800// value will be replaced with "sensitive".
6801func (s CreateDBClusterOutput) String() string {
6802	return awsutil.Prettify(s)
6803}
6804
6805// GoString returns the string representation.
6806//
6807// API parameter values that are decorated as "sensitive" in the API will not
6808// be included in the string output. The member name will be present, but the
6809// value will be replaced with "sensitive".
6810func (s CreateDBClusterOutput) GoString() string {
6811	return s.String()
6812}
6813
6814// SetDBCluster sets the DBCluster field's value.
6815func (s *CreateDBClusterOutput) SetDBCluster(v *DBCluster) *CreateDBClusterOutput {
6816	s.DBCluster = v
6817	return s
6818}
6819
6820// Represents the input of CreateDBClusterParameterGroup.
6821type CreateDBClusterParameterGroupInput struct {
6822	_ struct{} `type:"structure"`
6823
6824	// The name of the cluster parameter group.
6825	//
6826	// Constraints:
6827	//
6828	//    * Must not match the name of an existing DBClusterParameterGroup.
6829	//
6830	// This value is stored as a lowercase string.
6831	//
6832	// DBClusterParameterGroupName is a required field
6833	DBClusterParameterGroupName *string `type:"string" required:"true"`
6834
6835	// The cluster parameter group family name.
6836	//
6837	// DBParameterGroupFamily is a required field
6838	DBParameterGroupFamily *string `type:"string" required:"true"`
6839
6840	// The description for the cluster parameter group.
6841	//
6842	// Description is a required field
6843	Description *string `type:"string" required:"true"`
6844
6845	// The tags to be assigned to the cluster parameter group.
6846	Tags []*Tag `locationNameList:"Tag" type:"list"`
6847}
6848
6849// String returns the string representation.
6850//
6851// API parameter values that are decorated as "sensitive" in the API will not
6852// be included in the string output. The member name will be present, but the
6853// value will be replaced with "sensitive".
6854func (s CreateDBClusterParameterGroupInput) String() string {
6855	return awsutil.Prettify(s)
6856}
6857
6858// GoString returns the string representation.
6859//
6860// API parameter values that are decorated as "sensitive" in the API will not
6861// be included in the string output. The member name will be present, but the
6862// value will be replaced with "sensitive".
6863func (s CreateDBClusterParameterGroupInput) GoString() string {
6864	return s.String()
6865}
6866
6867// Validate inspects the fields of the type to determine if they are valid.
6868func (s *CreateDBClusterParameterGroupInput) Validate() error {
6869	invalidParams := request.ErrInvalidParams{Context: "CreateDBClusterParameterGroupInput"}
6870	if s.DBClusterParameterGroupName == nil {
6871		invalidParams.Add(request.NewErrParamRequired("DBClusterParameterGroupName"))
6872	}
6873	if s.DBParameterGroupFamily == nil {
6874		invalidParams.Add(request.NewErrParamRequired("DBParameterGroupFamily"))
6875	}
6876	if s.Description == nil {
6877		invalidParams.Add(request.NewErrParamRequired("Description"))
6878	}
6879
6880	if invalidParams.Len() > 0 {
6881		return invalidParams
6882	}
6883	return nil
6884}
6885
6886// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
6887func (s *CreateDBClusterParameterGroupInput) SetDBClusterParameterGroupName(v string) *CreateDBClusterParameterGroupInput {
6888	s.DBClusterParameterGroupName = &v
6889	return s
6890}
6891
6892// SetDBParameterGroupFamily sets the DBParameterGroupFamily field's value.
6893func (s *CreateDBClusterParameterGroupInput) SetDBParameterGroupFamily(v string) *CreateDBClusterParameterGroupInput {
6894	s.DBParameterGroupFamily = &v
6895	return s
6896}
6897
6898// SetDescription sets the Description field's value.
6899func (s *CreateDBClusterParameterGroupInput) SetDescription(v string) *CreateDBClusterParameterGroupInput {
6900	s.Description = &v
6901	return s
6902}
6903
6904// SetTags sets the Tags field's value.
6905func (s *CreateDBClusterParameterGroupInput) SetTags(v []*Tag) *CreateDBClusterParameterGroupInput {
6906	s.Tags = v
6907	return s
6908}
6909
6910type CreateDBClusterParameterGroupOutput struct {
6911	_ struct{} `type:"structure"`
6912
6913	// Detailed information about a cluster parameter group.
6914	DBClusterParameterGroup *DBClusterParameterGroup `type:"structure"`
6915}
6916
6917// String returns the string representation.
6918//
6919// API parameter values that are decorated as "sensitive" in the API will not
6920// be included in the string output. The member name will be present, but the
6921// value will be replaced with "sensitive".
6922func (s CreateDBClusterParameterGroupOutput) String() string {
6923	return awsutil.Prettify(s)
6924}
6925
6926// GoString returns the string representation.
6927//
6928// API parameter values that are decorated as "sensitive" in the API will not
6929// be included in the string output. The member name will be present, but the
6930// value will be replaced with "sensitive".
6931func (s CreateDBClusterParameterGroupOutput) GoString() string {
6932	return s.String()
6933}
6934
6935// SetDBClusterParameterGroup sets the DBClusterParameterGroup field's value.
6936func (s *CreateDBClusterParameterGroupOutput) SetDBClusterParameterGroup(v *DBClusterParameterGroup) *CreateDBClusterParameterGroupOutput {
6937	s.DBClusterParameterGroup = v
6938	return s
6939}
6940
6941// Represents the input of CreateDBClusterSnapshot.
6942type CreateDBClusterSnapshotInput struct {
6943	_ struct{} `type:"structure"`
6944
6945	// The identifier of the cluster to create a snapshot for. This parameter is
6946	// not case sensitive.
6947	//
6948	// Constraints:
6949	//
6950	//    * Must match the identifier of an existing DBCluster.
6951	//
6952	// Example: my-cluster
6953	//
6954	// DBClusterIdentifier is a required field
6955	DBClusterIdentifier *string `type:"string" required:"true"`
6956
6957	// The identifier of the cluster snapshot. This parameter is stored as a lowercase
6958	// string.
6959	//
6960	// Constraints:
6961	//
6962	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
6963	//
6964	//    * The first character must be a letter.
6965	//
6966	//    * Cannot end with a hyphen or contain two consecutive hyphens.
6967	//
6968	// Example: my-cluster-snapshot1
6969	//
6970	// DBClusterSnapshotIdentifier is a required field
6971	DBClusterSnapshotIdentifier *string `type:"string" required:"true"`
6972
6973	// The tags to be assigned to the cluster snapshot.
6974	Tags []*Tag `locationNameList:"Tag" type:"list"`
6975}
6976
6977// String returns the string representation.
6978//
6979// API parameter values that are decorated as "sensitive" in the API will not
6980// be included in the string output. The member name will be present, but the
6981// value will be replaced with "sensitive".
6982func (s CreateDBClusterSnapshotInput) String() string {
6983	return awsutil.Prettify(s)
6984}
6985
6986// GoString returns the string representation.
6987//
6988// API parameter values that are decorated as "sensitive" in the API will not
6989// be included in the string output. The member name will be present, but the
6990// value will be replaced with "sensitive".
6991func (s CreateDBClusterSnapshotInput) GoString() string {
6992	return s.String()
6993}
6994
6995// Validate inspects the fields of the type to determine if they are valid.
6996func (s *CreateDBClusterSnapshotInput) Validate() error {
6997	invalidParams := request.ErrInvalidParams{Context: "CreateDBClusterSnapshotInput"}
6998	if s.DBClusterIdentifier == nil {
6999		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
7000	}
7001	if s.DBClusterSnapshotIdentifier == nil {
7002		invalidParams.Add(request.NewErrParamRequired("DBClusterSnapshotIdentifier"))
7003	}
7004
7005	if invalidParams.Len() > 0 {
7006		return invalidParams
7007	}
7008	return nil
7009}
7010
7011// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
7012func (s *CreateDBClusterSnapshotInput) SetDBClusterIdentifier(v string) *CreateDBClusterSnapshotInput {
7013	s.DBClusterIdentifier = &v
7014	return s
7015}
7016
7017// SetDBClusterSnapshotIdentifier sets the DBClusterSnapshotIdentifier field's value.
7018func (s *CreateDBClusterSnapshotInput) SetDBClusterSnapshotIdentifier(v string) *CreateDBClusterSnapshotInput {
7019	s.DBClusterSnapshotIdentifier = &v
7020	return s
7021}
7022
7023// SetTags sets the Tags field's value.
7024func (s *CreateDBClusterSnapshotInput) SetTags(v []*Tag) *CreateDBClusterSnapshotInput {
7025	s.Tags = v
7026	return s
7027}
7028
7029type CreateDBClusterSnapshotOutput struct {
7030	_ struct{} `type:"structure"`
7031
7032	// Detailed information about a cluster snapshot.
7033	DBClusterSnapshot *DBClusterSnapshot `type:"structure"`
7034}
7035
7036// String returns the string representation.
7037//
7038// API parameter values that are decorated as "sensitive" in the API will not
7039// be included in the string output. The member name will be present, but the
7040// value will be replaced with "sensitive".
7041func (s CreateDBClusterSnapshotOutput) String() string {
7042	return awsutil.Prettify(s)
7043}
7044
7045// GoString returns the string representation.
7046//
7047// API parameter values that are decorated as "sensitive" in the API will not
7048// be included in the string output. The member name will be present, but the
7049// value will be replaced with "sensitive".
7050func (s CreateDBClusterSnapshotOutput) GoString() string {
7051	return s.String()
7052}
7053
7054// SetDBClusterSnapshot sets the DBClusterSnapshot field's value.
7055func (s *CreateDBClusterSnapshotOutput) SetDBClusterSnapshot(v *DBClusterSnapshot) *CreateDBClusterSnapshotOutput {
7056	s.DBClusterSnapshot = v
7057	return s
7058}
7059
7060// Represents the input to CreateDBInstance.
7061type CreateDBInstanceInput struct {
7062	_ struct{} `type:"structure"`
7063
7064	// This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does
7065	// not perform minor version upgrades regardless of the value set.
7066	//
7067	// Default: false
7068	AutoMinorVersionUpgrade *bool `type:"boolean"`
7069
7070	// The Amazon EC2 Availability Zone that the instance is created in.
7071	//
7072	// Default: A random, system-chosen Availability Zone in the endpoint's Region.
7073	//
7074	// Example: us-east-1d
7075	AvailabilityZone *string `type:"string"`
7076
7077	// The identifier of the cluster that the instance will belong to.
7078	//
7079	// DBClusterIdentifier is a required field
7080	DBClusterIdentifier *string `type:"string" required:"true"`
7081
7082	// The compute and memory capacity of the instance; for example, db.r5.large.
7083	//
7084	// DBInstanceClass is a required field
7085	DBInstanceClass *string `type:"string" required:"true"`
7086
7087	// The instance identifier. This parameter is stored as a lowercase string.
7088	//
7089	// Constraints:
7090	//
7091	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
7092	//
7093	//    * The first character must be a letter.
7094	//
7095	//    * Cannot end with a hyphen or contain two consecutive hyphens.
7096	//
7097	// Example: mydbinstance
7098	//
7099	// DBInstanceIdentifier is a required field
7100	DBInstanceIdentifier *string `type:"string" required:"true"`
7101
7102	// The name of the database engine to be used for this instance.
7103	//
7104	// Valid value: docdb
7105	//
7106	// Engine is a required field
7107	Engine *string `type:"string" required:"true"`
7108
7109	// The time range each week during which system maintenance can occur, in Universal
7110	// Coordinated Time (UTC).
7111	//
7112	// Format: ddd:hh24:mi-ddd:hh24:mi
7113	//
7114	// The default is a 30-minute window selected at random from an 8-hour block
7115	// of time for each Region, occurring on a random day of the week.
7116	//
7117	// Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
7118	//
7119	// Constraints: Minimum 30-minute window.
7120	PreferredMaintenanceWindow *string `type:"string"`
7121
7122	// A value that specifies the order in which an Amazon DocumentDB replica is
7123	// promoted to the primary instance after a failure of the existing primary
7124	// instance.
7125	//
7126	// Default: 1
7127	//
7128	// Valid values: 0-15
7129	PromotionTier *int64 `type:"integer"`
7130
7131	// The tags to be assigned to the instance. You can assign up to 10 tags to
7132	// an instance.
7133	Tags []*Tag `locationNameList:"Tag" type:"list"`
7134}
7135
7136// String returns the string representation.
7137//
7138// API parameter values that are decorated as "sensitive" in the API will not
7139// be included in the string output. The member name will be present, but the
7140// value will be replaced with "sensitive".
7141func (s CreateDBInstanceInput) String() string {
7142	return awsutil.Prettify(s)
7143}
7144
7145// GoString returns the string representation.
7146//
7147// API parameter values that are decorated as "sensitive" in the API will not
7148// be included in the string output. The member name will be present, but the
7149// value will be replaced with "sensitive".
7150func (s CreateDBInstanceInput) GoString() string {
7151	return s.String()
7152}
7153
7154// Validate inspects the fields of the type to determine if they are valid.
7155func (s *CreateDBInstanceInput) Validate() error {
7156	invalidParams := request.ErrInvalidParams{Context: "CreateDBInstanceInput"}
7157	if s.DBClusterIdentifier == nil {
7158		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
7159	}
7160	if s.DBInstanceClass == nil {
7161		invalidParams.Add(request.NewErrParamRequired("DBInstanceClass"))
7162	}
7163	if s.DBInstanceIdentifier == nil {
7164		invalidParams.Add(request.NewErrParamRequired("DBInstanceIdentifier"))
7165	}
7166	if s.Engine == nil {
7167		invalidParams.Add(request.NewErrParamRequired("Engine"))
7168	}
7169
7170	if invalidParams.Len() > 0 {
7171		return invalidParams
7172	}
7173	return nil
7174}
7175
7176// SetAutoMinorVersionUpgrade sets the AutoMinorVersionUpgrade field's value.
7177func (s *CreateDBInstanceInput) SetAutoMinorVersionUpgrade(v bool) *CreateDBInstanceInput {
7178	s.AutoMinorVersionUpgrade = &v
7179	return s
7180}
7181
7182// SetAvailabilityZone sets the AvailabilityZone field's value.
7183func (s *CreateDBInstanceInput) SetAvailabilityZone(v string) *CreateDBInstanceInput {
7184	s.AvailabilityZone = &v
7185	return s
7186}
7187
7188// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
7189func (s *CreateDBInstanceInput) SetDBClusterIdentifier(v string) *CreateDBInstanceInput {
7190	s.DBClusterIdentifier = &v
7191	return s
7192}
7193
7194// SetDBInstanceClass sets the DBInstanceClass field's value.
7195func (s *CreateDBInstanceInput) SetDBInstanceClass(v string) *CreateDBInstanceInput {
7196	s.DBInstanceClass = &v
7197	return s
7198}
7199
7200// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
7201func (s *CreateDBInstanceInput) SetDBInstanceIdentifier(v string) *CreateDBInstanceInput {
7202	s.DBInstanceIdentifier = &v
7203	return s
7204}
7205
7206// SetEngine sets the Engine field's value.
7207func (s *CreateDBInstanceInput) SetEngine(v string) *CreateDBInstanceInput {
7208	s.Engine = &v
7209	return s
7210}
7211
7212// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
7213func (s *CreateDBInstanceInput) SetPreferredMaintenanceWindow(v string) *CreateDBInstanceInput {
7214	s.PreferredMaintenanceWindow = &v
7215	return s
7216}
7217
7218// SetPromotionTier sets the PromotionTier field's value.
7219func (s *CreateDBInstanceInput) SetPromotionTier(v int64) *CreateDBInstanceInput {
7220	s.PromotionTier = &v
7221	return s
7222}
7223
7224// SetTags sets the Tags field's value.
7225func (s *CreateDBInstanceInput) SetTags(v []*Tag) *CreateDBInstanceInput {
7226	s.Tags = v
7227	return s
7228}
7229
7230type CreateDBInstanceOutput struct {
7231	_ struct{} `type:"structure"`
7232
7233	// Detailed information about an instance.
7234	DBInstance *DBInstance `type:"structure"`
7235}
7236
7237// String returns the string representation.
7238//
7239// API parameter values that are decorated as "sensitive" in the API will not
7240// be included in the string output. The member name will be present, but the
7241// value will be replaced with "sensitive".
7242func (s CreateDBInstanceOutput) String() string {
7243	return awsutil.Prettify(s)
7244}
7245
7246// GoString returns the string representation.
7247//
7248// API parameter values that are decorated as "sensitive" in the API will not
7249// be included in the string output. The member name will be present, but the
7250// value will be replaced with "sensitive".
7251func (s CreateDBInstanceOutput) GoString() string {
7252	return s.String()
7253}
7254
7255// SetDBInstance sets the DBInstance field's value.
7256func (s *CreateDBInstanceOutput) SetDBInstance(v *DBInstance) *CreateDBInstanceOutput {
7257	s.DBInstance = v
7258	return s
7259}
7260
7261// Represents the input to CreateDBSubnetGroup.
7262type CreateDBSubnetGroupInput struct {
7263	_ struct{} `type:"structure"`
7264
7265	// The description for the subnet group.
7266	//
7267	// DBSubnetGroupDescription is a required field
7268	DBSubnetGroupDescription *string `type:"string" required:"true"`
7269
7270	// The name for the subnet group. This value is stored as a lowercase string.
7271	//
7272	// Constraints: Must contain no more than 255 letters, numbers, periods, underscores,
7273	// spaces, or hyphens. Must not be default.
7274	//
7275	// Example: mySubnetgroup
7276	//
7277	// DBSubnetGroupName is a required field
7278	DBSubnetGroupName *string `type:"string" required:"true"`
7279
7280	// The Amazon EC2 subnet IDs for the subnet group.
7281	//
7282	// SubnetIds is a required field
7283	SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
7284
7285	// The tags to be assigned to the subnet group.
7286	Tags []*Tag `locationNameList:"Tag" type:"list"`
7287}
7288
7289// String returns the string representation.
7290//
7291// API parameter values that are decorated as "sensitive" in the API will not
7292// be included in the string output. The member name will be present, but the
7293// value will be replaced with "sensitive".
7294func (s CreateDBSubnetGroupInput) String() string {
7295	return awsutil.Prettify(s)
7296}
7297
7298// GoString returns the string representation.
7299//
7300// API parameter values that are decorated as "sensitive" in the API will not
7301// be included in the string output. The member name will be present, but the
7302// value will be replaced with "sensitive".
7303func (s CreateDBSubnetGroupInput) GoString() string {
7304	return s.String()
7305}
7306
7307// Validate inspects the fields of the type to determine if they are valid.
7308func (s *CreateDBSubnetGroupInput) Validate() error {
7309	invalidParams := request.ErrInvalidParams{Context: "CreateDBSubnetGroupInput"}
7310	if s.DBSubnetGroupDescription == nil {
7311		invalidParams.Add(request.NewErrParamRequired("DBSubnetGroupDescription"))
7312	}
7313	if s.DBSubnetGroupName == nil {
7314		invalidParams.Add(request.NewErrParamRequired("DBSubnetGroupName"))
7315	}
7316	if s.SubnetIds == nil {
7317		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
7318	}
7319
7320	if invalidParams.Len() > 0 {
7321		return invalidParams
7322	}
7323	return nil
7324}
7325
7326// SetDBSubnetGroupDescription sets the DBSubnetGroupDescription field's value.
7327func (s *CreateDBSubnetGroupInput) SetDBSubnetGroupDescription(v string) *CreateDBSubnetGroupInput {
7328	s.DBSubnetGroupDescription = &v
7329	return s
7330}
7331
7332// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
7333func (s *CreateDBSubnetGroupInput) SetDBSubnetGroupName(v string) *CreateDBSubnetGroupInput {
7334	s.DBSubnetGroupName = &v
7335	return s
7336}
7337
7338// SetSubnetIds sets the SubnetIds field's value.
7339func (s *CreateDBSubnetGroupInput) SetSubnetIds(v []*string) *CreateDBSubnetGroupInput {
7340	s.SubnetIds = v
7341	return s
7342}
7343
7344// SetTags sets the Tags field's value.
7345func (s *CreateDBSubnetGroupInput) SetTags(v []*Tag) *CreateDBSubnetGroupInput {
7346	s.Tags = v
7347	return s
7348}
7349
7350type CreateDBSubnetGroupOutput struct {
7351	_ struct{} `type:"structure"`
7352
7353	// Detailed information about a subnet group.
7354	DBSubnetGroup *DBSubnetGroup `type:"structure"`
7355}
7356
7357// String returns the string representation.
7358//
7359// API parameter values that are decorated as "sensitive" in the API will not
7360// be included in the string output. The member name will be present, but the
7361// value will be replaced with "sensitive".
7362func (s CreateDBSubnetGroupOutput) String() string {
7363	return awsutil.Prettify(s)
7364}
7365
7366// GoString 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 CreateDBSubnetGroupOutput) GoString() string {
7372	return s.String()
7373}
7374
7375// SetDBSubnetGroup sets the DBSubnetGroup field's value.
7376func (s *CreateDBSubnetGroupOutput) SetDBSubnetGroup(v *DBSubnetGroup) *CreateDBSubnetGroupOutput {
7377	s.DBSubnetGroup = v
7378	return s
7379}
7380
7381// Represents the input to CreateEventSubscription.
7382type CreateEventSubscriptionInput struct {
7383	_ struct{} `type:"structure"`
7384
7385	// A Boolean value; set to true to activate the subscription, set to false to
7386	// create the subscription but not active it.
7387	Enabled *bool `type:"boolean"`
7388
7389	// A list of event categories for a SourceType that you want to subscribe to.
7390	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
7391
7392	// The Amazon Resource Name (ARN) of the SNS topic created for event notification.
7393	// Amazon SNS creates the ARN when you create a topic and subscribe to it.
7394	//
7395	// SnsTopicArn is a required field
7396	SnsTopicArn *string `type:"string" required:"true"`
7397
7398	// The list of identifiers of the event sources for which events are returned.
7399	// If not specified, then all sources are included in the response. An identifier
7400	// must begin with a letter and must contain only ASCII letters, digits, and
7401	// hyphens; it can't end with a hyphen or contain two consecutive hyphens.
7402	//
7403	// Constraints:
7404	//
7405	//    * If SourceIds are provided, SourceType must also be provided.
7406	//
7407	//    * If the source type is an instance, a DBInstanceIdentifier must be provided.
7408	//
7409	//    * If the source type is a security group, a DBSecurityGroupName must be
7410	//    provided.
7411	//
7412	//    * If the source type is a parameter group, a DBParameterGroupName must
7413	//    be provided.
7414	//
7415	//    * If the source type is a snapshot, a DBSnapshotIdentifier must be provided.
7416	SourceIds []*string `locationNameList:"SourceId" type:"list"`
7417
7418	// The type of source that is generating the events. For example, if you want
7419	// to be notified of events generated by an instance, you would set this parameter
7420	// to db-instance. If this value is not specified, all events are returned.
7421	//
7422	// Valid values: db-instance, db-cluster, db-parameter-group, db-security-group,
7423	// db-cluster-snapshot
7424	SourceType *string `type:"string"`
7425
7426	// The name of the subscription.
7427	//
7428	// Constraints: The name must be fewer than 255 characters.
7429	//
7430	// SubscriptionName is a required field
7431	SubscriptionName *string `type:"string" required:"true"`
7432
7433	// The tags to be assigned to the event subscription.
7434	Tags []*Tag `locationNameList:"Tag" type:"list"`
7435}
7436
7437// String returns the string representation.
7438//
7439// API parameter values that are decorated as "sensitive" in the API will not
7440// be included in the string output. The member name will be present, but the
7441// value will be replaced with "sensitive".
7442func (s CreateEventSubscriptionInput) String() string {
7443	return awsutil.Prettify(s)
7444}
7445
7446// GoString returns the string representation.
7447//
7448// API parameter values that are decorated as "sensitive" in the API will not
7449// be included in the string output. The member name will be present, but the
7450// value will be replaced with "sensitive".
7451func (s CreateEventSubscriptionInput) GoString() string {
7452	return s.String()
7453}
7454
7455// Validate inspects the fields of the type to determine if they are valid.
7456func (s *CreateEventSubscriptionInput) Validate() error {
7457	invalidParams := request.ErrInvalidParams{Context: "CreateEventSubscriptionInput"}
7458	if s.SnsTopicArn == nil {
7459		invalidParams.Add(request.NewErrParamRequired("SnsTopicArn"))
7460	}
7461	if s.SubscriptionName == nil {
7462		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
7463	}
7464
7465	if invalidParams.Len() > 0 {
7466		return invalidParams
7467	}
7468	return nil
7469}
7470
7471// SetEnabled sets the Enabled field's value.
7472func (s *CreateEventSubscriptionInput) SetEnabled(v bool) *CreateEventSubscriptionInput {
7473	s.Enabled = &v
7474	return s
7475}
7476
7477// SetEventCategories sets the EventCategories field's value.
7478func (s *CreateEventSubscriptionInput) SetEventCategories(v []*string) *CreateEventSubscriptionInput {
7479	s.EventCategories = v
7480	return s
7481}
7482
7483// SetSnsTopicArn sets the SnsTopicArn field's value.
7484func (s *CreateEventSubscriptionInput) SetSnsTopicArn(v string) *CreateEventSubscriptionInput {
7485	s.SnsTopicArn = &v
7486	return s
7487}
7488
7489// SetSourceIds sets the SourceIds field's value.
7490func (s *CreateEventSubscriptionInput) SetSourceIds(v []*string) *CreateEventSubscriptionInput {
7491	s.SourceIds = v
7492	return s
7493}
7494
7495// SetSourceType sets the SourceType field's value.
7496func (s *CreateEventSubscriptionInput) SetSourceType(v string) *CreateEventSubscriptionInput {
7497	s.SourceType = &v
7498	return s
7499}
7500
7501// SetSubscriptionName sets the SubscriptionName field's value.
7502func (s *CreateEventSubscriptionInput) SetSubscriptionName(v string) *CreateEventSubscriptionInput {
7503	s.SubscriptionName = &v
7504	return s
7505}
7506
7507// SetTags sets the Tags field's value.
7508func (s *CreateEventSubscriptionInput) SetTags(v []*Tag) *CreateEventSubscriptionInput {
7509	s.Tags = v
7510	return s
7511}
7512
7513type CreateEventSubscriptionOutput struct {
7514	_ struct{} `type:"structure"`
7515
7516	// Detailed information about an event to which you have subscribed.
7517	EventSubscription *EventSubscription `type:"structure"`
7518}
7519
7520// String returns the string representation.
7521//
7522// API parameter values that are decorated as "sensitive" in the API will not
7523// be included in the string output. The member name will be present, but the
7524// value will be replaced with "sensitive".
7525func (s CreateEventSubscriptionOutput) String() string {
7526	return awsutil.Prettify(s)
7527}
7528
7529// GoString returns the string representation.
7530//
7531// API parameter values that are decorated as "sensitive" in the API will not
7532// be included in the string output. The member name will be present, but the
7533// value will be replaced with "sensitive".
7534func (s CreateEventSubscriptionOutput) GoString() string {
7535	return s.String()
7536}
7537
7538// SetEventSubscription sets the EventSubscription field's value.
7539func (s *CreateEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *CreateEventSubscriptionOutput {
7540	s.EventSubscription = v
7541	return s
7542}
7543
7544// Represents the input to CreateGlobalCluster.
7545type CreateGlobalClusterInput struct {
7546	_ struct{} `type:"structure"`
7547
7548	// The name for your database of up to 64 alpha-numeric characters. If you do
7549	// not provide a name, Amazon DocumentDB will not create a database in the global
7550	// cluster you are creating.
7551	DatabaseName *string `type:"string"`
7552
7553	// The deletion protection setting for the new global cluster. The global cluster
7554	// can't be deleted when deletion protection is enabled.
7555	DeletionProtection *bool `type:"boolean"`
7556
7557	// The name of the database engine to be used for this cluster.
7558	Engine *string `type:"string"`
7559
7560	// The engine version of the global cluster.
7561	EngineVersion *string `type:"string"`
7562
7563	// The cluster identifier of the new global cluster.
7564	//
7565	// GlobalClusterIdentifier is a required field
7566	GlobalClusterIdentifier *string `min:"1" type:"string" required:"true"`
7567
7568	// The Amazon Resource Name (ARN) to use as the primary cluster of the global
7569	// cluster. This parameter is optional.
7570	SourceDBClusterIdentifier *string `type:"string"`
7571
7572	// The storage encryption setting for the new global cluster.
7573	StorageEncrypted *bool `type:"boolean"`
7574}
7575
7576// String returns the string representation.
7577//
7578// API parameter values that are decorated as "sensitive" in the API will not
7579// be included in the string output. The member name will be present, but the
7580// value will be replaced with "sensitive".
7581func (s CreateGlobalClusterInput) String() string {
7582	return awsutil.Prettify(s)
7583}
7584
7585// GoString returns the string representation.
7586//
7587// API parameter values that are decorated as "sensitive" in the API will not
7588// be included in the string output. The member name will be present, but the
7589// value will be replaced with "sensitive".
7590func (s CreateGlobalClusterInput) GoString() string {
7591	return s.String()
7592}
7593
7594// Validate inspects the fields of the type to determine if they are valid.
7595func (s *CreateGlobalClusterInput) Validate() error {
7596	invalidParams := request.ErrInvalidParams{Context: "CreateGlobalClusterInput"}
7597	if s.GlobalClusterIdentifier == nil {
7598		invalidParams.Add(request.NewErrParamRequired("GlobalClusterIdentifier"))
7599	}
7600	if s.GlobalClusterIdentifier != nil && len(*s.GlobalClusterIdentifier) < 1 {
7601		invalidParams.Add(request.NewErrParamMinLen("GlobalClusterIdentifier", 1))
7602	}
7603
7604	if invalidParams.Len() > 0 {
7605		return invalidParams
7606	}
7607	return nil
7608}
7609
7610// SetDatabaseName sets the DatabaseName field's value.
7611func (s *CreateGlobalClusterInput) SetDatabaseName(v string) *CreateGlobalClusterInput {
7612	s.DatabaseName = &v
7613	return s
7614}
7615
7616// SetDeletionProtection sets the DeletionProtection field's value.
7617func (s *CreateGlobalClusterInput) SetDeletionProtection(v bool) *CreateGlobalClusterInput {
7618	s.DeletionProtection = &v
7619	return s
7620}
7621
7622// SetEngine sets the Engine field's value.
7623func (s *CreateGlobalClusterInput) SetEngine(v string) *CreateGlobalClusterInput {
7624	s.Engine = &v
7625	return s
7626}
7627
7628// SetEngineVersion sets the EngineVersion field's value.
7629func (s *CreateGlobalClusterInput) SetEngineVersion(v string) *CreateGlobalClusterInput {
7630	s.EngineVersion = &v
7631	return s
7632}
7633
7634// SetGlobalClusterIdentifier sets the GlobalClusterIdentifier field's value.
7635func (s *CreateGlobalClusterInput) SetGlobalClusterIdentifier(v string) *CreateGlobalClusterInput {
7636	s.GlobalClusterIdentifier = &v
7637	return s
7638}
7639
7640// SetSourceDBClusterIdentifier sets the SourceDBClusterIdentifier field's value.
7641func (s *CreateGlobalClusterInput) SetSourceDBClusterIdentifier(v string) *CreateGlobalClusterInput {
7642	s.SourceDBClusterIdentifier = &v
7643	return s
7644}
7645
7646// SetStorageEncrypted sets the StorageEncrypted field's value.
7647func (s *CreateGlobalClusterInput) SetStorageEncrypted(v bool) *CreateGlobalClusterInput {
7648	s.StorageEncrypted = &v
7649	return s
7650}
7651
7652type CreateGlobalClusterOutput struct {
7653	_ struct{} `type:"structure"`
7654
7655	// A data type representing an Amazon DocumentDB global cluster.
7656	GlobalCluster *GlobalCluster `type:"structure"`
7657}
7658
7659// String 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 CreateGlobalClusterOutput) String() string {
7665	return awsutil.Prettify(s)
7666}
7667
7668// GoString returns the string representation.
7669//
7670// API parameter values that are decorated as "sensitive" in the API will not
7671// be included in the string output. The member name will be present, but the
7672// value will be replaced with "sensitive".
7673func (s CreateGlobalClusterOutput) GoString() string {
7674	return s.String()
7675}
7676
7677// SetGlobalCluster sets the GlobalCluster field's value.
7678func (s *CreateGlobalClusterOutput) SetGlobalCluster(v *GlobalCluster) *CreateGlobalClusterOutput {
7679	s.GlobalCluster = v
7680	return s
7681}
7682
7683// Detailed information about a cluster.
7684type DBCluster struct {
7685	_ struct{} `type:"structure"`
7686
7687	// Provides a list of the Identity and Access Management (IAM) roles that are
7688	// associated with the cluster. (IAM) roles that are associated with a cluster
7689	// grant permission for the cluster to access other Amazon Web Services services
7690	// on your behalf.
7691	AssociatedRoles []*DBClusterRole `locationNameList:"DBClusterRole" type:"list"`
7692
7693	// Provides the list of Amazon EC2 Availability Zones that instances in the
7694	// cluster can be created in.
7695	AvailabilityZones []*string `locationNameList:"AvailabilityZone" type:"list"`
7696
7697	// Specifies the number of days for which automatic snapshots are retained.
7698	BackupRetentionPeriod *int64 `type:"integer"`
7699
7700	// Specifies the time when the cluster was created, in Universal Coordinated
7701	// Time (UTC).
7702	ClusterCreateTime *time.Time `type:"timestamp"`
7703
7704	// The Amazon Resource Name (ARN) for the cluster.
7705	DBClusterArn *string `type:"string"`
7706
7707	// Contains a user-supplied cluster identifier. This identifier is the unique
7708	// key that identifies a cluster.
7709	DBClusterIdentifier *string `type:"string"`
7710
7711	// Provides the list of instances that make up the cluster.
7712	DBClusterMembers []*DBClusterMember `locationNameList:"DBClusterMember" type:"list"`
7713
7714	// Specifies the name of the cluster parameter group for the cluster.
7715	DBClusterParameterGroup *string `type:"string"`
7716
7717	// Specifies information on the subnet group that is associated with the cluster,
7718	// including the name, description, and subnets in the subnet group.
7719	DBSubnetGroup *string `type:"string"`
7720
7721	// The Region-unique, immutable identifier for the cluster. This identifier
7722	// is found in CloudTrail log entries whenever the KMS key for the cluster is
7723	// accessed.
7724	DbClusterResourceId *string `type:"string"`
7725
7726	// Specifies whether this cluster can be deleted. If DeletionProtection is enabled,
7727	// the cluster cannot be deleted unless it is modified and DeletionProtection
7728	// is disabled. DeletionProtection protects clusters from being accidentally
7729	// deleted.
7730	DeletionProtection *bool `type:"boolean"`
7731
7732	// The earliest time to which a database can be restored with point-in-time
7733	// restore.
7734	EarliestRestorableTime *time.Time `type:"timestamp"`
7735
7736	// A list of log types that this cluster is configured to export to Amazon CloudWatch
7737	// Logs.
7738	EnabledCloudwatchLogsExports []*string `type:"list"`
7739
7740	// Specifies the connection endpoint for the primary instance of the cluster.
7741	Endpoint *string `type:"string"`
7742
7743	// Provides the name of the database engine to be used for this cluster.
7744	Engine *string `type:"string"`
7745
7746	// Indicates the database engine version.
7747	EngineVersion *string `type:"string"`
7748
7749	// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.
7750	HostedZoneId *string `type:"string"`
7751
7752	// If StorageEncrypted is true, the KMS key identifier for the encrypted cluster.
7753	KmsKeyId *string `type:"string"`
7754
7755	// Specifies the latest time to which a database can be restored with point-in-time
7756	// restore.
7757	LatestRestorableTime *time.Time `type:"timestamp"`
7758
7759	// Contains the master user name for the cluster.
7760	MasterUsername *string `type:"string"`
7761
7762	// Specifies whether the cluster has instances in multiple Availability Zones.
7763	MultiAZ *bool `type:"boolean"`
7764
7765	// Specifies the progress of the operation as a percentage.
7766	PercentProgress *string `type:"string"`
7767
7768	// Specifies the port that the database engine is listening on.
7769	Port *int64 `type:"integer"`
7770
7771	// Specifies the daily time range during which automated backups are created
7772	// if automated backups are enabled, as determined by the BackupRetentionPeriod.
7773	PreferredBackupWindow *string `type:"string"`
7774
7775	// Specifies the weekly time range during which system maintenance can occur,
7776	// in Universal Coordinated Time (UTC).
7777	PreferredMaintenanceWindow *string `type:"string"`
7778
7779	// Contains one or more identifiers of the secondary clusters that are associated
7780	// with this cluster.
7781	ReadReplicaIdentifiers []*string `locationNameList:"ReadReplicaIdentifier" type:"list"`
7782
7783	// The reader endpoint for the cluster. The reader endpoint for a cluster load
7784	// balances connections across the Amazon DocumentDB replicas that are available
7785	// in a cluster. As clients request new connections to the reader endpoint,
7786	// Amazon DocumentDB distributes the connection requests among the Amazon DocumentDB
7787	// replicas in the cluster. This functionality can help balance your read workload
7788	// across multiple Amazon DocumentDB replicas in your cluster.
7789	//
7790	// If a failover occurs, and the Amazon DocumentDB replica that you are connected
7791	// to is promoted to be the primary instance, your connection is dropped. To
7792	// continue sending your read workload to other Amazon DocumentDB replicas in
7793	// the cluster, you can then reconnect to the reader endpoint.
7794	ReaderEndpoint *string `type:"string"`
7795
7796	// Contains the identifier of the source cluster if this cluster is a secondary
7797	// cluster.
7798	ReplicationSourceIdentifier *string `type:"string"`
7799
7800	// Specifies the current state of this cluster.
7801	Status *string `type:"string"`
7802
7803	// Specifies whether the cluster is encrypted.
7804	StorageEncrypted *bool `type:"boolean"`
7805
7806	// Provides a list of virtual private cloud (VPC) security groups that the cluster
7807	// belongs to.
7808	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroupMembership" type:"list"`
7809}
7810
7811// String returns the string representation.
7812//
7813// API parameter values that are decorated as "sensitive" in the API will not
7814// be included in the string output. The member name will be present, but the
7815// value will be replaced with "sensitive".
7816func (s DBCluster) String() string {
7817	return awsutil.Prettify(s)
7818}
7819
7820// GoString returns the string representation.
7821//
7822// API parameter values that are decorated as "sensitive" in the API will not
7823// be included in the string output. The member name will be present, but the
7824// value will be replaced with "sensitive".
7825func (s DBCluster) GoString() string {
7826	return s.String()
7827}
7828
7829// SetAssociatedRoles sets the AssociatedRoles field's value.
7830func (s *DBCluster) SetAssociatedRoles(v []*DBClusterRole) *DBCluster {
7831	s.AssociatedRoles = v
7832	return s
7833}
7834
7835// SetAvailabilityZones sets the AvailabilityZones field's value.
7836func (s *DBCluster) SetAvailabilityZones(v []*string) *DBCluster {
7837	s.AvailabilityZones = v
7838	return s
7839}
7840
7841// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value.
7842func (s *DBCluster) SetBackupRetentionPeriod(v int64) *DBCluster {
7843	s.BackupRetentionPeriod = &v
7844	return s
7845}
7846
7847// SetClusterCreateTime sets the ClusterCreateTime field's value.
7848func (s *DBCluster) SetClusterCreateTime(v time.Time) *DBCluster {
7849	s.ClusterCreateTime = &v
7850	return s
7851}
7852
7853// SetDBClusterArn sets the DBClusterArn field's value.
7854func (s *DBCluster) SetDBClusterArn(v string) *DBCluster {
7855	s.DBClusterArn = &v
7856	return s
7857}
7858
7859// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
7860func (s *DBCluster) SetDBClusterIdentifier(v string) *DBCluster {
7861	s.DBClusterIdentifier = &v
7862	return s
7863}
7864
7865// SetDBClusterMembers sets the DBClusterMembers field's value.
7866func (s *DBCluster) SetDBClusterMembers(v []*DBClusterMember) *DBCluster {
7867	s.DBClusterMembers = v
7868	return s
7869}
7870
7871// SetDBClusterParameterGroup sets the DBClusterParameterGroup field's value.
7872func (s *DBCluster) SetDBClusterParameterGroup(v string) *DBCluster {
7873	s.DBClusterParameterGroup = &v
7874	return s
7875}
7876
7877// SetDBSubnetGroup sets the DBSubnetGroup field's value.
7878func (s *DBCluster) SetDBSubnetGroup(v string) *DBCluster {
7879	s.DBSubnetGroup = &v
7880	return s
7881}
7882
7883// SetDbClusterResourceId sets the DbClusterResourceId field's value.
7884func (s *DBCluster) SetDbClusterResourceId(v string) *DBCluster {
7885	s.DbClusterResourceId = &v
7886	return s
7887}
7888
7889// SetDeletionProtection sets the DeletionProtection field's value.
7890func (s *DBCluster) SetDeletionProtection(v bool) *DBCluster {
7891	s.DeletionProtection = &v
7892	return s
7893}
7894
7895// SetEarliestRestorableTime sets the EarliestRestorableTime field's value.
7896func (s *DBCluster) SetEarliestRestorableTime(v time.Time) *DBCluster {
7897	s.EarliestRestorableTime = &v
7898	return s
7899}
7900
7901// SetEnabledCloudwatchLogsExports sets the EnabledCloudwatchLogsExports field's value.
7902func (s *DBCluster) SetEnabledCloudwatchLogsExports(v []*string) *DBCluster {
7903	s.EnabledCloudwatchLogsExports = v
7904	return s
7905}
7906
7907// SetEndpoint sets the Endpoint field's value.
7908func (s *DBCluster) SetEndpoint(v string) *DBCluster {
7909	s.Endpoint = &v
7910	return s
7911}
7912
7913// SetEngine sets the Engine field's value.
7914func (s *DBCluster) SetEngine(v string) *DBCluster {
7915	s.Engine = &v
7916	return s
7917}
7918
7919// SetEngineVersion sets the EngineVersion field's value.
7920func (s *DBCluster) SetEngineVersion(v string) *DBCluster {
7921	s.EngineVersion = &v
7922	return s
7923}
7924
7925// SetHostedZoneId sets the HostedZoneId field's value.
7926func (s *DBCluster) SetHostedZoneId(v string) *DBCluster {
7927	s.HostedZoneId = &v
7928	return s
7929}
7930
7931// SetKmsKeyId sets the KmsKeyId field's value.
7932func (s *DBCluster) SetKmsKeyId(v string) *DBCluster {
7933	s.KmsKeyId = &v
7934	return s
7935}
7936
7937// SetLatestRestorableTime sets the LatestRestorableTime field's value.
7938func (s *DBCluster) SetLatestRestorableTime(v time.Time) *DBCluster {
7939	s.LatestRestorableTime = &v
7940	return s
7941}
7942
7943// SetMasterUsername sets the MasterUsername field's value.
7944func (s *DBCluster) SetMasterUsername(v string) *DBCluster {
7945	s.MasterUsername = &v
7946	return s
7947}
7948
7949// SetMultiAZ sets the MultiAZ field's value.
7950func (s *DBCluster) SetMultiAZ(v bool) *DBCluster {
7951	s.MultiAZ = &v
7952	return s
7953}
7954
7955// SetPercentProgress sets the PercentProgress field's value.
7956func (s *DBCluster) SetPercentProgress(v string) *DBCluster {
7957	s.PercentProgress = &v
7958	return s
7959}
7960
7961// SetPort sets the Port field's value.
7962func (s *DBCluster) SetPort(v int64) *DBCluster {
7963	s.Port = &v
7964	return s
7965}
7966
7967// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
7968func (s *DBCluster) SetPreferredBackupWindow(v string) *DBCluster {
7969	s.PreferredBackupWindow = &v
7970	return s
7971}
7972
7973// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
7974func (s *DBCluster) SetPreferredMaintenanceWindow(v string) *DBCluster {
7975	s.PreferredMaintenanceWindow = &v
7976	return s
7977}
7978
7979// SetReadReplicaIdentifiers sets the ReadReplicaIdentifiers field's value.
7980func (s *DBCluster) SetReadReplicaIdentifiers(v []*string) *DBCluster {
7981	s.ReadReplicaIdentifiers = v
7982	return s
7983}
7984
7985// SetReaderEndpoint sets the ReaderEndpoint field's value.
7986func (s *DBCluster) SetReaderEndpoint(v string) *DBCluster {
7987	s.ReaderEndpoint = &v
7988	return s
7989}
7990
7991// SetReplicationSourceIdentifier sets the ReplicationSourceIdentifier field's value.
7992func (s *DBCluster) SetReplicationSourceIdentifier(v string) *DBCluster {
7993	s.ReplicationSourceIdentifier = &v
7994	return s
7995}
7996
7997// SetStatus sets the Status field's value.
7998func (s *DBCluster) SetStatus(v string) *DBCluster {
7999	s.Status = &v
8000	return s
8001}
8002
8003// SetStorageEncrypted sets the StorageEncrypted field's value.
8004func (s *DBCluster) SetStorageEncrypted(v bool) *DBCluster {
8005	s.StorageEncrypted = &v
8006	return s
8007}
8008
8009// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
8010func (s *DBCluster) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *DBCluster {
8011	s.VpcSecurityGroups = v
8012	return s
8013}
8014
8015// Contains information about an instance that is part of a cluster.
8016type DBClusterMember struct {
8017	_ struct{} `type:"structure"`
8018
8019	// Specifies the status of the cluster parameter group for this member of the
8020	// DB cluster.
8021	DBClusterParameterGroupStatus *string `type:"string"`
8022
8023	// Specifies the instance identifier for this member of the cluster.
8024	DBInstanceIdentifier *string `type:"string"`
8025
8026	// A value that is true if the cluster member is the primary instance for the
8027	// cluster and false otherwise.
8028	IsClusterWriter *bool `type:"boolean"`
8029
8030	// A value that specifies the order in which an Amazon DocumentDB replica is
8031	// promoted to the primary instance after a failure of the existing primary
8032	// instance.
8033	PromotionTier *int64 `type:"integer"`
8034}
8035
8036// String returns the string representation.
8037//
8038// API parameter values that are decorated as "sensitive" in the API will not
8039// be included in the string output. The member name will be present, but the
8040// value will be replaced with "sensitive".
8041func (s DBClusterMember) String() string {
8042	return awsutil.Prettify(s)
8043}
8044
8045// GoString returns the string representation.
8046//
8047// API parameter values that are decorated as "sensitive" in the API will not
8048// be included in the string output. The member name will be present, but the
8049// value will be replaced with "sensitive".
8050func (s DBClusterMember) GoString() string {
8051	return s.String()
8052}
8053
8054// SetDBClusterParameterGroupStatus sets the DBClusterParameterGroupStatus field's value.
8055func (s *DBClusterMember) SetDBClusterParameterGroupStatus(v string) *DBClusterMember {
8056	s.DBClusterParameterGroupStatus = &v
8057	return s
8058}
8059
8060// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
8061func (s *DBClusterMember) SetDBInstanceIdentifier(v string) *DBClusterMember {
8062	s.DBInstanceIdentifier = &v
8063	return s
8064}
8065
8066// SetIsClusterWriter sets the IsClusterWriter field's value.
8067func (s *DBClusterMember) SetIsClusterWriter(v bool) *DBClusterMember {
8068	s.IsClusterWriter = &v
8069	return s
8070}
8071
8072// SetPromotionTier sets the PromotionTier field's value.
8073func (s *DBClusterMember) SetPromotionTier(v int64) *DBClusterMember {
8074	s.PromotionTier = &v
8075	return s
8076}
8077
8078// Detailed information about a cluster parameter group.
8079type DBClusterParameterGroup struct {
8080	_ struct{} `type:"structure"`
8081
8082	// The Amazon Resource Name (ARN) for the cluster parameter group.
8083	DBClusterParameterGroupArn *string `type:"string"`
8084
8085	// Provides the name of the cluster parameter group.
8086	DBClusterParameterGroupName *string `type:"string"`
8087
8088	// Provides the name of the parameter group family that this cluster parameter
8089	// group is compatible with.
8090	DBParameterGroupFamily *string `type:"string"`
8091
8092	// Provides the customer-specified description for this cluster parameter group.
8093	Description *string `type:"string"`
8094}
8095
8096// String returns the string representation.
8097//
8098// API parameter values that are decorated as "sensitive" in the API will not
8099// be included in the string output. The member name will be present, but the
8100// value will be replaced with "sensitive".
8101func (s DBClusterParameterGroup) String() string {
8102	return awsutil.Prettify(s)
8103}
8104
8105// GoString returns the string representation.
8106//
8107// API parameter values that are decorated as "sensitive" in the API will not
8108// be included in the string output. The member name will be present, but the
8109// value will be replaced with "sensitive".
8110func (s DBClusterParameterGroup) GoString() string {
8111	return s.String()
8112}
8113
8114// SetDBClusterParameterGroupArn sets the DBClusterParameterGroupArn field's value.
8115func (s *DBClusterParameterGroup) SetDBClusterParameterGroupArn(v string) *DBClusterParameterGroup {
8116	s.DBClusterParameterGroupArn = &v
8117	return s
8118}
8119
8120// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
8121func (s *DBClusterParameterGroup) SetDBClusterParameterGroupName(v string) *DBClusterParameterGroup {
8122	s.DBClusterParameterGroupName = &v
8123	return s
8124}
8125
8126// SetDBParameterGroupFamily sets the DBParameterGroupFamily field's value.
8127func (s *DBClusterParameterGroup) SetDBParameterGroupFamily(v string) *DBClusterParameterGroup {
8128	s.DBParameterGroupFamily = &v
8129	return s
8130}
8131
8132// SetDescription sets the Description field's value.
8133func (s *DBClusterParameterGroup) SetDescription(v string) *DBClusterParameterGroup {
8134	s.Description = &v
8135	return s
8136}
8137
8138// Describes an Identity and Access Management (IAM) role that is associated
8139// with a cluster.
8140type DBClusterRole struct {
8141	_ struct{} `type:"structure"`
8142
8143	// The Amazon Resource Name (ARN) of the IAMrole that is associated with the
8144	// DB cluster.
8145	RoleArn *string `type:"string"`
8146
8147	// Describes the state of association between the IAMrole and the cluster. The
8148	// Status property returns one of the following values:
8149	//
8150	//    * ACTIVE - The IAMrole ARN is associated with the cluster and can be used
8151	//    to access other Amazon Web Services services on your behalf.
8152	//
8153	//    * PENDING - The IAMrole ARN is being associated with the cluster.
8154	//
8155	//    * INVALID - The IAMrole ARN is associated with the cluster, but the cluster
8156	//    cannot assume the IAMrole to access other Amazon Web Services services
8157	//    on your behalf.
8158	Status *string `type:"string"`
8159}
8160
8161// String returns the string representation.
8162//
8163// API parameter values that are decorated as "sensitive" in the API will not
8164// be included in the string output. The member name will be present, but the
8165// value will be replaced with "sensitive".
8166func (s DBClusterRole) String() string {
8167	return awsutil.Prettify(s)
8168}
8169
8170// GoString returns the string representation.
8171//
8172// API parameter values that are decorated as "sensitive" in the API will not
8173// be included in the string output. The member name will be present, but the
8174// value will be replaced with "sensitive".
8175func (s DBClusterRole) GoString() string {
8176	return s.String()
8177}
8178
8179// SetRoleArn sets the RoleArn field's value.
8180func (s *DBClusterRole) SetRoleArn(v string) *DBClusterRole {
8181	s.RoleArn = &v
8182	return s
8183}
8184
8185// SetStatus sets the Status field's value.
8186func (s *DBClusterRole) SetStatus(v string) *DBClusterRole {
8187	s.Status = &v
8188	return s
8189}
8190
8191// Detailed information about a cluster snapshot.
8192type DBClusterSnapshot struct {
8193	_ struct{} `type:"structure"`
8194
8195	// Provides the list of Amazon EC2 Availability Zones that instances in the
8196	// cluster snapshot can be restored in.
8197	AvailabilityZones []*string `locationNameList:"AvailabilityZone" type:"list"`
8198
8199	// Specifies the time when the cluster was created, in Universal Coordinated
8200	// Time (UTC).
8201	ClusterCreateTime *time.Time `type:"timestamp"`
8202
8203	// Specifies the cluster identifier of the cluster that this cluster snapshot
8204	// was created from.
8205	DBClusterIdentifier *string `type:"string"`
8206
8207	// The Amazon Resource Name (ARN) for the cluster snapshot.
8208	DBClusterSnapshotArn *string `type:"string"`
8209
8210	// Specifies the identifier for the cluster snapshot.
8211	DBClusterSnapshotIdentifier *string `type:"string"`
8212
8213	// Specifies the name of the database engine.
8214	Engine *string `type:"string"`
8215
8216	// Provides the version of the database engine for this cluster snapshot.
8217	EngineVersion *string `type:"string"`
8218
8219	// If StorageEncrypted is true, the KMS key identifier for the encrypted cluster
8220	// snapshot.
8221	KmsKeyId *string `type:"string"`
8222
8223	// Provides the master user name for the cluster snapshot.
8224	MasterUsername *string `type:"string"`
8225
8226	// Specifies the percentage of the estimated data that has been transferred.
8227	PercentProgress *int64 `type:"integer"`
8228
8229	// Specifies the port that the cluster was listening on at the time of the snapshot.
8230	Port *int64 `type:"integer"`
8231
8232	// Provides the time when the snapshot was taken, in UTC.
8233	SnapshotCreateTime *time.Time `type:"timestamp"`
8234
8235	// Provides the type of the cluster snapshot.
8236	SnapshotType *string `type:"string"`
8237
8238	// If the cluster snapshot was copied from a source cluster snapshot, the ARN
8239	// for the source cluster snapshot; otherwise, a null value.
8240	SourceDBClusterSnapshotArn *string `type:"string"`
8241
8242	// Specifies the status of this cluster snapshot.
8243	Status *string `type:"string"`
8244
8245	// Specifies whether the cluster snapshot is encrypted.
8246	StorageEncrypted *bool `type:"boolean"`
8247
8248	// Provides the virtual private cloud (VPC) ID that is associated with the cluster
8249	// snapshot.
8250	VpcId *string `type:"string"`
8251}
8252
8253// String returns the string representation.
8254//
8255// API parameter values that are decorated as "sensitive" in the API will not
8256// be included in the string output. The member name will be present, but the
8257// value will be replaced with "sensitive".
8258func (s DBClusterSnapshot) String() string {
8259	return awsutil.Prettify(s)
8260}
8261
8262// GoString returns the string representation.
8263//
8264// API parameter values that are decorated as "sensitive" in the API will not
8265// be included in the string output. The member name will be present, but the
8266// value will be replaced with "sensitive".
8267func (s DBClusterSnapshot) GoString() string {
8268	return s.String()
8269}
8270
8271// SetAvailabilityZones sets the AvailabilityZones field's value.
8272func (s *DBClusterSnapshot) SetAvailabilityZones(v []*string) *DBClusterSnapshot {
8273	s.AvailabilityZones = v
8274	return s
8275}
8276
8277// SetClusterCreateTime sets the ClusterCreateTime field's value.
8278func (s *DBClusterSnapshot) SetClusterCreateTime(v time.Time) *DBClusterSnapshot {
8279	s.ClusterCreateTime = &v
8280	return s
8281}
8282
8283// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
8284func (s *DBClusterSnapshot) SetDBClusterIdentifier(v string) *DBClusterSnapshot {
8285	s.DBClusterIdentifier = &v
8286	return s
8287}
8288
8289// SetDBClusterSnapshotArn sets the DBClusterSnapshotArn field's value.
8290func (s *DBClusterSnapshot) SetDBClusterSnapshotArn(v string) *DBClusterSnapshot {
8291	s.DBClusterSnapshotArn = &v
8292	return s
8293}
8294
8295// SetDBClusterSnapshotIdentifier sets the DBClusterSnapshotIdentifier field's value.
8296func (s *DBClusterSnapshot) SetDBClusterSnapshotIdentifier(v string) *DBClusterSnapshot {
8297	s.DBClusterSnapshotIdentifier = &v
8298	return s
8299}
8300
8301// SetEngine sets the Engine field's value.
8302func (s *DBClusterSnapshot) SetEngine(v string) *DBClusterSnapshot {
8303	s.Engine = &v
8304	return s
8305}
8306
8307// SetEngineVersion sets the EngineVersion field's value.
8308func (s *DBClusterSnapshot) SetEngineVersion(v string) *DBClusterSnapshot {
8309	s.EngineVersion = &v
8310	return s
8311}
8312
8313// SetKmsKeyId sets the KmsKeyId field's value.
8314func (s *DBClusterSnapshot) SetKmsKeyId(v string) *DBClusterSnapshot {
8315	s.KmsKeyId = &v
8316	return s
8317}
8318
8319// SetMasterUsername sets the MasterUsername field's value.
8320func (s *DBClusterSnapshot) SetMasterUsername(v string) *DBClusterSnapshot {
8321	s.MasterUsername = &v
8322	return s
8323}
8324
8325// SetPercentProgress sets the PercentProgress field's value.
8326func (s *DBClusterSnapshot) SetPercentProgress(v int64) *DBClusterSnapshot {
8327	s.PercentProgress = &v
8328	return s
8329}
8330
8331// SetPort sets the Port field's value.
8332func (s *DBClusterSnapshot) SetPort(v int64) *DBClusterSnapshot {
8333	s.Port = &v
8334	return s
8335}
8336
8337// SetSnapshotCreateTime sets the SnapshotCreateTime field's value.
8338func (s *DBClusterSnapshot) SetSnapshotCreateTime(v time.Time) *DBClusterSnapshot {
8339	s.SnapshotCreateTime = &v
8340	return s
8341}
8342
8343// SetSnapshotType sets the SnapshotType field's value.
8344func (s *DBClusterSnapshot) SetSnapshotType(v string) *DBClusterSnapshot {
8345	s.SnapshotType = &v
8346	return s
8347}
8348
8349// SetSourceDBClusterSnapshotArn sets the SourceDBClusterSnapshotArn field's value.
8350func (s *DBClusterSnapshot) SetSourceDBClusterSnapshotArn(v string) *DBClusterSnapshot {
8351	s.SourceDBClusterSnapshotArn = &v
8352	return s
8353}
8354
8355// SetStatus sets the Status field's value.
8356func (s *DBClusterSnapshot) SetStatus(v string) *DBClusterSnapshot {
8357	s.Status = &v
8358	return s
8359}
8360
8361// SetStorageEncrypted sets the StorageEncrypted field's value.
8362func (s *DBClusterSnapshot) SetStorageEncrypted(v bool) *DBClusterSnapshot {
8363	s.StorageEncrypted = &v
8364	return s
8365}
8366
8367// SetVpcId sets the VpcId field's value.
8368func (s *DBClusterSnapshot) SetVpcId(v string) *DBClusterSnapshot {
8369	s.VpcId = &v
8370	return s
8371}
8372
8373// Contains the name and values of a manual cluster snapshot attribute.
8374//
8375// Manual cluster snapshot attributes are used to authorize other accounts to
8376// restore a manual cluster snapshot.
8377type DBClusterSnapshotAttribute struct {
8378	_ struct{} `type:"structure"`
8379
8380	// The name of the manual cluster snapshot attribute.
8381	//
8382	// The attribute named restore refers to the list of accounts that have permission
8383	// to copy or restore the manual cluster snapshot.
8384	AttributeName *string `type:"string"`
8385
8386	// The values for the manual cluster snapshot attribute.
8387	//
8388	// If the AttributeName field is set to restore, then this element returns a
8389	// list of IDs of the accounts that are authorized to copy or restore the manual
8390	// cluster snapshot. If a value of all is in the list, then the manual cluster
8391	// snapshot is public and available for any account to copy or restore.
8392	AttributeValues []*string `locationNameList:"AttributeValue" type:"list"`
8393}
8394
8395// String returns the string representation.
8396//
8397// API parameter values that are decorated as "sensitive" in the API will not
8398// be included in the string output. The member name will be present, but the
8399// value will be replaced with "sensitive".
8400func (s DBClusterSnapshotAttribute) String() string {
8401	return awsutil.Prettify(s)
8402}
8403
8404// GoString returns the string representation.
8405//
8406// API parameter values that are decorated as "sensitive" in the API will not
8407// be included in the string output. The member name will be present, but the
8408// value will be replaced with "sensitive".
8409func (s DBClusterSnapshotAttribute) GoString() string {
8410	return s.String()
8411}
8412
8413// SetAttributeName sets the AttributeName field's value.
8414func (s *DBClusterSnapshotAttribute) SetAttributeName(v string) *DBClusterSnapshotAttribute {
8415	s.AttributeName = &v
8416	return s
8417}
8418
8419// SetAttributeValues sets the AttributeValues field's value.
8420func (s *DBClusterSnapshotAttribute) SetAttributeValues(v []*string) *DBClusterSnapshotAttribute {
8421	s.AttributeValues = v
8422	return s
8423}
8424
8425// Detailed information about the attributes that are associated with a cluster
8426// snapshot.
8427type DBClusterSnapshotAttributesResult struct {
8428	_ struct{} `type:"structure"`
8429
8430	// The list of attributes and values for the cluster snapshot.
8431	DBClusterSnapshotAttributes []*DBClusterSnapshotAttribute `locationNameList:"DBClusterSnapshotAttribute" type:"list"`
8432
8433	// The identifier of the cluster snapshot that the attributes apply to.
8434	DBClusterSnapshotIdentifier *string `type:"string"`
8435}
8436
8437// String returns the string representation.
8438//
8439// API parameter values that are decorated as "sensitive" in the API will not
8440// be included in the string output. The member name will be present, but the
8441// value will be replaced with "sensitive".
8442func (s DBClusterSnapshotAttributesResult) String() string {
8443	return awsutil.Prettify(s)
8444}
8445
8446// GoString returns the string representation.
8447//
8448// API parameter values that are decorated as "sensitive" in the API will not
8449// be included in the string output. The member name will be present, but the
8450// value will be replaced with "sensitive".
8451func (s DBClusterSnapshotAttributesResult) GoString() string {
8452	return s.String()
8453}
8454
8455// SetDBClusterSnapshotAttributes sets the DBClusterSnapshotAttributes field's value.
8456func (s *DBClusterSnapshotAttributesResult) SetDBClusterSnapshotAttributes(v []*DBClusterSnapshotAttribute) *DBClusterSnapshotAttributesResult {
8457	s.DBClusterSnapshotAttributes = v
8458	return s
8459}
8460
8461// SetDBClusterSnapshotIdentifier sets the DBClusterSnapshotIdentifier field's value.
8462func (s *DBClusterSnapshotAttributesResult) SetDBClusterSnapshotIdentifier(v string) *DBClusterSnapshotAttributesResult {
8463	s.DBClusterSnapshotIdentifier = &v
8464	return s
8465}
8466
8467// Detailed information about an engine version.
8468type DBEngineVersion struct {
8469	_ struct{} `type:"structure"`
8470
8471	// The description of the database engine.
8472	DBEngineDescription *string `type:"string"`
8473
8474	// The description of the database engine version.
8475	DBEngineVersionDescription *string `type:"string"`
8476
8477	// The name of the parameter group family for the database engine.
8478	DBParameterGroupFamily *string `type:"string"`
8479
8480	// The name of the database engine.
8481	Engine *string `type:"string"`
8482
8483	// The version number of the database engine.
8484	EngineVersion *string `type:"string"`
8485
8486	// The types of logs that the database engine has available for export to Amazon
8487	// CloudWatch Logs.
8488	ExportableLogTypes []*string `type:"list"`
8489
8490	// A value that indicates whether the engine version supports exporting the
8491	// log types specified by ExportableLogTypes to CloudWatch Logs.
8492	SupportsLogExportsToCloudwatchLogs *bool `type:"boolean"`
8493
8494	// A list of engine versions that this database engine version can be upgraded
8495	// to.
8496	ValidUpgradeTarget []*UpgradeTarget `locationNameList:"UpgradeTarget" type:"list"`
8497}
8498
8499// String returns the string representation.
8500//
8501// API parameter values that are decorated as "sensitive" in the API will not
8502// be included in the string output. The member name will be present, but the
8503// value will be replaced with "sensitive".
8504func (s DBEngineVersion) String() string {
8505	return awsutil.Prettify(s)
8506}
8507
8508// GoString returns the string representation.
8509//
8510// API parameter values that are decorated as "sensitive" in the API will not
8511// be included in the string output. The member name will be present, but the
8512// value will be replaced with "sensitive".
8513func (s DBEngineVersion) GoString() string {
8514	return s.String()
8515}
8516
8517// SetDBEngineDescription sets the DBEngineDescription field's value.
8518func (s *DBEngineVersion) SetDBEngineDescription(v string) *DBEngineVersion {
8519	s.DBEngineDescription = &v
8520	return s
8521}
8522
8523// SetDBEngineVersionDescription sets the DBEngineVersionDescription field's value.
8524func (s *DBEngineVersion) SetDBEngineVersionDescription(v string) *DBEngineVersion {
8525	s.DBEngineVersionDescription = &v
8526	return s
8527}
8528
8529// SetDBParameterGroupFamily sets the DBParameterGroupFamily field's value.
8530func (s *DBEngineVersion) SetDBParameterGroupFamily(v string) *DBEngineVersion {
8531	s.DBParameterGroupFamily = &v
8532	return s
8533}
8534
8535// SetEngine sets the Engine field's value.
8536func (s *DBEngineVersion) SetEngine(v string) *DBEngineVersion {
8537	s.Engine = &v
8538	return s
8539}
8540
8541// SetEngineVersion sets the EngineVersion field's value.
8542func (s *DBEngineVersion) SetEngineVersion(v string) *DBEngineVersion {
8543	s.EngineVersion = &v
8544	return s
8545}
8546
8547// SetExportableLogTypes sets the ExportableLogTypes field's value.
8548func (s *DBEngineVersion) SetExportableLogTypes(v []*string) *DBEngineVersion {
8549	s.ExportableLogTypes = v
8550	return s
8551}
8552
8553// SetSupportsLogExportsToCloudwatchLogs sets the SupportsLogExportsToCloudwatchLogs field's value.
8554func (s *DBEngineVersion) SetSupportsLogExportsToCloudwatchLogs(v bool) *DBEngineVersion {
8555	s.SupportsLogExportsToCloudwatchLogs = &v
8556	return s
8557}
8558
8559// SetValidUpgradeTarget sets the ValidUpgradeTarget field's value.
8560func (s *DBEngineVersion) SetValidUpgradeTarget(v []*UpgradeTarget) *DBEngineVersion {
8561	s.ValidUpgradeTarget = v
8562	return s
8563}
8564
8565// Detailed information about an instance.
8566type DBInstance struct {
8567	_ struct{} `type:"structure"`
8568
8569	// Does not apply. This parameter does not apply to Amazon DocumentDB. Amazon
8570	// DocumentDB does not perform minor version upgrades regardless of the value
8571	// set.
8572	AutoMinorVersionUpgrade *bool `type:"boolean"`
8573
8574	// Specifies the name of the Availability Zone that the instance is located
8575	// in.
8576	AvailabilityZone *string `type:"string"`
8577
8578	// Specifies the number of days for which automatic snapshots are retained.
8579	BackupRetentionPeriod *int64 `type:"integer"`
8580
8581	// The identifier of the CA certificate for this DB instance.
8582	CACertificateIdentifier *string `type:"string"`
8583
8584	// Contains the name of the cluster that the instance is a member of if the
8585	// instance is a member of a cluster.
8586	DBClusterIdentifier *string `type:"string"`
8587
8588	// The Amazon Resource Name (ARN) for the instance.
8589	DBInstanceArn *string `type:"string"`
8590
8591	// Contains the name of the compute and memory capacity class of the instance.
8592	DBInstanceClass *string `type:"string"`
8593
8594	// Contains a user-provided database identifier. This identifier is the unique
8595	// key that identifies an instance.
8596	DBInstanceIdentifier *string `type:"string"`
8597
8598	// Specifies the current state of this database.
8599	DBInstanceStatus *string `type:"string"`
8600
8601	// Specifies information on the subnet group that is associated with the instance,
8602	// including the name, description, and subnets in the subnet group.
8603	DBSubnetGroup *DBSubnetGroup `type:"structure"`
8604
8605	// The Region-unique, immutable identifier for the instance. This identifier
8606	// is found in CloudTrail log entries whenever the KMS key for the instance
8607	// is accessed.
8608	DbiResourceId *string `type:"string"`
8609
8610	// A list of log types that this instance is configured to export to CloudWatch
8611	// Logs.
8612	EnabledCloudwatchLogsExports []*string `type:"list"`
8613
8614	// Specifies the connection endpoint.
8615	Endpoint *Endpoint `type:"structure"`
8616
8617	// Provides the name of the database engine to be used for this instance.
8618	Engine *string `type:"string"`
8619
8620	// Indicates the database engine version.
8621	EngineVersion *string `type:"string"`
8622
8623	// Provides the date and time that the instance was created.
8624	InstanceCreateTime *time.Time `type:"timestamp"`
8625
8626	// If StorageEncrypted is true, the KMS key identifier for the encrypted instance.
8627	KmsKeyId *string `type:"string"`
8628
8629	// Specifies the latest time to which a database can be restored with point-in-time
8630	// restore.
8631	LatestRestorableTime *time.Time `type:"timestamp"`
8632
8633	// Specifies that changes to the instance are pending. This element is included
8634	// only when changes are pending. Specific changes are identified by subelements.
8635	PendingModifiedValues *PendingModifiedValues `type:"structure"`
8636
8637	// Specifies the daily time range during which automated backups are created
8638	// if automated backups are enabled, as determined by the BackupRetentionPeriod.
8639	PreferredBackupWindow *string `type:"string"`
8640
8641	// Specifies the weekly time range during which system maintenance can occur,
8642	// in Universal Coordinated Time (UTC).
8643	PreferredMaintenanceWindow *string `type:"string"`
8644
8645	// A value that specifies the order in which an Amazon DocumentDB replica is
8646	// promoted to the primary instance after a failure of the existing primary
8647	// instance.
8648	PromotionTier *int64 `type:"integer"`
8649
8650	// Not supported. Amazon DocumentDB does not currently support public endpoints.
8651	// The value of PubliclyAccessible is always false.
8652	PubliclyAccessible *bool `type:"boolean"`
8653
8654	// The status of a read replica. If the instance is not a read replica, this
8655	// is blank.
8656	StatusInfos []*DBInstanceStatusInfo `locationNameList:"DBInstanceStatusInfo" type:"list"`
8657
8658	// Specifies whether or not the instance is encrypted.
8659	StorageEncrypted *bool `type:"boolean"`
8660
8661	// Provides a list of VPC security group elements that the instance belongs
8662	// to.
8663	VpcSecurityGroups []*VpcSecurityGroupMembership `locationNameList:"VpcSecurityGroupMembership" type:"list"`
8664}
8665
8666// String returns the string representation.
8667//
8668// API parameter values that are decorated as "sensitive" in the API will not
8669// be included in the string output. The member name will be present, but the
8670// value will be replaced with "sensitive".
8671func (s DBInstance) String() string {
8672	return awsutil.Prettify(s)
8673}
8674
8675// GoString returns the string representation.
8676//
8677// API parameter values that are decorated as "sensitive" in the API will not
8678// be included in the string output. The member name will be present, but the
8679// value will be replaced with "sensitive".
8680func (s DBInstance) GoString() string {
8681	return s.String()
8682}
8683
8684// SetAutoMinorVersionUpgrade sets the AutoMinorVersionUpgrade field's value.
8685func (s *DBInstance) SetAutoMinorVersionUpgrade(v bool) *DBInstance {
8686	s.AutoMinorVersionUpgrade = &v
8687	return s
8688}
8689
8690// SetAvailabilityZone sets the AvailabilityZone field's value.
8691func (s *DBInstance) SetAvailabilityZone(v string) *DBInstance {
8692	s.AvailabilityZone = &v
8693	return s
8694}
8695
8696// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value.
8697func (s *DBInstance) SetBackupRetentionPeriod(v int64) *DBInstance {
8698	s.BackupRetentionPeriod = &v
8699	return s
8700}
8701
8702// SetCACertificateIdentifier sets the CACertificateIdentifier field's value.
8703func (s *DBInstance) SetCACertificateIdentifier(v string) *DBInstance {
8704	s.CACertificateIdentifier = &v
8705	return s
8706}
8707
8708// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
8709func (s *DBInstance) SetDBClusterIdentifier(v string) *DBInstance {
8710	s.DBClusterIdentifier = &v
8711	return s
8712}
8713
8714// SetDBInstanceArn sets the DBInstanceArn field's value.
8715func (s *DBInstance) SetDBInstanceArn(v string) *DBInstance {
8716	s.DBInstanceArn = &v
8717	return s
8718}
8719
8720// SetDBInstanceClass sets the DBInstanceClass field's value.
8721func (s *DBInstance) SetDBInstanceClass(v string) *DBInstance {
8722	s.DBInstanceClass = &v
8723	return s
8724}
8725
8726// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
8727func (s *DBInstance) SetDBInstanceIdentifier(v string) *DBInstance {
8728	s.DBInstanceIdentifier = &v
8729	return s
8730}
8731
8732// SetDBInstanceStatus sets the DBInstanceStatus field's value.
8733func (s *DBInstance) SetDBInstanceStatus(v string) *DBInstance {
8734	s.DBInstanceStatus = &v
8735	return s
8736}
8737
8738// SetDBSubnetGroup sets the DBSubnetGroup field's value.
8739func (s *DBInstance) SetDBSubnetGroup(v *DBSubnetGroup) *DBInstance {
8740	s.DBSubnetGroup = v
8741	return s
8742}
8743
8744// SetDbiResourceId sets the DbiResourceId field's value.
8745func (s *DBInstance) SetDbiResourceId(v string) *DBInstance {
8746	s.DbiResourceId = &v
8747	return s
8748}
8749
8750// SetEnabledCloudwatchLogsExports sets the EnabledCloudwatchLogsExports field's value.
8751func (s *DBInstance) SetEnabledCloudwatchLogsExports(v []*string) *DBInstance {
8752	s.EnabledCloudwatchLogsExports = v
8753	return s
8754}
8755
8756// SetEndpoint sets the Endpoint field's value.
8757func (s *DBInstance) SetEndpoint(v *Endpoint) *DBInstance {
8758	s.Endpoint = v
8759	return s
8760}
8761
8762// SetEngine sets the Engine field's value.
8763func (s *DBInstance) SetEngine(v string) *DBInstance {
8764	s.Engine = &v
8765	return s
8766}
8767
8768// SetEngineVersion sets the EngineVersion field's value.
8769func (s *DBInstance) SetEngineVersion(v string) *DBInstance {
8770	s.EngineVersion = &v
8771	return s
8772}
8773
8774// SetInstanceCreateTime sets the InstanceCreateTime field's value.
8775func (s *DBInstance) SetInstanceCreateTime(v time.Time) *DBInstance {
8776	s.InstanceCreateTime = &v
8777	return s
8778}
8779
8780// SetKmsKeyId sets the KmsKeyId field's value.
8781func (s *DBInstance) SetKmsKeyId(v string) *DBInstance {
8782	s.KmsKeyId = &v
8783	return s
8784}
8785
8786// SetLatestRestorableTime sets the LatestRestorableTime field's value.
8787func (s *DBInstance) SetLatestRestorableTime(v time.Time) *DBInstance {
8788	s.LatestRestorableTime = &v
8789	return s
8790}
8791
8792// SetPendingModifiedValues sets the PendingModifiedValues field's value.
8793func (s *DBInstance) SetPendingModifiedValues(v *PendingModifiedValues) *DBInstance {
8794	s.PendingModifiedValues = v
8795	return s
8796}
8797
8798// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
8799func (s *DBInstance) SetPreferredBackupWindow(v string) *DBInstance {
8800	s.PreferredBackupWindow = &v
8801	return s
8802}
8803
8804// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
8805func (s *DBInstance) SetPreferredMaintenanceWindow(v string) *DBInstance {
8806	s.PreferredMaintenanceWindow = &v
8807	return s
8808}
8809
8810// SetPromotionTier sets the PromotionTier field's value.
8811func (s *DBInstance) SetPromotionTier(v int64) *DBInstance {
8812	s.PromotionTier = &v
8813	return s
8814}
8815
8816// SetPubliclyAccessible sets the PubliclyAccessible field's value.
8817func (s *DBInstance) SetPubliclyAccessible(v bool) *DBInstance {
8818	s.PubliclyAccessible = &v
8819	return s
8820}
8821
8822// SetStatusInfos sets the StatusInfos field's value.
8823func (s *DBInstance) SetStatusInfos(v []*DBInstanceStatusInfo) *DBInstance {
8824	s.StatusInfos = v
8825	return s
8826}
8827
8828// SetStorageEncrypted sets the StorageEncrypted field's value.
8829func (s *DBInstance) SetStorageEncrypted(v bool) *DBInstance {
8830	s.StorageEncrypted = &v
8831	return s
8832}
8833
8834// SetVpcSecurityGroups sets the VpcSecurityGroups field's value.
8835func (s *DBInstance) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *DBInstance {
8836	s.VpcSecurityGroups = v
8837	return s
8838}
8839
8840// Provides a list of status information for an instance.
8841type DBInstanceStatusInfo struct {
8842	_ struct{} `type:"structure"`
8843
8844	// Details of the error if there is an error for the instance. If the instance
8845	// is not in an error state, this value is blank.
8846	Message *string `type:"string"`
8847
8848	// A Boolean value that is true if the instance is operating normally, or false
8849	// if the instance is in an error state.
8850	Normal *bool `type:"boolean"`
8851
8852	// Status of the instance. For a StatusType of read replica, the values can
8853	// be replicating, error, stopped, or terminated.
8854	Status *string `type:"string"`
8855
8856	// This value is currently "read replication."
8857	StatusType *string `type:"string"`
8858}
8859
8860// String returns the string representation.
8861//
8862// API parameter values that are decorated as "sensitive" in the API will not
8863// be included in the string output. The member name will be present, but the
8864// value will be replaced with "sensitive".
8865func (s DBInstanceStatusInfo) String() string {
8866	return awsutil.Prettify(s)
8867}
8868
8869// GoString returns the string representation.
8870//
8871// API parameter values that are decorated as "sensitive" in the API will not
8872// be included in the string output. The member name will be present, but the
8873// value will be replaced with "sensitive".
8874func (s DBInstanceStatusInfo) GoString() string {
8875	return s.String()
8876}
8877
8878// SetMessage sets the Message field's value.
8879func (s *DBInstanceStatusInfo) SetMessage(v string) *DBInstanceStatusInfo {
8880	s.Message = &v
8881	return s
8882}
8883
8884// SetNormal sets the Normal field's value.
8885func (s *DBInstanceStatusInfo) SetNormal(v bool) *DBInstanceStatusInfo {
8886	s.Normal = &v
8887	return s
8888}
8889
8890// SetStatus sets the Status field's value.
8891func (s *DBInstanceStatusInfo) SetStatus(v string) *DBInstanceStatusInfo {
8892	s.Status = &v
8893	return s
8894}
8895
8896// SetStatusType sets the StatusType field's value.
8897func (s *DBInstanceStatusInfo) SetStatusType(v string) *DBInstanceStatusInfo {
8898	s.StatusType = &v
8899	return s
8900}
8901
8902// Detailed information about a subnet group.
8903type DBSubnetGroup struct {
8904	_ struct{} `type:"structure"`
8905
8906	// The Amazon Resource Name (ARN) for the DB subnet group.
8907	DBSubnetGroupArn *string `type:"string"`
8908
8909	// Provides the description of the subnet group.
8910	DBSubnetGroupDescription *string `type:"string"`
8911
8912	// The name of the subnet group.
8913	DBSubnetGroupName *string `type:"string"`
8914
8915	// Provides the status of the subnet group.
8916	SubnetGroupStatus *string `type:"string"`
8917
8918	// Detailed information about one or more subnets within a subnet group.
8919	Subnets []*Subnet `locationNameList:"Subnet" type:"list"`
8920
8921	// Provides the virtual private cloud (VPC) ID of the subnet group.
8922	VpcId *string `type:"string"`
8923}
8924
8925// String returns the string representation.
8926//
8927// API parameter values that are decorated as "sensitive" in the API will not
8928// be included in the string output. The member name will be present, but the
8929// value will be replaced with "sensitive".
8930func (s DBSubnetGroup) String() string {
8931	return awsutil.Prettify(s)
8932}
8933
8934// GoString returns the string representation.
8935//
8936// API parameter values that are decorated as "sensitive" in the API will not
8937// be included in the string output. The member name will be present, but the
8938// value will be replaced with "sensitive".
8939func (s DBSubnetGroup) GoString() string {
8940	return s.String()
8941}
8942
8943// SetDBSubnetGroupArn sets the DBSubnetGroupArn field's value.
8944func (s *DBSubnetGroup) SetDBSubnetGroupArn(v string) *DBSubnetGroup {
8945	s.DBSubnetGroupArn = &v
8946	return s
8947}
8948
8949// SetDBSubnetGroupDescription sets the DBSubnetGroupDescription field's value.
8950func (s *DBSubnetGroup) SetDBSubnetGroupDescription(v string) *DBSubnetGroup {
8951	s.DBSubnetGroupDescription = &v
8952	return s
8953}
8954
8955// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
8956func (s *DBSubnetGroup) SetDBSubnetGroupName(v string) *DBSubnetGroup {
8957	s.DBSubnetGroupName = &v
8958	return s
8959}
8960
8961// SetSubnetGroupStatus sets the SubnetGroupStatus field's value.
8962func (s *DBSubnetGroup) SetSubnetGroupStatus(v string) *DBSubnetGroup {
8963	s.SubnetGroupStatus = &v
8964	return s
8965}
8966
8967// SetSubnets sets the Subnets field's value.
8968func (s *DBSubnetGroup) SetSubnets(v []*Subnet) *DBSubnetGroup {
8969	s.Subnets = v
8970	return s
8971}
8972
8973// SetVpcId sets the VpcId field's value.
8974func (s *DBSubnetGroup) SetVpcId(v string) *DBSubnetGroup {
8975	s.VpcId = &v
8976	return s
8977}
8978
8979// Represents the input to DeleteDBCluster.
8980type DeleteDBClusterInput struct {
8981	_ struct{} `type:"structure"`
8982
8983	// The cluster identifier for the cluster to be deleted. This parameter isn't
8984	// case sensitive.
8985	//
8986	// Constraints:
8987	//
8988	//    * Must match an existing DBClusterIdentifier.
8989	//
8990	// DBClusterIdentifier is a required field
8991	DBClusterIdentifier *string `type:"string" required:"true"`
8992
8993	// The cluster snapshot identifier of the new cluster snapshot created when
8994	// SkipFinalSnapshot is set to false.
8995	//
8996	// Specifying this parameter and also setting the SkipFinalShapshot parameter
8997	// to true results in an error.
8998	//
8999	// Constraints:
9000	//
9001	//    * Must be from 1 to 255 letters, numbers, or hyphens.
9002	//
9003	//    * The first character must be a letter.
9004	//
9005	//    * Cannot end with a hyphen or contain two consecutive hyphens.
9006	FinalDBSnapshotIdentifier *string `type:"string"`
9007
9008	// Determines whether a final cluster snapshot is created before the cluster
9009	// is deleted. If true is specified, no cluster snapshot is created. If false
9010	// is specified, a cluster snapshot is created before the DB cluster is deleted.
9011	//
9012	// If SkipFinalSnapshot is false, you must specify a FinalDBSnapshotIdentifier
9013	// parameter.
9014	//
9015	// Default: false
9016	SkipFinalSnapshot *bool `type:"boolean"`
9017}
9018
9019// String returns the string representation.
9020//
9021// API parameter values that are decorated as "sensitive" in the API will not
9022// be included in the string output. The member name will be present, but the
9023// value will be replaced with "sensitive".
9024func (s DeleteDBClusterInput) String() string {
9025	return awsutil.Prettify(s)
9026}
9027
9028// GoString returns the string representation.
9029//
9030// API parameter values that are decorated as "sensitive" in the API will not
9031// be included in the string output. The member name will be present, but the
9032// value will be replaced with "sensitive".
9033func (s DeleteDBClusterInput) GoString() string {
9034	return s.String()
9035}
9036
9037// Validate inspects the fields of the type to determine if they are valid.
9038func (s *DeleteDBClusterInput) Validate() error {
9039	invalidParams := request.ErrInvalidParams{Context: "DeleteDBClusterInput"}
9040	if s.DBClusterIdentifier == nil {
9041		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
9042	}
9043
9044	if invalidParams.Len() > 0 {
9045		return invalidParams
9046	}
9047	return nil
9048}
9049
9050// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
9051func (s *DeleteDBClusterInput) SetDBClusterIdentifier(v string) *DeleteDBClusterInput {
9052	s.DBClusterIdentifier = &v
9053	return s
9054}
9055
9056// SetFinalDBSnapshotIdentifier sets the FinalDBSnapshotIdentifier field's value.
9057func (s *DeleteDBClusterInput) SetFinalDBSnapshotIdentifier(v string) *DeleteDBClusterInput {
9058	s.FinalDBSnapshotIdentifier = &v
9059	return s
9060}
9061
9062// SetSkipFinalSnapshot sets the SkipFinalSnapshot field's value.
9063func (s *DeleteDBClusterInput) SetSkipFinalSnapshot(v bool) *DeleteDBClusterInput {
9064	s.SkipFinalSnapshot = &v
9065	return s
9066}
9067
9068type DeleteDBClusterOutput struct {
9069	_ struct{} `type:"structure"`
9070
9071	// Detailed information about a cluster.
9072	DBCluster *DBCluster `type:"structure"`
9073}
9074
9075// String returns the string representation.
9076//
9077// API parameter values that are decorated as "sensitive" in the API will not
9078// be included in the string output. The member name will be present, but the
9079// value will be replaced with "sensitive".
9080func (s DeleteDBClusterOutput) String() string {
9081	return awsutil.Prettify(s)
9082}
9083
9084// GoString returns the string representation.
9085//
9086// API parameter values that are decorated as "sensitive" in the API will not
9087// be included in the string output. The member name will be present, but the
9088// value will be replaced with "sensitive".
9089func (s DeleteDBClusterOutput) GoString() string {
9090	return s.String()
9091}
9092
9093// SetDBCluster sets the DBCluster field's value.
9094func (s *DeleteDBClusterOutput) SetDBCluster(v *DBCluster) *DeleteDBClusterOutput {
9095	s.DBCluster = v
9096	return s
9097}
9098
9099// Represents the input to DeleteDBClusterParameterGroup.
9100type DeleteDBClusterParameterGroupInput struct {
9101	_ struct{} `type:"structure"`
9102
9103	// The name of the cluster parameter group.
9104	//
9105	// Constraints:
9106	//
9107	//    * Must be the name of an existing cluster parameter group.
9108	//
9109	//    * You can't delete a default cluster parameter group.
9110	//
9111	//    * Cannot be associated with any clusters.
9112	//
9113	// DBClusterParameterGroupName is a required field
9114	DBClusterParameterGroupName *string `type:"string" required:"true"`
9115}
9116
9117// String returns the string representation.
9118//
9119// API parameter values that are decorated as "sensitive" in the API will not
9120// be included in the string output. The member name will be present, but the
9121// value will be replaced with "sensitive".
9122func (s DeleteDBClusterParameterGroupInput) String() string {
9123	return awsutil.Prettify(s)
9124}
9125
9126// GoString returns the string representation.
9127//
9128// API parameter values that are decorated as "sensitive" in the API will not
9129// be included in the string output. The member name will be present, but the
9130// value will be replaced with "sensitive".
9131func (s DeleteDBClusterParameterGroupInput) GoString() string {
9132	return s.String()
9133}
9134
9135// Validate inspects the fields of the type to determine if they are valid.
9136func (s *DeleteDBClusterParameterGroupInput) Validate() error {
9137	invalidParams := request.ErrInvalidParams{Context: "DeleteDBClusterParameterGroupInput"}
9138	if s.DBClusterParameterGroupName == nil {
9139		invalidParams.Add(request.NewErrParamRequired("DBClusterParameterGroupName"))
9140	}
9141
9142	if invalidParams.Len() > 0 {
9143		return invalidParams
9144	}
9145	return nil
9146}
9147
9148// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
9149func (s *DeleteDBClusterParameterGroupInput) SetDBClusterParameterGroupName(v string) *DeleteDBClusterParameterGroupInput {
9150	s.DBClusterParameterGroupName = &v
9151	return s
9152}
9153
9154type DeleteDBClusterParameterGroupOutput struct {
9155	_ struct{} `type:"structure"`
9156}
9157
9158// String returns the string representation.
9159//
9160// API parameter values that are decorated as "sensitive" in the API will not
9161// be included in the string output. The member name will be present, but the
9162// value will be replaced with "sensitive".
9163func (s DeleteDBClusterParameterGroupOutput) String() string {
9164	return awsutil.Prettify(s)
9165}
9166
9167// GoString returns the string representation.
9168//
9169// API parameter values that are decorated as "sensitive" in the API will not
9170// be included in the string output. The member name will be present, but the
9171// value will be replaced with "sensitive".
9172func (s DeleteDBClusterParameterGroupOutput) GoString() string {
9173	return s.String()
9174}
9175
9176// Represents the input to DeleteDBClusterSnapshot.
9177type DeleteDBClusterSnapshotInput struct {
9178	_ struct{} `type:"structure"`
9179
9180	// The identifier of the cluster snapshot to delete.
9181	//
9182	// Constraints: Must be the name of an existing cluster snapshot in the available
9183	// state.
9184	//
9185	// DBClusterSnapshotIdentifier is a required field
9186	DBClusterSnapshotIdentifier *string `type:"string" required:"true"`
9187}
9188
9189// String returns the string representation.
9190//
9191// API parameter values that are decorated as "sensitive" in the API will not
9192// be included in the string output. The member name will be present, but the
9193// value will be replaced with "sensitive".
9194func (s DeleteDBClusterSnapshotInput) String() string {
9195	return awsutil.Prettify(s)
9196}
9197
9198// GoString returns the string representation.
9199//
9200// API parameter values that are decorated as "sensitive" in the API will not
9201// be included in the string output. The member name will be present, but the
9202// value will be replaced with "sensitive".
9203func (s DeleteDBClusterSnapshotInput) GoString() string {
9204	return s.String()
9205}
9206
9207// Validate inspects the fields of the type to determine if they are valid.
9208func (s *DeleteDBClusterSnapshotInput) Validate() error {
9209	invalidParams := request.ErrInvalidParams{Context: "DeleteDBClusterSnapshotInput"}
9210	if s.DBClusterSnapshotIdentifier == nil {
9211		invalidParams.Add(request.NewErrParamRequired("DBClusterSnapshotIdentifier"))
9212	}
9213
9214	if invalidParams.Len() > 0 {
9215		return invalidParams
9216	}
9217	return nil
9218}
9219
9220// SetDBClusterSnapshotIdentifier sets the DBClusterSnapshotIdentifier field's value.
9221func (s *DeleteDBClusterSnapshotInput) SetDBClusterSnapshotIdentifier(v string) *DeleteDBClusterSnapshotInput {
9222	s.DBClusterSnapshotIdentifier = &v
9223	return s
9224}
9225
9226type DeleteDBClusterSnapshotOutput struct {
9227	_ struct{} `type:"structure"`
9228
9229	// Detailed information about a cluster snapshot.
9230	DBClusterSnapshot *DBClusterSnapshot `type:"structure"`
9231}
9232
9233// String 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 DeleteDBClusterSnapshotOutput) String() string {
9239	return awsutil.Prettify(s)
9240}
9241
9242// GoString returns the string representation.
9243//
9244// API parameter values that are decorated as "sensitive" in the API will not
9245// be included in the string output. The member name will be present, but the
9246// value will be replaced with "sensitive".
9247func (s DeleteDBClusterSnapshotOutput) GoString() string {
9248	return s.String()
9249}
9250
9251// SetDBClusterSnapshot sets the DBClusterSnapshot field's value.
9252func (s *DeleteDBClusterSnapshotOutput) SetDBClusterSnapshot(v *DBClusterSnapshot) *DeleteDBClusterSnapshotOutput {
9253	s.DBClusterSnapshot = v
9254	return s
9255}
9256
9257// Represents the input to DeleteDBInstance.
9258type DeleteDBInstanceInput struct {
9259	_ struct{} `type:"structure"`
9260
9261	// The instance identifier for the instance to be deleted. This parameter isn't
9262	// case sensitive.
9263	//
9264	// Constraints:
9265	//
9266	//    * Must match the name of an existing instance.
9267	//
9268	// DBInstanceIdentifier is a required field
9269	DBInstanceIdentifier *string `type:"string" required:"true"`
9270}
9271
9272// String returns the string representation.
9273//
9274// API parameter values that are decorated as "sensitive" in the API will not
9275// be included in the string output. The member name will be present, but the
9276// value will be replaced with "sensitive".
9277func (s DeleteDBInstanceInput) String() string {
9278	return awsutil.Prettify(s)
9279}
9280
9281// GoString returns the string representation.
9282//
9283// API parameter values that are decorated as "sensitive" in the API will not
9284// be included in the string output. The member name will be present, but the
9285// value will be replaced with "sensitive".
9286func (s DeleteDBInstanceInput) GoString() string {
9287	return s.String()
9288}
9289
9290// Validate inspects the fields of the type to determine if they are valid.
9291func (s *DeleteDBInstanceInput) Validate() error {
9292	invalidParams := request.ErrInvalidParams{Context: "DeleteDBInstanceInput"}
9293	if s.DBInstanceIdentifier == nil {
9294		invalidParams.Add(request.NewErrParamRequired("DBInstanceIdentifier"))
9295	}
9296
9297	if invalidParams.Len() > 0 {
9298		return invalidParams
9299	}
9300	return nil
9301}
9302
9303// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
9304func (s *DeleteDBInstanceInput) SetDBInstanceIdentifier(v string) *DeleteDBInstanceInput {
9305	s.DBInstanceIdentifier = &v
9306	return s
9307}
9308
9309type DeleteDBInstanceOutput struct {
9310	_ struct{} `type:"structure"`
9311
9312	// Detailed information about an instance.
9313	DBInstance *DBInstance `type:"structure"`
9314}
9315
9316// String returns the string representation.
9317//
9318// API parameter values that are decorated as "sensitive" in the API will not
9319// be included in the string output. The member name will be present, but the
9320// value will be replaced with "sensitive".
9321func (s DeleteDBInstanceOutput) String() string {
9322	return awsutil.Prettify(s)
9323}
9324
9325// GoString returns the string representation.
9326//
9327// API parameter values that are decorated as "sensitive" in the API will not
9328// be included in the string output. The member name will be present, but the
9329// value will be replaced with "sensitive".
9330func (s DeleteDBInstanceOutput) GoString() string {
9331	return s.String()
9332}
9333
9334// SetDBInstance sets the DBInstance field's value.
9335func (s *DeleteDBInstanceOutput) SetDBInstance(v *DBInstance) *DeleteDBInstanceOutput {
9336	s.DBInstance = v
9337	return s
9338}
9339
9340// Represents the input to DeleteDBSubnetGroup.
9341type DeleteDBSubnetGroupInput struct {
9342	_ struct{} `type:"structure"`
9343
9344	// The name of the database subnet group to delete.
9345	//
9346	// You can't delete the default subnet group.
9347	//
9348	// Constraints:
9349	//
9350	// Must match the name of an existing DBSubnetGroup. Must not be default.
9351	//
9352	// Example: mySubnetgroup
9353	//
9354	// DBSubnetGroupName is a required field
9355	DBSubnetGroupName *string `type:"string" required:"true"`
9356}
9357
9358// String 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 DeleteDBSubnetGroupInput) String() string {
9364	return awsutil.Prettify(s)
9365}
9366
9367// GoString returns the string representation.
9368//
9369// API parameter values that are decorated as "sensitive" in the API will not
9370// be included in the string output. The member name will be present, but the
9371// value will be replaced with "sensitive".
9372func (s DeleteDBSubnetGroupInput) GoString() string {
9373	return s.String()
9374}
9375
9376// Validate inspects the fields of the type to determine if they are valid.
9377func (s *DeleteDBSubnetGroupInput) Validate() error {
9378	invalidParams := request.ErrInvalidParams{Context: "DeleteDBSubnetGroupInput"}
9379	if s.DBSubnetGroupName == nil {
9380		invalidParams.Add(request.NewErrParamRequired("DBSubnetGroupName"))
9381	}
9382
9383	if invalidParams.Len() > 0 {
9384		return invalidParams
9385	}
9386	return nil
9387}
9388
9389// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
9390func (s *DeleteDBSubnetGroupInput) SetDBSubnetGroupName(v string) *DeleteDBSubnetGroupInput {
9391	s.DBSubnetGroupName = &v
9392	return s
9393}
9394
9395type DeleteDBSubnetGroupOutput struct {
9396	_ struct{} `type:"structure"`
9397}
9398
9399// String returns the string representation.
9400//
9401// API parameter values that are decorated as "sensitive" in the API will not
9402// be included in the string output. The member name will be present, but the
9403// value will be replaced with "sensitive".
9404func (s DeleteDBSubnetGroupOutput) String() string {
9405	return awsutil.Prettify(s)
9406}
9407
9408// GoString returns the string representation.
9409//
9410// API parameter values that are decorated as "sensitive" in the API will not
9411// be included in the string output. The member name will be present, but the
9412// value will be replaced with "sensitive".
9413func (s DeleteDBSubnetGroupOutput) GoString() string {
9414	return s.String()
9415}
9416
9417// Represents the input to DeleteEventSubscription.
9418type DeleteEventSubscriptionInput struct {
9419	_ struct{} `type:"structure"`
9420
9421	// The name of the Amazon DocumentDB event notification subscription that you
9422	// want to delete.
9423	//
9424	// SubscriptionName is a required field
9425	SubscriptionName *string `type:"string" required:"true"`
9426}
9427
9428// String returns the string representation.
9429//
9430// API parameter values that are decorated as "sensitive" in the API will not
9431// be included in the string output. The member name will be present, but the
9432// value will be replaced with "sensitive".
9433func (s DeleteEventSubscriptionInput) String() string {
9434	return awsutil.Prettify(s)
9435}
9436
9437// GoString returns the string representation.
9438//
9439// API parameter values that are decorated as "sensitive" in the API will not
9440// be included in the string output. The member name will be present, but the
9441// value will be replaced with "sensitive".
9442func (s DeleteEventSubscriptionInput) GoString() string {
9443	return s.String()
9444}
9445
9446// Validate inspects the fields of the type to determine if they are valid.
9447func (s *DeleteEventSubscriptionInput) Validate() error {
9448	invalidParams := request.ErrInvalidParams{Context: "DeleteEventSubscriptionInput"}
9449	if s.SubscriptionName == nil {
9450		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
9451	}
9452
9453	if invalidParams.Len() > 0 {
9454		return invalidParams
9455	}
9456	return nil
9457}
9458
9459// SetSubscriptionName sets the SubscriptionName field's value.
9460func (s *DeleteEventSubscriptionInput) SetSubscriptionName(v string) *DeleteEventSubscriptionInput {
9461	s.SubscriptionName = &v
9462	return s
9463}
9464
9465type DeleteEventSubscriptionOutput struct {
9466	_ struct{} `type:"structure"`
9467
9468	// Detailed information about an event to which you have subscribed.
9469	EventSubscription *EventSubscription `type:"structure"`
9470}
9471
9472// String returns the string representation.
9473//
9474// API parameter values that are decorated as "sensitive" in the API will not
9475// be included in the string output. The member name will be present, but the
9476// value will be replaced with "sensitive".
9477func (s DeleteEventSubscriptionOutput) String() string {
9478	return awsutil.Prettify(s)
9479}
9480
9481// GoString returns the string representation.
9482//
9483// API parameter values that are decorated as "sensitive" in the API will not
9484// be included in the string output. The member name will be present, but the
9485// value will be replaced with "sensitive".
9486func (s DeleteEventSubscriptionOutput) GoString() string {
9487	return s.String()
9488}
9489
9490// SetEventSubscription sets the EventSubscription field's value.
9491func (s *DeleteEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *DeleteEventSubscriptionOutput {
9492	s.EventSubscription = v
9493	return s
9494}
9495
9496// Represents the input to DeleteGlobalCluster.
9497type DeleteGlobalClusterInput struct {
9498	_ struct{} `type:"structure"`
9499
9500	// The cluster identifier of the global cluster being deleted.
9501	//
9502	// GlobalClusterIdentifier is a required field
9503	GlobalClusterIdentifier *string `min:"1" type:"string" required:"true"`
9504}
9505
9506// String returns the string representation.
9507//
9508// API parameter values that are decorated as "sensitive" in the API will not
9509// be included in the string output. The member name will be present, but the
9510// value will be replaced with "sensitive".
9511func (s DeleteGlobalClusterInput) String() string {
9512	return awsutil.Prettify(s)
9513}
9514
9515// GoString returns the string representation.
9516//
9517// API parameter values that are decorated as "sensitive" in the API will not
9518// be included in the string output. The member name will be present, but the
9519// value will be replaced with "sensitive".
9520func (s DeleteGlobalClusterInput) GoString() string {
9521	return s.String()
9522}
9523
9524// Validate inspects the fields of the type to determine if they are valid.
9525func (s *DeleteGlobalClusterInput) Validate() error {
9526	invalidParams := request.ErrInvalidParams{Context: "DeleteGlobalClusterInput"}
9527	if s.GlobalClusterIdentifier == nil {
9528		invalidParams.Add(request.NewErrParamRequired("GlobalClusterIdentifier"))
9529	}
9530	if s.GlobalClusterIdentifier != nil && len(*s.GlobalClusterIdentifier) < 1 {
9531		invalidParams.Add(request.NewErrParamMinLen("GlobalClusterIdentifier", 1))
9532	}
9533
9534	if invalidParams.Len() > 0 {
9535		return invalidParams
9536	}
9537	return nil
9538}
9539
9540// SetGlobalClusterIdentifier sets the GlobalClusterIdentifier field's value.
9541func (s *DeleteGlobalClusterInput) SetGlobalClusterIdentifier(v string) *DeleteGlobalClusterInput {
9542	s.GlobalClusterIdentifier = &v
9543	return s
9544}
9545
9546type DeleteGlobalClusterOutput struct {
9547	_ struct{} `type:"structure"`
9548
9549	// A data type representing an Amazon DocumentDB global cluster.
9550	GlobalCluster *GlobalCluster `type:"structure"`
9551}
9552
9553// String 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 DeleteGlobalClusterOutput) String() string {
9559	return awsutil.Prettify(s)
9560}
9561
9562// GoString returns the string representation.
9563//
9564// API parameter values that are decorated as "sensitive" in the API will not
9565// be included in the string output. The member name will be present, but the
9566// value will be replaced with "sensitive".
9567func (s DeleteGlobalClusterOutput) GoString() string {
9568	return s.String()
9569}
9570
9571// SetGlobalCluster sets the GlobalCluster field's value.
9572func (s *DeleteGlobalClusterOutput) SetGlobalCluster(v *GlobalCluster) *DeleteGlobalClusterOutput {
9573	s.GlobalCluster = v
9574	return s
9575}
9576
9577type DescribeCertificatesInput struct {
9578	_ struct{} `type:"structure"`
9579
9580	// The user-supplied certificate identifier. If this parameter is specified,
9581	// information for only the specified certificate is returned. If this parameter
9582	// is omitted, a list of up to MaxRecords certificates is returned. This parameter
9583	// is not case sensitive.
9584	//
9585	// Constraints
9586	//
9587	//    * Must match an existing CertificateIdentifier.
9588	CertificateIdentifier *string `type:"string"`
9589
9590	// This parameter is not currently supported.
9591	Filters []*Filter `locationNameList:"Filter" type:"list"`
9592
9593	// An optional pagination token provided by a previous DescribeCertificates
9594	// request. If this parameter is specified, the response includes only records
9595	// beyond the marker, up to the value specified by MaxRecords.
9596	Marker *string `type:"string"`
9597
9598	// The maximum number of records to include in the response. If more records
9599	// exist than the specified MaxRecords value, a pagination token called a marker
9600	// is included in the response so that the remaining results can be retrieved.
9601	//
9602	// Default: 100
9603	//
9604	// Constraints:
9605	//
9606	//    * Minimum: 20
9607	//
9608	//    * Maximum: 100
9609	MaxRecords *int64 `type:"integer"`
9610}
9611
9612// String returns the string representation.
9613//
9614// API parameter values that are decorated as "sensitive" in the API will not
9615// be included in the string output. The member name will be present, but the
9616// value will be replaced with "sensitive".
9617func (s DescribeCertificatesInput) String() string {
9618	return awsutil.Prettify(s)
9619}
9620
9621// GoString returns the string representation.
9622//
9623// API parameter values that are decorated as "sensitive" in the API will not
9624// be included in the string output. The member name will be present, but the
9625// value will be replaced with "sensitive".
9626func (s DescribeCertificatesInput) GoString() string {
9627	return s.String()
9628}
9629
9630// Validate inspects the fields of the type to determine if they are valid.
9631func (s *DescribeCertificatesInput) Validate() error {
9632	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificatesInput"}
9633	if s.Filters != nil {
9634		for i, v := range s.Filters {
9635			if v == nil {
9636				continue
9637			}
9638			if err := v.Validate(); err != nil {
9639				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
9640			}
9641		}
9642	}
9643
9644	if invalidParams.Len() > 0 {
9645		return invalidParams
9646	}
9647	return nil
9648}
9649
9650// SetCertificateIdentifier sets the CertificateIdentifier field's value.
9651func (s *DescribeCertificatesInput) SetCertificateIdentifier(v string) *DescribeCertificatesInput {
9652	s.CertificateIdentifier = &v
9653	return s
9654}
9655
9656// SetFilters sets the Filters field's value.
9657func (s *DescribeCertificatesInput) SetFilters(v []*Filter) *DescribeCertificatesInput {
9658	s.Filters = v
9659	return s
9660}
9661
9662// SetMarker sets the Marker field's value.
9663func (s *DescribeCertificatesInput) SetMarker(v string) *DescribeCertificatesInput {
9664	s.Marker = &v
9665	return s
9666}
9667
9668// SetMaxRecords sets the MaxRecords field's value.
9669func (s *DescribeCertificatesInput) SetMaxRecords(v int64) *DescribeCertificatesInput {
9670	s.MaxRecords = &v
9671	return s
9672}
9673
9674type DescribeCertificatesOutput struct {
9675	_ struct{} `type:"structure"`
9676
9677	// A list of certificates for this account.
9678	Certificates []*Certificate `locationNameList:"Certificate" type:"list"`
9679
9680	// An optional pagination token provided if the number of records retrieved
9681	// is greater than MaxRecords. If this parameter is specified, the marker specifies
9682	// the next record in the list. Including the value of Marker in the next call
9683	// to DescribeCertificates results in the next page of certificates.
9684	Marker *string `type:"string"`
9685}
9686
9687// String returns the string representation.
9688//
9689// API parameter values that are decorated as "sensitive" in the API will not
9690// be included in the string output. The member name will be present, but the
9691// value will be replaced with "sensitive".
9692func (s DescribeCertificatesOutput) String() string {
9693	return awsutil.Prettify(s)
9694}
9695
9696// GoString returns the string representation.
9697//
9698// API parameter values that are decorated as "sensitive" in the API will not
9699// be included in the string output. The member name will be present, but the
9700// value will be replaced with "sensitive".
9701func (s DescribeCertificatesOutput) GoString() string {
9702	return s.String()
9703}
9704
9705// SetCertificates sets the Certificates field's value.
9706func (s *DescribeCertificatesOutput) SetCertificates(v []*Certificate) *DescribeCertificatesOutput {
9707	s.Certificates = v
9708	return s
9709}
9710
9711// SetMarker sets the Marker field's value.
9712func (s *DescribeCertificatesOutput) SetMarker(v string) *DescribeCertificatesOutput {
9713	s.Marker = &v
9714	return s
9715}
9716
9717// Represents the input to DescribeDBClusterParameterGroups.
9718type DescribeDBClusterParameterGroupsInput struct {
9719	_ struct{} `type:"structure"`
9720
9721	// The name of a specific cluster parameter group to return details for.
9722	//
9723	// Constraints:
9724	//
9725	//    * If provided, must match the name of an existing DBClusterParameterGroup.
9726	DBClusterParameterGroupName *string `type:"string"`
9727
9728	// This parameter is not currently supported.
9729	Filters []*Filter `locationNameList:"Filter" type:"list"`
9730
9731	// An optional pagination token provided by a previous request. If this parameter
9732	// is specified, the response includes only records beyond the marker, up to
9733	// the value specified by MaxRecords.
9734	Marker *string `type:"string"`
9735
9736	// The maximum number of records to include in the response. If more records
9737	// exist than the specified MaxRecords value, a pagination token (marker) is
9738	// included in the response so that the remaining results can be retrieved.
9739	//
9740	// Default: 100
9741	//
9742	// Constraints: Minimum 20, maximum 100.
9743	MaxRecords *int64 `type:"integer"`
9744}
9745
9746// String returns the string representation.
9747//
9748// API parameter values that are decorated as "sensitive" in the API will not
9749// be included in the string output. The member name will be present, but the
9750// value will be replaced with "sensitive".
9751func (s DescribeDBClusterParameterGroupsInput) String() string {
9752	return awsutil.Prettify(s)
9753}
9754
9755// GoString returns the string representation.
9756//
9757// API parameter values that are decorated as "sensitive" in the API will not
9758// be included in the string output. The member name will be present, but the
9759// value will be replaced with "sensitive".
9760func (s DescribeDBClusterParameterGroupsInput) GoString() string {
9761	return s.String()
9762}
9763
9764// Validate inspects the fields of the type to determine if they are valid.
9765func (s *DescribeDBClusterParameterGroupsInput) Validate() error {
9766	invalidParams := request.ErrInvalidParams{Context: "DescribeDBClusterParameterGroupsInput"}
9767	if s.Filters != nil {
9768		for i, v := range s.Filters {
9769			if v == nil {
9770				continue
9771			}
9772			if err := v.Validate(); err != nil {
9773				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
9774			}
9775		}
9776	}
9777
9778	if invalidParams.Len() > 0 {
9779		return invalidParams
9780	}
9781	return nil
9782}
9783
9784// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
9785func (s *DescribeDBClusterParameterGroupsInput) SetDBClusterParameterGroupName(v string) *DescribeDBClusterParameterGroupsInput {
9786	s.DBClusterParameterGroupName = &v
9787	return s
9788}
9789
9790// SetFilters sets the Filters field's value.
9791func (s *DescribeDBClusterParameterGroupsInput) SetFilters(v []*Filter) *DescribeDBClusterParameterGroupsInput {
9792	s.Filters = v
9793	return s
9794}
9795
9796// SetMarker sets the Marker field's value.
9797func (s *DescribeDBClusterParameterGroupsInput) SetMarker(v string) *DescribeDBClusterParameterGroupsInput {
9798	s.Marker = &v
9799	return s
9800}
9801
9802// SetMaxRecords sets the MaxRecords field's value.
9803func (s *DescribeDBClusterParameterGroupsInput) SetMaxRecords(v int64) *DescribeDBClusterParameterGroupsInput {
9804	s.MaxRecords = &v
9805	return s
9806}
9807
9808// Represents the output of DBClusterParameterGroups.
9809type DescribeDBClusterParameterGroupsOutput struct {
9810	_ struct{} `type:"structure"`
9811
9812	// A list of cluster parameter groups.
9813	DBClusterParameterGroups []*DBClusterParameterGroup `locationNameList:"DBClusterParameterGroup" type:"list"`
9814
9815	// An optional pagination token provided by a previous request. If this parameter
9816	// is specified, the response includes only records beyond the marker, up to
9817	// the value specified by MaxRecords.
9818	Marker *string `type:"string"`
9819}
9820
9821// String returns the string representation.
9822//
9823// API parameter values that are decorated as "sensitive" in the API will not
9824// be included in the string output. The member name will be present, but the
9825// value will be replaced with "sensitive".
9826func (s DescribeDBClusterParameterGroupsOutput) String() string {
9827	return awsutil.Prettify(s)
9828}
9829
9830// GoString returns the string representation.
9831//
9832// API parameter values that are decorated as "sensitive" in the API will not
9833// be included in the string output. The member name will be present, but the
9834// value will be replaced with "sensitive".
9835func (s DescribeDBClusterParameterGroupsOutput) GoString() string {
9836	return s.String()
9837}
9838
9839// SetDBClusterParameterGroups sets the DBClusterParameterGroups field's value.
9840func (s *DescribeDBClusterParameterGroupsOutput) SetDBClusterParameterGroups(v []*DBClusterParameterGroup) *DescribeDBClusterParameterGroupsOutput {
9841	s.DBClusterParameterGroups = v
9842	return s
9843}
9844
9845// SetMarker sets the Marker field's value.
9846func (s *DescribeDBClusterParameterGroupsOutput) SetMarker(v string) *DescribeDBClusterParameterGroupsOutput {
9847	s.Marker = &v
9848	return s
9849}
9850
9851// Represents the input to DescribeDBClusterParameters.
9852type DescribeDBClusterParametersInput struct {
9853	_ struct{} `type:"structure"`
9854
9855	// The name of a specific cluster parameter group to return parameter details
9856	// for.
9857	//
9858	// Constraints:
9859	//
9860	//    * If provided, must match the name of an existing DBClusterParameterGroup.
9861	//
9862	// DBClusterParameterGroupName is a required field
9863	DBClusterParameterGroupName *string `type:"string" required:"true"`
9864
9865	// This parameter is not currently supported.
9866	Filters []*Filter `locationNameList:"Filter" type:"list"`
9867
9868	// An optional pagination token provided by a previous request. If this parameter
9869	// is specified, the response includes only records beyond the marker, up to
9870	// the value specified by MaxRecords.
9871	Marker *string `type:"string"`
9872
9873	// The maximum number of records to include in the response. If more records
9874	// exist than the specified MaxRecords value, a pagination token (marker) is
9875	// included in the response so that the remaining results can be retrieved.
9876	//
9877	// Default: 100
9878	//
9879	// Constraints: Minimum 20, maximum 100.
9880	MaxRecords *int64 `type:"integer"`
9881
9882	// A value that indicates to return only parameters for a specific source. Parameter
9883	// sources can be engine, service, or customer.
9884	Source *string `type:"string"`
9885}
9886
9887// String returns the string representation.
9888//
9889// API parameter values that are decorated as "sensitive" in the API will not
9890// be included in the string output. The member name will be present, but the
9891// value will be replaced with "sensitive".
9892func (s DescribeDBClusterParametersInput) String() string {
9893	return awsutil.Prettify(s)
9894}
9895
9896// GoString returns the string representation.
9897//
9898// API parameter values that are decorated as "sensitive" in the API will not
9899// be included in the string output. The member name will be present, but the
9900// value will be replaced with "sensitive".
9901func (s DescribeDBClusterParametersInput) GoString() string {
9902	return s.String()
9903}
9904
9905// Validate inspects the fields of the type to determine if they are valid.
9906func (s *DescribeDBClusterParametersInput) Validate() error {
9907	invalidParams := request.ErrInvalidParams{Context: "DescribeDBClusterParametersInput"}
9908	if s.DBClusterParameterGroupName == nil {
9909		invalidParams.Add(request.NewErrParamRequired("DBClusterParameterGroupName"))
9910	}
9911	if s.Filters != nil {
9912		for i, v := range s.Filters {
9913			if v == nil {
9914				continue
9915			}
9916			if err := v.Validate(); err != nil {
9917				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
9918			}
9919		}
9920	}
9921
9922	if invalidParams.Len() > 0 {
9923		return invalidParams
9924	}
9925	return nil
9926}
9927
9928// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
9929func (s *DescribeDBClusterParametersInput) SetDBClusterParameterGroupName(v string) *DescribeDBClusterParametersInput {
9930	s.DBClusterParameterGroupName = &v
9931	return s
9932}
9933
9934// SetFilters sets the Filters field's value.
9935func (s *DescribeDBClusterParametersInput) SetFilters(v []*Filter) *DescribeDBClusterParametersInput {
9936	s.Filters = v
9937	return s
9938}
9939
9940// SetMarker sets the Marker field's value.
9941func (s *DescribeDBClusterParametersInput) SetMarker(v string) *DescribeDBClusterParametersInput {
9942	s.Marker = &v
9943	return s
9944}
9945
9946// SetMaxRecords sets the MaxRecords field's value.
9947func (s *DescribeDBClusterParametersInput) SetMaxRecords(v int64) *DescribeDBClusterParametersInput {
9948	s.MaxRecords = &v
9949	return s
9950}
9951
9952// SetSource sets the Source field's value.
9953func (s *DescribeDBClusterParametersInput) SetSource(v string) *DescribeDBClusterParametersInput {
9954	s.Source = &v
9955	return s
9956}
9957
9958// Represents the output of DBClusterParameterGroup.
9959type DescribeDBClusterParametersOutput struct {
9960	_ struct{} `type:"structure"`
9961
9962	// An optional pagination token provided by a previous request. If this parameter
9963	// is specified, the response includes only records beyond the marker, up to
9964	// the value specified by MaxRecords.
9965	Marker *string `type:"string"`
9966
9967	// Provides a list of parameters for the cluster parameter group.
9968	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
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 DescribeDBClusterParametersOutput) 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 DescribeDBClusterParametersOutput) GoString() string {
9986	return s.String()
9987}
9988
9989// SetMarker sets the Marker field's value.
9990func (s *DescribeDBClusterParametersOutput) SetMarker(v string) *DescribeDBClusterParametersOutput {
9991	s.Marker = &v
9992	return s
9993}
9994
9995// SetParameters sets the Parameters field's value.
9996func (s *DescribeDBClusterParametersOutput) SetParameters(v []*Parameter) *DescribeDBClusterParametersOutput {
9997	s.Parameters = v
9998	return s
9999}
10000
10001// Represents the input to DescribeDBClusterSnapshotAttributes.
10002type DescribeDBClusterSnapshotAttributesInput struct {
10003	_ struct{} `type:"structure"`
10004
10005	// The identifier for the cluster snapshot to describe the attributes for.
10006	//
10007	// DBClusterSnapshotIdentifier is a required field
10008	DBClusterSnapshotIdentifier *string `type:"string" required:"true"`
10009}
10010
10011// String returns the string representation.
10012//
10013// API parameter values that are decorated as "sensitive" in the API will not
10014// be included in the string output. The member name will be present, but the
10015// value will be replaced with "sensitive".
10016func (s DescribeDBClusterSnapshotAttributesInput) String() string {
10017	return awsutil.Prettify(s)
10018}
10019
10020// GoString returns the string representation.
10021//
10022// API parameter values that are decorated as "sensitive" in the API will not
10023// be included in the string output. The member name will be present, but the
10024// value will be replaced with "sensitive".
10025func (s DescribeDBClusterSnapshotAttributesInput) GoString() string {
10026	return s.String()
10027}
10028
10029// Validate inspects the fields of the type to determine if they are valid.
10030func (s *DescribeDBClusterSnapshotAttributesInput) Validate() error {
10031	invalidParams := request.ErrInvalidParams{Context: "DescribeDBClusterSnapshotAttributesInput"}
10032	if s.DBClusterSnapshotIdentifier == nil {
10033		invalidParams.Add(request.NewErrParamRequired("DBClusterSnapshotIdentifier"))
10034	}
10035
10036	if invalidParams.Len() > 0 {
10037		return invalidParams
10038	}
10039	return nil
10040}
10041
10042// SetDBClusterSnapshotIdentifier sets the DBClusterSnapshotIdentifier field's value.
10043func (s *DescribeDBClusterSnapshotAttributesInput) SetDBClusterSnapshotIdentifier(v string) *DescribeDBClusterSnapshotAttributesInput {
10044	s.DBClusterSnapshotIdentifier = &v
10045	return s
10046}
10047
10048type DescribeDBClusterSnapshotAttributesOutput struct {
10049	_ struct{} `type:"structure"`
10050
10051	// Detailed information about the attributes that are associated with a cluster
10052	// snapshot.
10053	DBClusterSnapshotAttributesResult *DBClusterSnapshotAttributesResult `type:"structure"`
10054}
10055
10056// String returns the string representation.
10057//
10058// API parameter values that are decorated as "sensitive" in the API will not
10059// be included in the string output. The member name will be present, but the
10060// value will be replaced with "sensitive".
10061func (s DescribeDBClusterSnapshotAttributesOutput) String() string {
10062	return awsutil.Prettify(s)
10063}
10064
10065// GoString returns the string representation.
10066//
10067// API parameter values that are decorated as "sensitive" in the API will not
10068// be included in the string output. The member name will be present, but the
10069// value will be replaced with "sensitive".
10070func (s DescribeDBClusterSnapshotAttributesOutput) GoString() string {
10071	return s.String()
10072}
10073
10074// SetDBClusterSnapshotAttributesResult sets the DBClusterSnapshotAttributesResult field's value.
10075func (s *DescribeDBClusterSnapshotAttributesOutput) SetDBClusterSnapshotAttributesResult(v *DBClusterSnapshotAttributesResult) *DescribeDBClusterSnapshotAttributesOutput {
10076	s.DBClusterSnapshotAttributesResult = v
10077	return s
10078}
10079
10080// Represents the input to DescribeDBClusterSnapshots.
10081type DescribeDBClusterSnapshotsInput struct {
10082	_ struct{} `type:"structure"`
10083
10084	// The ID of the cluster to retrieve the list of cluster snapshots for. This
10085	// parameter can't be used with the DBClusterSnapshotIdentifier parameter. This
10086	// parameter is not case sensitive.
10087	//
10088	// Constraints:
10089	//
10090	//    * If provided, must match the identifier of an existing DBCluster.
10091	DBClusterIdentifier *string `type:"string"`
10092
10093	// A specific cluster snapshot identifier to describe. This parameter can't
10094	// be used with the DBClusterIdentifier parameter. This value is stored as a
10095	// lowercase string.
10096	//
10097	// Constraints:
10098	//
10099	//    * If provided, must match the identifier of an existing DBClusterSnapshot.
10100	//
10101	//    * If this identifier is for an automated snapshot, the SnapshotType parameter
10102	//    must also be specified.
10103	DBClusterSnapshotIdentifier *string `type:"string"`
10104
10105	// This parameter is not currently supported.
10106	Filters []*Filter `locationNameList:"Filter" type:"list"`
10107
10108	// Set to true to include manual cluster snapshots that are public and can be
10109	// copied or restored by any account, and otherwise false. The default is false.
10110	IncludePublic *bool `type:"boolean"`
10111
10112	// Set to true to include shared manual cluster snapshots from other accounts
10113	// that this account has been given permission to copy or restore, and otherwise
10114	// false. The default is false.
10115	IncludeShared *bool `type:"boolean"`
10116
10117	// An optional pagination token provided by a previous request. If this parameter
10118	// is specified, the response includes only records beyond the marker, up to
10119	// the value specified by MaxRecords.
10120	Marker *string `type:"string"`
10121
10122	// The maximum number of records to include in the response. If more records
10123	// exist than the specified MaxRecords value, a pagination token (marker) is
10124	// included in the response so that the remaining results can be retrieved.
10125	//
10126	// Default: 100
10127	//
10128	// Constraints: Minimum 20, maximum 100.
10129	MaxRecords *int64 `type:"integer"`
10130
10131	// The type of cluster snapshots to be returned. You can specify one of the
10132	// following values:
10133	//
10134	//    * automated - Return all cluster snapshots that Amazon DocumentDB has
10135	//    automatically created for your account.
10136	//
10137	//    * manual - Return all cluster snapshots that you have manually created
10138	//    for your account.
10139	//
10140	//    * shared - Return all manual cluster snapshots that have been shared to
10141	//    your account.
10142	//
10143	//    * public - Return all cluster snapshots that have been marked as public.
10144	//
10145	// If you don't specify a SnapshotType value, then both automated and manual
10146	// cluster snapshots are returned. You can include shared cluster snapshots
10147	// with these results by setting the IncludeShared parameter to true. You can
10148	// include public cluster snapshots with these results by setting theIncludePublic
10149	// parameter to true.
10150	//
10151	// The IncludeShared and IncludePublic parameters don't apply for SnapshotType
10152	// values of manual or automated. The IncludePublic parameter doesn't apply
10153	// when SnapshotType is set to shared. The IncludeShared parameter doesn't apply
10154	// when SnapshotType is set to public.
10155	SnapshotType *string `type:"string"`
10156}
10157
10158// String returns the string representation.
10159//
10160// API parameter values that are decorated as "sensitive" in the API will not
10161// be included in the string output. The member name will be present, but the
10162// value will be replaced with "sensitive".
10163func (s DescribeDBClusterSnapshotsInput) String() string {
10164	return awsutil.Prettify(s)
10165}
10166
10167// GoString returns the string representation.
10168//
10169// API parameter values that are decorated as "sensitive" in the API will not
10170// be included in the string output. The member name will be present, but the
10171// value will be replaced with "sensitive".
10172func (s DescribeDBClusterSnapshotsInput) GoString() string {
10173	return s.String()
10174}
10175
10176// Validate inspects the fields of the type to determine if they are valid.
10177func (s *DescribeDBClusterSnapshotsInput) Validate() error {
10178	invalidParams := request.ErrInvalidParams{Context: "DescribeDBClusterSnapshotsInput"}
10179	if s.Filters != nil {
10180		for i, v := range s.Filters {
10181			if v == nil {
10182				continue
10183			}
10184			if err := v.Validate(); err != nil {
10185				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10186			}
10187		}
10188	}
10189
10190	if invalidParams.Len() > 0 {
10191		return invalidParams
10192	}
10193	return nil
10194}
10195
10196// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
10197func (s *DescribeDBClusterSnapshotsInput) SetDBClusterIdentifier(v string) *DescribeDBClusterSnapshotsInput {
10198	s.DBClusterIdentifier = &v
10199	return s
10200}
10201
10202// SetDBClusterSnapshotIdentifier sets the DBClusterSnapshotIdentifier field's value.
10203func (s *DescribeDBClusterSnapshotsInput) SetDBClusterSnapshotIdentifier(v string) *DescribeDBClusterSnapshotsInput {
10204	s.DBClusterSnapshotIdentifier = &v
10205	return s
10206}
10207
10208// SetFilters sets the Filters field's value.
10209func (s *DescribeDBClusterSnapshotsInput) SetFilters(v []*Filter) *DescribeDBClusterSnapshotsInput {
10210	s.Filters = v
10211	return s
10212}
10213
10214// SetIncludePublic sets the IncludePublic field's value.
10215func (s *DescribeDBClusterSnapshotsInput) SetIncludePublic(v bool) *DescribeDBClusterSnapshotsInput {
10216	s.IncludePublic = &v
10217	return s
10218}
10219
10220// SetIncludeShared sets the IncludeShared field's value.
10221func (s *DescribeDBClusterSnapshotsInput) SetIncludeShared(v bool) *DescribeDBClusterSnapshotsInput {
10222	s.IncludeShared = &v
10223	return s
10224}
10225
10226// SetMarker sets the Marker field's value.
10227func (s *DescribeDBClusterSnapshotsInput) SetMarker(v string) *DescribeDBClusterSnapshotsInput {
10228	s.Marker = &v
10229	return s
10230}
10231
10232// SetMaxRecords sets the MaxRecords field's value.
10233func (s *DescribeDBClusterSnapshotsInput) SetMaxRecords(v int64) *DescribeDBClusterSnapshotsInput {
10234	s.MaxRecords = &v
10235	return s
10236}
10237
10238// SetSnapshotType sets the SnapshotType field's value.
10239func (s *DescribeDBClusterSnapshotsInput) SetSnapshotType(v string) *DescribeDBClusterSnapshotsInput {
10240	s.SnapshotType = &v
10241	return s
10242}
10243
10244// Represents the output of DescribeDBClusterSnapshots.
10245type DescribeDBClusterSnapshotsOutput struct {
10246	_ struct{} `type:"structure"`
10247
10248	// Provides a list of cluster snapshots.
10249	DBClusterSnapshots []*DBClusterSnapshot `locationNameList:"DBClusterSnapshot" type:"list"`
10250
10251	// An optional pagination token provided by a previous request. If this parameter
10252	// is specified, the response includes only records beyond the marker, up to
10253	// the value specified by MaxRecords.
10254	Marker *string `type:"string"`
10255}
10256
10257// String returns the string representation.
10258//
10259// API parameter values that are decorated as "sensitive" in the API will not
10260// be included in the string output. The member name will be present, but the
10261// value will be replaced with "sensitive".
10262func (s DescribeDBClusterSnapshotsOutput) String() string {
10263	return awsutil.Prettify(s)
10264}
10265
10266// GoString returns the string representation.
10267//
10268// API parameter values that are decorated as "sensitive" in the API will not
10269// be included in the string output. The member name will be present, but the
10270// value will be replaced with "sensitive".
10271func (s DescribeDBClusterSnapshotsOutput) GoString() string {
10272	return s.String()
10273}
10274
10275// SetDBClusterSnapshots sets the DBClusterSnapshots field's value.
10276func (s *DescribeDBClusterSnapshotsOutput) SetDBClusterSnapshots(v []*DBClusterSnapshot) *DescribeDBClusterSnapshotsOutput {
10277	s.DBClusterSnapshots = v
10278	return s
10279}
10280
10281// SetMarker sets the Marker field's value.
10282func (s *DescribeDBClusterSnapshotsOutput) SetMarker(v string) *DescribeDBClusterSnapshotsOutput {
10283	s.Marker = &v
10284	return s
10285}
10286
10287// Represents the input to DescribeDBClusters.
10288type DescribeDBClustersInput struct {
10289	_ struct{} `type:"structure"`
10290
10291	// The user-provided cluster identifier. If this parameter is specified, information
10292	// from only the specific cluster is returned. This parameter isn't case sensitive.
10293	//
10294	// Constraints:
10295	//
10296	//    * If provided, must match an existing DBClusterIdentifier.
10297	DBClusterIdentifier *string `type:"string"`
10298
10299	// A filter that specifies one or more clusters to describe.
10300	//
10301	// Supported filters:
10302	//
10303	//    * db-cluster-id - Accepts cluster identifiers and cluster Amazon Resource
10304	//    Names (ARNs). The results list only includes information about the clusters
10305	//    identified by these ARNs.
10306	Filters []*Filter `locationNameList:"Filter" type:"list"`
10307
10308	// An optional pagination token provided by a previous request. If this parameter
10309	// is specified, the response includes only records beyond the marker, up to
10310	// the value specified by MaxRecords.
10311	Marker *string `type:"string"`
10312
10313	// The maximum number of records to include in the response. If more records
10314	// exist than the specified MaxRecords value, a pagination token (marker) is
10315	// included in the response so that the remaining results can be retrieved.
10316	//
10317	// Default: 100
10318	//
10319	// Constraints: Minimum 20, maximum 100.
10320	MaxRecords *int64 `type:"integer"`
10321}
10322
10323// String returns the string representation.
10324//
10325// API parameter values that are decorated as "sensitive" in the API will not
10326// be included in the string output. The member name will be present, but the
10327// value will be replaced with "sensitive".
10328func (s DescribeDBClustersInput) String() string {
10329	return awsutil.Prettify(s)
10330}
10331
10332// GoString returns the string representation.
10333//
10334// API parameter values that are decorated as "sensitive" in the API will not
10335// be included in the string output. The member name will be present, but the
10336// value will be replaced with "sensitive".
10337func (s DescribeDBClustersInput) GoString() string {
10338	return s.String()
10339}
10340
10341// Validate inspects the fields of the type to determine if they are valid.
10342func (s *DescribeDBClustersInput) Validate() error {
10343	invalidParams := request.ErrInvalidParams{Context: "DescribeDBClustersInput"}
10344	if s.Filters != nil {
10345		for i, v := range s.Filters {
10346			if v == nil {
10347				continue
10348			}
10349			if err := v.Validate(); err != nil {
10350				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10351			}
10352		}
10353	}
10354
10355	if invalidParams.Len() > 0 {
10356		return invalidParams
10357	}
10358	return nil
10359}
10360
10361// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
10362func (s *DescribeDBClustersInput) SetDBClusterIdentifier(v string) *DescribeDBClustersInput {
10363	s.DBClusterIdentifier = &v
10364	return s
10365}
10366
10367// SetFilters sets the Filters field's value.
10368func (s *DescribeDBClustersInput) SetFilters(v []*Filter) *DescribeDBClustersInput {
10369	s.Filters = v
10370	return s
10371}
10372
10373// SetMarker sets the Marker field's value.
10374func (s *DescribeDBClustersInput) SetMarker(v string) *DescribeDBClustersInput {
10375	s.Marker = &v
10376	return s
10377}
10378
10379// SetMaxRecords sets the MaxRecords field's value.
10380func (s *DescribeDBClustersInput) SetMaxRecords(v int64) *DescribeDBClustersInput {
10381	s.MaxRecords = &v
10382	return s
10383}
10384
10385// Represents the output of DescribeDBClusters.
10386type DescribeDBClustersOutput struct {
10387	_ struct{} `type:"structure"`
10388
10389	// A list of clusters.
10390	DBClusters []*DBCluster `locationNameList:"DBCluster" type:"list"`
10391
10392	// An optional pagination token provided by a previous request. If this parameter
10393	// is specified, the response includes only records beyond the marker, up to
10394	// the value specified by MaxRecords.
10395	Marker *string `type:"string"`
10396}
10397
10398// String returns the string representation.
10399//
10400// API parameter values that are decorated as "sensitive" in the API will not
10401// be included in the string output. The member name will be present, but the
10402// value will be replaced with "sensitive".
10403func (s DescribeDBClustersOutput) String() string {
10404	return awsutil.Prettify(s)
10405}
10406
10407// GoString returns the string representation.
10408//
10409// API parameter values that are decorated as "sensitive" in the API will not
10410// be included in the string output. The member name will be present, but the
10411// value will be replaced with "sensitive".
10412func (s DescribeDBClustersOutput) GoString() string {
10413	return s.String()
10414}
10415
10416// SetDBClusters sets the DBClusters field's value.
10417func (s *DescribeDBClustersOutput) SetDBClusters(v []*DBCluster) *DescribeDBClustersOutput {
10418	s.DBClusters = v
10419	return s
10420}
10421
10422// SetMarker sets the Marker field's value.
10423func (s *DescribeDBClustersOutput) SetMarker(v string) *DescribeDBClustersOutput {
10424	s.Marker = &v
10425	return s
10426}
10427
10428// Represents the input to DescribeDBEngineVersions.
10429type DescribeDBEngineVersionsInput struct {
10430	_ struct{} `type:"structure"`
10431
10432	// The name of a specific parameter group family to return details for.
10433	//
10434	// Constraints:
10435	//
10436	//    * If provided, must match an existing DBParameterGroupFamily.
10437	DBParameterGroupFamily *string `type:"string"`
10438
10439	// Indicates that only the default version of the specified engine or engine
10440	// and major version combination is returned.
10441	DefaultOnly *bool `type:"boolean"`
10442
10443	// The database engine to return.
10444	Engine *string `type:"string"`
10445
10446	// The database engine version to return.
10447	//
10448	// Example: 3.6.0
10449	EngineVersion *string `type:"string"`
10450
10451	// This parameter is not currently supported.
10452	Filters []*Filter `locationNameList:"Filter" type:"list"`
10453
10454	// If this parameter is specified and the requested engine supports the CharacterSetName
10455	// parameter for CreateDBInstance, the response includes a list of supported
10456	// character sets for each engine version.
10457	ListSupportedCharacterSets *bool `type:"boolean"`
10458
10459	// If this parameter is specified and the requested engine supports the TimeZone
10460	// parameter for CreateDBInstance, the response includes a list of supported
10461	// time zones for each engine version.
10462	ListSupportedTimezones *bool `type:"boolean"`
10463
10464	// An optional pagination token provided by a previous request. If this parameter
10465	// is specified, the response includes only records beyond the marker, up to
10466	// the value specified by MaxRecords.
10467	Marker *string `type:"string"`
10468
10469	// The maximum number of records to include in the response. If more records
10470	// exist than the specified MaxRecords value, a pagination token (marker) is
10471	// included in the response so that the remaining results can be retrieved.
10472	//
10473	// Default: 100
10474	//
10475	// Constraints: Minimum 20, maximum 100.
10476	MaxRecords *int64 `type:"integer"`
10477}
10478
10479// String returns the string representation.
10480//
10481// API parameter values that are decorated as "sensitive" in the API will not
10482// be included in the string output. The member name will be present, but the
10483// value will be replaced with "sensitive".
10484func (s DescribeDBEngineVersionsInput) String() string {
10485	return awsutil.Prettify(s)
10486}
10487
10488// GoString returns the string representation.
10489//
10490// API parameter values that are decorated as "sensitive" in the API will not
10491// be included in the string output. The member name will be present, but the
10492// value will be replaced with "sensitive".
10493func (s DescribeDBEngineVersionsInput) GoString() string {
10494	return s.String()
10495}
10496
10497// Validate inspects the fields of the type to determine if they are valid.
10498func (s *DescribeDBEngineVersionsInput) Validate() error {
10499	invalidParams := request.ErrInvalidParams{Context: "DescribeDBEngineVersionsInput"}
10500	if s.Filters != nil {
10501		for i, v := range s.Filters {
10502			if v == nil {
10503				continue
10504			}
10505			if err := v.Validate(); err != nil {
10506				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10507			}
10508		}
10509	}
10510
10511	if invalidParams.Len() > 0 {
10512		return invalidParams
10513	}
10514	return nil
10515}
10516
10517// SetDBParameterGroupFamily sets the DBParameterGroupFamily field's value.
10518func (s *DescribeDBEngineVersionsInput) SetDBParameterGroupFamily(v string) *DescribeDBEngineVersionsInput {
10519	s.DBParameterGroupFamily = &v
10520	return s
10521}
10522
10523// SetDefaultOnly sets the DefaultOnly field's value.
10524func (s *DescribeDBEngineVersionsInput) SetDefaultOnly(v bool) *DescribeDBEngineVersionsInput {
10525	s.DefaultOnly = &v
10526	return s
10527}
10528
10529// SetEngine sets the Engine field's value.
10530func (s *DescribeDBEngineVersionsInput) SetEngine(v string) *DescribeDBEngineVersionsInput {
10531	s.Engine = &v
10532	return s
10533}
10534
10535// SetEngineVersion sets the EngineVersion field's value.
10536func (s *DescribeDBEngineVersionsInput) SetEngineVersion(v string) *DescribeDBEngineVersionsInput {
10537	s.EngineVersion = &v
10538	return s
10539}
10540
10541// SetFilters sets the Filters field's value.
10542func (s *DescribeDBEngineVersionsInput) SetFilters(v []*Filter) *DescribeDBEngineVersionsInput {
10543	s.Filters = v
10544	return s
10545}
10546
10547// SetListSupportedCharacterSets sets the ListSupportedCharacterSets field's value.
10548func (s *DescribeDBEngineVersionsInput) SetListSupportedCharacterSets(v bool) *DescribeDBEngineVersionsInput {
10549	s.ListSupportedCharacterSets = &v
10550	return s
10551}
10552
10553// SetListSupportedTimezones sets the ListSupportedTimezones field's value.
10554func (s *DescribeDBEngineVersionsInput) SetListSupportedTimezones(v bool) *DescribeDBEngineVersionsInput {
10555	s.ListSupportedTimezones = &v
10556	return s
10557}
10558
10559// SetMarker sets the Marker field's value.
10560func (s *DescribeDBEngineVersionsInput) SetMarker(v string) *DescribeDBEngineVersionsInput {
10561	s.Marker = &v
10562	return s
10563}
10564
10565// SetMaxRecords sets the MaxRecords field's value.
10566func (s *DescribeDBEngineVersionsInput) SetMaxRecords(v int64) *DescribeDBEngineVersionsInput {
10567	s.MaxRecords = &v
10568	return s
10569}
10570
10571// Represents the output of DescribeDBEngineVersions.
10572type DescribeDBEngineVersionsOutput struct {
10573	_ struct{} `type:"structure"`
10574
10575	// Detailed information about one or more engine versions.
10576	DBEngineVersions []*DBEngineVersion `locationNameList:"DBEngineVersion" type:"list"`
10577
10578	// An optional pagination token provided by a previous request. If this parameter
10579	// is specified, the response includes only records beyond the marker, up to
10580	// the value specified by MaxRecords.
10581	Marker *string `type:"string"`
10582}
10583
10584// String returns the string representation.
10585//
10586// API parameter values that are decorated as "sensitive" in the API will not
10587// be included in the string output. The member name will be present, but the
10588// value will be replaced with "sensitive".
10589func (s DescribeDBEngineVersionsOutput) String() string {
10590	return awsutil.Prettify(s)
10591}
10592
10593// GoString returns the string representation.
10594//
10595// API parameter values that are decorated as "sensitive" in the API will not
10596// be included in the string output. The member name will be present, but the
10597// value will be replaced with "sensitive".
10598func (s DescribeDBEngineVersionsOutput) GoString() string {
10599	return s.String()
10600}
10601
10602// SetDBEngineVersions sets the DBEngineVersions field's value.
10603func (s *DescribeDBEngineVersionsOutput) SetDBEngineVersions(v []*DBEngineVersion) *DescribeDBEngineVersionsOutput {
10604	s.DBEngineVersions = v
10605	return s
10606}
10607
10608// SetMarker sets the Marker field's value.
10609func (s *DescribeDBEngineVersionsOutput) SetMarker(v string) *DescribeDBEngineVersionsOutput {
10610	s.Marker = &v
10611	return s
10612}
10613
10614// Represents the input to DescribeDBInstances.
10615type DescribeDBInstancesInput struct {
10616	_ struct{} `type:"structure"`
10617
10618	// The user-provided instance identifier. If this parameter is specified, information
10619	// from only the specific instance is returned. This parameter isn't case sensitive.
10620	//
10621	// Constraints:
10622	//
10623	//    * If provided, must match the identifier of an existing DBInstance.
10624	DBInstanceIdentifier *string `type:"string"`
10625
10626	// A filter that specifies one or more instances to describe.
10627	//
10628	// Supported filters:
10629	//
10630	//    * db-cluster-id - Accepts cluster identifiers and cluster Amazon Resource
10631	//    Names (ARNs). The results list includes only the information about the
10632	//    instances that are associated with the clusters that are identified by
10633	//    these ARNs.
10634	//
10635	//    * db-instance-id - Accepts instance identifiers and instance ARNs. The
10636	//    results list includes only the information about the instances that are
10637	//    identified by these ARNs.
10638	Filters []*Filter `locationNameList:"Filter" type:"list"`
10639
10640	// An optional pagination token provided by a previous request. If this parameter
10641	// is specified, the response includes only records beyond the marker, up to
10642	// the value specified by MaxRecords.
10643	Marker *string `type:"string"`
10644
10645	// The maximum number of records to include in the response. If more records
10646	// exist than the specified MaxRecords value, a pagination token (marker) is
10647	// included in the response so that the remaining results can be retrieved.
10648	//
10649	// Default: 100
10650	//
10651	// Constraints: Minimum 20, maximum 100.
10652	MaxRecords *int64 `type:"integer"`
10653}
10654
10655// String returns the string representation.
10656//
10657// API parameter values that are decorated as "sensitive" in the API will not
10658// be included in the string output. The member name will be present, but the
10659// value will be replaced with "sensitive".
10660func (s DescribeDBInstancesInput) String() string {
10661	return awsutil.Prettify(s)
10662}
10663
10664// GoString returns the string representation.
10665//
10666// API parameter values that are decorated as "sensitive" in the API will not
10667// be included in the string output. The member name will be present, but the
10668// value will be replaced with "sensitive".
10669func (s DescribeDBInstancesInput) GoString() string {
10670	return s.String()
10671}
10672
10673// Validate inspects the fields of the type to determine if they are valid.
10674func (s *DescribeDBInstancesInput) Validate() error {
10675	invalidParams := request.ErrInvalidParams{Context: "DescribeDBInstancesInput"}
10676	if s.Filters != nil {
10677		for i, v := range s.Filters {
10678			if v == nil {
10679				continue
10680			}
10681			if err := v.Validate(); err != nil {
10682				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10683			}
10684		}
10685	}
10686
10687	if invalidParams.Len() > 0 {
10688		return invalidParams
10689	}
10690	return nil
10691}
10692
10693// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
10694func (s *DescribeDBInstancesInput) SetDBInstanceIdentifier(v string) *DescribeDBInstancesInput {
10695	s.DBInstanceIdentifier = &v
10696	return s
10697}
10698
10699// SetFilters sets the Filters field's value.
10700func (s *DescribeDBInstancesInput) SetFilters(v []*Filter) *DescribeDBInstancesInput {
10701	s.Filters = v
10702	return s
10703}
10704
10705// SetMarker sets the Marker field's value.
10706func (s *DescribeDBInstancesInput) SetMarker(v string) *DescribeDBInstancesInput {
10707	s.Marker = &v
10708	return s
10709}
10710
10711// SetMaxRecords sets the MaxRecords field's value.
10712func (s *DescribeDBInstancesInput) SetMaxRecords(v int64) *DescribeDBInstancesInput {
10713	s.MaxRecords = &v
10714	return s
10715}
10716
10717// Represents the output of DescribeDBInstances.
10718type DescribeDBInstancesOutput struct {
10719	_ struct{} `type:"structure"`
10720
10721	// Detailed information about one or more instances.
10722	DBInstances []*DBInstance `locationNameList:"DBInstance" type:"list"`
10723
10724	// An optional pagination token provided by a previous request. If this parameter
10725	// is specified, the response includes only records beyond the marker, up to
10726	// the value specified by MaxRecords.
10727	Marker *string `type:"string"`
10728}
10729
10730// String returns the string representation.
10731//
10732// API parameter values that are decorated as "sensitive" in the API will not
10733// be included in the string output. The member name will be present, but the
10734// value will be replaced with "sensitive".
10735func (s DescribeDBInstancesOutput) String() string {
10736	return awsutil.Prettify(s)
10737}
10738
10739// GoString returns the string representation.
10740//
10741// API parameter values that are decorated as "sensitive" in the API will not
10742// be included in the string output. The member name will be present, but the
10743// value will be replaced with "sensitive".
10744func (s DescribeDBInstancesOutput) GoString() string {
10745	return s.String()
10746}
10747
10748// SetDBInstances sets the DBInstances field's value.
10749func (s *DescribeDBInstancesOutput) SetDBInstances(v []*DBInstance) *DescribeDBInstancesOutput {
10750	s.DBInstances = v
10751	return s
10752}
10753
10754// SetMarker sets the Marker field's value.
10755func (s *DescribeDBInstancesOutput) SetMarker(v string) *DescribeDBInstancesOutput {
10756	s.Marker = &v
10757	return s
10758}
10759
10760// Represents the input to DescribeDBSubnetGroups.
10761type DescribeDBSubnetGroupsInput struct {
10762	_ struct{} `type:"structure"`
10763
10764	// The name of the subnet group to return details for.
10765	DBSubnetGroupName *string `type:"string"`
10766
10767	// This parameter is not currently supported.
10768	Filters []*Filter `locationNameList:"Filter" type:"list"`
10769
10770	// An optional pagination token provided by a previous request. If this parameter
10771	// is specified, the response includes only records beyond the marker, up to
10772	// the value specified by MaxRecords.
10773	Marker *string `type:"string"`
10774
10775	// The maximum number of records to include in the response. If more records
10776	// exist than the specified MaxRecords value, a pagination token (marker) is
10777	// included in the response so that the remaining results can be retrieved.
10778	//
10779	// Default: 100
10780	//
10781	// Constraints: Minimum 20, maximum 100.
10782	MaxRecords *int64 `type:"integer"`
10783}
10784
10785// String returns the string representation.
10786//
10787// API parameter values that are decorated as "sensitive" in the API will not
10788// be included in the string output. The member name will be present, but the
10789// value will be replaced with "sensitive".
10790func (s DescribeDBSubnetGroupsInput) String() string {
10791	return awsutil.Prettify(s)
10792}
10793
10794// GoString returns the string representation.
10795//
10796// API parameter values that are decorated as "sensitive" in the API will not
10797// be included in the string output. The member name will be present, but the
10798// value will be replaced with "sensitive".
10799func (s DescribeDBSubnetGroupsInput) GoString() string {
10800	return s.String()
10801}
10802
10803// Validate inspects the fields of the type to determine if they are valid.
10804func (s *DescribeDBSubnetGroupsInput) Validate() error {
10805	invalidParams := request.ErrInvalidParams{Context: "DescribeDBSubnetGroupsInput"}
10806	if s.Filters != nil {
10807		for i, v := range s.Filters {
10808			if v == nil {
10809				continue
10810			}
10811			if err := v.Validate(); err != nil {
10812				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10813			}
10814		}
10815	}
10816
10817	if invalidParams.Len() > 0 {
10818		return invalidParams
10819	}
10820	return nil
10821}
10822
10823// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
10824func (s *DescribeDBSubnetGroupsInput) SetDBSubnetGroupName(v string) *DescribeDBSubnetGroupsInput {
10825	s.DBSubnetGroupName = &v
10826	return s
10827}
10828
10829// SetFilters sets the Filters field's value.
10830func (s *DescribeDBSubnetGroupsInput) SetFilters(v []*Filter) *DescribeDBSubnetGroupsInput {
10831	s.Filters = v
10832	return s
10833}
10834
10835// SetMarker sets the Marker field's value.
10836func (s *DescribeDBSubnetGroupsInput) SetMarker(v string) *DescribeDBSubnetGroupsInput {
10837	s.Marker = &v
10838	return s
10839}
10840
10841// SetMaxRecords sets the MaxRecords field's value.
10842func (s *DescribeDBSubnetGroupsInput) SetMaxRecords(v int64) *DescribeDBSubnetGroupsInput {
10843	s.MaxRecords = &v
10844	return s
10845}
10846
10847// Represents the output of DescribeDBSubnetGroups.
10848type DescribeDBSubnetGroupsOutput struct {
10849	_ struct{} `type:"structure"`
10850
10851	// Detailed information about one or more subnet groups.
10852	DBSubnetGroups []*DBSubnetGroup `locationNameList:"DBSubnetGroup" type:"list"`
10853
10854	// An optional pagination token provided by a previous request. If this parameter
10855	// is specified, the response includes only records beyond the marker, up to
10856	// the value specified by MaxRecords.
10857	Marker *string `type:"string"`
10858}
10859
10860// String returns the string representation.
10861//
10862// API parameter values that are decorated as "sensitive" in the API will not
10863// be included in the string output. The member name will be present, but the
10864// value will be replaced with "sensitive".
10865func (s DescribeDBSubnetGroupsOutput) String() string {
10866	return awsutil.Prettify(s)
10867}
10868
10869// GoString returns the string representation.
10870//
10871// API parameter values that are decorated as "sensitive" in the API will not
10872// be included in the string output. The member name will be present, but the
10873// value will be replaced with "sensitive".
10874func (s DescribeDBSubnetGroupsOutput) GoString() string {
10875	return s.String()
10876}
10877
10878// SetDBSubnetGroups sets the DBSubnetGroups field's value.
10879func (s *DescribeDBSubnetGroupsOutput) SetDBSubnetGroups(v []*DBSubnetGroup) *DescribeDBSubnetGroupsOutput {
10880	s.DBSubnetGroups = v
10881	return s
10882}
10883
10884// SetMarker sets the Marker field's value.
10885func (s *DescribeDBSubnetGroupsOutput) SetMarker(v string) *DescribeDBSubnetGroupsOutput {
10886	s.Marker = &v
10887	return s
10888}
10889
10890// Represents the input to DescribeEngineDefaultClusterParameters.
10891type DescribeEngineDefaultClusterParametersInput struct {
10892	_ struct{} `type:"structure"`
10893
10894	// The name of the cluster parameter group family to return the engine parameter
10895	// information for.
10896	//
10897	// DBParameterGroupFamily is a required field
10898	DBParameterGroupFamily *string `type:"string" required:"true"`
10899
10900	// This parameter is not currently supported.
10901	Filters []*Filter `locationNameList:"Filter" type:"list"`
10902
10903	// An optional pagination token provided by a previous request. If this parameter
10904	// is specified, the response includes only records beyond the marker, up to
10905	// the value specified by MaxRecords.
10906	Marker *string `type:"string"`
10907
10908	// The maximum number of records to include in the response. If more records
10909	// exist than the specified MaxRecords value, a pagination token (marker) is
10910	// included in the response so that the remaining results can be retrieved.
10911	//
10912	// Default: 100
10913	//
10914	// Constraints: Minimum 20, maximum 100.
10915	MaxRecords *int64 `type:"integer"`
10916}
10917
10918// String returns the string representation.
10919//
10920// API parameter values that are decorated as "sensitive" in the API will not
10921// be included in the string output. The member name will be present, but the
10922// value will be replaced with "sensitive".
10923func (s DescribeEngineDefaultClusterParametersInput) String() string {
10924	return awsutil.Prettify(s)
10925}
10926
10927// GoString returns the string representation.
10928//
10929// API parameter values that are decorated as "sensitive" in the API will not
10930// be included in the string output. The member name will be present, but the
10931// value will be replaced with "sensitive".
10932func (s DescribeEngineDefaultClusterParametersInput) GoString() string {
10933	return s.String()
10934}
10935
10936// Validate inspects the fields of the type to determine if they are valid.
10937func (s *DescribeEngineDefaultClusterParametersInput) Validate() error {
10938	invalidParams := request.ErrInvalidParams{Context: "DescribeEngineDefaultClusterParametersInput"}
10939	if s.DBParameterGroupFamily == nil {
10940		invalidParams.Add(request.NewErrParamRequired("DBParameterGroupFamily"))
10941	}
10942	if s.Filters != nil {
10943		for i, v := range s.Filters {
10944			if v == nil {
10945				continue
10946			}
10947			if err := v.Validate(); err != nil {
10948				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10949			}
10950		}
10951	}
10952
10953	if invalidParams.Len() > 0 {
10954		return invalidParams
10955	}
10956	return nil
10957}
10958
10959// SetDBParameterGroupFamily sets the DBParameterGroupFamily field's value.
10960func (s *DescribeEngineDefaultClusterParametersInput) SetDBParameterGroupFamily(v string) *DescribeEngineDefaultClusterParametersInput {
10961	s.DBParameterGroupFamily = &v
10962	return s
10963}
10964
10965// SetFilters sets the Filters field's value.
10966func (s *DescribeEngineDefaultClusterParametersInput) SetFilters(v []*Filter) *DescribeEngineDefaultClusterParametersInput {
10967	s.Filters = v
10968	return s
10969}
10970
10971// SetMarker sets the Marker field's value.
10972func (s *DescribeEngineDefaultClusterParametersInput) SetMarker(v string) *DescribeEngineDefaultClusterParametersInput {
10973	s.Marker = &v
10974	return s
10975}
10976
10977// SetMaxRecords sets the MaxRecords field's value.
10978func (s *DescribeEngineDefaultClusterParametersInput) SetMaxRecords(v int64) *DescribeEngineDefaultClusterParametersInput {
10979	s.MaxRecords = &v
10980	return s
10981}
10982
10983type DescribeEngineDefaultClusterParametersOutput struct {
10984	_ struct{} `type:"structure"`
10985
10986	// Contains the result of a successful invocation of the DescribeEngineDefaultClusterParameters
10987	// operation.
10988	EngineDefaults *EngineDefaults `type:"structure"`
10989}
10990
10991// String returns the string representation.
10992//
10993// API parameter values that are decorated as "sensitive" in the API will not
10994// be included in the string output. The member name will be present, but the
10995// value will be replaced with "sensitive".
10996func (s DescribeEngineDefaultClusterParametersOutput) String() string {
10997	return awsutil.Prettify(s)
10998}
10999
11000// GoString returns the string representation.
11001//
11002// API parameter values that are decorated as "sensitive" in the API will not
11003// be included in the string output. The member name will be present, but the
11004// value will be replaced with "sensitive".
11005func (s DescribeEngineDefaultClusterParametersOutput) GoString() string {
11006	return s.String()
11007}
11008
11009// SetEngineDefaults sets the EngineDefaults field's value.
11010func (s *DescribeEngineDefaultClusterParametersOutput) SetEngineDefaults(v *EngineDefaults) *DescribeEngineDefaultClusterParametersOutput {
11011	s.EngineDefaults = v
11012	return s
11013}
11014
11015// Represents the input to DescribeEventCategories.
11016type DescribeEventCategoriesInput struct {
11017	_ struct{} `type:"structure"`
11018
11019	// This parameter is not currently supported.
11020	Filters []*Filter `locationNameList:"Filter" type:"list"`
11021
11022	// The type of source that is generating the events.
11023	//
11024	// Valid values: db-instance, db-parameter-group, db-security-group
11025	SourceType *string `type:"string"`
11026}
11027
11028// String returns the string representation.
11029//
11030// API parameter values that are decorated as "sensitive" in the API will not
11031// be included in the string output. The member name will be present, but the
11032// value will be replaced with "sensitive".
11033func (s DescribeEventCategoriesInput) String() string {
11034	return awsutil.Prettify(s)
11035}
11036
11037// GoString returns the string representation.
11038//
11039// API parameter values that are decorated as "sensitive" in the API will not
11040// be included in the string output. The member name will be present, but the
11041// value will be replaced with "sensitive".
11042func (s DescribeEventCategoriesInput) GoString() string {
11043	return s.String()
11044}
11045
11046// Validate inspects the fields of the type to determine if they are valid.
11047func (s *DescribeEventCategoriesInput) Validate() error {
11048	invalidParams := request.ErrInvalidParams{Context: "DescribeEventCategoriesInput"}
11049	if s.Filters != nil {
11050		for i, v := range s.Filters {
11051			if v == nil {
11052				continue
11053			}
11054			if err := v.Validate(); err != nil {
11055				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11056			}
11057		}
11058	}
11059
11060	if invalidParams.Len() > 0 {
11061		return invalidParams
11062	}
11063	return nil
11064}
11065
11066// SetFilters sets the Filters field's value.
11067func (s *DescribeEventCategoriesInput) SetFilters(v []*Filter) *DescribeEventCategoriesInput {
11068	s.Filters = v
11069	return s
11070}
11071
11072// SetSourceType sets the SourceType field's value.
11073func (s *DescribeEventCategoriesInput) SetSourceType(v string) *DescribeEventCategoriesInput {
11074	s.SourceType = &v
11075	return s
11076}
11077
11078// Represents the output of DescribeEventCategories.
11079type DescribeEventCategoriesOutput struct {
11080	_ struct{} `type:"structure"`
11081
11082	// A list of event category maps.
11083	EventCategoriesMapList []*EventCategoriesMap `locationNameList:"EventCategoriesMap" type:"list"`
11084}
11085
11086// String returns the string representation.
11087//
11088// API parameter values that are decorated as "sensitive" in the API will not
11089// be included in the string output. The member name will be present, but the
11090// value will be replaced with "sensitive".
11091func (s DescribeEventCategoriesOutput) String() string {
11092	return awsutil.Prettify(s)
11093}
11094
11095// GoString 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 DescribeEventCategoriesOutput) GoString() string {
11101	return s.String()
11102}
11103
11104// SetEventCategoriesMapList sets the EventCategoriesMapList field's value.
11105func (s *DescribeEventCategoriesOutput) SetEventCategoriesMapList(v []*EventCategoriesMap) *DescribeEventCategoriesOutput {
11106	s.EventCategoriesMapList = v
11107	return s
11108}
11109
11110// Represents the input to DescribeEventSubscriptions.
11111type DescribeEventSubscriptionsInput struct {
11112	_ struct{} `type:"structure"`
11113
11114	// This parameter is not currently supported.
11115	Filters []*Filter `locationNameList:"Filter" type:"list"`
11116
11117	// An optional pagination token provided by a previous request. If this parameter
11118	// is specified, the response includes only records beyond the marker, up to
11119	// the value specified by MaxRecords.
11120	Marker *string `type:"string"`
11121
11122	// The maximum number of records to include in the response. If more records
11123	// exist than the specified MaxRecords value, a pagination token (marker) is
11124	// included in the response so that the remaining results can be retrieved.
11125	//
11126	// Default: 100
11127	//
11128	// Constraints: Minimum 20, maximum 100.
11129	MaxRecords *int64 `type:"integer"`
11130
11131	// The name of the Amazon DocumentDB event notification subscription that you
11132	// want to describe.
11133	SubscriptionName *string `type:"string"`
11134}
11135
11136// String returns the string representation.
11137//
11138// API parameter values that are decorated as "sensitive" in the API will not
11139// be included in the string output. The member name will be present, but the
11140// value will be replaced with "sensitive".
11141func (s DescribeEventSubscriptionsInput) String() string {
11142	return awsutil.Prettify(s)
11143}
11144
11145// GoString returns the string representation.
11146//
11147// API parameter values that are decorated as "sensitive" in the API will not
11148// be included in the string output. The member name will be present, but the
11149// value will be replaced with "sensitive".
11150func (s DescribeEventSubscriptionsInput) GoString() string {
11151	return s.String()
11152}
11153
11154// Validate inspects the fields of the type to determine if they are valid.
11155func (s *DescribeEventSubscriptionsInput) Validate() error {
11156	invalidParams := request.ErrInvalidParams{Context: "DescribeEventSubscriptionsInput"}
11157	if s.Filters != nil {
11158		for i, v := range s.Filters {
11159			if v == nil {
11160				continue
11161			}
11162			if err := v.Validate(); err != nil {
11163				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11164			}
11165		}
11166	}
11167
11168	if invalidParams.Len() > 0 {
11169		return invalidParams
11170	}
11171	return nil
11172}
11173
11174// SetFilters sets the Filters field's value.
11175func (s *DescribeEventSubscriptionsInput) SetFilters(v []*Filter) *DescribeEventSubscriptionsInput {
11176	s.Filters = v
11177	return s
11178}
11179
11180// SetMarker sets the Marker field's value.
11181func (s *DescribeEventSubscriptionsInput) SetMarker(v string) *DescribeEventSubscriptionsInput {
11182	s.Marker = &v
11183	return s
11184}
11185
11186// SetMaxRecords sets the MaxRecords field's value.
11187func (s *DescribeEventSubscriptionsInput) SetMaxRecords(v int64) *DescribeEventSubscriptionsInput {
11188	s.MaxRecords = &v
11189	return s
11190}
11191
11192// SetSubscriptionName sets the SubscriptionName field's value.
11193func (s *DescribeEventSubscriptionsInput) SetSubscriptionName(v string) *DescribeEventSubscriptionsInput {
11194	s.SubscriptionName = &v
11195	return s
11196}
11197
11198// Represents the output of DescribeEventSubscriptions.
11199type DescribeEventSubscriptionsOutput struct {
11200	_ struct{} `type:"structure"`
11201
11202	// A list of event subscriptions.
11203	EventSubscriptionsList []*EventSubscription `locationNameList:"EventSubscription" type:"list"`
11204
11205	// An optional pagination token provided by a previous request. If this parameter
11206	// is specified, the response includes only records beyond the marker, up to
11207	// the value specified by MaxRecords.
11208	Marker *string `type:"string"`
11209}
11210
11211// String returns the string representation.
11212//
11213// API parameter values that are decorated as "sensitive" in the API will not
11214// be included in the string output. The member name will be present, but the
11215// value will be replaced with "sensitive".
11216func (s DescribeEventSubscriptionsOutput) String() string {
11217	return awsutil.Prettify(s)
11218}
11219
11220// GoString returns the string representation.
11221//
11222// API parameter values that are decorated as "sensitive" in the API will not
11223// be included in the string output. The member name will be present, but the
11224// value will be replaced with "sensitive".
11225func (s DescribeEventSubscriptionsOutput) GoString() string {
11226	return s.String()
11227}
11228
11229// SetEventSubscriptionsList sets the EventSubscriptionsList field's value.
11230func (s *DescribeEventSubscriptionsOutput) SetEventSubscriptionsList(v []*EventSubscription) *DescribeEventSubscriptionsOutput {
11231	s.EventSubscriptionsList = v
11232	return s
11233}
11234
11235// SetMarker sets the Marker field's value.
11236func (s *DescribeEventSubscriptionsOutput) SetMarker(v string) *DescribeEventSubscriptionsOutput {
11237	s.Marker = &v
11238	return s
11239}
11240
11241// Represents the input to DescribeEvents.
11242type DescribeEventsInput struct {
11243	_ struct{} `type:"structure"`
11244
11245	// The number of minutes to retrieve events for.
11246	//
11247	// Default: 60
11248	Duration *int64 `type:"integer"`
11249
11250	// The end of the time interval for which to retrieve events, specified in ISO
11251	// 8601 format.
11252	//
11253	// Example: 2009-07-08T18:00Z
11254	EndTime *time.Time `type:"timestamp"`
11255
11256	// A list of event categories that trigger notifications for an event notification
11257	// subscription.
11258	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
11259
11260	// This parameter is not currently supported.
11261	Filters []*Filter `locationNameList:"Filter" type:"list"`
11262
11263	// An optional pagination token provided by a previous request. If this parameter
11264	// is specified, the response includes only records beyond the marker, up to
11265	// the value specified by MaxRecords.
11266	Marker *string `type:"string"`
11267
11268	// The maximum number of records to include in the response. If more records
11269	// exist than the specified MaxRecords value, a pagination token (marker) is
11270	// included in the response so that the remaining results can be retrieved.
11271	//
11272	// Default: 100
11273	//
11274	// Constraints: Minimum 20, maximum 100.
11275	MaxRecords *int64 `type:"integer"`
11276
11277	// The identifier of the event source for which events are returned. If not
11278	// specified, then all sources are included in the response.
11279	//
11280	// Constraints:
11281	//
11282	//    * If SourceIdentifier is provided, SourceType must also be provided.
11283	//
11284	//    * If the source type is DBInstance, a DBInstanceIdentifier must be provided.
11285	//
11286	//    * If the source type is DBSecurityGroup, a DBSecurityGroupName must be
11287	//    provided.
11288	//
11289	//    * If the source type is DBParameterGroup, a DBParameterGroupName must
11290	//    be provided.
11291	//
11292	//    * If the source type is DBSnapshot, a DBSnapshotIdentifier must be provided.
11293	//
11294	//    * Cannot end with a hyphen or contain two consecutive hyphens.
11295	SourceIdentifier *string `type:"string"`
11296
11297	// The event source to retrieve events for. If no value is specified, all events
11298	// are returned.
11299	SourceType *string `type:"string" enum:"SourceType"`
11300
11301	// The beginning of the time interval to retrieve events for, specified in ISO
11302	// 8601 format.
11303	//
11304	// Example: 2009-07-08T18:00Z
11305	StartTime *time.Time `type:"timestamp"`
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 DescribeEventsInput) 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 DescribeEventsInput) GoString() string {
11323	return s.String()
11324}
11325
11326// Validate inspects the fields of the type to determine if they are valid.
11327func (s *DescribeEventsInput) Validate() error {
11328	invalidParams := request.ErrInvalidParams{Context: "DescribeEventsInput"}
11329	if s.Filters != nil {
11330		for i, v := range s.Filters {
11331			if v == nil {
11332				continue
11333			}
11334			if err := v.Validate(); err != nil {
11335				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11336			}
11337		}
11338	}
11339
11340	if invalidParams.Len() > 0 {
11341		return invalidParams
11342	}
11343	return nil
11344}
11345
11346// SetDuration sets the Duration field's value.
11347func (s *DescribeEventsInput) SetDuration(v int64) *DescribeEventsInput {
11348	s.Duration = &v
11349	return s
11350}
11351
11352// SetEndTime sets the EndTime field's value.
11353func (s *DescribeEventsInput) SetEndTime(v time.Time) *DescribeEventsInput {
11354	s.EndTime = &v
11355	return s
11356}
11357
11358// SetEventCategories sets the EventCategories field's value.
11359func (s *DescribeEventsInput) SetEventCategories(v []*string) *DescribeEventsInput {
11360	s.EventCategories = v
11361	return s
11362}
11363
11364// SetFilters sets the Filters field's value.
11365func (s *DescribeEventsInput) SetFilters(v []*Filter) *DescribeEventsInput {
11366	s.Filters = v
11367	return s
11368}
11369
11370// SetMarker sets the Marker field's value.
11371func (s *DescribeEventsInput) SetMarker(v string) *DescribeEventsInput {
11372	s.Marker = &v
11373	return s
11374}
11375
11376// SetMaxRecords sets the MaxRecords field's value.
11377func (s *DescribeEventsInput) SetMaxRecords(v int64) *DescribeEventsInput {
11378	s.MaxRecords = &v
11379	return s
11380}
11381
11382// SetSourceIdentifier sets the SourceIdentifier field's value.
11383func (s *DescribeEventsInput) SetSourceIdentifier(v string) *DescribeEventsInput {
11384	s.SourceIdentifier = &v
11385	return s
11386}
11387
11388// SetSourceType sets the SourceType field's value.
11389func (s *DescribeEventsInput) SetSourceType(v string) *DescribeEventsInput {
11390	s.SourceType = &v
11391	return s
11392}
11393
11394// SetStartTime sets the StartTime field's value.
11395func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput {
11396	s.StartTime = &v
11397	return s
11398}
11399
11400// Represents the output of DescribeEvents.
11401type DescribeEventsOutput struct {
11402	_ struct{} `type:"structure"`
11403
11404	// Detailed information about one or more events.
11405	Events []*Event `locationNameList:"Event" type:"list"`
11406
11407	// An optional pagination token provided by a previous request. If this parameter
11408	// is specified, the response includes only records beyond the marker, up to
11409	// the value specified by MaxRecords.
11410	Marker *string `type:"string"`
11411}
11412
11413// String returns the string representation.
11414//
11415// API parameter values that are decorated as "sensitive" in the API will not
11416// be included in the string output. The member name will be present, but the
11417// value will be replaced with "sensitive".
11418func (s DescribeEventsOutput) String() string {
11419	return awsutil.Prettify(s)
11420}
11421
11422// GoString returns the string representation.
11423//
11424// API parameter values that are decorated as "sensitive" in the API will not
11425// be included in the string output. The member name will be present, but the
11426// value will be replaced with "sensitive".
11427func (s DescribeEventsOutput) GoString() string {
11428	return s.String()
11429}
11430
11431// SetEvents sets the Events field's value.
11432func (s *DescribeEventsOutput) SetEvents(v []*Event) *DescribeEventsOutput {
11433	s.Events = v
11434	return s
11435}
11436
11437// SetMarker sets the Marker field's value.
11438func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput {
11439	s.Marker = &v
11440	return s
11441}
11442
11443type DescribeGlobalClustersInput struct {
11444	_ struct{} `type:"structure"`
11445
11446	// A filter that specifies one or more global DB clusters to describe.
11447	//
11448	// Supported filters: db-cluster-id accepts cluster identifiers and cluster
11449	// Amazon Resource Names (ARNs). The results list will only include information
11450	// about the clusters identified by these ARNs.
11451	Filters []*Filter `locationNameList:"Filter" type:"list"`
11452
11453	// The user-supplied cluster identifier. If this parameter is specified, information
11454	// from only the specific cluster is returned. This parameter isn't case-sensitive.
11455	GlobalClusterIdentifier *string `min:"1" type:"string"`
11456
11457	// An optional pagination token provided by a previous DescribeGlobalClusters
11458	// request. If this parameter is specified, the response includes only records
11459	// beyond the marker, up to the value specified by MaxRecords.
11460	Marker *string `type:"string"`
11461
11462	// The maximum number of records to include in the response. If more records
11463	// exist than the specified MaxRecords value, a pagination token called a marker
11464	// is included in the response so that you can retrieve the remaining results.
11465	MaxRecords *int64 `type:"integer"`
11466}
11467
11468// String returns the string representation.
11469//
11470// API parameter values that are decorated as "sensitive" in the API will not
11471// be included in the string output. The member name will be present, but the
11472// value will be replaced with "sensitive".
11473func (s DescribeGlobalClustersInput) String() string {
11474	return awsutil.Prettify(s)
11475}
11476
11477// GoString returns the string representation.
11478//
11479// API parameter values that are decorated as "sensitive" in the API will not
11480// be included in the string output. The member name will be present, but the
11481// value will be replaced with "sensitive".
11482func (s DescribeGlobalClustersInput) GoString() string {
11483	return s.String()
11484}
11485
11486// Validate inspects the fields of the type to determine if they are valid.
11487func (s *DescribeGlobalClustersInput) Validate() error {
11488	invalidParams := request.ErrInvalidParams{Context: "DescribeGlobalClustersInput"}
11489	if s.GlobalClusterIdentifier != nil && len(*s.GlobalClusterIdentifier) < 1 {
11490		invalidParams.Add(request.NewErrParamMinLen("GlobalClusterIdentifier", 1))
11491	}
11492	if s.Filters != nil {
11493		for i, v := range s.Filters {
11494			if v == nil {
11495				continue
11496			}
11497			if err := v.Validate(); err != nil {
11498				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11499			}
11500		}
11501	}
11502
11503	if invalidParams.Len() > 0 {
11504		return invalidParams
11505	}
11506	return nil
11507}
11508
11509// SetFilters sets the Filters field's value.
11510func (s *DescribeGlobalClustersInput) SetFilters(v []*Filter) *DescribeGlobalClustersInput {
11511	s.Filters = v
11512	return s
11513}
11514
11515// SetGlobalClusterIdentifier sets the GlobalClusterIdentifier field's value.
11516func (s *DescribeGlobalClustersInput) SetGlobalClusterIdentifier(v string) *DescribeGlobalClustersInput {
11517	s.GlobalClusterIdentifier = &v
11518	return s
11519}
11520
11521// SetMarker sets the Marker field's value.
11522func (s *DescribeGlobalClustersInput) SetMarker(v string) *DescribeGlobalClustersInput {
11523	s.Marker = &v
11524	return s
11525}
11526
11527// SetMaxRecords sets the MaxRecords field's value.
11528func (s *DescribeGlobalClustersInput) SetMaxRecords(v int64) *DescribeGlobalClustersInput {
11529	s.MaxRecords = &v
11530	return s
11531}
11532
11533type DescribeGlobalClustersOutput struct {
11534	_ struct{} `type:"structure"`
11535
11536	GlobalClusters []*GlobalCluster `locationNameList:"GlobalClusterMember" type:"list"`
11537
11538	Marker *string `type:"string"`
11539}
11540
11541// String returns the string representation.
11542//
11543// API parameter values that are decorated as "sensitive" in the API will not
11544// be included in the string output. The member name will be present, but the
11545// value will be replaced with "sensitive".
11546func (s DescribeGlobalClustersOutput) String() string {
11547	return awsutil.Prettify(s)
11548}
11549
11550// GoString returns the string representation.
11551//
11552// API parameter values that are decorated as "sensitive" in the API will not
11553// be included in the string output. The member name will be present, but the
11554// value will be replaced with "sensitive".
11555func (s DescribeGlobalClustersOutput) GoString() string {
11556	return s.String()
11557}
11558
11559// SetGlobalClusters sets the GlobalClusters field's value.
11560func (s *DescribeGlobalClustersOutput) SetGlobalClusters(v []*GlobalCluster) *DescribeGlobalClustersOutput {
11561	s.GlobalClusters = v
11562	return s
11563}
11564
11565// SetMarker sets the Marker field's value.
11566func (s *DescribeGlobalClustersOutput) SetMarker(v string) *DescribeGlobalClustersOutput {
11567	s.Marker = &v
11568	return s
11569}
11570
11571// Represents the input to DescribeOrderableDBInstanceOptions.
11572type DescribeOrderableDBInstanceOptionsInput struct {
11573	_ struct{} `type:"structure"`
11574
11575	// The instance class filter value. Specify this parameter to show only the
11576	// available offerings that match the specified instance class.
11577	DBInstanceClass *string `type:"string"`
11578
11579	// The name of the engine to retrieve instance options for.
11580	//
11581	// Engine is a required field
11582	Engine *string `type:"string" required:"true"`
11583
11584	// The engine version filter value. Specify this parameter to show only the
11585	// available offerings that match the specified engine version.
11586	EngineVersion *string `type:"string"`
11587
11588	// This parameter is not currently supported.
11589	Filters []*Filter `locationNameList:"Filter" type:"list"`
11590
11591	// The license model filter value. Specify this parameter to show only the available
11592	// offerings that match the specified license model.
11593	LicenseModel *string `type:"string"`
11594
11595	// An optional pagination token provided by a previous request. If this parameter
11596	// is specified, the response includes only records beyond the marker, up to
11597	// the value specified by MaxRecords.
11598	Marker *string `type:"string"`
11599
11600	// The maximum number of records to include in the response. If more records
11601	// exist than the specified MaxRecords value, a pagination token (marker) is
11602	// included in the response so that the remaining results can be retrieved.
11603	//
11604	// Default: 100
11605	//
11606	// Constraints: Minimum 20, maximum 100.
11607	MaxRecords *int64 `type:"integer"`
11608
11609	// The virtual private cloud (VPC) filter value. Specify this parameter to show
11610	// only the available VPC or non-VPC offerings.
11611	Vpc *bool `type:"boolean"`
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 DescribeOrderableDBInstanceOptionsInput) 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 DescribeOrderableDBInstanceOptionsInput) GoString() string {
11629	return s.String()
11630}
11631
11632// Validate inspects the fields of the type to determine if they are valid.
11633func (s *DescribeOrderableDBInstanceOptionsInput) Validate() error {
11634	invalidParams := request.ErrInvalidParams{Context: "DescribeOrderableDBInstanceOptionsInput"}
11635	if s.Engine == nil {
11636		invalidParams.Add(request.NewErrParamRequired("Engine"))
11637	}
11638	if s.Filters != nil {
11639		for i, v := range s.Filters {
11640			if v == nil {
11641				continue
11642			}
11643			if err := v.Validate(); err != nil {
11644				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11645			}
11646		}
11647	}
11648
11649	if invalidParams.Len() > 0 {
11650		return invalidParams
11651	}
11652	return nil
11653}
11654
11655// SetDBInstanceClass sets the DBInstanceClass field's value.
11656func (s *DescribeOrderableDBInstanceOptionsInput) SetDBInstanceClass(v string) *DescribeOrderableDBInstanceOptionsInput {
11657	s.DBInstanceClass = &v
11658	return s
11659}
11660
11661// SetEngine sets the Engine field's value.
11662func (s *DescribeOrderableDBInstanceOptionsInput) SetEngine(v string) *DescribeOrderableDBInstanceOptionsInput {
11663	s.Engine = &v
11664	return s
11665}
11666
11667// SetEngineVersion sets the EngineVersion field's value.
11668func (s *DescribeOrderableDBInstanceOptionsInput) SetEngineVersion(v string) *DescribeOrderableDBInstanceOptionsInput {
11669	s.EngineVersion = &v
11670	return s
11671}
11672
11673// SetFilters sets the Filters field's value.
11674func (s *DescribeOrderableDBInstanceOptionsInput) SetFilters(v []*Filter) *DescribeOrderableDBInstanceOptionsInput {
11675	s.Filters = v
11676	return s
11677}
11678
11679// SetLicenseModel sets the LicenseModel field's value.
11680func (s *DescribeOrderableDBInstanceOptionsInput) SetLicenseModel(v string) *DescribeOrderableDBInstanceOptionsInput {
11681	s.LicenseModel = &v
11682	return s
11683}
11684
11685// SetMarker sets the Marker field's value.
11686func (s *DescribeOrderableDBInstanceOptionsInput) SetMarker(v string) *DescribeOrderableDBInstanceOptionsInput {
11687	s.Marker = &v
11688	return s
11689}
11690
11691// SetMaxRecords sets the MaxRecords field's value.
11692func (s *DescribeOrderableDBInstanceOptionsInput) SetMaxRecords(v int64) *DescribeOrderableDBInstanceOptionsInput {
11693	s.MaxRecords = &v
11694	return s
11695}
11696
11697// SetVpc sets the Vpc field's value.
11698func (s *DescribeOrderableDBInstanceOptionsInput) SetVpc(v bool) *DescribeOrderableDBInstanceOptionsInput {
11699	s.Vpc = &v
11700	return s
11701}
11702
11703// Represents the output of DescribeOrderableDBInstanceOptions.
11704type DescribeOrderableDBInstanceOptionsOutput struct {
11705	_ struct{} `type:"structure"`
11706
11707	// An optional pagination token provided by a previous request. If this parameter
11708	// is specified, the response includes only records beyond the marker, up to
11709	// the value specified by MaxRecords.
11710	Marker *string `type:"string"`
11711
11712	// The options that are available for a particular orderable instance.
11713	OrderableDBInstanceOptions []*OrderableDBInstanceOption `locationNameList:"OrderableDBInstanceOption" type:"list"`
11714}
11715
11716// String returns the string representation.
11717//
11718// API parameter values that are decorated as "sensitive" in the API will not
11719// be included in the string output. The member name will be present, but the
11720// value will be replaced with "sensitive".
11721func (s DescribeOrderableDBInstanceOptionsOutput) String() string {
11722	return awsutil.Prettify(s)
11723}
11724
11725// GoString returns the string representation.
11726//
11727// API parameter values that are decorated as "sensitive" in the API will not
11728// be included in the string output. The member name will be present, but the
11729// value will be replaced with "sensitive".
11730func (s DescribeOrderableDBInstanceOptionsOutput) GoString() string {
11731	return s.String()
11732}
11733
11734// SetMarker sets the Marker field's value.
11735func (s *DescribeOrderableDBInstanceOptionsOutput) SetMarker(v string) *DescribeOrderableDBInstanceOptionsOutput {
11736	s.Marker = &v
11737	return s
11738}
11739
11740// SetOrderableDBInstanceOptions sets the OrderableDBInstanceOptions field's value.
11741func (s *DescribeOrderableDBInstanceOptionsOutput) SetOrderableDBInstanceOptions(v []*OrderableDBInstanceOption) *DescribeOrderableDBInstanceOptionsOutput {
11742	s.OrderableDBInstanceOptions = v
11743	return s
11744}
11745
11746// Represents the input to DescribePendingMaintenanceActions.
11747type DescribePendingMaintenanceActionsInput struct {
11748	_ struct{} `type:"structure"`
11749
11750	// A filter that specifies one or more resources to return pending maintenance
11751	// actions for.
11752	//
11753	// Supported filters:
11754	//
11755	//    * db-cluster-id - Accepts cluster identifiers and cluster Amazon Resource
11756	//    Names (ARNs). The results list includes only pending maintenance actions
11757	//    for the clusters identified by these ARNs.
11758	//
11759	//    * db-instance-id - Accepts instance identifiers and instance ARNs. The
11760	//    results list includes only pending maintenance actions for the DB instances
11761	//    identified by these ARNs.
11762	Filters []*Filter `locationNameList:"Filter" type:"list"`
11763
11764	// An optional pagination token provided by a previous request. If this parameter
11765	// is specified, the response includes only records beyond the marker, up to
11766	// the value specified by MaxRecords.
11767	Marker *string `type:"string"`
11768
11769	// The maximum number of records to include in the response. If more records
11770	// exist than the specified MaxRecords value, a pagination token (marker) is
11771	// included in the response so that the remaining results can be retrieved.
11772	//
11773	// Default: 100
11774	//
11775	// Constraints: Minimum 20, maximum 100.
11776	MaxRecords *int64 `type:"integer"`
11777
11778	// The ARN of a resource to return pending maintenance actions for.
11779	ResourceIdentifier *string `type:"string"`
11780}
11781
11782// String returns the string representation.
11783//
11784// API parameter values that are decorated as "sensitive" in the API will not
11785// be included in the string output. The member name will be present, but the
11786// value will be replaced with "sensitive".
11787func (s DescribePendingMaintenanceActionsInput) String() string {
11788	return awsutil.Prettify(s)
11789}
11790
11791// GoString returns the string representation.
11792//
11793// API parameter values that are decorated as "sensitive" in the API will not
11794// be included in the string output. The member name will be present, but the
11795// value will be replaced with "sensitive".
11796func (s DescribePendingMaintenanceActionsInput) GoString() string {
11797	return s.String()
11798}
11799
11800// Validate inspects the fields of the type to determine if they are valid.
11801func (s *DescribePendingMaintenanceActionsInput) Validate() error {
11802	invalidParams := request.ErrInvalidParams{Context: "DescribePendingMaintenanceActionsInput"}
11803	if s.Filters != nil {
11804		for i, v := range s.Filters {
11805			if v == nil {
11806				continue
11807			}
11808			if err := v.Validate(); err != nil {
11809				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11810			}
11811		}
11812	}
11813
11814	if invalidParams.Len() > 0 {
11815		return invalidParams
11816	}
11817	return nil
11818}
11819
11820// SetFilters sets the Filters field's value.
11821func (s *DescribePendingMaintenanceActionsInput) SetFilters(v []*Filter) *DescribePendingMaintenanceActionsInput {
11822	s.Filters = v
11823	return s
11824}
11825
11826// SetMarker sets the Marker field's value.
11827func (s *DescribePendingMaintenanceActionsInput) SetMarker(v string) *DescribePendingMaintenanceActionsInput {
11828	s.Marker = &v
11829	return s
11830}
11831
11832// SetMaxRecords sets the MaxRecords field's value.
11833func (s *DescribePendingMaintenanceActionsInput) SetMaxRecords(v int64) *DescribePendingMaintenanceActionsInput {
11834	s.MaxRecords = &v
11835	return s
11836}
11837
11838// SetResourceIdentifier sets the ResourceIdentifier field's value.
11839func (s *DescribePendingMaintenanceActionsInput) SetResourceIdentifier(v string) *DescribePendingMaintenanceActionsInput {
11840	s.ResourceIdentifier = &v
11841	return s
11842}
11843
11844// Represents the output of DescribePendingMaintenanceActions.
11845type DescribePendingMaintenanceActionsOutput struct {
11846	_ struct{} `type:"structure"`
11847
11848	// An optional pagination token provided by a previous request. If this parameter
11849	// is specified, the response includes only records beyond the marker, up to
11850	// the value specified by MaxRecords.
11851	Marker *string `type:"string"`
11852
11853	// The maintenance actions to be applied.
11854	PendingMaintenanceActions []*ResourcePendingMaintenanceActions `locationNameList:"ResourcePendingMaintenanceActions" type:"list"`
11855}
11856
11857// String returns the string representation.
11858//
11859// API parameter values that are decorated as "sensitive" in the API will not
11860// be included in the string output. The member name will be present, but the
11861// value will be replaced with "sensitive".
11862func (s DescribePendingMaintenanceActionsOutput) String() string {
11863	return awsutil.Prettify(s)
11864}
11865
11866// GoString 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 DescribePendingMaintenanceActionsOutput) GoString() string {
11872	return s.String()
11873}
11874
11875// SetMarker sets the Marker field's value.
11876func (s *DescribePendingMaintenanceActionsOutput) SetMarker(v string) *DescribePendingMaintenanceActionsOutput {
11877	s.Marker = &v
11878	return s
11879}
11880
11881// SetPendingMaintenanceActions sets the PendingMaintenanceActions field's value.
11882func (s *DescribePendingMaintenanceActionsOutput) SetPendingMaintenanceActions(v []*ResourcePendingMaintenanceActions) *DescribePendingMaintenanceActionsOutput {
11883	s.PendingMaintenanceActions = v
11884	return s
11885}
11886
11887// Network information for accessing a cluster or instance. Client programs
11888// must specify a valid endpoint to access these Amazon DocumentDB resources.
11889type Endpoint struct {
11890	_ struct{} `type:"structure"`
11891
11892	// Specifies the DNS address of the instance.
11893	Address *string `type:"string"`
11894
11895	// Specifies the ID that Amazon Route 53 assigns when you create a hosted zone.
11896	HostedZoneId *string `type:"string"`
11897
11898	// Specifies the port that the database engine is listening on.
11899	Port *int64 `type:"integer"`
11900}
11901
11902// String returns the string representation.
11903//
11904// API parameter values that are decorated as "sensitive" in the API will not
11905// be included in the string output. The member name will be present, but the
11906// value will be replaced with "sensitive".
11907func (s Endpoint) String() string {
11908	return awsutil.Prettify(s)
11909}
11910
11911// GoString returns the string representation.
11912//
11913// API parameter values that are decorated as "sensitive" in the API will not
11914// be included in the string output. The member name will be present, but the
11915// value will be replaced with "sensitive".
11916func (s Endpoint) GoString() string {
11917	return s.String()
11918}
11919
11920// SetAddress sets the Address field's value.
11921func (s *Endpoint) SetAddress(v string) *Endpoint {
11922	s.Address = &v
11923	return s
11924}
11925
11926// SetHostedZoneId sets the HostedZoneId field's value.
11927func (s *Endpoint) SetHostedZoneId(v string) *Endpoint {
11928	s.HostedZoneId = &v
11929	return s
11930}
11931
11932// SetPort sets the Port field's value.
11933func (s *Endpoint) SetPort(v int64) *Endpoint {
11934	s.Port = &v
11935	return s
11936}
11937
11938// Contains the result of a successful invocation of the DescribeEngineDefaultClusterParameters
11939// operation.
11940type EngineDefaults struct {
11941	_ struct{} `type:"structure"`
11942
11943	// The name of the cluster parameter group family to return the engine parameter
11944	// information for.
11945	DBParameterGroupFamily *string `type:"string"`
11946
11947	// An optional pagination token provided by a previous request. If this parameter
11948	// is specified, the response includes only records beyond the marker, up to
11949	// the value specified by MaxRecords.
11950	Marker *string `type:"string"`
11951
11952	// The parameters of a particular cluster parameter group family.
11953	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
11954}
11955
11956// String returns the string representation.
11957//
11958// API parameter values that are decorated as "sensitive" in the API will not
11959// be included in the string output. The member name will be present, but the
11960// value will be replaced with "sensitive".
11961func (s EngineDefaults) String() string {
11962	return awsutil.Prettify(s)
11963}
11964
11965// GoString returns the string representation.
11966//
11967// API parameter values that are decorated as "sensitive" in the API will not
11968// be included in the string output. The member name will be present, but the
11969// value will be replaced with "sensitive".
11970func (s EngineDefaults) GoString() string {
11971	return s.String()
11972}
11973
11974// SetDBParameterGroupFamily sets the DBParameterGroupFamily field's value.
11975func (s *EngineDefaults) SetDBParameterGroupFamily(v string) *EngineDefaults {
11976	s.DBParameterGroupFamily = &v
11977	return s
11978}
11979
11980// SetMarker sets the Marker field's value.
11981func (s *EngineDefaults) SetMarker(v string) *EngineDefaults {
11982	s.Marker = &v
11983	return s
11984}
11985
11986// SetParameters sets the Parameters field's value.
11987func (s *EngineDefaults) SetParameters(v []*Parameter) *EngineDefaults {
11988	s.Parameters = v
11989	return s
11990}
11991
11992// Detailed information about an event.
11993type Event struct {
11994	_ struct{} `type:"structure"`
11995
11996	// Specifies the date and time of the event.
11997	Date *time.Time `type:"timestamp"`
11998
11999	// Specifies the category for the event.
12000	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
12001
12002	// Provides the text of this event.
12003	Message *string `type:"string"`
12004
12005	// The Amazon Resource Name (ARN) for the event.
12006	SourceArn *string `type:"string"`
12007
12008	// Provides the identifier for the source of the event.
12009	SourceIdentifier *string `type:"string"`
12010
12011	// Specifies the source type for this event.
12012	SourceType *string `type:"string" enum:"SourceType"`
12013}
12014
12015// String returns the string representation.
12016//
12017// API parameter values that are decorated as "sensitive" in the API will not
12018// be included in the string output. The member name will be present, but the
12019// value will be replaced with "sensitive".
12020func (s Event) String() string {
12021	return awsutil.Prettify(s)
12022}
12023
12024// GoString returns the string representation.
12025//
12026// API parameter values that are decorated as "sensitive" in the API will not
12027// be included in the string output. The member name will be present, but the
12028// value will be replaced with "sensitive".
12029func (s Event) GoString() string {
12030	return s.String()
12031}
12032
12033// SetDate sets the Date field's value.
12034func (s *Event) SetDate(v time.Time) *Event {
12035	s.Date = &v
12036	return s
12037}
12038
12039// SetEventCategories sets the EventCategories field's value.
12040func (s *Event) SetEventCategories(v []*string) *Event {
12041	s.EventCategories = v
12042	return s
12043}
12044
12045// SetMessage sets the Message field's value.
12046func (s *Event) SetMessage(v string) *Event {
12047	s.Message = &v
12048	return s
12049}
12050
12051// SetSourceArn sets the SourceArn field's value.
12052func (s *Event) SetSourceArn(v string) *Event {
12053	s.SourceArn = &v
12054	return s
12055}
12056
12057// SetSourceIdentifier sets the SourceIdentifier field's value.
12058func (s *Event) SetSourceIdentifier(v string) *Event {
12059	s.SourceIdentifier = &v
12060	return s
12061}
12062
12063// SetSourceType sets the SourceType field's value.
12064func (s *Event) SetSourceType(v string) *Event {
12065	s.SourceType = &v
12066	return s
12067}
12068
12069// An event source type, accompanied by one or more event category names.
12070type EventCategoriesMap struct {
12071	_ struct{} `type:"structure"`
12072
12073	// The event categories for the specified source type.
12074	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
12075
12076	// The source type that the returned categories belong to.
12077	SourceType *string `type:"string"`
12078}
12079
12080// String returns the string representation.
12081//
12082// API parameter values that are decorated as "sensitive" in the API will not
12083// be included in the string output. The member name will be present, but the
12084// value will be replaced with "sensitive".
12085func (s EventCategoriesMap) String() string {
12086	return awsutil.Prettify(s)
12087}
12088
12089// GoString returns the string representation.
12090//
12091// API parameter values that are decorated as "sensitive" in the API will not
12092// be included in the string output. The member name will be present, but the
12093// value will be replaced with "sensitive".
12094func (s EventCategoriesMap) GoString() string {
12095	return s.String()
12096}
12097
12098// SetEventCategories sets the EventCategories field's value.
12099func (s *EventCategoriesMap) SetEventCategories(v []*string) *EventCategoriesMap {
12100	s.EventCategories = v
12101	return s
12102}
12103
12104// SetSourceType sets the SourceType field's value.
12105func (s *EventCategoriesMap) SetSourceType(v string) *EventCategoriesMap {
12106	s.SourceType = &v
12107	return s
12108}
12109
12110// Detailed information about an event to which you have subscribed.
12111type EventSubscription struct {
12112	_ struct{} `type:"structure"`
12113
12114	// The Amazon DocumentDB event notification subscription ID.
12115	CustSubscriptionId *string `type:"string"`
12116
12117	// The Amazon Web Services customer account that is associated with the Amazon
12118	// DocumentDB event notification subscription.
12119	CustomerAwsId *string `type:"string"`
12120
12121	// A Boolean value indicating whether the subscription is enabled. A value of
12122	// true indicates that the subscription is enabled.
12123	Enabled *bool `type:"boolean"`
12124
12125	// A list of event categories for the Amazon DocumentDB event notification subscription.
12126	EventCategoriesList []*string `locationNameList:"EventCategory" type:"list"`
12127
12128	// The Amazon Resource Name (ARN) for the event subscription.
12129	EventSubscriptionArn *string `type:"string"`
12130
12131	// The topic ARN of the Amazon DocumentDB event notification subscription.
12132	SnsTopicArn *string `type:"string"`
12133
12134	// A list of source IDs for the Amazon DocumentDB event notification subscription.
12135	SourceIdsList []*string `locationNameList:"SourceId" type:"list"`
12136
12137	// The source type for the Amazon DocumentDB event notification subscription.
12138	SourceType *string `type:"string"`
12139
12140	// The status of the Amazon DocumentDB event notification subscription.
12141	//
12142	// Constraints:
12143	//
12144	// Can be one of the following: creating, modifying, deleting, active, no-permission,
12145	// topic-not-exist
12146	//
12147	// The no-permission status indicates that Amazon DocumentDB no longer has permission
12148	// to post to the SNS topic. The topic-not-exist status indicates that the topic
12149	// was deleted after the subscription was created.
12150	Status *string `type:"string"`
12151
12152	// The time at which the Amazon DocumentDB event notification subscription was
12153	// created.
12154	SubscriptionCreationTime *string `type:"string"`
12155}
12156
12157// String returns the string representation.
12158//
12159// API parameter values that are decorated as "sensitive" in the API will not
12160// be included in the string output. The member name will be present, but the
12161// value will be replaced with "sensitive".
12162func (s EventSubscription) String() string {
12163	return awsutil.Prettify(s)
12164}
12165
12166// GoString returns the string representation.
12167//
12168// API parameter values that are decorated as "sensitive" in the API will not
12169// be included in the string output. The member name will be present, but the
12170// value will be replaced with "sensitive".
12171func (s EventSubscription) GoString() string {
12172	return s.String()
12173}
12174
12175// SetCustSubscriptionId sets the CustSubscriptionId field's value.
12176func (s *EventSubscription) SetCustSubscriptionId(v string) *EventSubscription {
12177	s.CustSubscriptionId = &v
12178	return s
12179}
12180
12181// SetCustomerAwsId sets the CustomerAwsId field's value.
12182func (s *EventSubscription) SetCustomerAwsId(v string) *EventSubscription {
12183	s.CustomerAwsId = &v
12184	return s
12185}
12186
12187// SetEnabled sets the Enabled field's value.
12188func (s *EventSubscription) SetEnabled(v bool) *EventSubscription {
12189	s.Enabled = &v
12190	return s
12191}
12192
12193// SetEventCategoriesList sets the EventCategoriesList field's value.
12194func (s *EventSubscription) SetEventCategoriesList(v []*string) *EventSubscription {
12195	s.EventCategoriesList = v
12196	return s
12197}
12198
12199// SetEventSubscriptionArn sets the EventSubscriptionArn field's value.
12200func (s *EventSubscription) SetEventSubscriptionArn(v string) *EventSubscription {
12201	s.EventSubscriptionArn = &v
12202	return s
12203}
12204
12205// SetSnsTopicArn sets the SnsTopicArn field's value.
12206func (s *EventSubscription) SetSnsTopicArn(v string) *EventSubscription {
12207	s.SnsTopicArn = &v
12208	return s
12209}
12210
12211// SetSourceIdsList sets the SourceIdsList field's value.
12212func (s *EventSubscription) SetSourceIdsList(v []*string) *EventSubscription {
12213	s.SourceIdsList = v
12214	return s
12215}
12216
12217// SetSourceType sets the SourceType field's value.
12218func (s *EventSubscription) SetSourceType(v string) *EventSubscription {
12219	s.SourceType = &v
12220	return s
12221}
12222
12223// SetStatus sets the Status field's value.
12224func (s *EventSubscription) SetStatus(v string) *EventSubscription {
12225	s.Status = &v
12226	return s
12227}
12228
12229// SetSubscriptionCreationTime sets the SubscriptionCreationTime field's value.
12230func (s *EventSubscription) SetSubscriptionCreationTime(v string) *EventSubscription {
12231	s.SubscriptionCreationTime = &v
12232	return s
12233}
12234
12235// Represents the input to FailoverDBCluster.
12236type FailoverDBClusterInput struct {
12237	_ struct{} `type:"structure"`
12238
12239	// A cluster identifier to force a failover for. This parameter is not case
12240	// sensitive.
12241	//
12242	// Constraints:
12243	//
12244	//    * Must match the identifier of an existing DBCluster.
12245	DBClusterIdentifier *string `type:"string"`
12246
12247	// The name of the instance to promote to the primary instance.
12248	//
12249	// You must specify the instance identifier for an Amazon DocumentDB replica
12250	// in the cluster. For example, mydbcluster-replica1.
12251	TargetDBInstanceIdentifier *string `type:"string"`
12252}
12253
12254// String returns the string representation.
12255//
12256// API parameter values that are decorated as "sensitive" in the API will not
12257// be included in the string output. The member name will be present, but the
12258// value will be replaced with "sensitive".
12259func (s FailoverDBClusterInput) String() string {
12260	return awsutil.Prettify(s)
12261}
12262
12263// GoString returns the string representation.
12264//
12265// API parameter values that are decorated as "sensitive" in the API will not
12266// be included in the string output. The member name will be present, but the
12267// value will be replaced with "sensitive".
12268func (s FailoverDBClusterInput) GoString() string {
12269	return s.String()
12270}
12271
12272// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
12273func (s *FailoverDBClusterInput) SetDBClusterIdentifier(v string) *FailoverDBClusterInput {
12274	s.DBClusterIdentifier = &v
12275	return s
12276}
12277
12278// SetTargetDBInstanceIdentifier sets the TargetDBInstanceIdentifier field's value.
12279func (s *FailoverDBClusterInput) SetTargetDBInstanceIdentifier(v string) *FailoverDBClusterInput {
12280	s.TargetDBInstanceIdentifier = &v
12281	return s
12282}
12283
12284type FailoverDBClusterOutput struct {
12285	_ struct{} `type:"structure"`
12286
12287	// Detailed information about a cluster.
12288	DBCluster *DBCluster `type:"structure"`
12289}
12290
12291// String returns the string representation.
12292//
12293// API parameter values that are decorated as "sensitive" in the API will not
12294// be included in the string output. The member name will be present, but the
12295// value will be replaced with "sensitive".
12296func (s FailoverDBClusterOutput) String() string {
12297	return awsutil.Prettify(s)
12298}
12299
12300// GoString returns the string representation.
12301//
12302// API parameter values that are decorated as "sensitive" in the API will not
12303// be included in the string output. The member name will be present, but the
12304// value will be replaced with "sensitive".
12305func (s FailoverDBClusterOutput) GoString() string {
12306	return s.String()
12307}
12308
12309// SetDBCluster sets the DBCluster field's value.
12310func (s *FailoverDBClusterOutput) SetDBCluster(v *DBCluster) *FailoverDBClusterOutput {
12311	s.DBCluster = v
12312	return s
12313}
12314
12315// A named set of filter values, used to return a more specific list of results.
12316// You can use a filter to match a set of resources by specific criteria, such
12317// as IDs.
12318//
12319// Wildcards are not supported in filters.
12320type Filter struct {
12321	_ struct{} `type:"structure"`
12322
12323	// The name of the filter. Filter names are case sensitive.
12324	//
12325	// Name is a required field
12326	Name *string `type:"string" required:"true"`
12327
12328	// One or more filter values. Filter values are case sensitive.
12329	//
12330	// Values is a required field
12331	Values []*string `locationNameList:"Value" type:"list" required:"true"`
12332}
12333
12334// String returns the string representation.
12335//
12336// API parameter values that are decorated as "sensitive" in the API will not
12337// be included in the string output. The member name will be present, but the
12338// value will be replaced with "sensitive".
12339func (s Filter) String() string {
12340	return awsutil.Prettify(s)
12341}
12342
12343// GoString returns the string representation.
12344//
12345// API parameter values that are decorated as "sensitive" in the API will not
12346// be included in the string output. The member name will be present, but the
12347// value will be replaced with "sensitive".
12348func (s Filter) GoString() string {
12349	return s.String()
12350}
12351
12352// Validate inspects the fields of the type to determine if they are valid.
12353func (s *Filter) Validate() error {
12354	invalidParams := request.ErrInvalidParams{Context: "Filter"}
12355	if s.Name == nil {
12356		invalidParams.Add(request.NewErrParamRequired("Name"))
12357	}
12358	if s.Values == nil {
12359		invalidParams.Add(request.NewErrParamRequired("Values"))
12360	}
12361
12362	if invalidParams.Len() > 0 {
12363		return invalidParams
12364	}
12365	return nil
12366}
12367
12368// SetName sets the Name field's value.
12369func (s *Filter) SetName(v string) *Filter {
12370	s.Name = &v
12371	return s
12372}
12373
12374// SetValues sets the Values field's value.
12375func (s *Filter) SetValues(v []*string) *Filter {
12376	s.Values = v
12377	return s
12378}
12379
12380// A data type representing an Amazon DocumentDB global cluster.
12381type GlobalCluster struct {
12382	_ struct{} `type:"structure"`
12383
12384	// The default database name within the new global cluster.
12385	DatabaseName *string `type:"string"`
12386
12387	// The deletion protection setting for the new global cluster.
12388	DeletionProtection *bool `type:"boolean"`
12389
12390	// The Amazon DocumentDB database engine used by the global cluster.
12391	Engine *string `type:"string"`
12392
12393	// Indicates the database engine version.
12394	EngineVersion *string `type:"string"`
12395
12396	// The Amazon Resource Name (ARN) for the global cluster.
12397	GlobalClusterArn *string `type:"string"`
12398
12399	// Contains a user-supplied global cluster identifier. This identifier is the
12400	// unique key that identifies a global cluster.
12401	GlobalClusterIdentifier *string `min:"1" type:"string"`
12402
12403	// The list of cluster IDs for secondary clusters within the global cluster.
12404	// Currently limited to one item.
12405	GlobalClusterMembers []*GlobalClusterMember `locationNameList:"GlobalClusterMember" type:"list"`
12406
12407	// The Region-unique, immutable identifier for the global database cluster.
12408	// This identifier is found in AWS CloudTrail log entries whenever the AWS KMS
12409	// customer master key (CMK) for the cluster is accessed.
12410	GlobalClusterResourceId *string `type:"string"`
12411
12412	// Specifies the current state of this global cluster.
12413	Status *string `type:"string"`
12414
12415	// The storage encryption setting for the global cluster.
12416	StorageEncrypted *bool `type:"boolean"`
12417}
12418
12419// String returns the string representation.
12420//
12421// API parameter values that are decorated as "sensitive" in the API will not
12422// be included in the string output. The member name will be present, but the
12423// value will be replaced with "sensitive".
12424func (s GlobalCluster) String() string {
12425	return awsutil.Prettify(s)
12426}
12427
12428// GoString returns the string representation.
12429//
12430// API parameter values that are decorated as "sensitive" in the API will not
12431// be included in the string output. The member name will be present, but the
12432// value will be replaced with "sensitive".
12433func (s GlobalCluster) GoString() string {
12434	return s.String()
12435}
12436
12437// SetDatabaseName sets the DatabaseName field's value.
12438func (s *GlobalCluster) SetDatabaseName(v string) *GlobalCluster {
12439	s.DatabaseName = &v
12440	return s
12441}
12442
12443// SetDeletionProtection sets the DeletionProtection field's value.
12444func (s *GlobalCluster) SetDeletionProtection(v bool) *GlobalCluster {
12445	s.DeletionProtection = &v
12446	return s
12447}
12448
12449// SetEngine sets the Engine field's value.
12450func (s *GlobalCluster) SetEngine(v string) *GlobalCluster {
12451	s.Engine = &v
12452	return s
12453}
12454
12455// SetEngineVersion sets the EngineVersion field's value.
12456func (s *GlobalCluster) SetEngineVersion(v string) *GlobalCluster {
12457	s.EngineVersion = &v
12458	return s
12459}
12460
12461// SetGlobalClusterArn sets the GlobalClusterArn field's value.
12462func (s *GlobalCluster) SetGlobalClusterArn(v string) *GlobalCluster {
12463	s.GlobalClusterArn = &v
12464	return s
12465}
12466
12467// SetGlobalClusterIdentifier sets the GlobalClusterIdentifier field's value.
12468func (s *GlobalCluster) SetGlobalClusterIdentifier(v string) *GlobalCluster {
12469	s.GlobalClusterIdentifier = &v
12470	return s
12471}
12472
12473// SetGlobalClusterMembers sets the GlobalClusterMembers field's value.
12474func (s *GlobalCluster) SetGlobalClusterMembers(v []*GlobalClusterMember) *GlobalCluster {
12475	s.GlobalClusterMembers = v
12476	return s
12477}
12478
12479// SetGlobalClusterResourceId sets the GlobalClusterResourceId field's value.
12480func (s *GlobalCluster) SetGlobalClusterResourceId(v string) *GlobalCluster {
12481	s.GlobalClusterResourceId = &v
12482	return s
12483}
12484
12485// SetStatus sets the Status field's value.
12486func (s *GlobalCluster) SetStatus(v string) *GlobalCluster {
12487	s.Status = &v
12488	return s
12489}
12490
12491// SetStorageEncrypted sets the StorageEncrypted field's value.
12492func (s *GlobalCluster) SetStorageEncrypted(v bool) *GlobalCluster {
12493	s.StorageEncrypted = &v
12494	return s
12495}
12496
12497// A data structure with information about any primary and secondary clusters
12498// associated with an Amazon DocumentDB global clusters.
12499type GlobalClusterMember struct {
12500	_ struct{} `type:"structure"`
12501
12502	// The Amazon Resource Name (ARN) for each Amazon DocumentDB cluster.
12503	DBClusterArn *string `type:"string"`
12504
12505	// Specifies whether the Amazon DocumentDB cluster is the primary cluster (that
12506	// is, has read-write capability) for the Amazon DocumentDB global cluster with
12507	// which it is associated.
12508	IsWriter *bool `type:"boolean"`
12509
12510	// The Amazon Resource Name (ARN) for each read-only secondary cluster associated
12511	// with the Aurora global cluster.
12512	Readers []*string `type:"list"`
12513}
12514
12515// String returns the string representation.
12516//
12517// API parameter values that are decorated as "sensitive" in the API will not
12518// be included in the string output. The member name will be present, but the
12519// value will be replaced with "sensitive".
12520func (s GlobalClusterMember) String() string {
12521	return awsutil.Prettify(s)
12522}
12523
12524// GoString returns the string representation.
12525//
12526// API parameter values that are decorated as "sensitive" in the API will not
12527// be included in the string output. The member name will be present, but the
12528// value will be replaced with "sensitive".
12529func (s GlobalClusterMember) GoString() string {
12530	return s.String()
12531}
12532
12533// SetDBClusterArn sets the DBClusterArn field's value.
12534func (s *GlobalClusterMember) SetDBClusterArn(v string) *GlobalClusterMember {
12535	s.DBClusterArn = &v
12536	return s
12537}
12538
12539// SetIsWriter sets the IsWriter field's value.
12540func (s *GlobalClusterMember) SetIsWriter(v bool) *GlobalClusterMember {
12541	s.IsWriter = &v
12542	return s
12543}
12544
12545// SetReaders sets the Readers field's value.
12546func (s *GlobalClusterMember) SetReaders(v []*string) *GlobalClusterMember {
12547	s.Readers = v
12548	return s
12549}
12550
12551// Represents the input to ListTagsForResource.
12552type ListTagsForResourceInput struct {
12553	_ struct{} `type:"structure"`
12554
12555	// This parameter is not currently supported.
12556	Filters []*Filter `locationNameList:"Filter" type:"list"`
12557
12558	// The Amazon DocumentDB resource with tags to be listed. This value is an Amazon
12559	// Resource Name (ARN).
12560	//
12561	// ResourceName is a required field
12562	ResourceName *string `type:"string" required:"true"`
12563}
12564
12565// String returns the string representation.
12566//
12567// API parameter values that are decorated as "sensitive" in the API will not
12568// be included in the string output. The member name will be present, but the
12569// value will be replaced with "sensitive".
12570func (s ListTagsForResourceInput) String() string {
12571	return awsutil.Prettify(s)
12572}
12573
12574// GoString returns the string representation.
12575//
12576// API parameter values that are decorated as "sensitive" in the API will not
12577// be included in the string output. The member name will be present, but the
12578// value will be replaced with "sensitive".
12579func (s ListTagsForResourceInput) GoString() string {
12580	return s.String()
12581}
12582
12583// Validate inspects the fields of the type to determine if they are valid.
12584func (s *ListTagsForResourceInput) Validate() error {
12585	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
12586	if s.ResourceName == nil {
12587		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
12588	}
12589	if s.Filters != nil {
12590		for i, v := range s.Filters {
12591			if v == nil {
12592				continue
12593			}
12594			if err := v.Validate(); err != nil {
12595				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12596			}
12597		}
12598	}
12599
12600	if invalidParams.Len() > 0 {
12601		return invalidParams
12602	}
12603	return nil
12604}
12605
12606// SetFilters sets the Filters field's value.
12607func (s *ListTagsForResourceInput) SetFilters(v []*Filter) *ListTagsForResourceInput {
12608	s.Filters = v
12609	return s
12610}
12611
12612// SetResourceName sets the ResourceName field's value.
12613func (s *ListTagsForResourceInput) SetResourceName(v string) *ListTagsForResourceInput {
12614	s.ResourceName = &v
12615	return s
12616}
12617
12618// Represents the output of ListTagsForResource.
12619type ListTagsForResourceOutput struct {
12620	_ struct{} `type:"structure"`
12621
12622	// A list of one or more tags.
12623	TagList []*Tag `locationNameList:"Tag" type:"list"`
12624}
12625
12626// String returns the string representation.
12627//
12628// API parameter values that are decorated as "sensitive" in the API will not
12629// be included in the string output. The member name will be present, but the
12630// value will be replaced with "sensitive".
12631func (s ListTagsForResourceOutput) String() string {
12632	return awsutil.Prettify(s)
12633}
12634
12635// GoString returns the string representation.
12636//
12637// API parameter values that are decorated as "sensitive" in the API will not
12638// be included in the string output. The member name will be present, but the
12639// value will be replaced with "sensitive".
12640func (s ListTagsForResourceOutput) GoString() string {
12641	return s.String()
12642}
12643
12644// SetTagList sets the TagList field's value.
12645func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOutput {
12646	s.TagList = v
12647	return s
12648}
12649
12650// Represents the input to ModifyDBCluster.
12651type ModifyDBClusterInput struct {
12652	_ struct{} `type:"structure"`
12653
12654	// A value that specifies whether the changes in this request and any pending
12655	// changes are asynchronously applied as soon as possible, regardless of the
12656	// PreferredMaintenanceWindow setting for the cluster. If this parameter is
12657	// set to false, changes to the cluster are applied during the next maintenance
12658	// window.
12659	//
12660	// The ApplyImmediately parameter affects only the NewDBClusterIdentifier and
12661	// MasterUserPassword values. If you set this parameter value to false, the
12662	// changes to the NewDBClusterIdentifier and MasterUserPassword values are applied
12663	// during the next maintenance window. All other changes are applied immediately,
12664	// regardless of the value of the ApplyImmediately parameter.
12665	//
12666	// Default: false
12667	ApplyImmediately *bool `type:"boolean"`
12668
12669	// The number of days for which automated backups are retained. You must specify
12670	// a minimum value of 1.
12671	//
12672	// Default: 1
12673	//
12674	// Constraints:
12675	//
12676	//    * Must be a value from 1 to 35.
12677	BackupRetentionPeriod *int64 `type:"integer"`
12678
12679	// The configuration setting for the log types to be enabled for export to Amazon
12680	// CloudWatch Logs for a specific instance or cluster. The EnableLogTypes and
12681	// DisableLogTypes arrays determine which logs are exported (or not exported)
12682	// to CloudWatch Logs.
12683	CloudwatchLogsExportConfiguration *CloudwatchLogsExportConfiguration `type:"structure"`
12684
12685	// The cluster identifier for the cluster that is being modified. This parameter
12686	// is not case sensitive.
12687	//
12688	// Constraints:
12689	//
12690	//    * Must match the identifier of an existing DBCluster.
12691	//
12692	// DBClusterIdentifier is a required field
12693	DBClusterIdentifier *string `type:"string" required:"true"`
12694
12695	// The name of the cluster parameter group to use for the cluster.
12696	DBClusterParameterGroupName *string `type:"string"`
12697
12698	// Specifies whether this cluster can be deleted. If DeletionProtection is enabled,
12699	// the cluster cannot be deleted unless it is modified and DeletionProtection
12700	// is disabled. DeletionProtection protects clusters from being accidentally
12701	// deleted.
12702	DeletionProtection *bool `type:"boolean"`
12703
12704	// The version number of the database engine to which you want to upgrade. Modifying
12705	// engine version is not supported on Amazon DocumentDB.
12706	EngineVersion *string `type:"string"`
12707
12708	// The password for the master database user. This password can contain any
12709	// printable ASCII character except forward slash (/), double quote ("), or
12710	// the "at" symbol (@).
12711	//
12712	// Constraints: Must contain from 8 to 100 characters.
12713	MasterUserPassword *string `type:"string"`
12714
12715	// The new cluster identifier for the cluster when renaming a cluster. This
12716	// value is stored as a lowercase string.
12717	//
12718	// Constraints:
12719	//
12720	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
12721	//
12722	//    * The first character must be a letter.
12723	//
12724	//    * Cannot end with a hyphen or contain two consecutive hyphens.
12725	//
12726	// Example: my-cluster2
12727	NewDBClusterIdentifier *string `type:"string"`
12728
12729	// The port number on which the cluster accepts connections.
12730	//
12731	// Constraints: Must be a value from 1150 to 65535.
12732	//
12733	// Default: The same port as the original cluster.
12734	Port *int64 `type:"integer"`
12735
12736	// The daily time range during which automated backups are created if automated
12737	// backups are enabled, using the BackupRetentionPeriod parameter.
12738	//
12739	// The default is a 30-minute window selected at random from an 8-hour block
12740	// of time for each Region.
12741	//
12742	// Constraints:
12743	//
12744	//    * Must be in the format hh24:mi-hh24:mi.
12745	//
12746	//    * Must be in Universal Coordinated Time (UTC).
12747	//
12748	//    * Must not conflict with the preferred maintenance window.
12749	//
12750	//    * Must be at least 30 minutes.
12751	PreferredBackupWindow *string `type:"string"`
12752
12753	// The weekly time range during which system maintenance can occur, in Universal
12754	// Coordinated Time (UTC).
12755	//
12756	// Format: ddd:hh24:mi-ddd:hh24:mi
12757	//
12758	// The default is a 30-minute window selected at random from an 8-hour block
12759	// of time for each Region, occurring on a random day of the week.
12760	//
12761	// Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
12762	//
12763	// Constraints: Minimum 30-minute window.
12764	PreferredMaintenanceWindow *string `type:"string"`
12765
12766	// A list of virtual private cloud (VPC) security groups that the cluster will
12767	// belong to.
12768	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
12769}
12770
12771// String returns the string representation.
12772//
12773// API parameter values that are decorated as "sensitive" in the API will not
12774// be included in the string output. The member name will be present, but the
12775// value will be replaced with "sensitive".
12776func (s ModifyDBClusterInput) String() string {
12777	return awsutil.Prettify(s)
12778}
12779
12780// GoString returns the string representation.
12781//
12782// API parameter values that are decorated as "sensitive" in the API will not
12783// be included in the string output. The member name will be present, but the
12784// value will be replaced with "sensitive".
12785func (s ModifyDBClusterInput) GoString() string {
12786	return s.String()
12787}
12788
12789// Validate inspects the fields of the type to determine if they are valid.
12790func (s *ModifyDBClusterInput) Validate() error {
12791	invalidParams := request.ErrInvalidParams{Context: "ModifyDBClusterInput"}
12792	if s.DBClusterIdentifier == nil {
12793		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
12794	}
12795
12796	if invalidParams.Len() > 0 {
12797		return invalidParams
12798	}
12799	return nil
12800}
12801
12802// SetApplyImmediately sets the ApplyImmediately field's value.
12803func (s *ModifyDBClusterInput) SetApplyImmediately(v bool) *ModifyDBClusterInput {
12804	s.ApplyImmediately = &v
12805	return s
12806}
12807
12808// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value.
12809func (s *ModifyDBClusterInput) SetBackupRetentionPeriod(v int64) *ModifyDBClusterInput {
12810	s.BackupRetentionPeriod = &v
12811	return s
12812}
12813
12814// SetCloudwatchLogsExportConfiguration sets the CloudwatchLogsExportConfiguration field's value.
12815func (s *ModifyDBClusterInput) SetCloudwatchLogsExportConfiguration(v *CloudwatchLogsExportConfiguration) *ModifyDBClusterInput {
12816	s.CloudwatchLogsExportConfiguration = v
12817	return s
12818}
12819
12820// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
12821func (s *ModifyDBClusterInput) SetDBClusterIdentifier(v string) *ModifyDBClusterInput {
12822	s.DBClusterIdentifier = &v
12823	return s
12824}
12825
12826// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
12827func (s *ModifyDBClusterInput) SetDBClusterParameterGroupName(v string) *ModifyDBClusterInput {
12828	s.DBClusterParameterGroupName = &v
12829	return s
12830}
12831
12832// SetDeletionProtection sets the DeletionProtection field's value.
12833func (s *ModifyDBClusterInput) SetDeletionProtection(v bool) *ModifyDBClusterInput {
12834	s.DeletionProtection = &v
12835	return s
12836}
12837
12838// SetEngineVersion sets the EngineVersion field's value.
12839func (s *ModifyDBClusterInput) SetEngineVersion(v string) *ModifyDBClusterInput {
12840	s.EngineVersion = &v
12841	return s
12842}
12843
12844// SetMasterUserPassword sets the MasterUserPassword field's value.
12845func (s *ModifyDBClusterInput) SetMasterUserPassword(v string) *ModifyDBClusterInput {
12846	s.MasterUserPassword = &v
12847	return s
12848}
12849
12850// SetNewDBClusterIdentifier sets the NewDBClusterIdentifier field's value.
12851func (s *ModifyDBClusterInput) SetNewDBClusterIdentifier(v string) *ModifyDBClusterInput {
12852	s.NewDBClusterIdentifier = &v
12853	return s
12854}
12855
12856// SetPort sets the Port field's value.
12857func (s *ModifyDBClusterInput) SetPort(v int64) *ModifyDBClusterInput {
12858	s.Port = &v
12859	return s
12860}
12861
12862// SetPreferredBackupWindow sets the PreferredBackupWindow field's value.
12863func (s *ModifyDBClusterInput) SetPreferredBackupWindow(v string) *ModifyDBClusterInput {
12864	s.PreferredBackupWindow = &v
12865	return s
12866}
12867
12868// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
12869func (s *ModifyDBClusterInput) SetPreferredMaintenanceWindow(v string) *ModifyDBClusterInput {
12870	s.PreferredMaintenanceWindow = &v
12871	return s
12872}
12873
12874// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
12875func (s *ModifyDBClusterInput) SetVpcSecurityGroupIds(v []*string) *ModifyDBClusterInput {
12876	s.VpcSecurityGroupIds = v
12877	return s
12878}
12879
12880type ModifyDBClusterOutput struct {
12881	_ struct{} `type:"structure"`
12882
12883	// Detailed information about a cluster.
12884	DBCluster *DBCluster `type:"structure"`
12885}
12886
12887// String returns the string representation.
12888//
12889// API parameter values that are decorated as "sensitive" in the API will not
12890// be included in the string output. The member name will be present, but the
12891// value will be replaced with "sensitive".
12892func (s ModifyDBClusterOutput) String() string {
12893	return awsutil.Prettify(s)
12894}
12895
12896// GoString returns the string representation.
12897//
12898// API parameter values that are decorated as "sensitive" in the API will not
12899// be included in the string output. The member name will be present, but the
12900// value will be replaced with "sensitive".
12901func (s ModifyDBClusterOutput) GoString() string {
12902	return s.String()
12903}
12904
12905// SetDBCluster sets the DBCluster field's value.
12906func (s *ModifyDBClusterOutput) SetDBCluster(v *DBCluster) *ModifyDBClusterOutput {
12907	s.DBCluster = v
12908	return s
12909}
12910
12911// Represents the input to ModifyDBClusterParameterGroup.
12912type ModifyDBClusterParameterGroupInput struct {
12913	_ struct{} `type:"structure"`
12914
12915	// The name of the cluster parameter group to modify.
12916	//
12917	// DBClusterParameterGroupName is a required field
12918	DBClusterParameterGroupName *string `type:"string" required:"true"`
12919
12920	// A list of parameters in the cluster parameter group to modify.
12921	//
12922	// Parameters is a required field
12923	Parameters []*Parameter `locationNameList:"Parameter" type:"list" required:"true"`
12924}
12925
12926// String returns the string representation.
12927//
12928// API parameter values that are decorated as "sensitive" in the API will not
12929// be included in the string output. The member name will be present, but the
12930// value will be replaced with "sensitive".
12931func (s ModifyDBClusterParameterGroupInput) String() string {
12932	return awsutil.Prettify(s)
12933}
12934
12935// GoString returns the string representation.
12936//
12937// API parameter values that are decorated as "sensitive" in the API will not
12938// be included in the string output. The member name will be present, but the
12939// value will be replaced with "sensitive".
12940func (s ModifyDBClusterParameterGroupInput) GoString() string {
12941	return s.String()
12942}
12943
12944// Validate inspects the fields of the type to determine if they are valid.
12945func (s *ModifyDBClusterParameterGroupInput) Validate() error {
12946	invalidParams := request.ErrInvalidParams{Context: "ModifyDBClusterParameterGroupInput"}
12947	if s.DBClusterParameterGroupName == nil {
12948		invalidParams.Add(request.NewErrParamRequired("DBClusterParameterGroupName"))
12949	}
12950	if s.Parameters == nil {
12951		invalidParams.Add(request.NewErrParamRequired("Parameters"))
12952	}
12953
12954	if invalidParams.Len() > 0 {
12955		return invalidParams
12956	}
12957	return nil
12958}
12959
12960// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
12961func (s *ModifyDBClusterParameterGroupInput) SetDBClusterParameterGroupName(v string) *ModifyDBClusterParameterGroupInput {
12962	s.DBClusterParameterGroupName = &v
12963	return s
12964}
12965
12966// SetParameters sets the Parameters field's value.
12967func (s *ModifyDBClusterParameterGroupInput) SetParameters(v []*Parameter) *ModifyDBClusterParameterGroupInput {
12968	s.Parameters = v
12969	return s
12970}
12971
12972// Contains the name of a cluster parameter group.
12973type ModifyDBClusterParameterGroupOutput struct {
12974	_ struct{} `type:"structure"`
12975
12976	// The name of a cluster parameter group.
12977	//
12978	// Constraints:
12979	//
12980	//    * Must be from 1 to 255 letters or numbers.
12981	//
12982	//    * The first character must be a letter.
12983	//
12984	//    * Cannot end with a hyphen or contain two consecutive hyphens.
12985	//
12986	// This value is stored as a lowercase string.
12987	DBClusterParameterGroupName *string `type:"string"`
12988}
12989
12990// String returns the string representation.
12991//
12992// API parameter values that are decorated as "sensitive" in the API will not
12993// be included in the string output. The member name will be present, but the
12994// value will be replaced with "sensitive".
12995func (s ModifyDBClusterParameterGroupOutput) String() string {
12996	return awsutil.Prettify(s)
12997}
12998
12999// GoString returns the string representation.
13000//
13001// API parameter values that are decorated as "sensitive" in the API will not
13002// be included in the string output. The member name will be present, but the
13003// value will be replaced with "sensitive".
13004func (s ModifyDBClusterParameterGroupOutput) GoString() string {
13005	return s.String()
13006}
13007
13008// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
13009func (s *ModifyDBClusterParameterGroupOutput) SetDBClusterParameterGroupName(v string) *ModifyDBClusterParameterGroupOutput {
13010	s.DBClusterParameterGroupName = &v
13011	return s
13012}
13013
13014// Represents the input to ModifyDBClusterSnapshotAttribute.
13015type ModifyDBClusterSnapshotAttributeInput struct {
13016	_ struct{} `type:"structure"`
13017
13018	// The name of the cluster snapshot attribute to modify.
13019	//
13020	// To manage authorization for other accounts to copy or restore a manual cluster
13021	// snapshot, set this value to restore.
13022	//
13023	// AttributeName is a required field
13024	AttributeName *string `type:"string" required:"true"`
13025
13026	// The identifier for the cluster snapshot to modify the attributes for.
13027	//
13028	// DBClusterSnapshotIdentifier is a required field
13029	DBClusterSnapshotIdentifier *string `type:"string" required:"true"`
13030
13031	// A list of cluster snapshot attributes to add to the attribute specified by
13032	// AttributeName.
13033	//
13034	// To authorize other accounts to copy or restore a manual cluster snapshot,
13035	// set this list to include one or more account IDs. To make the manual cluster
13036	// snapshot restorable by any account, set it to all. Do not add the all value
13037	// for any manual cluster snapshots that contain private information that you
13038	// don't want to be available to all accounts.
13039	ValuesToAdd []*string `locationNameList:"AttributeValue" type:"list"`
13040
13041	// A list of cluster snapshot attributes to remove from the attribute specified
13042	// by AttributeName.
13043	//
13044	// To remove authorization for other accounts to copy or restore a manual cluster
13045	// snapshot, set this list to include one or more account identifiers. To remove
13046	// authorization for any account to copy or restore the cluster snapshot, set
13047	// it to all . If you specify all, an account whose account ID is explicitly
13048	// added to the restore attribute can still copy or restore a manual cluster
13049	// snapshot.
13050	ValuesToRemove []*string `locationNameList:"AttributeValue" type:"list"`
13051}
13052
13053// String returns the string representation.
13054//
13055// API parameter values that are decorated as "sensitive" in the API will not
13056// be included in the string output. The member name will be present, but the
13057// value will be replaced with "sensitive".
13058func (s ModifyDBClusterSnapshotAttributeInput) String() string {
13059	return awsutil.Prettify(s)
13060}
13061
13062// GoString returns the string representation.
13063//
13064// API parameter values that are decorated as "sensitive" in the API will not
13065// be included in the string output. The member name will be present, but the
13066// value will be replaced with "sensitive".
13067func (s ModifyDBClusterSnapshotAttributeInput) GoString() string {
13068	return s.String()
13069}
13070
13071// Validate inspects the fields of the type to determine if they are valid.
13072func (s *ModifyDBClusterSnapshotAttributeInput) Validate() error {
13073	invalidParams := request.ErrInvalidParams{Context: "ModifyDBClusterSnapshotAttributeInput"}
13074	if s.AttributeName == nil {
13075		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
13076	}
13077	if s.DBClusterSnapshotIdentifier == nil {
13078		invalidParams.Add(request.NewErrParamRequired("DBClusterSnapshotIdentifier"))
13079	}
13080
13081	if invalidParams.Len() > 0 {
13082		return invalidParams
13083	}
13084	return nil
13085}
13086
13087// SetAttributeName sets the AttributeName field's value.
13088func (s *ModifyDBClusterSnapshotAttributeInput) SetAttributeName(v string) *ModifyDBClusterSnapshotAttributeInput {
13089	s.AttributeName = &v
13090	return s
13091}
13092
13093// SetDBClusterSnapshotIdentifier sets the DBClusterSnapshotIdentifier field's value.
13094func (s *ModifyDBClusterSnapshotAttributeInput) SetDBClusterSnapshotIdentifier(v string) *ModifyDBClusterSnapshotAttributeInput {
13095	s.DBClusterSnapshotIdentifier = &v
13096	return s
13097}
13098
13099// SetValuesToAdd sets the ValuesToAdd field's value.
13100func (s *ModifyDBClusterSnapshotAttributeInput) SetValuesToAdd(v []*string) *ModifyDBClusterSnapshotAttributeInput {
13101	s.ValuesToAdd = v
13102	return s
13103}
13104
13105// SetValuesToRemove sets the ValuesToRemove field's value.
13106func (s *ModifyDBClusterSnapshotAttributeInput) SetValuesToRemove(v []*string) *ModifyDBClusterSnapshotAttributeInput {
13107	s.ValuesToRemove = v
13108	return s
13109}
13110
13111type ModifyDBClusterSnapshotAttributeOutput struct {
13112	_ struct{} `type:"structure"`
13113
13114	// Detailed information about the attributes that are associated with a cluster
13115	// snapshot.
13116	DBClusterSnapshotAttributesResult *DBClusterSnapshotAttributesResult `type:"structure"`
13117}
13118
13119// String returns the string representation.
13120//
13121// API parameter values that are decorated as "sensitive" in the API will not
13122// be included in the string output. The member name will be present, but the
13123// value will be replaced with "sensitive".
13124func (s ModifyDBClusterSnapshotAttributeOutput) String() string {
13125	return awsutil.Prettify(s)
13126}
13127
13128// GoString returns the string representation.
13129//
13130// API parameter values that are decorated as "sensitive" in the API will not
13131// be included in the string output. The member name will be present, but the
13132// value will be replaced with "sensitive".
13133func (s ModifyDBClusterSnapshotAttributeOutput) GoString() string {
13134	return s.String()
13135}
13136
13137// SetDBClusterSnapshotAttributesResult sets the DBClusterSnapshotAttributesResult field's value.
13138func (s *ModifyDBClusterSnapshotAttributeOutput) SetDBClusterSnapshotAttributesResult(v *DBClusterSnapshotAttributesResult) *ModifyDBClusterSnapshotAttributeOutput {
13139	s.DBClusterSnapshotAttributesResult = v
13140	return s
13141}
13142
13143// Represents the input to ModifyDBInstance.
13144type ModifyDBInstanceInput struct {
13145	_ struct{} `type:"structure"`
13146
13147	// Specifies whether the modifications in this request and any pending modifications
13148	// are asynchronously applied as soon as possible, regardless of the PreferredMaintenanceWindow
13149	// setting for the instance.
13150	//
13151	// If this parameter is set to false, changes to the instance are applied during
13152	// the next maintenance window. Some parameter changes can cause an outage and
13153	// are applied on the next reboot.
13154	//
13155	// Default: false
13156	ApplyImmediately *bool `type:"boolean"`
13157
13158	// This parameter does not apply to Amazon DocumentDB. Amazon DocumentDB does
13159	// not perform minor version upgrades regardless of the value set.
13160	AutoMinorVersionUpgrade *bool `type:"boolean"`
13161
13162	// Indicates the certificate that needs to be associated with the instance.
13163	CACertificateIdentifier *string `type:"string"`
13164
13165	// The new compute and memory capacity of the instance; for example, db.r5.large.
13166	// Not all instance classes are available in all Regions.
13167	//
13168	// If you modify the instance class, an outage occurs during the change. The
13169	// change is applied during the next maintenance window, unless ApplyImmediately
13170	// is specified as true for this request.
13171	//
13172	// Default: Uses existing setting.
13173	DBInstanceClass *string `type:"string"`
13174
13175	// The instance identifier. This value is stored as a lowercase string.
13176	//
13177	// Constraints:
13178	//
13179	//    * Must match the identifier of an existing DBInstance.
13180	//
13181	// DBInstanceIdentifier is a required field
13182	DBInstanceIdentifier *string `type:"string" required:"true"`
13183
13184	// The new instance identifier for the instance when renaming an instance. When
13185	// you change the instance identifier, an instance reboot occurs immediately
13186	// if you set Apply Immediately to true. It occurs during the next maintenance
13187	// window if you set Apply Immediately to false. This value is stored as a lowercase
13188	// string.
13189	//
13190	// Constraints:
13191	//
13192	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
13193	//
13194	//    * The first character must be a letter.
13195	//
13196	//    * Cannot end with a hyphen or contain two consecutive hyphens.
13197	//
13198	// Example: mydbinstance
13199	NewDBInstanceIdentifier *string `type:"string"`
13200
13201	// The weekly time range (in UTC) during which system maintenance can occur,
13202	// which might result in an outage. Changing this parameter doesn't result in
13203	// an outage except in the following situation, and the change is asynchronously
13204	// applied as soon as possible. If there are pending actions that cause a reboot,
13205	// and the maintenance window is changed to include the current time, changing
13206	// this parameter causes a reboot of the instance. If you are moving this window
13207	// to the current time, there must be at least 30 minutes between the current
13208	// time and end of the window to ensure that pending changes are applied.
13209	//
13210	// Default: Uses existing setting.
13211	//
13212	// Format: ddd:hh24:mi-ddd:hh24:mi
13213	//
13214	// Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun
13215	//
13216	// Constraints: Must be at least 30 minutes.
13217	PreferredMaintenanceWindow *string `type:"string"`
13218
13219	// A value that specifies the order in which an Amazon DocumentDB replica is
13220	// promoted to the primary instance after a failure of the existing primary
13221	// instance.
13222	//
13223	// Default: 1
13224	//
13225	// Valid values: 0-15
13226	PromotionTier *int64 `type:"integer"`
13227}
13228
13229// String returns the string representation.
13230//
13231// API parameter values that are decorated as "sensitive" in the API will not
13232// be included in the string output. The member name will be present, but the
13233// value will be replaced with "sensitive".
13234func (s ModifyDBInstanceInput) String() string {
13235	return awsutil.Prettify(s)
13236}
13237
13238// GoString returns the string representation.
13239//
13240// API parameter values that are decorated as "sensitive" in the API will not
13241// be included in the string output. The member name will be present, but the
13242// value will be replaced with "sensitive".
13243func (s ModifyDBInstanceInput) GoString() string {
13244	return s.String()
13245}
13246
13247// Validate inspects the fields of the type to determine if they are valid.
13248func (s *ModifyDBInstanceInput) Validate() error {
13249	invalidParams := request.ErrInvalidParams{Context: "ModifyDBInstanceInput"}
13250	if s.DBInstanceIdentifier == nil {
13251		invalidParams.Add(request.NewErrParamRequired("DBInstanceIdentifier"))
13252	}
13253
13254	if invalidParams.Len() > 0 {
13255		return invalidParams
13256	}
13257	return nil
13258}
13259
13260// SetApplyImmediately sets the ApplyImmediately field's value.
13261func (s *ModifyDBInstanceInput) SetApplyImmediately(v bool) *ModifyDBInstanceInput {
13262	s.ApplyImmediately = &v
13263	return s
13264}
13265
13266// SetAutoMinorVersionUpgrade sets the AutoMinorVersionUpgrade field's value.
13267func (s *ModifyDBInstanceInput) SetAutoMinorVersionUpgrade(v bool) *ModifyDBInstanceInput {
13268	s.AutoMinorVersionUpgrade = &v
13269	return s
13270}
13271
13272// SetCACertificateIdentifier sets the CACertificateIdentifier field's value.
13273func (s *ModifyDBInstanceInput) SetCACertificateIdentifier(v string) *ModifyDBInstanceInput {
13274	s.CACertificateIdentifier = &v
13275	return s
13276}
13277
13278// SetDBInstanceClass sets the DBInstanceClass field's value.
13279func (s *ModifyDBInstanceInput) SetDBInstanceClass(v string) *ModifyDBInstanceInput {
13280	s.DBInstanceClass = &v
13281	return s
13282}
13283
13284// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
13285func (s *ModifyDBInstanceInput) SetDBInstanceIdentifier(v string) *ModifyDBInstanceInput {
13286	s.DBInstanceIdentifier = &v
13287	return s
13288}
13289
13290// SetNewDBInstanceIdentifier sets the NewDBInstanceIdentifier field's value.
13291func (s *ModifyDBInstanceInput) SetNewDBInstanceIdentifier(v string) *ModifyDBInstanceInput {
13292	s.NewDBInstanceIdentifier = &v
13293	return s
13294}
13295
13296// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value.
13297func (s *ModifyDBInstanceInput) SetPreferredMaintenanceWindow(v string) *ModifyDBInstanceInput {
13298	s.PreferredMaintenanceWindow = &v
13299	return s
13300}
13301
13302// SetPromotionTier sets the PromotionTier field's value.
13303func (s *ModifyDBInstanceInput) SetPromotionTier(v int64) *ModifyDBInstanceInput {
13304	s.PromotionTier = &v
13305	return s
13306}
13307
13308type ModifyDBInstanceOutput struct {
13309	_ struct{} `type:"structure"`
13310
13311	// Detailed information about an instance.
13312	DBInstance *DBInstance `type:"structure"`
13313}
13314
13315// String returns the string representation.
13316//
13317// API parameter values that are decorated as "sensitive" in the API will not
13318// be included in the string output. The member name will be present, but the
13319// value will be replaced with "sensitive".
13320func (s ModifyDBInstanceOutput) String() string {
13321	return awsutil.Prettify(s)
13322}
13323
13324// GoString returns the string representation.
13325//
13326// API parameter values that are decorated as "sensitive" in the API will not
13327// be included in the string output. The member name will be present, but the
13328// value will be replaced with "sensitive".
13329func (s ModifyDBInstanceOutput) GoString() string {
13330	return s.String()
13331}
13332
13333// SetDBInstance sets the DBInstance field's value.
13334func (s *ModifyDBInstanceOutput) SetDBInstance(v *DBInstance) *ModifyDBInstanceOutput {
13335	s.DBInstance = v
13336	return s
13337}
13338
13339// Represents the input to ModifyDBSubnetGroup.
13340type ModifyDBSubnetGroupInput struct {
13341	_ struct{} `type:"structure"`
13342
13343	// The description for the subnet group.
13344	DBSubnetGroupDescription *string `type:"string"`
13345
13346	// The name for the subnet group. This value is stored as a lowercase string.
13347	// You can't modify the default subnet group.
13348	//
13349	// Constraints: Must match the name of an existing DBSubnetGroup. Must not be
13350	// default.
13351	//
13352	// Example: mySubnetgroup
13353	//
13354	// DBSubnetGroupName is a required field
13355	DBSubnetGroupName *string `type:"string" required:"true"`
13356
13357	// The Amazon EC2 subnet IDs for the subnet group.
13358	//
13359	// SubnetIds is a required field
13360	SubnetIds []*string `locationNameList:"SubnetIdentifier" type:"list" required:"true"`
13361}
13362
13363// String returns the string representation.
13364//
13365// API parameter values that are decorated as "sensitive" in the API will not
13366// be included in the string output. The member name will be present, but the
13367// value will be replaced with "sensitive".
13368func (s ModifyDBSubnetGroupInput) String() string {
13369	return awsutil.Prettify(s)
13370}
13371
13372// GoString returns the string representation.
13373//
13374// API parameter values that are decorated as "sensitive" in the API will not
13375// be included in the string output. The member name will be present, but the
13376// value will be replaced with "sensitive".
13377func (s ModifyDBSubnetGroupInput) GoString() string {
13378	return s.String()
13379}
13380
13381// Validate inspects the fields of the type to determine if they are valid.
13382func (s *ModifyDBSubnetGroupInput) Validate() error {
13383	invalidParams := request.ErrInvalidParams{Context: "ModifyDBSubnetGroupInput"}
13384	if s.DBSubnetGroupName == nil {
13385		invalidParams.Add(request.NewErrParamRequired("DBSubnetGroupName"))
13386	}
13387	if s.SubnetIds == nil {
13388		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
13389	}
13390
13391	if invalidParams.Len() > 0 {
13392		return invalidParams
13393	}
13394	return nil
13395}
13396
13397// SetDBSubnetGroupDescription sets the DBSubnetGroupDescription field's value.
13398func (s *ModifyDBSubnetGroupInput) SetDBSubnetGroupDescription(v string) *ModifyDBSubnetGroupInput {
13399	s.DBSubnetGroupDescription = &v
13400	return s
13401}
13402
13403// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
13404func (s *ModifyDBSubnetGroupInput) SetDBSubnetGroupName(v string) *ModifyDBSubnetGroupInput {
13405	s.DBSubnetGroupName = &v
13406	return s
13407}
13408
13409// SetSubnetIds sets the SubnetIds field's value.
13410func (s *ModifyDBSubnetGroupInput) SetSubnetIds(v []*string) *ModifyDBSubnetGroupInput {
13411	s.SubnetIds = v
13412	return s
13413}
13414
13415type ModifyDBSubnetGroupOutput struct {
13416	_ struct{} `type:"structure"`
13417
13418	// Detailed information about a subnet group.
13419	DBSubnetGroup *DBSubnetGroup `type:"structure"`
13420}
13421
13422// String returns the string representation.
13423//
13424// API parameter values that are decorated as "sensitive" in the API will not
13425// be included in the string output. The member name will be present, but the
13426// value will be replaced with "sensitive".
13427func (s ModifyDBSubnetGroupOutput) String() string {
13428	return awsutil.Prettify(s)
13429}
13430
13431// GoString returns the string representation.
13432//
13433// API parameter values that are decorated as "sensitive" in the API will not
13434// be included in the string output. The member name will be present, but the
13435// value will be replaced with "sensitive".
13436func (s ModifyDBSubnetGroupOutput) GoString() string {
13437	return s.String()
13438}
13439
13440// SetDBSubnetGroup sets the DBSubnetGroup field's value.
13441func (s *ModifyDBSubnetGroupOutput) SetDBSubnetGroup(v *DBSubnetGroup) *ModifyDBSubnetGroupOutput {
13442	s.DBSubnetGroup = v
13443	return s
13444}
13445
13446// Represents the input to ModifyEventSubscription.
13447type ModifyEventSubscriptionInput struct {
13448	_ struct{} `type:"structure"`
13449
13450	// A Boolean value; set to true to activate the subscription.
13451	Enabled *bool `type:"boolean"`
13452
13453	// A list of event categories for a SourceType that you want to subscribe to.
13454	EventCategories []*string `locationNameList:"EventCategory" type:"list"`
13455
13456	// The Amazon Resource Name (ARN) of the SNS topic created for event notification.
13457	// The ARN is created by Amazon SNS when you create a topic and subscribe to
13458	// it.
13459	SnsTopicArn *string `type:"string"`
13460
13461	// The type of source that is generating the events. For example, if you want
13462	// to be notified of events generated by an instance, set this parameter to
13463	// db-instance. If this value is not specified, all events are returned.
13464	//
13465	// Valid values: db-instance, db-parameter-group, db-security-group
13466	SourceType *string `type:"string"`
13467
13468	// The name of the Amazon DocumentDB event notification subscription.
13469	//
13470	// SubscriptionName is a required field
13471	SubscriptionName *string `type:"string" required:"true"`
13472}
13473
13474// String returns the string representation.
13475//
13476// API parameter values that are decorated as "sensitive" in the API will not
13477// be included in the string output. The member name will be present, but the
13478// value will be replaced with "sensitive".
13479func (s ModifyEventSubscriptionInput) String() string {
13480	return awsutil.Prettify(s)
13481}
13482
13483// GoString returns the string representation.
13484//
13485// API parameter values that are decorated as "sensitive" in the API will not
13486// be included in the string output. The member name will be present, but the
13487// value will be replaced with "sensitive".
13488func (s ModifyEventSubscriptionInput) GoString() string {
13489	return s.String()
13490}
13491
13492// Validate inspects the fields of the type to determine if they are valid.
13493func (s *ModifyEventSubscriptionInput) Validate() error {
13494	invalidParams := request.ErrInvalidParams{Context: "ModifyEventSubscriptionInput"}
13495	if s.SubscriptionName == nil {
13496		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
13497	}
13498
13499	if invalidParams.Len() > 0 {
13500		return invalidParams
13501	}
13502	return nil
13503}
13504
13505// SetEnabled sets the Enabled field's value.
13506func (s *ModifyEventSubscriptionInput) SetEnabled(v bool) *ModifyEventSubscriptionInput {
13507	s.Enabled = &v
13508	return s
13509}
13510
13511// SetEventCategories sets the EventCategories field's value.
13512func (s *ModifyEventSubscriptionInput) SetEventCategories(v []*string) *ModifyEventSubscriptionInput {
13513	s.EventCategories = v
13514	return s
13515}
13516
13517// SetSnsTopicArn sets the SnsTopicArn field's value.
13518func (s *ModifyEventSubscriptionInput) SetSnsTopicArn(v string) *ModifyEventSubscriptionInput {
13519	s.SnsTopicArn = &v
13520	return s
13521}
13522
13523// SetSourceType sets the SourceType field's value.
13524func (s *ModifyEventSubscriptionInput) SetSourceType(v string) *ModifyEventSubscriptionInput {
13525	s.SourceType = &v
13526	return s
13527}
13528
13529// SetSubscriptionName sets the SubscriptionName field's value.
13530func (s *ModifyEventSubscriptionInput) SetSubscriptionName(v string) *ModifyEventSubscriptionInput {
13531	s.SubscriptionName = &v
13532	return s
13533}
13534
13535type ModifyEventSubscriptionOutput struct {
13536	_ struct{} `type:"structure"`
13537
13538	// Detailed information about an event to which you have subscribed.
13539	EventSubscription *EventSubscription `type:"structure"`
13540}
13541
13542// String returns the string representation.
13543//
13544// API parameter values that are decorated as "sensitive" in the API will not
13545// be included in the string output. The member name will be present, but the
13546// value will be replaced with "sensitive".
13547func (s ModifyEventSubscriptionOutput) String() string {
13548	return awsutil.Prettify(s)
13549}
13550
13551// GoString returns the string representation.
13552//
13553// API parameter values that are decorated as "sensitive" in the API will not
13554// be included in the string output. The member name will be present, but the
13555// value will be replaced with "sensitive".
13556func (s ModifyEventSubscriptionOutput) GoString() string {
13557	return s.String()
13558}
13559
13560// SetEventSubscription sets the EventSubscription field's value.
13561func (s *ModifyEventSubscriptionOutput) SetEventSubscription(v *EventSubscription) *ModifyEventSubscriptionOutput {
13562	s.EventSubscription = v
13563	return s
13564}
13565
13566// Represents the input to ModifyGlobalCluster.
13567type ModifyGlobalClusterInput struct {
13568	_ struct{} `type:"structure"`
13569
13570	// Indicates if the global cluster has deletion protection enabled. The global
13571	// cluster can't be deleted when deletion protection is enabled.
13572	DeletionProtection *bool `type:"boolean"`
13573
13574	// The identifier for the global cluster being modified. This parameter isn't
13575	// case-sensitive.
13576	//
13577	// Constraints:
13578	//
13579	//    * Must match the identifier of an existing global cluster.
13580	//
13581	// GlobalClusterIdentifier is a required field
13582	GlobalClusterIdentifier *string `min:"1" type:"string" required:"true"`
13583
13584	// The new identifier for a global cluster when you modify a global cluster.
13585	// This value is stored as a lowercase string.
13586	//
13587	//    * Must contain from 1 to 63 letters, numbers, or hyphens The first character
13588	//    must be a letter Can't end with a hyphen or contain two consecutive hyphens
13589	//
13590	// Example: my-cluster2
13591	NewGlobalClusterIdentifier *string `min:"1" type:"string"`
13592}
13593
13594// String returns the string representation.
13595//
13596// API parameter values that are decorated as "sensitive" in the API will not
13597// be included in the string output. The member name will be present, but the
13598// value will be replaced with "sensitive".
13599func (s ModifyGlobalClusterInput) String() string {
13600	return awsutil.Prettify(s)
13601}
13602
13603// GoString returns the string representation.
13604//
13605// API parameter values that are decorated as "sensitive" in the API will not
13606// be included in the string output. The member name will be present, but the
13607// value will be replaced with "sensitive".
13608func (s ModifyGlobalClusterInput) GoString() string {
13609	return s.String()
13610}
13611
13612// Validate inspects the fields of the type to determine if they are valid.
13613func (s *ModifyGlobalClusterInput) Validate() error {
13614	invalidParams := request.ErrInvalidParams{Context: "ModifyGlobalClusterInput"}
13615	if s.GlobalClusterIdentifier == nil {
13616		invalidParams.Add(request.NewErrParamRequired("GlobalClusterIdentifier"))
13617	}
13618	if s.GlobalClusterIdentifier != nil && len(*s.GlobalClusterIdentifier) < 1 {
13619		invalidParams.Add(request.NewErrParamMinLen("GlobalClusterIdentifier", 1))
13620	}
13621	if s.NewGlobalClusterIdentifier != nil && len(*s.NewGlobalClusterIdentifier) < 1 {
13622		invalidParams.Add(request.NewErrParamMinLen("NewGlobalClusterIdentifier", 1))
13623	}
13624
13625	if invalidParams.Len() > 0 {
13626		return invalidParams
13627	}
13628	return nil
13629}
13630
13631// SetDeletionProtection sets the DeletionProtection field's value.
13632func (s *ModifyGlobalClusterInput) SetDeletionProtection(v bool) *ModifyGlobalClusterInput {
13633	s.DeletionProtection = &v
13634	return s
13635}
13636
13637// SetGlobalClusterIdentifier sets the GlobalClusterIdentifier field's value.
13638func (s *ModifyGlobalClusterInput) SetGlobalClusterIdentifier(v string) *ModifyGlobalClusterInput {
13639	s.GlobalClusterIdentifier = &v
13640	return s
13641}
13642
13643// SetNewGlobalClusterIdentifier sets the NewGlobalClusterIdentifier field's value.
13644func (s *ModifyGlobalClusterInput) SetNewGlobalClusterIdentifier(v string) *ModifyGlobalClusterInput {
13645	s.NewGlobalClusterIdentifier = &v
13646	return s
13647}
13648
13649type ModifyGlobalClusterOutput struct {
13650	_ struct{} `type:"structure"`
13651
13652	// A data type representing an Amazon DocumentDB global cluster.
13653	GlobalCluster *GlobalCluster `type:"structure"`
13654}
13655
13656// String returns the string representation.
13657//
13658// API parameter values that are decorated as "sensitive" in the API will not
13659// be included in the string output. The member name will be present, but the
13660// value will be replaced with "sensitive".
13661func (s ModifyGlobalClusterOutput) String() string {
13662	return awsutil.Prettify(s)
13663}
13664
13665// GoString returns the string representation.
13666//
13667// API parameter values that are decorated as "sensitive" in the API will not
13668// be included in the string output. The member name will be present, but the
13669// value will be replaced with "sensitive".
13670func (s ModifyGlobalClusterOutput) GoString() string {
13671	return s.String()
13672}
13673
13674// SetGlobalCluster sets the GlobalCluster field's value.
13675func (s *ModifyGlobalClusterOutput) SetGlobalCluster(v *GlobalCluster) *ModifyGlobalClusterOutput {
13676	s.GlobalCluster = v
13677	return s
13678}
13679
13680// The options that are available for an instance.
13681type OrderableDBInstanceOption struct {
13682	_ struct{} `type:"structure"`
13683
13684	// A list of Availability Zones for an instance.
13685	AvailabilityZones []*AvailabilityZone `locationNameList:"AvailabilityZone" type:"list"`
13686
13687	// The instance class for an instance.
13688	DBInstanceClass *string `type:"string"`
13689
13690	// The engine type of an instance.
13691	Engine *string `type:"string"`
13692
13693	// The engine version of an instance.
13694	EngineVersion *string `type:"string"`
13695
13696	// The license model for an instance.
13697	LicenseModel *string `type:"string"`
13698
13699	// Indicates whether an instance is in a virtual private cloud (VPC).
13700	Vpc *bool `type:"boolean"`
13701}
13702
13703// String returns the string representation.
13704//
13705// API parameter values that are decorated as "sensitive" in the API will not
13706// be included in the string output. The member name will be present, but the
13707// value will be replaced with "sensitive".
13708func (s OrderableDBInstanceOption) String() string {
13709	return awsutil.Prettify(s)
13710}
13711
13712// GoString returns the string representation.
13713//
13714// API parameter values that are decorated as "sensitive" in the API will not
13715// be included in the string output. The member name will be present, but the
13716// value will be replaced with "sensitive".
13717func (s OrderableDBInstanceOption) GoString() string {
13718	return s.String()
13719}
13720
13721// SetAvailabilityZones sets the AvailabilityZones field's value.
13722func (s *OrderableDBInstanceOption) SetAvailabilityZones(v []*AvailabilityZone) *OrderableDBInstanceOption {
13723	s.AvailabilityZones = v
13724	return s
13725}
13726
13727// SetDBInstanceClass sets the DBInstanceClass field's value.
13728func (s *OrderableDBInstanceOption) SetDBInstanceClass(v string) *OrderableDBInstanceOption {
13729	s.DBInstanceClass = &v
13730	return s
13731}
13732
13733// SetEngine sets the Engine field's value.
13734func (s *OrderableDBInstanceOption) SetEngine(v string) *OrderableDBInstanceOption {
13735	s.Engine = &v
13736	return s
13737}
13738
13739// SetEngineVersion sets the EngineVersion field's value.
13740func (s *OrderableDBInstanceOption) SetEngineVersion(v string) *OrderableDBInstanceOption {
13741	s.EngineVersion = &v
13742	return s
13743}
13744
13745// SetLicenseModel sets the LicenseModel field's value.
13746func (s *OrderableDBInstanceOption) SetLicenseModel(v string) *OrderableDBInstanceOption {
13747	s.LicenseModel = &v
13748	return s
13749}
13750
13751// SetVpc sets the Vpc field's value.
13752func (s *OrderableDBInstanceOption) SetVpc(v bool) *OrderableDBInstanceOption {
13753	s.Vpc = &v
13754	return s
13755}
13756
13757// Detailed information about an individual parameter.
13758type Parameter struct {
13759	_ struct{} `type:"structure"`
13760
13761	// Specifies the valid range of values for the parameter.
13762	AllowedValues *string `type:"string"`
13763
13764	// Indicates when to apply parameter updates.
13765	ApplyMethod *string `type:"string" enum:"ApplyMethod"`
13766
13767	// Specifies the engine-specific parameters type.
13768	ApplyType *string `type:"string"`
13769
13770	// Specifies the valid data type for the parameter.
13771	DataType *string `type:"string"`
13772
13773	// Provides a description of the parameter.
13774	Description *string `type:"string"`
13775
13776	// Indicates whether (true) or not (false) the parameter can be modified. Some
13777	// parameters have security or operational implications that prevent them from
13778	// being changed.
13779	IsModifiable *bool `type:"boolean"`
13780
13781	// The earliest engine version to which the parameter can apply.
13782	MinimumEngineVersion *string `type:"string"`
13783
13784	// Specifies the name of the parameter.
13785	ParameterName *string `type:"string"`
13786
13787	// Specifies the value of the parameter.
13788	ParameterValue *string `type:"string"`
13789
13790	// Indicates the source of the parameter value.
13791	Source *string `type:"string"`
13792}
13793
13794// String returns the string representation.
13795//
13796// API parameter values that are decorated as "sensitive" in the API will not
13797// be included in the string output. The member name will be present, but the
13798// value will be replaced with "sensitive".
13799func (s Parameter) String() string {
13800	return awsutil.Prettify(s)
13801}
13802
13803// GoString returns the string representation.
13804//
13805// API parameter values that are decorated as "sensitive" in the API will not
13806// be included in the string output. The member name will be present, but the
13807// value will be replaced with "sensitive".
13808func (s Parameter) GoString() string {
13809	return s.String()
13810}
13811
13812// SetAllowedValues sets the AllowedValues field's value.
13813func (s *Parameter) SetAllowedValues(v string) *Parameter {
13814	s.AllowedValues = &v
13815	return s
13816}
13817
13818// SetApplyMethod sets the ApplyMethod field's value.
13819func (s *Parameter) SetApplyMethod(v string) *Parameter {
13820	s.ApplyMethod = &v
13821	return s
13822}
13823
13824// SetApplyType sets the ApplyType field's value.
13825func (s *Parameter) SetApplyType(v string) *Parameter {
13826	s.ApplyType = &v
13827	return s
13828}
13829
13830// SetDataType sets the DataType field's value.
13831func (s *Parameter) SetDataType(v string) *Parameter {
13832	s.DataType = &v
13833	return s
13834}
13835
13836// SetDescription sets the Description field's value.
13837func (s *Parameter) SetDescription(v string) *Parameter {
13838	s.Description = &v
13839	return s
13840}
13841
13842// SetIsModifiable sets the IsModifiable field's value.
13843func (s *Parameter) SetIsModifiable(v bool) *Parameter {
13844	s.IsModifiable = &v
13845	return s
13846}
13847
13848// SetMinimumEngineVersion sets the MinimumEngineVersion field's value.
13849func (s *Parameter) SetMinimumEngineVersion(v string) *Parameter {
13850	s.MinimumEngineVersion = &v
13851	return s
13852}
13853
13854// SetParameterName sets the ParameterName field's value.
13855func (s *Parameter) SetParameterName(v string) *Parameter {
13856	s.ParameterName = &v
13857	return s
13858}
13859
13860// SetParameterValue sets the ParameterValue field's value.
13861func (s *Parameter) SetParameterValue(v string) *Parameter {
13862	s.ParameterValue = &v
13863	return s
13864}
13865
13866// SetSource sets the Source field's value.
13867func (s *Parameter) SetSource(v string) *Parameter {
13868	s.Source = &v
13869	return s
13870}
13871
13872// A list of the log types whose configuration is still pending. These log types
13873// are in the process of being activated or deactivated.
13874type PendingCloudwatchLogsExports struct {
13875	_ struct{} `type:"structure"`
13876
13877	// Log types that are in the process of being enabled. After they are enabled,
13878	// these log types are exported to Amazon CloudWatch Logs.
13879	LogTypesToDisable []*string `type:"list"`
13880
13881	// Log types that are in the process of being deactivated. After they are deactivated,
13882	// these log types aren't exported to CloudWatch Logs.
13883	LogTypesToEnable []*string `type:"list"`
13884}
13885
13886// String returns the string representation.
13887//
13888// API parameter values that are decorated as "sensitive" in the API will not
13889// be included in the string output. The member name will be present, but the
13890// value will be replaced with "sensitive".
13891func (s PendingCloudwatchLogsExports) String() string {
13892	return awsutil.Prettify(s)
13893}
13894
13895// GoString returns the string representation.
13896//
13897// API parameter values that are decorated as "sensitive" in the API will not
13898// be included in the string output. The member name will be present, but the
13899// value will be replaced with "sensitive".
13900func (s PendingCloudwatchLogsExports) GoString() string {
13901	return s.String()
13902}
13903
13904// SetLogTypesToDisable sets the LogTypesToDisable field's value.
13905func (s *PendingCloudwatchLogsExports) SetLogTypesToDisable(v []*string) *PendingCloudwatchLogsExports {
13906	s.LogTypesToDisable = v
13907	return s
13908}
13909
13910// SetLogTypesToEnable sets the LogTypesToEnable field's value.
13911func (s *PendingCloudwatchLogsExports) SetLogTypesToEnable(v []*string) *PendingCloudwatchLogsExports {
13912	s.LogTypesToEnable = v
13913	return s
13914}
13915
13916// Provides information about a pending maintenance action for a resource.
13917type PendingMaintenanceAction struct {
13918	_ struct{} `type:"structure"`
13919
13920	// The type of pending maintenance action that is available for the resource.
13921	Action *string `type:"string"`
13922
13923	// The date of the maintenance window when the action is applied. The maintenance
13924	// action is applied to the resource during its first maintenance window after
13925	// this date. If this date is specified, any next-maintenance opt-in requests
13926	// are ignored.
13927	AutoAppliedAfterDate *time.Time `type:"timestamp"`
13928
13929	// The effective date when the pending maintenance action is applied to the
13930	// resource.
13931	CurrentApplyDate *time.Time `type:"timestamp"`
13932
13933	// A description providing more detail about the maintenance action.
13934	Description *string `type:"string"`
13935
13936	// The date when the maintenance action is automatically applied. The maintenance
13937	// action is applied to the resource on this date regardless of the maintenance
13938	// window for the resource. If this date is specified, any immediate opt-in
13939	// requests are ignored.
13940	ForcedApplyDate *time.Time `type:"timestamp"`
13941
13942	// Indicates the type of opt-in request that has been received for the resource.
13943	OptInStatus *string `type:"string"`
13944}
13945
13946// String returns the string representation.
13947//
13948// API parameter values that are decorated as "sensitive" in the API will not
13949// be included in the string output. The member name will be present, but the
13950// value will be replaced with "sensitive".
13951func (s PendingMaintenanceAction) String() string {
13952	return awsutil.Prettify(s)
13953}
13954
13955// GoString returns the string representation.
13956//
13957// API parameter values that are decorated as "sensitive" in the API will not
13958// be included in the string output. The member name will be present, but the
13959// value will be replaced with "sensitive".
13960func (s PendingMaintenanceAction) GoString() string {
13961	return s.String()
13962}
13963
13964// SetAction sets the Action field's value.
13965func (s *PendingMaintenanceAction) SetAction(v string) *PendingMaintenanceAction {
13966	s.Action = &v
13967	return s
13968}
13969
13970// SetAutoAppliedAfterDate sets the AutoAppliedAfterDate field's value.
13971func (s *PendingMaintenanceAction) SetAutoAppliedAfterDate(v time.Time) *PendingMaintenanceAction {
13972	s.AutoAppliedAfterDate = &v
13973	return s
13974}
13975
13976// SetCurrentApplyDate sets the CurrentApplyDate field's value.
13977func (s *PendingMaintenanceAction) SetCurrentApplyDate(v time.Time) *PendingMaintenanceAction {
13978	s.CurrentApplyDate = &v
13979	return s
13980}
13981
13982// SetDescription sets the Description field's value.
13983func (s *PendingMaintenanceAction) SetDescription(v string) *PendingMaintenanceAction {
13984	s.Description = &v
13985	return s
13986}
13987
13988// SetForcedApplyDate sets the ForcedApplyDate field's value.
13989func (s *PendingMaintenanceAction) SetForcedApplyDate(v time.Time) *PendingMaintenanceAction {
13990	s.ForcedApplyDate = &v
13991	return s
13992}
13993
13994// SetOptInStatus sets the OptInStatus field's value.
13995func (s *PendingMaintenanceAction) SetOptInStatus(v string) *PendingMaintenanceAction {
13996	s.OptInStatus = &v
13997	return s
13998}
13999
14000// One or more modified settings for an instance. These modified settings have
14001// been requested, but haven't been applied yet.
14002type PendingModifiedValues struct {
14003	_ struct{} `type:"structure"`
14004
14005	// Contains the new AllocatedStorage size for then instance that will be applied
14006	// or is currently being applied.
14007	AllocatedStorage *int64 `type:"integer"`
14008
14009	// Specifies the pending number of days for which automated backups are retained.
14010	BackupRetentionPeriod *int64 `type:"integer"`
14011
14012	// Specifies the identifier of the certificate authority (CA) certificate for
14013	// the DB instance.
14014	CACertificateIdentifier *string `type:"string"`
14015
14016	// Contains the new DBInstanceClass for the instance that will be applied or
14017	// is currently being applied.
14018	DBInstanceClass *string `type:"string"`
14019
14020	// Contains the new DBInstanceIdentifier for the instance that will be applied
14021	// or is currently being applied.
14022	DBInstanceIdentifier *string `type:"string"`
14023
14024	// The new subnet group for the instance.
14025	DBSubnetGroupName *string `type:"string"`
14026
14027	// Indicates the database engine version.
14028	EngineVersion *string `type:"string"`
14029
14030	// Specifies the new Provisioned IOPS value for the instance that will be applied
14031	// or is currently being applied.
14032	Iops *int64 `type:"integer"`
14033
14034	// The license model for the instance.
14035	//
14036	// Valid values: license-included, bring-your-own-license, general-public-license
14037	LicenseModel *string `type:"string"`
14038
14039	// Contains the pending or currently in-progress change of the master credentials
14040	// for the instance.
14041	MasterUserPassword *string `type:"string"`
14042
14043	// Indicates that the Single-AZ instance is to change to a Multi-AZ deployment.
14044	MultiAZ *bool `type:"boolean"`
14045
14046	// A list of the log types whose configuration is still pending. These log types
14047	// are in the process of being activated or deactivated.
14048	PendingCloudwatchLogsExports *PendingCloudwatchLogsExports `type:"structure"`
14049
14050	// Specifies the pending port for the instance.
14051	Port *int64 `type:"integer"`
14052
14053	// Specifies the storage type to be associated with the instance.
14054	StorageType *string `type:"string"`
14055}
14056
14057// String returns the string representation.
14058//
14059// API parameter values that are decorated as "sensitive" in the API will not
14060// be included in the string output. The member name will be present, but the
14061// value will be replaced with "sensitive".
14062func (s PendingModifiedValues) String() string {
14063	return awsutil.Prettify(s)
14064}
14065
14066// GoString returns the string representation.
14067//
14068// API parameter values that are decorated as "sensitive" in the API will not
14069// be included in the string output. The member name will be present, but the
14070// value will be replaced with "sensitive".
14071func (s PendingModifiedValues) GoString() string {
14072	return s.String()
14073}
14074
14075// SetAllocatedStorage sets the AllocatedStorage field's value.
14076func (s *PendingModifiedValues) SetAllocatedStorage(v int64) *PendingModifiedValues {
14077	s.AllocatedStorage = &v
14078	return s
14079}
14080
14081// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value.
14082func (s *PendingModifiedValues) SetBackupRetentionPeriod(v int64) *PendingModifiedValues {
14083	s.BackupRetentionPeriod = &v
14084	return s
14085}
14086
14087// SetCACertificateIdentifier sets the CACertificateIdentifier field's value.
14088func (s *PendingModifiedValues) SetCACertificateIdentifier(v string) *PendingModifiedValues {
14089	s.CACertificateIdentifier = &v
14090	return s
14091}
14092
14093// SetDBInstanceClass sets the DBInstanceClass field's value.
14094func (s *PendingModifiedValues) SetDBInstanceClass(v string) *PendingModifiedValues {
14095	s.DBInstanceClass = &v
14096	return s
14097}
14098
14099// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
14100func (s *PendingModifiedValues) SetDBInstanceIdentifier(v string) *PendingModifiedValues {
14101	s.DBInstanceIdentifier = &v
14102	return s
14103}
14104
14105// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
14106func (s *PendingModifiedValues) SetDBSubnetGroupName(v string) *PendingModifiedValues {
14107	s.DBSubnetGroupName = &v
14108	return s
14109}
14110
14111// SetEngineVersion sets the EngineVersion field's value.
14112func (s *PendingModifiedValues) SetEngineVersion(v string) *PendingModifiedValues {
14113	s.EngineVersion = &v
14114	return s
14115}
14116
14117// SetIops sets the Iops field's value.
14118func (s *PendingModifiedValues) SetIops(v int64) *PendingModifiedValues {
14119	s.Iops = &v
14120	return s
14121}
14122
14123// SetLicenseModel sets the LicenseModel field's value.
14124func (s *PendingModifiedValues) SetLicenseModel(v string) *PendingModifiedValues {
14125	s.LicenseModel = &v
14126	return s
14127}
14128
14129// SetMasterUserPassword sets the MasterUserPassword field's value.
14130func (s *PendingModifiedValues) SetMasterUserPassword(v string) *PendingModifiedValues {
14131	s.MasterUserPassword = &v
14132	return s
14133}
14134
14135// SetMultiAZ sets the MultiAZ field's value.
14136func (s *PendingModifiedValues) SetMultiAZ(v bool) *PendingModifiedValues {
14137	s.MultiAZ = &v
14138	return s
14139}
14140
14141// SetPendingCloudwatchLogsExports sets the PendingCloudwatchLogsExports field's value.
14142func (s *PendingModifiedValues) SetPendingCloudwatchLogsExports(v *PendingCloudwatchLogsExports) *PendingModifiedValues {
14143	s.PendingCloudwatchLogsExports = v
14144	return s
14145}
14146
14147// SetPort sets the Port field's value.
14148func (s *PendingModifiedValues) SetPort(v int64) *PendingModifiedValues {
14149	s.Port = &v
14150	return s
14151}
14152
14153// SetStorageType sets the StorageType field's value.
14154func (s *PendingModifiedValues) SetStorageType(v string) *PendingModifiedValues {
14155	s.StorageType = &v
14156	return s
14157}
14158
14159// Represents the input to RebootDBInstance.
14160type RebootDBInstanceInput struct {
14161	_ struct{} `type:"structure"`
14162
14163	// The instance identifier. This parameter is stored as a lowercase string.
14164	//
14165	// Constraints:
14166	//
14167	//    * Must match the identifier of an existing DBInstance.
14168	//
14169	// DBInstanceIdentifier is a required field
14170	DBInstanceIdentifier *string `type:"string" required:"true"`
14171
14172	// When true, the reboot is conducted through a Multi-AZ failover.
14173	//
14174	// Constraint: You can't specify true if the instance is not configured for
14175	// Multi-AZ.
14176	ForceFailover *bool `type:"boolean"`
14177}
14178
14179// String returns the string representation.
14180//
14181// API parameter values that are decorated as "sensitive" in the API will not
14182// be included in the string output. The member name will be present, but the
14183// value will be replaced with "sensitive".
14184func (s RebootDBInstanceInput) String() string {
14185	return awsutil.Prettify(s)
14186}
14187
14188// GoString returns the string representation.
14189//
14190// API parameter values that are decorated as "sensitive" in the API will not
14191// be included in the string output. The member name will be present, but the
14192// value will be replaced with "sensitive".
14193func (s RebootDBInstanceInput) GoString() string {
14194	return s.String()
14195}
14196
14197// Validate inspects the fields of the type to determine if they are valid.
14198func (s *RebootDBInstanceInput) Validate() error {
14199	invalidParams := request.ErrInvalidParams{Context: "RebootDBInstanceInput"}
14200	if s.DBInstanceIdentifier == nil {
14201		invalidParams.Add(request.NewErrParamRequired("DBInstanceIdentifier"))
14202	}
14203
14204	if invalidParams.Len() > 0 {
14205		return invalidParams
14206	}
14207	return nil
14208}
14209
14210// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value.
14211func (s *RebootDBInstanceInput) SetDBInstanceIdentifier(v string) *RebootDBInstanceInput {
14212	s.DBInstanceIdentifier = &v
14213	return s
14214}
14215
14216// SetForceFailover sets the ForceFailover field's value.
14217func (s *RebootDBInstanceInput) SetForceFailover(v bool) *RebootDBInstanceInput {
14218	s.ForceFailover = &v
14219	return s
14220}
14221
14222type RebootDBInstanceOutput struct {
14223	_ struct{} `type:"structure"`
14224
14225	// Detailed information about an instance.
14226	DBInstance *DBInstance `type:"structure"`
14227}
14228
14229// String returns the string representation.
14230//
14231// API parameter values that are decorated as "sensitive" in the API will not
14232// be included in the string output. The member name will be present, but the
14233// value will be replaced with "sensitive".
14234func (s RebootDBInstanceOutput) String() string {
14235	return awsutil.Prettify(s)
14236}
14237
14238// GoString returns the string representation.
14239//
14240// API parameter values that are decorated as "sensitive" in the API will not
14241// be included in the string output. The member name will be present, but the
14242// value will be replaced with "sensitive".
14243func (s RebootDBInstanceOutput) GoString() string {
14244	return s.String()
14245}
14246
14247// SetDBInstance sets the DBInstance field's value.
14248func (s *RebootDBInstanceOutput) SetDBInstance(v *DBInstance) *RebootDBInstanceOutput {
14249	s.DBInstance = v
14250	return s
14251}
14252
14253// Represents the input to RemoveFromGlobalCluster.
14254type RemoveFromGlobalClusterInput struct {
14255	_ struct{} `type:"structure"`
14256
14257	// The Amazon Resource Name (ARN) identifying the cluster that was detached
14258	// from the Amazon DocumentDB global cluster.
14259	//
14260	// DbClusterIdentifier is a required field
14261	DbClusterIdentifier *string `type:"string" required:"true"`
14262
14263	// The cluster identifier to detach from the Amazon DocumentDB global cluster.
14264	//
14265	// GlobalClusterIdentifier is a required field
14266	GlobalClusterIdentifier *string `min:"1" type:"string" required:"true"`
14267}
14268
14269// String returns the string representation.
14270//
14271// API parameter values that are decorated as "sensitive" in the API will not
14272// be included in the string output. The member name will be present, but the
14273// value will be replaced with "sensitive".
14274func (s RemoveFromGlobalClusterInput) String() string {
14275	return awsutil.Prettify(s)
14276}
14277
14278// GoString returns the string representation.
14279//
14280// API parameter values that are decorated as "sensitive" in the API will not
14281// be included in the string output. The member name will be present, but the
14282// value will be replaced with "sensitive".
14283func (s RemoveFromGlobalClusterInput) GoString() string {
14284	return s.String()
14285}
14286
14287// Validate inspects the fields of the type to determine if they are valid.
14288func (s *RemoveFromGlobalClusterInput) Validate() error {
14289	invalidParams := request.ErrInvalidParams{Context: "RemoveFromGlobalClusterInput"}
14290	if s.DbClusterIdentifier == nil {
14291		invalidParams.Add(request.NewErrParamRequired("DbClusterIdentifier"))
14292	}
14293	if s.GlobalClusterIdentifier == nil {
14294		invalidParams.Add(request.NewErrParamRequired("GlobalClusterIdentifier"))
14295	}
14296	if s.GlobalClusterIdentifier != nil && len(*s.GlobalClusterIdentifier) < 1 {
14297		invalidParams.Add(request.NewErrParamMinLen("GlobalClusterIdentifier", 1))
14298	}
14299
14300	if invalidParams.Len() > 0 {
14301		return invalidParams
14302	}
14303	return nil
14304}
14305
14306// SetDbClusterIdentifier sets the DbClusterIdentifier field's value.
14307func (s *RemoveFromGlobalClusterInput) SetDbClusterIdentifier(v string) *RemoveFromGlobalClusterInput {
14308	s.DbClusterIdentifier = &v
14309	return s
14310}
14311
14312// SetGlobalClusterIdentifier sets the GlobalClusterIdentifier field's value.
14313func (s *RemoveFromGlobalClusterInput) SetGlobalClusterIdentifier(v string) *RemoveFromGlobalClusterInput {
14314	s.GlobalClusterIdentifier = &v
14315	return s
14316}
14317
14318type RemoveFromGlobalClusterOutput struct {
14319	_ struct{} `type:"structure"`
14320
14321	// A data type representing an Amazon DocumentDB global cluster.
14322	GlobalCluster *GlobalCluster `type:"structure"`
14323}
14324
14325// String returns the string representation.
14326//
14327// API parameter values that are decorated as "sensitive" in the API will not
14328// be included in the string output. The member name will be present, but the
14329// value will be replaced with "sensitive".
14330func (s RemoveFromGlobalClusterOutput) String() string {
14331	return awsutil.Prettify(s)
14332}
14333
14334// GoString returns the string representation.
14335//
14336// API parameter values that are decorated as "sensitive" in the API will not
14337// be included in the string output. The member name will be present, but the
14338// value will be replaced with "sensitive".
14339func (s RemoveFromGlobalClusterOutput) GoString() string {
14340	return s.String()
14341}
14342
14343// SetGlobalCluster sets the GlobalCluster field's value.
14344func (s *RemoveFromGlobalClusterOutput) SetGlobalCluster(v *GlobalCluster) *RemoveFromGlobalClusterOutput {
14345	s.GlobalCluster = v
14346	return s
14347}
14348
14349// Represents the input to RemoveSourceIdentifierFromSubscription.
14350type RemoveSourceIdentifierFromSubscriptionInput struct {
14351	_ struct{} `type:"structure"`
14352
14353	// The source identifier to be removed from the subscription, such as the instance
14354	// identifier for an instance, or the name of a security group.
14355	//
14356	// SourceIdentifier is a required field
14357	SourceIdentifier *string `type:"string" required:"true"`
14358
14359	// The name of the Amazon DocumentDB event notification subscription that you
14360	// want to remove a source identifier from.
14361	//
14362	// SubscriptionName is a required field
14363	SubscriptionName *string `type:"string" required:"true"`
14364}
14365
14366// String returns the string representation.
14367//
14368// API parameter values that are decorated as "sensitive" in the API will not
14369// be included in the string output. The member name will be present, but the
14370// value will be replaced with "sensitive".
14371func (s RemoveSourceIdentifierFromSubscriptionInput) String() string {
14372	return awsutil.Prettify(s)
14373}
14374
14375// GoString returns the string representation.
14376//
14377// API parameter values that are decorated as "sensitive" in the API will not
14378// be included in the string output. The member name will be present, but the
14379// value will be replaced with "sensitive".
14380func (s RemoveSourceIdentifierFromSubscriptionInput) GoString() string {
14381	return s.String()
14382}
14383
14384// Validate inspects the fields of the type to determine if they are valid.
14385func (s *RemoveSourceIdentifierFromSubscriptionInput) Validate() error {
14386	invalidParams := request.ErrInvalidParams{Context: "RemoveSourceIdentifierFromSubscriptionInput"}
14387	if s.SourceIdentifier == nil {
14388		invalidParams.Add(request.NewErrParamRequired("SourceIdentifier"))
14389	}
14390	if s.SubscriptionName == nil {
14391		invalidParams.Add(request.NewErrParamRequired("SubscriptionName"))
14392	}
14393
14394	if invalidParams.Len() > 0 {
14395		return invalidParams
14396	}
14397	return nil
14398}
14399
14400// SetSourceIdentifier sets the SourceIdentifier field's value.
14401func (s *RemoveSourceIdentifierFromSubscriptionInput) SetSourceIdentifier(v string) *RemoveSourceIdentifierFromSubscriptionInput {
14402	s.SourceIdentifier = &v
14403	return s
14404}
14405
14406// SetSubscriptionName sets the SubscriptionName field's value.
14407func (s *RemoveSourceIdentifierFromSubscriptionInput) SetSubscriptionName(v string) *RemoveSourceIdentifierFromSubscriptionInput {
14408	s.SubscriptionName = &v
14409	return s
14410}
14411
14412type RemoveSourceIdentifierFromSubscriptionOutput struct {
14413	_ struct{} `type:"structure"`
14414
14415	// Detailed information about an event to which you have subscribed.
14416	EventSubscription *EventSubscription `type:"structure"`
14417}
14418
14419// String returns the string representation.
14420//
14421// API parameter values that are decorated as "sensitive" in the API will not
14422// be included in the string output. The member name will be present, but the
14423// value will be replaced with "sensitive".
14424func (s RemoveSourceIdentifierFromSubscriptionOutput) String() string {
14425	return awsutil.Prettify(s)
14426}
14427
14428// GoString returns the string representation.
14429//
14430// API parameter values that are decorated as "sensitive" in the API will not
14431// be included in the string output. The member name will be present, but the
14432// value will be replaced with "sensitive".
14433func (s RemoveSourceIdentifierFromSubscriptionOutput) GoString() string {
14434	return s.String()
14435}
14436
14437// SetEventSubscription sets the EventSubscription field's value.
14438func (s *RemoveSourceIdentifierFromSubscriptionOutput) SetEventSubscription(v *EventSubscription) *RemoveSourceIdentifierFromSubscriptionOutput {
14439	s.EventSubscription = v
14440	return s
14441}
14442
14443// Represents the input to RemoveTagsFromResource.
14444type RemoveTagsFromResourceInput struct {
14445	_ struct{} `type:"structure"`
14446
14447	// The Amazon DocumentDB resource that the tags are removed from. This value
14448	// is an Amazon Resource Name (ARN).
14449	//
14450	// ResourceName is a required field
14451	ResourceName *string `type:"string" required:"true"`
14452
14453	// The tag key (name) of the tag to be removed.
14454	//
14455	// TagKeys is a required field
14456	TagKeys []*string `type:"list" required:"true"`
14457}
14458
14459// String returns the string representation.
14460//
14461// API parameter values that are decorated as "sensitive" in the API will not
14462// be included in the string output. The member name will be present, but the
14463// value will be replaced with "sensitive".
14464func (s RemoveTagsFromResourceInput) String() string {
14465	return awsutil.Prettify(s)
14466}
14467
14468// GoString returns the string representation.
14469//
14470// API parameter values that are decorated as "sensitive" in the API will not
14471// be included in the string output. The member name will be present, but the
14472// value will be replaced with "sensitive".
14473func (s RemoveTagsFromResourceInput) GoString() string {
14474	return s.String()
14475}
14476
14477// Validate inspects the fields of the type to determine if they are valid.
14478func (s *RemoveTagsFromResourceInput) Validate() error {
14479	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
14480	if s.ResourceName == nil {
14481		invalidParams.Add(request.NewErrParamRequired("ResourceName"))
14482	}
14483	if s.TagKeys == nil {
14484		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
14485	}
14486
14487	if invalidParams.Len() > 0 {
14488		return invalidParams
14489	}
14490	return nil
14491}
14492
14493// SetResourceName sets the ResourceName field's value.
14494func (s *RemoveTagsFromResourceInput) SetResourceName(v string) *RemoveTagsFromResourceInput {
14495	s.ResourceName = &v
14496	return s
14497}
14498
14499// SetTagKeys sets the TagKeys field's value.
14500func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
14501	s.TagKeys = v
14502	return s
14503}
14504
14505type RemoveTagsFromResourceOutput struct {
14506	_ struct{} `type:"structure"`
14507}
14508
14509// String returns the string representation.
14510//
14511// API parameter values that are decorated as "sensitive" in the API will not
14512// be included in the string output. The member name will be present, but the
14513// value will be replaced with "sensitive".
14514func (s RemoveTagsFromResourceOutput) String() string {
14515	return awsutil.Prettify(s)
14516}
14517
14518// GoString returns the string representation.
14519//
14520// API parameter values that are decorated as "sensitive" in the API will not
14521// be included in the string output. The member name will be present, but the
14522// value will be replaced with "sensitive".
14523func (s RemoveTagsFromResourceOutput) GoString() string {
14524	return s.String()
14525}
14526
14527// Represents the input to ResetDBClusterParameterGroup.
14528type ResetDBClusterParameterGroupInput struct {
14529	_ struct{} `type:"structure"`
14530
14531	// The name of the cluster parameter group to reset.
14532	//
14533	// DBClusterParameterGroupName is a required field
14534	DBClusterParameterGroupName *string `type:"string" required:"true"`
14535
14536	// A list of parameter names in the cluster parameter group to reset to the
14537	// default values. You can't use this parameter if the ResetAllParameters parameter
14538	// is set to true.
14539	Parameters []*Parameter `locationNameList:"Parameter" type:"list"`
14540
14541	// A value that is set to true to reset all parameters in the cluster parameter
14542	// group to their default values, and false otherwise. You can't use this parameter
14543	// if there is a list of parameter names specified for the Parameters parameter.
14544	ResetAllParameters *bool `type:"boolean"`
14545}
14546
14547// String returns the string representation.
14548//
14549// API parameter values that are decorated as "sensitive" in the API will not
14550// be included in the string output. The member name will be present, but the
14551// value will be replaced with "sensitive".
14552func (s ResetDBClusterParameterGroupInput) String() string {
14553	return awsutil.Prettify(s)
14554}
14555
14556// GoString returns the string representation.
14557//
14558// API parameter values that are decorated as "sensitive" in the API will not
14559// be included in the string output. The member name will be present, but the
14560// value will be replaced with "sensitive".
14561func (s ResetDBClusterParameterGroupInput) GoString() string {
14562	return s.String()
14563}
14564
14565// Validate inspects the fields of the type to determine if they are valid.
14566func (s *ResetDBClusterParameterGroupInput) Validate() error {
14567	invalidParams := request.ErrInvalidParams{Context: "ResetDBClusterParameterGroupInput"}
14568	if s.DBClusterParameterGroupName == nil {
14569		invalidParams.Add(request.NewErrParamRequired("DBClusterParameterGroupName"))
14570	}
14571
14572	if invalidParams.Len() > 0 {
14573		return invalidParams
14574	}
14575	return nil
14576}
14577
14578// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
14579func (s *ResetDBClusterParameterGroupInput) SetDBClusterParameterGroupName(v string) *ResetDBClusterParameterGroupInput {
14580	s.DBClusterParameterGroupName = &v
14581	return s
14582}
14583
14584// SetParameters sets the Parameters field's value.
14585func (s *ResetDBClusterParameterGroupInput) SetParameters(v []*Parameter) *ResetDBClusterParameterGroupInput {
14586	s.Parameters = v
14587	return s
14588}
14589
14590// SetResetAllParameters sets the ResetAllParameters field's value.
14591func (s *ResetDBClusterParameterGroupInput) SetResetAllParameters(v bool) *ResetDBClusterParameterGroupInput {
14592	s.ResetAllParameters = &v
14593	return s
14594}
14595
14596// Contains the name of a cluster parameter group.
14597type ResetDBClusterParameterGroupOutput struct {
14598	_ struct{} `type:"structure"`
14599
14600	// The name of a cluster parameter group.
14601	//
14602	// Constraints:
14603	//
14604	//    * Must be from 1 to 255 letters or numbers.
14605	//
14606	//    * The first character must be a letter.
14607	//
14608	//    * Cannot end with a hyphen or contain two consecutive hyphens.
14609	//
14610	// This value is stored as a lowercase string.
14611	DBClusterParameterGroupName *string `type:"string"`
14612}
14613
14614// String returns the string representation.
14615//
14616// API parameter values that are decorated as "sensitive" in the API will not
14617// be included in the string output. The member name will be present, but the
14618// value will be replaced with "sensitive".
14619func (s ResetDBClusterParameterGroupOutput) String() string {
14620	return awsutil.Prettify(s)
14621}
14622
14623// GoString returns the string representation.
14624//
14625// API parameter values that are decorated as "sensitive" in the API will not
14626// be included in the string output. The member name will be present, but the
14627// value will be replaced with "sensitive".
14628func (s ResetDBClusterParameterGroupOutput) GoString() string {
14629	return s.String()
14630}
14631
14632// SetDBClusterParameterGroupName sets the DBClusterParameterGroupName field's value.
14633func (s *ResetDBClusterParameterGroupOutput) SetDBClusterParameterGroupName(v string) *ResetDBClusterParameterGroupOutput {
14634	s.DBClusterParameterGroupName = &v
14635	return s
14636}
14637
14638// Represents the output of ApplyPendingMaintenanceAction.
14639type ResourcePendingMaintenanceActions struct {
14640	_ struct{} `type:"structure"`
14641
14642	// A list that provides details about the pending maintenance actions for the
14643	// resource.
14644	PendingMaintenanceActionDetails []*PendingMaintenanceAction `locationNameList:"PendingMaintenanceAction" type:"list"`
14645
14646	// The Amazon Resource Name (ARN) of the resource that has pending maintenance
14647	// actions.
14648	ResourceIdentifier *string `type:"string"`
14649}
14650
14651// String returns the string representation.
14652//
14653// API parameter values that are decorated as "sensitive" in the API will not
14654// be included in the string output. The member name will be present, but the
14655// value will be replaced with "sensitive".
14656func (s ResourcePendingMaintenanceActions) String() string {
14657	return awsutil.Prettify(s)
14658}
14659
14660// GoString returns the string representation.
14661//
14662// API parameter values that are decorated as "sensitive" in the API will not
14663// be included in the string output. The member name will be present, but the
14664// value will be replaced with "sensitive".
14665func (s ResourcePendingMaintenanceActions) GoString() string {
14666	return s.String()
14667}
14668
14669// SetPendingMaintenanceActionDetails sets the PendingMaintenanceActionDetails field's value.
14670func (s *ResourcePendingMaintenanceActions) SetPendingMaintenanceActionDetails(v []*PendingMaintenanceAction) *ResourcePendingMaintenanceActions {
14671	s.PendingMaintenanceActionDetails = v
14672	return s
14673}
14674
14675// SetResourceIdentifier sets the ResourceIdentifier field's value.
14676func (s *ResourcePendingMaintenanceActions) SetResourceIdentifier(v string) *ResourcePendingMaintenanceActions {
14677	s.ResourceIdentifier = &v
14678	return s
14679}
14680
14681// Represents the input to RestoreDBClusterFromSnapshot.
14682type RestoreDBClusterFromSnapshotInput struct {
14683	_ struct{} `type:"structure"`
14684
14685	// Provides the list of Amazon EC2 Availability Zones that instances in the
14686	// restored DB cluster can be created in.
14687	AvailabilityZones []*string `locationNameList:"AvailabilityZone" type:"list"`
14688
14689	// The name of the cluster to create from the snapshot or cluster snapshot.
14690	// This parameter isn't case sensitive.
14691	//
14692	// Constraints:
14693	//
14694	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
14695	//
14696	//    * The first character must be a letter.
14697	//
14698	//    * Cannot end with a hyphen or contain two consecutive hyphens.
14699	//
14700	// Example: my-snapshot-id
14701	//
14702	// DBClusterIdentifier is a required field
14703	DBClusterIdentifier *string `type:"string" required:"true"`
14704
14705	// The name of the subnet group to use for the new cluster.
14706	//
14707	// Constraints: If provided, must match the name of an existing DBSubnetGroup.
14708	//
14709	// Example: mySubnetgroup
14710	DBSubnetGroupName *string `type:"string"`
14711
14712	// Specifies whether this cluster can be deleted. If DeletionProtection is enabled,
14713	// the cluster cannot be deleted unless it is modified and DeletionProtection
14714	// is disabled. DeletionProtection protects clusters from being accidentally
14715	// deleted.
14716	DeletionProtection *bool `type:"boolean"`
14717
14718	// A list of log types that must be enabled for exporting to Amazon CloudWatch
14719	// Logs.
14720	EnableCloudwatchLogsExports []*string `type:"list"`
14721
14722	// The database engine to use for the new cluster.
14723	//
14724	// Default: The same as source.
14725	//
14726	// Constraint: Must be compatible with the engine of the source.
14727	//
14728	// Engine is a required field
14729	Engine *string `type:"string" required:"true"`
14730
14731	// The version of the database engine to use for the new cluster.
14732	EngineVersion *string `type:"string"`
14733
14734	// The KMS key identifier to use when restoring an encrypted cluster from a
14735	// DB snapshot or cluster snapshot.
14736	//
14737	// The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption
14738	// key. If you are restoring a cluster with the same account that owns the KMS
14739	// encryption key used to encrypt the new cluster, then you can use the KMS
14740	// key alias instead of the ARN for the KMS encryption key.
14741	//
14742	// If you do not specify a value for the KmsKeyId parameter, then the following
14743	// occurs:
14744	//
14745	//    * If the snapshot or cluster snapshot in SnapshotIdentifier is encrypted,
14746	//    then the restored cluster is encrypted using the KMS key that was used
14747	//    to encrypt the snapshot or the cluster snapshot.
14748	//
14749	//    * If the snapshot or the cluster snapshot in SnapshotIdentifier is not
14750	//    encrypted, then the restored DB cluster is not encrypted.
14751	KmsKeyId *string `type:"string"`
14752
14753	// The port number on which the new cluster accepts connections.
14754	//
14755	// Constraints: Must be a value from 1150 to 65535.
14756	//
14757	// Default: The same port as the original cluster.
14758	Port *int64 `type:"integer"`
14759
14760	// The identifier for the snapshot or cluster snapshot to restore from.
14761	//
14762	// You can use either the name or the Amazon Resource Name (ARN) to specify
14763	// a cluster snapshot. However, you can use only the ARN to specify a snapshot.
14764	//
14765	// Constraints:
14766	//
14767	//    * Must match the identifier of an existing snapshot.
14768	//
14769	// SnapshotIdentifier is a required field
14770	SnapshotIdentifier *string `type:"string" required:"true"`
14771
14772	// The tags to be assigned to the restored cluster.
14773	Tags []*Tag `locationNameList:"Tag" type:"list"`
14774
14775	// A list of virtual private cloud (VPC) security groups that the new cluster
14776	// will belong to.
14777	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
14778}
14779
14780// String returns the string representation.
14781//
14782// API parameter values that are decorated as "sensitive" in the API will not
14783// be included in the string output. The member name will be present, but the
14784// value will be replaced with "sensitive".
14785func (s RestoreDBClusterFromSnapshotInput) String() string {
14786	return awsutil.Prettify(s)
14787}
14788
14789// GoString returns the string representation.
14790//
14791// API parameter values that are decorated as "sensitive" in the API will not
14792// be included in the string output. The member name will be present, but the
14793// value will be replaced with "sensitive".
14794func (s RestoreDBClusterFromSnapshotInput) GoString() string {
14795	return s.String()
14796}
14797
14798// Validate inspects the fields of the type to determine if they are valid.
14799func (s *RestoreDBClusterFromSnapshotInput) Validate() error {
14800	invalidParams := request.ErrInvalidParams{Context: "RestoreDBClusterFromSnapshotInput"}
14801	if s.DBClusterIdentifier == nil {
14802		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
14803	}
14804	if s.Engine == nil {
14805		invalidParams.Add(request.NewErrParamRequired("Engine"))
14806	}
14807	if s.SnapshotIdentifier == nil {
14808		invalidParams.Add(request.NewErrParamRequired("SnapshotIdentifier"))
14809	}
14810
14811	if invalidParams.Len() > 0 {
14812		return invalidParams
14813	}
14814	return nil
14815}
14816
14817// SetAvailabilityZones sets the AvailabilityZones field's value.
14818func (s *RestoreDBClusterFromSnapshotInput) SetAvailabilityZones(v []*string) *RestoreDBClusterFromSnapshotInput {
14819	s.AvailabilityZones = v
14820	return s
14821}
14822
14823// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
14824func (s *RestoreDBClusterFromSnapshotInput) SetDBClusterIdentifier(v string) *RestoreDBClusterFromSnapshotInput {
14825	s.DBClusterIdentifier = &v
14826	return s
14827}
14828
14829// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
14830func (s *RestoreDBClusterFromSnapshotInput) SetDBSubnetGroupName(v string) *RestoreDBClusterFromSnapshotInput {
14831	s.DBSubnetGroupName = &v
14832	return s
14833}
14834
14835// SetDeletionProtection sets the DeletionProtection field's value.
14836func (s *RestoreDBClusterFromSnapshotInput) SetDeletionProtection(v bool) *RestoreDBClusterFromSnapshotInput {
14837	s.DeletionProtection = &v
14838	return s
14839}
14840
14841// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value.
14842func (s *RestoreDBClusterFromSnapshotInput) SetEnableCloudwatchLogsExports(v []*string) *RestoreDBClusterFromSnapshotInput {
14843	s.EnableCloudwatchLogsExports = v
14844	return s
14845}
14846
14847// SetEngine sets the Engine field's value.
14848func (s *RestoreDBClusterFromSnapshotInput) SetEngine(v string) *RestoreDBClusterFromSnapshotInput {
14849	s.Engine = &v
14850	return s
14851}
14852
14853// SetEngineVersion sets the EngineVersion field's value.
14854func (s *RestoreDBClusterFromSnapshotInput) SetEngineVersion(v string) *RestoreDBClusterFromSnapshotInput {
14855	s.EngineVersion = &v
14856	return s
14857}
14858
14859// SetKmsKeyId sets the KmsKeyId field's value.
14860func (s *RestoreDBClusterFromSnapshotInput) SetKmsKeyId(v string) *RestoreDBClusterFromSnapshotInput {
14861	s.KmsKeyId = &v
14862	return s
14863}
14864
14865// SetPort sets the Port field's value.
14866func (s *RestoreDBClusterFromSnapshotInput) SetPort(v int64) *RestoreDBClusterFromSnapshotInput {
14867	s.Port = &v
14868	return s
14869}
14870
14871// SetSnapshotIdentifier sets the SnapshotIdentifier field's value.
14872func (s *RestoreDBClusterFromSnapshotInput) SetSnapshotIdentifier(v string) *RestoreDBClusterFromSnapshotInput {
14873	s.SnapshotIdentifier = &v
14874	return s
14875}
14876
14877// SetTags sets the Tags field's value.
14878func (s *RestoreDBClusterFromSnapshotInput) SetTags(v []*Tag) *RestoreDBClusterFromSnapshotInput {
14879	s.Tags = v
14880	return s
14881}
14882
14883// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
14884func (s *RestoreDBClusterFromSnapshotInput) SetVpcSecurityGroupIds(v []*string) *RestoreDBClusterFromSnapshotInput {
14885	s.VpcSecurityGroupIds = v
14886	return s
14887}
14888
14889type RestoreDBClusterFromSnapshotOutput struct {
14890	_ struct{} `type:"structure"`
14891
14892	// Detailed information about a cluster.
14893	DBCluster *DBCluster `type:"structure"`
14894}
14895
14896// String returns the string representation.
14897//
14898// API parameter values that are decorated as "sensitive" in the API will not
14899// be included in the string output. The member name will be present, but the
14900// value will be replaced with "sensitive".
14901func (s RestoreDBClusterFromSnapshotOutput) String() string {
14902	return awsutil.Prettify(s)
14903}
14904
14905// GoString returns the string representation.
14906//
14907// API parameter values that are decorated as "sensitive" in the API will not
14908// be included in the string output. The member name will be present, but the
14909// value will be replaced with "sensitive".
14910func (s RestoreDBClusterFromSnapshotOutput) GoString() string {
14911	return s.String()
14912}
14913
14914// SetDBCluster sets the DBCluster field's value.
14915func (s *RestoreDBClusterFromSnapshotOutput) SetDBCluster(v *DBCluster) *RestoreDBClusterFromSnapshotOutput {
14916	s.DBCluster = v
14917	return s
14918}
14919
14920// Represents the input to RestoreDBClusterToPointInTime.
14921type RestoreDBClusterToPointInTimeInput struct {
14922	_ struct{} `type:"structure"`
14923
14924	// The name of the new cluster to be created.
14925	//
14926	// Constraints:
14927	//
14928	//    * Must contain from 1 to 63 letters, numbers, or hyphens.
14929	//
14930	//    * The first character must be a letter.
14931	//
14932	//    * Cannot end with a hyphen or contain two consecutive hyphens.
14933	//
14934	// DBClusterIdentifier is a required field
14935	DBClusterIdentifier *string `type:"string" required:"true"`
14936
14937	// The subnet group name to use for the new cluster.
14938	//
14939	// Constraints: If provided, must match the name of an existing DBSubnetGroup.
14940	//
14941	// Example: mySubnetgroup
14942	DBSubnetGroupName *string `type:"string"`
14943
14944	// Specifies whether this cluster can be deleted. If DeletionProtection is enabled,
14945	// the cluster cannot be deleted unless it is modified and DeletionProtection
14946	// is disabled. DeletionProtection protects clusters from being accidentally
14947	// deleted.
14948	DeletionProtection *bool `type:"boolean"`
14949
14950	// A list of log types that must be enabled for exporting to Amazon CloudWatch
14951	// Logs.
14952	EnableCloudwatchLogsExports []*string `type:"list"`
14953
14954	// The KMS key identifier to use when restoring an encrypted cluster from an
14955	// encrypted cluster.
14956	//
14957	// The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption
14958	// key. If you are restoring a cluster with the same account that owns the KMS
14959	// encryption key used to encrypt the new cluster, then you can use the KMS
14960	// key alias instead of the ARN for the KMS encryption key.
14961	//
14962	// You can restore to a new cluster and encrypt the new cluster with an KMS
14963	// key that is different from the KMS key used to encrypt the source cluster.
14964	// The new DB cluster is encrypted with the KMS key identified by the KmsKeyId
14965	// parameter.
14966	//
14967	// If you do not specify a value for the KmsKeyId parameter, then the following
14968	// occurs:
14969	//
14970	//    * If the cluster is encrypted, then the restored cluster is encrypted
14971	//    using the KMS key that was used to encrypt the source cluster.
14972	//
14973	//    * If the cluster is not encrypted, then the restored cluster is not encrypted.
14974	//
14975	// If DBClusterIdentifier refers to a cluster that is not encrypted, then the
14976	// restore request is rejected.
14977	KmsKeyId *string `type:"string"`
14978
14979	// The port number on which the new cluster accepts connections.
14980	//
14981	// Constraints: Must be a value from 1150 to 65535.
14982	//
14983	// Default: The default port for the engine.
14984	Port *int64 `type:"integer"`
14985
14986	// The date and time to restore the cluster to.
14987	//
14988	// Valid values: A time in Universal Coordinated Time (UTC) format.
14989	//
14990	// Constraints:
14991	//
14992	//    * Must be before the latest restorable time for the instance.
14993	//
14994	//    * Must be specified if the UseLatestRestorableTime parameter is not provided.
14995	//
14996	//    * Cannot be specified if the UseLatestRestorableTime parameter is true.
14997	//
14998	//    * Cannot be specified if the RestoreType parameter is copy-on-write.
14999	//
15000	// Example: 2015-03-07T23:45:00Z
15001	RestoreToTime *time.Time `type:"timestamp"`
15002
15003	// The identifier of the source cluster from which to restore.
15004	//
15005	// Constraints:
15006	//
15007	//    * Must match the identifier of an existing DBCluster.
15008	//
15009	// SourceDBClusterIdentifier is a required field
15010	SourceDBClusterIdentifier *string `type:"string" required:"true"`
15011
15012	// The tags to be assigned to the restored cluster.
15013	Tags []*Tag `locationNameList:"Tag" type:"list"`
15014
15015	// A value that is set to true to restore the cluster to the latest restorable
15016	// backup time, and false otherwise.
15017	//
15018	// Default: false
15019	//
15020	// Constraints: Cannot be specified if the RestoreToTime parameter is provided.
15021	UseLatestRestorableTime *bool `type:"boolean"`
15022
15023	// A list of VPC security groups that the new cluster belongs to.
15024	VpcSecurityGroupIds []*string `locationNameList:"VpcSecurityGroupId" type:"list"`
15025}
15026
15027// String returns the string representation.
15028//
15029// API parameter values that are decorated as "sensitive" in the API will not
15030// be included in the string output. The member name will be present, but the
15031// value will be replaced with "sensitive".
15032func (s RestoreDBClusterToPointInTimeInput) String() string {
15033	return awsutil.Prettify(s)
15034}
15035
15036// GoString returns the string representation.
15037//
15038// API parameter values that are decorated as "sensitive" in the API will not
15039// be included in the string output. The member name will be present, but the
15040// value will be replaced with "sensitive".
15041func (s RestoreDBClusterToPointInTimeInput) GoString() string {
15042	return s.String()
15043}
15044
15045// Validate inspects the fields of the type to determine if they are valid.
15046func (s *RestoreDBClusterToPointInTimeInput) Validate() error {
15047	invalidParams := request.ErrInvalidParams{Context: "RestoreDBClusterToPointInTimeInput"}
15048	if s.DBClusterIdentifier == nil {
15049		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
15050	}
15051	if s.SourceDBClusterIdentifier == nil {
15052		invalidParams.Add(request.NewErrParamRequired("SourceDBClusterIdentifier"))
15053	}
15054
15055	if invalidParams.Len() > 0 {
15056		return invalidParams
15057	}
15058	return nil
15059}
15060
15061// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
15062func (s *RestoreDBClusterToPointInTimeInput) SetDBClusterIdentifier(v string) *RestoreDBClusterToPointInTimeInput {
15063	s.DBClusterIdentifier = &v
15064	return s
15065}
15066
15067// SetDBSubnetGroupName sets the DBSubnetGroupName field's value.
15068func (s *RestoreDBClusterToPointInTimeInput) SetDBSubnetGroupName(v string) *RestoreDBClusterToPointInTimeInput {
15069	s.DBSubnetGroupName = &v
15070	return s
15071}
15072
15073// SetDeletionProtection sets the DeletionProtection field's value.
15074func (s *RestoreDBClusterToPointInTimeInput) SetDeletionProtection(v bool) *RestoreDBClusterToPointInTimeInput {
15075	s.DeletionProtection = &v
15076	return s
15077}
15078
15079// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value.
15080func (s *RestoreDBClusterToPointInTimeInput) SetEnableCloudwatchLogsExports(v []*string) *RestoreDBClusterToPointInTimeInput {
15081	s.EnableCloudwatchLogsExports = v
15082	return s
15083}
15084
15085// SetKmsKeyId sets the KmsKeyId field's value.
15086func (s *RestoreDBClusterToPointInTimeInput) SetKmsKeyId(v string) *RestoreDBClusterToPointInTimeInput {
15087	s.KmsKeyId = &v
15088	return s
15089}
15090
15091// SetPort sets the Port field's value.
15092func (s *RestoreDBClusterToPointInTimeInput) SetPort(v int64) *RestoreDBClusterToPointInTimeInput {
15093	s.Port = &v
15094	return s
15095}
15096
15097// SetRestoreToTime sets the RestoreToTime field's value.
15098func (s *RestoreDBClusterToPointInTimeInput) SetRestoreToTime(v time.Time) *RestoreDBClusterToPointInTimeInput {
15099	s.RestoreToTime = &v
15100	return s
15101}
15102
15103// SetSourceDBClusterIdentifier sets the SourceDBClusterIdentifier field's value.
15104func (s *RestoreDBClusterToPointInTimeInput) SetSourceDBClusterIdentifier(v string) *RestoreDBClusterToPointInTimeInput {
15105	s.SourceDBClusterIdentifier = &v
15106	return s
15107}
15108
15109// SetTags sets the Tags field's value.
15110func (s *RestoreDBClusterToPointInTimeInput) SetTags(v []*Tag) *RestoreDBClusterToPointInTimeInput {
15111	s.Tags = v
15112	return s
15113}
15114
15115// SetUseLatestRestorableTime sets the UseLatestRestorableTime field's value.
15116func (s *RestoreDBClusterToPointInTimeInput) SetUseLatestRestorableTime(v bool) *RestoreDBClusterToPointInTimeInput {
15117	s.UseLatestRestorableTime = &v
15118	return s
15119}
15120
15121// SetVpcSecurityGroupIds sets the VpcSecurityGroupIds field's value.
15122func (s *RestoreDBClusterToPointInTimeInput) SetVpcSecurityGroupIds(v []*string) *RestoreDBClusterToPointInTimeInput {
15123	s.VpcSecurityGroupIds = v
15124	return s
15125}
15126
15127type RestoreDBClusterToPointInTimeOutput struct {
15128	_ struct{} `type:"structure"`
15129
15130	// Detailed information about a cluster.
15131	DBCluster *DBCluster `type:"structure"`
15132}
15133
15134// String returns the string representation.
15135//
15136// API parameter values that are decorated as "sensitive" in the API will not
15137// be included in the string output. The member name will be present, but the
15138// value will be replaced with "sensitive".
15139func (s RestoreDBClusterToPointInTimeOutput) String() string {
15140	return awsutil.Prettify(s)
15141}
15142
15143// GoString returns the string representation.
15144//
15145// API parameter values that are decorated as "sensitive" in the API will not
15146// be included in the string output. The member name will be present, but the
15147// value will be replaced with "sensitive".
15148func (s RestoreDBClusterToPointInTimeOutput) GoString() string {
15149	return s.String()
15150}
15151
15152// SetDBCluster sets the DBCluster field's value.
15153func (s *RestoreDBClusterToPointInTimeOutput) SetDBCluster(v *DBCluster) *RestoreDBClusterToPointInTimeOutput {
15154	s.DBCluster = v
15155	return s
15156}
15157
15158type StartDBClusterInput struct {
15159	_ struct{} `type:"structure"`
15160
15161	// The identifier of the cluster to restart. Example: docdb-2019-05-28-15-24-52
15162	//
15163	// DBClusterIdentifier is a required field
15164	DBClusterIdentifier *string `type:"string" required:"true"`
15165}
15166
15167// String returns the string representation.
15168//
15169// API parameter values that are decorated as "sensitive" in the API will not
15170// be included in the string output. The member name will be present, but the
15171// value will be replaced with "sensitive".
15172func (s StartDBClusterInput) String() string {
15173	return awsutil.Prettify(s)
15174}
15175
15176// GoString returns the string representation.
15177//
15178// API parameter values that are decorated as "sensitive" in the API will not
15179// be included in the string output. The member name will be present, but the
15180// value will be replaced with "sensitive".
15181func (s StartDBClusterInput) GoString() string {
15182	return s.String()
15183}
15184
15185// Validate inspects the fields of the type to determine if they are valid.
15186func (s *StartDBClusterInput) Validate() error {
15187	invalidParams := request.ErrInvalidParams{Context: "StartDBClusterInput"}
15188	if s.DBClusterIdentifier == nil {
15189		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
15190	}
15191
15192	if invalidParams.Len() > 0 {
15193		return invalidParams
15194	}
15195	return nil
15196}
15197
15198// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
15199func (s *StartDBClusterInput) SetDBClusterIdentifier(v string) *StartDBClusterInput {
15200	s.DBClusterIdentifier = &v
15201	return s
15202}
15203
15204type StartDBClusterOutput struct {
15205	_ struct{} `type:"structure"`
15206
15207	// Detailed information about a cluster.
15208	DBCluster *DBCluster `type:"structure"`
15209}
15210
15211// String returns the string representation.
15212//
15213// API parameter values that are decorated as "sensitive" in the API will not
15214// be included in the string output. The member name will be present, but the
15215// value will be replaced with "sensitive".
15216func (s StartDBClusterOutput) String() string {
15217	return awsutil.Prettify(s)
15218}
15219
15220// GoString returns the string representation.
15221//
15222// API parameter values that are decorated as "sensitive" in the API will not
15223// be included in the string output. The member name will be present, but the
15224// value will be replaced with "sensitive".
15225func (s StartDBClusterOutput) GoString() string {
15226	return s.String()
15227}
15228
15229// SetDBCluster sets the DBCluster field's value.
15230func (s *StartDBClusterOutput) SetDBCluster(v *DBCluster) *StartDBClusterOutput {
15231	s.DBCluster = v
15232	return s
15233}
15234
15235type StopDBClusterInput struct {
15236	_ struct{} `type:"structure"`
15237
15238	// The identifier of the cluster to stop. Example: docdb-2019-05-28-15-24-52
15239	//
15240	// DBClusterIdentifier is a required field
15241	DBClusterIdentifier *string `type:"string" required:"true"`
15242}
15243
15244// String returns the string representation.
15245//
15246// API parameter values that are decorated as "sensitive" in the API will not
15247// be included in the string output. The member name will be present, but the
15248// value will be replaced with "sensitive".
15249func (s StopDBClusterInput) String() string {
15250	return awsutil.Prettify(s)
15251}
15252
15253// GoString returns the string representation.
15254//
15255// API parameter values that are decorated as "sensitive" in the API will not
15256// be included in the string output. The member name will be present, but the
15257// value will be replaced with "sensitive".
15258func (s StopDBClusterInput) GoString() string {
15259	return s.String()
15260}
15261
15262// Validate inspects the fields of the type to determine if they are valid.
15263func (s *StopDBClusterInput) Validate() error {
15264	invalidParams := request.ErrInvalidParams{Context: "StopDBClusterInput"}
15265	if s.DBClusterIdentifier == nil {
15266		invalidParams.Add(request.NewErrParamRequired("DBClusterIdentifier"))
15267	}
15268
15269	if invalidParams.Len() > 0 {
15270		return invalidParams
15271	}
15272	return nil
15273}
15274
15275// SetDBClusterIdentifier sets the DBClusterIdentifier field's value.
15276func (s *StopDBClusterInput) SetDBClusterIdentifier(v string) *StopDBClusterInput {
15277	s.DBClusterIdentifier = &v
15278	return s
15279}
15280
15281type StopDBClusterOutput struct {
15282	_ struct{} `type:"structure"`
15283
15284	// Detailed information about a cluster.
15285	DBCluster *DBCluster `type:"structure"`
15286}
15287
15288// String returns the string representation.
15289//
15290// API parameter values that are decorated as "sensitive" in the API will not
15291// be included in the string output. The member name will be present, but the
15292// value will be replaced with "sensitive".
15293func (s StopDBClusterOutput) String() string {
15294	return awsutil.Prettify(s)
15295}
15296
15297// GoString returns the string representation.
15298//
15299// API parameter values that are decorated as "sensitive" in the API will not
15300// be included in the string output. The member name will be present, but the
15301// value will be replaced with "sensitive".
15302func (s StopDBClusterOutput) GoString() string {
15303	return s.String()
15304}
15305
15306// SetDBCluster sets the DBCluster field's value.
15307func (s *StopDBClusterOutput) SetDBCluster(v *DBCluster) *StopDBClusterOutput {
15308	s.DBCluster = v
15309	return s
15310}
15311
15312// Detailed information about a subnet.
15313type Subnet struct {
15314	_ struct{} `type:"structure"`
15315
15316	// Specifies the Availability Zone for the subnet.
15317	SubnetAvailabilityZone *AvailabilityZone `type:"structure"`
15318
15319	// Specifies the identifier of the subnet.
15320	SubnetIdentifier *string `type:"string"`
15321
15322	// Specifies the status of the subnet.
15323	SubnetStatus *string `type:"string"`
15324}
15325
15326// String returns the string representation.
15327//
15328// API parameter values that are decorated as "sensitive" in the API will not
15329// be included in the string output. The member name will be present, but the
15330// value will be replaced with "sensitive".
15331func (s Subnet) String() string {
15332	return awsutil.Prettify(s)
15333}
15334
15335// GoString returns the string representation.
15336//
15337// API parameter values that are decorated as "sensitive" in the API will not
15338// be included in the string output. The member name will be present, but the
15339// value will be replaced with "sensitive".
15340func (s Subnet) GoString() string {
15341	return s.String()
15342}
15343
15344// SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value.
15345func (s *Subnet) SetSubnetAvailabilityZone(v *AvailabilityZone) *Subnet {
15346	s.SubnetAvailabilityZone = v
15347	return s
15348}
15349
15350// SetSubnetIdentifier sets the SubnetIdentifier field's value.
15351func (s *Subnet) SetSubnetIdentifier(v string) *Subnet {
15352	s.SubnetIdentifier = &v
15353	return s
15354}
15355
15356// SetSubnetStatus sets the SubnetStatus field's value.
15357func (s *Subnet) SetSubnetStatus(v string) *Subnet {
15358	s.SubnetStatus = &v
15359	return s
15360}
15361
15362// Metadata assigned to an Amazon DocumentDB resource consisting of a key-value
15363// pair.
15364type Tag struct {
15365	_ struct{} `type:"structure"`
15366
15367	// The required name of the tag. The string value can be from 1 to 128 Unicode
15368	// characters in length and can't be prefixed with "aws:" or "rds:". The string
15369	// can contain only the set of Unicode letters, digits, white space, '_', '.',
15370	// '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
15371	Key *string `type:"string"`
15372
15373	// The optional value of the tag. The string value can be from 1 to 256 Unicode
15374	// characters in length and can't be prefixed with "aws:" or "rds:". The string
15375	// can contain only the set of Unicode letters, digits, white space, '_', '.',
15376	// '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
15377	Value *string `type:"string"`
15378}
15379
15380// String returns the string representation.
15381//
15382// API parameter values that are decorated as "sensitive" in the API will not
15383// be included in the string output. The member name will be present, but the
15384// value will be replaced with "sensitive".
15385func (s Tag) String() string {
15386	return awsutil.Prettify(s)
15387}
15388
15389// GoString returns the string representation.
15390//
15391// API parameter values that are decorated as "sensitive" in the API will not
15392// be included in the string output. The member name will be present, but the
15393// value will be replaced with "sensitive".
15394func (s Tag) GoString() string {
15395	return s.String()
15396}
15397
15398// SetKey sets the Key field's value.
15399func (s *Tag) SetKey(v string) *Tag {
15400	s.Key = &v
15401	return s
15402}
15403
15404// SetValue sets the Value field's value.
15405func (s *Tag) SetValue(v string) *Tag {
15406	s.Value = &v
15407	return s
15408}
15409
15410// The version of the database engine that an instance can be upgraded to.
15411type UpgradeTarget struct {
15412	_ struct{} `type:"structure"`
15413
15414	// A value that indicates whether the target version is applied to any source
15415	// DB instances that have AutoMinorVersionUpgrade set to true.
15416	AutoUpgrade *bool `type:"boolean"`
15417
15418	// The version of the database engine that an instance can be upgraded to.
15419	Description *string `type:"string"`
15420
15421	// The name of the upgrade target database engine.
15422	Engine *string `type:"string"`
15423
15424	// The version number of the upgrade target database engine.
15425	EngineVersion *string `type:"string"`
15426
15427	// A value that indicates whether a database engine is upgraded to a major version.
15428	IsMajorVersionUpgrade *bool `type:"boolean"`
15429}
15430
15431// String returns the string representation.
15432//
15433// API parameter values that are decorated as "sensitive" in the API will not
15434// be included in the string output. The member name will be present, but the
15435// value will be replaced with "sensitive".
15436func (s UpgradeTarget) String() string {
15437	return awsutil.Prettify(s)
15438}
15439
15440// GoString returns the string representation.
15441//
15442// API parameter values that are decorated as "sensitive" in the API will not
15443// be included in the string output. The member name will be present, but the
15444// value will be replaced with "sensitive".
15445func (s UpgradeTarget) GoString() string {
15446	return s.String()
15447}
15448
15449// SetAutoUpgrade sets the AutoUpgrade field's value.
15450func (s *UpgradeTarget) SetAutoUpgrade(v bool) *UpgradeTarget {
15451	s.AutoUpgrade = &v
15452	return s
15453}
15454
15455// SetDescription sets the Description field's value.
15456func (s *UpgradeTarget) SetDescription(v string) *UpgradeTarget {
15457	s.Description = &v
15458	return s
15459}
15460
15461// SetEngine sets the Engine field's value.
15462func (s *UpgradeTarget) SetEngine(v string) *UpgradeTarget {
15463	s.Engine = &v
15464	return s
15465}
15466
15467// SetEngineVersion sets the EngineVersion field's value.
15468func (s *UpgradeTarget) SetEngineVersion(v string) *UpgradeTarget {
15469	s.EngineVersion = &v
15470	return s
15471}
15472
15473// SetIsMajorVersionUpgrade sets the IsMajorVersionUpgrade field's value.
15474func (s *UpgradeTarget) SetIsMajorVersionUpgrade(v bool) *UpgradeTarget {
15475	s.IsMajorVersionUpgrade = &v
15476	return s
15477}
15478
15479// Used as a response element for queries on virtual private cloud (VPC) security
15480// group membership.
15481type VpcSecurityGroupMembership struct {
15482	_ struct{} `type:"structure"`
15483
15484	// The status of the VPC security group.
15485	Status *string `type:"string"`
15486
15487	// The name of the VPC security group.
15488	VpcSecurityGroupId *string `type:"string"`
15489}
15490
15491// String returns the string representation.
15492//
15493// API parameter values that are decorated as "sensitive" in the API will not
15494// be included in the string output. The member name will be present, but the
15495// value will be replaced with "sensitive".
15496func (s VpcSecurityGroupMembership) String() string {
15497	return awsutil.Prettify(s)
15498}
15499
15500// GoString returns the string representation.
15501//
15502// API parameter values that are decorated as "sensitive" in the API will not
15503// be included in the string output. The member name will be present, but the
15504// value will be replaced with "sensitive".
15505func (s VpcSecurityGroupMembership) GoString() string {
15506	return s.String()
15507}
15508
15509// SetStatus sets the Status field's value.
15510func (s *VpcSecurityGroupMembership) SetStatus(v string) *VpcSecurityGroupMembership {
15511	s.Status = &v
15512	return s
15513}
15514
15515// SetVpcSecurityGroupId sets the VpcSecurityGroupId field's value.
15516func (s *VpcSecurityGroupMembership) SetVpcSecurityGroupId(v string) *VpcSecurityGroupMembership {
15517	s.VpcSecurityGroupId = &v
15518	return s
15519}
15520
15521const (
15522	// ApplyMethodImmediate is a ApplyMethod enum value
15523	ApplyMethodImmediate = "immediate"
15524
15525	// ApplyMethodPendingReboot is a ApplyMethod enum value
15526	ApplyMethodPendingReboot = "pending-reboot"
15527)
15528
15529// ApplyMethod_Values returns all elements of the ApplyMethod enum
15530func ApplyMethod_Values() []string {
15531	return []string{
15532		ApplyMethodImmediate,
15533		ApplyMethodPendingReboot,
15534	}
15535}
15536
15537const (
15538	// SourceTypeDbInstance is a SourceType enum value
15539	SourceTypeDbInstance = "db-instance"
15540
15541	// SourceTypeDbParameterGroup is a SourceType enum value
15542	SourceTypeDbParameterGroup = "db-parameter-group"
15543
15544	// SourceTypeDbSecurityGroup is a SourceType enum value
15545	SourceTypeDbSecurityGroup = "db-security-group"
15546
15547	// SourceTypeDbSnapshot is a SourceType enum value
15548	SourceTypeDbSnapshot = "db-snapshot"
15549
15550	// SourceTypeDbCluster is a SourceType enum value
15551	SourceTypeDbCluster = "db-cluster"
15552
15553	// SourceTypeDbClusterSnapshot is a SourceType enum value
15554	SourceTypeDbClusterSnapshot = "db-cluster-snapshot"
15555)
15556
15557// SourceType_Values returns all elements of the SourceType enum
15558func SourceType_Values() []string {
15559	return []string{
15560		SourceTypeDbInstance,
15561		SourceTypeDbParameterGroup,
15562		SourceTypeDbSecurityGroup,
15563		SourceTypeDbSnapshot,
15564		SourceTypeDbCluster,
15565		SourceTypeDbClusterSnapshot,
15566	}
15567}
15568