1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package directoryservice
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/jsonrpc"
14)
15
16const opAcceptSharedDirectory = "AcceptSharedDirectory"
17
18// AcceptSharedDirectoryRequest generates a "aws/request.Request" representing the
19// client's request for the AcceptSharedDirectory 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 AcceptSharedDirectory for more information on using the AcceptSharedDirectory
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 AcceptSharedDirectoryRequest method.
34//    req, resp := client.AcceptSharedDirectoryRequest(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/ds-2015-04-16/AcceptSharedDirectory
42func (c *DirectoryService) AcceptSharedDirectoryRequest(input *AcceptSharedDirectoryInput) (req *request.Request, output *AcceptSharedDirectoryOutput) {
43	op := &request.Operation{
44		Name:       opAcceptSharedDirectory,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AcceptSharedDirectoryInput{}
51	}
52
53	output = &AcceptSharedDirectoryOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AcceptSharedDirectory API operation for AWS Directory Service.
59//
60// Accepts a directory sharing request that was sent from the directory owner
61// account.
62//
63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64// with awserr.Error's Code and Message methods to get detailed information about
65// the error.
66//
67// See the AWS API reference guide for AWS Directory Service's
68// API operation AcceptSharedDirectory for usage and error information.
69//
70// Returned Error Types:
71//   * InvalidParameterException
72//   One or more parameters are not valid.
73//
74//   * EntityDoesNotExistException
75//   The specified entity could not be found.
76//
77//   * DirectoryAlreadySharedException
78//   The specified directory has already been shared with this AWS account.
79//
80//   * ClientException
81//   A client exception has occurred.
82//
83//   * ServiceException
84//   An exception has occurred in AWS Directory Service.
85//
86// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AcceptSharedDirectory
87func (c *DirectoryService) AcceptSharedDirectory(input *AcceptSharedDirectoryInput) (*AcceptSharedDirectoryOutput, error) {
88	req, out := c.AcceptSharedDirectoryRequest(input)
89	return out, req.Send()
90}
91
92// AcceptSharedDirectoryWithContext is the same as AcceptSharedDirectory with the addition of
93// the ability to pass a context and additional request options.
94//
95// See AcceptSharedDirectory for details on how to use this API operation.
96//
97// The context must be non-nil and will be used for request cancellation. If
98// the context is nil a panic will occur. In the future the SDK may create
99// sub-contexts for http.Requests. See https://golang.org/pkg/context/
100// for more information on using Contexts.
101func (c *DirectoryService) AcceptSharedDirectoryWithContext(ctx aws.Context, input *AcceptSharedDirectoryInput, opts ...request.Option) (*AcceptSharedDirectoryOutput, error) {
102	req, out := c.AcceptSharedDirectoryRequest(input)
103	req.SetContext(ctx)
104	req.ApplyOptions(opts...)
105	return out, req.Send()
106}
107
108const opAddIpRoutes = "AddIpRoutes"
109
110// AddIpRoutesRequest generates a "aws/request.Request" representing the
111// client's request for the AddIpRoutes operation. The "output" return
112// value will be populated with the request's response once the request completes
113// successfully.
114//
115// Use "Send" method on the returned Request to send the API call to the service.
116// the "output" return value is not valid until after Send returns without error.
117//
118// See AddIpRoutes for more information on using the AddIpRoutes
119// API call, and error handling.
120//
121// This method is useful when you want to inject custom logic or configuration
122// into the SDK's request lifecycle. Such as custom headers, or retry logic.
123//
124//
125//    // Example sending a request using the AddIpRoutesRequest method.
126//    req, resp := client.AddIpRoutesRequest(params)
127//
128//    err := req.Send()
129//    if err == nil { // resp is now filled
130//        fmt.Println(resp)
131//    }
132//
133// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutes
134func (c *DirectoryService) AddIpRoutesRequest(input *AddIpRoutesInput) (req *request.Request, output *AddIpRoutesOutput) {
135	op := &request.Operation{
136		Name:       opAddIpRoutes,
137		HTTPMethod: "POST",
138		HTTPPath:   "/",
139	}
140
141	if input == nil {
142		input = &AddIpRoutesInput{}
143	}
144
145	output = &AddIpRoutesOutput{}
146	req = c.newRequest(op, input, output)
147	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
148	return
149}
150
151// AddIpRoutes API operation for AWS Directory Service.
152//
153// If the DNS server for your on-premises domain uses a publicly addressable
154// IP address, you must add a CIDR address block to correctly route traffic
155// to and from your Microsoft AD on Amazon Web Services. AddIpRoutes adds this
156// address block. You can also use AddIpRoutes to facilitate routing traffic
157// that uses public IP ranges from your Microsoft AD on AWS to a peer VPC.
158//
159// Before you call AddIpRoutes, ensure that all of the required permissions
160// have been explicitly granted through a policy. For details about what permissions
161// are required to run the AddIpRoutes operation, see AWS Directory Service
162// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
163//
164// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
165// with awserr.Error's Code and Message methods to get detailed information about
166// the error.
167//
168// See the AWS API reference guide for AWS Directory Service's
169// API operation AddIpRoutes for usage and error information.
170//
171// Returned Error Types:
172//   * EntityDoesNotExistException
173//   The specified entity could not be found.
174//
175//   * EntityAlreadyExistsException
176//   The specified entity already exists.
177//
178//   * InvalidParameterException
179//   One or more parameters are not valid.
180//
181//   * DirectoryUnavailableException
182//   The specified directory is unavailable or could not be found.
183//
184//   * IpRouteLimitExceededException
185//   The maximum allowed number of IP addresses was exceeded. The default limit
186//   is 100 IP address blocks.
187//
188//   * ClientException
189//   A client exception has occurred.
190//
191//   * ServiceException
192//   An exception has occurred in AWS Directory Service.
193//
194// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutes
195func (c *DirectoryService) AddIpRoutes(input *AddIpRoutesInput) (*AddIpRoutesOutput, error) {
196	req, out := c.AddIpRoutesRequest(input)
197	return out, req.Send()
198}
199
200// AddIpRoutesWithContext is the same as AddIpRoutes with the addition of
201// the ability to pass a context and additional request options.
202//
203// See AddIpRoutes for details on how to use this API operation.
204//
205// The context must be non-nil and will be used for request cancellation. If
206// the context is nil a panic will occur. In the future the SDK may create
207// sub-contexts for http.Requests. See https://golang.org/pkg/context/
208// for more information on using Contexts.
209func (c *DirectoryService) AddIpRoutesWithContext(ctx aws.Context, input *AddIpRoutesInput, opts ...request.Option) (*AddIpRoutesOutput, error) {
210	req, out := c.AddIpRoutesRequest(input)
211	req.SetContext(ctx)
212	req.ApplyOptions(opts...)
213	return out, req.Send()
214}
215
216const opAddRegion = "AddRegion"
217
218// AddRegionRequest generates a "aws/request.Request" representing the
219// client's request for the AddRegion operation. The "output" return
220// value will be populated with the request's response once the request completes
221// successfully.
222//
223// Use "Send" method on the returned Request to send the API call to the service.
224// the "output" return value is not valid until after Send returns without error.
225//
226// See AddRegion for more information on using the AddRegion
227// API call, and error handling.
228//
229// This method is useful when you want to inject custom logic or configuration
230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
231//
232//
233//    // Example sending a request using the AddRegionRequest method.
234//    req, resp := client.AddRegionRequest(params)
235//
236//    err := req.Send()
237//    if err == nil { // resp is now filled
238//        fmt.Println(resp)
239//    }
240//
241// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddRegion
242func (c *DirectoryService) AddRegionRequest(input *AddRegionInput) (req *request.Request, output *AddRegionOutput) {
243	op := &request.Operation{
244		Name:       opAddRegion,
245		HTTPMethod: "POST",
246		HTTPPath:   "/",
247	}
248
249	if input == nil {
250		input = &AddRegionInput{}
251	}
252
253	output = &AddRegionOutput{}
254	req = c.newRequest(op, input, output)
255	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
256	return
257}
258
259// AddRegion API operation for AWS Directory Service.
260//
261// Adds two domain controllers in the specified Region for the specified directory.
262//
263// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
264// with awserr.Error's Code and Message methods to get detailed information about
265// the error.
266//
267// See the AWS API reference guide for AWS Directory Service's
268// API operation AddRegion for usage and error information.
269//
270// Returned Error Types:
271//   * DirectoryUnavailableException
272//   The specified directory is unavailable or could not be found.
273//
274//   * InvalidParameterException
275//   One or more parameters are not valid.
276//
277//   * EntityDoesNotExistException
278//   The specified entity could not be found.
279//
280//   * DirectoryAlreadyInRegionException
281//   The Region you specified is the same Region where the AWS Managed Microsoft
282//   AD directory was created. Specify a different Region and try again.
283//
284//   * UnsupportedOperationException
285//   The operation is not supported.
286//
287//   * DirectoryDoesNotExistException
288//   The specified directory does not exist in the system.
289//
290//   * RegionLimitExceededException
291//   You have reached the limit for maximum number of simultaneous Region replications
292//   per directory.
293//
294//   * AccessDeniedException
295//   Client authentication is not available in this region at this time.
296//
297//   * ClientException
298//   A client exception has occurred.
299//
300//   * ServiceException
301//   An exception has occurred in AWS Directory Service.
302//
303// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddRegion
304func (c *DirectoryService) AddRegion(input *AddRegionInput) (*AddRegionOutput, error) {
305	req, out := c.AddRegionRequest(input)
306	return out, req.Send()
307}
308
309// AddRegionWithContext is the same as AddRegion with the addition of
310// the ability to pass a context and additional request options.
311//
312// See AddRegion for details on how to use this API operation.
313//
314// The context must be non-nil and will be used for request cancellation. If
315// the context is nil a panic will occur. In the future the SDK may create
316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
317// for more information on using Contexts.
318func (c *DirectoryService) AddRegionWithContext(ctx aws.Context, input *AddRegionInput, opts ...request.Option) (*AddRegionOutput, error) {
319	req, out := c.AddRegionRequest(input)
320	req.SetContext(ctx)
321	req.ApplyOptions(opts...)
322	return out, req.Send()
323}
324
325const opAddTagsToResource = "AddTagsToResource"
326
327// AddTagsToResourceRequest generates a "aws/request.Request" representing the
328// client's request for the AddTagsToResource operation. The "output" return
329// value will be populated with the request's response once the request completes
330// successfully.
331//
332// Use "Send" method on the returned Request to send the API call to the service.
333// the "output" return value is not valid until after Send returns without error.
334//
335// See AddTagsToResource for more information on using the AddTagsToResource
336// API call, and error handling.
337//
338// This method is useful when you want to inject custom logic or configuration
339// into the SDK's request lifecycle. Such as custom headers, or retry logic.
340//
341//
342//    // Example sending a request using the AddTagsToResourceRequest method.
343//    req, resp := client.AddTagsToResourceRequest(params)
344//
345//    err := req.Send()
346//    if err == nil { // resp is now filled
347//        fmt.Println(resp)
348//    }
349//
350// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResource
351func (c *DirectoryService) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) {
352	op := &request.Operation{
353		Name:       opAddTagsToResource,
354		HTTPMethod: "POST",
355		HTTPPath:   "/",
356	}
357
358	if input == nil {
359		input = &AddTagsToResourceInput{}
360	}
361
362	output = &AddTagsToResourceOutput{}
363	req = c.newRequest(op, input, output)
364	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
365	return
366}
367
368// AddTagsToResource API operation for AWS Directory Service.
369//
370// Adds or overwrites one or more tags for the specified directory. Each directory
371// can have a maximum of 50 tags. Each tag consists of a key and optional value.
372// Tag keys must be unique to each resource.
373//
374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
375// with awserr.Error's Code and Message methods to get detailed information about
376// the error.
377//
378// See the AWS API reference guide for AWS Directory Service's
379// API operation AddTagsToResource for usage and error information.
380//
381// Returned Error Types:
382//   * EntityDoesNotExistException
383//   The specified entity could not be found.
384//
385//   * InvalidParameterException
386//   One or more parameters are not valid.
387//
388//   * TagLimitExceededException
389//   The maximum allowed number of tags was exceeded.
390//
391//   * ClientException
392//   A client exception has occurred.
393//
394//   * ServiceException
395//   An exception has occurred in AWS Directory Service.
396//
397// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResource
398func (c *DirectoryService) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) {
399	req, out := c.AddTagsToResourceRequest(input)
400	return out, req.Send()
401}
402
403// AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of
404// the ability to pass a context and additional request options.
405//
406// See AddTagsToResource for details on how to use this API operation.
407//
408// The context must be non-nil and will be used for request cancellation. If
409// the context is nil a panic will occur. In the future the SDK may create
410// sub-contexts for http.Requests. See https://golang.org/pkg/context/
411// for more information on using Contexts.
412func (c *DirectoryService) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) {
413	req, out := c.AddTagsToResourceRequest(input)
414	req.SetContext(ctx)
415	req.ApplyOptions(opts...)
416	return out, req.Send()
417}
418
419const opCancelSchemaExtension = "CancelSchemaExtension"
420
421// CancelSchemaExtensionRequest generates a "aws/request.Request" representing the
422// client's request for the CancelSchemaExtension operation. The "output" return
423// value will be populated with the request's response once the request completes
424// successfully.
425//
426// Use "Send" method on the returned Request to send the API call to the service.
427// the "output" return value is not valid until after Send returns without error.
428//
429// See CancelSchemaExtension for more information on using the CancelSchemaExtension
430// API call, and error handling.
431//
432// This method is useful when you want to inject custom logic or configuration
433// into the SDK's request lifecycle. Such as custom headers, or retry logic.
434//
435//
436//    // Example sending a request using the CancelSchemaExtensionRequest method.
437//    req, resp := client.CancelSchemaExtensionRequest(params)
438//
439//    err := req.Send()
440//    if err == nil { // resp is now filled
441//        fmt.Println(resp)
442//    }
443//
444// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtension
445func (c *DirectoryService) CancelSchemaExtensionRequest(input *CancelSchemaExtensionInput) (req *request.Request, output *CancelSchemaExtensionOutput) {
446	op := &request.Operation{
447		Name:       opCancelSchemaExtension,
448		HTTPMethod: "POST",
449		HTTPPath:   "/",
450	}
451
452	if input == nil {
453		input = &CancelSchemaExtensionInput{}
454	}
455
456	output = &CancelSchemaExtensionOutput{}
457	req = c.newRequest(op, input, output)
458	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
459	return
460}
461
462// CancelSchemaExtension API operation for AWS Directory Service.
463//
464// Cancels an in-progress schema extension to a Microsoft AD directory. Once
465// a schema extension has started replicating to all domain controllers, the
466// task can no longer be canceled. A schema extension can be canceled during
467// any of the following states; Initializing, CreatingSnapshot, and UpdatingSchema.
468//
469// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
470// with awserr.Error's Code and Message methods to get detailed information about
471// the error.
472//
473// See the AWS API reference guide for AWS Directory Service's
474// API operation CancelSchemaExtension for usage and error information.
475//
476// Returned Error Types:
477//   * EntityDoesNotExistException
478//   The specified entity could not be found.
479//
480//   * ClientException
481//   A client exception has occurred.
482//
483//   * ServiceException
484//   An exception has occurred in AWS Directory Service.
485//
486// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtension
487func (c *DirectoryService) CancelSchemaExtension(input *CancelSchemaExtensionInput) (*CancelSchemaExtensionOutput, error) {
488	req, out := c.CancelSchemaExtensionRequest(input)
489	return out, req.Send()
490}
491
492// CancelSchemaExtensionWithContext is the same as CancelSchemaExtension with the addition of
493// the ability to pass a context and additional request options.
494//
495// See CancelSchemaExtension for details on how to use this API operation.
496//
497// The context must be non-nil and will be used for request cancellation. If
498// the context is nil a panic will occur. In the future the SDK may create
499// sub-contexts for http.Requests. See https://golang.org/pkg/context/
500// for more information on using Contexts.
501func (c *DirectoryService) CancelSchemaExtensionWithContext(ctx aws.Context, input *CancelSchemaExtensionInput, opts ...request.Option) (*CancelSchemaExtensionOutput, error) {
502	req, out := c.CancelSchemaExtensionRequest(input)
503	req.SetContext(ctx)
504	req.ApplyOptions(opts...)
505	return out, req.Send()
506}
507
508const opConnectDirectory = "ConnectDirectory"
509
510// ConnectDirectoryRequest generates a "aws/request.Request" representing the
511// client's request for the ConnectDirectory operation. The "output" return
512// value will be populated with the request's response once the request completes
513// successfully.
514//
515// Use "Send" method on the returned Request to send the API call to the service.
516// the "output" return value is not valid until after Send returns without error.
517//
518// See ConnectDirectory for more information on using the ConnectDirectory
519// API call, and error handling.
520//
521// This method is useful when you want to inject custom logic or configuration
522// into the SDK's request lifecycle. Such as custom headers, or retry logic.
523//
524//
525//    // Example sending a request using the ConnectDirectoryRequest method.
526//    req, resp := client.ConnectDirectoryRequest(params)
527//
528//    err := req.Send()
529//    if err == nil { // resp is now filled
530//        fmt.Println(resp)
531//    }
532//
533// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectory
534func (c *DirectoryService) ConnectDirectoryRequest(input *ConnectDirectoryInput) (req *request.Request, output *ConnectDirectoryOutput) {
535	op := &request.Operation{
536		Name:       opConnectDirectory,
537		HTTPMethod: "POST",
538		HTTPPath:   "/",
539	}
540
541	if input == nil {
542		input = &ConnectDirectoryInput{}
543	}
544
545	output = &ConnectDirectoryOutput{}
546	req = c.newRequest(op, input, output)
547	return
548}
549
550// ConnectDirectory API operation for AWS Directory Service.
551//
552// Creates an AD Connector to connect to an on-premises directory.
553//
554// Before you call ConnectDirectory, ensure that all of the required permissions
555// have been explicitly granted through a policy. For details about what permissions
556// are required to run the ConnectDirectory operation, see AWS Directory Service
557// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
558//
559// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
560// with awserr.Error's Code and Message methods to get detailed information about
561// the error.
562//
563// See the AWS API reference guide for AWS Directory Service's
564// API operation ConnectDirectory for usage and error information.
565//
566// Returned Error Types:
567//   * DirectoryLimitExceededException
568//   The maximum number of directories in the region has been reached. You can
569//   use the GetDirectoryLimits operation to determine your directory limits in
570//   the region.
571//
572//   * InvalidParameterException
573//   One or more parameters are not valid.
574//
575//   * ClientException
576//   A client exception has occurred.
577//
578//   * ServiceException
579//   An exception has occurred in AWS Directory Service.
580//
581// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectory
582func (c *DirectoryService) ConnectDirectory(input *ConnectDirectoryInput) (*ConnectDirectoryOutput, error) {
583	req, out := c.ConnectDirectoryRequest(input)
584	return out, req.Send()
585}
586
587// ConnectDirectoryWithContext is the same as ConnectDirectory with the addition of
588// the ability to pass a context and additional request options.
589//
590// See ConnectDirectory for details on how to use this API operation.
591//
592// The context must be non-nil and will be used for request cancellation. If
593// the context is nil a panic will occur. In the future the SDK may create
594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
595// for more information on using Contexts.
596func (c *DirectoryService) ConnectDirectoryWithContext(ctx aws.Context, input *ConnectDirectoryInput, opts ...request.Option) (*ConnectDirectoryOutput, error) {
597	req, out := c.ConnectDirectoryRequest(input)
598	req.SetContext(ctx)
599	req.ApplyOptions(opts...)
600	return out, req.Send()
601}
602
603const opCreateAlias = "CreateAlias"
604
605// CreateAliasRequest generates a "aws/request.Request" representing the
606// client's request for the CreateAlias operation. The "output" return
607// value will be populated with the request's response once the request completes
608// successfully.
609//
610// Use "Send" method on the returned Request to send the API call to the service.
611// the "output" return value is not valid until after Send returns without error.
612//
613// See CreateAlias for more information on using the CreateAlias
614// API call, and error handling.
615//
616// This method is useful when you want to inject custom logic or configuration
617// into the SDK's request lifecycle. Such as custom headers, or retry logic.
618//
619//
620//    // Example sending a request using the CreateAliasRequest method.
621//    req, resp := client.CreateAliasRequest(params)
622//
623//    err := req.Send()
624//    if err == nil { // resp is now filled
625//        fmt.Println(resp)
626//    }
627//
628// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAlias
629func (c *DirectoryService) CreateAliasRequest(input *CreateAliasInput) (req *request.Request, output *CreateAliasOutput) {
630	op := &request.Operation{
631		Name:       opCreateAlias,
632		HTTPMethod: "POST",
633		HTTPPath:   "/",
634	}
635
636	if input == nil {
637		input = &CreateAliasInput{}
638	}
639
640	output = &CreateAliasOutput{}
641	req = c.newRequest(op, input, output)
642	return
643}
644
645// CreateAlias API operation for AWS Directory Service.
646//
647// Creates an alias for a directory and assigns the alias to the directory.
648// The alias is used to construct the access URL for the directory, such as
649// http://<alias>.awsapps.com.
650//
651// After an alias has been created, it cannot be deleted or reused, so this
652// operation should only be used when absolutely necessary.
653//
654// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
655// with awserr.Error's Code and Message methods to get detailed information about
656// the error.
657//
658// See the AWS API reference guide for AWS Directory Service's
659// API operation CreateAlias for usage and error information.
660//
661// Returned Error Types:
662//   * EntityAlreadyExistsException
663//   The specified entity already exists.
664//
665//   * EntityDoesNotExistException
666//   The specified entity could not be found.
667//
668//   * InvalidParameterException
669//   One or more parameters are not valid.
670//
671//   * ClientException
672//   A client exception has occurred.
673//
674//   * ServiceException
675//   An exception has occurred in AWS Directory Service.
676//
677// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAlias
678func (c *DirectoryService) CreateAlias(input *CreateAliasInput) (*CreateAliasOutput, error) {
679	req, out := c.CreateAliasRequest(input)
680	return out, req.Send()
681}
682
683// CreateAliasWithContext is the same as CreateAlias with the addition of
684// the ability to pass a context and additional request options.
685//
686// See CreateAlias for details on how to use this API operation.
687//
688// The context must be non-nil and will be used for request cancellation. If
689// the context is nil a panic will occur. In the future the SDK may create
690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
691// for more information on using Contexts.
692func (c *DirectoryService) CreateAliasWithContext(ctx aws.Context, input *CreateAliasInput, opts ...request.Option) (*CreateAliasOutput, error) {
693	req, out := c.CreateAliasRequest(input)
694	req.SetContext(ctx)
695	req.ApplyOptions(opts...)
696	return out, req.Send()
697}
698
699const opCreateComputer = "CreateComputer"
700
701// CreateComputerRequest generates a "aws/request.Request" representing the
702// client's request for the CreateComputer operation. The "output" return
703// value will be populated with the request's response once the request completes
704// successfully.
705//
706// Use "Send" method on the returned Request to send the API call to the service.
707// the "output" return value is not valid until after Send returns without error.
708//
709// See CreateComputer for more information on using the CreateComputer
710// API call, and error handling.
711//
712// This method is useful when you want to inject custom logic or configuration
713// into the SDK's request lifecycle. Such as custom headers, or retry logic.
714//
715//
716//    // Example sending a request using the CreateComputerRequest method.
717//    req, resp := client.CreateComputerRequest(params)
718//
719//    err := req.Send()
720//    if err == nil { // resp is now filled
721//        fmt.Println(resp)
722//    }
723//
724// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputer
725func (c *DirectoryService) CreateComputerRequest(input *CreateComputerInput) (req *request.Request, output *CreateComputerOutput) {
726	op := &request.Operation{
727		Name:       opCreateComputer,
728		HTTPMethod: "POST",
729		HTTPPath:   "/",
730	}
731
732	if input == nil {
733		input = &CreateComputerInput{}
734	}
735
736	output = &CreateComputerOutput{}
737	req = c.newRequest(op, input, output)
738	return
739}
740
741// CreateComputer API operation for AWS Directory Service.
742//
743// Creates an Active Directory computer object in the specified directory.
744//
745// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
746// with awserr.Error's Code and Message methods to get detailed information about
747// the error.
748//
749// See the AWS API reference guide for AWS Directory Service's
750// API operation CreateComputer for usage and error information.
751//
752// Returned Error Types:
753//   * AuthenticationFailedException
754//   An authentication error occurred.
755//
756//   * DirectoryUnavailableException
757//   The specified directory is unavailable or could not be found.
758//
759//   * EntityAlreadyExistsException
760//   The specified entity already exists.
761//
762//   * EntityDoesNotExistException
763//   The specified entity could not be found.
764//
765//   * InvalidParameterException
766//   One or more parameters are not valid.
767//
768//   * UnsupportedOperationException
769//   The operation is not supported.
770//
771//   * ClientException
772//   A client exception has occurred.
773//
774//   * ServiceException
775//   An exception has occurred in AWS Directory Service.
776//
777// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputer
778func (c *DirectoryService) CreateComputer(input *CreateComputerInput) (*CreateComputerOutput, error) {
779	req, out := c.CreateComputerRequest(input)
780	return out, req.Send()
781}
782
783// CreateComputerWithContext is the same as CreateComputer with the addition of
784// the ability to pass a context and additional request options.
785//
786// See CreateComputer for details on how to use this API operation.
787//
788// The context must be non-nil and will be used for request cancellation. If
789// the context is nil a panic will occur. In the future the SDK may create
790// sub-contexts for http.Requests. See https://golang.org/pkg/context/
791// for more information on using Contexts.
792func (c *DirectoryService) CreateComputerWithContext(ctx aws.Context, input *CreateComputerInput, opts ...request.Option) (*CreateComputerOutput, error) {
793	req, out := c.CreateComputerRequest(input)
794	req.SetContext(ctx)
795	req.ApplyOptions(opts...)
796	return out, req.Send()
797}
798
799const opCreateConditionalForwarder = "CreateConditionalForwarder"
800
801// CreateConditionalForwarderRequest generates a "aws/request.Request" representing the
802// client's request for the CreateConditionalForwarder operation. The "output" return
803// value will be populated with the request's response once the request completes
804// successfully.
805//
806// Use "Send" method on the returned Request to send the API call to the service.
807// the "output" return value is not valid until after Send returns without error.
808//
809// See CreateConditionalForwarder for more information on using the CreateConditionalForwarder
810// API call, and error handling.
811//
812// This method is useful when you want to inject custom logic or configuration
813// into the SDK's request lifecycle. Such as custom headers, or retry logic.
814//
815//
816//    // Example sending a request using the CreateConditionalForwarderRequest method.
817//    req, resp := client.CreateConditionalForwarderRequest(params)
818//
819//    err := req.Send()
820//    if err == nil { // resp is now filled
821//        fmt.Println(resp)
822//    }
823//
824// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarder
825func (c *DirectoryService) CreateConditionalForwarderRequest(input *CreateConditionalForwarderInput) (req *request.Request, output *CreateConditionalForwarderOutput) {
826	op := &request.Operation{
827		Name:       opCreateConditionalForwarder,
828		HTTPMethod: "POST",
829		HTTPPath:   "/",
830	}
831
832	if input == nil {
833		input = &CreateConditionalForwarderInput{}
834	}
835
836	output = &CreateConditionalForwarderOutput{}
837	req = c.newRequest(op, input, output)
838	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
839	return
840}
841
842// CreateConditionalForwarder API operation for AWS Directory Service.
843//
844// Creates a conditional forwarder associated with your AWS directory. Conditional
845// forwarders are required in order to set up a trust relationship with another
846// domain. The conditional forwarder points to the trusted domain.
847//
848// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
849// with awserr.Error's Code and Message methods to get detailed information about
850// the error.
851//
852// See the AWS API reference guide for AWS Directory Service's
853// API operation CreateConditionalForwarder for usage and error information.
854//
855// Returned Error Types:
856//   * EntityAlreadyExistsException
857//   The specified entity already exists.
858//
859//   * EntityDoesNotExistException
860//   The specified entity could not be found.
861//
862//   * DirectoryUnavailableException
863//   The specified directory is unavailable or could not be found.
864//
865//   * InvalidParameterException
866//   One or more parameters are not valid.
867//
868//   * UnsupportedOperationException
869//   The operation is not supported.
870//
871//   * ClientException
872//   A client exception has occurred.
873//
874//   * ServiceException
875//   An exception has occurred in AWS Directory Service.
876//
877// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarder
878func (c *DirectoryService) CreateConditionalForwarder(input *CreateConditionalForwarderInput) (*CreateConditionalForwarderOutput, error) {
879	req, out := c.CreateConditionalForwarderRequest(input)
880	return out, req.Send()
881}
882
883// CreateConditionalForwarderWithContext is the same as CreateConditionalForwarder with the addition of
884// the ability to pass a context and additional request options.
885//
886// See CreateConditionalForwarder for details on how to use this API operation.
887//
888// The context must be non-nil and will be used for request cancellation. If
889// the context is nil a panic will occur. In the future the SDK may create
890// sub-contexts for http.Requests. See https://golang.org/pkg/context/
891// for more information on using Contexts.
892func (c *DirectoryService) CreateConditionalForwarderWithContext(ctx aws.Context, input *CreateConditionalForwarderInput, opts ...request.Option) (*CreateConditionalForwarderOutput, error) {
893	req, out := c.CreateConditionalForwarderRequest(input)
894	req.SetContext(ctx)
895	req.ApplyOptions(opts...)
896	return out, req.Send()
897}
898
899const opCreateDirectory = "CreateDirectory"
900
901// CreateDirectoryRequest generates a "aws/request.Request" representing the
902// client's request for the CreateDirectory operation. The "output" return
903// value will be populated with the request's response once the request completes
904// successfully.
905//
906// Use "Send" method on the returned Request to send the API call to the service.
907// the "output" return value is not valid until after Send returns without error.
908//
909// See CreateDirectory for more information on using the CreateDirectory
910// API call, and error handling.
911//
912// This method is useful when you want to inject custom logic or configuration
913// into the SDK's request lifecycle. Such as custom headers, or retry logic.
914//
915//
916//    // Example sending a request using the CreateDirectoryRequest method.
917//    req, resp := client.CreateDirectoryRequest(params)
918//
919//    err := req.Send()
920//    if err == nil { // resp is now filled
921//        fmt.Println(resp)
922//    }
923//
924// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory
925func (c *DirectoryService) CreateDirectoryRequest(input *CreateDirectoryInput) (req *request.Request, output *CreateDirectoryOutput) {
926	op := &request.Operation{
927		Name:       opCreateDirectory,
928		HTTPMethod: "POST",
929		HTTPPath:   "/",
930	}
931
932	if input == nil {
933		input = &CreateDirectoryInput{}
934	}
935
936	output = &CreateDirectoryOutput{}
937	req = c.newRequest(op, input, output)
938	return
939}
940
941// CreateDirectory API operation for AWS Directory Service.
942//
943// Creates a Simple AD directory. For more information, see Simple Active Directory
944// (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html)
945// in the AWS Directory Service Admin Guide.
946//
947// Before you call CreateDirectory, ensure that all of the required permissions
948// have been explicitly granted through a policy. For details about what permissions
949// are required to run the CreateDirectory operation, see AWS Directory Service
950// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
951//
952// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
953// with awserr.Error's Code and Message methods to get detailed information about
954// the error.
955//
956// See the AWS API reference guide for AWS Directory Service's
957// API operation CreateDirectory for usage and error information.
958//
959// Returned Error Types:
960//   * DirectoryLimitExceededException
961//   The maximum number of directories in the region has been reached. You can
962//   use the GetDirectoryLimits operation to determine your directory limits in
963//   the region.
964//
965//   * InvalidParameterException
966//   One or more parameters are not valid.
967//
968//   * ClientException
969//   A client exception has occurred.
970//
971//   * ServiceException
972//   An exception has occurred in AWS Directory Service.
973//
974// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory
975func (c *DirectoryService) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
976	req, out := c.CreateDirectoryRequest(input)
977	return out, req.Send()
978}
979
980// CreateDirectoryWithContext is the same as CreateDirectory with the addition of
981// the ability to pass a context and additional request options.
982//
983// See CreateDirectory for details on how to use this API operation.
984//
985// The context must be non-nil and will be used for request cancellation. If
986// the context is nil a panic will occur. In the future the SDK may create
987// sub-contexts for http.Requests. See https://golang.org/pkg/context/
988// for more information on using Contexts.
989func (c *DirectoryService) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
990	req, out := c.CreateDirectoryRequest(input)
991	req.SetContext(ctx)
992	req.ApplyOptions(opts...)
993	return out, req.Send()
994}
995
996const opCreateLogSubscription = "CreateLogSubscription"
997
998// CreateLogSubscriptionRequest generates a "aws/request.Request" representing the
999// client's request for the CreateLogSubscription operation. The "output" return
1000// value will be populated with the request's response once the request completes
1001// successfully.
1002//
1003// Use "Send" method on the returned Request to send the API call to the service.
1004// the "output" return value is not valid until after Send returns without error.
1005//
1006// See CreateLogSubscription for more information on using the CreateLogSubscription
1007// API call, and error handling.
1008//
1009// This method is useful when you want to inject custom logic or configuration
1010// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1011//
1012//
1013//    // Example sending a request using the CreateLogSubscriptionRequest method.
1014//    req, resp := client.CreateLogSubscriptionRequest(params)
1015//
1016//    err := req.Send()
1017//    if err == nil { // resp is now filled
1018//        fmt.Println(resp)
1019//    }
1020//
1021// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
1022func (c *DirectoryService) CreateLogSubscriptionRequest(input *CreateLogSubscriptionInput) (req *request.Request, output *CreateLogSubscriptionOutput) {
1023	op := &request.Operation{
1024		Name:       opCreateLogSubscription,
1025		HTTPMethod: "POST",
1026		HTTPPath:   "/",
1027	}
1028
1029	if input == nil {
1030		input = &CreateLogSubscriptionInput{}
1031	}
1032
1033	output = &CreateLogSubscriptionOutput{}
1034	req = c.newRequest(op, input, output)
1035	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1036	return
1037}
1038
1039// CreateLogSubscription API operation for AWS Directory Service.
1040//
1041// Creates a subscription to forward real-time Directory Service domain controller
1042// security logs to the specified Amazon CloudWatch log group in your AWS account.
1043//
1044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1045// with awserr.Error's Code and Message methods to get detailed information about
1046// the error.
1047//
1048// See the AWS API reference guide for AWS Directory Service's
1049// API operation CreateLogSubscription for usage and error information.
1050//
1051// Returned Error Types:
1052//   * EntityAlreadyExistsException
1053//   The specified entity already exists.
1054//
1055//   * EntityDoesNotExistException
1056//   The specified entity could not be found.
1057//
1058//   * UnsupportedOperationException
1059//   The operation is not supported.
1060//
1061//   * InsufficientPermissionsException
1062//   The account does not have sufficient permission to perform the operation.
1063//
1064//   * ClientException
1065//   A client exception has occurred.
1066//
1067//   * ServiceException
1068//   An exception has occurred in AWS Directory Service.
1069//
1070// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
1071func (c *DirectoryService) CreateLogSubscription(input *CreateLogSubscriptionInput) (*CreateLogSubscriptionOutput, error) {
1072	req, out := c.CreateLogSubscriptionRequest(input)
1073	return out, req.Send()
1074}
1075
1076// CreateLogSubscriptionWithContext is the same as CreateLogSubscription with the addition of
1077// the ability to pass a context and additional request options.
1078//
1079// See CreateLogSubscription for details on how to use this API operation.
1080//
1081// The context must be non-nil and will be used for request cancellation. If
1082// the context is nil a panic will occur. In the future the SDK may create
1083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1084// for more information on using Contexts.
1085func (c *DirectoryService) CreateLogSubscriptionWithContext(ctx aws.Context, input *CreateLogSubscriptionInput, opts ...request.Option) (*CreateLogSubscriptionOutput, error) {
1086	req, out := c.CreateLogSubscriptionRequest(input)
1087	req.SetContext(ctx)
1088	req.ApplyOptions(opts...)
1089	return out, req.Send()
1090}
1091
1092const opCreateMicrosoftAD = "CreateMicrosoftAD"
1093
1094// CreateMicrosoftADRequest generates a "aws/request.Request" representing the
1095// client's request for the CreateMicrosoftAD operation. The "output" return
1096// value will be populated with the request's response once the request completes
1097// successfully.
1098//
1099// Use "Send" method on the returned Request to send the API call to the service.
1100// the "output" return value is not valid until after Send returns without error.
1101//
1102// See CreateMicrosoftAD for more information on using the CreateMicrosoftAD
1103// API call, and error handling.
1104//
1105// This method is useful when you want to inject custom logic or configuration
1106// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1107//
1108//
1109//    // Example sending a request using the CreateMicrosoftADRequest method.
1110//    req, resp := client.CreateMicrosoftADRequest(params)
1111//
1112//    err := req.Send()
1113//    if err == nil { // resp is now filled
1114//        fmt.Println(resp)
1115//    }
1116//
1117// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1118func (c *DirectoryService) CreateMicrosoftADRequest(input *CreateMicrosoftADInput) (req *request.Request, output *CreateMicrosoftADOutput) {
1119	op := &request.Operation{
1120		Name:       opCreateMicrosoftAD,
1121		HTTPMethod: "POST",
1122		HTTPPath:   "/",
1123	}
1124
1125	if input == nil {
1126		input = &CreateMicrosoftADInput{}
1127	}
1128
1129	output = &CreateMicrosoftADOutput{}
1130	req = c.newRequest(op, input, output)
1131	return
1132}
1133
1134// CreateMicrosoftAD API operation for AWS Directory Service.
1135//
1136// Creates a Microsoft AD directory in the AWS Cloud. For more information,
1137// see AWS Managed Microsoft AD (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)
1138// in the AWS Directory Service Admin Guide.
1139//
1140// Before you call CreateMicrosoftAD, ensure that all of the required permissions
1141// have been explicitly granted through a policy. For details about what permissions
1142// are required to run the CreateMicrosoftAD operation, see AWS Directory Service
1143// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1144//
1145// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1146// with awserr.Error's Code and Message methods to get detailed information about
1147// the error.
1148//
1149// See the AWS API reference guide for AWS Directory Service's
1150// API operation CreateMicrosoftAD for usage and error information.
1151//
1152// Returned Error Types:
1153//   * DirectoryLimitExceededException
1154//   The maximum number of directories in the region has been reached. You can
1155//   use the GetDirectoryLimits operation to determine your directory limits in
1156//   the region.
1157//
1158//   * InvalidParameterException
1159//   One or more parameters are not valid.
1160//
1161//   * ClientException
1162//   A client exception has occurred.
1163//
1164//   * ServiceException
1165//   An exception has occurred in AWS Directory Service.
1166//
1167//   * UnsupportedOperationException
1168//   The operation is not supported.
1169//
1170// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1171func (c *DirectoryService) CreateMicrosoftAD(input *CreateMicrosoftADInput) (*CreateMicrosoftADOutput, error) {
1172	req, out := c.CreateMicrosoftADRequest(input)
1173	return out, req.Send()
1174}
1175
1176// CreateMicrosoftADWithContext is the same as CreateMicrosoftAD with the addition of
1177// the ability to pass a context and additional request options.
1178//
1179// See CreateMicrosoftAD for details on how to use this API operation.
1180//
1181// The context must be non-nil and will be used for request cancellation. If
1182// the context is nil a panic will occur. In the future the SDK may create
1183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1184// for more information on using Contexts.
1185func (c *DirectoryService) CreateMicrosoftADWithContext(ctx aws.Context, input *CreateMicrosoftADInput, opts ...request.Option) (*CreateMicrosoftADOutput, error) {
1186	req, out := c.CreateMicrosoftADRequest(input)
1187	req.SetContext(ctx)
1188	req.ApplyOptions(opts...)
1189	return out, req.Send()
1190}
1191
1192const opCreateSnapshot = "CreateSnapshot"
1193
1194// CreateSnapshotRequest generates a "aws/request.Request" representing the
1195// client's request for the CreateSnapshot operation. The "output" return
1196// value will be populated with the request's response once the request completes
1197// successfully.
1198//
1199// Use "Send" method on the returned Request to send the API call to the service.
1200// the "output" return value is not valid until after Send returns without error.
1201//
1202// See CreateSnapshot for more information on using the CreateSnapshot
1203// API call, and error handling.
1204//
1205// This method is useful when you want to inject custom logic or configuration
1206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1207//
1208//
1209//    // Example sending a request using the CreateSnapshotRequest method.
1210//    req, resp := client.CreateSnapshotRequest(params)
1211//
1212//    err := req.Send()
1213//    if err == nil { // resp is now filled
1214//        fmt.Println(resp)
1215//    }
1216//
1217// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1218func (c *DirectoryService) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
1219	op := &request.Operation{
1220		Name:       opCreateSnapshot,
1221		HTTPMethod: "POST",
1222		HTTPPath:   "/",
1223	}
1224
1225	if input == nil {
1226		input = &CreateSnapshotInput{}
1227	}
1228
1229	output = &CreateSnapshotOutput{}
1230	req = c.newRequest(op, input, output)
1231	return
1232}
1233
1234// CreateSnapshot API operation for AWS Directory Service.
1235//
1236// Creates a snapshot of a Simple AD or Microsoft AD directory in the AWS cloud.
1237//
1238// You cannot take snapshots of AD Connector directories.
1239//
1240// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1241// with awserr.Error's Code and Message methods to get detailed information about
1242// the error.
1243//
1244// See the AWS API reference guide for AWS Directory Service's
1245// API operation CreateSnapshot for usage and error information.
1246//
1247// Returned Error Types:
1248//   * EntityDoesNotExistException
1249//   The specified entity could not be found.
1250//
1251//   * InvalidParameterException
1252//   One or more parameters are not valid.
1253//
1254//   * SnapshotLimitExceededException
1255//   The maximum number of manual snapshots for the directory has been reached.
1256//   You can use the GetSnapshotLimits operation to determine the snapshot limits
1257//   for a directory.
1258//
1259//   * ClientException
1260//   A client exception has occurred.
1261//
1262//   * ServiceException
1263//   An exception has occurred in AWS Directory Service.
1264//
1265// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1266func (c *DirectoryService) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
1267	req, out := c.CreateSnapshotRequest(input)
1268	return out, req.Send()
1269}
1270
1271// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
1272// the ability to pass a context and additional request options.
1273//
1274// See CreateSnapshot for details on how to use this API operation.
1275//
1276// The context must be non-nil and will be used for request cancellation. If
1277// the context is nil a panic will occur. In the future the SDK may create
1278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1279// for more information on using Contexts.
1280func (c *DirectoryService) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
1281	req, out := c.CreateSnapshotRequest(input)
1282	req.SetContext(ctx)
1283	req.ApplyOptions(opts...)
1284	return out, req.Send()
1285}
1286
1287const opCreateTrust = "CreateTrust"
1288
1289// CreateTrustRequest generates a "aws/request.Request" representing the
1290// client's request for the CreateTrust operation. The "output" return
1291// value will be populated with the request's response once the request completes
1292// successfully.
1293//
1294// Use "Send" method on the returned Request to send the API call to the service.
1295// the "output" return value is not valid until after Send returns without error.
1296//
1297// See CreateTrust for more information on using the CreateTrust
1298// API call, and error handling.
1299//
1300// This method is useful when you want to inject custom logic or configuration
1301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1302//
1303//
1304//    // Example sending a request using the CreateTrustRequest method.
1305//    req, resp := client.CreateTrustRequest(params)
1306//
1307//    err := req.Send()
1308//    if err == nil { // resp is now filled
1309//        fmt.Println(resp)
1310//    }
1311//
1312// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1313func (c *DirectoryService) CreateTrustRequest(input *CreateTrustInput) (req *request.Request, output *CreateTrustOutput) {
1314	op := &request.Operation{
1315		Name:       opCreateTrust,
1316		HTTPMethod: "POST",
1317		HTTPPath:   "/",
1318	}
1319
1320	if input == nil {
1321		input = &CreateTrustInput{}
1322	}
1323
1324	output = &CreateTrustOutput{}
1325	req = c.newRequest(op, input, output)
1326	return
1327}
1328
1329// CreateTrust API operation for AWS Directory Service.
1330//
1331// AWS Directory Service for Microsoft Active Directory allows you to configure
1332// trust relationships. For example, you can establish a trust between your
1333// AWS Managed Microsoft AD directory, and your existing on-premises Microsoft
1334// Active Directory. This would allow you to provide users and groups access
1335// to resources in either domain, with a single set of credentials.
1336//
1337// This action initiates the creation of the AWS side of a trust relationship
1338// between an AWS Managed Microsoft AD directory and an external domain. You
1339// can create either a forest trust or an external trust.
1340//
1341// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1342// with awserr.Error's Code and Message methods to get detailed information about
1343// the error.
1344//
1345// See the AWS API reference guide for AWS Directory Service's
1346// API operation CreateTrust for usage and error information.
1347//
1348// Returned Error Types:
1349//   * EntityAlreadyExistsException
1350//   The specified entity already exists.
1351//
1352//   * EntityDoesNotExistException
1353//   The specified entity could not be found.
1354//
1355//   * InvalidParameterException
1356//   One or more parameters are not valid.
1357//
1358//   * ClientException
1359//   A client exception has occurred.
1360//
1361//   * ServiceException
1362//   An exception has occurred in AWS Directory Service.
1363//
1364//   * UnsupportedOperationException
1365//   The operation is not supported.
1366//
1367// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1368func (c *DirectoryService) CreateTrust(input *CreateTrustInput) (*CreateTrustOutput, error) {
1369	req, out := c.CreateTrustRequest(input)
1370	return out, req.Send()
1371}
1372
1373// CreateTrustWithContext is the same as CreateTrust with the addition of
1374// the ability to pass a context and additional request options.
1375//
1376// See CreateTrust for details on how to use this API operation.
1377//
1378// The context must be non-nil and will be used for request cancellation. If
1379// the context is nil a panic will occur. In the future the SDK may create
1380// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1381// for more information on using Contexts.
1382func (c *DirectoryService) CreateTrustWithContext(ctx aws.Context, input *CreateTrustInput, opts ...request.Option) (*CreateTrustOutput, error) {
1383	req, out := c.CreateTrustRequest(input)
1384	req.SetContext(ctx)
1385	req.ApplyOptions(opts...)
1386	return out, req.Send()
1387}
1388
1389const opDeleteConditionalForwarder = "DeleteConditionalForwarder"
1390
1391// DeleteConditionalForwarderRequest generates a "aws/request.Request" representing the
1392// client's request for the DeleteConditionalForwarder operation. The "output" return
1393// value will be populated with the request's response once the request completes
1394// successfully.
1395//
1396// Use "Send" method on the returned Request to send the API call to the service.
1397// the "output" return value is not valid until after Send returns without error.
1398//
1399// See DeleteConditionalForwarder for more information on using the DeleteConditionalForwarder
1400// API call, and error handling.
1401//
1402// This method is useful when you want to inject custom logic or configuration
1403// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1404//
1405//
1406//    // Example sending a request using the DeleteConditionalForwarderRequest method.
1407//    req, resp := client.DeleteConditionalForwarderRequest(params)
1408//
1409//    err := req.Send()
1410//    if err == nil { // resp is now filled
1411//        fmt.Println(resp)
1412//    }
1413//
1414// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1415func (c *DirectoryService) DeleteConditionalForwarderRequest(input *DeleteConditionalForwarderInput) (req *request.Request, output *DeleteConditionalForwarderOutput) {
1416	op := &request.Operation{
1417		Name:       opDeleteConditionalForwarder,
1418		HTTPMethod: "POST",
1419		HTTPPath:   "/",
1420	}
1421
1422	if input == nil {
1423		input = &DeleteConditionalForwarderInput{}
1424	}
1425
1426	output = &DeleteConditionalForwarderOutput{}
1427	req = c.newRequest(op, input, output)
1428	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1429	return
1430}
1431
1432// DeleteConditionalForwarder API operation for AWS Directory Service.
1433//
1434// Deletes a conditional forwarder that has been set up for your AWS directory.
1435//
1436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1437// with awserr.Error's Code and Message methods to get detailed information about
1438// the error.
1439//
1440// See the AWS API reference guide for AWS Directory Service's
1441// API operation DeleteConditionalForwarder for usage and error information.
1442//
1443// Returned Error Types:
1444//   * EntityDoesNotExistException
1445//   The specified entity could not be found.
1446//
1447//   * DirectoryUnavailableException
1448//   The specified directory is unavailable or could not be found.
1449//
1450//   * InvalidParameterException
1451//   One or more parameters are not valid.
1452//
1453//   * UnsupportedOperationException
1454//   The operation is not supported.
1455//
1456//   * ClientException
1457//   A client exception has occurred.
1458//
1459//   * ServiceException
1460//   An exception has occurred in AWS Directory Service.
1461//
1462// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1463func (c *DirectoryService) DeleteConditionalForwarder(input *DeleteConditionalForwarderInput) (*DeleteConditionalForwarderOutput, error) {
1464	req, out := c.DeleteConditionalForwarderRequest(input)
1465	return out, req.Send()
1466}
1467
1468// DeleteConditionalForwarderWithContext is the same as DeleteConditionalForwarder with the addition of
1469// the ability to pass a context and additional request options.
1470//
1471// See DeleteConditionalForwarder for details on how to use this API operation.
1472//
1473// The context must be non-nil and will be used for request cancellation. If
1474// the context is nil a panic will occur. In the future the SDK may create
1475// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1476// for more information on using Contexts.
1477func (c *DirectoryService) DeleteConditionalForwarderWithContext(ctx aws.Context, input *DeleteConditionalForwarderInput, opts ...request.Option) (*DeleteConditionalForwarderOutput, error) {
1478	req, out := c.DeleteConditionalForwarderRequest(input)
1479	req.SetContext(ctx)
1480	req.ApplyOptions(opts...)
1481	return out, req.Send()
1482}
1483
1484const opDeleteDirectory = "DeleteDirectory"
1485
1486// DeleteDirectoryRequest generates a "aws/request.Request" representing the
1487// client's request for the DeleteDirectory operation. The "output" return
1488// value will be populated with the request's response once the request completes
1489// successfully.
1490//
1491// Use "Send" method on the returned Request to send the API call to the service.
1492// the "output" return value is not valid until after Send returns without error.
1493//
1494// See DeleteDirectory for more information on using the DeleteDirectory
1495// API call, and error handling.
1496//
1497// This method is useful when you want to inject custom logic or configuration
1498// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1499//
1500//
1501//    // Example sending a request using the DeleteDirectoryRequest method.
1502//    req, resp := client.DeleteDirectoryRequest(params)
1503//
1504//    err := req.Send()
1505//    if err == nil { // resp is now filled
1506//        fmt.Println(resp)
1507//    }
1508//
1509// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1510func (c *DirectoryService) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
1511	op := &request.Operation{
1512		Name:       opDeleteDirectory,
1513		HTTPMethod: "POST",
1514		HTTPPath:   "/",
1515	}
1516
1517	if input == nil {
1518		input = &DeleteDirectoryInput{}
1519	}
1520
1521	output = &DeleteDirectoryOutput{}
1522	req = c.newRequest(op, input, output)
1523	return
1524}
1525
1526// DeleteDirectory API operation for AWS Directory Service.
1527//
1528// Deletes an AWS Directory Service directory.
1529//
1530// Before you call DeleteDirectory, ensure that all of the required permissions
1531// have been explicitly granted through a policy. For details about what permissions
1532// are required to run the DeleteDirectory operation, see AWS Directory Service
1533// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1534//
1535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1536// with awserr.Error's Code and Message methods to get detailed information about
1537// the error.
1538//
1539// See the AWS API reference guide for AWS Directory Service's
1540// API operation DeleteDirectory for usage and error information.
1541//
1542// Returned Error Types:
1543//   * EntityDoesNotExistException
1544//   The specified entity could not be found.
1545//
1546//   * ClientException
1547//   A client exception has occurred.
1548//
1549//   * ServiceException
1550//   An exception has occurred in AWS Directory Service.
1551//
1552// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1553func (c *DirectoryService) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
1554	req, out := c.DeleteDirectoryRequest(input)
1555	return out, req.Send()
1556}
1557
1558// DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
1559// the ability to pass a context and additional request options.
1560//
1561// See DeleteDirectory for details on how to use this API operation.
1562//
1563// The context must be non-nil and will be used for request cancellation. If
1564// the context is nil a panic will occur. In the future the SDK may create
1565// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1566// for more information on using Contexts.
1567func (c *DirectoryService) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
1568	req, out := c.DeleteDirectoryRequest(input)
1569	req.SetContext(ctx)
1570	req.ApplyOptions(opts...)
1571	return out, req.Send()
1572}
1573
1574const opDeleteLogSubscription = "DeleteLogSubscription"
1575
1576// DeleteLogSubscriptionRequest generates a "aws/request.Request" representing the
1577// client's request for the DeleteLogSubscription operation. The "output" return
1578// value will be populated with the request's response once the request completes
1579// successfully.
1580//
1581// Use "Send" method on the returned Request to send the API call to the service.
1582// the "output" return value is not valid until after Send returns without error.
1583//
1584// See DeleteLogSubscription for more information on using the DeleteLogSubscription
1585// API call, and error handling.
1586//
1587// This method is useful when you want to inject custom logic or configuration
1588// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1589//
1590//
1591//    // Example sending a request using the DeleteLogSubscriptionRequest method.
1592//    req, resp := client.DeleteLogSubscriptionRequest(params)
1593//
1594//    err := req.Send()
1595//    if err == nil { // resp is now filled
1596//        fmt.Println(resp)
1597//    }
1598//
1599// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1600func (c *DirectoryService) DeleteLogSubscriptionRequest(input *DeleteLogSubscriptionInput) (req *request.Request, output *DeleteLogSubscriptionOutput) {
1601	op := &request.Operation{
1602		Name:       opDeleteLogSubscription,
1603		HTTPMethod: "POST",
1604		HTTPPath:   "/",
1605	}
1606
1607	if input == nil {
1608		input = &DeleteLogSubscriptionInput{}
1609	}
1610
1611	output = &DeleteLogSubscriptionOutput{}
1612	req = c.newRequest(op, input, output)
1613	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1614	return
1615}
1616
1617// DeleteLogSubscription API operation for AWS Directory Service.
1618//
1619// Deletes the specified log subscription.
1620//
1621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1622// with awserr.Error's Code and Message methods to get detailed information about
1623// the error.
1624//
1625// See the AWS API reference guide for AWS Directory Service's
1626// API operation DeleteLogSubscription for usage and error information.
1627//
1628// Returned Error Types:
1629//   * EntityDoesNotExistException
1630//   The specified entity could not be found.
1631//
1632//   * UnsupportedOperationException
1633//   The operation is not supported.
1634//
1635//   * ClientException
1636//   A client exception has occurred.
1637//
1638//   * ServiceException
1639//   An exception has occurred in AWS Directory Service.
1640//
1641// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1642func (c *DirectoryService) DeleteLogSubscription(input *DeleteLogSubscriptionInput) (*DeleteLogSubscriptionOutput, error) {
1643	req, out := c.DeleteLogSubscriptionRequest(input)
1644	return out, req.Send()
1645}
1646
1647// DeleteLogSubscriptionWithContext is the same as DeleteLogSubscription with the addition of
1648// the ability to pass a context and additional request options.
1649//
1650// See DeleteLogSubscription for details on how to use this API operation.
1651//
1652// The context must be non-nil and will be used for request cancellation. If
1653// the context is nil a panic will occur. In the future the SDK may create
1654// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1655// for more information on using Contexts.
1656func (c *DirectoryService) DeleteLogSubscriptionWithContext(ctx aws.Context, input *DeleteLogSubscriptionInput, opts ...request.Option) (*DeleteLogSubscriptionOutput, error) {
1657	req, out := c.DeleteLogSubscriptionRequest(input)
1658	req.SetContext(ctx)
1659	req.ApplyOptions(opts...)
1660	return out, req.Send()
1661}
1662
1663const opDeleteSnapshot = "DeleteSnapshot"
1664
1665// DeleteSnapshotRequest generates a "aws/request.Request" representing the
1666// client's request for the DeleteSnapshot operation. The "output" return
1667// value will be populated with the request's response once the request completes
1668// successfully.
1669//
1670// Use "Send" method on the returned Request to send the API call to the service.
1671// the "output" return value is not valid until after Send returns without error.
1672//
1673// See DeleteSnapshot for more information on using the DeleteSnapshot
1674// API call, and error handling.
1675//
1676// This method is useful when you want to inject custom logic or configuration
1677// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1678//
1679//
1680//    // Example sending a request using the DeleteSnapshotRequest method.
1681//    req, resp := client.DeleteSnapshotRequest(params)
1682//
1683//    err := req.Send()
1684//    if err == nil { // resp is now filled
1685//        fmt.Println(resp)
1686//    }
1687//
1688// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1689func (c *DirectoryService) DeleteSnapshotRequest(input *DeleteSnapshotInput) (req *request.Request, output *DeleteSnapshotOutput) {
1690	op := &request.Operation{
1691		Name:       opDeleteSnapshot,
1692		HTTPMethod: "POST",
1693		HTTPPath:   "/",
1694	}
1695
1696	if input == nil {
1697		input = &DeleteSnapshotInput{}
1698	}
1699
1700	output = &DeleteSnapshotOutput{}
1701	req = c.newRequest(op, input, output)
1702	return
1703}
1704
1705// DeleteSnapshot API operation for AWS Directory Service.
1706//
1707// Deletes a directory snapshot.
1708//
1709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1710// with awserr.Error's Code and Message methods to get detailed information about
1711// the error.
1712//
1713// See the AWS API reference guide for AWS Directory Service's
1714// API operation DeleteSnapshot for usage and error information.
1715//
1716// Returned Error Types:
1717//   * EntityDoesNotExistException
1718//   The specified entity could not be found.
1719//
1720//   * InvalidParameterException
1721//   One or more parameters are not valid.
1722//
1723//   * ClientException
1724//   A client exception has occurred.
1725//
1726//   * ServiceException
1727//   An exception has occurred in AWS Directory Service.
1728//
1729// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1730func (c *DirectoryService) DeleteSnapshot(input *DeleteSnapshotInput) (*DeleteSnapshotOutput, error) {
1731	req, out := c.DeleteSnapshotRequest(input)
1732	return out, req.Send()
1733}
1734
1735// DeleteSnapshotWithContext is the same as DeleteSnapshot with the addition of
1736// the ability to pass a context and additional request options.
1737//
1738// See DeleteSnapshot for details on how to use this API operation.
1739//
1740// The context must be non-nil and will be used for request cancellation. If
1741// the context is nil a panic will occur. In the future the SDK may create
1742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1743// for more information on using Contexts.
1744func (c *DirectoryService) DeleteSnapshotWithContext(ctx aws.Context, input *DeleteSnapshotInput, opts ...request.Option) (*DeleteSnapshotOutput, error) {
1745	req, out := c.DeleteSnapshotRequest(input)
1746	req.SetContext(ctx)
1747	req.ApplyOptions(opts...)
1748	return out, req.Send()
1749}
1750
1751const opDeleteTrust = "DeleteTrust"
1752
1753// DeleteTrustRequest generates a "aws/request.Request" representing the
1754// client's request for the DeleteTrust operation. The "output" return
1755// value will be populated with the request's response once the request completes
1756// successfully.
1757//
1758// Use "Send" method on the returned Request to send the API call to the service.
1759// the "output" return value is not valid until after Send returns without error.
1760//
1761// See DeleteTrust for more information on using the DeleteTrust
1762// API call, and error handling.
1763//
1764// This method is useful when you want to inject custom logic or configuration
1765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1766//
1767//
1768//    // Example sending a request using the DeleteTrustRequest method.
1769//    req, resp := client.DeleteTrustRequest(params)
1770//
1771//    err := req.Send()
1772//    if err == nil { // resp is now filled
1773//        fmt.Println(resp)
1774//    }
1775//
1776// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1777func (c *DirectoryService) DeleteTrustRequest(input *DeleteTrustInput) (req *request.Request, output *DeleteTrustOutput) {
1778	op := &request.Operation{
1779		Name:       opDeleteTrust,
1780		HTTPMethod: "POST",
1781		HTTPPath:   "/",
1782	}
1783
1784	if input == nil {
1785		input = &DeleteTrustInput{}
1786	}
1787
1788	output = &DeleteTrustOutput{}
1789	req = c.newRequest(op, input, output)
1790	return
1791}
1792
1793// DeleteTrust API operation for AWS Directory Service.
1794//
1795// Deletes an existing trust relationship between your AWS Managed Microsoft
1796// AD directory and an external domain.
1797//
1798// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1799// with awserr.Error's Code and Message methods to get detailed information about
1800// the error.
1801//
1802// See the AWS API reference guide for AWS Directory Service's
1803// API operation DeleteTrust for usage and error information.
1804//
1805// Returned Error Types:
1806//   * EntityDoesNotExistException
1807//   The specified entity could not be found.
1808//
1809//   * InvalidParameterException
1810//   One or more parameters are not valid.
1811//
1812//   * ClientException
1813//   A client exception has occurred.
1814//
1815//   * ServiceException
1816//   An exception has occurred in AWS Directory Service.
1817//
1818//   * UnsupportedOperationException
1819//   The operation is not supported.
1820//
1821// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1822func (c *DirectoryService) DeleteTrust(input *DeleteTrustInput) (*DeleteTrustOutput, error) {
1823	req, out := c.DeleteTrustRequest(input)
1824	return out, req.Send()
1825}
1826
1827// DeleteTrustWithContext is the same as DeleteTrust with the addition of
1828// the ability to pass a context and additional request options.
1829//
1830// See DeleteTrust for details on how to use this API operation.
1831//
1832// The context must be non-nil and will be used for request cancellation. If
1833// the context is nil a panic will occur. In the future the SDK may create
1834// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1835// for more information on using Contexts.
1836func (c *DirectoryService) DeleteTrustWithContext(ctx aws.Context, input *DeleteTrustInput, opts ...request.Option) (*DeleteTrustOutput, error) {
1837	req, out := c.DeleteTrustRequest(input)
1838	req.SetContext(ctx)
1839	req.ApplyOptions(opts...)
1840	return out, req.Send()
1841}
1842
1843const opDeregisterCertificate = "DeregisterCertificate"
1844
1845// DeregisterCertificateRequest generates a "aws/request.Request" representing the
1846// client's request for the DeregisterCertificate operation. The "output" return
1847// value will be populated with the request's response once the request completes
1848// successfully.
1849//
1850// Use "Send" method on the returned Request to send the API call to the service.
1851// the "output" return value is not valid until after Send returns without error.
1852//
1853// See DeregisterCertificate for more information on using the DeregisterCertificate
1854// API call, and error handling.
1855//
1856// This method is useful when you want to inject custom logic or configuration
1857// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1858//
1859//
1860//    // Example sending a request using the DeregisterCertificateRequest method.
1861//    req, resp := client.DeregisterCertificateRequest(params)
1862//
1863//    err := req.Send()
1864//    if err == nil { // resp is now filled
1865//        fmt.Println(resp)
1866//    }
1867//
1868// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterCertificate
1869func (c *DirectoryService) DeregisterCertificateRequest(input *DeregisterCertificateInput) (req *request.Request, output *DeregisterCertificateOutput) {
1870	op := &request.Operation{
1871		Name:       opDeregisterCertificate,
1872		HTTPMethod: "POST",
1873		HTTPPath:   "/",
1874	}
1875
1876	if input == nil {
1877		input = &DeregisterCertificateInput{}
1878	}
1879
1880	output = &DeregisterCertificateOutput{}
1881	req = c.newRequest(op, input, output)
1882	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1883	return
1884}
1885
1886// DeregisterCertificate API operation for AWS Directory Service.
1887//
1888// Deletes from the system the certificate that was registered for secure LDAP
1889// or client certificate authentication.
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 AWS Directory Service's
1896// API operation DeregisterCertificate for usage and error information.
1897//
1898// Returned Error Types:
1899//   * DirectoryUnavailableException
1900//   The specified directory is unavailable or could not be found.
1901//
1902//   * DirectoryDoesNotExistException
1903//   The specified directory does not exist in the system.
1904//
1905//   * CertificateDoesNotExistException
1906//   The certificate is not present in the system for describe or deregister activities.
1907//
1908//   * CertificateInUseException
1909//   The certificate is being used for the LDAP security connection and cannot
1910//   be removed without disabling LDAP security.
1911//
1912//   * UnsupportedOperationException
1913//   The operation is not supported.
1914//
1915//   * InvalidParameterException
1916//   One or more parameters are not valid.
1917//
1918//   * ClientException
1919//   A client exception has occurred.
1920//
1921//   * ServiceException
1922//   An exception has occurred in AWS Directory Service.
1923//
1924// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterCertificate
1925func (c *DirectoryService) DeregisterCertificate(input *DeregisterCertificateInput) (*DeregisterCertificateOutput, error) {
1926	req, out := c.DeregisterCertificateRequest(input)
1927	return out, req.Send()
1928}
1929
1930// DeregisterCertificateWithContext is the same as DeregisterCertificate with the addition of
1931// the ability to pass a context and additional request options.
1932//
1933// See DeregisterCertificate for details on how to use this API operation.
1934//
1935// The context must be non-nil and will be used for request cancellation. If
1936// the context is nil a panic will occur. In the future the SDK may create
1937// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1938// for more information on using Contexts.
1939func (c *DirectoryService) DeregisterCertificateWithContext(ctx aws.Context, input *DeregisterCertificateInput, opts ...request.Option) (*DeregisterCertificateOutput, error) {
1940	req, out := c.DeregisterCertificateRequest(input)
1941	req.SetContext(ctx)
1942	req.ApplyOptions(opts...)
1943	return out, req.Send()
1944}
1945
1946const opDeregisterEventTopic = "DeregisterEventTopic"
1947
1948// DeregisterEventTopicRequest generates a "aws/request.Request" representing the
1949// client's request for the DeregisterEventTopic operation. The "output" return
1950// value will be populated with the request's response once the request completes
1951// successfully.
1952//
1953// Use "Send" method on the returned Request to send the API call to the service.
1954// the "output" return value is not valid until after Send returns without error.
1955//
1956// See DeregisterEventTopic for more information on using the DeregisterEventTopic
1957// API call, and error handling.
1958//
1959// This method is useful when you want to inject custom logic or configuration
1960// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1961//
1962//
1963//    // Example sending a request using the DeregisterEventTopicRequest method.
1964//    req, resp := client.DeregisterEventTopicRequest(params)
1965//
1966//    err := req.Send()
1967//    if err == nil { // resp is now filled
1968//        fmt.Println(resp)
1969//    }
1970//
1971// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
1972func (c *DirectoryService) DeregisterEventTopicRequest(input *DeregisterEventTopicInput) (req *request.Request, output *DeregisterEventTopicOutput) {
1973	op := &request.Operation{
1974		Name:       opDeregisterEventTopic,
1975		HTTPMethod: "POST",
1976		HTTPPath:   "/",
1977	}
1978
1979	if input == nil {
1980		input = &DeregisterEventTopicInput{}
1981	}
1982
1983	output = &DeregisterEventTopicOutput{}
1984	req = c.newRequest(op, input, output)
1985	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1986	return
1987}
1988
1989// DeregisterEventTopic API operation for AWS Directory Service.
1990//
1991// Removes the specified directory as a publisher to the specified SNS topic.
1992//
1993// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1994// with awserr.Error's Code and Message methods to get detailed information about
1995// the error.
1996//
1997// See the AWS API reference guide for AWS Directory Service's
1998// API operation DeregisterEventTopic for usage and error information.
1999//
2000// Returned Error Types:
2001//   * EntityDoesNotExistException
2002//   The specified entity could not be found.
2003//
2004//   * InvalidParameterException
2005//   One or more parameters are not valid.
2006//
2007//   * ClientException
2008//   A client exception has occurred.
2009//
2010//   * ServiceException
2011//   An exception has occurred in AWS Directory Service.
2012//
2013// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
2014func (c *DirectoryService) DeregisterEventTopic(input *DeregisterEventTopicInput) (*DeregisterEventTopicOutput, error) {
2015	req, out := c.DeregisterEventTopicRequest(input)
2016	return out, req.Send()
2017}
2018
2019// DeregisterEventTopicWithContext is the same as DeregisterEventTopic with the addition of
2020// the ability to pass a context and additional request options.
2021//
2022// See DeregisterEventTopic for details on how to use this API operation.
2023//
2024// The context must be non-nil and will be used for request cancellation. If
2025// the context is nil a panic will occur. In the future the SDK may create
2026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2027// for more information on using Contexts.
2028func (c *DirectoryService) DeregisterEventTopicWithContext(ctx aws.Context, input *DeregisterEventTopicInput, opts ...request.Option) (*DeregisterEventTopicOutput, error) {
2029	req, out := c.DeregisterEventTopicRequest(input)
2030	req.SetContext(ctx)
2031	req.ApplyOptions(opts...)
2032	return out, req.Send()
2033}
2034
2035const opDescribeCertificate = "DescribeCertificate"
2036
2037// DescribeCertificateRequest generates a "aws/request.Request" representing the
2038// client's request for the DescribeCertificate operation. The "output" return
2039// value will be populated with the request's response once the request completes
2040// successfully.
2041//
2042// Use "Send" method on the returned Request to send the API call to the service.
2043// the "output" return value is not valid until after Send returns without error.
2044//
2045// See DescribeCertificate for more information on using the DescribeCertificate
2046// API call, and error handling.
2047//
2048// This method is useful when you want to inject custom logic or configuration
2049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2050//
2051//
2052//    // Example sending a request using the DescribeCertificateRequest method.
2053//    req, resp := client.DescribeCertificateRequest(params)
2054//
2055//    err := req.Send()
2056//    if err == nil { // resp is now filled
2057//        fmt.Println(resp)
2058//    }
2059//
2060// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeCertificate
2061func (c *DirectoryService) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
2062	op := &request.Operation{
2063		Name:       opDescribeCertificate,
2064		HTTPMethod: "POST",
2065		HTTPPath:   "/",
2066	}
2067
2068	if input == nil {
2069		input = &DescribeCertificateInput{}
2070	}
2071
2072	output = &DescribeCertificateOutput{}
2073	req = c.newRequest(op, input, output)
2074	return
2075}
2076
2077// DescribeCertificate API operation for AWS Directory Service.
2078//
2079// Displays information about the certificate registered for secure LDAP or
2080// client certificate authentication.
2081//
2082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2083// with awserr.Error's Code and Message methods to get detailed information about
2084// the error.
2085//
2086// See the AWS API reference guide for AWS Directory Service's
2087// API operation DescribeCertificate for usage and error information.
2088//
2089// Returned Error Types:
2090//   * DirectoryDoesNotExistException
2091//   The specified directory does not exist in the system.
2092//
2093//   * UnsupportedOperationException
2094//   The operation is not supported.
2095//
2096//   * CertificateDoesNotExistException
2097//   The certificate is not present in the system for describe or deregister activities.
2098//
2099//   * InvalidParameterException
2100//   One or more parameters are not valid.
2101//
2102//   * ClientException
2103//   A client exception has occurred.
2104//
2105//   * ServiceException
2106//   An exception has occurred in AWS Directory Service.
2107//
2108// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeCertificate
2109func (c *DirectoryService) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
2110	req, out := c.DescribeCertificateRequest(input)
2111	return out, req.Send()
2112}
2113
2114// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
2115// the ability to pass a context and additional request options.
2116//
2117// See DescribeCertificate for details on how to use this API operation.
2118//
2119// The context must be non-nil and will be used for request cancellation. If
2120// the context is nil a panic will occur. In the future the SDK may create
2121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2122// for more information on using Contexts.
2123func (c *DirectoryService) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
2124	req, out := c.DescribeCertificateRequest(input)
2125	req.SetContext(ctx)
2126	req.ApplyOptions(opts...)
2127	return out, req.Send()
2128}
2129
2130const opDescribeConditionalForwarders = "DescribeConditionalForwarders"
2131
2132// DescribeConditionalForwardersRequest generates a "aws/request.Request" representing the
2133// client's request for the DescribeConditionalForwarders operation. The "output" return
2134// value will be populated with the request's response once the request completes
2135// successfully.
2136//
2137// Use "Send" method on the returned Request to send the API call to the service.
2138// the "output" return value is not valid until after Send returns without error.
2139//
2140// See DescribeConditionalForwarders for more information on using the DescribeConditionalForwarders
2141// API call, and error handling.
2142//
2143// This method is useful when you want to inject custom logic or configuration
2144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2145//
2146//
2147//    // Example sending a request using the DescribeConditionalForwardersRequest method.
2148//    req, resp := client.DescribeConditionalForwardersRequest(params)
2149//
2150//    err := req.Send()
2151//    if err == nil { // resp is now filled
2152//        fmt.Println(resp)
2153//    }
2154//
2155// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
2156func (c *DirectoryService) DescribeConditionalForwardersRequest(input *DescribeConditionalForwardersInput) (req *request.Request, output *DescribeConditionalForwardersOutput) {
2157	op := &request.Operation{
2158		Name:       opDescribeConditionalForwarders,
2159		HTTPMethod: "POST",
2160		HTTPPath:   "/",
2161	}
2162
2163	if input == nil {
2164		input = &DescribeConditionalForwardersInput{}
2165	}
2166
2167	output = &DescribeConditionalForwardersOutput{}
2168	req = c.newRequest(op, input, output)
2169	return
2170}
2171
2172// DescribeConditionalForwarders API operation for AWS Directory Service.
2173//
2174// Obtains information about the conditional forwarders for this account.
2175//
2176// If no input parameters are provided for RemoteDomainNames, this request describes
2177// all conditional forwarders for the specified directory ID.
2178//
2179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2180// with awserr.Error's Code and Message methods to get detailed information about
2181// the error.
2182//
2183// See the AWS API reference guide for AWS Directory Service's
2184// API operation DescribeConditionalForwarders for usage and error information.
2185//
2186// Returned Error Types:
2187//   * EntityDoesNotExistException
2188//   The specified entity could not be found.
2189//
2190//   * DirectoryUnavailableException
2191//   The specified directory is unavailable or could not be found.
2192//
2193//   * InvalidParameterException
2194//   One or more parameters are not valid.
2195//
2196//   * UnsupportedOperationException
2197//   The operation is not supported.
2198//
2199//   * ClientException
2200//   A client exception has occurred.
2201//
2202//   * ServiceException
2203//   An exception has occurred in AWS Directory Service.
2204//
2205// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
2206func (c *DirectoryService) DescribeConditionalForwarders(input *DescribeConditionalForwardersInput) (*DescribeConditionalForwardersOutput, error) {
2207	req, out := c.DescribeConditionalForwardersRequest(input)
2208	return out, req.Send()
2209}
2210
2211// DescribeConditionalForwardersWithContext is the same as DescribeConditionalForwarders with the addition of
2212// the ability to pass a context and additional request options.
2213//
2214// See DescribeConditionalForwarders for details on how to use this API operation.
2215//
2216// The context must be non-nil and will be used for request cancellation. If
2217// the context is nil a panic will occur. In the future the SDK may create
2218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2219// for more information on using Contexts.
2220func (c *DirectoryService) DescribeConditionalForwardersWithContext(ctx aws.Context, input *DescribeConditionalForwardersInput, opts ...request.Option) (*DescribeConditionalForwardersOutput, error) {
2221	req, out := c.DescribeConditionalForwardersRequest(input)
2222	req.SetContext(ctx)
2223	req.ApplyOptions(opts...)
2224	return out, req.Send()
2225}
2226
2227const opDescribeDirectories = "DescribeDirectories"
2228
2229// DescribeDirectoriesRequest generates a "aws/request.Request" representing the
2230// client's request for the DescribeDirectories operation. The "output" return
2231// value will be populated with the request's response once the request completes
2232// successfully.
2233//
2234// Use "Send" method on the returned Request to send the API call to the service.
2235// the "output" return value is not valid until after Send returns without error.
2236//
2237// See DescribeDirectories for more information on using the DescribeDirectories
2238// API call, and error handling.
2239//
2240// This method is useful when you want to inject custom logic or configuration
2241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2242//
2243//
2244//    // Example sending a request using the DescribeDirectoriesRequest method.
2245//    req, resp := client.DescribeDirectoriesRequest(params)
2246//
2247//    err := req.Send()
2248//    if err == nil { // resp is now filled
2249//        fmt.Println(resp)
2250//    }
2251//
2252// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
2253func (c *DirectoryService) DescribeDirectoriesRequest(input *DescribeDirectoriesInput) (req *request.Request, output *DescribeDirectoriesOutput) {
2254	op := &request.Operation{
2255		Name:       opDescribeDirectories,
2256		HTTPMethod: "POST",
2257		HTTPPath:   "/",
2258	}
2259
2260	if input == nil {
2261		input = &DescribeDirectoriesInput{}
2262	}
2263
2264	output = &DescribeDirectoriesOutput{}
2265	req = c.newRequest(op, input, output)
2266	return
2267}
2268
2269// DescribeDirectories API operation for AWS Directory Service.
2270//
2271// Obtains information about the directories that belong to this account.
2272//
2273// You can retrieve information about specific directories by passing the directory
2274// identifiers in the DirectoryIds parameter. Otherwise, all directories that
2275// belong to the current account are returned.
2276//
2277// This operation supports pagination with the use of the NextToken request
2278// and response parameters. If more results are available, the DescribeDirectoriesResult.NextToken
2279// member contains a token that you pass in the next call to DescribeDirectories
2280// to retrieve the next set of items.
2281//
2282// You can also specify a maximum number of return results with the Limit parameter.
2283//
2284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2285// with awserr.Error's Code and Message methods to get detailed information about
2286// the error.
2287//
2288// See the AWS API reference guide for AWS Directory Service's
2289// API operation DescribeDirectories for usage and error information.
2290//
2291// Returned Error Types:
2292//   * EntityDoesNotExistException
2293//   The specified entity could not be found.
2294//
2295//   * InvalidParameterException
2296//   One or more parameters are not valid.
2297//
2298//   * InvalidNextTokenException
2299//   The NextToken value is not valid.
2300//
2301//   * ClientException
2302//   A client exception has occurred.
2303//
2304//   * ServiceException
2305//   An exception has occurred in AWS Directory Service.
2306//
2307// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
2308func (c *DirectoryService) DescribeDirectories(input *DescribeDirectoriesInput) (*DescribeDirectoriesOutput, error) {
2309	req, out := c.DescribeDirectoriesRequest(input)
2310	return out, req.Send()
2311}
2312
2313// DescribeDirectoriesWithContext is the same as DescribeDirectories with the addition of
2314// the ability to pass a context and additional request options.
2315//
2316// See DescribeDirectories for details on how to use this API operation.
2317//
2318// The context must be non-nil and will be used for request cancellation. If
2319// the context is nil a panic will occur. In the future the SDK may create
2320// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2321// for more information on using Contexts.
2322func (c *DirectoryService) DescribeDirectoriesWithContext(ctx aws.Context, input *DescribeDirectoriesInput, opts ...request.Option) (*DescribeDirectoriesOutput, error) {
2323	req, out := c.DescribeDirectoriesRequest(input)
2324	req.SetContext(ctx)
2325	req.ApplyOptions(opts...)
2326	return out, req.Send()
2327}
2328
2329const opDescribeDomainControllers = "DescribeDomainControllers"
2330
2331// DescribeDomainControllersRequest generates a "aws/request.Request" representing the
2332// client's request for the DescribeDomainControllers operation. The "output" return
2333// value will be populated with the request's response once the request completes
2334// successfully.
2335//
2336// Use "Send" method on the returned Request to send the API call to the service.
2337// the "output" return value is not valid until after Send returns without error.
2338//
2339// See DescribeDomainControllers for more information on using the DescribeDomainControllers
2340// API call, and error handling.
2341//
2342// This method is useful when you want to inject custom logic or configuration
2343// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2344//
2345//
2346//    // Example sending a request using the DescribeDomainControllersRequest method.
2347//    req, resp := client.DescribeDomainControllersRequest(params)
2348//
2349//    err := req.Send()
2350//    if err == nil { // resp is now filled
2351//        fmt.Println(resp)
2352//    }
2353//
2354// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2355func (c *DirectoryService) DescribeDomainControllersRequest(input *DescribeDomainControllersInput) (req *request.Request, output *DescribeDomainControllersOutput) {
2356	op := &request.Operation{
2357		Name:       opDescribeDomainControllers,
2358		HTTPMethod: "POST",
2359		HTTPPath:   "/",
2360		Paginator: &request.Paginator{
2361			InputTokens:     []string{"NextToken"},
2362			OutputTokens:    []string{"NextToken"},
2363			LimitToken:      "Limit",
2364			TruncationToken: "",
2365		},
2366	}
2367
2368	if input == nil {
2369		input = &DescribeDomainControllersInput{}
2370	}
2371
2372	output = &DescribeDomainControllersOutput{}
2373	req = c.newRequest(op, input, output)
2374	return
2375}
2376
2377// DescribeDomainControllers API operation for AWS Directory Service.
2378//
2379// Provides information about any domain controllers in your directory.
2380//
2381// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2382// with awserr.Error's Code and Message methods to get detailed information about
2383// the error.
2384//
2385// See the AWS API reference guide for AWS Directory Service's
2386// API operation DescribeDomainControllers for usage and error information.
2387//
2388// Returned Error Types:
2389//   * EntityDoesNotExistException
2390//   The specified entity could not be found.
2391//
2392//   * InvalidNextTokenException
2393//   The NextToken value is not valid.
2394//
2395//   * InvalidParameterException
2396//   One or more parameters are not valid.
2397//
2398//   * ClientException
2399//   A client exception has occurred.
2400//
2401//   * ServiceException
2402//   An exception has occurred in AWS Directory Service.
2403//
2404//   * UnsupportedOperationException
2405//   The operation is not supported.
2406//
2407// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2408func (c *DirectoryService) DescribeDomainControllers(input *DescribeDomainControllersInput) (*DescribeDomainControllersOutput, error) {
2409	req, out := c.DescribeDomainControllersRequest(input)
2410	return out, req.Send()
2411}
2412
2413// DescribeDomainControllersWithContext is the same as DescribeDomainControllers with the addition of
2414// the ability to pass a context and additional request options.
2415//
2416// See DescribeDomainControllers for details on how to use this API operation.
2417//
2418// The context must be non-nil and will be used for request cancellation. If
2419// the context is nil a panic will occur. In the future the SDK may create
2420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2421// for more information on using Contexts.
2422func (c *DirectoryService) DescribeDomainControllersWithContext(ctx aws.Context, input *DescribeDomainControllersInput, opts ...request.Option) (*DescribeDomainControllersOutput, error) {
2423	req, out := c.DescribeDomainControllersRequest(input)
2424	req.SetContext(ctx)
2425	req.ApplyOptions(opts...)
2426	return out, req.Send()
2427}
2428
2429// DescribeDomainControllersPages iterates over the pages of a DescribeDomainControllers operation,
2430// calling the "fn" function with the response data for each page. To stop
2431// iterating, return false from the fn function.
2432//
2433// See DescribeDomainControllers method for more information on how to use this operation.
2434//
2435// Note: This operation can generate multiple requests to a service.
2436//
2437//    // Example iterating over at most 3 pages of a DescribeDomainControllers operation.
2438//    pageNum := 0
2439//    err := client.DescribeDomainControllersPages(params,
2440//        func(page *directoryservice.DescribeDomainControllersOutput, lastPage bool) bool {
2441//            pageNum++
2442//            fmt.Println(page)
2443//            return pageNum <= 3
2444//        })
2445//
2446func (c *DirectoryService) DescribeDomainControllersPages(input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool) error {
2447	return c.DescribeDomainControllersPagesWithContext(aws.BackgroundContext(), input, fn)
2448}
2449
2450// DescribeDomainControllersPagesWithContext same as DescribeDomainControllersPages except
2451// it takes a Context and allows setting request options on the pages.
2452//
2453// The context must be non-nil and will be used for request cancellation. If
2454// the context is nil a panic will occur. In the future the SDK may create
2455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2456// for more information on using Contexts.
2457func (c *DirectoryService) DescribeDomainControllersPagesWithContext(ctx aws.Context, input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool, opts ...request.Option) error {
2458	p := request.Pagination{
2459		NewRequest: func() (*request.Request, error) {
2460			var inCpy *DescribeDomainControllersInput
2461			if input != nil {
2462				tmp := *input
2463				inCpy = &tmp
2464			}
2465			req, _ := c.DescribeDomainControllersRequest(inCpy)
2466			req.SetContext(ctx)
2467			req.ApplyOptions(opts...)
2468			return req, nil
2469		},
2470	}
2471
2472	for p.Next() {
2473		if !fn(p.Page().(*DescribeDomainControllersOutput), !p.HasNextPage()) {
2474			break
2475		}
2476	}
2477
2478	return p.Err()
2479}
2480
2481const opDescribeEventTopics = "DescribeEventTopics"
2482
2483// DescribeEventTopicsRequest generates a "aws/request.Request" representing the
2484// client's request for the DescribeEventTopics operation. The "output" return
2485// value will be populated with the request's response once the request completes
2486// successfully.
2487//
2488// Use "Send" method on the returned Request to send the API call to the service.
2489// the "output" return value is not valid until after Send returns without error.
2490//
2491// See DescribeEventTopics for more information on using the DescribeEventTopics
2492// API call, and error handling.
2493//
2494// This method is useful when you want to inject custom logic or configuration
2495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2496//
2497//
2498//    // Example sending a request using the DescribeEventTopicsRequest method.
2499//    req, resp := client.DescribeEventTopicsRequest(params)
2500//
2501//    err := req.Send()
2502//    if err == nil { // resp is now filled
2503//        fmt.Println(resp)
2504//    }
2505//
2506// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2507func (c *DirectoryService) DescribeEventTopicsRequest(input *DescribeEventTopicsInput) (req *request.Request, output *DescribeEventTopicsOutput) {
2508	op := &request.Operation{
2509		Name:       opDescribeEventTopics,
2510		HTTPMethod: "POST",
2511		HTTPPath:   "/",
2512	}
2513
2514	if input == nil {
2515		input = &DescribeEventTopicsInput{}
2516	}
2517
2518	output = &DescribeEventTopicsOutput{}
2519	req = c.newRequest(op, input, output)
2520	return
2521}
2522
2523// DescribeEventTopics API operation for AWS Directory Service.
2524//
2525// Obtains information about which SNS topics receive status messages from the
2526// specified directory.
2527//
2528// If no input parameters are provided, such as DirectoryId or TopicName, this
2529// request describes all of the associations in the account.
2530//
2531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2532// with awserr.Error's Code and Message methods to get detailed information about
2533// the error.
2534//
2535// See the AWS API reference guide for AWS Directory Service's
2536// API operation DescribeEventTopics for usage and error information.
2537//
2538// Returned Error Types:
2539//   * EntityDoesNotExistException
2540//   The specified entity could not be found.
2541//
2542//   * InvalidParameterException
2543//   One or more parameters are not valid.
2544//
2545//   * ClientException
2546//   A client exception has occurred.
2547//
2548//   * ServiceException
2549//   An exception has occurred in AWS Directory Service.
2550//
2551// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2552func (c *DirectoryService) DescribeEventTopics(input *DescribeEventTopicsInput) (*DescribeEventTopicsOutput, error) {
2553	req, out := c.DescribeEventTopicsRequest(input)
2554	return out, req.Send()
2555}
2556
2557// DescribeEventTopicsWithContext is the same as DescribeEventTopics with the addition of
2558// the ability to pass a context and additional request options.
2559//
2560// See DescribeEventTopics for details on how to use this API operation.
2561//
2562// The context must be non-nil and will be used for request cancellation. If
2563// the context is nil a panic will occur. In the future the SDK may create
2564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2565// for more information on using Contexts.
2566func (c *DirectoryService) DescribeEventTopicsWithContext(ctx aws.Context, input *DescribeEventTopicsInput, opts ...request.Option) (*DescribeEventTopicsOutput, error) {
2567	req, out := c.DescribeEventTopicsRequest(input)
2568	req.SetContext(ctx)
2569	req.ApplyOptions(opts...)
2570	return out, req.Send()
2571}
2572
2573const opDescribeLDAPSSettings = "DescribeLDAPSSettings"
2574
2575// DescribeLDAPSSettingsRequest generates a "aws/request.Request" representing the
2576// client's request for the DescribeLDAPSSettings operation. The "output" return
2577// value will be populated with the request's response once the request completes
2578// successfully.
2579//
2580// Use "Send" method on the returned Request to send the API call to the service.
2581// the "output" return value is not valid until after Send returns without error.
2582//
2583// See DescribeLDAPSSettings for more information on using the DescribeLDAPSSettings
2584// API call, and error handling.
2585//
2586// This method is useful when you want to inject custom logic or configuration
2587// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2588//
2589//
2590//    // Example sending a request using the DescribeLDAPSSettingsRequest method.
2591//    req, resp := client.DescribeLDAPSSettingsRequest(params)
2592//
2593//    err := req.Send()
2594//    if err == nil { // resp is now filled
2595//        fmt.Println(resp)
2596//    }
2597//
2598// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeLDAPSSettings
2599func (c *DirectoryService) DescribeLDAPSSettingsRequest(input *DescribeLDAPSSettingsInput) (req *request.Request, output *DescribeLDAPSSettingsOutput) {
2600	op := &request.Operation{
2601		Name:       opDescribeLDAPSSettings,
2602		HTTPMethod: "POST",
2603		HTTPPath:   "/",
2604	}
2605
2606	if input == nil {
2607		input = &DescribeLDAPSSettingsInput{}
2608	}
2609
2610	output = &DescribeLDAPSSettingsOutput{}
2611	req = c.newRequest(op, input, output)
2612	return
2613}
2614
2615// DescribeLDAPSSettings API operation for AWS Directory Service.
2616//
2617// Describes the status of LDAP security for the specified directory.
2618//
2619// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2620// with awserr.Error's Code and Message methods to get detailed information about
2621// the error.
2622//
2623// See the AWS API reference guide for AWS Directory Service's
2624// API operation DescribeLDAPSSettings for usage and error information.
2625//
2626// Returned Error Types:
2627//   * DirectoryDoesNotExistException
2628//   The specified directory does not exist in the system.
2629//
2630//   * UnsupportedOperationException
2631//   The operation is not supported.
2632//
2633//   * InvalidNextTokenException
2634//   The NextToken value is not valid.
2635//
2636//   * InvalidParameterException
2637//   One or more parameters are not valid.
2638//
2639//   * ClientException
2640//   A client exception has occurred.
2641//
2642//   * ServiceException
2643//   An exception has occurred in AWS Directory Service.
2644//
2645// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeLDAPSSettings
2646func (c *DirectoryService) DescribeLDAPSSettings(input *DescribeLDAPSSettingsInput) (*DescribeLDAPSSettingsOutput, error) {
2647	req, out := c.DescribeLDAPSSettingsRequest(input)
2648	return out, req.Send()
2649}
2650
2651// DescribeLDAPSSettingsWithContext is the same as DescribeLDAPSSettings with the addition of
2652// the ability to pass a context and additional request options.
2653//
2654// See DescribeLDAPSSettings for details on how to use this API operation.
2655//
2656// The context must be non-nil and will be used for request cancellation. If
2657// the context is nil a panic will occur. In the future the SDK may create
2658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2659// for more information on using Contexts.
2660func (c *DirectoryService) DescribeLDAPSSettingsWithContext(ctx aws.Context, input *DescribeLDAPSSettingsInput, opts ...request.Option) (*DescribeLDAPSSettingsOutput, error) {
2661	req, out := c.DescribeLDAPSSettingsRequest(input)
2662	req.SetContext(ctx)
2663	req.ApplyOptions(opts...)
2664	return out, req.Send()
2665}
2666
2667const opDescribeRegions = "DescribeRegions"
2668
2669// DescribeRegionsRequest generates a "aws/request.Request" representing the
2670// client's request for the DescribeRegions operation. The "output" return
2671// value will be populated with the request's response once the request completes
2672// successfully.
2673//
2674// Use "Send" method on the returned Request to send the API call to the service.
2675// the "output" return value is not valid until after Send returns without error.
2676//
2677// See DescribeRegions for more information on using the DescribeRegions
2678// API call, and error handling.
2679//
2680// This method is useful when you want to inject custom logic or configuration
2681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2682//
2683//
2684//    // Example sending a request using the DescribeRegionsRequest method.
2685//    req, resp := client.DescribeRegionsRequest(params)
2686//
2687//    err := req.Send()
2688//    if err == nil { // resp is now filled
2689//        fmt.Println(resp)
2690//    }
2691//
2692// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeRegions
2693func (c *DirectoryService) DescribeRegionsRequest(input *DescribeRegionsInput) (req *request.Request, output *DescribeRegionsOutput) {
2694	op := &request.Operation{
2695		Name:       opDescribeRegions,
2696		HTTPMethod: "POST",
2697		HTTPPath:   "/",
2698	}
2699
2700	if input == nil {
2701		input = &DescribeRegionsInput{}
2702	}
2703
2704	output = &DescribeRegionsOutput{}
2705	req = c.newRequest(op, input, output)
2706	return
2707}
2708
2709// DescribeRegions API operation for AWS Directory Service.
2710//
2711// Provides information about the Regions that are configured for multi-Region
2712// replication.
2713//
2714// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2715// with awserr.Error's Code and Message methods to get detailed information about
2716// the error.
2717//
2718// See the AWS API reference guide for AWS Directory Service's
2719// API operation DescribeRegions for usage and error information.
2720//
2721// Returned Error Types:
2722//   * InvalidParameterException
2723//   One or more parameters are not valid.
2724//
2725//   * DirectoryDoesNotExistException
2726//   The specified directory does not exist in the system.
2727//
2728//   * UnsupportedOperationException
2729//   The operation is not supported.
2730//
2731//   * InvalidNextTokenException
2732//   The NextToken value is not valid.
2733//
2734//   * AccessDeniedException
2735//   Client authentication is not available in this region at this time.
2736//
2737//   * ClientException
2738//   A client exception has occurred.
2739//
2740//   * ServiceException
2741//   An exception has occurred in AWS Directory Service.
2742//
2743// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeRegions
2744func (c *DirectoryService) DescribeRegions(input *DescribeRegionsInput) (*DescribeRegionsOutput, error) {
2745	req, out := c.DescribeRegionsRequest(input)
2746	return out, req.Send()
2747}
2748
2749// DescribeRegionsWithContext is the same as DescribeRegions with the addition of
2750// the ability to pass a context and additional request options.
2751//
2752// See DescribeRegions for details on how to use this API operation.
2753//
2754// The context must be non-nil and will be used for request cancellation. If
2755// the context is nil a panic will occur. In the future the SDK may create
2756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2757// for more information on using Contexts.
2758func (c *DirectoryService) DescribeRegionsWithContext(ctx aws.Context, input *DescribeRegionsInput, opts ...request.Option) (*DescribeRegionsOutput, error) {
2759	req, out := c.DescribeRegionsRequest(input)
2760	req.SetContext(ctx)
2761	req.ApplyOptions(opts...)
2762	return out, req.Send()
2763}
2764
2765const opDescribeSharedDirectories = "DescribeSharedDirectories"
2766
2767// DescribeSharedDirectoriesRequest generates a "aws/request.Request" representing the
2768// client's request for the DescribeSharedDirectories operation. The "output" return
2769// value will be populated with the request's response once the request completes
2770// successfully.
2771//
2772// Use "Send" method on the returned Request to send the API call to the service.
2773// the "output" return value is not valid until after Send returns without error.
2774//
2775// See DescribeSharedDirectories for more information on using the DescribeSharedDirectories
2776// API call, and error handling.
2777//
2778// This method is useful when you want to inject custom logic or configuration
2779// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2780//
2781//
2782//    // Example sending a request using the DescribeSharedDirectoriesRequest method.
2783//    req, resp := client.DescribeSharedDirectoriesRequest(params)
2784//
2785//    err := req.Send()
2786//    if err == nil { // resp is now filled
2787//        fmt.Println(resp)
2788//    }
2789//
2790// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2791func (c *DirectoryService) DescribeSharedDirectoriesRequest(input *DescribeSharedDirectoriesInput) (req *request.Request, output *DescribeSharedDirectoriesOutput) {
2792	op := &request.Operation{
2793		Name:       opDescribeSharedDirectories,
2794		HTTPMethod: "POST",
2795		HTTPPath:   "/",
2796	}
2797
2798	if input == nil {
2799		input = &DescribeSharedDirectoriesInput{}
2800	}
2801
2802	output = &DescribeSharedDirectoriesOutput{}
2803	req = c.newRequest(op, input, output)
2804	return
2805}
2806
2807// DescribeSharedDirectories API operation for AWS Directory Service.
2808//
2809// Returns the shared directories in your account.
2810//
2811// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2812// with awserr.Error's Code and Message methods to get detailed information about
2813// the error.
2814//
2815// See the AWS API reference guide for AWS Directory Service's
2816// API operation DescribeSharedDirectories for usage and error information.
2817//
2818// Returned Error Types:
2819//   * EntityDoesNotExistException
2820//   The specified entity could not be found.
2821//
2822//   * InvalidNextTokenException
2823//   The NextToken value is not valid.
2824//
2825//   * InvalidParameterException
2826//   One or more parameters are not valid.
2827//
2828//   * UnsupportedOperationException
2829//   The operation is not supported.
2830//
2831//   * ClientException
2832//   A client exception has occurred.
2833//
2834//   * ServiceException
2835//   An exception has occurred in AWS Directory Service.
2836//
2837// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2838func (c *DirectoryService) DescribeSharedDirectories(input *DescribeSharedDirectoriesInput) (*DescribeSharedDirectoriesOutput, error) {
2839	req, out := c.DescribeSharedDirectoriesRequest(input)
2840	return out, req.Send()
2841}
2842
2843// DescribeSharedDirectoriesWithContext is the same as DescribeSharedDirectories with the addition of
2844// the ability to pass a context and additional request options.
2845//
2846// See DescribeSharedDirectories for details on how to use this API operation.
2847//
2848// The context must be non-nil and will be used for request cancellation. If
2849// the context is nil a panic will occur. In the future the SDK may create
2850// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2851// for more information on using Contexts.
2852func (c *DirectoryService) DescribeSharedDirectoriesWithContext(ctx aws.Context, input *DescribeSharedDirectoriesInput, opts ...request.Option) (*DescribeSharedDirectoriesOutput, error) {
2853	req, out := c.DescribeSharedDirectoriesRequest(input)
2854	req.SetContext(ctx)
2855	req.ApplyOptions(opts...)
2856	return out, req.Send()
2857}
2858
2859const opDescribeSnapshots = "DescribeSnapshots"
2860
2861// DescribeSnapshotsRequest generates a "aws/request.Request" representing the
2862// client's request for the DescribeSnapshots operation. The "output" return
2863// value will be populated with the request's response once the request completes
2864// successfully.
2865//
2866// Use "Send" method on the returned Request to send the API call to the service.
2867// the "output" return value is not valid until after Send returns without error.
2868//
2869// See DescribeSnapshots for more information on using the DescribeSnapshots
2870// API call, and error handling.
2871//
2872// This method is useful when you want to inject custom logic or configuration
2873// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2874//
2875//
2876//    // Example sending a request using the DescribeSnapshotsRequest method.
2877//    req, resp := client.DescribeSnapshotsRequest(params)
2878//
2879//    err := req.Send()
2880//    if err == nil { // resp is now filled
2881//        fmt.Println(resp)
2882//    }
2883//
2884// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
2885func (c *DirectoryService) DescribeSnapshotsRequest(input *DescribeSnapshotsInput) (req *request.Request, output *DescribeSnapshotsOutput) {
2886	op := &request.Operation{
2887		Name:       opDescribeSnapshots,
2888		HTTPMethod: "POST",
2889		HTTPPath:   "/",
2890	}
2891
2892	if input == nil {
2893		input = &DescribeSnapshotsInput{}
2894	}
2895
2896	output = &DescribeSnapshotsOutput{}
2897	req = c.newRequest(op, input, output)
2898	return
2899}
2900
2901// DescribeSnapshots API operation for AWS Directory Service.
2902//
2903// Obtains information about the directory snapshots that belong to this account.
2904//
2905// This operation supports pagination with the use of the NextToken request
2906// and response parameters. If more results are available, the DescribeSnapshots.NextToken
2907// member contains a token that you pass in the next call to DescribeSnapshots
2908// to retrieve the next set of items.
2909//
2910// You can also specify a maximum number of return results with the Limit parameter.
2911//
2912// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2913// with awserr.Error's Code and Message methods to get detailed information about
2914// the error.
2915//
2916// See the AWS API reference guide for AWS Directory Service's
2917// API operation DescribeSnapshots for usage and error information.
2918//
2919// Returned Error Types:
2920//   * EntityDoesNotExistException
2921//   The specified entity could not be found.
2922//
2923//   * InvalidParameterException
2924//   One or more parameters are not valid.
2925//
2926//   * InvalidNextTokenException
2927//   The NextToken value is not valid.
2928//
2929//   * ClientException
2930//   A client exception has occurred.
2931//
2932//   * ServiceException
2933//   An exception has occurred in AWS Directory Service.
2934//
2935// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
2936func (c *DirectoryService) DescribeSnapshots(input *DescribeSnapshotsInput) (*DescribeSnapshotsOutput, error) {
2937	req, out := c.DescribeSnapshotsRequest(input)
2938	return out, req.Send()
2939}
2940
2941// DescribeSnapshotsWithContext is the same as DescribeSnapshots with the addition of
2942// the ability to pass a context and additional request options.
2943//
2944// See DescribeSnapshots for details on how to use this API operation.
2945//
2946// The context must be non-nil and will be used for request cancellation. If
2947// the context is nil a panic will occur. In the future the SDK may create
2948// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2949// for more information on using Contexts.
2950func (c *DirectoryService) DescribeSnapshotsWithContext(ctx aws.Context, input *DescribeSnapshotsInput, opts ...request.Option) (*DescribeSnapshotsOutput, error) {
2951	req, out := c.DescribeSnapshotsRequest(input)
2952	req.SetContext(ctx)
2953	req.ApplyOptions(opts...)
2954	return out, req.Send()
2955}
2956
2957const opDescribeTrusts = "DescribeTrusts"
2958
2959// DescribeTrustsRequest generates a "aws/request.Request" representing the
2960// client's request for the DescribeTrusts operation. The "output" return
2961// value will be populated with the request's response once the request completes
2962// successfully.
2963//
2964// Use "Send" method on the returned Request to send the API call to the service.
2965// the "output" return value is not valid until after Send returns without error.
2966//
2967// See DescribeTrusts for more information on using the DescribeTrusts
2968// API call, and error handling.
2969//
2970// This method is useful when you want to inject custom logic or configuration
2971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2972//
2973//
2974//    // Example sending a request using the DescribeTrustsRequest method.
2975//    req, resp := client.DescribeTrustsRequest(params)
2976//
2977//    err := req.Send()
2978//    if err == nil { // resp is now filled
2979//        fmt.Println(resp)
2980//    }
2981//
2982// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
2983func (c *DirectoryService) DescribeTrustsRequest(input *DescribeTrustsInput) (req *request.Request, output *DescribeTrustsOutput) {
2984	op := &request.Operation{
2985		Name:       opDescribeTrusts,
2986		HTTPMethod: "POST",
2987		HTTPPath:   "/",
2988	}
2989
2990	if input == nil {
2991		input = &DescribeTrustsInput{}
2992	}
2993
2994	output = &DescribeTrustsOutput{}
2995	req = c.newRequest(op, input, output)
2996	return
2997}
2998
2999// DescribeTrusts API operation for AWS Directory Service.
3000//
3001// Obtains information about the trust relationships for this account.
3002//
3003// If no input parameters are provided, such as DirectoryId or TrustIds, this
3004// request describes all the trust relationships belonging to the account.
3005//
3006// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3007// with awserr.Error's Code and Message methods to get detailed information about
3008// the error.
3009//
3010// See the AWS API reference guide for AWS Directory Service's
3011// API operation DescribeTrusts for usage and error information.
3012//
3013// Returned Error Types:
3014//   * EntityDoesNotExistException
3015//   The specified entity could not be found.
3016//
3017//   * InvalidNextTokenException
3018//   The NextToken value is not valid.
3019//
3020//   * InvalidParameterException
3021//   One or more parameters are not valid.
3022//
3023//   * ClientException
3024//   A client exception has occurred.
3025//
3026//   * ServiceException
3027//   An exception has occurred in AWS Directory Service.
3028//
3029//   * UnsupportedOperationException
3030//   The operation is not supported.
3031//
3032// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
3033func (c *DirectoryService) DescribeTrusts(input *DescribeTrustsInput) (*DescribeTrustsOutput, error) {
3034	req, out := c.DescribeTrustsRequest(input)
3035	return out, req.Send()
3036}
3037
3038// DescribeTrustsWithContext is the same as DescribeTrusts with the addition of
3039// the ability to pass a context and additional request options.
3040//
3041// See DescribeTrusts for details on how to use this API operation.
3042//
3043// The context must be non-nil and will be used for request cancellation. If
3044// the context is nil a panic will occur. In the future the SDK may create
3045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3046// for more information on using Contexts.
3047func (c *DirectoryService) DescribeTrustsWithContext(ctx aws.Context, input *DescribeTrustsInput, opts ...request.Option) (*DescribeTrustsOutput, error) {
3048	req, out := c.DescribeTrustsRequest(input)
3049	req.SetContext(ctx)
3050	req.ApplyOptions(opts...)
3051	return out, req.Send()
3052}
3053
3054const opDisableClientAuthentication = "DisableClientAuthentication"
3055
3056// DisableClientAuthenticationRequest generates a "aws/request.Request" representing the
3057// client's request for the DisableClientAuthentication operation. The "output" return
3058// value will be populated with the request's response once the request completes
3059// successfully.
3060//
3061// Use "Send" method on the returned Request to send the API call to the service.
3062// the "output" return value is not valid until after Send returns without error.
3063//
3064// See DisableClientAuthentication for more information on using the DisableClientAuthentication
3065// API call, and error handling.
3066//
3067// This method is useful when you want to inject custom logic or configuration
3068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3069//
3070//
3071//    // Example sending a request using the DisableClientAuthenticationRequest method.
3072//    req, resp := client.DisableClientAuthenticationRequest(params)
3073//
3074//    err := req.Send()
3075//    if err == nil { // resp is now filled
3076//        fmt.Println(resp)
3077//    }
3078//
3079// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableClientAuthentication
3080func (c *DirectoryService) DisableClientAuthenticationRequest(input *DisableClientAuthenticationInput) (req *request.Request, output *DisableClientAuthenticationOutput) {
3081	op := &request.Operation{
3082		Name:       opDisableClientAuthentication,
3083		HTTPMethod: "POST",
3084		HTTPPath:   "/",
3085	}
3086
3087	if input == nil {
3088		input = &DisableClientAuthenticationInput{}
3089	}
3090
3091	output = &DisableClientAuthenticationOutput{}
3092	req = c.newRequest(op, input, output)
3093	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3094	return
3095}
3096
3097// DisableClientAuthentication API operation for AWS Directory Service.
3098//
3099// Disables alternative client authentication methods for the specified directory.
3100//
3101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3102// with awserr.Error's Code and Message methods to get detailed information about
3103// the error.
3104//
3105// See the AWS API reference guide for AWS Directory Service's
3106// API operation DisableClientAuthentication for usage and error information.
3107//
3108// Returned Error Types:
3109//   * DirectoryDoesNotExistException
3110//   The specified directory does not exist in the system.
3111//
3112//   * UnsupportedOperationException
3113//   The operation is not supported.
3114//
3115//   * InvalidClientAuthStatusException
3116//   Client authentication is already enabled.
3117//
3118//   * AccessDeniedException
3119//   Client authentication is not available in this region at this time.
3120//
3121//   * ClientException
3122//   A client exception has occurred.
3123//
3124//   * ServiceException
3125//   An exception has occurred in AWS Directory Service.
3126//
3127// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableClientAuthentication
3128func (c *DirectoryService) DisableClientAuthentication(input *DisableClientAuthenticationInput) (*DisableClientAuthenticationOutput, error) {
3129	req, out := c.DisableClientAuthenticationRequest(input)
3130	return out, req.Send()
3131}
3132
3133// DisableClientAuthenticationWithContext is the same as DisableClientAuthentication with the addition of
3134// the ability to pass a context and additional request options.
3135//
3136// See DisableClientAuthentication for details on how to use this API operation.
3137//
3138// The context must be non-nil and will be used for request cancellation. If
3139// the context is nil a panic will occur. In the future the SDK may create
3140// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3141// for more information on using Contexts.
3142func (c *DirectoryService) DisableClientAuthenticationWithContext(ctx aws.Context, input *DisableClientAuthenticationInput, opts ...request.Option) (*DisableClientAuthenticationOutput, error) {
3143	req, out := c.DisableClientAuthenticationRequest(input)
3144	req.SetContext(ctx)
3145	req.ApplyOptions(opts...)
3146	return out, req.Send()
3147}
3148
3149const opDisableLDAPS = "DisableLDAPS"
3150
3151// DisableLDAPSRequest generates a "aws/request.Request" representing the
3152// client's request for the DisableLDAPS operation. The "output" return
3153// value will be populated with the request's response once the request completes
3154// successfully.
3155//
3156// Use "Send" method on the returned Request to send the API call to the service.
3157// the "output" return value is not valid until after Send returns without error.
3158//
3159// See DisableLDAPS for more information on using the DisableLDAPS
3160// API call, and error handling.
3161//
3162// This method is useful when you want to inject custom logic or configuration
3163// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3164//
3165//
3166//    // Example sending a request using the DisableLDAPSRequest method.
3167//    req, resp := client.DisableLDAPSRequest(params)
3168//
3169//    err := req.Send()
3170//    if err == nil { // resp is now filled
3171//        fmt.Println(resp)
3172//    }
3173//
3174// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableLDAPS
3175func (c *DirectoryService) DisableLDAPSRequest(input *DisableLDAPSInput) (req *request.Request, output *DisableLDAPSOutput) {
3176	op := &request.Operation{
3177		Name:       opDisableLDAPS,
3178		HTTPMethod: "POST",
3179		HTTPPath:   "/",
3180	}
3181
3182	if input == nil {
3183		input = &DisableLDAPSInput{}
3184	}
3185
3186	output = &DisableLDAPSOutput{}
3187	req = c.newRequest(op, input, output)
3188	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3189	return
3190}
3191
3192// DisableLDAPS API operation for AWS Directory Service.
3193//
3194// Deactivates LDAP secure calls for the specified directory.
3195//
3196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3197// with awserr.Error's Code and Message methods to get detailed information about
3198// the error.
3199//
3200// See the AWS API reference guide for AWS Directory Service's
3201// API operation DisableLDAPS for usage and error information.
3202//
3203// Returned Error Types:
3204//   * DirectoryUnavailableException
3205//   The specified directory is unavailable or could not be found.
3206//
3207//   * DirectoryDoesNotExistException
3208//   The specified directory does not exist in the system.
3209//
3210//   * InvalidLDAPSStatusException
3211//   The LDAP activities could not be performed because they are limited by the
3212//   LDAPS status.
3213//
3214//   * UnsupportedOperationException
3215//   The operation is not supported.
3216//
3217//   * InvalidParameterException
3218//   One or more parameters are not valid.
3219//
3220//   * ClientException
3221//   A client exception has occurred.
3222//
3223//   * ServiceException
3224//   An exception has occurred in AWS Directory Service.
3225//
3226// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableLDAPS
3227func (c *DirectoryService) DisableLDAPS(input *DisableLDAPSInput) (*DisableLDAPSOutput, error) {
3228	req, out := c.DisableLDAPSRequest(input)
3229	return out, req.Send()
3230}
3231
3232// DisableLDAPSWithContext is the same as DisableLDAPS with the addition of
3233// the ability to pass a context and additional request options.
3234//
3235// See DisableLDAPS for details on how to use this API operation.
3236//
3237// The context must be non-nil and will be used for request cancellation. If
3238// the context is nil a panic will occur. In the future the SDK may create
3239// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3240// for more information on using Contexts.
3241func (c *DirectoryService) DisableLDAPSWithContext(ctx aws.Context, input *DisableLDAPSInput, opts ...request.Option) (*DisableLDAPSOutput, error) {
3242	req, out := c.DisableLDAPSRequest(input)
3243	req.SetContext(ctx)
3244	req.ApplyOptions(opts...)
3245	return out, req.Send()
3246}
3247
3248const opDisableRadius = "DisableRadius"
3249
3250// DisableRadiusRequest generates a "aws/request.Request" representing the
3251// client's request for the DisableRadius operation. The "output" return
3252// value will be populated with the request's response once the request completes
3253// successfully.
3254//
3255// Use "Send" method on the returned Request to send the API call to the service.
3256// the "output" return value is not valid until after Send returns without error.
3257//
3258// See DisableRadius for more information on using the DisableRadius
3259// API call, and error handling.
3260//
3261// This method is useful when you want to inject custom logic or configuration
3262// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3263//
3264//
3265//    // Example sending a request using the DisableRadiusRequest method.
3266//    req, resp := client.DisableRadiusRequest(params)
3267//
3268//    err := req.Send()
3269//    if err == nil { // resp is now filled
3270//        fmt.Println(resp)
3271//    }
3272//
3273// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
3274func (c *DirectoryService) DisableRadiusRequest(input *DisableRadiusInput) (req *request.Request, output *DisableRadiusOutput) {
3275	op := &request.Operation{
3276		Name:       opDisableRadius,
3277		HTTPMethod: "POST",
3278		HTTPPath:   "/",
3279	}
3280
3281	if input == nil {
3282		input = &DisableRadiusInput{}
3283	}
3284
3285	output = &DisableRadiusOutput{}
3286	req = c.newRequest(op, input, output)
3287	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3288	return
3289}
3290
3291// DisableRadius API operation for AWS Directory Service.
3292//
3293// Disables multi-factor authentication (MFA) with the Remote Authentication
3294// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
3295// directory.
3296//
3297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3298// with awserr.Error's Code and Message methods to get detailed information about
3299// the error.
3300//
3301// See the AWS API reference guide for AWS Directory Service's
3302// API operation DisableRadius for usage and error information.
3303//
3304// Returned Error Types:
3305//   * EntityDoesNotExistException
3306//   The specified entity could not be found.
3307//
3308//   * ClientException
3309//   A client exception has occurred.
3310//
3311//   * ServiceException
3312//   An exception has occurred in AWS Directory Service.
3313//
3314// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
3315func (c *DirectoryService) DisableRadius(input *DisableRadiusInput) (*DisableRadiusOutput, error) {
3316	req, out := c.DisableRadiusRequest(input)
3317	return out, req.Send()
3318}
3319
3320// DisableRadiusWithContext is the same as DisableRadius with the addition of
3321// the ability to pass a context and additional request options.
3322//
3323// See DisableRadius for details on how to use this API operation.
3324//
3325// The context must be non-nil and will be used for request cancellation. If
3326// the context is nil a panic will occur. In the future the SDK may create
3327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3328// for more information on using Contexts.
3329func (c *DirectoryService) DisableRadiusWithContext(ctx aws.Context, input *DisableRadiusInput, opts ...request.Option) (*DisableRadiusOutput, error) {
3330	req, out := c.DisableRadiusRequest(input)
3331	req.SetContext(ctx)
3332	req.ApplyOptions(opts...)
3333	return out, req.Send()
3334}
3335
3336const opDisableSso = "DisableSso"
3337
3338// DisableSsoRequest generates a "aws/request.Request" representing the
3339// client's request for the DisableSso operation. The "output" return
3340// value will be populated with the request's response once the request completes
3341// successfully.
3342//
3343// Use "Send" method on the returned Request to send the API call to the service.
3344// the "output" return value is not valid until after Send returns without error.
3345//
3346// See DisableSso for more information on using the DisableSso
3347// API call, and error handling.
3348//
3349// This method is useful when you want to inject custom logic or configuration
3350// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3351//
3352//
3353//    // Example sending a request using the DisableSsoRequest method.
3354//    req, resp := client.DisableSsoRequest(params)
3355//
3356//    err := req.Send()
3357//    if err == nil { // resp is now filled
3358//        fmt.Println(resp)
3359//    }
3360//
3361// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
3362func (c *DirectoryService) DisableSsoRequest(input *DisableSsoInput) (req *request.Request, output *DisableSsoOutput) {
3363	op := &request.Operation{
3364		Name:       opDisableSso,
3365		HTTPMethod: "POST",
3366		HTTPPath:   "/",
3367	}
3368
3369	if input == nil {
3370		input = &DisableSsoInput{}
3371	}
3372
3373	output = &DisableSsoOutput{}
3374	req = c.newRequest(op, input, output)
3375	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3376	return
3377}
3378
3379// DisableSso API operation for AWS Directory Service.
3380//
3381// Disables single-sign on for a directory.
3382//
3383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3384// with awserr.Error's Code and Message methods to get detailed information about
3385// the error.
3386//
3387// See the AWS API reference guide for AWS Directory Service's
3388// API operation DisableSso for usage and error information.
3389//
3390// Returned Error Types:
3391//   * EntityDoesNotExistException
3392//   The specified entity could not be found.
3393//
3394//   * InsufficientPermissionsException
3395//   The account does not have sufficient permission to perform the operation.
3396//
3397//   * AuthenticationFailedException
3398//   An authentication error occurred.
3399//
3400//   * ClientException
3401//   A client exception has occurred.
3402//
3403//   * ServiceException
3404//   An exception has occurred in AWS Directory Service.
3405//
3406// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
3407func (c *DirectoryService) DisableSso(input *DisableSsoInput) (*DisableSsoOutput, error) {
3408	req, out := c.DisableSsoRequest(input)
3409	return out, req.Send()
3410}
3411
3412// DisableSsoWithContext is the same as DisableSso with the addition of
3413// the ability to pass a context and additional request options.
3414//
3415// See DisableSso for details on how to use this API operation.
3416//
3417// The context must be non-nil and will be used for request cancellation. If
3418// the context is nil a panic will occur. In the future the SDK may create
3419// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3420// for more information on using Contexts.
3421func (c *DirectoryService) DisableSsoWithContext(ctx aws.Context, input *DisableSsoInput, opts ...request.Option) (*DisableSsoOutput, error) {
3422	req, out := c.DisableSsoRequest(input)
3423	req.SetContext(ctx)
3424	req.ApplyOptions(opts...)
3425	return out, req.Send()
3426}
3427
3428const opEnableClientAuthentication = "EnableClientAuthentication"
3429
3430// EnableClientAuthenticationRequest generates a "aws/request.Request" representing the
3431// client's request for the EnableClientAuthentication operation. The "output" return
3432// value will be populated with the request's response once the request completes
3433// successfully.
3434//
3435// Use "Send" method on the returned Request to send the API call to the service.
3436// the "output" return value is not valid until after Send returns without error.
3437//
3438// See EnableClientAuthentication for more information on using the EnableClientAuthentication
3439// API call, and error handling.
3440//
3441// This method is useful when you want to inject custom logic or configuration
3442// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3443//
3444//
3445//    // Example sending a request using the EnableClientAuthenticationRequest method.
3446//    req, resp := client.EnableClientAuthenticationRequest(params)
3447//
3448//    err := req.Send()
3449//    if err == nil { // resp is now filled
3450//        fmt.Println(resp)
3451//    }
3452//
3453// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableClientAuthentication
3454func (c *DirectoryService) EnableClientAuthenticationRequest(input *EnableClientAuthenticationInput) (req *request.Request, output *EnableClientAuthenticationOutput) {
3455	op := &request.Operation{
3456		Name:       opEnableClientAuthentication,
3457		HTTPMethod: "POST",
3458		HTTPPath:   "/",
3459	}
3460
3461	if input == nil {
3462		input = &EnableClientAuthenticationInput{}
3463	}
3464
3465	output = &EnableClientAuthenticationOutput{}
3466	req = c.newRequest(op, input, output)
3467	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3468	return
3469}
3470
3471// EnableClientAuthentication API operation for AWS Directory Service.
3472//
3473// Enables alternative client authentication methods for the specified directory.
3474//
3475// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3476// with awserr.Error's Code and Message methods to get detailed information about
3477// the error.
3478//
3479// See the AWS API reference guide for AWS Directory Service's
3480// API operation EnableClientAuthentication for usage and error information.
3481//
3482// Returned Error Types:
3483//   * DirectoryDoesNotExistException
3484//   The specified directory does not exist in the system.
3485//
3486//   * UnsupportedOperationException
3487//   The operation is not supported.
3488//
3489//   * InvalidClientAuthStatusException
3490//   Client authentication is already enabled.
3491//
3492//   * AccessDeniedException
3493//   Client authentication is not available in this region at this time.
3494//
3495//   * NoAvailableCertificateException
3496//   Client authentication setup could not be completed because at least one valid
3497//   certificate must be registered in the system.
3498//
3499//   * ClientException
3500//   A client exception has occurred.
3501//
3502//   * ServiceException
3503//   An exception has occurred in AWS Directory Service.
3504//
3505// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableClientAuthentication
3506func (c *DirectoryService) EnableClientAuthentication(input *EnableClientAuthenticationInput) (*EnableClientAuthenticationOutput, error) {
3507	req, out := c.EnableClientAuthenticationRequest(input)
3508	return out, req.Send()
3509}
3510
3511// EnableClientAuthenticationWithContext is the same as EnableClientAuthentication with the addition of
3512// the ability to pass a context and additional request options.
3513//
3514// See EnableClientAuthentication for details on how to use this API operation.
3515//
3516// The context must be non-nil and will be used for request cancellation. If
3517// the context is nil a panic will occur. In the future the SDK may create
3518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3519// for more information on using Contexts.
3520func (c *DirectoryService) EnableClientAuthenticationWithContext(ctx aws.Context, input *EnableClientAuthenticationInput, opts ...request.Option) (*EnableClientAuthenticationOutput, error) {
3521	req, out := c.EnableClientAuthenticationRequest(input)
3522	req.SetContext(ctx)
3523	req.ApplyOptions(opts...)
3524	return out, req.Send()
3525}
3526
3527const opEnableLDAPS = "EnableLDAPS"
3528
3529// EnableLDAPSRequest generates a "aws/request.Request" representing the
3530// client's request for the EnableLDAPS operation. The "output" return
3531// value will be populated with the request's response once the request completes
3532// successfully.
3533//
3534// Use "Send" method on the returned Request to send the API call to the service.
3535// the "output" return value is not valid until after Send returns without error.
3536//
3537// See EnableLDAPS for more information on using the EnableLDAPS
3538// API call, and error handling.
3539//
3540// This method is useful when you want to inject custom logic or configuration
3541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3542//
3543//
3544//    // Example sending a request using the EnableLDAPSRequest method.
3545//    req, resp := client.EnableLDAPSRequest(params)
3546//
3547//    err := req.Send()
3548//    if err == nil { // resp is now filled
3549//        fmt.Println(resp)
3550//    }
3551//
3552// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableLDAPS
3553func (c *DirectoryService) EnableLDAPSRequest(input *EnableLDAPSInput) (req *request.Request, output *EnableLDAPSOutput) {
3554	op := &request.Operation{
3555		Name:       opEnableLDAPS,
3556		HTTPMethod: "POST",
3557		HTTPPath:   "/",
3558	}
3559
3560	if input == nil {
3561		input = &EnableLDAPSInput{}
3562	}
3563
3564	output = &EnableLDAPSOutput{}
3565	req = c.newRequest(op, input, output)
3566	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3567	return
3568}
3569
3570// EnableLDAPS API operation for AWS Directory Service.
3571//
3572// Activates the switch for the specific directory to always use LDAP secure
3573// calls.
3574//
3575// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3576// with awserr.Error's Code and Message methods to get detailed information about
3577// the error.
3578//
3579// See the AWS API reference guide for AWS Directory Service's
3580// API operation EnableLDAPS for usage and error information.
3581//
3582// Returned Error Types:
3583//   * DirectoryUnavailableException
3584//   The specified directory is unavailable or could not be found.
3585//
3586//   * DirectoryDoesNotExistException
3587//   The specified directory does not exist in the system.
3588//
3589//   * NoAvailableCertificateException
3590//   Client authentication setup could not be completed because at least one valid
3591//   certificate must be registered in the system.
3592//
3593//   * InvalidLDAPSStatusException
3594//   The LDAP activities could not be performed because they are limited by the
3595//   LDAPS status.
3596//
3597//   * UnsupportedOperationException
3598//   The operation is not supported.
3599//
3600//   * InvalidParameterException
3601//   One or more parameters are not valid.
3602//
3603//   * ClientException
3604//   A client exception has occurred.
3605//
3606//   * ServiceException
3607//   An exception has occurred in AWS Directory Service.
3608//
3609// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableLDAPS
3610func (c *DirectoryService) EnableLDAPS(input *EnableLDAPSInput) (*EnableLDAPSOutput, error) {
3611	req, out := c.EnableLDAPSRequest(input)
3612	return out, req.Send()
3613}
3614
3615// EnableLDAPSWithContext is the same as EnableLDAPS with the addition of
3616// the ability to pass a context and additional request options.
3617//
3618// See EnableLDAPS for details on how to use this API operation.
3619//
3620// The context must be non-nil and will be used for request cancellation. If
3621// the context is nil a panic will occur. In the future the SDK may create
3622// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3623// for more information on using Contexts.
3624func (c *DirectoryService) EnableLDAPSWithContext(ctx aws.Context, input *EnableLDAPSInput, opts ...request.Option) (*EnableLDAPSOutput, error) {
3625	req, out := c.EnableLDAPSRequest(input)
3626	req.SetContext(ctx)
3627	req.ApplyOptions(opts...)
3628	return out, req.Send()
3629}
3630
3631const opEnableRadius = "EnableRadius"
3632
3633// EnableRadiusRequest generates a "aws/request.Request" representing the
3634// client's request for the EnableRadius operation. The "output" return
3635// value will be populated with the request's response once the request completes
3636// successfully.
3637//
3638// Use "Send" method on the returned Request to send the API call to the service.
3639// the "output" return value is not valid until after Send returns without error.
3640//
3641// See EnableRadius for more information on using the EnableRadius
3642// API call, and error handling.
3643//
3644// This method is useful when you want to inject custom logic or configuration
3645// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3646//
3647//
3648//    // Example sending a request using the EnableRadiusRequest method.
3649//    req, resp := client.EnableRadiusRequest(params)
3650//
3651//    err := req.Send()
3652//    if err == nil { // resp is now filled
3653//        fmt.Println(resp)
3654//    }
3655//
3656// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
3657func (c *DirectoryService) EnableRadiusRequest(input *EnableRadiusInput) (req *request.Request, output *EnableRadiusOutput) {
3658	op := &request.Operation{
3659		Name:       opEnableRadius,
3660		HTTPMethod: "POST",
3661		HTTPPath:   "/",
3662	}
3663
3664	if input == nil {
3665		input = &EnableRadiusInput{}
3666	}
3667
3668	output = &EnableRadiusOutput{}
3669	req = c.newRequest(op, input, output)
3670	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3671	return
3672}
3673
3674// EnableRadius API operation for AWS Directory Service.
3675//
3676// Enables multi-factor authentication (MFA) with the Remote Authentication
3677// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
3678// directory.
3679//
3680// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3681// with awserr.Error's Code and Message methods to get detailed information about
3682// the error.
3683//
3684// See the AWS API reference guide for AWS Directory Service's
3685// API operation EnableRadius for usage and error information.
3686//
3687// Returned Error Types:
3688//   * InvalidParameterException
3689//   One or more parameters are not valid.
3690//
3691//   * EntityAlreadyExistsException
3692//   The specified entity already exists.
3693//
3694//   * EntityDoesNotExistException
3695//   The specified entity could not be found.
3696//
3697//   * ClientException
3698//   A client exception has occurred.
3699//
3700//   * ServiceException
3701//   An exception has occurred in AWS Directory Service.
3702//
3703// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
3704func (c *DirectoryService) EnableRadius(input *EnableRadiusInput) (*EnableRadiusOutput, error) {
3705	req, out := c.EnableRadiusRequest(input)
3706	return out, req.Send()
3707}
3708
3709// EnableRadiusWithContext is the same as EnableRadius with the addition of
3710// the ability to pass a context and additional request options.
3711//
3712// See EnableRadius for details on how to use this API operation.
3713//
3714// The context must be non-nil and will be used for request cancellation. If
3715// the context is nil a panic will occur. In the future the SDK may create
3716// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3717// for more information on using Contexts.
3718func (c *DirectoryService) EnableRadiusWithContext(ctx aws.Context, input *EnableRadiusInput, opts ...request.Option) (*EnableRadiusOutput, error) {
3719	req, out := c.EnableRadiusRequest(input)
3720	req.SetContext(ctx)
3721	req.ApplyOptions(opts...)
3722	return out, req.Send()
3723}
3724
3725const opEnableSso = "EnableSso"
3726
3727// EnableSsoRequest generates a "aws/request.Request" representing the
3728// client's request for the EnableSso operation. The "output" return
3729// value will be populated with the request's response once the request completes
3730// successfully.
3731//
3732// Use "Send" method on the returned Request to send the API call to the service.
3733// the "output" return value is not valid until after Send returns without error.
3734//
3735// See EnableSso for more information on using the EnableSso
3736// API call, and error handling.
3737//
3738// This method is useful when you want to inject custom logic or configuration
3739// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3740//
3741//
3742//    // Example sending a request using the EnableSsoRequest method.
3743//    req, resp := client.EnableSsoRequest(params)
3744//
3745//    err := req.Send()
3746//    if err == nil { // resp is now filled
3747//        fmt.Println(resp)
3748//    }
3749//
3750// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
3751func (c *DirectoryService) EnableSsoRequest(input *EnableSsoInput) (req *request.Request, output *EnableSsoOutput) {
3752	op := &request.Operation{
3753		Name:       opEnableSso,
3754		HTTPMethod: "POST",
3755		HTTPPath:   "/",
3756	}
3757
3758	if input == nil {
3759		input = &EnableSsoInput{}
3760	}
3761
3762	output = &EnableSsoOutput{}
3763	req = c.newRequest(op, input, output)
3764	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3765	return
3766}
3767
3768// EnableSso API operation for AWS Directory Service.
3769//
3770// Enables single sign-on for a directory. Single sign-on allows users in your
3771// directory to access certain AWS services from a computer joined to the directory
3772// without having to enter their credentials separately.
3773//
3774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3775// with awserr.Error's Code and Message methods to get detailed information about
3776// the error.
3777//
3778// See the AWS API reference guide for AWS Directory Service's
3779// API operation EnableSso for usage and error information.
3780//
3781// Returned Error Types:
3782//   * EntityDoesNotExistException
3783//   The specified entity could not be found.
3784//
3785//   * InsufficientPermissionsException
3786//   The account does not have sufficient permission to perform the operation.
3787//
3788//   * AuthenticationFailedException
3789//   An authentication error occurred.
3790//
3791//   * ClientException
3792//   A client exception has occurred.
3793//
3794//   * ServiceException
3795//   An exception has occurred in AWS Directory Service.
3796//
3797// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
3798func (c *DirectoryService) EnableSso(input *EnableSsoInput) (*EnableSsoOutput, error) {
3799	req, out := c.EnableSsoRequest(input)
3800	return out, req.Send()
3801}
3802
3803// EnableSsoWithContext is the same as EnableSso with the addition of
3804// the ability to pass a context and additional request options.
3805//
3806// See EnableSso for details on how to use this API operation.
3807//
3808// The context must be non-nil and will be used for request cancellation. If
3809// the context is nil a panic will occur. In the future the SDK may create
3810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3811// for more information on using Contexts.
3812func (c *DirectoryService) EnableSsoWithContext(ctx aws.Context, input *EnableSsoInput, opts ...request.Option) (*EnableSsoOutput, error) {
3813	req, out := c.EnableSsoRequest(input)
3814	req.SetContext(ctx)
3815	req.ApplyOptions(opts...)
3816	return out, req.Send()
3817}
3818
3819const opGetDirectoryLimits = "GetDirectoryLimits"
3820
3821// GetDirectoryLimitsRequest generates a "aws/request.Request" representing the
3822// client's request for the GetDirectoryLimits operation. The "output" return
3823// value will be populated with the request's response once the request completes
3824// successfully.
3825//
3826// Use "Send" method on the returned Request to send the API call to the service.
3827// the "output" return value is not valid until after Send returns without error.
3828//
3829// See GetDirectoryLimits for more information on using the GetDirectoryLimits
3830// API call, and error handling.
3831//
3832// This method is useful when you want to inject custom logic or configuration
3833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3834//
3835//
3836//    // Example sending a request using the GetDirectoryLimitsRequest method.
3837//    req, resp := client.GetDirectoryLimitsRequest(params)
3838//
3839//    err := req.Send()
3840//    if err == nil { // resp is now filled
3841//        fmt.Println(resp)
3842//    }
3843//
3844// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
3845func (c *DirectoryService) GetDirectoryLimitsRequest(input *GetDirectoryLimitsInput) (req *request.Request, output *GetDirectoryLimitsOutput) {
3846	op := &request.Operation{
3847		Name:       opGetDirectoryLimits,
3848		HTTPMethod: "POST",
3849		HTTPPath:   "/",
3850	}
3851
3852	if input == nil {
3853		input = &GetDirectoryLimitsInput{}
3854	}
3855
3856	output = &GetDirectoryLimitsOutput{}
3857	req = c.newRequest(op, input, output)
3858	return
3859}
3860
3861// GetDirectoryLimits API operation for AWS Directory Service.
3862//
3863// Obtains directory limit information for the current Region.
3864//
3865// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3866// with awserr.Error's Code and Message methods to get detailed information about
3867// the error.
3868//
3869// See the AWS API reference guide for AWS Directory Service's
3870// API operation GetDirectoryLimits for usage and error information.
3871//
3872// Returned Error Types:
3873//   * EntityDoesNotExistException
3874//   The specified entity could not be found.
3875//
3876//   * ClientException
3877//   A client exception has occurred.
3878//
3879//   * ServiceException
3880//   An exception has occurred in AWS Directory Service.
3881//
3882// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
3883func (c *DirectoryService) GetDirectoryLimits(input *GetDirectoryLimitsInput) (*GetDirectoryLimitsOutput, error) {
3884	req, out := c.GetDirectoryLimitsRequest(input)
3885	return out, req.Send()
3886}
3887
3888// GetDirectoryLimitsWithContext is the same as GetDirectoryLimits with the addition of
3889// the ability to pass a context and additional request options.
3890//
3891// See GetDirectoryLimits for details on how to use this API operation.
3892//
3893// The context must be non-nil and will be used for request cancellation. If
3894// the context is nil a panic will occur. In the future the SDK may create
3895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3896// for more information on using Contexts.
3897func (c *DirectoryService) GetDirectoryLimitsWithContext(ctx aws.Context, input *GetDirectoryLimitsInput, opts ...request.Option) (*GetDirectoryLimitsOutput, error) {
3898	req, out := c.GetDirectoryLimitsRequest(input)
3899	req.SetContext(ctx)
3900	req.ApplyOptions(opts...)
3901	return out, req.Send()
3902}
3903
3904const opGetSnapshotLimits = "GetSnapshotLimits"
3905
3906// GetSnapshotLimitsRequest generates a "aws/request.Request" representing the
3907// client's request for the GetSnapshotLimits operation. The "output" return
3908// value will be populated with the request's response once the request completes
3909// successfully.
3910//
3911// Use "Send" method on the returned Request to send the API call to the service.
3912// the "output" return value is not valid until after Send returns without error.
3913//
3914// See GetSnapshotLimits for more information on using the GetSnapshotLimits
3915// API call, and error handling.
3916//
3917// This method is useful when you want to inject custom logic or configuration
3918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3919//
3920//
3921//    // Example sending a request using the GetSnapshotLimitsRequest method.
3922//    req, resp := client.GetSnapshotLimitsRequest(params)
3923//
3924//    err := req.Send()
3925//    if err == nil { // resp is now filled
3926//        fmt.Println(resp)
3927//    }
3928//
3929// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
3930func (c *DirectoryService) GetSnapshotLimitsRequest(input *GetSnapshotLimitsInput) (req *request.Request, output *GetSnapshotLimitsOutput) {
3931	op := &request.Operation{
3932		Name:       opGetSnapshotLimits,
3933		HTTPMethod: "POST",
3934		HTTPPath:   "/",
3935	}
3936
3937	if input == nil {
3938		input = &GetSnapshotLimitsInput{}
3939	}
3940
3941	output = &GetSnapshotLimitsOutput{}
3942	req = c.newRequest(op, input, output)
3943	return
3944}
3945
3946// GetSnapshotLimits API operation for AWS Directory Service.
3947//
3948// Obtains the manual snapshot limits for a directory.
3949//
3950// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3951// with awserr.Error's Code and Message methods to get detailed information about
3952// the error.
3953//
3954// See the AWS API reference guide for AWS Directory Service's
3955// API operation GetSnapshotLimits for usage and error information.
3956//
3957// Returned Error Types:
3958//   * EntityDoesNotExistException
3959//   The specified entity could not be found.
3960//
3961//   * ClientException
3962//   A client exception has occurred.
3963//
3964//   * ServiceException
3965//   An exception has occurred in AWS Directory Service.
3966//
3967// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
3968func (c *DirectoryService) GetSnapshotLimits(input *GetSnapshotLimitsInput) (*GetSnapshotLimitsOutput, error) {
3969	req, out := c.GetSnapshotLimitsRequest(input)
3970	return out, req.Send()
3971}
3972
3973// GetSnapshotLimitsWithContext is the same as GetSnapshotLimits with the addition of
3974// the ability to pass a context and additional request options.
3975//
3976// See GetSnapshotLimits for details on how to use this API operation.
3977//
3978// The context must be non-nil and will be used for request cancellation. If
3979// the context is nil a panic will occur. In the future the SDK may create
3980// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3981// for more information on using Contexts.
3982func (c *DirectoryService) GetSnapshotLimitsWithContext(ctx aws.Context, input *GetSnapshotLimitsInput, opts ...request.Option) (*GetSnapshotLimitsOutput, error) {
3983	req, out := c.GetSnapshotLimitsRequest(input)
3984	req.SetContext(ctx)
3985	req.ApplyOptions(opts...)
3986	return out, req.Send()
3987}
3988
3989const opListCertificates = "ListCertificates"
3990
3991// ListCertificatesRequest generates a "aws/request.Request" representing the
3992// client's request for the ListCertificates operation. The "output" return
3993// value will be populated with the request's response once the request completes
3994// successfully.
3995//
3996// Use "Send" method on the returned Request to send the API call to the service.
3997// the "output" return value is not valid until after Send returns without error.
3998//
3999// See ListCertificates for more information on using the ListCertificates
4000// API call, and error handling.
4001//
4002// This method is useful when you want to inject custom logic or configuration
4003// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4004//
4005//
4006//    // Example sending a request using the ListCertificatesRequest method.
4007//    req, resp := client.ListCertificatesRequest(params)
4008//
4009//    err := req.Send()
4010//    if err == nil { // resp is now filled
4011//        fmt.Println(resp)
4012//    }
4013//
4014// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListCertificates
4015func (c *DirectoryService) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
4016	op := &request.Operation{
4017		Name:       opListCertificates,
4018		HTTPMethod: "POST",
4019		HTTPPath:   "/",
4020	}
4021
4022	if input == nil {
4023		input = &ListCertificatesInput{}
4024	}
4025
4026	output = &ListCertificatesOutput{}
4027	req = c.newRequest(op, input, output)
4028	return
4029}
4030
4031// ListCertificates API operation for AWS Directory Service.
4032//
4033// For the specified directory, lists all the certificates registered for a
4034// secure LDAP or client certificate authentication.
4035//
4036// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4037// with awserr.Error's Code and Message methods to get detailed information about
4038// the error.
4039//
4040// See the AWS API reference guide for AWS Directory Service's
4041// API operation ListCertificates for usage and error information.
4042//
4043// Returned Error Types:
4044//   * DirectoryDoesNotExistException
4045//   The specified directory does not exist in the system.
4046//
4047//   * UnsupportedOperationException
4048//   The operation is not supported.
4049//
4050//   * InvalidParameterException
4051//   One or more parameters are not valid.
4052//
4053//   * InvalidNextTokenException
4054//   The NextToken value is not valid.
4055//
4056//   * ClientException
4057//   A client exception has occurred.
4058//
4059//   * ServiceException
4060//   An exception has occurred in AWS Directory Service.
4061//
4062// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListCertificates
4063func (c *DirectoryService) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
4064	req, out := c.ListCertificatesRequest(input)
4065	return out, req.Send()
4066}
4067
4068// ListCertificatesWithContext is the same as ListCertificates with the addition of
4069// the ability to pass a context and additional request options.
4070//
4071// See ListCertificates for details on how to use this API operation.
4072//
4073// The context must be non-nil and will be used for request cancellation. If
4074// the context is nil a panic will occur. In the future the SDK may create
4075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4076// for more information on using Contexts.
4077func (c *DirectoryService) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
4078	req, out := c.ListCertificatesRequest(input)
4079	req.SetContext(ctx)
4080	req.ApplyOptions(opts...)
4081	return out, req.Send()
4082}
4083
4084const opListIpRoutes = "ListIpRoutes"
4085
4086// ListIpRoutesRequest generates a "aws/request.Request" representing the
4087// client's request for the ListIpRoutes operation. The "output" return
4088// value will be populated with the request's response once the request completes
4089// successfully.
4090//
4091// Use "Send" method on the returned Request to send the API call to the service.
4092// the "output" return value is not valid until after Send returns without error.
4093//
4094// See ListIpRoutes for more information on using the ListIpRoutes
4095// API call, and error handling.
4096//
4097// This method is useful when you want to inject custom logic or configuration
4098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4099//
4100//
4101//    // Example sending a request using the ListIpRoutesRequest method.
4102//    req, resp := client.ListIpRoutesRequest(params)
4103//
4104//    err := req.Send()
4105//    if err == nil { // resp is now filled
4106//        fmt.Println(resp)
4107//    }
4108//
4109// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
4110func (c *DirectoryService) ListIpRoutesRequest(input *ListIpRoutesInput) (req *request.Request, output *ListIpRoutesOutput) {
4111	op := &request.Operation{
4112		Name:       opListIpRoutes,
4113		HTTPMethod: "POST",
4114		HTTPPath:   "/",
4115	}
4116
4117	if input == nil {
4118		input = &ListIpRoutesInput{}
4119	}
4120
4121	output = &ListIpRoutesOutput{}
4122	req = c.newRequest(op, input, output)
4123	return
4124}
4125
4126// ListIpRoutes API operation for AWS Directory Service.
4127//
4128// Lists the address blocks that you have added to a directory.
4129//
4130// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4131// with awserr.Error's Code and Message methods to get detailed information about
4132// the error.
4133//
4134// See the AWS API reference guide for AWS Directory Service's
4135// API operation ListIpRoutes for usage and error information.
4136//
4137// Returned Error Types:
4138//   * EntityDoesNotExistException
4139//   The specified entity could not be found.
4140//
4141//   * InvalidNextTokenException
4142//   The NextToken value is not valid.
4143//
4144//   * InvalidParameterException
4145//   One or more parameters are not valid.
4146//
4147//   * ClientException
4148//   A client exception has occurred.
4149//
4150//   * ServiceException
4151//   An exception has occurred in AWS Directory Service.
4152//
4153// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
4154func (c *DirectoryService) ListIpRoutes(input *ListIpRoutesInput) (*ListIpRoutesOutput, error) {
4155	req, out := c.ListIpRoutesRequest(input)
4156	return out, req.Send()
4157}
4158
4159// ListIpRoutesWithContext is the same as ListIpRoutes with the addition of
4160// the ability to pass a context and additional request options.
4161//
4162// See ListIpRoutes for details on how to use this API operation.
4163//
4164// The context must be non-nil and will be used for request cancellation. If
4165// the context is nil a panic will occur. In the future the SDK may create
4166// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4167// for more information on using Contexts.
4168func (c *DirectoryService) ListIpRoutesWithContext(ctx aws.Context, input *ListIpRoutesInput, opts ...request.Option) (*ListIpRoutesOutput, error) {
4169	req, out := c.ListIpRoutesRequest(input)
4170	req.SetContext(ctx)
4171	req.ApplyOptions(opts...)
4172	return out, req.Send()
4173}
4174
4175const opListLogSubscriptions = "ListLogSubscriptions"
4176
4177// ListLogSubscriptionsRequest generates a "aws/request.Request" representing the
4178// client's request for the ListLogSubscriptions operation. The "output" return
4179// value will be populated with the request's response once the request completes
4180// successfully.
4181//
4182// Use "Send" method on the returned Request to send the API call to the service.
4183// the "output" return value is not valid until after Send returns without error.
4184//
4185// See ListLogSubscriptions for more information on using the ListLogSubscriptions
4186// API call, and error handling.
4187//
4188// This method is useful when you want to inject custom logic or configuration
4189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4190//
4191//
4192//    // Example sending a request using the ListLogSubscriptionsRequest method.
4193//    req, resp := client.ListLogSubscriptionsRequest(params)
4194//
4195//    err := req.Send()
4196//    if err == nil { // resp is now filled
4197//        fmt.Println(resp)
4198//    }
4199//
4200// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
4201func (c *DirectoryService) ListLogSubscriptionsRequest(input *ListLogSubscriptionsInput) (req *request.Request, output *ListLogSubscriptionsOutput) {
4202	op := &request.Operation{
4203		Name:       opListLogSubscriptions,
4204		HTTPMethod: "POST",
4205		HTTPPath:   "/",
4206	}
4207
4208	if input == nil {
4209		input = &ListLogSubscriptionsInput{}
4210	}
4211
4212	output = &ListLogSubscriptionsOutput{}
4213	req = c.newRequest(op, input, output)
4214	return
4215}
4216
4217// ListLogSubscriptions API operation for AWS Directory Service.
4218//
4219// Lists the active log subscriptions for the AWS account.
4220//
4221// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4222// with awserr.Error's Code and Message methods to get detailed information about
4223// the error.
4224//
4225// See the AWS API reference guide for AWS Directory Service's
4226// API operation ListLogSubscriptions for usage and error information.
4227//
4228// Returned Error Types:
4229//   * EntityDoesNotExistException
4230//   The specified entity could not be found.
4231//
4232//   * InvalidNextTokenException
4233//   The NextToken value is not valid.
4234//
4235//   * ClientException
4236//   A client exception has occurred.
4237//
4238//   * ServiceException
4239//   An exception has occurred in AWS Directory Service.
4240//
4241// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
4242func (c *DirectoryService) ListLogSubscriptions(input *ListLogSubscriptionsInput) (*ListLogSubscriptionsOutput, error) {
4243	req, out := c.ListLogSubscriptionsRequest(input)
4244	return out, req.Send()
4245}
4246
4247// ListLogSubscriptionsWithContext is the same as ListLogSubscriptions with the addition of
4248// the ability to pass a context and additional request options.
4249//
4250// See ListLogSubscriptions for details on how to use this API operation.
4251//
4252// The context must be non-nil and will be used for request cancellation. If
4253// the context is nil a panic will occur. In the future the SDK may create
4254// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4255// for more information on using Contexts.
4256func (c *DirectoryService) ListLogSubscriptionsWithContext(ctx aws.Context, input *ListLogSubscriptionsInput, opts ...request.Option) (*ListLogSubscriptionsOutput, error) {
4257	req, out := c.ListLogSubscriptionsRequest(input)
4258	req.SetContext(ctx)
4259	req.ApplyOptions(opts...)
4260	return out, req.Send()
4261}
4262
4263const opListSchemaExtensions = "ListSchemaExtensions"
4264
4265// ListSchemaExtensionsRequest generates a "aws/request.Request" representing the
4266// client's request for the ListSchemaExtensions operation. The "output" return
4267// value will be populated with the request's response once the request completes
4268// successfully.
4269//
4270// Use "Send" method on the returned Request to send the API call to the service.
4271// the "output" return value is not valid until after Send returns without error.
4272//
4273// See ListSchemaExtensions for more information on using the ListSchemaExtensions
4274// API call, and error handling.
4275//
4276// This method is useful when you want to inject custom logic or configuration
4277// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4278//
4279//
4280//    // Example sending a request using the ListSchemaExtensionsRequest method.
4281//    req, resp := client.ListSchemaExtensionsRequest(params)
4282//
4283//    err := req.Send()
4284//    if err == nil { // resp is now filled
4285//        fmt.Println(resp)
4286//    }
4287//
4288// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
4289func (c *DirectoryService) ListSchemaExtensionsRequest(input *ListSchemaExtensionsInput) (req *request.Request, output *ListSchemaExtensionsOutput) {
4290	op := &request.Operation{
4291		Name:       opListSchemaExtensions,
4292		HTTPMethod: "POST",
4293		HTTPPath:   "/",
4294	}
4295
4296	if input == nil {
4297		input = &ListSchemaExtensionsInput{}
4298	}
4299
4300	output = &ListSchemaExtensionsOutput{}
4301	req = c.newRequest(op, input, output)
4302	return
4303}
4304
4305// ListSchemaExtensions API operation for AWS Directory Service.
4306//
4307// Lists all schema extensions applied to a Microsoft AD Directory.
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 AWS Directory Service's
4314// API operation ListSchemaExtensions for usage and error information.
4315//
4316// Returned Error Types:
4317//   * InvalidNextTokenException
4318//   The NextToken value is not valid.
4319//
4320//   * EntityDoesNotExistException
4321//   The specified entity could not be found.
4322//
4323//   * ClientException
4324//   A client exception has occurred.
4325//
4326//   * ServiceException
4327//   An exception has occurred in AWS Directory Service.
4328//
4329// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
4330func (c *DirectoryService) ListSchemaExtensions(input *ListSchemaExtensionsInput) (*ListSchemaExtensionsOutput, error) {
4331	req, out := c.ListSchemaExtensionsRequest(input)
4332	return out, req.Send()
4333}
4334
4335// ListSchemaExtensionsWithContext is the same as ListSchemaExtensions with the addition of
4336// the ability to pass a context and additional request options.
4337//
4338// See ListSchemaExtensions for details on how to use this API operation.
4339//
4340// The context must be non-nil and will be used for request cancellation. If
4341// the context is nil a panic will occur. In the future the SDK may create
4342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4343// for more information on using Contexts.
4344func (c *DirectoryService) ListSchemaExtensionsWithContext(ctx aws.Context, input *ListSchemaExtensionsInput, opts ...request.Option) (*ListSchemaExtensionsOutput, error) {
4345	req, out := c.ListSchemaExtensionsRequest(input)
4346	req.SetContext(ctx)
4347	req.ApplyOptions(opts...)
4348	return out, req.Send()
4349}
4350
4351const opListTagsForResource = "ListTagsForResource"
4352
4353// ListTagsForResourceRequest generates a "aws/request.Request" representing the
4354// client's request for the ListTagsForResource operation. The "output" return
4355// value will be populated with the request's response once the request completes
4356// successfully.
4357//
4358// Use "Send" method on the returned Request to send the API call to the service.
4359// the "output" return value is not valid until after Send returns without error.
4360//
4361// See ListTagsForResource for more information on using the ListTagsForResource
4362// API call, and error handling.
4363//
4364// This method is useful when you want to inject custom logic or configuration
4365// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4366//
4367//
4368//    // Example sending a request using the ListTagsForResourceRequest method.
4369//    req, resp := client.ListTagsForResourceRequest(params)
4370//
4371//    err := req.Send()
4372//    if err == nil { // resp is now filled
4373//        fmt.Println(resp)
4374//    }
4375//
4376// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
4377func (c *DirectoryService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
4378	op := &request.Operation{
4379		Name:       opListTagsForResource,
4380		HTTPMethod: "POST",
4381		HTTPPath:   "/",
4382	}
4383
4384	if input == nil {
4385		input = &ListTagsForResourceInput{}
4386	}
4387
4388	output = &ListTagsForResourceOutput{}
4389	req = c.newRequest(op, input, output)
4390	return
4391}
4392
4393// ListTagsForResource API operation for AWS Directory Service.
4394//
4395// Lists all tags on a directory.
4396//
4397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4398// with awserr.Error's Code and Message methods to get detailed information about
4399// the error.
4400//
4401// See the AWS API reference guide for AWS Directory Service's
4402// API operation ListTagsForResource for usage and error information.
4403//
4404// Returned Error Types:
4405//   * EntityDoesNotExistException
4406//   The specified entity could not be found.
4407//
4408//   * InvalidNextTokenException
4409//   The NextToken value is not valid.
4410//
4411//   * InvalidParameterException
4412//   One or more parameters are not valid.
4413//
4414//   * ClientException
4415//   A client exception has occurred.
4416//
4417//   * ServiceException
4418//   An exception has occurred in AWS Directory Service.
4419//
4420// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
4421func (c *DirectoryService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4422	req, out := c.ListTagsForResourceRequest(input)
4423	return out, req.Send()
4424}
4425
4426// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4427// the ability to pass a context and additional request options.
4428//
4429// See ListTagsForResource for details on how to use this API operation.
4430//
4431// The context must be non-nil and will be used for request cancellation. If
4432// the context is nil a panic will occur. In the future the SDK may create
4433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4434// for more information on using Contexts.
4435func (c *DirectoryService) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4436	req, out := c.ListTagsForResourceRequest(input)
4437	req.SetContext(ctx)
4438	req.ApplyOptions(opts...)
4439	return out, req.Send()
4440}
4441
4442const opRegisterCertificate = "RegisterCertificate"
4443
4444// RegisterCertificateRequest generates a "aws/request.Request" representing the
4445// client's request for the RegisterCertificate operation. The "output" return
4446// value will be populated with the request's response once the request completes
4447// successfully.
4448//
4449// Use "Send" method on the returned Request to send the API call to the service.
4450// the "output" return value is not valid until after Send returns without error.
4451//
4452// See RegisterCertificate for more information on using the RegisterCertificate
4453// API call, and error handling.
4454//
4455// This method is useful when you want to inject custom logic or configuration
4456// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4457//
4458//
4459//    // Example sending a request using the RegisterCertificateRequest method.
4460//    req, resp := client.RegisterCertificateRequest(params)
4461//
4462//    err := req.Send()
4463//    if err == nil { // resp is now filled
4464//        fmt.Println(resp)
4465//    }
4466//
4467// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterCertificate
4468func (c *DirectoryService) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
4469	op := &request.Operation{
4470		Name:       opRegisterCertificate,
4471		HTTPMethod: "POST",
4472		HTTPPath:   "/",
4473	}
4474
4475	if input == nil {
4476		input = &RegisterCertificateInput{}
4477	}
4478
4479	output = &RegisterCertificateOutput{}
4480	req = c.newRequest(op, input, output)
4481	return
4482}
4483
4484// RegisterCertificate API operation for AWS Directory Service.
4485//
4486// Registers a certificate for a secure LDAP or client certificate authentication.
4487//
4488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4489// with awserr.Error's Code and Message methods to get detailed information about
4490// the error.
4491//
4492// See the AWS API reference guide for AWS Directory Service's
4493// API operation RegisterCertificate for usage and error information.
4494//
4495// Returned Error Types:
4496//   * DirectoryUnavailableException
4497//   The specified directory is unavailable or could not be found.
4498//
4499//   * DirectoryDoesNotExistException
4500//   The specified directory does not exist in the system.
4501//
4502//   * InvalidCertificateException
4503//   The certificate PEM that was provided has incorrect encoding.
4504//
4505//   * CertificateLimitExceededException
4506//   The certificate could not be added because the certificate limit has been
4507//   reached.
4508//
4509//   * CertificateAlreadyExistsException
4510//   The certificate has already been registered into the system.
4511//
4512//   * UnsupportedOperationException
4513//   The operation is not supported.
4514//
4515//   * InvalidParameterException
4516//   One or more parameters are not valid.
4517//
4518//   * ClientException
4519//   A client exception has occurred.
4520//
4521//   * ServiceException
4522//   An exception has occurred in AWS Directory Service.
4523//
4524// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterCertificate
4525func (c *DirectoryService) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
4526	req, out := c.RegisterCertificateRequest(input)
4527	return out, req.Send()
4528}
4529
4530// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
4531// the ability to pass a context and additional request options.
4532//
4533// See RegisterCertificate for details on how to use this API operation.
4534//
4535// The context must be non-nil and will be used for request cancellation. If
4536// the context is nil a panic will occur. In the future the SDK may create
4537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4538// for more information on using Contexts.
4539func (c *DirectoryService) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
4540	req, out := c.RegisterCertificateRequest(input)
4541	req.SetContext(ctx)
4542	req.ApplyOptions(opts...)
4543	return out, req.Send()
4544}
4545
4546const opRegisterEventTopic = "RegisterEventTopic"
4547
4548// RegisterEventTopicRequest generates a "aws/request.Request" representing the
4549// client's request for the RegisterEventTopic operation. The "output" return
4550// value will be populated with the request's response once the request completes
4551// successfully.
4552//
4553// Use "Send" method on the returned Request to send the API call to the service.
4554// the "output" return value is not valid until after Send returns without error.
4555//
4556// See RegisterEventTopic for more information on using the RegisterEventTopic
4557// API call, and error handling.
4558//
4559// This method is useful when you want to inject custom logic or configuration
4560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4561//
4562//
4563//    // Example sending a request using the RegisterEventTopicRequest method.
4564//    req, resp := client.RegisterEventTopicRequest(params)
4565//
4566//    err := req.Send()
4567//    if err == nil { // resp is now filled
4568//        fmt.Println(resp)
4569//    }
4570//
4571// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
4572func (c *DirectoryService) RegisterEventTopicRequest(input *RegisterEventTopicInput) (req *request.Request, output *RegisterEventTopicOutput) {
4573	op := &request.Operation{
4574		Name:       opRegisterEventTopic,
4575		HTTPMethod: "POST",
4576		HTTPPath:   "/",
4577	}
4578
4579	if input == nil {
4580		input = &RegisterEventTopicInput{}
4581	}
4582
4583	output = &RegisterEventTopicOutput{}
4584	req = c.newRequest(op, input, output)
4585	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4586	return
4587}
4588
4589// RegisterEventTopic API operation for AWS Directory Service.
4590//
4591// Associates a directory with an SNS topic. This establishes the directory
4592// as a publisher to the specified SNS topic. You can then receive email or
4593// text (SMS) messages when the status of your directory changes. You get notified
4594// if your directory goes from an Active status to an Impaired or Inoperable
4595// status. You also receive a notification when the directory returns to an
4596// Active status.
4597//
4598// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4599// with awserr.Error's Code and Message methods to get detailed information about
4600// the error.
4601//
4602// See the AWS API reference guide for AWS Directory Service's
4603// API operation RegisterEventTopic for usage and error information.
4604//
4605// Returned Error Types:
4606//   * EntityDoesNotExistException
4607//   The specified entity could not be found.
4608//
4609//   * InvalidParameterException
4610//   One or more parameters are not valid.
4611//
4612//   * ClientException
4613//   A client exception has occurred.
4614//
4615//   * ServiceException
4616//   An exception has occurred in AWS Directory Service.
4617//
4618// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
4619func (c *DirectoryService) RegisterEventTopic(input *RegisterEventTopicInput) (*RegisterEventTopicOutput, error) {
4620	req, out := c.RegisterEventTopicRequest(input)
4621	return out, req.Send()
4622}
4623
4624// RegisterEventTopicWithContext is the same as RegisterEventTopic with the addition of
4625// the ability to pass a context and additional request options.
4626//
4627// See RegisterEventTopic for details on how to use this API operation.
4628//
4629// The context must be non-nil and will be used for request cancellation. If
4630// the context is nil a panic will occur. In the future the SDK may create
4631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4632// for more information on using Contexts.
4633func (c *DirectoryService) RegisterEventTopicWithContext(ctx aws.Context, input *RegisterEventTopicInput, opts ...request.Option) (*RegisterEventTopicOutput, error) {
4634	req, out := c.RegisterEventTopicRequest(input)
4635	req.SetContext(ctx)
4636	req.ApplyOptions(opts...)
4637	return out, req.Send()
4638}
4639
4640const opRejectSharedDirectory = "RejectSharedDirectory"
4641
4642// RejectSharedDirectoryRequest generates a "aws/request.Request" representing the
4643// client's request for the RejectSharedDirectory operation. The "output" return
4644// value will be populated with the request's response once the request completes
4645// successfully.
4646//
4647// Use "Send" method on the returned Request to send the API call to the service.
4648// the "output" return value is not valid until after Send returns without error.
4649//
4650// See RejectSharedDirectory for more information on using the RejectSharedDirectory
4651// API call, and error handling.
4652//
4653// This method is useful when you want to inject custom logic or configuration
4654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4655//
4656//
4657//    // Example sending a request using the RejectSharedDirectoryRequest method.
4658//    req, resp := client.RejectSharedDirectoryRequest(params)
4659//
4660//    err := req.Send()
4661//    if err == nil { // resp is now filled
4662//        fmt.Println(resp)
4663//    }
4664//
4665// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
4666func (c *DirectoryService) RejectSharedDirectoryRequest(input *RejectSharedDirectoryInput) (req *request.Request, output *RejectSharedDirectoryOutput) {
4667	op := &request.Operation{
4668		Name:       opRejectSharedDirectory,
4669		HTTPMethod: "POST",
4670		HTTPPath:   "/",
4671	}
4672
4673	if input == nil {
4674		input = &RejectSharedDirectoryInput{}
4675	}
4676
4677	output = &RejectSharedDirectoryOutput{}
4678	req = c.newRequest(op, input, output)
4679	return
4680}
4681
4682// RejectSharedDirectory API operation for AWS Directory Service.
4683//
4684// Rejects a directory sharing request that was sent from the directory owner
4685// account.
4686//
4687// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4688// with awserr.Error's Code and Message methods to get detailed information about
4689// the error.
4690//
4691// See the AWS API reference guide for AWS Directory Service's
4692// API operation RejectSharedDirectory for usage and error information.
4693//
4694// Returned Error Types:
4695//   * InvalidParameterException
4696//   One or more parameters are not valid.
4697//
4698//   * EntityDoesNotExistException
4699//   The specified entity could not be found.
4700//
4701//   * DirectoryAlreadySharedException
4702//   The specified directory has already been shared with this AWS account.
4703//
4704//   * ClientException
4705//   A client exception has occurred.
4706//
4707//   * ServiceException
4708//   An exception has occurred in AWS Directory Service.
4709//
4710// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
4711func (c *DirectoryService) RejectSharedDirectory(input *RejectSharedDirectoryInput) (*RejectSharedDirectoryOutput, error) {
4712	req, out := c.RejectSharedDirectoryRequest(input)
4713	return out, req.Send()
4714}
4715
4716// RejectSharedDirectoryWithContext is the same as RejectSharedDirectory with the addition of
4717// the ability to pass a context and additional request options.
4718//
4719// See RejectSharedDirectory for details on how to use this API operation.
4720//
4721// The context must be non-nil and will be used for request cancellation. If
4722// the context is nil a panic will occur. In the future the SDK may create
4723// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4724// for more information on using Contexts.
4725func (c *DirectoryService) RejectSharedDirectoryWithContext(ctx aws.Context, input *RejectSharedDirectoryInput, opts ...request.Option) (*RejectSharedDirectoryOutput, error) {
4726	req, out := c.RejectSharedDirectoryRequest(input)
4727	req.SetContext(ctx)
4728	req.ApplyOptions(opts...)
4729	return out, req.Send()
4730}
4731
4732const opRemoveIpRoutes = "RemoveIpRoutes"
4733
4734// RemoveIpRoutesRequest generates a "aws/request.Request" representing the
4735// client's request for the RemoveIpRoutes operation. The "output" return
4736// value will be populated with the request's response once the request completes
4737// successfully.
4738//
4739// Use "Send" method on the returned Request to send the API call to the service.
4740// the "output" return value is not valid until after Send returns without error.
4741//
4742// See RemoveIpRoutes for more information on using the RemoveIpRoutes
4743// API call, and error handling.
4744//
4745// This method is useful when you want to inject custom logic or configuration
4746// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4747//
4748//
4749//    // Example sending a request using the RemoveIpRoutesRequest method.
4750//    req, resp := client.RemoveIpRoutesRequest(params)
4751//
4752//    err := req.Send()
4753//    if err == nil { // resp is now filled
4754//        fmt.Println(resp)
4755//    }
4756//
4757// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
4758func (c *DirectoryService) RemoveIpRoutesRequest(input *RemoveIpRoutesInput) (req *request.Request, output *RemoveIpRoutesOutput) {
4759	op := &request.Operation{
4760		Name:       opRemoveIpRoutes,
4761		HTTPMethod: "POST",
4762		HTTPPath:   "/",
4763	}
4764
4765	if input == nil {
4766		input = &RemoveIpRoutesInput{}
4767	}
4768
4769	output = &RemoveIpRoutesOutput{}
4770	req = c.newRequest(op, input, output)
4771	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4772	return
4773}
4774
4775// RemoveIpRoutes API operation for AWS Directory Service.
4776//
4777// Removes IP address blocks from a directory.
4778//
4779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4780// with awserr.Error's Code and Message methods to get detailed information about
4781// the error.
4782//
4783// See the AWS API reference guide for AWS Directory Service's
4784// API operation RemoveIpRoutes for usage and error information.
4785//
4786// Returned Error Types:
4787//   * EntityDoesNotExistException
4788//   The specified entity could not be found.
4789//
4790//   * InvalidParameterException
4791//   One or more parameters are not valid.
4792//
4793//   * DirectoryUnavailableException
4794//   The specified directory is unavailable or could not be found.
4795//
4796//   * ClientException
4797//   A client exception has occurred.
4798//
4799//   * ServiceException
4800//   An exception has occurred in AWS Directory Service.
4801//
4802// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
4803func (c *DirectoryService) RemoveIpRoutes(input *RemoveIpRoutesInput) (*RemoveIpRoutesOutput, error) {
4804	req, out := c.RemoveIpRoutesRequest(input)
4805	return out, req.Send()
4806}
4807
4808// RemoveIpRoutesWithContext is the same as RemoveIpRoutes with the addition of
4809// the ability to pass a context and additional request options.
4810//
4811// See RemoveIpRoutes for details on how to use this API operation.
4812//
4813// The context must be non-nil and will be used for request cancellation. If
4814// the context is nil a panic will occur. In the future the SDK may create
4815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4816// for more information on using Contexts.
4817func (c *DirectoryService) RemoveIpRoutesWithContext(ctx aws.Context, input *RemoveIpRoutesInput, opts ...request.Option) (*RemoveIpRoutesOutput, error) {
4818	req, out := c.RemoveIpRoutesRequest(input)
4819	req.SetContext(ctx)
4820	req.ApplyOptions(opts...)
4821	return out, req.Send()
4822}
4823
4824const opRemoveRegion = "RemoveRegion"
4825
4826// RemoveRegionRequest generates a "aws/request.Request" representing the
4827// client's request for the RemoveRegion operation. The "output" return
4828// value will be populated with the request's response once the request completes
4829// successfully.
4830//
4831// Use "Send" method on the returned Request to send the API call to the service.
4832// the "output" return value is not valid until after Send returns without error.
4833//
4834// See RemoveRegion for more information on using the RemoveRegion
4835// API call, and error handling.
4836//
4837// This method is useful when you want to inject custom logic or configuration
4838// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4839//
4840//
4841//    // Example sending a request using the RemoveRegionRequest method.
4842//    req, resp := client.RemoveRegionRequest(params)
4843//
4844//    err := req.Send()
4845//    if err == nil { // resp is now filled
4846//        fmt.Println(resp)
4847//    }
4848//
4849// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveRegion
4850func (c *DirectoryService) RemoveRegionRequest(input *RemoveRegionInput) (req *request.Request, output *RemoveRegionOutput) {
4851	op := &request.Operation{
4852		Name:       opRemoveRegion,
4853		HTTPMethod: "POST",
4854		HTTPPath:   "/",
4855	}
4856
4857	if input == nil {
4858		input = &RemoveRegionInput{}
4859	}
4860
4861	output = &RemoveRegionOutput{}
4862	req = c.newRequest(op, input, output)
4863	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4864	return
4865}
4866
4867// RemoveRegion API operation for AWS Directory Service.
4868//
4869// Stops all replication and removes the domain controllers from the specified
4870// Region. You cannot remove the primary Region with this operation. Instead,
4871// use the DeleteDirectory API.
4872//
4873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4874// with awserr.Error's Code and Message methods to get detailed information about
4875// the error.
4876//
4877// See the AWS API reference guide for AWS Directory Service's
4878// API operation RemoveRegion for usage and error information.
4879//
4880// Returned Error Types:
4881//   * DirectoryUnavailableException
4882//   The specified directory is unavailable or could not be found.
4883//
4884//   * DirectoryDoesNotExistException
4885//   The specified directory does not exist in the system.
4886//
4887//   * UnsupportedOperationException
4888//   The operation is not supported.
4889//
4890//   * AccessDeniedException
4891//   Client authentication is not available in this region at this time.
4892//
4893//   * ClientException
4894//   A client exception has occurred.
4895//
4896//   * ServiceException
4897//   An exception has occurred in AWS Directory Service.
4898//
4899// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveRegion
4900func (c *DirectoryService) RemoveRegion(input *RemoveRegionInput) (*RemoveRegionOutput, error) {
4901	req, out := c.RemoveRegionRequest(input)
4902	return out, req.Send()
4903}
4904
4905// RemoveRegionWithContext is the same as RemoveRegion with the addition of
4906// the ability to pass a context and additional request options.
4907//
4908// See RemoveRegion for details on how to use this API operation.
4909//
4910// The context must be non-nil and will be used for request cancellation. If
4911// the context is nil a panic will occur. In the future the SDK may create
4912// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4913// for more information on using Contexts.
4914func (c *DirectoryService) RemoveRegionWithContext(ctx aws.Context, input *RemoveRegionInput, opts ...request.Option) (*RemoveRegionOutput, error) {
4915	req, out := c.RemoveRegionRequest(input)
4916	req.SetContext(ctx)
4917	req.ApplyOptions(opts...)
4918	return out, req.Send()
4919}
4920
4921const opRemoveTagsFromResource = "RemoveTagsFromResource"
4922
4923// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
4924// client's request for the RemoveTagsFromResource operation. The "output" return
4925// value will be populated with the request's response once the request completes
4926// successfully.
4927//
4928// Use "Send" method on the returned Request to send the API call to the service.
4929// the "output" return value is not valid until after Send returns without error.
4930//
4931// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
4932// API call, and error handling.
4933//
4934// This method is useful when you want to inject custom logic or configuration
4935// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4936//
4937//
4938//    // Example sending a request using the RemoveTagsFromResourceRequest method.
4939//    req, resp := client.RemoveTagsFromResourceRequest(params)
4940//
4941//    err := req.Send()
4942//    if err == nil { // resp is now filled
4943//        fmt.Println(resp)
4944//    }
4945//
4946// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
4947func (c *DirectoryService) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
4948	op := &request.Operation{
4949		Name:       opRemoveTagsFromResource,
4950		HTTPMethod: "POST",
4951		HTTPPath:   "/",
4952	}
4953
4954	if input == nil {
4955		input = &RemoveTagsFromResourceInput{}
4956	}
4957
4958	output = &RemoveTagsFromResourceOutput{}
4959	req = c.newRequest(op, input, output)
4960	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4961	return
4962}
4963
4964// RemoveTagsFromResource API operation for AWS Directory Service.
4965//
4966// Removes tags from a directory.
4967//
4968// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4969// with awserr.Error's Code and Message methods to get detailed information about
4970// the error.
4971//
4972// See the AWS API reference guide for AWS Directory Service's
4973// API operation RemoveTagsFromResource for usage and error information.
4974//
4975// Returned Error Types:
4976//   * EntityDoesNotExistException
4977//   The specified entity could not be found.
4978//
4979//   * InvalidParameterException
4980//   One or more parameters are not valid.
4981//
4982//   * ClientException
4983//   A client exception has occurred.
4984//
4985//   * ServiceException
4986//   An exception has occurred in AWS Directory Service.
4987//
4988// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
4989func (c *DirectoryService) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
4990	req, out := c.RemoveTagsFromResourceRequest(input)
4991	return out, req.Send()
4992}
4993
4994// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
4995// the ability to pass a context and additional request options.
4996//
4997// See RemoveTagsFromResource 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 *DirectoryService) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
5004	req, out := c.RemoveTagsFromResourceRequest(input)
5005	req.SetContext(ctx)
5006	req.ApplyOptions(opts...)
5007	return out, req.Send()
5008}
5009
5010const opResetUserPassword = "ResetUserPassword"
5011
5012// ResetUserPasswordRequest generates a "aws/request.Request" representing the
5013// client's request for the ResetUserPassword 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 ResetUserPassword for more information on using the ResetUserPassword
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 ResetUserPasswordRequest method.
5028//    req, resp := client.ResetUserPasswordRequest(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/ds-2015-04-16/ResetUserPassword
5036func (c *DirectoryService) ResetUserPasswordRequest(input *ResetUserPasswordInput) (req *request.Request, output *ResetUserPasswordOutput) {
5037	op := &request.Operation{
5038		Name:       opResetUserPassword,
5039		HTTPMethod: "POST",
5040		HTTPPath:   "/",
5041	}
5042
5043	if input == nil {
5044		input = &ResetUserPasswordInput{}
5045	}
5046
5047	output = &ResetUserPasswordOutput{}
5048	req = c.newRequest(op, input, output)
5049	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5050	return
5051}
5052
5053// ResetUserPassword API operation for AWS Directory Service.
5054//
5055// Resets the password for any user in your AWS Managed Microsoft AD or Simple
5056// AD directory.
5057//
5058// You can reset the password for any user in your directory with the following
5059// exceptions:
5060//
5061//    * For Simple AD, you cannot reset the password for any user that is a
5062//    member of either the Domain Admins or Enterprise Admins group except for
5063//    the administrator user.
5064//
5065//    * For AWS Managed Microsoft AD, you can only reset the password for a
5066//    user that is in an OU based off of the NetBIOS name that you typed when
5067//    you created your directory. For example, you cannot reset the password
5068//    for a user in the AWS Reserved OU. For more information about the OU structure
5069//    for an AWS Managed Microsoft AD directory, see What Gets Created (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_what_gets_created.html)
5070//    in the AWS Directory Service Administration Guide.
5071//
5072// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5073// with awserr.Error's Code and Message methods to get detailed information about
5074// the error.
5075//
5076// See the AWS API reference guide for AWS Directory Service's
5077// API operation ResetUserPassword for usage and error information.
5078//
5079// Returned Error Types:
5080//   * DirectoryUnavailableException
5081//   The specified directory is unavailable or could not be found.
5082//
5083//   * UserDoesNotExistException
5084//   The user provided a username that does not exist in your directory.
5085//
5086//   * InvalidPasswordException
5087//   The new password provided by the user does not meet the password complexity
5088//   requirements defined in your directory.
5089//
5090//   * UnsupportedOperationException
5091//   The operation is not supported.
5092//
5093//   * EntityDoesNotExistException
5094//   The specified entity could not be found.
5095//
5096//   * ClientException
5097//   A client exception has occurred.
5098//
5099//   * ServiceException
5100//   An exception has occurred in AWS Directory Service.
5101//
5102// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ResetUserPassword
5103func (c *DirectoryService) ResetUserPassword(input *ResetUserPasswordInput) (*ResetUserPasswordOutput, error) {
5104	req, out := c.ResetUserPasswordRequest(input)
5105	return out, req.Send()
5106}
5107
5108// ResetUserPasswordWithContext is the same as ResetUserPassword with the addition of
5109// the ability to pass a context and additional request options.
5110//
5111// See ResetUserPassword for details on how to use this API operation.
5112//
5113// The context must be non-nil and will be used for request cancellation. If
5114// the context is nil a panic will occur. In the future the SDK may create
5115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5116// for more information on using Contexts.
5117func (c *DirectoryService) ResetUserPasswordWithContext(ctx aws.Context, input *ResetUserPasswordInput, opts ...request.Option) (*ResetUserPasswordOutput, error) {
5118	req, out := c.ResetUserPasswordRequest(input)
5119	req.SetContext(ctx)
5120	req.ApplyOptions(opts...)
5121	return out, req.Send()
5122}
5123
5124const opRestoreFromSnapshot = "RestoreFromSnapshot"
5125
5126// RestoreFromSnapshotRequest generates a "aws/request.Request" representing the
5127// client's request for the RestoreFromSnapshot operation. The "output" return
5128// value will be populated with the request's response once the request completes
5129// successfully.
5130//
5131// Use "Send" method on the returned Request to send the API call to the service.
5132// the "output" return value is not valid until after Send returns without error.
5133//
5134// See RestoreFromSnapshot for more information on using the RestoreFromSnapshot
5135// API call, and error handling.
5136//
5137// This method is useful when you want to inject custom logic or configuration
5138// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5139//
5140//
5141//    // Example sending a request using the RestoreFromSnapshotRequest method.
5142//    req, resp := client.RestoreFromSnapshotRequest(params)
5143//
5144//    err := req.Send()
5145//    if err == nil { // resp is now filled
5146//        fmt.Println(resp)
5147//    }
5148//
5149// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
5150func (c *DirectoryService) RestoreFromSnapshotRequest(input *RestoreFromSnapshotInput) (req *request.Request, output *RestoreFromSnapshotOutput) {
5151	op := &request.Operation{
5152		Name:       opRestoreFromSnapshot,
5153		HTTPMethod: "POST",
5154		HTTPPath:   "/",
5155	}
5156
5157	if input == nil {
5158		input = &RestoreFromSnapshotInput{}
5159	}
5160
5161	output = &RestoreFromSnapshotOutput{}
5162	req = c.newRequest(op, input, output)
5163	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5164	return
5165}
5166
5167// RestoreFromSnapshot API operation for AWS Directory Service.
5168//
5169// Restores a directory using an existing directory snapshot.
5170//
5171// When you restore a directory from a snapshot, any changes made to the directory
5172// after the snapshot date are overwritten.
5173//
5174// This action returns as soon as the restore operation is initiated. You can
5175// monitor the progress of the restore operation by calling the DescribeDirectories
5176// operation with the directory identifier. When the DirectoryDescription.Stage
5177// value changes to Active, the restore operation is complete.
5178//
5179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5180// with awserr.Error's Code and Message methods to get detailed information about
5181// the error.
5182//
5183// See the AWS API reference guide for AWS Directory Service's
5184// API operation RestoreFromSnapshot for usage and error information.
5185//
5186// Returned Error Types:
5187//   * EntityDoesNotExistException
5188//   The specified entity could not be found.
5189//
5190//   * InvalidParameterException
5191//   One or more parameters are not valid.
5192//
5193//   * ClientException
5194//   A client exception has occurred.
5195//
5196//   * ServiceException
5197//   An exception has occurred in AWS Directory Service.
5198//
5199// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
5200func (c *DirectoryService) RestoreFromSnapshot(input *RestoreFromSnapshotInput) (*RestoreFromSnapshotOutput, error) {
5201	req, out := c.RestoreFromSnapshotRequest(input)
5202	return out, req.Send()
5203}
5204
5205// RestoreFromSnapshotWithContext is the same as RestoreFromSnapshot with the addition of
5206// the ability to pass a context and additional request options.
5207//
5208// See RestoreFromSnapshot for details on how to use this API operation.
5209//
5210// The context must be non-nil and will be used for request cancellation. If
5211// the context is nil a panic will occur. In the future the SDK may create
5212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5213// for more information on using Contexts.
5214func (c *DirectoryService) RestoreFromSnapshotWithContext(ctx aws.Context, input *RestoreFromSnapshotInput, opts ...request.Option) (*RestoreFromSnapshotOutput, error) {
5215	req, out := c.RestoreFromSnapshotRequest(input)
5216	req.SetContext(ctx)
5217	req.ApplyOptions(opts...)
5218	return out, req.Send()
5219}
5220
5221const opShareDirectory = "ShareDirectory"
5222
5223// ShareDirectoryRequest generates a "aws/request.Request" representing the
5224// client's request for the ShareDirectory operation. The "output" return
5225// value will be populated with the request's response once the request completes
5226// successfully.
5227//
5228// Use "Send" method on the returned Request to send the API call to the service.
5229// the "output" return value is not valid until after Send returns without error.
5230//
5231// See ShareDirectory for more information on using the ShareDirectory
5232// API call, and error handling.
5233//
5234// This method is useful when you want to inject custom logic or configuration
5235// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5236//
5237//
5238//    // Example sending a request using the ShareDirectoryRequest method.
5239//    req, resp := client.ShareDirectoryRequest(params)
5240//
5241//    err := req.Send()
5242//    if err == nil { // resp is now filled
5243//        fmt.Println(resp)
5244//    }
5245//
5246// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
5247func (c *DirectoryService) ShareDirectoryRequest(input *ShareDirectoryInput) (req *request.Request, output *ShareDirectoryOutput) {
5248	op := &request.Operation{
5249		Name:       opShareDirectory,
5250		HTTPMethod: "POST",
5251		HTTPPath:   "/",
5252	}
5253
5254	if input == nil {
5255		input = &ShareDirectoryInput{}
5256	}
5257
5258	output = &ShareDirectoryOutput{}
5259	req = c.newRequest(op, input, output)
5260	return
5261}
5262
5263// ShareDirectory API operation for AWS Directory Service.
5264//
5265// Shares a specified directory (DirectoryId) in your AWS account (directory
5266// owner) with another AWS account (directory consumer). With this operation
5267// you can use your directory from any AWS account and from any Amazon VPC within
5268// an AWS Region.
5269//
5270// When you share your AWS Managed Microsoft AD directory, AWS Directory Service
5271// creates a shared directory in the directory consumer account. This shared
5272// directory contains the metadata to provide access to the directory within
5273// the directory owner account. The shared directory is visible in all VPCs
5274// in the directory consumer account.
5275//
5276// The ShareMethod parameter determines whether the specified directory can
5277// be shared between AWS accounts inside the same AWS organization (ORGANIZATIONS).
5278// It also determines whether you can share the directory with any other AWS
5279// account either inside or outside of the organization (HANDSHAKE).
5280//
5281// The ShareNotes parameter is only used when HANDSHAKE is called, which sends
5282// a directory sharing request to the directory consumer.
5283//
5284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5285// with awserr.Error's Code and Message methods to get detailed information about
5286// the error.
5287//
5288// See the AWS API reference guide for AWS Directory Service's
5289// API operation ShareDirectory for usage and error information.
5290//
5291// Returned Error Types:
5292//   * DirectoryAlreadySharedException
5293//   The specified directory has already been shared with this AWS account.
5294//
5295//   * EntityDoesNotExistException
5296//   The specified entity could not be found.
5297//
5298//   * InvalidTargetException
5299//   The specified shared target is not valid.
5300//
5301//   * InvalidParameterException
5302//   One or more parameters are not valid.
5303//
5304//   * ClientException
5305//   A client exception has occurred.
5306//
5307//   * ShareLimitExceededException
5308//   The maximum number of AWS accounts that you can share with this directory
5309//   has been reached.
5310//
5311//   * OrganizationsException
5312//   Exception encountered while trying to access your AWS organization.
5313//
5314//   * AccessDeniedException
5315//   Client authentication is not available in this region at this time.
5316//
5317//   * UnsupportedOperationException
5318//   The operation is not supported.
5319//
5320//   * ServiceException
5321//   An exception has occurred in AWS Directory Service.
5322//
5323// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
5324func (c *DirectoryService) ShareDirectory(input *ShareDirectoryInput) (*ShareDirectoryOutput, error) {
5325	req, out := c.ShareDirectoryRequest(input)
5326	return out, req.Send()
5327}
5328
5329// ShareDirectoryWithContext is the same as ShareDirectory with the addition of
5330// the ability to pass a context and additional request options.
5331//
5332// See ShareDirectory for details on how to use this API operation.
5333//
5334// The context must be non-nil and will be used for request cancellation. If
5335// the context is nil a panic will occur. In the future the SDK may create
5336// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5337// for more information on using Contexts.
5338func (c *DirectoryService) ShareDirectoryWithContext(ctx aws.Context, input *ShareDirectoryInput, opts ...request.Option) (*ShareDirectoryOutput, error) {
5339	req, out := c.ShareDirectoryRequest(input)
5340	req.SetContext(ctx)
5341	req.ApplyOptions(opts...)
5342	return out, req.Send()
5343}
5344
5345const opStartSchemaExtension = "StartSchemaExtension"
5346
5347// StartSchemaExtensionRequest generates a "aws/request.Request" representing the
5348// client's request for the StartSchemaExtension operation. The "output" return
5349// value will be populated with the request's response once the request completes
5350// successfully.
5351//
5352// Use "Send" method on the returned Request to send the API call to the service.
5353// the "output" return value is not valid until after Send returns without error.
5354//
5355// See StartSchemaExtension for more information on using the StartSchemaExtension
5356// API call, and error handling.
5357//
5358// This method is useful when you want to inject custom logic or configuration
5359// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5360//
5361//
5362//    // Example sending a request using the StartSchemaExtensionRequest method.
5363//    req, resp := client.StartSchemaExtensionRequest(params)
5364//
5365//    err := req.Send()
5366//    if err == nil { // resp is now filled
5367//        fmt.Println(resp)
5368//    }
5369//
5370// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
5371func (c *DirectoryService) StartSchemaExtensionRequest(input *StartSchemaExtensionInput) (req *request.Request, output *StartSchemaExtensionOutput) {
5372	op := &request.Operation{
5373		Name:       opStartSchemaExtension,
5374		HTTPMethod: "POST",
5375		HTTPPath:   "/",
5376	}
5377
5378	if input == nil {
5379		input = &StartSchemaExtensionInput{}
5380	}
5381
5382	output = &StartSchemaExtensionOutput{}
5383	req = c.newRequest(op, input, output)
5384	return
5385}
5386
5387// StartSchemaExtension API operation for AWS Directory Service.
5388//
5389// Applies a schema extension to a Microsoft AD directory.
5390//
5391// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5392// with awserr.Error's Code and Message methods to get detailed information about
5393// the error.
5394//
5395// See the AWS API reference guide for AWS Directory Service's
5396// API operation StartSchemaExtension for usage and error information.
5397//
5398// Returned Error Types:
5399//   * DirectoryUnavailableException
5400//   The specified directory is unavailable or could not be found.
5401//
5402//   * EntityDoesNotExistException
5403//   The specified entity could not be found.
5404//
5405//   * InvalidParameterException
5406//   One or more parameters are not valid.
5407//
5408//   * SnapshotLimitExceededException
5409//   The maximum number of manual snapshots for the directory has been reached.
5410//   You can use the GetSnapshotLimits operation to determine the snapshot limits
5411//   for a directory.
5412//
5413//   * ClientException
5414//   A client exception has occurred.
5415//
5416//   * ServiceException
5417//   An exception has occurred in AWS Directory Service.
5418//
5419// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
5420func (c *DirectoryService) StartSchemaExtension(input *StartSchemaExtensionInput) (*StartSchemaExtensionOutput, error) {
5421	req, out := c.StartSchemaExtensionRequest(input)
5422	return out, req.Send()
5423}
5424
5425// StartSchemaExtensionWithContext is the same as StartSchemaExtension with the addition of
5426// the ability to pass a context and additional request options.
5427//
5428// See StartSchemaExtension for details on how to use this API operation.
5429//
5430// The context must be non-nil and will be used for request cancellation. If
5431// the context is nil a panic will occur. In the future the SDK may create
5432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5433// for more information on using Contexts.
5434func (c *DirectoryService) StartSchemaExtensionWithContext(ctx aws.Context, input *StartSchemaExtensionInput, opts ...request.Option) (*StartSchemaExtensionOutput, error) {
5435	req, out := c.StartSchemaExtensionRequest(input)
5436	req.SetContext(ctx)
5437	req.ApplyOptions(opts...)
5438	return out, req.Send()
5439}
5440
5441const opUnshareDirectory = "UnshareDirectory"
5442
5443// UnshareDirectoryRequest generates a "aws/request.Request" representing the
5444// client's request for the UnshareDirectory operation. The "output" return
5445// value will be populated with the request's response once the request completes
5446// successfully.
5447//
5448// Use "Send" method on the returned Request to send the API call to the service.
5449// the "output" return value is not valid until after Send returns without error.
5450//
5451// See UnshareDirectory for more information on using the UnshareDirectory
5452// API call, and error handling.
5453//
5454// This method is useful when you want to inject custom logic or configuration
5455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5456//
5457//
5458//    // Example sending a request using the UnshareDirectoryRequest method.
5459//    req, resp := client.UnshareDirectoryRequest(params)
5460//
5461//    err := req.Send()
5462//    if err == nil { // resp is now filled
5463//        fmt.Println(resp)
5464//    }
5465//
5466// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
5467func (c *DirectoryService) UnshareDirectoryRequest(input *UnshareDirectoryInput) (req *request.Request, output *UnshareDirectoryOutput) {
5468	op := &request.Operation{
5469		Name:       opUnshareDirectory,
5470		HTTPMethod: "POST",
5471		HTTPPath:   "/",
5472	}
5473
5474	if input == nil {
5475		input = &UnshareDirectoryInput{}
5476	}
5477
5478	output = &UnshareDirectoryOutput{}
5479	req = c.newRequest(op, input, output)
5480	return
5481}
5482
5483// UnshareDirectory API operation for AWS Directory Service.
5484//
5485// Stops the directory sharing between the directory owner and consumer accounts.
5486//
5487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5488// with awserr.Error's Code and Message methods to get detailed information about
5489// the error.
5490//
5491// See the AWS API reference guide for AWS Directory Service's
5492// API operation UnshareDirectory for usage and error information.
5493//
5494// Returned Error Types:
5495//   * EntityDoesNotExistException
5496//   The specified entity could not be found.
5497//
5498//   * InvalidTargetException
5499//   The specified shared target is not valid.
5500//
5501//   * DirectoryNotSharedException
5502//   The specified directory has not been shared with this AWS account.
5503//
5504//   * ClientException
5505//   A client exception has occurred.
5506//
5507//   * ServiceException
5508//   An exception has occurred in AWS Directory Service.
5509//
5510// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
5511func (c *DirectoryService) UnshareDirectory(input *UnshareDirectoryInput) (*UnshareDirectoryOutput, error) {
5512	req, out := c.UnshareDirectoryRequest(input)
5513	return out, req.Send()
5514}
5515
5516// UnshareDirectoryWithContext is the same as UnshareDirectory with the addition of
5517// the ability to pass a context and additional request options.
5518//
5519// See UnshareDirectory for details on how to use this API operation.
5520//
5521// The context must be non-nil and will be used for request cancellation. If
5522// the context is nil a panic will occur. In the future the SDK may create
5523// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5524// for more information on using Contexts.
5525func (c *DirectoryService) UnshareDirectoryWithContext(ctx aws.Context, input *UnshareDirectoryInput, opts ...request.Option) (*UnshareDirectoryOutput, error) {
5526	req, out := c.UnshareDirectoryRequest(input)
5527	req.SetContext(ctx)
5528	req.ApplyOptions(opts...)
5529	return out, req.Send()
5530}
5531
5532const opUpdateConditionalForwarder = "UpdateConditionalForwarder"
5533
5534// UpdateConditionalForwarderRequest generates a "aws/request.Request" representing the
5535// client's request for the UpdateConditionalForwarder operation. The "output" return
5536// value will be populated with the request's response once the request completes
5537// successfully.
5538//
5539// Use "Send" method on the returned Request to send the API call to the service.
5540// the "output" return value is not valid until after Send returns without error.
5541//
5542// See UpdateConditionalForwarder for more information on using the UpdateConditionalForwarder
5543// API call, and error handling.
5544//
5545// This method is useful when you want to inject custom logic or configuration
5546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5547//
5548//
5549//    // Example sending a request using the UpdateConditionalForwarderRequest method.
5550//    req, resp := client.UpdateConditionalForwarderRequest(params)
5551//
5552//    err := req.Send()
5553//    if err == nil { // resp is now filled
5554//        fmt.Println(resp)
5555//    }
5556//
5557// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
5558func (c *DirectoryService) UpdateConditionalForwarderRequest(input *UpdateConditionalForwarderInput) (req *request.Request, output *UpdateConditionalForwarderOutput) {
5559	op := &request.Operation{
5560		Name:       opUpdateConditionalForwarder,
5561		HTTPMethod: "POST",
5562		HTTPPath:   "/",
5563	}
5564
5565	if input == nil {
5566		input = &UpdateConditionalForwarderInput{}
5567	}
5568
5569	output = &UpdateConditionalForwarderOutput{}
5570	req = c.newRequest(op, input, output)
5571	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5572	return
5573}
5574
5575// UpdateConditionalForwarder API operation for AWS Directory Service.
5576//
5577// Updates a conditional forwarder that has been set up for your AWS directory.
5578//
5579// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5580// with awserr.Error's Code and Message methods to get detailed information about
5581// the error.
5582//
5583// See the AWS API reference guide for AWS Directory Service's
5584// API operation UpdateConditionalForwarder for usage and error information.
5585//
5586// Returned Error Types:
5587//   * EntityDoesNotExistException
5588//   The specified entity could not be found.
5589//
5590//   * DirectoryUnavailableException
5591//   The specified directory is unavailable or could not be found.
5592//
5593//   * InvalidParameterException
5594//   One or more parameters are not valid.
5595//
5596//   * UnsupportedOperationException
5597//   The operation is not supported.
5598//
5599//   * ClientException
5600//   A client exception has occurred.
5601//
5602//   * ServiceException
5603//   An exception has occurred in AWS Directory Service.
5604//
5605// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
5606func (c *DirectoryService) UpdateConditionalForwarder(input *UpdateConditionalForwarderInput) (*UpdateConditionalForwarderOutput, error) {
5607	req, out := c.UpdateConditionalForwarderRequest(input)
5608	return out, req.Send()
5609}
5610
5611// UpdateConditionalForwarderWithContext is the same as UpdateConditionalForwarder with the addition of
5612// the ability to pass a context and additional request options.
5613//
5614// See UpdateConditionalForwarder for details on how to use this API operation.
5615//
5616// The context must be non-nil and will be used for request cancellation. If
5617// the context is nil a panic will occur. In the future the SDK may create
5618// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5619// for more information on using Contexts.
5620func (c *DirectoryService) UpdateConditionalForwarderWithContext(ctx aws.Context, input *UpdateConditionalForwarderInput, opts ...request.Option) (*UpdateConditionalForwarderOutput, error) {
5621	req, out := c.UpdateConditionalForwarderRequest(input)
5622	req.SetContext(ctx)
5623	req.ApplyOptions(opts...)
5624	return out, req.Send()
5625}
5626
5627const opUpdateNumberOfDomainControllers = "UpdateNumberOfDomainControllers"
5628
5629// UpdateNumberOfDomainControllersRequest generates a "aws/request.Request" representing the
5630// client's request for the UpdateNumberOfDomainControllers operation. The "output" return
5631// value will be populated with the request's response once the request completes
5632// successfully.
5633//
5634// Use "Send" method on the returned Request to send the API call to the service.
5635// the "output" return value is not valid until after Send returns without error.
5636//
5637// See UpdateNumberOfDomainControllers for more information on using the UpdateNumberOfDomainControllers
5638// API call, and error handling.
5639//
5640// This method is useful when you want to inject custom logic or configuration
5641// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5642//
5643//
5644//    // Example sending a request using the UpdateNumberOfDomainControllersRequest method.
5645//    req, resp := client.UpdateNumberOfDomainControllersRequest(params)
5646//
5647//    err := req.Send()
5648//    if err == nil { // resp is now filled
5649//        fmt.Println(resp)
5650//    }
5651//
5652// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
5653func (c *DirectoryService) UpdateNumberOfDomainControllersRequest(input *UpdateNumberOfDomainControllersInput) (req *request.Request, output *UpdateNumberOfDomainControllersOutput) {
5654	op := &request.Operation{
5655		Name:       opUpdateNumberOfDomainControllers,
5656		HTTPMethod: "POST",
5657		HTTPPath:   "/",
5658	}
5659
5660	if input == nil {
5661		input = &UpdateNumberOfDomainControllersInput{}
5662	}
5663
5664	output = &UpdateNumberOfDomainControllersOutput{}
5665	req = c.newRequest(op, input, output)
5666	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5667	return
5668}
5669
5670// UpdateNumberOfDomainControllers API operation for AWS Directory Service.
5671//
5672// Adds or removes domain controllers to or from the directory. Based on the
5673// difference between current value and new value (provided through this API
5674// call), domain controllers will be added or removed. It may take up to 45
5675// minutes for any new domain controllers to become fully active once the requested
5676// number of domain controllers is updated. During this time, you cannot make
5677// another update request.
5678//
5679// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5680// with awserr.Error's Code and Message methods to get detailed information about
5681// the error.
5682//
5683// See the AWS API reference guide for AWS Directory Service's
5684// API operation UpdateNumberOfDomainControllers for usage and error information.
5685//
5686// Returned Error Types:
5687//   * EntityDoesNotExistException
5688//   The specified entity could not be found.
5689//
5690//   * DirectoryUnavailableException
5691//   The specified directory is unavailable or could not be found.
5692//
5693//   * DomainControllerLimitExceededException
5694//   The maximum allowed number of domain controllers per directory was exceeded.
5695//   The default limit per directory is 20 domain controllers.
5696//
5697//   * InvalidParameterException
5698//   One or more parameters are not valid.
5699//
5700//   * UnsupportedOperationException
5701//   The operation is not supported.
5702//
5703//   * ClientException
5704//   A client exception has occurred.
5705//
5706//   * ServiceException
5707//   An exception has occurred in AWS Directory Service.
5708//
5709// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
5710func (c *DirectoryService) UpdateNumberOfDomainControllers(input *UpdateNumberOfDomainControllersInput) (*UpdateNumberOfDomainControllersOutput, error) {
5711	req, out := c.UpdateNumberOfDomainControllersRequest(input)
5712	return out, req.Send()
5713}
5714
5715// UpdateNumberOfDomainControllersWithContext is the same as UpdateNumberOfDomainControllers with the addition of
5716// the ability to pass a context and additional request options.
5717//
5718// See UpdateNumberOfDomainControllers for details on how to use this API operation.
5719//
5720// The context must be non-nil and will be used for request cancellation. If
5721// the context is nil a panic will occur. In the future the SDK may create
5722// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5723// for more information on using Contexts.
5724func (c *DirectoryService) UpdateNumberOfDomainControllersWithContext(ctx aws.Context, input *UpdateNumberOfDomainControllersInput, opts ...request.Option) (*UpdateNumberOfDomainControllersOutput, error) {
5725	req, out := c.UpdateNumberOfDomainControllersRequest(input)
5726	req.SetContext(ctx)
5727	req.ApplyOptions(opts...)
5728	return out, req.Send()
5729}
5730
5731const opUpdateRadius = "UpdateRadius"
5732
5733// UpdateRadiusRequest generates a "aws/request.Request" representing the
5734// client's request for the UpdateRadius operation. The "output" return
5735// value will be populated with the request's response once the request completes
5736// successfully.
5737//
5738// Use "Send" method on the returned Request to send the API call to the service.
5739// the "output" return value is not valid until after Send returns without error.
5740//
5741// See UpdateRadius for more information on using the UpdateRadius
5742// API call, and error handling.
5743//
5744// This method is useful when you want to inject custom logic or configuration
5745// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5746//
5747//
5748//    // Example sending a request using the UpdateRadiusRequest method.
5749//    req, resp := client.UpdateRadiusRequest(params)
5750//
5751//    err := req.Send()
5752//    if err == nil { // resp is now filled
5753//        fmt.Println(resp)
5754//    }
5755//
5756// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
5757func (c *DirectoryService) UpdateRadiusRequest(input *UpdateRadiusInput) (req *request.Request, output *UpdateRadiusOutput) {
5758	op := &request.Operation{
5759		Name:       opUpdateRadius,
5760		HTTPMethod: "POST",
5761		HTTPPath:   "/",
5762	}
5763
5764	if input == nil {
5765		input = &UpdateRadiusInput{}
5766	}
5767
5768	output = &UpdateRadiusOutput{}
5769	req = c.newRequest(op, input, output)
5770	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5771	return
5772}
5773
5774// UpdateRadius API operation for AWS Directory Service.
5775//
5776// Updates the Remote Authentication Dial In User Service (RADIUS) server information
5777// for an AD Connector or Microsoft AD directory.
5778//
5779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5780// with awserr.Error's Code and Message methods to get detailed information about
5781// the error.
5782//
5783// See the AWS API reference guide for AWS Directory Service's
5784// API operation UpdateRadius for usage and error information.
5785//
5786// Returned Error Types:
5787//   * InvalidParameterException
5788//   One or more parameters are not valid.
5789//
5790//   * EntityDoesNotExistException
5791//   The specified entity could not be found.
5792//
5793//   * ClientException
5794//   A client exception has occurred.
5795//
5796//   * ServiceException
5797//   An exception has occurred in AWS Directory Service.
5798//
5799// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
5800func (c *DirectoryService) UpdateRadius(input *UpdateRadiusInput) (*UpdateRadiusOutput, error) {
5801	req, out := c.UpdateRadiusRequest(input)
5802	return out, req.Send()
5803}
5804
5805// UpdateRadiusWithContext is the same as UpdateRadius with the addition of
5806// the ability to pass a context and additional request options.
5807//
5808// See UpdateRadius for details on how to use this API operation.
5809//
5810// The context must be non-nil and will be used for request cancellation. If
5811// the context is nil a panic will occur. In the future the SDK may create
5812// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5813// for more information on using Contexts.
5814func (c *DirectoryService) UpdateRadiusWithContext(ctx aws.Context, input *UpdateRadiusInput, opts ...request.Option) (*UpdateRadiusOutput, error) {
5815	req, out := c.UpdateRadiusRequest(input)
5816	req.SetContext(ctx)
5817	req.ApplyOptions(opts...)
5818	return out, req.Send()
5819}
5820
5821const opUpdateTrust = "UpdateTrust"
5822
5823// UpdateTrustRequest generates a "aws/request.Request" representing the
5824// client's request for the UpdateTrust operation. The "output" return
5825// value will be populated with the request's response once the request completes
5826// successfully.
5827//
5828// Use "Send" method on the returned Request to send the API call to the service.
5829// the "output" return value is not valid until after Send returns without error.
5830//
5831// See UpdateTrust for more information on using the UpdateTrust
5832// API call, and error handling.
5833//
5834// This method is useful when you want to inject custom logic or configuration
5835// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5836//
5837//
5838//    // Example sending a request using the UpdateTrustRequest method.
5839//    req, resp := client.UpdateTrustRequest(params)
5840//
5841//    err := req.Send()
5842//    if err == nil { // resp is now filled
5843//        fmt.Println(resp)
5844//    }
5845//
5846// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
5847func (c *DirectoryService) UpdateTrustRequest(input *UpdateTrustInput) (req *request.Request, output *UpdateTrustOutput) {
5848	op := &request.Operation{
5849		Name:       opUpdateTrust,
5850		HTTPMethod: "POST",
5851		HTTPPath:   "/",
5852	}
5853
5854	if input == nil {
5855		input = &UpdateTrustInput{}
5856	}
5857
5858	output = &UpdateTrustOutput{}
5859	req = c.newRequest(op, input, output)
5860	return
5861}
5862
5863// UpdateTrust API operation for AWS Directory Service.
5864//
5865// Updates the trust that has been set up between your AWS Managed Microsoft
5866// AD directory and an on-premises Active Directory.
5867//
5868// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5869// with awserr.Error's Code and Message methods to get detailed information about
5870// the error.
5871//
5872// See the AWS API reference guide for AWS Directory Service's
5873// API operation UpdateTrust for usage and error information.
5874//
5875// Returned Error Types:
5876//   * EntityDoesNotExistException
5877//   The specified entity could not be found.
5878//
5879//   * InvalidParameterException
5880//   One or more parameters are not valid.
5881//
5882//   * ClientException
5883//   A client exception has occurred.
5884//
5885//   * ServiceException
5886//   An exception has occurred in AWS Directory Service.
5887//
5888// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
5889func (c *DirectoryService) UpdateTrust(input *UpdateTrustInput) (*UpdateTrustOutput, error) {
5890	req, out := c.UpdateTrustRequest(input)
5891	return out, req.Send()
5892}
5893
5894// UpdateTrustWithContext is the same as UpdateTrust with the addition of
5895// the ability to pass a context and additional request options.
5896//
5897// See UpdateTrust for details on how to use this API operation.
5898//
5899// The context must be non-nil and will be used for request cancellation. If
5900// the context is nil a panic will occur. In the future the SDK may create
5901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5902// for more information on using Contexts.
5903func (c *DirectoryService) UpdateTrustWithContext(ctx aws.Context, input *UpdateTrustInput, opts ...request.Option) (*UpdateTrustOutput, error) {
5904	req, out := c.UpdateTrustRequest(input)
5905	req.SetContext(ctx)
5906	req.ApplyOptions(opts...)
5907	return out, req.Send()
5908}
5909
5910const opVerifyTrust = "VerifyTrust"
5911
5912// VerifyTrustRequest generates a "aws/request.Request" representing the
5913// client's request for the VerifyTrust operation. The "output" return
5914// value will be populated with the request's response once the request completes
5915// successfully.
5916//
5917// Use "Send" method on the returned Request to send the API call to the service.
5918// the "output" return value is not valid until after Send returns without error.
5919//
5920// See VerifyTrust for more information on using the VerifyTrust
5921// API call, and error handling.
5922//
5923// This method is useful when you want to inject custom logic or configuration
5924// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5925//
5926//
5927//    // Example sending a request using the VerifyTrustRequest method.
5928//    req, resp := client.VerifyTrustRequest(params)
5929//
5930//    err := req.Send()
5931//    if err == nil { // resp is now filled
5932//        fmt.Println(resp)
5933//    }
5934//
5935// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
5936func (c *DirectoryService) VerifyTrustRequest(input *VerifyTrustInput) (req *request.Request, output *VerifyTrustOutput) {
5937	op := &request.Operation{
5938		Name:       opVerifyTrust,
5939		HTTPMethod: "POST",
5940		HTTPPath:   "/",
5941	}
5942
5943	if input == nil {
5944		input = &VerifyTrustInput{}
5945	}
5946
5947	output = &VerifyTrustOutput{}
5948	req = c.newRequest(op, input, output)
5949	return
5950}
5951
5952// VerifyTrust API operation for AWS Directory Service.
5953//
5954// AWS Directory Service for Microsoft Active Directory allows you to configure
5955// and verify trust relationships.
5956//
5957// This action verifies a trust relationship between your AWS Managed Microsoft
5958// AD directory and an external domain.
5959//
5960// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5961// with awserr.Error's Code and Message methods to get detailed information about
5962// the error.
5963//
5964// See the AWS API reference guide for AWS Directory Service's
5965// API operation VerifyTrust for usage and error information.
5966//
5967// Returned Error Types:
5968//   * EntityDoesNotExistException
5969//   The specified entity could not be found.
5970//
5971//   * InvalidParameterException
5972//   One or more parameters are not valid.
5973//
5974//   * ClientException
5975//   A client exception has occurred.
5976//
5977//   * ServiceException
5978//   An exception has occurred in AWS Directory Service.
5979//
5980//   * UnsupportedOperationException
5981//   The operation is not supported.
5982//
5983// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
5984func (c *DirectoryService) VerifyTrust(input *VerifyTrustInput) (*VerifyTrustOutput, error) {
5985	req, out := c.VerifyTrustRequest(input)
5986	return out, req.Send()
5987}
5988
5989// VerifyTrustWithContext is the same as VerifyTrust with the addition of
5990// the ability to pass a context and additional request options.
5991//
5992// See VerifyTrust for details on how to use this API operation.
5993//
5994// The context must be non-nil and will be used for request cancellation. If
5995// the context is nil a panic will occur. In the future the SDK may create
5996// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5997// for more information on using Contexts.
5998func (c *DirectoryService) VerifyTrustWithContext(ctx aws.Context, input *VerifyTrustInput, opts ...request.Option) (*VerifyTrustOutput, error) {
5999	req, out := c.VerifyTrustRequest(input)
6000	req.SetContext(ctx)
6001	req.ApplyOptions(opts...)
6002	return out, req.Send()
6003}
6004
6005type AcceptSharedDirectoryInput struct {
6006	_ struct{} `type:"structure"`
6007
6008	// Identifier of the shared directory in the directory consumer account. This
6009	// identifier is different for each directory owner account.
6010	//
6011	// SharedDirectoryId is a required field
6012	SharedDirectoryId *string `type:"string" required:"true"`
6013}
6014
6015// String returns the string representation
6016func (s AcceptSharedDirectoryInput) String() string {
6017	return awsutil.Prettify(s)
6018}
6019
6020// GoString returns the string representation
6021func (s AcceptSharedDirectoryInput) GoString() string {
6022	return s.String()
6023}
6024
6025// Validate inspects the fields of the type to determine if they are valid.
6026func (s *AcceptSharedDirectoryInput) Validate() error {
6027	invalidParams := request.ErrInvalidParams{Context: "AcceptSharedDirectoryInput"}
6028	if s.SharedDirectoryId == nil {
6029		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
6030	}
6031
6032	if invalidParams.Len() > 0 {
6033		return invalidParams
6034	}
6035	return nil
6036}
6037
6038// SetSharedDirectoryId sets the SharedDirectoryId field's value.
6039func (s *AcceptSharedDirectoryInput) SetSharedDirectoryId(v string) *AcceptSharedDirectoryInput {
6040	s.SharedDirectoryId = &v
6041	return s
6042}
6043
6044type AcceptSharedDirectoryOutput struct {
6045	_ struct{} `type:"structure"`
6046
6047	// The shared directory in the directory consumer account.
6048	SharedDirectory *SharedDirectory `type:"structure"`
6049}
6050
6051// String returns the string representation
6052func (s AcceptSharedDirectoryOutput) String() string {
6053	return awsutil.Prettify(s)
6054}
6055
6056// GoString returns the string representation
6057func (s AcceptSharedDirectoryOutput) GoString() string {
6058	return s.String()
6059}
6060
6061// SetSharedDirectory sets the SharedDirectory field's value.
6062func (s *AcceptSharedDirectoryOutput) SetSharedDirectory(v *SharedDirectory) *AcceptSharedDirectoryOutput {
6063	s.SharedDirectory = v
6064	return s
6065}
6066
6067// Client authentication is not available in this region at this time.
6068type AccessDeniedException struct {
6069	_            struct{}                  `type:"structure"`
6070	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6071
6072	// The descriptive message for the exception.
6073	Message_ *string `locationName:"Message" type:"string"`
6074
6075	// The AWS request identifier.
6076	RequestId *string `type:"string"`
6077}
6078
6079// String returns the string representation
6080func (s AccessDeniedException) String() string {
6081	return awsutil.Prettify(s)
6082}
6083
6084// GoString returns the string representation
6085func (s AccessDeniedException) GoString() string {
6086	return s.String()
6087}
6088
6089func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
6090	return &AccessDeniedException{
6091		RespMetadata: v,
6092	}
6093}
6094
6095// Code returns the exception type name.
6096func (s *AccessDeniedException) Code() string {
6097	return "AccessDeniedException"
6098}
6099
6100// Message returns the exception's message.
6101func (s *AccessDeniedException) Message() string {
6102	if s.Message_ != nil {
6103		return *s.Message_
6104	}
6105	return ""
6106}
6107
6108// OrigErr always returns nil, satisfies awserr.Error interface.
6109func (s *AccessDeniedException) OrigErr() error {
6110	return nil
6111}
6112
6113func (s *AccessDeniedException) Error() string {
6114	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6115}
6116
6117// Status code returns the HTTP status code for the request's response error.
6118func (s *AccessDeniedException) StatusCode() int {
6119	return s.RespMetadata.StatusCode
6120}
6121
6122// RequestID returns the service's response RequestID for request.
6123func (s *AccessDeniedException) RequestID() string {
6124	return s.RespMetadata.RequestID
6125}
6126
6127type AddIpRoutesInput struct {
6128	_ struct{} `type:"structure"`
6129
6130	// Identifier (ID) of the directory to which to add the address block.
6131	//
6132	// DirectoryId is a required field
6133	DirectoryId *string `type:"string" required:"true"`
6134
6135	// IP address blocks, using CIDR format, of the traffic to route. This is often
6136	// the IP address block of the DNS server used for your on-premises domain.
6137	//
6138	// IpRoutes is a required field
6139	IpRoutes []*IpRoute `type:"list" required:"true"`
6140
6141	// If set to true, updates the inbound and outbound rules of the security group
6142	// that has the description: "AWS created security group for directory ID directory
6143	// controllers." Following are the new rules:
6144	//
6145	// Inbound:
6146	//
6147	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 88, Source: 0.0.0.0/0
6148	//
6149	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 123, Source: 0.0.0.0/0
6150	//
6151	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 138, Source: 0.0.0.0/0
6152	//
6153	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 389, Source: 0.0.0.0/0
6154	//
6155	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 464, Source: 0.0.0.0/0
6156	//
6157	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 445, Source: 0.0.0.0/0
6158	//
6159	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 88, Source: 0.0.0.0/0
6160	//
6161	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 135, Source: 0.0.0.0/0
6162	//
6163	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 445, Source: 0.0.0.0/0
6164	//
6165	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0/0
6166	//
6167	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 636, Source: 0.0.0.0/0
6168	//
6169	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 1024-65535, Source: 0.0.0.0/0
6170	//
6171	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 3268-33269, Source: 0.0.0.0/0
6172	//
6173	//    * Type: DNS (UDP), Protocol: UDP, Range: 53, Source: 0.0.0.0/0
6174	//
6175	//    * Type: DNS (TCP), Protocol: TCP, Range: 53, Source: 0.0.0.0/0
6176	//
6177	//    * Type: LDAP, Protocol: TCP, Range: 389, Source: 0.0.0.0/0
6178	//
6179	//    * Type: All ICMP, Protocol: All, Range: N/A, Source: 0.0.0.0/0
6180	//
6181	// Outbound:
6182	//
6183	//    * Type: All traffic, Protocol: All, Range: All, Destination: 0.0.0.0/0
6184	//
6185	// These security rules impact an internal network interface that is not exposed
6186	// publicly.
6187	UpdateSecurityGroupForDirectoryControllers *bool `type:"boolean"`
6188}
6189
6190// String returns the string representation
6191func (s AddIpRoutesInput) String() string {
6192	return awsutil.Prettify(s)
6193}
6194
6195// GoString returns the string representation
6196func (s AddIpRoutesInput) GoString() string {
6197	return s.String()
6198}
6199
6200// Validate inspects the fields of the type to determine if they are valid.
6201func (s *AddIpRoutesInput) Validate() error {
6202	invalidParams := request.ErrInvalidParams{Context: "AddIpRoutesInput"}
6203	if s.DirectoryId == nil {
6204		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6205	}
6206	if s.IpRoutes == nil {
6207		invalidParams.Add(request.NewErrParamRequired("IpRoutes"))
6208	}
6209
6210	if invalidParams.Len() > 0 {
6211		return invalidParams
6212	}
6213	return nil
6214}
6215
6216// SetDirectoryId sets the DirectoryId field's value.
6217func (s *AddIpRoutesInput) SetDirectoryId(v string) *AddIpRoutesInput {
6218	s.DirectoryId = &v
6219	return s
6220}
6221
6222// SetIpRoutes sets the IpRoutes field's value.
6223func (s *AddIpRoutesInput) SetIpRoutes(v []*IpRoute) *AddIpRoutesInput {
6224	s.IpRoutes = v
6225	return s
6226}
6227
6228// SetUpdateSecurityGroupForDirectoryControllers sets the UpdateSecurityGroupForDirectoryControllers field's value.
6229func (s *AddIpRoutesInput) SetUpdateSecurityGroupForDirectoryControllers(v bool) *AddIpRoutesInput {
6230	s.UpdateSecurityGroupForDirectoryControllers = &v
6231	return s
6232}
6233
6234type AddIpRoutesOutput struct {
6235	_ struct{} `type:"structure"`
6236}
6237
6238// String returns the string representation
6239func (s AddIpRoutesOutput) String() string {
6240	return awsutil.Prettify(s)
6241}
6242
6243// GoString returns the string representation
6244func (s AddIpRoutesOutput) GoString() string {
6245	return s.String()
6246}
6247
6248type AddRegionInput struct {
6249	_ struct{} `type:"structure"`
6250
6251	// The identifier of the directory to which you want to add Region replication.
6252	//
6253	// DirectoryId is a required field
6254	DirectoryId *string `type:"string" required:"true"`
6255
6256	// The name of the Region where you want to add domain controllers for replication.
6257	// For example, us-east-1.
6258	//
6259	// RegionName is a required field
6260	RegionName *string `min:"8" type:"string" required:"true"`
6261
6262	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
6263	//
6264	// VPCSettings is a required field
6265	VPCSettings *DirectoryVpcSettings `type:"structure" required:"true"`
6266}
6267
6268// String returns the string representation
6269func (s AddRegionInput) String() string {
6270	return awsutil.Prettify(s)
6271}
6272
6273// GoString returns the string representation
6274func (s AddRegionInput) GoString() string {
6275	return s.String()
6276}
6277
6278// Validate inspects the fields of the type to determine if they are valid.
6279func (s *AddRegionInput) Validate() error {
6280	invalidParams := request.ErrInvalidParams{Context: "AddRegionInput"}
6281	if s.DirectoryId == nil {
6282		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6283	}
6284	if s.RegionName == nil {
6285		invalidParams.Add(request.NewErrParamRequired("RegionName"))
6286	}
6287	if s.RegionName != nil && len(*s.RegionName) < 8 {
6288		invalidParams.Add(request.NewErrParamMinLen("RegionName", 8))
6289	}
6290	if s.VPCSettings == nil {
6291		invalidParams.Add(request.NewErrParamRequired("VPCSettings"))
6292	}
6293	if s.VPCSettings != nil {
6294		if err := s.VPCSettings.Validate(); err != nil {
6295			invalidParams.AddNested("VPCSettings", err.(request.ErrInvalidParams))
6296		}
6297	}
6298
6299	if invalidParams.Len() > 0 {
6300		return invalidParams
6301	}
6302	return nil
6303}
6304
6305// SetDirectoryId sets the DirectoryId field's value.
6306func (s *AddRegionInput) SetDirectoryId(v string) *AddRegionInput {
6307	s.DirectoryId = &v
6308	return s
6309}
6310
6311// SetRegionName sets the RegionName field's value.
6312func (s *AddRegionInput) SetRegionName(v string) *AddRegionInput {
6313	s.RegionName = &v
6314	return s
6315}
6316
6317// SetVPCSettings sets the VPCSettings field's value.
6318func (s *AddRegionInput) SetVPCSettings(v *DirectoryVpcSettings) *AddRegionInput {
6319	s.VPCSettings = v
6320	return s
6321}
6322
6323type AddRegionOutput struct {
6324	_ struct{} `type:"structure"`
6325}
6326
6327// String returns the string representation
6328func (s AddRegionOutput) String() string {
6329	return awsutil.Prettify(s)
6330}
6331
6332// GoString returns the string representation
6333func (s AddRegionOutput) GoString() string {
6334	return s.String()
6335}
6336
6337type AddTagsToResourceInput struct {
6338	_ struct{} `type:"structure"`
6339
6340	// Identifier (ID) for the directory to which to add the tag.
6341	//
6342	// ResourceId is a required field
6343	ResourceId *string `type:"string" required:"true"`
6344
6345	// The tags to be assigned to the directory.
6346	//
6347	// Tags is a required field
6348	Tags []*Tag `type:"list" required:"true"`
6349}
6350
6351// String returns the string representation
6352func (s AddTagsToResourceInput) String() string {
6353	return awsutil.Prettify(s)
6354}
6355
6356// GoString returns the string representation
6357func (s AddTagsToResourceInput) GoString() string {
6358	return s.String()
6359}
6360
6361// Validate inspects the fields of the type to determine if they are valid.
6362func (s *AddTagsToResourceInput) Validate() error {
6363	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
6364	if s.ResourceId == nil {
6365		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6366	}
6367	if s.Tags == nil {
6368		invalidParams.Add(request.NewErrParamRequired("Tags"))
6369	}
6370	if s.Tags != nil {
6371		for i, v := range s.Tags {
6372			if v == nil {
6373				continue
6374			}
6375			if err := v.Validate(); err != nil {
6376				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6377			}
6378		}
6379	}
6380
6381	if invalidParams.Len() > 0 {
6382		return invalidParams
6383	}
6384	return nil
6385}
6386
6387// SetResourceId sets the ResourceId field's value.
6388func (s *AddTagsToResourceInput) SetResourceId(v string) *AddTagsToResourceInput {
6389	s.ResourceId = &v
6390	return s
6391}
6392
6393// SetTags sets the Tags field's value.
6394func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
6395	s.Tags = v
6396	return s
6397}
6398
6399type AddTagsToResourceOutput struct {
6400	_ struct{} `type:"structure"`
6401}
6402
6403// String returns the string representation
6404func (s AddTagsToResourceOutput) String() string {
6405	return awsutil.Prettify(s)
6406}
6407
6408// GoString returns the string representation
6409func (s AddTagsToResourceOutput) GoString() string {
6410	return s.String()
6411}
6412
6413// Represents a named directory attribute.
6414type Attribute struct {
6415	_ struct{} `type:"structure"`
6416
6417	// The name of the attribute.
6418	Name *string `min:"1" type:"string"`
6419
6420	// The value of the attribute.
6421	Value *string `type:"string"`
6422}
6423
6424// String returns the string representation
6425func (s Attribute) String() string {
6426	return awsutil.Prettify(s)
6427}
6428
6429// GoString returns the string representation
6430func (s Attribute) GoString() string {
6431	return s.String()
6432}
6433
6434// Validate inspects the fields of the type to determine if they are valid.
6435func (s *Attribute) Validate() error {
6436	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
6437	if s.Name != nil && len(*s.Name) < 1 {
6438		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6439	}
6440
6441	if invalidParams.Len() > 0 {
6442		return invalidParams
6443	}
6444	return nil
6445}
6446
6447// SetName sets the Name field's value.
6448func (s *Attribute) SetName(v string) *Attribute {
6449	s.Name = &v
6450	return s
6451}
6452
6453// SetValue sets the Value field's value.
6454func (s *Attribute) SetValue(v string) *Attribute {
6455	s.Value = &v
6456	return s
6457}
6458
6459// An authentication error occurred.
6460type AuthenticationFailedException struct {
6461	_            struct{}                  `type:"structure"`
6462	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6463
6464	// The textual message for the exception.
6465	Message_ *string `locationName:"Message" type:"string"`
6466
6467	// The identifier of the request that caused the exception.
6468	RequestId *string `type:"string"`
6469}
6470
6471// String returns the string representation
6472func (s AuthenticationFailedException) String() string {
6473	return awsutil.Prettify(s)
6474}
6475
6476// GoString returns the string representation
6477func (s AuthenticationFailedException) GoString() string {
6478	return s.String()
6479}
6480
6481func newErrorAuthenticationFailedException(v protocol.ResponseMetadata) error {
6482	return &AuthenticationFailedException{
6483		RespMetadata: v,
6484	}
6485}
6486
6487// Code returns the exception type name.
6488func (s *AuthenticationFailedException) Code() string {
6489	return "AuthenticationFailedException"
6490}
6491
6492// Message returns the exception's message.
6493func (s *AuthenticationFailedException) Message() string {
6494	if s.Message_ != nil {
6495		return *s.Message_
6496	}
6497	return ""
6498}
6499
6500// OrigErr always returns nil, satisfies awserr.Error interface.
6501func (s *AuthenticationFailedException) OrigErr() error {
6502	return nil
6503}
6504
6505func (s *AuthenticationFailedException) Error() string {
6506	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6507}
6508
6509// Status code returns the HTTP status code for the request's response error.
6510func (s *AuthenticationFailedException) StatusCode() int {
6511	return s.RespMetadata.StatusCode
6512}
6513
6514// RequestID returns the service's response RequestID for request.
6515func (s *AuthenticationFailedException) RequestID() string {
6516	return s.RespMetadata.RequestID
6517}
6518
6519type CancelSchemaExtensionInput struct {
6520	_ struct{} `type:"structure"`
6521
6522	// The identifier of the directory whose schema extension will be canceled.
6523	//
6524	// DirectoryId is a required field
6525	DirectoryId *string `type:"string" required:"true"`
6526
6527	// The identifier of the schema extension that will be canceled.
6528	//
6529	// SchemaExtensionId is a required field
6530	SchemaExtensionId *string `type:"string" required:"true"`
6531}
6532
6533// String returns the string representation
6534func (s CancelSchemaExtensionInput) String() string {
6535	return awsutil.Prettify(s)
6536}
6537
6538// GoString returns the string representation
6539func (s CancelSchemaExtensionInput) GoString() string {
6540	return s.String()
6541}
6542
6543// Validate inspects the fields of the type to determine if they are valid.
6544func (s *CancelSchemaExtensionInput) Validate() error {
6545	invalidParams := request.ErrInvalidParams{Context: "CancelSchemaExtensionInput"}
6546	if s.DirectoryId == nil {
6547		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6548	}
6549	if s.SchemaExtensionId == nil {
6550		invalidParams.Add(request.NewErrParamRequired("SchemaExtensionId"))
6551	}
6552
6553	if invalidParams.Len() > 0 {
6554		return invalidParams
6555	}
6556	return nil
6557}
6558
6559// SetDirectoryId sets the DirectoryId field's value.
6560func (s *CancelSchemaExtensionInput) SetDirectoryId(v string) *CancelSchemaExtensionInput {
6561	s.DirectoryId = &v
6562	return s
6563}
6564
6565// SetSchemaExtensionId sets the SchemaExtensionId field's value.
6566func (s *CancelSchemaExtensionInput) SetSchemaExtensionId(v string) *CancelSchemaExtensionInput {
6567	s.SchemaExtensionId = &v
6568	return s
6569}
6570
6571type CancelSchemaExtensionOutput struct {
6572	_ struct{} `type:"structure"`
6573}
6574
6575// String returns the string representation
6576func (s CancelSchemaExtensionOutput) String() string {
6577	return awsutil.Prettify(s)
6578}
6579
6580// GoString returns the string representation
6581func (s CancelSchemaExtensionOutput) GoString() string {
6582	return s.String()
6583}
6584
6585// Information about the certificate.
6586type Certificate struct {
6587	_ struct{} `type:"structure"`
6588
6589	// The identifier of the certificate.
6590	CertificateId *string `type:"string"`
6591
6592	// A ClientCertAuthSettings object that contains client certificate authentication
6593	// settings.
6594	ClientCertAuthSettings *ClientCertAuthSettings `type:"structure"`
6595
6596	// The common name for the certificate.
6597	CommonName *string `type:"string"`
6598
6599	// The date and time when the certificate will expire.
6600	ExpiryDateTime *time.Time `type:"timestamp"`
6601
6602	// The date and time that the certificate was registered.
6603	RegisteredDateTime *time.Time `type:"timestamp"`
6604
6605	// The state of the certificate.
6606	State *string `type:"string" enum:"CertificateState"`
6607
6608	// Describes a state change for the certificate.
6609	StateReason *string `type:"string"`
6610
6611	// The function that the registered certificate performs. Valid values include
6612	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
6613	Type *string `type:"string" enum:"CertificateType"`
6614}
6615
6616// String returns the string representation
6617func (s Certificate) String() string {
6618	return awsutil.Prettify(s)
6619}
6620
6621// GoString returns the string representation
6622func (s Certificate) GoString() string {
6623	return s.String()
6624}
6625
6626// SetCertificateId sets the CertificateId field's value.
6627func (s *Certificate) SetCertificateId(v string) *Certificate {
6628	s.CertificateId = &v
6629	return s
6630}
6631
6632// SetClientCertAuthSettings sets the ClientCertAuthSettings field's value.
6633func (s *Certificate) SetClientCertAuthSettings(v *ClientCertAuthSettings) *Certificate {
6634	s.ClientCertAuthSettings = v
6635	return s
6636}
6637
6638// SetCommonName sets the CommonName field's value.
6639func (s *Certificate) SetCommonName(v string) *Certificate {
6640	s.CommonName = &v
6641	return s
6642}
6643
6644// SetExpiryDateTime sets the ExpiryDateTime field's value.
6645func (s *Certificate) SetExpiryDateTime(v time.Time) *Certificate {
6646	s.ExpiryDateTime = &v
6647	return s
6648}
6649
6650// SetRegisteredDateTime sets the RegisteredDateTime field's value.
6651func (s *Certificate) SetRegisteredDateTime(v time.Time) *Certificate {
6652	s.RegisteredDateTime = &v
6653	return s
6654}
6655
6656// SetState sets the State field's value.
6657func (s *Certificate) SetState(v string) *Certificate {
6658	s.State = &v
6659	return s
6660}
6661
6662// SetStateReason sets the StateReason field's value.
6663func (s *Certificate) SetStateReason(v string) *Certificate {
6664	s.StateReason = &v
6665	return s
6666}
6667
6668// SetType sets the Type field's value.
6669func (s *Certificate) SetType(v string) *Certificate {
6670	s.Type = &v
6671	return s
6672}
6673
6674// The certificate has already been registered into the system.
6675type CertificateAlreadyExistsException struct {
6676	_            struct{}                  `type:"structure"`
6677	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6678
6679	// The descriptive message for the exception.
6680	Message_ *string `locationName:"Message" type:"string"`
6681
6682	// The AWS request identifier.
6683	RequestId *string `type:"string"`
6684}
6685
6686// String returns the string representation
6687func (s CertificateAlreadyExistsException) String() string {
6688	return awsutil.Prettify(s)
6689}
6690
6691// GoString returns the string representation
6692func (s CertificateAlreadyExistsException) GoString() string {
6693	return s.String()
6694}
6695
6696func newErrorCertificateAlreadyExistsException(v protocol.ResponseMetadata) error {
6697	return &CertificateAlreadyExistsException{
6698		RespMetadata: v,
6699	}
6700}
6701
6702// Code returns the exception type name.
6703func (s *CertificateAlreadyExistsException) Code() string {
6704	return "CertificateAlreadyExistsException"
6705}
6706
6707// Message returns the exception's message.
6708func (s *CertificateAlreadyExistsException) Message() string {
6709	if s.Message_ != nil {
6710		return *s.Message_
6711	}
6712	return ""
6713}
6714
6715// OrigErr always returns nil, satisfies awserr.Error interface.
6716func (s *CertificateAlreadyExistsException) OrigErr() error {
6717	return nil
6718}
6719
6720func (s *CertificateAlreadyExistsException) Error() string {
6721	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6722}
6723
6724// Status code returns the HTTP status code for the request's response error.
6725func (s *CertificateAlreadyExistsException) StatusCode() int {
6726	return s.RespMetadata.StatusCode
6727}
6728
6729// RequestID returns the service's response RequestID for request.
6730func (s *CertificateAlreadyExistsException) RequestID() string {
6731	return s.RespMetadata.RequestID
6732}
6733
6734// The certificate is not present in the system for describe or deregister activities.
6735type CertificateDoesNotExistException struct {
6736	_            struct{}                  `type:"structure"`
6737	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6738
6739	// The descriptive message for the exception.
6740	Message_ *string `locationName:"Message" type:"string"`
6741
6742	// The AWS request identifier.
6743	RequestId *string `type:"string"`
6744}
6745
6746// String returns the string representation
6747func (s CertificateDoesNotExistException) String() string {
6748	return awsutil.Prettify(s)
6749}
6750
6751// GoString returns the string representation
6752func (s CertificateDoesNotExistException) GoString() string {
6753	return s.String()
6754}
6755
6756func newErrorCertificateDoesNotExistException(v protocol.ResponseMetadata) error {
6757	return &CertificateDoesNotExistException{
6758		RespMetadata: v,
6759	}
6760}
6761
6762// Code returns the exception type name.
6763func (s *CertificateDoesNotExistException) Code() string {
6764	return "CertificateDoesNotExistException"
6765}
6766
6767// Message returns the exception's message.
6768func (s *CertificateDoesNotExistException) Message() string {
6769	if s.Message_ != nil {
6770		return *s.Message_
6771	}
6772	return ""
6773}
6774
6775// OrigErr always returns nil, satisfies awserr.Error interface.
6776func (s *CertificateDoesNotExistException) OrigErr() error {
6777	return nil
6778}
6779
6780func (s *CertificateDoesNotExistException) Error() string {
6781	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6782}
6783
6784// Status code returns the HTTP status code for the request's response error.
6785func (s *CertificateDoesNotExistException) StatusCode() int {
6786	return s.RespMetadata.StatusCode
6787}
6788
6789// RequestID returns the service's response RequestID for request.
6790func (s *CertificateDoesNotExistException) RequestID() string {
6791	return s.RespMetadata.RequestID
6792}
6793
6794// The certificate is being used for the LDAP security connection and cannot
6795// be removed without disabling LDAP security.
6796type CertificateInUseException struct {
6797	_            struct{}                  `type:"structure"`
6798	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6799
6800	// The descriptive message for the exception.
6801	Message_ *string `locationName:"Message" type:"string"`
6802
6803	// The AWS request identifier.
6804	RequestId *string `type:"string"`
6805}
6806
6807// String returns the string representation
6808func (s CertificateInUseException) String() string {
6809	return awsutil.Prettify(s)
6810}
6811
6812// GoString returns the string representation
6813func (s CertificateInUseException) GoString() string {
6814	return s.String()
6815}
6816
6817func newErrorCertificateInUseException(v protocol.ResponseMetadata) error {
6818	return &CertificateInUseException{
6819		RespMetadata: v,
6820	}
6821}
6822
6823// Code returns the exception type name.
6824func (s *CertificateInUseException) Code() string {
6825	return "CertificateInUseException"
6826}
6827
6828// Message returns the exception's message.
6829func (s *CertificateInUseException) Message() string {
6830	if s.Message_ != nil {
6831		return *s.Message_
6832	}
6833	return ""
6834}
6835
6836// OrigErr always returns nil, satisfies awserr.Error interface.
6837func (s *CertificateInUseException) OrigErr() error {
6838	return nil
6839}
6840
6841func (s *CertificateInUseException) Error() string {
6842	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6843}
6844
6845// Status code returns the HTTP status code for the request's response error.
6846func (s *CertificateInUseException) StatusCode() int {
6847	return s.RespMetadata.StatusCode
6848}
6849
6850// RequestID returns the service's response RequestID for request.
6851func (s *CertificateInUseException) RequestID() string {
6852	return s.RespMetadata.RequestID
6853}
6854
6855// Contains general information about a certificate.
6856type CertificateInfo struct {
6857	_ struct{} `type:"structure"`
6858
6859	// The identifier of the certificate.
6860	CertificateId *string `type:"string"`
6861
6862	// The common name for the certificate.
6863	CommonName *string `type:"string"`
6864
6865	// The date and time when the certificate will expire.
6866	ExpiryDateTime *time.Time `type:"timestamp"`
6867
6868	// The state of the certificate.
6869	State *string `type:"string" enum:"CertificateState"`
6870
6871	// The function that the registered certificate performs. Valid values include
6872	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
6873	Type *string `type:"string" enum:"CertificateType"`
6874}
6875
6876// String returns the string representation
6877func (s CertificateInfo) String() string {
6878	return awsutil.Prettify(s)
6879}
6880
6881// GoString returns the string representation
6882func (s CertificateInfo) GoString() string {
6883	return s.String()
6884}
6885
6886// SetCertificateId sets the CertificateId field's value.
6887func (s *CertificateInfo) SetCertificateId(v string) *CertificateInfo {
6888	s.CertificateId = &v
6889	return s
6890}
6891
6892// SetCommonName sets the CommonName field's value.
6893func (s *CertificateInfo) SetCommonName(v string) *CertificateInfo {
6894	s.CommonName = &v
6895	return s
6896}
6897
6898// SetExpiryDateTime sets the ExpiryDateTime field's value.
6899func (s *CertificateInfo) SetExpiryDateTime(v time.Time) *CertificateInfo {
6900	s.ExpiryDateTime = &v
6901	return s
6902}
6903
6904// SetState sets the State field's value.
6905func (s *CertificateInfo) SetState(v string) *CertificateInfo {
6906	s.State = &v
6907	return s
6908}
6909
6910// SetType sets the Type field's value.
6911func (s *CertificateInfo) SetType(v string) *CertificateInfo {
6912	s.Type = &v
6913	return s
6914}
6915
6916// The certificate could not be added because the certificate limit has been
6917// reached.
6918type CertificateLimitExceededException struct {
6919	_            struct{}                  `type:"structure"`
6920	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6921
6922	// The descriptive message for the exception.
6923	Message_ *string `locationName:"Message" type:"string"`
6924
6925	// The AWS request identifier.
6926	RequestId *string `type:"string"`
6927}
6928
6929// String returns the string representation
6930func (s CertificateLimitExceededException) String() string {
6931	return awsutil.Prettify(s)
6932}
6933
6934// GoString returns the string representation
6935func (s CertificateLimitExceededException) GoString() string {
6936	return s.String()
6937}
6938
6939func newErrorCertificateLimitExceededException(v protocol.ResponseMetadata) error {
6940	return &CertificateLimitExceededException{
6941		RespMetadata: v,
6942	}
6943}
6944
6945// Code returns the exception type name.
6946func (s *CertificateLimitExceededException) Code() string {
6947	return "CertificateLimitExceededException"
6948}
6949
6950// Message returns the exception's message.
6951func (s *CertificateLimitExceededException) Message() string {
6952	if s.Message_ != nil {
6953		return *s.Message_
6954	}
6955	return ""
6956}
6957
6958// OrigErr always returns nil, satisfies awserr.Error interface.
6959func (s *CertificateLimitExceededException) OrigErr() error {
6960	return nil
6961}
6962
6963func (s *CertificateLimitExceededException) Error() string {
6964	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6965}
6966
6967// Status code returns the HTTP status code for the request's response error.
6968func (s *CertificateLimitExceededException) StatusCode() int {
6969	return s.RespMetadata.StatusCode
6970}
6971
6972// RequestID returns the service's response RequestID for request.
6973func (s *CertificateLimitExceededException) RequestID() string {
6974	return s.RespMetadata.RequestID
6975}
6976
6977// Contains information about the client certificate authentication settings
6978// for the RegisterCertificate and DescribeCertificate operations.
6979type ClientCertAuthSettings struct {
6980	_ struct{} `type:"structure"`
6981
6982	// Specifies the URL of the default OCSP server used to check for revocation
6983	// status. A secondary value to any OCSP address found in the AIA extension
6984	// of the user certificate.
6985	OCSPUrl *string `min:"1" type:"string"`
6986}
6987
6988// String returns the string representation
6989func (s ClientCertAuthSettings) String() string {
6990	return awsutil.Prettify(s)
6991}
6992
6993// GoString returns the string representation
6994func (s ClientCertAuthSettings) GoString() string {
6995	return s.String()
6996}
6997
6998// Validate inspects the fields of the type to determine if they are valid.
6999func (s *ClientCertAuthSettings) Validate() error {
7000	invalidParams := request.ErrInvalidParams{Context: "ClientCertAuthSettings"}
7001	if s.OCSPUrl != nil && len(*s.OCSPUrl) < 1 {
7002		invalidParams.Add(request.NewErrParamMinLen("OCSPUrl", 1))
7003	}
7004
7005	if invalidParams.Len() > 0 {
7006		return invalidParams
7007	}
7008	return nil
7009}
7010
7011// SetOCSPUrl sets the OCSPUrl field's value.
7012func (s *ClientCertAuthSettings) SetOCSPUrl(v string) *ClientCertAuthSettings {
7013	s.OCSPUrl = &v
7014	return s
7015}
7016
7017// A client exception has occurred.
7018type ClientException struct {
7019	_            struct{}                  `type:"structure"`
7020	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7021
7022	// The descriptive message for the exception.
7023	Message_ *string `locationName:"Message" type:"string"`
7024
7025	// The AWS request identifier.
7026	RequestId *string `type:"string"`
7027}
7028
7029// String returns the string representation
7030func (s ClientException) String() string {
7031	return awsutil.Prettify(s)
7032}
7033
7034// GoString returns the string representation
7035func (s ClientException) GoString() string {
7036	return s.String()
7037}
7038
7039func newErrorClientException(v protocol.ResponseMetadata) error {
7040	return &ClientException{
7041		RespMetadata: v,
7042	}
7043}
7044
7045// Code returns the exception type name.
7046func (s *ClientException) Code() string {
7047	return "ClientException"
7048}
7049
7050// Message returns the exception's message.
7051func (s *ClientException) Message() string {
7052	if s.Message_ != nil {
7053		return *s.Message_
7054	}
7055	return ""
7056}
7057
7058// OrigErr always returns nil, satisfies awserr.Error interface.
7059func (s *ClientException) OrigErr() error {
7060	return nil
7061}
7062
7063func (s *ClientException) Error() string {
7064	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7065}
7066
7067// Status code returns the HTTP status code for the request's response error.
7068func (s *ClientException) StatusCode() int {
7069	return s.RespMetadata.StatusCode
7070}
7071
7072// RequestID returns the service's response RequestID for request.
7073func (s *ClientException) RequestID() string {
7074	return s.RespMetadata.RequestID
7075}
7076
7077// Contains information about a computer account in a directory.
7078type Computer struct {
7079	_ struct{} `type:"structure"`
7080
7081	// An array of Attribute objects containing the LDAP attributes that belong
7082	// to the computer account.
7083	ComputerAttributes []*Attribute `type:"list"`
7084
7085	// The identifier of the computer.
7086	ComputerId *string `min:"1" type:"string"`
7087
7088	// The computer name.
7089	ComputerName *string `min:"1" type:"string"`
7090}
7091
7092// String returns the string representation
7093func (s Computer) String() string {
7094	return awsutil.Prettify(s)
7095}
7096
7097// GoString returns the string representation
7098func (s Computer) GoString() string {
7099	return s.String()
7100}
7101
7102// SetComputerAttributes sets the ComputerAttributes field's value.
7103func (s *Computer) SetComputerAttributes(v []*Attribute) *Computer {
7104	s.ComputerAttributes = v
7105	return s
7106}
7107
7108// SetComputerId sets the ComputerId field's value.
7109func (s *Computer) SetComputerId(v string) *Computer {
7110	s.ComputerId = &v
7111	return s
7112}
7113
7114// SetComputerName sets the ComputerName field's value.
7115func (s *Computer) SetComputerName(v string) *Computer {
7116	s.ComputerName = &v
7117	return s
7118}
7119
7120// Points to a remote domain with which you are setting up a trust relationship.
7121// Conditional forwarders are required in order to set up a trust relationship
7122// with another domain.
7123type ConditionalForwarder struct {
7124	_ struct{} `type:"structure"`
7125
7126	// The IP addresses of the remote DNS server associated with RemoteDomainName.
7127	// This is the IP address of the DNS server that your conditional forwarder
7128	// points to.
7129	DnsIpAddrs []*string `type:"list"`
7130
7131	// The fully qualified domain name (FQDN) of the remote domains pointed to by
7132	// the conditional forwarder.
7133	RemoteDomainName *string `type:"string"`
7134
7135	// The replication scope of the conditional forwarder. The only allowed value
7136	// is Domain, which will replicate the conditional forwarder to all of the domain
7137	// controllers for your AWS directory.
7138	ReplicationScope *string `type:"string" enum:"ReplicationScope"`
7139}
7140
7141// String returns the string representation
7142func (s ConditionalForwarder) String() string {
7143	return awsutil.Prettify(s)
7144}
7145
7146// GoString returns the string representation
7147func (s ConditionalForwarder) GoString() string {
7148	return s.String()
7149}
7150
7151// SetDnsIpAddrs sets the DnsIpAddrs field's value.
7152func (s *ConditionalForwarder) SetDnsIpAddrs(v []*string) *ConditionalForwarder {
7153	s.DnsIpAddrs = v
7154	return s
7155}
7156
7157// SetRemoteDomainName sets the RemoteDomainName field's value.
7158func (s *ConditionalForwarder) SetRemoteDomainName(v string) *ConditionalForwarder {
7159	s.RemoteDomainName = &v
7160	return s
7161}
7162
7163// SetReplicationScope sets the ReplicationScope field's value.
7164func (s *ConditionalForwarder) SetReplicationScope(v string) *ConditionalForwarder {
7165	s.ReplicationScope = &v
7166	return s
7167}
7168
7169// Contains the inputs for the ConnectDirectory operation.
7170type ConnectDirectoryInput struct {
7171	_ struct{} `type:"structure"`
7172
7173	// A DirectoryConnectSettings object that contains additional information for
7174	// the operation.
7175	//
7176	// ConnectSettings is a required field
7177	ConnectSettings *DirectoryConnectSettings `type:"structure" required:"true"`
7178
7179	// A description for the directory.
7180	Description *string `type:"string"`
7181
7182	// The fully qualified name of the on-premises directory, such as corp.example.com.
7183	//
7184	// Name is a required field
7185	Name *string `type:"string" required:"true"`
7186
7187	// The password for the on-premises user account.
7188	//
7189	// Password is a required field
7190	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
7191
7192	// The NetBIOS name of the on-premises directory, such as CORP.
7193	ShortName *string `type:"string"`
7194
7195	// The size of the directory.
7196	//
7197	// Size is a required field
7198	Size *string `type:"string" required:"true" enum:"DirectorySize"`
7199
7200	// The tags to be assigned to AD Connector.
7201	Tags []*Tag `type:"list"`
7202}
7203
7204// String returns the string representation
7205func (s ConnectDirectoryInput) String() string {
7206	return awsutil.Prettify(s)
7207}
7208
7209// GoString returns the string representation
7210func (s ConnectDirectoryInput) GoString() string {
7211	return s.String()
7212}
7213
7214// Validate inspects the fields of the type to determine if they are valid.
7215func (s *ConnectDirectoryInput) Validate() error {
7216	invalidParams := request.ErrInvalidParams{Context: "ConnectDirectoryInput"}
7217	if s.ConnectSettings == nil {
7218		invalidParams.Add(request.NewErrParamRequired("ConnectSettings"))
7219	}
7220	if s.Name == nil {
7221		invalidParams.Add(request.NewErrParamRequired("Name"))
7222	}
7223	if s.Password == nil {
7224		invalidParams.Add(request.NewErrParamRequired("Password"))
7225	}
7226	if s.Password != nil && len(*s.Password) < 1 {
7227		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
7228	}
7229	if s.Size == nil {
7230		invalidParams.Add(request.NewErrParamRequired("Size"))
7231	}
7232	if s.ConnectSettings != nil {
7233		if err := s.ConnectSettings.Validate(); err != nil {
7234			invalidParams.AddNested("ConnectSettings", err.(request.ErrInvalidParams))
7235		}
7236	}
7237	if s.Tags != nil {
7238		for i, v := range s.Tags {
7239			if v == nil {
7240				continue
7241			}
7242			if err := v.Validate(); err != nil {
7243				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7244			}
7245		}
7246	}
7247
7248	if invalidParams.Len() > 0 {
7249		return invalidParams
7250	}
7251	return nil
7252}
7253
7254// SetConnectSettings sets the ConnectSettings field's value.
7255func (s *ConnectDirectoryInput) SetConnectSettings(v *DirectoryConnectSettings) *ConnectDirectoryInput {
7256	s.ConnectSettings = v
7257	return s
7258}
7259
7260// SetDescription sets the Description field's value.
7261func (s *ConnectDirectoryInput) SetDescription(v string) *ConnectDirectoryInput {
7262	s.Description = &v
7263	return s
7264}
7265
7266// SetName sets the Name field's value.
7267func (s *ConnectDirectoryInput) SetName(v string) *ConnectDirectoryInput {
7268	s.Name = &v
7269	return s
7270}
7271
7272// SetPassword sets the Password field's value.
7273func (s *ConnectDirectoryInput) SetPassword(v string) *ConnectDirectoryInput {
7274	s.Password = &v
7275	return s
7276}
7277
7278// SetShortName sets the ShortName field's value.
7279func (s *ConnectDirectoryInput) SetShortName(v string) *ConnectDirectoryInput {
7280	s.ShortName = &v
7281	return s
7282}
7283
7284// SetSize sets the Size field's value.
7285func (s *ConnectDirectoryInput) SetSize(v string) *ConnectDirectoryInput {
7286	s.Size = &v
7287	return s
7288}
7289
7290// SetTags sets the Tags field's value.
7291func (s *ConnectDirectoryInput) SetTags(v []*Tag) *ConnectDirectoryInput {
7292	s.Tags = v
7293	return s
7294}
7295
7296// Contains the results of the ConnectDirectory operation.
7297type ConnectDirectoryOutput struct {
7298	_ struct{} `type:"structure"`
7299
7300	// The identifier of the new directory.
7301	DirectoryId *string `type:"string"`
7302}
7303
7304// String returns the string representation
7305func (s ConnectDirectoryOutput) String() string {
7306	return awsutil.Prettify(s)
7307}
7308
7309// GoString returns the string representation
7310func (s ConnectDirectoryOutput) GoString() string {
7311	return s.String()
7312}
7313
7314// SetDirectoryId sets the DirectoryId field's value.
7315func (s *ConnectDirectoryOutput) SetDirectoryId(v string) *ConnectDirectoryOutput {
7316	s.DirectoryId = &v
7317	return s
7318}
7319
7320// Contains the inputs for the CreateAlias operation.
7321type CreateAliasInput struct {
7322	_ struct{} `type:"structure"`
7323
7324	// The requested alias.
7325	//
7326	// The alias must be unique amongst all aliases in AWS. This operation throws
7327	// an EntityAlreadyExistsException error if the alias already exists.
7328	//
7329	// Alias is a required field
7330	Alias *string `min:"1" type:"string" required:"true"`
7331
7332	// The identifier of the directory for which to create the alias.
7333	//
7334	// DirectoryId is a required field
7335	DirectoryId *string `type:"string" required:"true"`
7336}
7337
7338// String returns the string representation
7339func (s CreateAliasInput) String() string {
7340	return awsutil.Prettify(s)
7341}
7342
7343// GoString returns the string representation
7344func (s CreateAliasInput) GoString() string {
7345	return s.String()
7346}
7347
7348// Validate inspects the fields of the type to determine if they are valid.
7349func (s *CreateAliasInput) Validate() error {
7350	invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"}
7351	if s.Alias == nil {
7352		invalidParams.Add(request.NewErrParamRequired("Alias"))
7353	}
7354	if s.Alias != nil && len(*s.Alias) < 1 {
7355		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
7356	}
7357	if s.DirectoryId == nil {
7358		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7359	}
7360
7361	if invalidParams.Len() > 0 {
7362		return invalidParams
7363	}
7364	return nil
7365}
7366
7367// SetAlias sets the Alias field's value.
7368func (s *CreateAliasInput) SetAlias(v string) *CreateAliasInput {
7369	s.Alias = &v
7370	return s
7371}
7372
7373// SetDirectoryId sets the DirectoryId field's value.
7374func (s *CreateAliasInput) SetDirectoryId(v string) *CreateAliasInput {
7375	s.DirectoryId = &v
7376	return s
7377}
7378
7379// Contains the results of the CreateAlias operation.
7380type CreateAliasOutput struct {
7381	_ struct{} `type:"structure"`
7382
7383	// The alias for the directory.
7384	Alias *string `min:"1" type:"string"`
7385
7386	// The identifier of the directory.
7387	DirectoryId *string `type:"string"`
7388}
7389
7390// String returns the string representation
7391func (s CreateAliasOutput) String() string {
7392	return awsutil.Prettify(s)
7393}
7394
7395// GoString returns the string representation
7396func (s CreateAliasOutput) GoString() string {
7397	return s.String()
7398}
7399
7400// SetAlias sets the Alias field's value.
7401func (s *CreateAliasOutput) SetAlias(v string) *CreateAliasOutput {
7402	s.Alias = &v
7403	return s
7404}
7405
7406// SetDirectoryId sets the DirectoryId field's value.
7407func (s *CreateAliasOutput) SetDirectoryId(v string) *CreateAliasOutput {
7408	s.DirectoryId = &v
7409	return s
7410}
7411
7412// Contains the inputs for the CreateComputer operation.
7413type CreateComputerInput struct {
7414	_ struct{} `type:"structure"`
7415
7416	// An array of Attribute objects that contain any LDAP attributes to apply to
7417	// the computer account.
7418	ComputerAttributes []*Attribute `type:"list"`
7419
7420	// The name of the computer account.
7421	//
7422	// ComputerName is a required field
7423	ComputerName *string `min:"1" type:"string" required:"true"`
7424
7425	// The identifier of the directory in which to create the computer account.
7426	//
7427	// DirectoryId is a required field
7428	DirectoryId *string `type:"string" required:"true"`
7429
7430	// The fully-qualified distinguished name of the organizational unit to place
7431	// the computer account in.
7432	OrganizationalUnitDistinguishedName *string `min:"1" type:"string"`
7433
7434	// A one-time password that is used to join the computer to the directory. You
7435	// should generate a random, strong password to use for this parameter.
7436	//
7437	// Password is a required field
7438	Password *string `min:"8" type:"string" required:"true" sensitive:"true"`
7439}
7440
7441// String returns the string representation
7442func (s CreateComputerInput) String() string {
7443	return awsutil.Prettify(s)
7444}
7445
7446// GoString returns the string representation
7447func (s CreateComputerInput) GoString() string {
7448	return s.String()
7449}
7450
7451// Validate inspects the fields of the type to determine if they are valid.
7452func (s *CreateComputerInput) Validate() error {
7453	invalidParams := request.ErrInvalidParams{Context: "CreateComputerInput"}
7454	if s.ComputerName == nil {
7455		invalidParams.Add(request.NewErrParamRequired("ComputerName"))
7456	}
7457	if s.ComputerName != nil && len(*s.ComputerName) < 1 {
7458		invalidParams.Add(request.NewErrParamMinLen("ComputerName", 1))
7459	}
7460	if s.DirectoryId == nil {
7461		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7462	}
7463	if s.OrganizationalUnitDistinguishedName != nil && len(*s.OrganizationalUnitDistinguishedName) < 1 {
7464		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnitDistinguishedName", 1))
7465	}
7466	if s.Password == nil {
7467		invalidParams.Add(request.NewErrParamRequired("Password"))
7468	}
7469	if s.Password != nil && len(*s.Password) < 8 {
7470		invalidParams.Add(request.NewErrParamMinLen("Password", 8))
7471	}
7472	if s.ComputerAttributes != nil {
7473		for i, v := range s.ComputerAttributes {
7474			if v == nil {
7475				continue
7476			}
7477			if err := v.Validate(); err != nil {
7478				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputerAttributes", i), err.(request.ErrInvalidParams))
7479			}
7480		}
7481	}
7482
7483	if invalidParams.Len() > 0 {
7484		return invalidParams
7485	}
7486	return nil
7487}
7488
7489// SetComputerAttributes sets the ComputerAttributes field's value.
7490func (s *CreateComputerInput) SetComputerAttributes(v []*Attribute) *CreateComputerInput {
7491	s.ComputerAttributes = v
7492	return s
7493}
7494
7495// SetComputerName sets the ComputerName field's value.
7496func (s *CreateComputerInput) SetComputerName(v string) *CreateComputerInput {
7497	s.ComputerName = &v
7498	return s
7499}
7500
7501// SetDirectoryId sets the DirectoryId field's value.
7502func (s *CreateComputerInput) SetDirectoryId(v string) *CreateComputerInput {
7503	s.DirectoryId = &v
7504	return s
7505}
7506
7507// SetOrganizationalUnitDistinguishedName sets the OrganizationalUnitDistinguishedName field's value.
7508func (s *CreateComputerInput) SetOrganizationalUnitDistinguishedName(v string) *CreateComputerInput {
7509	s.OrganizationalUnitDistinguishedName = &v
7510	return s
7511}
7512
7513// SetPassword sets the Password field's value.
7514func (s *CreateComputerInput) SetPassword(v string) *CreateComputerInput {
7515	s.Password = &v
7516	return s
7517}
7518
7519// Contains the results for the CreateComputer operation.
7520type CreateComputerOutput struct {
7521	_ struct{} `type:"structure"`
7522
7523	// A Computer object that represents the computer account.
7524	Computer *Computer `type:"structure"`
7525}
7526
7527// String returns the string representation
7528func (s CreateComputerOutput) String() string {
7529	return awsutil.Prettify(s)
7530}
7531
7532// GoString returns the string representation
7533func (s CreateComputerOutput) GoString() string {
7534	return s.String()
7535}
7536
7537// SetComputer sets the Computer field's value.
7538func (s *CreateComputerOutput) SetComputer(v *Computer) *CreateComputerOutput {
7539	s.Computer = v
7540	return s
7541}
7542
7543// Initiates the creation of a conditional forwarder for your AWS Directory
7544// Service for Microsoft Active Directory. Conditional forwarders are required
7545// in order to set up a trust relationship with another domain.
7546type CreateConditionalForwarderInput struct {
7547	_ struct{} `type:"structure"`
7548
7549	// The directory ID of the AWS directory for which you are creating the conditional
7550	// forwarder.
7551	//
7552	// DirectoryId is a required field
7553	DirectoryId *string `type:"string" required:"true"`
7554
7555	// The IP addresses of the remote DNS server associated with RemoteDomainName.
7556	//
7557	// DnsIpAddrs is a required field
7558	DnsIpAddrs []*string `type:"list" required:"true"`
7559
7560	// The fully qualified domain name (FQDN) of the remote domain with which you
7561	// will set up a trust relationship.
7562	//
7563	// RemoteDomainName is a required field
7564	RemoteDomainName *string `type:"string" required:"true"`
7565}
7566
7567// String returns the string representation
7568func (s CreateConditionalForwarderInput) String() string {
7569	return awsutil.Prettify(s)
7570}
7571
7572// GoString returns the string representation
7573func (s CreateConditionalForwarderInput) GoString() string {
7574	return s.String()
7575}
7576
7577// Validate inspects the fields of the type to determine if they are valid.
7578func (s *CreateConditionalForwarderInput) Validate() error {
7579	invalidParams := request.ErrInvalidParams{Context: "CreateConditionalForwarderInput"}
7580	if s.DirectoryId == nil {
7581		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7582	}
7583	if s.DnsIpAddrs == nil {
7584		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
7585	}
7586	if s.RemoteDomainName == nil {
7587		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
7588	}
7589
7590	if invalidParams.Len() > 0 {
7591		return invalidParams
7592	}
7593	return nil
7594}
7595
7596// SetDirectoryId sets the DirectoryId field's value.
7597func (s *CreateConditionalForwarderInput) SetDirectoryId(v string) *CreateConditionalForwarderInput {
7598	s.DirectoryId = &v
7599	return s
7600}
7601
7602// SetDnsIpAddrs sets the DnsIpAddrs field's value.
7603func (s *CreateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *CreateConditionalForwarderInput {
7604	s.DnsIpAddrs = v
7605	return s
7606}
7607
7608// SetRemoteDomainName sets the RemoteDomainName field's value.
7609func (s *CreateConditionalForwarderInput) SetRemoteDomainName(v string) *CreateConditionalForwarderInput {
7610	s.RemoteDomainName = &v
7611	return s
7612}
7613
7614// The result of a CreateConditinalForwarder request.
7615type CreateConditionalForwarderOutput struct {
7616	_ struct{} `type:"structure"`
7617}
7618
7619// String returns the string representation
7620func (s CreateConditionalForwarderOutput) String() string {
7621	return awsutil.Prettify(s)
7622}
7623
7624// GoString returns the string representation
7625func (s CreateConditionalForwarderOutput) GoString() string {
7626	return s.String()
7627}
7628
7629// Contains the inputs for the CreateDirectory operation.
7630type CreateDirectoryInput struct {
7631	_ struct{} `type:"structure"`
7632
7633	// A description for the directory.
7634	Description *string `type:"string"`
7635
7636	// The fully qualified name for the directory, such as corp.example.com.
7637	//
7638	// Name is a required field
7639	Name *string `type:"string" required:"true"`
7640
7641	// The password for the directory administrator. The directory creation process
7642	// creates a directory administrator account with the user name Administrator
7643	// and this password.
7644	//
7645	// If you need to change the password for the administrator account, you can
7646	// use the ResetUserPassword API call.
7647	//
7648	// The regex pattern for this string is made up of the following conditions:
7649	//
7650	//    * Length (?=^.{8,64}$) – Must be between 8 and 64 characters
7651	//
7652	// AND any 3 of the following password complexity rules required by Active Directory:
7653	//
7654	//    * Numbers and upper case and lowercase (?=.*\d)(?=.*[A-Z])(?=.*[a-z])
7655	//
7656	//    * Numbers and special characters and lower case (?=.*\d)(?=.*[^A-Za-z0-9\s])(?=.*[a-z])
7657	//
7658	//    * Special characters and upper case and lower case (?=.*[^A-Za-z0-9\s])(?=.*[A-Z])(?=.*[a-z])
7659	//
7660	//    * Numbers and upper case and special characters (?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\s])
7661	//
7662	// For additional information about how Active Directory passwords are enforced,
7663	// see Password must meet complexity requirements (https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements)
7664	// on the Microsoft website.
7665	//
7666	// Password is a required field
7667	Password *string `type:"string" required:"true" sensitive:"true"`
7668
7669	// The NetBIOS name of the directory, such as CORP.
7670	ShortName *string `type:"string"`
7671
7672	// The size of the directory.
7673	//
7674	// Size is a required field
7675	Size *string `type:"string" required:"true" enum:"DirectorySize"`
7676
7677	// The tags to be assigned to the Simple AD directory.
7678	Tags []*Tag `type:"list"`
7679
7680	// A DirectoryVpcSettings object that contains additional information for the
7681	// operation.
7682	VpcSettings *DirectoryVpcSettings `type:"structure"`
7683}
7684
7685// String returns the string representation
7686func (s CreateDirectoryInput) String() string {
7687	return awsutil.Prettify(s)
7688}
7689
7690// GoString returns the string representation
7691func (s CreateDirectoryInput) GoString() string {
7692	return s.String()
7693}
7694
7695// Validate inspects the fields of the type to determine if they are valid.
7696func (s *CreateDirectoryInput) Validate() error {
7697	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
7698	if s.Name == nil {
7699		invalidParams.Add(request.NewErrParamRequired("Name"))
7700	}
7701	if s.Password == nil {
7702		invalidParams.Add(request.NewErrParamRequired("Password"))
7703	}
7704	if s.Size == nil {
7705		invalidParams.Add(request.NewErrParamRequired("Size"))
7706	}
7707	if s.Tags != nil {
7708		for i, v := range s.Tags {
7709			if v == nil {
7710				continue
7711			}
7712			if err := v.Validate(); err != nil {
7713				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7714			}
7715		}
7716	}
7717	if s.VpcSettings != nil {
7718		if err := s.VpcSettings.Validate(); err != nil {
7719			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
7720		}
7721	}
7722
7723	if invalidParams.Len() > 0 {
7724		return invalidParams
7725	}
7726	return nil
7727}
7728
7729// SetDescription sets the Description field's value.
7730func (s *CreateDirectoryInput) SetDescription(v string) *CreateDirectoryInput {
7731	s.Description = &v
7732	return s
7733}
7734
7735// SetName sets the Name field's value.
7736func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
7737	s.Name = &v
7738	return s
7739}
7740
7741// SetPassword sets the Password field's value.
7742func (s *CreateDirectoryInput) SetPassword(v string) *CreateDirectoryInput {
7743	s.Password = &v
7744	return s
7745}
7746
7747// SetShortName sets the ShortName field's value.
7748func (s *CreateDirectoryInput) SetShortName(v string) *CreateDirectoryInput {
7749	s.ShortName = &v
7750	return s
7751}
7752
7753// SetSize sets the Size field's value.
7754func (s *CreateDirectoryInput) SetSize(v string) *CreateDirectoryInput {
7755	s.Size = &v
7756	return s
7757}
7758
7759// SetTags sets the Tags field's value.
7760func (s *CreateDirectoryInput) SetTags(v []*Tag) *CreateDirectoryInput {
7761	s.Tags = v
7762	return s
7763}
7764
7765// SetVpcSettings sets the VpcSettings field's value.
7766func (s *CreateDirectoryInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateDirectoryInput {
7767	s.VpcSettings = v
7768	return s
7769}
7770
7771// Contains the results of the CreateDirectory operation.
7772type CreateDirectoryOutput struct {
7773	_ struct{} `type:"structure"`
7774
7775	// The identifier of the directory that was created.
7776	DirectoryId *string `type:"string"`
7777}
7778
7779// String returns the string representation
7780func (s CreateDirectoryOutput) String() string {
7781	return awsutil.Prettify(s)
7782}
7783
7784// GoString returns the string representation
7785func (s CreateDirectoryOutput) GoString() string {
7786	return s.String()
7787}
7788
7789// SetDirectoryId sets the DirectoryId field's value.
7790func (s *CreateDirectoryOutput) SetDirectoryId(v string) *CreateDirectoryOutput {
7791	s.DirectoryId = &v
7792	return s
7793}
7794
7795type CreateLogSubscriptionInput struct {
7796	_ struct{} `type:"structure"`
7797
7798	// Identifier of the directory to which you want to subscribe and receive real-time
7799	// logs to your specified CloudWatch log group.
7800	//
7801	// DirectoryId is a required field
7802	DirectoryId *string `type:"string" required:"true"`
7803
7804	// The name of the CloudWatch log group where the real-time domain controller
7805	// logs are forwarded.
7806	//
7807	// LogGroupName is a required field
7808	LogGroupName *string `min:"1" type:"string" required:"true"`
7809}
7810
7811// String returns the string representation
7812func (s CreateLogSubscriptionInput) String() string {
7813	return awsutil.Prettify(s)
7814}
7815
7816// GoString returns the string representation
7817func (s CreateLogSubscriptionInput) GoString() string {
7818	return s.String()
7819}
7820
7821// Validate inspects the fields of the type to determine if they are valid.
7822func (s *CreateLogSubscriptionInput) Validate() error {
7823	invalidParams := request.ErrInvalidParams{Context: "CreateLogSubscriptionInput"}
7824	if s.DirectoryId == nil {
7825		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7826	}
7827	if s.LogGroupName == nil {
7828		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
7829	}
7830	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
7831		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
7832	}
7833
7834	if invalidParams.Len() > 0 {
7835		return invalidParams
7836	}
7837	return nil
7838}
7839
7840// SetDirectoryId sets the DirectoryId field's value.
7841func (s *CreateLogSubscriptionInput) SetDirectoryId(v string) *CreateLogSubscriptionInput {
7842	s.DirectoryId = &v
7843	return s
7844}
7845
7846// SetLogGroupName sets the LogGroupName field's value.
7847func (s *CreateLogSubscriptionInput) SetLogGroupName(v string) *CreateLogSubscriptionInput {
7848	s.LogGroupName = &v
7849	return s
7850}
7851
7852type CreateLogSubscriptionOutput struct {
7853	_ struct{} `type:"structure"`
7854}
7855
7856// String returns the string representation
7857func (s CreateLogSubscriptionOutput) String() string {
7858	return awsutil.Prettify(s)
7859}
7860
7861// GoString returns the string representation
7862func (s CreateLogSubscriptionOutput) GoString() string {
7863	return s.String()
7864}
7865
7866// Creates an AWS Managed Microsoft AD directory.
7867type CreateMicrosoftADInput struct {
7868	_ struct{} `type:"structure"`
7869
7870	// A description for the directory. This label will appear on the AWS console
7871	// Directory Details page after the directory is created.
7872	Description *string `type:"string"`
7873
7874	// AWS Managed Microsoft AD is available in two editions: Standard and Enterprise.
7875	// Enterprise is the default.
7876	Edition *string `type:"string" enum:"DirectoryEdition"`
7877
7878	// The fully qualified domain name for the AWS Managed Microsoft AD directory,
7879	// such as corp.example.com. This name will resolve inside your VPC only. It
7880	// does not need to be publicly resolvable.
7881	//
7882	// Name is a required field
7883	Name *string `type:"string" required:"true"`
7884
7885	// The password for the default administrative user named Admin.
7886	//
7887	// If you need to change the password for the administrator account, you can
7888	// use the ResetUserPassword API call.
7889	//
7890	// Password is a required field
7891	Password *string `type:"string" required:"true" sensitive:"true"`
7892
7893	// The NetBIOS name for your domain, such as CORP. If you don't specify a NetBIOS
7894	// name, it will default to the first part of your directory DNS. For example,
7895	// CORP for the directory DNS corp.example.com.
7896	ShortName *string `type:"string"`
7897
7898	// The tags to be assigned to the AWS Managed Microsoft AD directory.
7899	Tags []*Tag `type:"list"`
7900
7901	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
7902	//
7903	// VpcSettings is a required field
7904	VpcSettings *DirectoryVpcSettings `type:"structure" required:"true"`
7905}
7906
7907// String returns the string representation
7908func (s CreateMicrosoftADInput) String() string {
7909	return awsutil.Prettify(s)
7910}
7911
7912// GoString returns the string representation
7913func (s CreateMicrosoftADInput) GoString() string {
7914	return s.String()
7915}
7916
7917// Validate inspects the fields of the type to determine if they are valid.
7918func (s *CreateMicrosoftADInput) Validate() error {
7919	invalidParams := request.ErrInvalidParams{Context: "CreateMicrosoftADInput"}
7920	if s.Name == nil {
7921		invalidParams.Add(request.NewErrParamRequired("Name"))
7922	}
7923	if s.Password == nil {
7924		invalidParams.Add(request.NewErrParamRequired("Password"))
7925	}
7926	if s.VpcSettings == nil {
7927		invalidParams.Add(request.NewErrParamRequired("VpcSettings"))
7928	}
7929	if s.Tags != nil {
7930		for i, v := range s.Tags {
7931			if v == nil {
7932				continue
7933			}
7934			if err := v.Validate(); err != nil {
7935				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7936			}
7937		}
7938	}
7939	if s.VpcSettings != nil {
7940		if err := s.VpcSettings.Validate(); err != nil {
7941			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
7942		}
7943	}
7944
7945	if invalidParams.Len() > 0 {
7946		return invalidParams
7947	}
7948	return nil
7949}
7950
7951// SetDescription sets the Description field's value.
7952func (s *CreateMicrosoftADInput) SetDescription(v string) *CreateMicrosoftADInput {
7953	s.Description = &v
7954	return s
7955}
7956
7957// SetEdition sets the Edition field's value.
7958func (s *CreateMicrosoftADInput) SetEdition(v string) *CreateMicrosoftADInput {
7959	s.Edition = &v
7960	return s
7961}
7962
7963// SetName sets the Name field's value.
7964func (s *CreateMicrosoftADInput) SetName(v string) *CreateMicrosoftADInput {
7965	s.Name = &v
7966	return s
7967}
7968
7969// SetPassword sets the Password field's value.
7970func (s *CreateMicrosoftADInput) SetPassword(v string) *CreateMicrosoftADInput {
7971	s.Password = &v
7972	return s
7973}
7974
7975// SetShortName sets the ShortName field's value.
7976func (s *CreateMicrosoftADInput) SetShortName(v string) *CreateMicrosoftADInput {
7977	s.ShortName = &v
7978	return s
7979}
7980
7981// SetTags sets the Tags field's value.
7982func (s *CreateMicrosoftADInput) SetTags(v []*Tag) *CreateMicrosoftADInput {
7983	s.Tags = v
7984	return s
7985}
7986
7987// SetVpcSettings sets the VpcSettings field's value.
7988func (s *CreateMicrosoftADInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateMicrosoftADInput {
7989	s.VpcSettings = v
7990	return s
7991}
7992
7993// Result of a CreateMicrosoftAD request.
7994type CreateMicrosoftADOutput struct {
7995	_ struct{} `type:"structure"`
7996
7997	// The identifier of the directory that was created.
7998	DirectoryId *string `type:"string"`
7999}
8000
8001// String returns the string representation
8002func (s CreateMicrosoftADOutput) String() string {
8003	return awsutil.Prettify(s)
8004}
8005
8006// GoString returns the string representation
8007func (s CreateMicrosoftADOutput) GoString() string {
8008	return s.String()
8009}
8010
8011// SetDirectoryId sets the DirectoryId field's value.
8012func (s *CreateMicrosoftADOutput) SetDirectoryId(v string) *CreateMicrosoftADOutput {
8013	s.DirectoryId = &v
8014	return s
8015}
8016
8017// Contains the inputs for the CreateSnapshot operation.
8018type CreateSnapshotInput struct {
8019	_ struct{} `type:"structure"`
8020
8021	// The identifier of the directory of which to take a snapshot.
8022	//
8023	// DirectoryId is a required field
8024	DirectoryId *string `type:"string" required:"true"`
8025
8026	// The descriptive name to apply to the snapshot.
8027	Name *string `type:"string"`
8028}
8029
8030// String returns the string representation
8031func (s CreateSnapshotInput) String() string {
8032	return awsutil.Prettify(s)
8033}
8034
8035// GoString returns the string representation
8036func (s CreateSnapshotInput) GoString() string {
8037	return s.String()
8038}
8039
8040// Validate inspects the fields of the type to determine if they are valid.
8041func (s *CreateSnapshotInput) Validate() error {
8042	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
8043	if s.DirectoryId == nil {
8044		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8045	}
8046
8047	if invalidParams.Len() > 0 {
8048		return invalidParams
8049	}
8050	return nil
8051}
8052
8053// SetDirectoryId sets the DirectoryId field's value.
8054func (s *CreateSnapshotInput) SetDirectoryId(v string) *CreateSnapshotInput {
8055	s.DirectoryId = &v
8056	return s
8057}
8058
8059// SetName sets the Name field's value.
8060func (s *CreateSnapshotInput) SetName(v string) *CreateSnapshotInput {
8061	s.Name = &v
8062	return s
8063}
8064
8065// Contains the results of the CreateSnapshot operation.
8066type CreateSnapshotOutput struct {
8067	_ struct{} `type:"structure"`
8068
8069	// The identifier of the snapshot that was created.
8070	SnapshotId *string `type:"string"`
8071}
8072
8073// String returns the string representation
8074func (s CreateSnapshotOutput) String() string {
8075	return awsutil.Prettify(s)
8076}
8077
8078// GoString returns the string representation
8079func (s CreateSnapshotOutput) GoString() string {
8080	return s.String()
8081}
8082
8083// SetSnapshotId sets the SnapshotId field's value.
8084func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
8085	s.SnapshotId = &v
8086	return s
8087}
8088
8089// AWS Directory Service for Microsoft Active Directory allows you to configure
8090// trust relationships. For example, you can establish a trust between your
8091// AWS Managed Microsoft AD directory, and your existing on-premises Microsoft
8092// Active Directory. This would allow you to provide users and groups access
8093// to resources in either domain, with a single set of credentials.
8094//
8095// This action initiates the creation of the AWS side of a trust relationship
8096// between an AWS Managed Microsoft AD directory and an external domain.
8097type CreateTrustInput struct {
8098	_ struct{} `type:"structure"`
8099
8100	// The IP addresses of the remote DNS server associated with RemoteDomainName.
8101	ConditionalForwarderIpAddrs []*string `type:"list"`
8102
8103	// The Directory ID of the AWS Managed Microsoft AD directory for which to establish
8104	// the trust relationship.
8105	//
8106	// DirectoryId is a required field
8107	DirectoryId *string `type:"string" required:"true"`
8108
8109	// The Fully Qualified Domain Name (FQDN) of the external domain for which to
8110	// create the trust relationship.
8111	//
8112	// RemoteDomainName is a required field
8113	RemoteDomainName *string `type:"string" required:"true"`
8114
8115	// Optional parameter to enable selective authentication for the trust.
8116	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
8117
8118	// The direction of the trust relationship.
8119	//
8120	// TrustDirection is a required field
8121	TrustDirection *string `type:"string" required:"true" enum:"TrustDirection"`
8122
8123	// The trust password. The must be the same password that was used when creating
8124	// the trust relationship on the external domain.
8125	//
8126	// TrustPassword is a required field
8127	TrustPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
8128
8129	// The trust relationship type. Forest is the default.
8130	TrustType *string `type:"string" enum:"TrustType"`
8131}
8132
8133// String returns the string representation
8134func (s CreateTrustInput) String() string {
8135	return awsutil.Prettify(s)
8136}
8137
8138// GoString returns the string representation
8139func (s CreateTrustInput) GoString() string {
8140	return s.String()
8141}
8142
8143// Validate inspects the fields of the type to determine if they are valid.
8144func (s *CreateTrustInput) Validate() error {
8145	invalidParams := request.ErrInvalidParams{Context: "CreateTrustInput"}
8146	if s.DirectoryId == nil {
8147		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8148	}
8149	if s.RemoteDomainName == nil {
8150		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
8151	}
8152	if s.TrustDirection == nil {
8153		invalidParams.Add(request.NewErrParamRequired("TrustDirection"))
8154	}
8155	if s.TrustPassword == nil {
8156		invalidParams.Add(request.NewErrParamRequired("TrustPassword"))
8157	}
8158	if s.TrustPassword != nil && len(*s.TrustPassword) < 1 {
8159		invalidParams.Add(request.NewErrParamMinLen("TrustPassword", 1))
8160	}
8161
8162	if invalidParams.Len() > 0 {
8163		return invalidParams
8164	}
8165	return nil
8166}
8167
8168// SetConditionalForwarderIpAddrs sets the ConditionalForwarderIpAddrs field's value.
8169func (s *CreateTrustInput) SetConditionalForwarderIpAddrs(v []*string) *CreateTrustInput {
8170	s.ConditionalForwarderIpAddrs = v
8171	return s
8172}
8173
8174// SetDirectoryId sets the DirectoryId field's value.
8175func (s *CreateTrustInput) SetDirectoryId(v string) *CreateTrustInput {
8176	s.DirectoryId = &v
8177	return s
8178}
8179
8180// SetRemoteDomainName sets the RemoteDomainName field's value.
8181func (s *CreateTrustInput) SetRemoteDomainName(v string) *CreateTrustInput {
8182	s.RemoteDomainName = &v
8183	return s
8184}
8185
8186// SetSelectiveAuth sets the SelectiveAuth field's value.
8187func (s *CreateTrustInput) SetSelectiveAuth(v string) *CreateTrustInput {
8188	s.SelectiveAuth = &v
8189	return s
8190}
8191
8192// SetTrustDirection sets the TrustDirection field's value.
8193func (s *CreateTrustInput) SetTrustDirection(v string) *CreateTrustInput {
8194	s.TrustDirection = &v
8195	return s
8196}
8197
8198// SetTrustPassword sets the TrustPassword field's value.
8199func (s *CreateTrustInput) SetTrustPassword(v string) *CreateTrustInput {
8200	s.TrustPassword = &v
8201	return s
8202}
8203
8204// SetTrustType sets the TrustType field's value.
8205func (s *CreateTrustInput) SetTrustType(v string) *CreateTrustInput {
8206	s.TrustType = &v
8207	return s
8208}
8209
8210// The result of a CreateTrust request.
8211type CreateTrustOutput struct {
8212	_ struct{} `type:"structure"`
8213
8214	// A unique identifier for the trust relationship that was created.
8215	TrustId *string `type:"string"`
8216}
8217
8218// String returns the string representation
8219func (s CreateTrustOutput) String() string {
8220	return awsutil.Prettify(s)
8221}
8222
8223// GoString returns the string representation
8224func (s CreateTrustOutput) GoString() string {
8225	return s.String()
8226}
8227
8228// SetTrustId sets the TrustId field's value.
8229func (s *CreateTrustOutput) SetTrustId(v string) *CreateTrustOutput {
8230	s.TrustId = &v
8231	return s
8232}
8233
8234// Deletes a conditional forwarder.
8235type DeleteConditionalForwarderInput struct {
8236	_ struct{} `type:"structure"`
8237
8238	// The directory ID for which you are deleting the conditional forwarder.
8239	//
8240	// DirectoryId is a required field
8241	DirectoryId *string `type:"string" required:"true"`
8242
8243	// The fully qualified domain name (FQDN) of the remote domain with which you
8244	// are deleting the conditional forwarder.
8245	//
8246	// RemoteDomainName is a required field
8247	RemoteDomainName *string `type:"string" required:"true"`
8248}
8249
8250// String returns the string representation
8251func (s DeleteConditionalForwarderInput) String() string {
8252	return awsutil.Prettify(s)
8253}
8254
8255// GoString returns the string representation
8256func (s DeleteConditionalForwarderInput) GoString() string {
8257	return s.String()
8258}
8259
8260// Validate inspects the fields of the type to determine if they are valid.
8261func (s *DeleteConditionalForwarderInput) Validate() error {
8262	invalidParams := request.ErrInvalidParams{Context: "DeleteConditionalForwarderInput"}
8263	if s.DirectoryId == nil {
8264		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8265	}
8266	if s.RemoteDomainName == nil {
8267		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
8268	}
8269
8270	if invalidParams.Len() > 0 {
8271		return invalidParams
8272	}
8273	return nil
8274}
8275
8276// SetDirectoryId sets the DirectoryId field's value.
8277func (s *DeleteConditionalForwarderInput) SetDirectoryId(v string) *DeleteConditionalForwarderInput {
8278	s.DirectoryId = &v
8279	return s
8280}
8281
8282// SetRemoteDomainName sets the RemoteDomainName field's value.
8283func (s *DeleteConditionalForwarderInput) SetRemoteDomainName(v string) *DeleteConditionalForwarderInput {
8284	s.RemoteDomainName = &v
8285	return s
8286}
8287
8288// The result of a DeleteConditionalForwarder request.
8289type DeleteConditionalForwarderOutput struct {
8290	_ struct{} `type:"structure"`
8291}
8292
8293// String returns the string representation
8294func (s DeleteConditionalForwarderOutput) String() string {
8295	return awsutil.Prettify(s)
8296}
8297
8298// GoString returns the string representation
8299func (s DeleteConditionalForwarderOutput) GoString() string {
8300	return s.String()
8301}
8302
8303// Contains the inputs for the DeleteDirectory operation.
8304type DeleteDirectoryInput struct {
8305	_ struct{} `type:"structure"`
8306
8307	// The identifier of the directory to delete.
8308	//
8309	// DirectoryId is a required field
8310	DirectoryId *string `type:"string" required:"true"`
8311}
8312
8313// String returns the string representation
8314func (s DeleteDirectoryInput) String() string {
8315	return awsutil.Prettify(s)
8316}
8317
8318// GoString returns the string representation
8319func (s DeleteDirectoryInput) GoString() string {
8320	return s.String()
8321}
8322
8323// Validate inspects the fields of the type to determine if they are valid.
8324func (s *DeleteDirectoryInput) Validate() error {
8325	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
8326	if s.DirectoryId == nil {
8327		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8328	}
8329
8330	if invalidParams.Len() > 0 {
8331		return invalidParams
8332	}
8333	return nil
8334}
8335
8336// SetDirectoryId sets the DirectoryId field's value.
8337func (s *DeleteDirectoryInput) SetDirectoryId(v string) *DeleteDirectoryInput {
8338	s.DirectoryId = &v
8339	return s
8340}
8341
8342// Contains the results of the DeleteDirectory operation.
8343type DeleteDirectoryOutput struct {
8344	_ struct{} `type:"structure"`
8345
8346	// The directory identifier.
8347	DirectoryId *string `type:"string"`
8348}
8349
8350// String returns the string representation
8351func (s DeleteDirectoryOutput) String() string {
8352	return awsutil.Prettify(s)
8353}
8354
8355// GoString returns the string representation
8356func (s DeleteDirectoryOutput) GoString() string {
8357	return s.String()
8358}
8359
8360// SetDirectoryId sets the DirectoryId field's value.
8361func (s *DeleteDirectoryOutput) SetDirectoryId(v string) *DeleteDirectoryOutput {
8362	s.DirectoryId = &v
8363	return s
8364}
8365
8366type DeleteLogSubscriptionInput struct {
8367	_ struct{} `type:"structure"`
8368
8369	// Identifier of the directory whose log subscription you want to delete.
8370	//
8371	// DirectoryId is a required field
8372	DirectoryId *string `type:"string" required:"true"`
8373}
8374
8375// String returns the string representation
8376func (s DeleteLogSubscriptionInput) String() string {
8377	return awsutil.Prettify(s)
8378}
8379
8380// GoString returns the string representation
8381func (s DeleteLogSubscriptionInput) GoString() string {
8382	return s.String()
8383}
8384
8385// Validate inspects the fields of the type to determine if they are valid.
8386func (s *DeleteLogSubscriptionInput) Validate() error {
8387	invalidParams := request.ErrInvalidParams{Context: "DeleteLogSubscriptionInput"}
8388	if s.DirectoryId == nil {
8389		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8390	}
8391
8392	if invalidParams.Len() > 0 {
8393		return invalidParams
8394	}
8395	return nil
8396}
8397
8398// SetDirectoryId sets the DirectoryId field's value.
8399func (s *DeleteLogSubscriptionInput) SetDirectoryId(v string) *DeleteLogSubscriptionInput {
8400	s.DirectoryId = &v
8401	return s
8402}
8403
8404type DeleteLogSubscriptionOutput struct {
8405	_ struct{} `type:"structure"`
8406}
8407
8408// String returns the string representation
8409func (s DeleteLogSubscriptionOutput) String() string {
8410	return awsutil.Prettify(s)
8411}
8412
8413// GoString returns the string representation
8414func (s DeleteLogSubscriptionOutput) GoString() string {
8415	return s.String()
8416}
8417
8418// Contains the inputs for the DeleteSnapshot operation.
8419type DeleteSnapshotInput struct {
8420	_ struct{} `type:"structure"`
8421
8422	// The identifier of the directory snapshot to be deleted.
8423	//
8424	// SnapshotId is a required field
8425	SnapshotId *string `type:"string" required:"true"`
8426}
8427
8428// String returns the string representation
8429func (s DeleteSnapshotInput) String() string {
8430	return awsutil.Prettify(s)
8431}
8432
8433// GoString returns the string representation
8434func (s DeleteSnapshotInput) GoString() string {
8435	return s.String()
8436}
8437
8438// Validate inspects the fields of the type to determine if they are valid.
8439func (s *DeleteSnapshotInput) Validate() error {
8440	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotInput"}
8441	if s.SnapshotId == nil {
8442		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
8443	}
8444
8445	if invalidParams.Len() > 0 {
8446		return invalidParams
8447	}
8448	return nil
8449}
8450
8451// SetSnapshotId sets the SnapshotId field's value.
8452func (s *DeleteSnapshotInput) SetSnapshotId(v string) *DeleteSnapshotInput {
8453	s.SnapshotId = &v
8454	return s
8455}
8456
8457// Contains the results of the DeleteSnapshot operation.
8458type DeleteSnapshotOutput struct {
8459	_ struct{} `type:"structure"`
8460
8461	// The identifier of the directory snapshot that was deleted.
8462	SnapshotId *string `type:"string"`
8463}
8464
8465// String returns the string representation
8466func (s DeleteSnapshotOutput) String() string {
8467	return awsutil.Prettify(s)
8468}
8469
8470// GoString returns the string representation
8471func (s DeleteSnapshotOutput) GoString() string {
8472	return s.String()
8473}
8474
8475// SetSnapshotId sets the SnapshotId field's value.
8476func (s *DeleteSnapshotOutput) SetSnapshotId(v string) *DeleteSnapshotOutput {
8477	s.SnapshotId = &v
8478	return s
8479}
8480
8481// Deletes the local side of an existing trust relationship between the AWS
8482// Managed Microsoft AD directory and the external domain.
8483type DeleteTrustInput struct {
8484	_ struct{} `type:"structure"`
8485
8486	// Delete a conditional forwarder as part of a DeleteTrustRequest.
8487	DeleteAssociatedConditionalForwarder *bool `type:"boolean"`
8488
8489	// The Trust ID of the trust relationship to be deleted.
8490	//
8491	// TrustId is a required field
8492	TrustId *string `type:"string" required:"true"`
8493}
8494
8495// String returns the string representation
8496func (s DeleteTrustInput) String() string {
8497	return awsutil.Prettify(s)
8498}
8499
8500// GoString returns the string representation
8501func (s DeleteTrustInput) GoString() string {
8502	return s.String()
8503}
8504
8505// Validate inspects the fields of the type to determine if they are valid.
8506func (s *DeleteTrustInput) Validate() error {
8507	invalidParams := request.ErrInvalidParams{Context: "DeleteTrustInput"}
8508	if s.TrustId == nil {
8509		invalidParams.Add(request.NewErrParamRequired("TrustId"))
8510	}
8511
8512	if invalidParams.Len() > 0 {
8513		return invalidParams
8514	}
8515	return nil
8516}
8517
8518// SetDeleteAssociatedConditionalForwarder sets the DeleteAssociatedConditionalForwarder field's value.
8519func (s *DeleteTrustInput) SetDeleteAssociatedConditionalForwarder(v bool) *DeleteTrustInput {
8520	s.DeleteAssociatedConditionalForwarder = &v
8521	return s
8522}
8523
8524// SetTrustId sets the TrustId field's value.
8525func (s *DeleteTrustInput) SetTrustId(v string) *DeleteTrustInput {
8526	s.TrustId = &v
8527	return s
8528}
8529
8530// The result of a DeleteTrust request.
8531type DeleteTrustOutput struct {
8532	_ struct{} `type:"structure"`
8533
8534	// The Trust ID of the trust relationship that was deleted.
8535	TrustId *string `type:"string"`
8536}
8537
8538// String returns the string representation
8539func (s DeleteTrustOutput) String() string {
8540	return awsutil.Prettify(s)
8541}
8542
8543// GoString returns the string representation
8544func (s DeleteTrustOutput) GoString() string {
8545	return s.String()
8546}
8547
8548// SetTrustId sets the TrustId field's value.
8549func (s *DeleteTrustOutput) SetTrustId(v string) *DeleteTrustOutput {
8550	s.TrustId = &v
8551	return s
8552}
8553
8554type DeregisterCertificateInput struct {
8555	_ struct{} `type:"structure"`
8556
8557	// The identifier of the certificate.
8558	//
8559	// CertificateId is a required field
8560	CertificateId *string `type:"string" required:"true"`
8561
8562	// The identifier of the directory.
8563	//
8564	// DirectoryId is a required field
8565	DirectoryId *string `type:"string" required:"true"`
8566}
8567
8568// String returns the string representation
8569func (s DeregisterCertificateInput) String() string {
8570	return awsutil.Prettify(s)
8571}
8572
8573// GoString returns the string representation
8574func (s DeregisterCertificateInput) GoString() string {
8575	return s.String()
8576}
8577
8578// Validate inspects the fields of the type to determine if they are valid.
8579func (s *DeregisterCertificateInput) Validate() error {
8580	invalidParams := request.ErrInvalidParams{Context: "DeregisterCertificateInput"}
8581	if s.CertificateId == nil {
8582		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
8583	}
8584	if s.DirectoryId == nil {
8585		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8586	}
8587
8588	if invalidParams.Len() > 0 {
8589		return invalidParams
8590	}
8591	return nil
8592}
8593
8594// SetCertificateId sets the CertificateId field's value.
8595func (s *DeregisterCertificateInput) SetCertificateId(v string) *DeregisterCertificateInput {
8596	s.CertificateId = &v
8597	return s
8598}
8599
8600// SetDirectoryId sets the DirectoryId field's value.
8601func (s *DeregisterCertificateInput) SetDirectoryId(v string) *DeregisterCertificateInput {
8602	s.DirectoryId = &v
8603	return s
8604}
8605
8606type DeregisterCertificateOutput struct {
8607	_ struct{} `type:"structure"`
8608}
8609
8610// String returns the string representation
8611func (s DeregisterCertificateOutput) String() string {
8612	return awsutil.Prettify(s)
8613}
8614
8615// GoString returns the string representation
8616func (s DeregisterCertificateOutput) GoString() string {
8617	return s.String()
8618}
8619
8620// Removes the specified directory as a publisher to the specified SNS topic.
8621type DeregisterEventTopicInput struct {
8622	_ struct{} `type:"structure"`
8623
8624	// The Directory ID to remove as a publisher. This directory will no longer
8625	// send messages to the specified SNS topic.
8626	//
8627	// DirectoryId is a required field
8628	DirectoryId *string `type:"string" required:"true"`
8629
8630	// The name of the SNS topic from which to remove the directory as a publisher.
8631	//
8632	// TopicName is a required field
8633	TopicName *string `min:"1" type:"string" required:"true"`
8634}
8635
8636// String returns the string representation
8637func (s DeregisterEventTopicInput) String() string {
8638	return awsutil.Prettify(s)
8639}
8640
8641// GoString returns the string representation
8642func (s DeregisterEventTopicInput) GoString() string {
8643	return s.String()
8644}
8645
8646// Validate inspects the fields of the type to determine if they are valid.
8647func (s *DeregisterEventTopicInput) Validate() error {
8648	invalidParams := request.ErrInvalidParams{Context: "DeregisterEventTopicInput"}
8649	if s.DirectoryId == nil {
8650		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8651	}
8652	if s.TopicName == nil {
8653		invalidParams.Add(request.NewErrParamRequired("TopicName"))
8654	}
8655	if s.TopicName != nil && len(*s.TopicName) < 1 {
8656		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
8657	}
8658
8659	if invalidParams.Len() > 0 {
8660		return invalidParams
8661	}
8662	return nil
8663}
8664
8665// SetDirectoryId sets the DirectoryId field's value.
8666func (s *DeregisterEventTopicInput) SetDirectoryId(v string) *DeregisterEventTopicInput {
8667	s.DirectoryId = &v
8668	return s
8669}
8670
8671// SetTopicName sets the TopicName field's value.
8672func (s *DeregisterEventTopicInput) SetTopicName(v string) *DeregisterEventTopicInput {
8673	s.TopicName = &v
8674	return s
8675}
8676
8677// The result of a DeregisterEventTopic request.
8678type DeregisterEventTopicOutput struct {
8679	_ struct{} `type:"structure"`
8680}
8681
8682// String returns the string representation
8683func (s DeregisterEventTopicOutput) String() string {
8684	return awsutil.Prettify(s)
8685}
8686
8687// GoString returns the string representation
8688func (s DeregisterEventTopicOutput) GoString() string {
8689	return s.String()
8690}
8691
8692type DescribeCertificateInput struct {
8693	_ struct{} `type:"structure"`
8694
8695	// The identifier of the certificate.
8696	//
8697	// CertificateId is a required field
8698	CertificateId *string `type:"string" required:"true"`
8699
8700	// The identifier of the directory.
8701	//
8702	// DirectoryId is a required field
8703	DirectoryId *string `type:"string" required:"true"`
8704}
8705
8706// String returns the string representation
8707func (s DescribeCertificateInput) String() string {
8708	return awsutil.Prettify(s)
8709}
8710
8711// GoString returns the string representation
8712func (s DescribeCertificateInput) GoString() string {
8713	return s.String()
8714}
8715
8716// Validate inspects the fields of the type to determine if they are valid.
8717func (s *DescribeCertificateInput) Validate() error {
8718	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
8719	if s.CertificateId == nil {
8720		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
8721	}
8722	if s.DirectoryId == nil {
8723		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8724	}
8725
8726	if invalidParams.Len() > 0 {
8727		return invalidParams
8728	}
8729	return nil
8730}
8731
8732// SetCertificateId sets the CertificateId field's value.
8733func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
8734	s.CertificateId = &v
8735	return s
8736}
8737
8738// SetDirectoryId sets the DirectoryId field's value.
8739func (s *DescribeCertificateInput) SetDirectoryId(v string) *DescribeCertificateInput {
8740	s.DirectoryId = &v
8741	return s
8742}
8743
8744type DescribeCertificateOutput struct {
8745	_ struct{} `type:"structure"`
8746
8747	// Information about the certificate, including registered date time, certificate
8748	// state, the reason for the state, expiration date time, and certificate common
8749	// name.
8750	Certificate *Certificate `type:"structure"`
8751}
8752
8753// String returns the string representation
8754func (s DescribeCertificateOutput) String() string {
8755	return awsutil.Prettify(s)
8756}
8757
8758// GoString returns the string representation
8759func (s DescribeCertificateOutput) GoString() string {
8760	return s.String()
8761}
8762
8763// SetCertificate sets the Certificate field's value.
8764func (s *DescribeCertificateOutput) SetCertificate(v *Certificate) *DescribeCertificateOutput {
8765	s.Certificate = v
8766	return s
8767}
8768
8769// Describes a conditional forwarder.
8770type DescribeConditionalForwardersInput struct {
8771	_ struct{} `type:"structure"`
8772
8773	// The directory ID for which to get the list of associated conditional forwarders.
8774	//
8775	// DirectoryId is a required field
8776	DirectoryId *string `type:"string" required:"true"`
8777
8778	// The fully qualified domain names (FQDN) of the remote domains for which to
8779	// get the list of associated conditional forwarders. If this member is null,
8780	// all conditional forwarders are returned.
8781	RemoteDomainNames []*string `type:"list"`
8782}
8783
8784// String returns the string representation
8785func (s DescribeConditionalForwardersInput) String() string {
8786	return awsutil.Prettify(s)
8787}
8788
8789// GoString returns the string representation
8790func (s DescribeConditionalForwardersInput) GoString() string {
8791	return s.String()
8792}
8793
8794// Validate inspects the fields of the type to determine if they are valid.
8795func (s *DescribeConditionalForwardersInput) Validate() error {
8796	invalidParams := request.ErrInvalidParams{Context: "DescribeConditionalForwardersInput"}
8797	if s.DirectoryId == nil {
8798		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8799	}
8800
8801	if invalidParams.Len() > 0 {
8802		return invalidParams
8803	}
8804	return nil
8805}
8806
8807// SetDirectoryId sets the DirectoryId field's value.
8808func (s *DescribeConditionalForwardersInput) SetDirectoryId(v string) *DescribeConditionalForwardersInput {
8809	s.DirectoryId = &v
8810	return s
8811}
8812
8813// SetRemoteDomainNames sets the RemoteDomainNames field's value.
8814func (s *DescribeConditionalForwardersInput) SetRemoteDomainNames(v []*string) *DescribeConditionalForwardersInput {
8815	s.RemoteDomainNames = v
8816	return s
8817}
8818
8819// The result of a DescribeConditionalForwarder request.
8820type DescribeConditionalForwardersOutput struct {
8821	_ struct{} `type:"structure"`
8822
8823	// The list of conditional forwarders that have been created.
8824	ConditionalForwarders []*ConditionalForwarder `type:"list"`
8825}
8826
8827// String returns the string representation
8828func (s DescribeConditionalForwardersOutput) String() string {
8829	return awsutil.Prettify(s)
8830}
8831
8832// GoString returns the string representation
8833func (s DescribeConditionalForwardersOutput) GoString() string {
8834	return s.String()
8835}
8836
8837// SetConditionalForwarders sets the ConditionalForwarders field's value.
8838func (s *DescribeConditionalForwardersOutput) SetConditionalForwarders(v []*ConditionalForwarder) *DescribeConditionalForwardersOutput {
8839	s.ConditionalForwarders = v
8840	return s
8841}
8842
8843// Contains the inputs for the DescribeDirectories operation.
8844type DescribeDirectoriesInput struct {
8845	_ struct{} `type:"structure"`
8846
8847	// A list of identifiers of the directories for which to obtain the information.
8848	// If this member is null, all directories that belong to the current account
8849	// are returned.
8850	//
8851	// An empty list results in an InvalidParameterException being thrown.
8852	DirectoryIds []*string `type:"list"`
8853
8854	// The maximum number of items to return. If this value is zero, the maximum
8855	// number of items is specified by the limitations of the operation.
8856	Limit *int64 `type:"integer"`
8857
8858	// The DescribeDirectoriesResult.NextToken value from a previous call to DescribeDirectories.
8859	// Pass null if this is the first call.
8860	NextToken *string `type:"string"`
8861}
8862
8863// String returns the string representation
8864func (s DescribeDirectoriesInput) String() string {
8865	return awsutil.Prettify(s)
8866}
8867
8868// GoString returns the string representation
8869func (s DescribeDirectoriesInput) GoString() string {
8870	return s.String()
8871}
8872
8873// SetDirectoryIds sets the DirectoryIds field's value.
8874func (s *DescribeDirectoriesInput) SetDirectoryIds(v []*string) *DescribeDirectoriesInput {
8875	s.DirectoryIds = v
8876	return s
8877}
8878
8879// SetLimit sets the Limit field's value.
8880func (s *DescribeDirectoriesInput) SetLimit(v int64) *DescribeDirectoriesInput {
8881	s.Limit = &v
8882	return s
8883}
8884
8885// SetNextToken sets the NextToken field's value.
8886func (s *DescribeDirectoriesInput) SetNextToken(v string) *DescribeDirectoriesInput {
8887	s.NextToken = &v
8888	return s
8889}
8890
8891// Contains the results of the DescribeDirectories operation.
8892type DescribeDirectoriesOutput struct {
8893	_ struct{} `type:"structure"`
8894
8895	// The list of DirectoryDescription objects that were retrieved.
8896	//
8897	// It is possible that this list contains less than the number of items specified
8898	// in the Limit member of the request. This occurs if there are less than the
8899	// requested number of items left to retrieve, or if the limitations of the
8900	// operation have been exceeded.
8901	DirectoryDescriptions []*DirectoryDescription `type:"list"`
8902
8903	// If not null, more results are available. Pass this value for the NextToken
8904	// parameter in a subsequent call to DescribeDirectories to retrieve the next
8905	// set of items.
8906	NextToken *string `type:"string"`
8907}
8908
8909// String returns the string representation
8910func (s DescribeDirectoriesOutput) String() string {
8911	return awsutil.Prettify(s)
8912}
8913
8914// GoString returns the string representation
8915func (s DescribeDirectoriesOutput) GoString() string {
8916	return s.String()
8917}
8918
8919// SetDirectoryDescriptions sets the DirectoryDescriptions field's value.
8920func (s *DescribeDirectoriesOutput) SetDirectoryDescriptions(v []*DirectoryDescription) *DescribeDirectoriesOutput {
8921	s.DirectoryDescriptions = v
8922	return s
8923}
8924
8925// SetNextToken sets the NextToken field's value.
8926func (s *DescribeDirectoriesOutput) SetNextToken(v string) *DescribeDirectoriesOutput {
8927	s.NextToken = &v
8928	return s
8929}
8930
8931type DescribeDomainControllersInput struct {
8932	_ struct{} `type:"structure"`
8933
8934	// Identifier of the directory for which to retrieve the domain controller information.
8935	//
8936	// DirectoryId is a required field
8937	DirectoryId *string `type:"string" required:"true"`
8938
8939	// A list of identifiers for the domain controllers whose information will be
8940	// provided.
8941	DomainControllerIds []*string `type:"list"`
8942
8943	// The maximum number of items to return.
8944	Limit *int64 `type:"integer"`
8945
8946	// The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers.
8947	// Pass null if this is the first call.
8948	NextToken *string `type:"string"`
8949}
8950
8951// String returns the string representation
8952func (s DescribeDomainControllersInput) String() string {
8953	return awsutil.Prettify(s)
8954}
8955
8956// GoString returns the string representation
8957func (s DescribeDomainControllersInput) GoString() string {
8958	return s.String()
8959}
8960
8961// Validate inspects the fields of the type to determine if they are valid.
8962func (s *DescribeDomainControllersInput) Validate() error {
8963	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainControllersInput"}
8964	if s.DirectoryId == nil {
8965		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8966	}
8967
8968	if invalidParams.Len() > 0 {
8969		return invalidParams
8970	}
8971	return nil
8972}
8973
8974// SetDirectoryId sets the DirectoryId field's value.
8975func (s *DescribeDomainControllersInput) SetDirectoryId(v string) *DescribeDomainControllersInput {
8976	s.DirectoryId = &v
8977	return s
8978}
8979
8980// SetDomainControllerIds sets the DomainControllerIds field's value.
8981func (s *DescribeDomainControllersInput) SetDomainControllerIds(v []*string) *DescribeDomainControllersInput {
8982	s.DomainControllerIds = v
8983	return s
8984}
8985
8986// SetLimit sets the Limit field's value.
8987func (s *DescribeDomainControllersInput) SetLimit(v int64) *DescribeDomainControllersInput {
8988	s.Limit = &v
8989	return s
8990}
8991
8992// SetNextToken sets the NextToken field's value.
8993func (s *DescribeDomainControllersInput) SetNextToken(v string) *DescribeDomainControllersInput {
8994	s.NextToken = &v
8995	return s
8996}
8997
8998type DescribeDomainControllersOutput struct {
8999	_ struct{} `type:"structure"`
9000
9001	// List of the DomainController objects that were retrieved.
9002	DomainControllers []*DomainController `type:"list"`
9003
9004	// If not null, more results are available. Pass this value for the NextToken
9005	// parameter in a subsequent call to DescribeDomainControllers retrieve the
9006	// next set of items.
9007	NextToken *string `type:"string"`
9008}
9009
9010// String returns the string representation
9011func (s DescribeDomainControllersOutput) String() string {
9012	return awsutil.Prettify(s)
9013}
9014
9015// GoString returns the string representation
9016func (s DescribeDomainControllersOutput) GoString() string {
9017	return s.String()
9018}
9019
9020// SetDomainControllers sets the DomainControllers field's value.
9021func (s *DescribeDomainControllersOutput) SetDomainControllers(v []*DomainController) *DescribeDomainControllersOutput {
9022	s.DomainControllers = v
9023	return s
9024}
9025
9026// SetNextToken sets the NextToken field's value.
9027func (s *DescribeDomainControllersOutput) SetNextToken(v string) *DescribeDomainControllersOutput {
9028	s.NextToken = &v
9029	return s
9030}
9031
9032// Describes event topics.
9033type DescribeEventTopicsInput struct {
9034	_ struct{} `type:"structure"`
9035
9036	// The Directory ID for which to get the list of associated SNS topics. If this
9037	// member is null, associations for all Directory IDs are returned.
9038	DirectoryId *string `type:"string"`
9039
9040	// A list of SNS topic names for which to obtain the information. If this member
9041	// is null, all associations for the specified Directory ID are returned.
9042	//
9043	// An empty list results in an InvalidParameterException being thrown.
9044	TopicNames []*string `type:"list"`
9045}
9046
9047// String returns the string representation
9048func (s DescribeEventTopicsInput) String() string {
9049	return awsutil.Prettify(s)
9050}
9051
9052// GoString returns the string representation
9053func (s DescribeEventTopicsInput) GoString() string {
9054	return s.String()
9055}
9056
9057// SetDirectoryId sets the DirectoryId field's value.
9058func (s *DescribeEventTopicsInput) SetDirectoryId(v string) *DescribeEventTopicsInput {
9059	s.DirectoryId = &v
9060	return s
9061}
9062
9063// SetTopicNames sets the TopicNames field's value.
9064func (s *DescribeEventTopicsInput) SetTopicNames(v []*string) *DescribeEventTopicsInput {
9065	s.TopicNames = v
9066	return s
9067}
9068
9069// The result of a DescribeEventTopic request.
9070type DescribeEventTopicsOutput struct {
9071	_ struct{} `type:"structure"`
9072
9073	// A list of SNS topic names that receive status messages from the specified
9074	// Directory ID.
9075	EventTopics []*EventTopic `type:"list"`
9076}
9077
9078// String returns the string representation
9079func (s DescribeEventTopicsOutput) String() string {
9080	return awsutil.Prettify(s)
9081}
9082
9083// GoString returns the string representation
9084func (s DescribeEventTopicsOutput) GoString() string {
9085	return s.String()
9086}
9087
9088// SetEventTopics sets the EventTopics field's value.
9089func (s *DescribeEventTopicsOutput) SetEventTopics(v []*EventTopic) *DescribeEventTopicsOutput {
9090	s.EventTopics = v
9091	return s
9092}
9093
9094type DescribeLDAPSSettingsInput struct {
9095	_ struct{} `type:"structure"`
9096
9097	// The identifier of the directory.
9098	//
9099	// DirectoryId is a required field
9100	DirectoryId *string `type:"string" required:"true"`
9101
9102	// Specifies the number of items that should be displayed on one page.
9103	Limit *int64 `min:"1" type:"integer"`
9104
9105	// The type of next token used for pagination.
9106	NextToken *string `type:"string"`
9107
9108	// The type of LDAP security to enable. Currently only the value Client is supported.
9109	Type *string `type:"string" enum:"LDAPSType"`
9110}
9111
9112// String returns the string representation
9113func (s DescribeLDAPSSettingsInput) String() string {
9114	return awsutil.Prettify(s)
9115}
9116
9117// GoString returns the string representation
9118func (s DescribeLDAPSSettingsInput) GoString() string {
9119	return s.String()
9120}
9121
9122// Validate inspects the fields of the type to determine if they are valid.
9123func (s *DescribeLDAPSSettingsInput) Validate() error {
9124	invalidParams := request.ErrInvalidParams{Context: "DescribeLDAPSSettingsInput"}
9125	if s.DirectoryId == nil {
9126		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9127	}
9128	if s.Limit != nil && *s.Limit < 1 {
9129		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
9130	}
9131
9132	if invalidParams.Len() > 0 {
9133		return invalidParams
9134	}
9135	return nil
9136}
9137
9138// SetDirectoryId sets the DirectoryId field's value.
9139func (s *DescribeLDAPSSettingsInput) SetDirectoryId(v string) *DescribeLDAPSSettingsInput {
9140	s.DirectoryId = &v
9141	return s
9142}
9143
9144// SetLimit sets the Limit field's value.
9145func (s *DescribeLDAPSSettingsInput) SetLimit(v int64) *DescribeLDAPSSettingsInput {
9146	s.Limit = &v
9147	return s
9148}
9149
9150// SetNextToken sets the NextToken field's value.
9151func (s *DescribeLDAPSSettingsInput) SetNextToken(v string) *DescribeLDAPSSettingsInput {
9152	s.NextToken = &v
9153	return s
9154}
9155
9156// SetType sets the Type field's value.
9157func (s *DescribeLDAPSSettingsInput) SetType(v string) *DescribeLDAPSSettingsInput {
9158	s.Type = &v
9159	return s
9160}
9161
9162type DescribeLDAPSSettingsOutput struct {
9163	_ struct{} `type:"structure"`
9164
9165	// Information about LDAP security for the specified directory, including status
9166	// of enablement, state last updated date time, and the reason for the state.
9167	LDAPSSettingsInfo []*LDAPSSettingInfo `type:"list"`
9168
9169	// The next token used to retrieve the LDAPS settings if the number of setting
9170	// types exceeds page limit and there is another page.
9171	NextToken *string `type:"string"`
9172}
9173
9174// String returns the string representation
9175func (s DescribeLDAPSSettingsOutput) String() string {
9176	return awsutil.Prettify(s)
9177}
9178
9179// GoString returns the string representation
9180func (s DescribeLDAPSSettingsOutput) GoString() string {
9181	return s.String()
9182}
9183
9184// SetLDAPSSettingsInfo sets the LDAPSSettingsInfo field's value.
9185func (s *DescribeLDAPSSettingsOutput) SetLDAPSSettingsInfo(v []*LDAPSSettingInfo) *DescribeLDAPSSettingsOutput {
9186	s.LDAPSSettingsInfo = v
9187	return s
9188}
9189
9190// SetNextToken sets the NextToken field's value.
9191func (s *DescribeLDAPSSettingsOutput) SetNextToken(v string) *DescribeLDAPSSettingsOutput {
9192	s.NextToken = &v
9193	return s
9194}
9195
9196type DescribeRegionsInput struct {
9197	_ struct{} `type:"structure"`
9198
9199	// The identifier of the directory.
9200	//
9201	// DirectoryId is a required field
9202	DirectoryId *string `type:"string" required:"true"`
9203
9204	// The DescribeRegionsResult.NextToken value from a previous call to DescribeRegions.
9205	// Pass null if this is the first call.
9206	NextToken *string `type:"string"`
9207
9208	// The name of the Region. For example, us-east-1.
9209	RegionName *string `min:"8" type:"string"`
9210}
9211
9212// String returns the string representation
9213func (s DescribeRegionsInput) String() string {
9214	return awsutil.Prettify(s)
9215}
9216
9217// GoString returns the string representation
9218func (s DescribeRegionsInput) GoString() string {
9219	return s.String()
9220}
9221
9222// Validate inspects the fields of the type to determine if they are valid.
9223func (s *DescribeRegionsInput) Validate() error {
9224	invalidParams := request.ErrInvalidParams{Context: "DescribeRegionsInput"}
9225	if s.DirectoryId == nil {
9226		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9227	}
9228	if s.RegionName != nil && len(*s.RegionName) < 8 {
9229		invalidParams.Add(request.NewErrParamMinLen("RegionName", 8))
9230	}
9231
9232	if invalidParams.Len() > 0 {
9233		return invalidParams
9234	}
9235	return nil
9236}
9237
9238// SetDirectoryId sets the DirectoryId field's value.
9239func (s *DescribeRegionsInput) SetDirectoryId(v string) *DescribeRegionsInput {
9240	s.DirectoryId = &v
9241	return s
9242}
9243
9244// SetNextToken sets the NextToken field's value.
9245func (s *DescribeRegionsInput) SetNextToken(v string) *DescribeRegionsInput {
9246	s.NextToken = &v
9247	return s
9248}
9249
9250// SetRegionName sets the RegionName field's value.
9251func (s *DescribeRegionsInput) SetRegionName(v string) *DescribeRegionsInput {
9252	s.RegionName = &v
9253	return s
9254}
9255
9256type DescribeRegionsOutput struct {
9257	_ struct{} `type:"structure"`
9258
9259	// If not null, more results are available. Pass this value for the NextToken
9260	// parameter in a subsequent call to DescribeRegions to retrieve the next set
9261	// of items.
9262	NextToken *string `type:"string"`
9263
9264	// List of Region information related to the directory for each replicated Region.
9265	RegionsDescription []*RegionDescription `type:"list"`
9266}
9267
9268// String returns the string representation
9269func (s DescribeRegionsOutput) String() string {
9270	return awsutil.Prettify(s)
9271}
9272
9273// GoString returns the string representation
9274func (s DescribeRegionsOutput) GoString() string {
9275	return s.String()
9276}
9277
9278// SetNextToken sets the NextToken field's value.
9279func (s *DescribeRegionsOutput) SetNextToken(v string) *DescribeRegionsOutput {
9280	s.NextToken = &v
9281	return s
9282}
9283
9284// SetRegionsDescription sets the RegionsDescription field's value.
9285func (s *DescribeRegionsOutput) SetRegionsDescription(v []*RegionDescription) *DescribeRegionsOutput {
9286	s.RegionsDescription = v
9287	return s
9288}
9289
9290type DescribeSharedDirectoriesInput struct {
9291	_ struct{} `type:"structure"`
9292
9293	// The number of shared directories to return in the response object.
9294	Limit *int64 `type:"integer"`
9295
9296	// The DescribeSharedDirectoriesResult.NextToken value from a previous call
9297	// to DescribeSharedDirectories. Pass null if this is the first call.
9298	NextToken *string `type:"string"`
9299
9300	// Returns the identifier of the directory in the directory owner account.
9301	//
9302	// OwnerDirectoryId is a required field
9303	OwnerDirectoryId *string `type:"string" required:"true"`
9304
9305	// A list of identifiers of all shared directories in your account.
9306	SharedDirectoryIds []*string `type:"list"`
9307}
9308
9309// String returns the string representation
9310func (s DescribeSharedDirectoriesInput) String() string {
9311	return awsutil.Prettify(s)
9312}
9313
9314// GoString returns the string representation
9315func (s DescribeSharedDirectoriesInput) GoString() string {
9316	return s.String()
9317}
9318
9319// Validate inspects the fields of the type to determine if they are valid.
9320func (s *DescribeSharedDirectoriesInput) Validate() error {
9321	invalidParams := request.ErrInvalidParams{Context: "DescribeSharedDirectoriesInput"}
9322	if s.OwnerDirectoryId == nil {
9323		invalidParams.Add(request.NewErrParamRequired("OwnerDirectoryId"))
9324	}
9325
9326	if invalidParams.Len() > 0 {
9327		return invalidParams
9328	}
9329	return nil
9330}
9331
9332// SetLimit sets the Limit field's value.
9333func (s *DescribeSharedDirectoriesInput) SetLimit(v int64) *DescribeSharedDirectoriesInput {
9334	s.Limit = &v
9335	return s
9336}
9337
9338// SetNextToken sets the NextToken field's value.
9339func (s *DescribeSharedDirectoriesInput) SetNextToken(v string) *DescribeSharedDirectoriesInput {
9340	s.NextToken = &v
9341	return s
9342}
9343
9344// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
9345func (s *DescribeSharedDirectoriesInput) SetOwnerDirectoryId(v string) *DescribeSharedDirectoriesInput {
9346	s.OwnerDirectoryId = &v
9347	return s
9348}
9349
9350// SetSharedDirectoryIds sets the SharedDirectoryIds field's value.
9351func (s *DescribeSharedDirectoriesInput) SetSharedDirectoryIds(v []*string) *DescribeSharedDirectoriesInput {
9352	s.SharedDirectoryIds = v
9353	return s
9354}
9355
9356type DescribeSharedDirectoriesOutput struct {
9357	_ struct{} `type:"structure"`
9358
9359	// If not null, token that indicates that more results are available. Pass this
9360	// value for the NextToken parameter in a subsequent call to DescribeSharedDirectories
9361	// to retrieve the next set of items.
9362	NextToken *string `type:"string"`
9363
9364	// A list of all shared directories in your account.
9365	SharedDirectories []*SharedDirectory `type:"list"`
9366}
9367
9368// String returns the string representation
9369func (s DescribeSharedDirectoriesOutput) String() string {
9370	return awsutil.Prettify(s)
9371}
9372
9373// GoString returns the string representation
9374func (s DescribeSharedDirectoriesOutput) GoString() string {
9375	return s.String()
9376}
9377
9378// SetNextToken sets the NextToken field's value.
9379func (s *DescribeSharedDirectoriesOutput) SetNextToken(v string) *DescribeSharedDirectoriesOutput {
9380	s.NextToken = &v
9381	return s
9382}
9383
9384// SetSharedDirectories sets the SharedDirectories field's value.
9385func (s *DescribeSharedDirectoriesOutput) SetSharedDirectories(v []*SharedDirectory) *DescribeSharedDirectoriesOutput {
9386	s.SharedDirectories = v
9387	return s
9388}
9389
9390// Contains the inputs for the DescribeSnapshots operation.
9391type DescribeSnapshotsInput struct {
9392	_ struct{} `type:"structure"`
9393
9394	// The identifier of the directory for which to retrieve snapshot information.
9395	DirectoryId *string `type:"string"`
9396
9397	// The maximum number of objects to return.
9398	Limit *int64 `type:"integer"`
9399
9400	// The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots.
9401	// Pass null if this is the first call.
9402	NextToken *string `type:"string"`
9403
9404	// A list of identifiers of the snapshots to obtain the information for. If
9405	// this member is null or empty, all snapshots are returned using the Limit
9406	// and NextToken members.
9407	SnapshotIds []*string `type:"list"`
9408}
9409
9410// String returns the string representation
9411func (s DescribeSnapshotsInput) String() string {
9412	return awsutil.Prettify(s)
9413}
9414
9415// GoString returns the string representation
9416func (s DescribeSnapshotsInput) GoString() string {
9417	return s.String()
9418}
9419
9420// SetDirectoryId sets the DirectoryId field's value.
9421func (s *DescribeSnapshotsInput) SetDirectoryId(v string) *DescribeSnapshotsInput {
9422	s.DirectoryId = &v
9423	return s
9424}
9425
9426// SetLimit sets the Limit field's value.
9427func (s *DescribeSnapshotsInput) SetLimit(v int64) *DescribeSnapshotsInput {
9428	s.Limit = &v
9429	return s
9430}
9431
9432// SetNextToken sets the NextToken field's value.
9433func (s *DescribeSnapshotsInput) SetNextToken(v string) *DescribeSnapshotsInput {
9434	s.NextToken = &v
9435	return s
9436}
9437
9438// SetSnapshotIds sets the SnapshotIds field's value.
9439func (s *DescribeSnapshotsInput) SetSnapshotIds(v []*string) *DescribeSnapshotsInput {
9440	s.SnapshotIds = v
9441	return s
9442}
9443
9444// Contains the results of the DescribeSnapshots operation.
9445type DescribeSnapshotsOutput struct {
9446	_ struct{} `type:"structure"`
9447
9448	// If not null, more results are available. Pass this value in the NextToken
9449	// member of a subsequent call to DescribeSnapshots.
9450	NextToken *string `type:"string"`
9451
9452	// The list of Snapshot objects that were retrieved.
9453	//
9454	// It is possible that this list contains less than the number of items specified
9455	// in the Limit member of the request. This occurs if there are less than the
9456	// requested number of items left to retrieve, or if the limitations of the
9457	// operation have been exceeded.
9458	Snapshots []*Snapshot `type:"list"`
9459}
9460
9461// String returns the string representation
9462func (s DescribeSnapshotsOutput) String() string {
9463	return awsutil.Prettify(s)
9464}
9465
9466// GoString returns the string representation
9467func (s DescribeSnapshotsOutput) GoString() string {
9468	return s.String()
9469}
9470
9471// SetNextToken sets the NextToken field's value.
9472func (s *DescribeSnapshotsOutput) SetNextToken(v string) *DescribeSnapshotsOutput {
9473	s.NextToken = &v
9474	return s
9475}
9476
9477// SetSnapshots sets the Snapshots field's value.
9478func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshotsOutput {
9479	s.Snapshots = v
9480	return s
9481}
9482
9483// Describes the trust relationships for a particular AWS Managed Microsoft
9484// AD directory. If no input parameters are are provided, such as directory
9485// ID or trust ID, this request describes all the trust relationships.
9486type DescribeTrustsInput struct {
9487	_ struct{} `type:"structure"`
9488
9489	// The Directory ID of the AWS directory that is a part of the requested trust
9490	// relationship.
9491	DirectoryId *string `type:"string"`
9492
9493	// The maximum number of objects to return.
9494	Limit *int64 `type:"integer"`
9495
9496	// The DescribeTrustsResult.NextToken value from a previous call to DescribeTrusts.
9497	// Pass null if this is the first call.
9498	NextToken *string `type:"string"`
9499
9500	// A list of identifiers of the trust relationships for which to obtain the
9501	// information. If this member is null, all trust relationships that belong
9502	// to the current account are returned.
9503	//
9504	// An empty list results in an InvalidParameterException being thrown.
9505	TrustIds []*string `type:"list"`
9506}
9507
9508// String returns the string representation
9509func (s DescribeTrustsInput) String() string {
9510	return awsutil.Prettify(s)
9511}
9512
9513// GoString returns the string representation
9514func (s DescribeTrustsInput) GoString() string {
9515	return s.String()
9516}
9517
9518// SetDirectoryId sets the DirectoryId field's value.
9519func (s *DescribeTrustsInput) SetDirectoryId(v string) *DescribeTrustsInput {
9520	s.DirectoryId = &v
9521	return s
9522}
9523
9524// SetLimit sets the Limit field's value.
9525func (s *DescribeTrustsInput) SetLimit(v int64) *DescribeTrustsInput {
9526	s.Limit = &v
9527	return s
9528}
9529
9530// SetNextToken sets the NextToken field's value.
9531func (s *DescribeTrustsInput) SetNextToken(v string) *DescribeTrustsInput {
9532	s.NextToken = &v
9533	return s
9534}
9535
9536// SetTrustIds sets the TrustIds field's value.
9537func (s *DescribeTrustsInput) SetTrustIds(v []*string) *DescribeTrustsInput {
9538	s.TrustIds = v
9539	return s
9540}
9541
9542// The result of a DescribeTrust request.
9543type DescribeTrustsOutput struct {
9544	_ struct{} `type:"structure"`
9545
9546	// If not null, more results are available. Pass this value for the NextToken
9547	// parameter in a subsequent call to DescribeTrusts to retrieve the next set
9548	// of items.
9549	NextToken *string `type:"string"`
9550
9551	// The list of Trust objects that were retrieved.
9552	//
9553	// It is possible that this list contains less than the number of items specified
9554	// in the Limit member of the request. This occurs if there are less than the
9555	// requested number of items left to retrieve, or if the limitations of the
9556	// operation have been exceeded.
9557	Trusts []*Trust `type:"list"`
9558}
9559
9560// String returns the string representation
9561func (s DescribeTrustsOutput) String() string {
9562	return awsutil.Prettify(s)
9563}
9564
9565// GoString returns the string representation
9566func (s DescribeTrustsOutput) GoString() string {
9567	return s.String()
9568}
9569
9570// SetNextToken sets the NextToken field's value.
9571func (s *DescribeTrustsOutput) SetNextToken(v string) *DescribeTrustsOutput {
9572	s.NextToken = &v
9573	return s
9574}
9575
9576// SetTrusts sets the Trusts field's value.
9577func (s *DescribeTrustsOutput) SetTrusts(v []*Trust) *DescribeTrustsOutput {
9578	s.Trusts = v
9579	return s
9580}
9581
9582// The Region you specified is the same Region where the AWS Managed Microsoft
9583// AD directory was created. Specify a different Region and try again.
9584type DirectoryAlreadyInRegionException struct {
9585	_            struct{}                  `type:"structure"`
9586	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9587
9588	// The descriptive message for the exception.
9589	Message_ *string `locationName:"Message" type:"string"`
9590
9591	// The AWS request identifier.
9592	RequestId *string `type:"string"`
9593}
9594
9595// String returns the string representation
9596func (s DirectoryAlreadyInRegionException) String() string {
9597	return awsutil.Prettify(s)
9598}
9599
9600// GoString returns the string representation
9601func (s DirectoryAlreadyInRegionException) GoString() string {
9602	return s.String()
9603}
9604
9605func newErrorDirectoryAlreadyInRegionException(v protocol.ResponseMetadata) error {
9606	return &DirectoryAlreadyInRegionException{
9607		RespMetadata: v,
9608	}
9609}
9610
9611// Code returns the exception type name.
9612func (s *DirectoryAlreadyInRegionException) Code() string {
9613	return "DirectoryAlreadyInRegionException"
9614}
9615
9616// Message returns the exception's message.
9617func (s *DirectoryAlreadyInRegionException) Message() string {
9618	if s.Message_ != nil {
9619		return *s.Message_
9620	}
9621	return ""
9622}
9623
9624// OrigErr always returns nil, satisfies awserr.Error interface.
9625func (s *DirectoryAlreadyInRegionException) OrigErr() error {
9626	return nil
9627}
9628
9629func (s *DirectoryAlreadyInRegionException) Error() string {
9630	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9631}
9632
9633// Status code returns the HTTP status code for the request's response error.
9634func (s *DirectoryAlreadyInRegionException) StatusCode() int {
9635	return s.RespMetadata.StatusCode
9636}
9637
9638// RequestID returns the service's response RequestID for request.
9639func (s *DirectoryAlreadyInRegionException) RequestID() string {
9640	return s.RespMetadata.RequestID
9641}
9642
9643// The specified directory has already been shared with this AWS account.
9644type DirectoryAlreadySharedException struct {
9645	_            struct{}                  `type:"structure"`
9646	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9647
9648	// The descriptive message for the exception.
9649	Message_ *string `locationName:"Message" type:"string"`
9650
9651	// The AWS request identifier.
9652	RequestId *string `type:"string"`
9653}
9654
9655// String returns the string representation
9656func (s DirectoryAlreadySharedException) String() string {
9657	return awsutil.Prettify(s)
9658}
9659
9660// GoString returns the string representation
9661func (s DirectoryAlreadySharedException) GoString() string {
9662	return s.String()
9663}
9664
9665func newErrorDirectoryAlreadySharedException(v protocol.ResponseMetadata) error {
9666	return &DirectoryAlreadySharedException{
9667		RespMetadata: v,
9668	}
9669}
9670
9671// Code returns the exception type name.
9672func (s *DirectoryAlreadySharedException) Code() string {
9673	return "DirectoryAlreadySharedException"
9674}
9675
9676// Message returns the exception's message.
9677func (s *DirectoryAlreadySharedException) Message() string {
9678	if s.Message_ != nil {
9679		return *s.Message_
9680	}
9681	return ""
9682}
9683
9684// OrigErr always returns nil, satisfies awserr.Error interface.
9685func (s *DirectoryAlreadySharedException) OrigErr() error {
9686	return nil
9687}
9688
9689func (s *DirectoryAlreadySharedException) Error() string {
9690	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9691}
9692
9693// Status code returns the HTTP status code for the request's response error.
9694func (s *DirectoryAlreadySharedException) StatusCode() int {
9695	return s.RespMetadata.StatusCode
9696}
9697
9698// RequestID returns the service's response RequestID for request.
9699func (s *DirectoryAlreadySharedException) RequestID() string {
9700	return s.RespMetadata.RequestID
9701}
9702
9703// Contains information for the ConnectDirectory operation when an AD Connector
9704// directory is being created.
9705type DirectoryConnectSettings struct {
9706	_ struct{} `type:"structure"`
9707
9708	// A list of one or more IP addresses of DNS servers or domain controllers in
9709	// the on-premises directory.
9710	//
9711	// CustomerDnsIps is a required field
9712	CustomerDnsIps []*string `type:"list" required:"true"`
9713
9714	// The user name of an account in the on-premises directory that is used to
9715	// connect to the directory. This account must have the following permissions:
9716	//
9717	//    * Read users and groups
9718	//
9719	//    * Create computer objects
9720	//
9721	//    * Join computers to the domain
9722	//
9723	// CustomerUserName is a required field
9724	CustomerUserName *string `min:"1" type:"string" required:"true"`
9725
9726	// A list of subnet identifiers in the VPC in which the AD Connector is created.
9727	//
9728	// SubnetIds is a required field
9729	SubnetIds []*string `type:"list" required:"true"`
9730
9731	// The identifier of the VPC in which the AD Connector is created.
9732	//
9733	// VpcId is a required field
9734	VpcId *string `type:"string" required:"true"`
9735}
9736
9737// String returns the string representation
9738func (s DirectoryConnectSettings) String() string {
9739	return awsutil.Prettify(s)
9740}
9741
9742// GoString returns the string representation
9743func (s DirectoryConnectSettings) GoString() string {
9744	return s.String()
9745}
9746
9747// Validate inspects the fields of the type to determine if they are valid.
9748func (s *DirectoryConnectSettings) Validate() error {
9749	invalidParams := request.ErrInvalidParams{Context: "DirectoryConnectSettings"}
9750	if s.CustomerDnsIps == nil {
9751		invalidParams.Add(request.NewErrParamRequired("CustomerDnsIps"))
9752	}
9753	if s.CustomerUserName == nil {
9754		invalidParams.Add(request.NewErrParamRequired("CustomerUserName"))
9755	}
9756	if s.CustomerUserName != nil && len(*s.CustomerUserName) < 1 {
9757		invalidParams.Add(request.NewErrParamMinLen("CustomerUserName", 1))
9758	}
9759	if s.SubnetIds == nil {
9760		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
9761	}
9762	if s.VpcId == nil {
9763		invalidParams.Add(request.NewErrParamRequired("VpcId"))
9764	}
9765
9766	if invalidParams.Len() > 0 {
9767		return invalidParams
9768	}
9769	return nil
9770}
9771
9772// SetCustomerDnsIps sets the CustomerDnsIps field's value.
9773func (s *DirectoryConnectSettings) SetCustomerDnsIps(v []*string) *DirectoryConnectSettings {
9774	s.CustomerDnsIps = v
9775	return s
9776}
9777
9778// SetCustomerUserName sets the CustomerUserName field's value.
9779func (s *DirectoryConnectSettings) SetCustomerUserName(v string) *DirectoryConnectSettings {
9780	s.CustomerUserName = &v
9781	return s
9782}
9783
9784// SetSubnetIds sets the SubnetIds field's value.
9785func (s *DirectoryConnectSettings) SetSubnetIds(v []*string) *DirectoryConnectSettings {
9786	s.SubnetIds = v
9787	return s
9788}
9789
9790// SetVpcId sets the VpcId field's value.
9791func (s *DirectoryConnectSettings) SetVpcId(v string) *DirectoryConnectSettings {
9792	s.VpcId = &v
9793	return s
9794}
9795
9796// Contains information about an AD Connector directory.
9797type DirectoryConnectSettingsDescription struct {
9798	_ struct{} `type:"structure"`
9799
9800	// A list of the Availability Zones that the directory is in.
9801	AvailabilityZones []*string `type:"list"`
9802
9803	// The IP addresses of the AD Connector servers.
9804	ConnectIps []*string `type:"list"`
9805
9806	// The user name of the service account in the on-premises directory.
9807	CustomerUserName *string `min:"1" type:"string"`
9808
9809	// The security group identifier for the AD Connector directory.
9810	SecurityGroupId *string `type:"string"`
9811
9812	// A list of subnet identifiers in the VPC that the AD Connector is in.
9813	SubnetIds []*string `type:"list"`
9814
9815	// The identifier of the VPC that the AD Connector is in.
9816	VpcId *string `type:"string"`
9817}
9818
9819// String returns the string representation
9820func (s DirectoryConnectSettingsDescription) String() string {
9821	return awsutil.Prettify(s)
9822}
9823
9824// GoString returns the string representation
9825func (s DirectoryConnectSettingsDescription) GoString() string {
9826	return s.String()
9827}
9828
9829// SetAvailabilityZones sets the AvailabilityZones field's value.
9830func (s *DirectoryConnectSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryConnectSettingsDescription {
9831	s.AvailabilityZones = v
9832	return s
9833}
9834
9835// SetConnectIps sets the ConnectIps field's value.
9836func (s *DirectoryConnectSettingsDescription) SetConnectIps(v []*string) *DirectoryConnectSettingsDescription {
9837	s.ConnectIps = v
9838	return s
9839}
9840
9841// SetCustomerUserName sets the CustomerUserName field's value.
9842func (s *DirectoryConnectSettingsDescription) SetCustomerUserName(v string) *DirectoryConnectSettingsDescription {
9843	s.CustomerUserName = &v
9844	return s
9845}
9846
9847// SetSecurityGroupId sets the SecurityGroupId field's value.
9848func (s *DirectoryConnectSettingsDescription) SetSecurityGroupId(v string) *DirectoryConnectSettingsDescription {
9849	s.SecurityGroupId = &v
9850	return s
9851}
9852
9853// SetSubnetIds sets the SubnetIds field's value.
9854func (s *DirectoryConnectSettingsDescription) SetSubnetIds(v []*string) *DirectoryConnectSettingsDescription {
9855	s.SubnetIds = v
9856	return s
9857}
9858
9859// SetVpcId sets the VpcId field's value.
9860func (s *DirectoryConnectSettingsDescription) SetVpcId(v string) *DirectoryConnectSettingsDescription {
9861	s.VpcId = &v
9862	return s
9863}
9864
9865// Contains information about an AWS Directory Service directory.
9866type DirectoryDescription struct {
9867	_ struct{} `type:"structure"`
9868
9869	// The access URL for the directory, such as http://<alias>.awsapps.com. If
9870	// no alias has been created for the directory, <alias> is the directory identifier,
9871	// such as d-XXXXXXXXXX.
9872	AccessUrl *string `min:"1" type:"string"`
9873
9874	// The alias for the directory. If no alias has been created for the directory,
9875	// the alias is the directory identifier, such as d-XXXXXXXXXX.
9876	Alias *string `min:"1" type:"string"`
9877
9878	// A DirectoryConnectSettingsDescription object that contains additional information
9879	// about an AD Connector directory. This member is only present if the directory
9880	// is an AD Connector directory.
9881	ConnectSettings *DirectoryConnectSettingsDescription `type:"structure"`
9882
9883	// The description for the directory.
9884	Description *string `type:"string"`
9885
9886	// The desired number of domain controllers in the directory if the directory
9887	// is Microsoft AD.
9888	DesiredNumberOfDomainControllers *int64 `min:"2" type:"integer"`
9889
9890	// The directory identifier.
9891	DirectoryId *string `type:"string"`
9892
9893	// The IP addresses of the DNS servers for the directory. For a Simple AD or
9894	// Microsoft AD directory, these are the IP addresses of the Simple AD or Microsoft
9895	// AD directory servers. For an AD Connector directory, these are the IP addresses
9896	// of the DNS servers or domain controllers in the on-premises directory to
9897	// which the AD Connector is connected.
9898	DnsIpAddrs []*string `type:"list"`
9899
9900	// The edition associated with this directory.
9901	Edition *string `type:"string" enum:"DirectoryEdition"`
9902
9903	// Specifies when the directory was created.
9904	LaunchTime *time.Time `type:"timestamp"`
9905
9906	// The fully qualified name of the directory.
9907	Name *string `type:"string"`
9908
9909	// Describes the AWS Managed Microsoft AD directory in the directory owner account.
9910	OwnerDirectoryDescription *OwnerDirectoryDescription `type:"structure"`
9911
9912	// A RadiusSettings object that contains information about the RADIUS server
9913	// configured for this directory.
9914	RadiusSettings *RadiusSettings `type:"structure"`
9915
9916	// The status of the RADIUS MFA server connection.
9917	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
9918
9919	// Lists the Regions where the directory has replicated.
9920	RegionsInfo *RegionsInfo `type:"structure"`
9921
9922	// The method used when sharing a directory to determine whether the directory
9923	// should be shared within your AWS organization (ORGANIZATIONS) or with any
9924	// AWS account by sending a shared directory request (HANDSHAKE).
9925	ShareMethod *string `type:"string" enum:"ShareMethod"`
9926
9927	// A directory share request that is sent by the directory owner to the directory
9928	// consumer. The request includes a typed message to help the directory consumer
9929	// administrator determine whether to approve or reject the share invitation.
9930	ShareNotes *string `type:"string" sensitive:"true"`
9931
9932	// Current directory status of the shared AWS Managed Microsoft AD directory.
9933	ShareStatus *string `type:"string" enum:"ShareStatus"`
9934
9935	// The short name of the directory.
9936	ShortName *string `type:"string"`
9937
9938	// The directory size.
9939	Size *string `type:"string" enum:"DirectorySize"`
9940
9941	// Indicates if single sign-on is enabled for the directory. For more information,
9942	// see EnableSso and DisableSso.
9943	SsoEnabled *bool `type:"boolean"`
9944
9945	// The current stage of the directory.
9946	Stage *string `type:"string" enum:"DirectoryStage"`
9947
9948	// The date and time that the stage was last updated.
9949	StageLastUpdatedDateTime *time.Time `type:"timestamp"`
9950
9951	// Additional information about the directory stage.
9952	StageReason *string `type:"string"`
9953
9954	// The directory size.
9955	Type *string `type:"string" enum:"DirectoryType"`
9956
9957	// A DirectoryVpcSettingsDescription object that contains additional information
9958	// about a directory. This member is only present if the directory is a Simple
9959	// AD or Managed AD directory.
9960	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
9961}
9962
9963// String returns the string representation
9964func (s DirectoryDescription) String() string {
9965	return awsutil.Prettify(s)
9966}
9967
9968// GoString returns the string representation
9969func (s DirectoryDescription) GoString() string {
9970	return s.String()
9971}
9972
9973// SetAccessUrl sets the AccessUrl field's value.
9974func (s *DirectoryDescription) SetAccessUrl(v string) *DirectoryDescription {
9975	s.AccessUrl = &v
9976	return s
9977}
9978
9979// SetAlias sets the Alias field's value.
9980func (s *DirectoryDescription) SetAlias(v string) *DirectoryDescription {
9981	s.Alias = &v
9982	return s
9983}
9984
9985// SetConnectSettings sets the ConnectSettings field's value.
9986func (s *DirectoryDescription) SetConnectSettings(v *DirectoryConnectSettingsDescription) *DirectoryDescription {
9987	s.ConnectSettings = v
9988	return s
9989}
9990
9991// SetDescription sets the Description field's value.
9992func (s *DirectoryDescription) SetDescription(v string) *DirectoryDescription {
9993	s.Description = &v
9994	return s
9995}
9996
9997// SetDesiredNumberOfDomainControllers sets the DesiredNumberOfDomainControllers field's value.
9998func (s *DirectoryDescription) SetDesiredNumberOfDomainControllers(v int64) *DirectoryDescription {
9999	s.DesiredNumberOfDomainControllers = &v
10000	return s
10001}
10002
10003// SetDirectoryId sets the DirectoryId field's value.
10004func (s *DirectoryDescription) SetDirectoryId(v string) *DirectoryDescription {
10005	s.DirectoryId = &v
10006	return s
10007}
10008
10009// SetDnsIpAddrs sets the DnsIpAddrs field's value.
10010func (s *DirectoryDescription) SetDnsIpAddrs(v []*string) *DirectoryDescription {
10011	s.DnsIpAddrs = v
10012	return s
10013}
10014
10015// SetEdition sets the Edition field's value.
10016func (s *DirectoryDescription) SetEdition(v string) *DirectoryDescription {
10017	s.Edition = &v
10018	return s
10019}
10020
10021// SetLaunchTime sets the LaunchTime field's value.
10022func (s *DirectoryDescription) SetLaunchTime(v time.Time) *DirectoryDescription {
10023	s.LaunchTime = &v
10024	return s
10025}
10026
10027// SetName sets the Name field's value.
10028func (s *DirectoryDescription) SetName(v string) *DirectoryDescription {
10029	s.Name = &v
10030	return s
10031}
10032
10033// SetOwnerDirectoryDescription sets the OwnerDirectoryDescription field's value.
10034func (s *DirectoryDescription) SetOwnerDirectoryDescription(v *OwnerDirectoryDescription) *DirectoryDescription {
10035	s.OwnerDirectoryDescription = v
10036	return s
10037}
10038
10039// SetRadiusSettings sets the RadiusSettings field's value.
10040func (s *DirectoryDescription) SetRadiusSettings(v *RadiusSettings) *DirectoryDescription {
10041	s.RadiusSettings = v
10042	return s
10043}
10044
10045// SetRadiusStatus sets the RadiusStatus field's value.
10046func (s *DirectoryDescription) SetRadiusStatus(v string) *DirectoryDescription {
10047	s.RadiusStatus = &v
10048	return s
10049}
10050
10051// SetRegionsInfo sets the RegionsInfo field's value.
10052func (s *DirectoryDescription) SetRegionsInfo(v *RegionsInfo) *DirectoryDescription {
10053	s.RegionsInfo = v
10054	return s
10055}
10056
10057// SetShareMethod sets the ShareMethod field's value.
10058func (s *DirectoryDescription) SetShareMethod(v string) *DirectoryDescription {
10059	s.ShareMethod = &v
10060	return s
10061}
10062
10063// SetShareNotes sets the ShareNotes field's value.
10064func (s *DirectoryDescription) SetShareNotes(v string) *DirectoryDescription {
10065	s.ShareNotes = &v
10066	return s
10067}
10068
10069// SetShareStatus sets the ShareStatus field's value.
10070func (s *DirectoryDescription) SetShareStatus(v string) *DirectoryDescription {
10071	s.ShareStatus = &v
10072	return s
10073}
10074
10075// SetShortName sets the ShortName field's value.
10076func (s *DirectoryDescription) SetShortName(v string) *DirectoryDescription {
10077	s.ShortName = &v
10078	return s
10079}
10080
10081// SetSize sets the Size field's value.
10082func (s *DirectoryDescription) SetSize(v string) *DirectoryDescription {
10083	s.Size = &v
10084	return s
10085}
10086
10087// SetSsoEnabled sets the SsoEnabled field's value.
10088func (s *DirectoryDescription) SetSsoEnabled(v bool) *DirectoryDescription {
10089	s.SsoEnabled = &v
10090	return s
10091}
10092
10093// SetStage sets the Stage field's value.
10094func (s *DirectoryDescription) SetStage(v string) *DirectoryDescription {
10095	s.Stage = &v
10096	return s
10097}
10098
10099// SetStageLastUpdatedDateTime sets the StageLastUpdatedDateTime field's value.
10100func (s *DirectoryDescription) SetStageLastUpdatedDateTime(v time.Time) *DirectoryDescription {
10101	s.StageLastUpdatedDateTime = &v
10102	return s
10103}
10104
10105// SetStageReason sets the StageReason field's value.
10106func (s *DirectoryDescription) SetStageReason(v string) *DirectoryDescription {
10107	s.StageReason = &v
10108	return s
10109}
10110
10111// SetType sets the Type field's value.
10112func (s *DirectoryDescription) SetType(v string) *DirectoryDescription {
10113	s.Type = &v
10114	return s
10115}
10116
10117// SetVpcSettings sets the VpcSettings field's value.
10118func (s *DirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *DirectoryDescription {
10119	s.VpcSettings = v
10120	return s
10121}
10122
10123// The specified directory does not exist in the system.
10124type DirectoryDoesNotExistException struct {
10125	_            struct{}                  `type:"structure"`
10126	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10127
10128	// The descriptive message for the exception.
10129	Message_ *string `locationName:"Message" type:"string"`
10130
10131	// The AWS request identifier.
10132	RequestId *string `type:"string"`
10133}
10134
10135// String returns the string representation
10136func (s DirectoryDoesNotExistException) String() string {
10137	return awsutil.Prettify(s)
10138}
10139
10140// GoString returns the string representation
10141func (s DirectoryDoesNotExistException) GoString() string {
10142	return s.String()
10143}
10144
10145func newErrorDirectoryDoesNotExistException(v protocol.ResponseMetadata) error {
10146	return &DirectoryDoesNotExistException{
10147		RespMetadata: v,
10148	}
10149}
10150
10151// Code returns the exception type name.
10152func (s *DirectoryDoesNotExistException) Code() string {
10153	return "DirectoryDoesNotExistException"
10154}
10155
10156// Message returns the exception's message.
10157func (s *DirectoryDoesNotExistException) Message() string {
10158	if s.Message_ != nil {
10159		return *s.Message_
10160	}
10161	return ""
10162}
10163
10164// OrigErr always returns nil, satisfies awserr.Error interface.
10165func (s *DirectoryDoesNotExistException) OrigErr() error {
10166	return nil
10167}
10168
10169func (s *DirectoryDoesNotExistException) Error() string {
10170	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10171}
10172
10173// Status code returns the HTTP status code for the request's response error.
10174func (s *DirectoryDoesNotExistException) StatusCode() int {
10175	return s.RespMetadata.StatusCode
10176}
10177
10178// RequestID returns the service's response RequestID for request.
10179func (s *DirectoryDoesNotExistException) RequestID() string {
10180	return s.RespMetadata.RequestID
10181}
10182
10183// The maximum number of directories in the region has been reached. You can
10184// use the GetDirectoryLimits operation to determine your directory limits in
10185// the region.
10186type DirectoryLimitExceededException struct {
10187	_            struct{}                  `type:"structure"`
10188	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10189
10190	// The descriptive message for the exception.
10191	Message_ *string `locationName:"Message" type:"string"`
10192
10193	// The AWS request identifier.
10194	RequestId *string `type:"string"`
10195}
10196
10197// String returns the string representation
10198func (s DirectoryLimitExceededException) String() string {
10199	return awsutil.Prettify(s)
10200}
10201
10202// GoString returns the string representation
10203func (s DirectoryLimitExceededException) GoString() string {
10204	return s.String()
10205}
10206
10207func newErrorDirectoryLimitExceededException(v protocol.ResponseMetadata) error {
10208	return &DirectoryLimitExceededException{
10209		RespMetadata: v,
10210	}
10211}
10212
10213// Code returns the exception type name.
10214func (s *DirectoryLimitExceededException) Code() string {
10215	return "DirectoryLimitExceededException"
10216}
10217
10218// Message returns the exception's message.
10219func (s *DirectoryLimitExceededException) Message() string {
10220	if s.Message_ != nil {
10221		return *s.Message_
10222	}
10223	return ""
10224}
10225
10226// OrigErr always returns nil, satisfies awserr.Error interface.
10227func (s *DirectoryLimitExceededException) OrigErr() error {
10228	return nil
10229}
10230
10231func (s *DirectoryLimitExceededException) Error() string {
10232	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10233}
10234
10235// Status code returns the HTTP status code for the request's response error.
10236func (s *DirectoryLimitExceededException) StatusCode() int {
10237	return s.RespMetadata.StatusCode
10238}
10239
10240// RequestID returns the service's response RequestID for request.
10241func (s *DirectoryLimitExceededException) RequestID() string {
10242	return s.RespMetadata.RequestID
10243}
10244
10245// Contains directory limit information for a Region.
10246type DirectoryLimits struct {
10247	_ struct{} `type:"structure"`
10248
10249	// The current number of cloud directories in the Region.
10250	CloudOnlyDirectoriesCurrentCount *int64 `type:"integer"`
10251
10252	// The maximum number of cloud directories allowed in the Region.
10253	CloudOnlyDirectoriesLimit *int64 `type:"integer"`
10254
10255	// Indicates if the cloud directory limit has been reached.
10256	CloudOnlyDirectoriesLimitReached *bool `type:"boolean"`
10257
10258	// The current number of AWS Managed Microsoft AD directories in the region.
10259	CloudOnlyMicrosoftADCurrentCount *int64 `type:"integer"`
10260
10261	// The maximum number of AWS Managed Microsoft AD directories allowed in the
10262	// region.
10263	CloudOnlyMicrosoftADLimit *int64 `type:"integer"`
10264
10265	// Indicates if the AWS Managed Microsoft AD directory limit has been reached.
10266	CloudOnlyMicrosoftADLimitReached *bool `type:"boolean"`
10267
10268	// The current number of connected directories in the Region.
10269	ConnectedDirectoriesCurrentCount *int64 `type:"integer"`
10270
10271	// The maximum number of connected directories allowed in the Region.
10272	ConnectedDirectoriesLimit *int64 `type:"integer"`
10273
10274	// Indicates if the connected directory limit has been reached.
10275	ConnectedDirectoriesLimitReached *bool `type:"boolean"`
10276}
10277
10278// String returns the string representation
10279func (s DirectoryLimits) String() string {
10280	return awsutil.Prettify(s)
10281}
10282
10283// GoString returns the string representation
10284func (s DirectoryLimits) GoString() string {
10285	return s.String()
10286}
10287
10288// SetCloudOnlyDirectoriesCurrentCount sets the CloudOnlyDirectoriesCurrentCount field's value.
10289func (s *DirectoryLimits) SetCloudOnlyDirectoriesCurrentCount(v int64) *DirectoryLimits {
10290	s.CloudOnlyDirectoriesCurrentCount = &v
10291	return s
10292}
10293
10294// SetCloudOnlyDirectoriesLimit sets the CloudOnlyDirectoriesLimit field's value.
10295func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimit(v int64) *DirectoryLimits {
10296	s.CloudOnlyDirectoriesLimit = &v
10297	return s
10298}
10299
10300// SetCloudOnlyDirectoriesLimitReached sets the CloudOnlyDirectoriesLimitReached field's value.
10301func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimitReached(v bool) *DirectoryLimits {
10302	s.CloudOnlyDirectoriesLimitReached = &v
10303	return s
10304}
10305
10306// SetCloudOnlyMicrosoftADCurrentCount sets the CloudOnlyMicrosoftADCurrentCount field's value.
10307func (s *DirectoryLimits) SetCloudOnlyMicrosoftADCurrentCount(v int64) *DirectoryLimits {
10308	s.CloudOnlyMicrosoftADCurrentCount = &v
10309	return s
10310}
10311
10312// SetCloudOnlyMicrosoftADLimit sets the CloudOnlyMicrosoftADLimit field's value.
10313func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimit(v int64) *DirectoryLimits {
10314	s.CloudOnlyMicrosoftADLimit = &v
10315	return s
10316}
10317
10318// SetCloudOnlyMicrosoftADLimitReached sets the CloudOnlyMicrosoftADLimitReached field's value.
10319func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimitReached(v bool) *DirectoryLimits {
10320	s.CloudOnlyMicrosoftADLimitReached = &v
10321	return s
10322}
10323
10324// SetConnectedDirectoriesCurrentCount sets the ConnectedDirectoriesCurrentCount field's value.
10325func (s *DirectoryLimits) SetConnectedDirectoriesCurrentCount(v int64) *DirectoryLimits {
10326	s.ConnectedDirectoriesCurrentCount = &v
10327	return s
10328}
10329
10330// SetConnectedDirectoriesLimit sets the ConnectedDirectoriesLimit field's value.
10331func (s *DirectoryLimits) SetConnectedDirectoriesLimit(v int64) *DirectoryLimits {
10332	s.ConnectedDirectoriesLimit = &v
10333	return s
10334}
10335
10336// SetConnectedDirectoriesLimitReached sets the ConnectedDirectoriesLimitReached field's value.
10337func (s *DirectoryLimits) SetConnectedDirectoriesLimitReached(v bool) *DirectoryLimits {
10338	s.ConnectedDirectoriesLimitReached = &v
10339	return s
10340}
10341
10342// The specified directory has not been shared with this AWS account.
10343type DirectoryNotSharedException struct {
10344	_            struct{}                  `type:"structure"`
10345	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10346
10347	// The descriptive message for the exception.
10348	Message_ *string `locationName:"Message" type:"string"`
10349
10350	// The AWS request identifier.
10351	RequestId *string `type:"string"`
10352}
10353
10354// String returns the string representation
10355func (s DirectoryNotSharedException) String() string {
10356	return awsutil.Prettify(s)
10357}
10358
10359// GoString returns the string representation
10360func (s DirectoryNotSharedException) GoString() string {
10361	return s.String()
10362}
10363
10364func newErrorDirectoryNotSharedException(v protocol.ResponseMetadata) error {
10365	return &DirectoryNotSharedException{
10366		RespMetadata: v,
10367	}
10368}
10369
10370// Code returns the exception type name.
10371func (s *DirectoryNotSharedException) Code() string {
10372	return "DirectoryNotSharedException"
10373}
10374
10375// Message returns the exception's message.
10376func (s *DirectoryNotSharedException) Message() string {
10377	if s.Message_ != nil {
10378		return *s.Message_
10379	}
10380	return ""
10381}
10382
10383// OrigErr always returns nil, satisfies awserr.Error interface.
10384func (s *DirectoryNotSharedException) OrigErr() error {
10385	return nil
10386}
10387
10388func (s *DirectoryNotSharedException) Error() string {
10389	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10390}
10391
10392// Status code returns the HTTP status code for the request's response error.
10393func (s *DirectoryNotSharedException) StatusCode() int {
10394	return s.RespMetadata.StatusCode
10395}
10396
10397// RequestID returns the service's response RequestID for request.
10398func (s *DirectoryNotSharedException) RequestID() string {
10399	return s.RespMetadata.RequestID
10400}
10401
10402// The specified directory is unavailable or could not be found.
10403type DirectoryUnavailableException struct {
10404	_            struct{}                  `type:"structure"`
10405	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10406
10407	// The descriptive message for the exception.
10408	Message_ *string `locationName:"Message" type:"string"`
10409
10410	// The AWS request identifier.
10411	RequestId *string `type:"string"`
10412}
10413
10414// String returns the string representation
10415func (s DirectoryUnavailableException) String() string {
10416	return awsutil.Prettify(s)
10417}
10418
10419// GoString returns the string representation
10420func (s DirectoryUnavailableException) GoString() string {
10421	return s.String()
10422}
10423
10424func newErrorDirectoryUnavailableException(v protocol.ResponseMetadata) error {
10425	return &DirectoryUnavailableException{
10426		RespMetadata: v,
10427	}
10428}
10429
10430// Code returns the exception type name.
10431func (s *DirectoryUnavailableException) Code() string {
10432	return "DirectoryUnavailableException"
10433}
10434
10435// Message returns the exception's message.
10436func (s *DirectoryUnavailableException) Message() string {
10437	if s.Message_ != nil {
10438		return *s.Message_
10439	}
10440	return ""
10441}
10442
10443// OrigErr always returns nil, satisfies awserr.Error interface.
10444func (s *DirectoryUnavailableException) OrigErr() error {
10445	return nil
10446}
10447
10448func (s *DirectoryUnavailableException) Error() string {
10449	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10450}
10451
10452// Status code returns the HTTP status code for the request's response error.
10453func (s *DirectoryUnavailableException) StatusCode() int {
10454	return s.RespMetadata.StatusCode
10455}
10456
10457// RequestID returns the service's response RequestID for request.
10458func (s *DirectoryUnavailableException) RequestID() string {
10459	return s.RespMetadata.RequestID
10460}
10461
10462// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
10463type DirectoryVpcSettings struct {
10464	_ struct{} `type:"structure"`
10465
10466	// The identifiers of the subnets for the directory servers. The two subnets
10467	// must be in different Availability Zones. AWS Directory Service creates a
10468	// directory server and a DNS server in each of these subnets.
10469	//
10470	// SubnetIds is a required field
10471	SubnetIds []*string `type:"list" required:"true"`
10472
10473	// The identifier of the VPC in which to create the directory.
10474	//
10475	// VpcId is a required field
10476	VpcId *string `type:"string" required:"true"`
10477}
10478
10479// String returns the string representation
10480func (s DirectoryVpcSettings) String() string {
10481	return awsutil.Prettify(s)
10482}
10483
10484// GoString returns the string representation
10485func (s DirectoryVpcSettings) GoString() string {
10486	return s.String()
10487}
10488
10489// Validate inspects the fields of the type to determine if they are valid.
10490func (s *DirectoryVpcSettings) Validate() error {
10491	invalidParams := request.ErrInvalidParams{Context: "DirectoryVpcSettings"}
10492	if s.SubnetIds == nil {
10493		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
10494	}
10495	if s.VpcId == nil {
10496		invalidParams.Add(request.NewErrParamRequired("VpcId"))
10497	}
10498
10499	if invalidParams.Len() > 0 {
10500		return invalidParams
10501	}
10502	return nil
10503}
10504
10505// SetSubnetIds sets the SubnetIds field's value.
10506func (s *DirectoryVpcSettings) SetSubnetIds(v []*string) *DirectoryVpcSettings {
10507	s.SubnetIds = v
10508	return s
10509}
10510
10511// SetVpcId sets the VpcId field's value.
10512func (s *DirectoryVpcSettings) SetVpcId(v string) *DirectoryVpcSettings {
10513	s.VpcId = &v
10514	return s
10515}
10516
10517// Contains information about the directory.
10518type DirectoryVpcSettingsDescription struct {
10519	_ struct{} `type:"structure"`
10520
10521	// The list of Availability Zones that the directory is in.
10522	AvailabilityZones []*string `type:"list"`
10523
10524	// The domain controller security group identifier for the directory.
10525	SecurityGroupId *string `type:"string"`
10526
10527	// The identifiers of the subnets for the directory servers.
10528	SubnetIds []*string `type:"list"`
10529
10530	// The identifier of the VPC that the directory is in.
10531	VpcId *string `type:"string"`
10532}
10533
10534// String returns the string representation
10535func (s DirectoryVpcSettingsDescription) String() string {
10536	return awsutil.Prettify(s)
10537}
10538
10539// GoString returns the string representation
10540func (s DirectoryVpcSettingsDescription) GoString() string {
10541	return s.String()
10542}
10543
10544// SetAvailabilityZones sets the AvailabilityZones field's value.
10545func (s *DirectoryVpcSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryVpcSettingsDescription {
10546	s.AvailabilityZones = v
10547	return s
10548}
10549
10550// SetSecurityGroupId sets the SecurityGroupId field's value.
10551func (s *DirectoryVpcSettingsDescription) SetSecurityGroupId(v string) *DirectoryVpcSettingsDescription {
10552	s.SecurityGroupId = &v
10553	return s
10554}
10555
10556// SetSubnetIds sets the SubnetIds field's value.
10557func (s *DirectoryVpcSettingsDescription) SetSubnetIds(v []*string) *DirectoryVpcSettingsDescription {
10558	s.SubnetIds = v
10559	return s
10560}
10561
10562// SetVpcId sets the VpcId field's value.
10563func (s *DirectoryVpcSettingsDescription) SetVpcId(v string) *DirectoryVpcSettingsDescription {
10564	s.VpcId = &v
10565	return s
10566}
10567
10568type DisableClientAuthenticationInput struct {
10569	_ struct{} `type:"structure"`
10570
10571	// The identifier of the directory
10572	//
10573	// DirectoryId is a required field
10574	DirectoryId *string `type:"string" required:"true"`
10575
10576	// The type of client authentication to disable. Currently, only the parameter,
10577	// SmartCard is supported.
10578	//
10579	// Type is a required field
10580	Type *string `type:"string" required:"true" enum:"ClientAuthenticationType"`
10581}
10582
10583// String returns the string representation
10584func (s DisableClientAuthenticationInput) String() string {
10585	return awsutil.Prettify(s)
10586}
10587
10588// GoString returns the string representation
10589func (s DisableClientAuthenticationInput) GoString() string {
10590	return s.String()
10591}
10592
10593// Validate inspects the fields of the type to determine if they are valid.
10594func (s *DisableClientAuthenticationInput) Validate() error {
10595	invalidParams := request.ErrInvalidParams{Context: "DisableClientAuthenticationInput"}
10596	if s.DirectoryId == nil {
10597		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10598	}
10599	if s.Type == nil {
10600		invalidParams.Add(request.NewErrParamRequired("Type"))
10601	}
10602
10603	if invalidParams.Len() > 0 {
10604		return invalidParams
10605	}
10606	return nil
10607}
10608
10609// SetDirectoryId sets the DirectoryId field's value.
10610func (s *DisableClientAuthenticationInput) SetDirectoryId(v string) *DisableClientAuthenticationInput {
10611	s.DirectoryId = &v
10612	return s
10613}
10614
10615// SetType sets the Type field's value.
10616func (s *DisableClientAuthenticationInput) SetType(v string) *DisableClientAuthenticationInput {
10617	s.Type = &v
10618	return s
10619}
10620
10621type DisableClientAuthenticationOutput struct {
10622	_ struct{} `type:"structure"`
10623}
10624
10625// String returns the string representation
10626func (s DisableClientAuthenticationOutput) String() string {
10627	return awsutil.Prettify(s)
10628}
10629
10630// GoString returns the string representation
10631func (s DisableClientAuthenticationOutput) GoString() string {
10632	return s.String()
10633}
10634
10635type DisableLDAPSInput struct {
10636	_ struct{} `type:"structure"`
10637
10638	// The identifier of the directory.
10639	//
10640	// DirectoryId is a required field
10641	DirectoryId *string `type:"string" required:"true"`
10642
10643	// The type of LDAP security to enable. Currently only the value Client is supported.
10644	//
10645	// Type is a required field
10646	Type *string `type:"string" required:"true" enum:"LDAPSType"`
10647}
10648
10649// String returns the string representation
10650func (s DisableLDAPSInput) String() string {
10651	return awsutil.Prettify(s)
10652}
10653
10654// GoString returns the string representation
10655func (s DisableLDAPSInput) GoString() string {
10656	return s.String()
10657}
10658
10659// Validate inspects the fields of the type to determine if they are valid.
10660func (s *DisableLDAPSInput) Validate() error {
10661	invalidParams := request.ErrInvalidParams{Context: "DisableLDAPSInput"}
10662	if s.DirectoryId == nil {
10663		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10664	}
10665	if s.Type == nil {
10666		invalidParams.Add(request.NewErrParamRequired("Type"))
10667	}
10668
10669	if invalidParams.Len() > 0 {
10670		return invalidParams
10671	}
10672	return nil
10673}
10674
10675// SetDirectoryId sets the DirectoryId field's value.
10676func (s *DisableLDAPSInput) SetDirectoryId(v string) *DisableLDAPSInput {
10677	s.DirectoryId = &v
10678	return s
10679}
10680
10681// SetType sets the Type field's value.
10682func (s *DisableLDAPSInput) SetType(v string) *DisableLDAPSInput {
10683	s.Type = &v
10684	return s
10685}
10686
10687type DisableLDAPSOutput struct {
10688	_ struct{} `type:"structure"`
10689}
10690
10691// String returns the string representation
10692func (s DisableLDAPSOutput) String() string {
10693	return awsutil.Prettify(s)
10694}
10695
10696// GoString returns the string representation
10697func (s DisableLDAPSOutput) GoString() string {
10698	return s.String()
10699}
10700
10701// Contains the inputs for the DisableRadius operation.
10702type DisableRadiusInput struct {
10703	_ struct{} `type:"structure"`
10704
10705	// The identifier of the directory for which to disable MFA.
10706	//
10707	// DirectoryId is a required field
10708	DirectoryId *string `type:"string" required:"true"`
10709}
10710
10711// String returns the string representation
10712func (s DisableRadiusInput) String() string {
10713	return awsutil.Prettify(s)
10714}
10715
10716// GoString returns the string representation
10717func (s DisableRadiusInput) GoString() string {
10718	return s.String()
10719}
10720
10721// Validate inspects the fields of the type to determine if they are valid.
10722func (s *DisableRadiusInput) Validate() error {
10723	invalidParams := request.ErrInvalidParams{Context: "DisableRadiusInput"}
10724	if s.DirectoryId == nil {
10725		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10726	}
10727
10728	if invalidParams.Len() > 0 {
10729		return invalidParams
10730	}
10731	return nil
10732}
10733
10734// SetDirectoryId sets the DirectoryId field's value.
10735func (s *DisableRadiusInput) SetDirectoryId(v string) *DisableRadiusInput {
10736	s.DirectoryId = &v
10737	return s
10738}
10739
10740// Contains the results of the DisableRadius operation.
10741type DisableRadiusOutput struct {
10742	_ struct{} `type:"structure"`
10743}
10744
10745// String returns the string representation
10746func (s DisableRadiusOutput) String() string {
10747	return awsutil.Prettify(s)
10748}
10749
10750// GoString returns the string representation
10751func (s DisableRadiusOutput) GoString() string {
10752	return s.String()
10753}
10754
10755// Contains the inputs for the DisableSso operation.
10756type DisableSsoInput struct {
10757	_ struct{} `type:"structure"`
10758
10759	// The identifier of the directory for which to disable single-sign on.
10760	//
10761	// DirectoryId is a required field
10762	DirectoryId *string `type:"string" required:"true"`
10763
10764	// The password of an alternate account to use to disable single-sign on. This
10765	// is only used for AD Connector directories. For more information, see the
10766	// UserName parameter.
10767	Password *string `min:"1" type:"string" sensitive:"true"`
10768
10769	// The username of an alternate account to use to disable single-sign on. This
10770	// is only used for AD Connector directories. This account must have privileges
10771	// to remove a service principal name.
10772	//
10773	// If the AD Connector service account does not have privileges to remove a
10774	// service principal name, you can specify an alternate account with the UserName
10775	// and Password parameters. These credentials are only used to disable single
10776	// sign-on and are not stored by the service. The AD Connector service account
10777	// is not changed.
10778	UserName *string `min:"1" type:"string"`
10779}
10780
10781// String returns the string representation
10782func (s DisableSsoInput) String() string {
10783	return awsutil.Prettify(s)
10784}
10785
10786// GoString returns the string representation
10787func (s DisableSsoInput) GoString() string {
10788	return s.String()
10789}
10790
10791// Validate inspects the fields of the type to determine if they are valid.
10792func (s *DisableSsoInput) Validate() error {
10793	invalidParams := request.ErrInvalidParams{Context: "DisableSsoInput"}
10794	if s.DirectoryId == nil {
10795		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10796	}
10797	if s.Password != nil && len(*s.Password) < 1 {
10798		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
10799	}
10800	if s.UserName != nil && len(*s.UserName) < 1 {
10801		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
10802	}
10803
10804	if invalidParams.Len() > 0 {
10805		return invalidParams
10806	}
10807	return nil
10808}
10809
10810// SetDirectoryId sets the DirectoryId field's value.
10811func (s *DisableSsoInput) SetDirectoryId(v string) *DisableSsoInput {
10812	s.DirectoryId = &v
10813	return s
10814}
10815
10816// SetPassword sets the Password field's value.
10817func (s *DisableSsoInput) SetPassword(v string) *DisableSsoInput {
10818	s.Password = &v
10819	return s
10820}
10821
10822// SetUserName sets the UserName field's value.
10823func (s *DisableSsoInput) SetUserName(v string) *DisableSsoInput {
10824	s.UserName = &v
10825	return s
10826}
10827
10828// Contains the results of the DisableSso operation.
10829type DisableSsoOutput struct {
10830	_ struct{} `type:"structure"`
10831}
10832
10833// String returns the string representation
10834func (s DisableSsoOutput) String() string {
10835	return awsutil.Prettify(s)
10836}
10837
10838// GoString returns the string representation
10839func (s DisableSsoOutput) GoString() string {
10840	return s.String()
10841}
10842
10843// Contains information about the domain controllers for a specified directory.
10844type DomainController struct {
10845	_ struct{} `type:"structure"`
10846
10847	// The Availability Zone where the domain controller is located.
10848	AvailabilityZone *string `type:"string"`
10849
10850	// Identifier of the directory where the domain controller resides.
10851	DirectoryId *string `type:"string"`
10852
10853	// The IP address of the domain controller.
10854	DnsIpAddr *string `type:"string"`
10855
10856	// Identifies a specific domain controller in the directory.
10857	DomainControllerId *string `type:"string"`
10858
10859	// Specifies when the domain controller was created.
10860	LaunchTime *time.Time `type:"timestamp"`
10861
10862	// The status of the domain controller.
10863	Status *string `type:"string" enum:"DomainControllerStatus"`
10864
10865	// The date and time that the status was last updated.
10866	StatusLastUpdatedDateTime *time.Time `type:"timestamp"`
10867
10868	// A description of the domain controller state.
10869	StatusReason *string `type:"string"`
10870
10871	// Identifier of the subnet in the VPC that contains the domain controller.
10872	SubnetId *string `type:"string"`
10873
10874	// The identifier of the VPC that contains the domain controller.
10875	VpcId *string `type:"string"`
10876}
10877
10878// String returns the string representation
10879func (s DomainController) String() string {
10880	return awsutil.Prettify(s)
10881}
10882
10883// GoString returns the string representation
10884func (s DomainController) GoString() string {
10885	return s.String()
10886}
10887
10888// SetAvailabilityZone sets the AvailabilityZone field's value.
10889func (s *DomainController) SetAvailabilityZone(v string) *DomainController {
10890	s.AvailabilityZone = &v
10891	return s
10892}
10893
10894// SetDirectoryId sets the DirectoryId field's value.
10895func (s *DomainController) SetDirectoryId(v string) *DomainController {
10896	s.DirectoryId = &v
10897	return s
10898}
10899
10900// SetDnsIpAddr sets the DnsIpAddr field's value.
10901func (s *DomainController) SetDnsIpAddr(v string) *DomainController {
10902	s.DnsIpAddr = &v
10903	return s
10904}
10905
10906// SetDomainControllerId sets the DomainControllerId field's value.
10907func (s *DomainController) SetDomainControllerId(v string) *DomainController {
10908	s.DomainControllerId = &v
10909	return s
10910}
10911
10912// SetLaunchTime sets the LaunchTime field's value.
10913func (s *DomainController) SetLaunchTime(v time.Time) *DomainController {
10914	s.LaunchTime = &v
10915	return s
10916}
10917
10918// SetStatus sets the Status field's value.
10919func (s *DomainController) SetStatus(v string) *DomainController {
10920	s.Status = &v
10921	return s
10922}
10923
10924// SetStatusLastUpdatedDateTime sets the StatusLastUpdatedDateTime field's value.
10925func (s *DomainController) SetStatusLastUpdatedDateTime(v time.Time) *DomainController {
10926	s.StatusLastUpdatedDateTime = &v
10927	return s
10928}
10929
10930// SetStatusReason sets the StatusReason field's value.
10931func (s *DomainController) SetStatusReason(v string) *DomainController {
10932	s.StatusReason = &v
10933	return s
10934}
10935
10936// SetSubnetId sets the SubnetId field's value.
10937func (s *DomainController) SetSubnetId(v string) *DomainController {
10938	s.SubnetId = &v
10939	return s
10940}
10941
10942// SetVpcId sets the VpcId field's value.
10943func (s *DomainController) SetVpcId(v string) *DomainController {
10944	s.VpcId = &v
10945	return s
10946}
10947
10948// The maximum allowed number of domain controllers per directory was exceeded.
10949// The default limit per directory is 20 domain controllers.
10950type DomainControllerLimitExceededException struct {
10951	_            struct{}                  `type:"structure"`
10952	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10953
10954	// The descriptive message for the exception.
10955	Message_ *string `locationName:"Message" type:"string"`
10956
10957	// The AWS request identifier.
10958	RequestId *string `type:"string"`
10959}
10960
10961// String returns the string representation
10962func (s DomainControllerLimitExceededException) String() string {
10963	return awsutil.Prettify(s)
10964}
10965
10966// GoString returns the string representation
10967func (s DomainControllerLimitExceededException) GoString() string {
10968	return s.String()
10969}
10970
10971func newErrorDomainControllerLimitExceededException(v protocol.ResponseMetadata) error {
10972	return &DomainControllerLimitExceededException{
10973		RespMetadata: v,
10974	}
10975}
10976
10977// Code returns the exception type name.
10978func (s *DomainControllerLimitExceededException) Code() string {
10979	return "DomainControllerLimitExceededException"
10980}
10981
10982// Message returns the exception's message.
10983func (s *DomainControllerLimitExceededException) Message() string {
10984	if s.Message_ != nil {
10985		return *s.Message_
10986	}
10987	return ""
10988}
10989
10990// OrigErr always returns nil, satisfies awserr.Error interface.
10991func (s *DomainControllerLimitExceededException) OrigErr() error {
10992	return nil
10993}
10994
10995func (s *DomainControllerLimitExceededException) Error() string {
10996	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10997}
10998
10999// Status code returns the HTTP status code for the request's response error.
11000func (s *DomainControllerLimitExceededException) StatusCode() int {
11001	return s.RespMetadata.StatusCode
11002}
11003
11004// RequestID returns the service's response RequestID for request.
11005func (s *DomainControllerLimitExceededException) RequestID() string {
11006	return s.RespMetadata.RequestID
11007}
11008
11009type EnableClientAuthenticationInput struct {
11010	_ struct{} `type:"structure"`
11011
11012	// The identifier of the specified directory.
11013	//
11014	// DirectoryId is a required field
11015	DirectoryId *string `type:"string" required:"true"`
11016
11017	// The type of client authentication to enable. Currently only the value SmartCard
11018	// is supported. Smart card authentication in AD Connector requires that you
11019	// enable Kerberos Constrained Delegation for the Service User to the LDAP service
11020	// in the on-premises AD.
11021	//
11022	// Type is a required field
11023	Type *string `type:"string" required:"true" enum:"ClientAuthenticationType"`
11024}
11025
11026// String returns the string representation
11027func (s EnableClientAuthenticationInput) String() string {
11028	return awsutil.Prettify(s)
11029}
11030
11031// GoString returns the string representation
11032func (s EnableClientAuthenticationInput) GoString() string {
11033	return s.String()
11034}
11035
11036// Validate inspects the fields of the type to determine if they are valid.
11037func (s *EnableClientAuthenticationInput) Validate() error {
11038	invalidParams := request.ErrInvalidParams{Context: "EnableClientAuthenticationInput"}
11039	if s.DirectoryId == nil {
11040		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11041	}
11042	if s.Type == nil {
11043		invalidParams.Add(request.NewErrParamRequired("Type"))
11044	}
11045
11046	if invalidParams.Len() > 0 {
11047		return invalidParams
11048	}
11049	return nil
11050}
11051
11052// SetDirectoryId sets the DirectoryId field's value.
11053func (s *EnableClientAuthenticationInput) SetDirectoryId(v string) *EnableClientAuthenticationInput {
11054	s.DirectoryId = &v
11055	return s
11056}
11057
11058// SetType sets the Type field's value.
11059func (s *EnableClientAuthenticationInput) SetType(v string) *EnableClientAuthenticationInput {
11060	s.Type = &v
11061	return s
11062}
11063
11064type EnableClientAuthenticationOutput struct {
11065	_ struct{} `type:"structure"`
11066}
11067
11068// String returns the string representation
11069func (s EnableClientAuthenticationOutput) String() string {
11070	return awsutil.Prettify(s)
11071}
11072
11073// GoString returns the string representation
11074func (s EnableClientAuthenticationOutput) GoString() string {
11075	return s.String()
11076}
11077
11078type EnableLDAPSInput struct {
11079	_ struct{} `type:"structure"`
11080
11081	// The identifier of the directory.
11082	//
11083	// DirectoryId is a required field
11084	DirectoryId *string `type:"string" required:"true"`
11085
11086	// The type of LDAP security to enable. Currently only the value Client is supported.
11087	//
11088	// Type is a required field
11089	Type *string `type:"string" required:"true" enum:"LDAPSType"`
11090}
11091
11092// String returns the string representation
11093func (s EnableLDAPSInput) String() string {
11094	return awsutil.Prettify(s)
11095}
11096
11097// GoString returns the string representation
11098func (s EnableLDAPSInput) GoString() string {
11099	return s.String()
11100}
11101
11102// Validate inspects the fields of the type to determine if they are valid.
11103func (s *EnableLDAPSInput) Validate() error {
11104	invalidParams := request.ErrInvalidParams{Context: "EnableLDAPSInput"}
11105	if s.DirectoryId == nil {
11106		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11107	}
11108	if s.Type == nil {
11109		invalidParams.Add(request.NewErrParamRequired("Type"))
11110	}
11111
11112	if invalidParams.Len() > 0 {
11113		return invalidParams
11114	}
11115	return nil
11116}
11117
11118// SetDirectoryId sets the DirectoryId field's value.
11119func (s *EnableLDAPSInput) SetDirectoryId(v string) *EnableLDAPSInput {
11120	s.DirectoryId = &v
11121	return s
11122}
11123
11124// SetType sets the Type field's value.
11125func (s *EnableLDAPSInput) SetType(v string) *EnableLDAPSInput {
11126	s.Type = &v
11127	return s
11128}
11129
11130type EnableLDAPSOutput struct {
11131	_ struct{} `type:"structure"`
11132}
11133
11134// String returns the string representation
11135func (s EnableLDAPSOutput) String() string {
11136	return awsutil.Prettify(s)
11137}
11138
11139// GoString returns the string representation
11140func (s EnableLDAPSOutput) GoString() string {
11141	return s.String()
11142}
11143
11144// Contains the inputs for the EnableRadius operation.
11145type EnableRadiusInput struct {
11146	_ struct{} `type:"structure"`
11147
11148	// The identifier of the directory for which to enable MFA.
11149	//
11150	// DirectoryId is a required field
11151	DirectoryId *string `type:"string" required:"true"`
11152
11153	// A RadiusSettings object that contains information about the RADIUS server.
11154	//
11155	// RadiusSettings is a required field
11156	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
11157}
11158
11159// String returns the string representation
11160func (s EnableRadiusInput) String() string {
11161	return awsutil.Prettify(s)
11162}
11163
11164// GoString returns the string representation
11165func (s EnableRadiusInput) GoString() string {
11166	return s.String()
11167}
11168
11169// Validate inspects the fields of the type to determine if they are valid.
11170func (s *EnableRadiusInput) Validate() error {
11171	invalidParams := request.ErrInvalidParams{Context: "EnableRadiusInput"}
11172	if s.DirectoryId == nil {
11173		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11174	}
11175	if s.RadiusSettings == nil {
11176		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
11177	}
11178	if s.RadiusSettings != nil {
11179		if err := s.RadiusSettings.Validate(); err != nil {
11180			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
11181		}
11182	}
11183
11184	if invalidParams.Len() > 0 {
11185		return invalidParams
11186	}
11187	return nil
11188}
11189
11190// SetDirectoryId sets the DirectoryId field's value.
11191func (s *EnableRadiusInput) SetDirectoryId(v string) *EnableRadiusInput {
11192	s.DirectoryId = &v
11193	return s
11194}
11195
11196// SetRadiusSettings sets the RadiusSettings field's value.
11197func (s *EnableRadiusInput) SetRadiusSettings(v *RadiusSettings) *EnableRadiusInput {
11198	s.RadiusSettings = v
11199	return s
11200}
11201
11202// Contains the results of the EnableRadius operation.
11203type EnableRadiusOutput struct {
11204	_ struct{} `type:"structure"`
11205}
11206
11207// String returns the string representation
11208func (s EnableRadiusOutput) String() string {
11209	return awsutil.Prettify(s)
11210}
11211
11212// GoString returns the string representation
11213func (s EnableRadiusOutput) GoString() string {
11214	return s.String()
11215}
11216
11217// Contains the inputs for the EnableSso operation.
11218type EnableSsoInput struct {
11219	_ struct{} `type:"structure"`
11220
11221	// The identifier of the directory for which to enable single-sign on.
11222	//
11223	// DirectoryId is a required field
11224	DirectoryId *string `type:"string" required:"true"`
11225
11226	// The password of an alternate account to use to enable single-sign on. This
11227	// is only used for AD Connector directories. For more information, see the
11228	// UserName parameter.
11229	Password *string `min:"1" type:"string" sensitive:"true"`
11230
11231	// The username of an alternate account to use to enable single-sign on. This
11232	// is only used for AD Connector directories. This account must have privileges
11233	// to add a service principal name.
11234	//
11235	// If the AD Connector service account does not have privileges to add a service
11236	// principal name, you can specify an alternate account with the UserName and
11237	// Password parameters. These credentials are only used to enable single sign-on
11238	// and are not stored by the service. The AD Connector service account is not
11239	// changed.
11240	UserName *string `min:"1" type:"string"`
11241}
11242
11243// String returns the string representation
11244func (s EnableSsoInput) String() string {
11245	return awsutil.Prettify(s)
11246}
11247
11248// GoString returns the string representation
11249func (s EnableSsoInput) GoString() string {
11250	return s.String()
11251}
11252
11253// Validate inspects the fields of the type to determine if they are valid.
11254func (s *EnableSsoInput) Validate() error {
11255	invalidParams := request.ErrInvalidParams{Context: "EnableSsoInput"}
11256	if s.DirectoryId == nil {
11257		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11258	}
11259	if s.Password != nil && len(*s.Password) < 1 {
11260		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
11261	}
11262	if s.UserName != nil && len(*s.UserName) < 1 {
11263		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
11264	}
11265
11266	if invalidParams.Len() > 0 {
11267		return invalidParams
11268	}
11269	return nil
11270}
11271
11272// SetDirectoryId sets the DirectoryId field's value.
11273func (s *EnableSsoInput) SetDirectoryId(v string) *EnableSsoInput {
11274	s.DirectoryId = &v
11275	return s
11276}
11277
11278// SetPassword sets the Password field's value.
11279func (s *EnableSsoInput) SetPassword(v string) *EnableSsoInput {
11280	s.Password = &v
11281	return s
11282}
11283
11284// SetUserName sets the UserName field's value.
11285func (s *EnableSsoInput) SetUserName(v string) *EnableSsoInput {
11286	s.UserName = &v
11287	return s
11288}
11289
11290// Contains the results of the EnableSso operation.
11291type EnableSsoOutput struct {
11292	_ struct{} `type:"structure"`
11293}
11294
11295// String returns the string representation
11296func (s EnableSsoOutput) String() string {
11297	return awsutil.Prettify(s)
11298}
11299
11300// GoString returns the string representation
11301func (s EnableSsoOutput) GoString() string {
11302	return s.String()
11303}
11304
11305// The specified entity already exists.
11306type EntityAlreadyExistsException struct {
11307	_            struct{}                  `type:"structure"`
11308	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11309
11310	// The descriptive message for the exception.
11311	Message_ *string `locationName:"Message" type:"string"`
11312
11313	// The AWS request identifier.
11314	RequestId *string `type:"string"`
11315}
11316
11317// String returns the string representation
11318func (s EntityAlreadyExistsException) String() string {
11319	return awsutil.Prettify(s)
11320}
11321
11322// GoString returns the string representation
11323func (s EntityAlreadyExistsException) GoString() string {
11324	return s.String()
11325}
11326
11327func newErrorEntityAlreadyExistsException(v protocol.ResponseMetadata) error {
11328	return &EntityAlreadyExistsException{
11329		RespMetadata: v,
11330	}
11331}
11332
11333// Code returns the exception type name.
11334func (s *EntityAlreadyExistsException) Code() string {
11335	return "EntityAlreadyExistsException"
11336}
11337
11338// Message returns the exception's message.
11339func (s *EntityAlreadyExistsException) Message() string {
11340	if s.Message_ != nil {
11341		return *s.Message_
11342	}
11343	return ""
11344}
11345
11346// OrigErr always returns nil, satisfies awserr.Error interface.
11347func (s *EntityAlreadyExistsException) OrigErr() error {
11348	return nil
11349}
11350
11351func (s *EntityAlreadyExistsException) Error() string {
11352	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11353}
11354
11355// Status code returns the HTTP status code for the request's response error.
11356func (s *EntityAlreadyExistsException) StatusCode() int {
11357	return s.RespMetadata.StatusCode
11358}
11359
11360// RequestID returns the service's response RequestID for request.
11361func (s *EntityAlreadyExistsException) RequestID() string {
11362	return s.RespMetadata.RequestID
11363}
11364
11365// The specified entity could not be found.
11366type EntityDoesNotExistException struct {
11367	_            struct{}                  `type:"structure"`
11368	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11369
11370	// The descriptive message for the exception.
11371	Message_ *string `locationName:"Message" type:"string"`
11372
11373	// The AWS request identifier.
11374	RequestId *string `type:"string"`
11375}
11376
11377// String returns the string representation
11378func (s EntityDoesNotExistException) String() string {
11379	return awsutil.Prettify(s)
11380}
11381
11382// GoString returns the string representation
11383func (s EntityDoesNotExistException) GoString() string {
11384	return s.String()
11385}
11386
11387func newErrorEntityDoesNotExistException(v protocol.ResponseMetadata) error {
11388	return &EntityDoesNotExistException{
11389		RespMetadata: v,
11390	}
11391}
11392
11393// Code returns the exception type name.
11394func (s *EntityDoesNotExistException) Code() string {
11395	return "EntityDoesNotExistException"
11396}
11397
11398// Message returns the exception's message.
11399func (s *EntityDoesNotExistException) Message() string {
11400	if s.Message_ != nil {
11401		return *s.Message_
11402	}
11403	return ""
11404}
11405
11406// OrigErr always returns nil, satisfies awserr.Error interface.
11407func (s *EntityDoesNotExistException) OrigErr() error {
11408	return nil
11409}
11410
11411func (s *EntityDoesNotExistException) Error() string {
11412	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11413}
11414
11415// Status code returns the HTTP status code for the request's response error.
11416func (s *EntityDoesNotExistException) StatusCode() int {
11417	return s.RespMetadata.StatusCode
11418}
11419
11420// RequestID returns the service's response RequestID for request.
11421func (s *EntityDoesNotExistException) RequestID() string {
11422	return s.RespMetadata.RequestID
11423}
11424
11425// Information about SNS topic and AWS Directory Service directory associations.
11426type EventTopic struct {
11427	_ struct{} `type:"structure"`
11428
11429	// The date and time of when you associated your directory with the SNS topic.
11430	CreatedDateTime *time.Time `type:"timestamp"`
11431
11432	// The Directory ID of an AWS Directory Service directory that will publish
11433	// status messages to an SNS topic.
11434	DirectoryId *string `type:"string"`
11435
11436	// The topic registration status.
11437	Status *string `type:"string" enum:"TopicStatus"`
11438
11439	// The SNS topic ARN (Amazon Resource Name).
11440	TopicArn *string `type:"string"`
11441
11442	// The name of an AWS SNS topic the receives status messages from the directory.
11443	TopicName *string `min:"1" type:"string"`
11444}
11445
11446// String returns the string representation
11447func (s EventTopic) String() string {
11448	return awsutil.Prettify(s)
11449}
11450
11451// GoString returns the string representation
11452func (s EventTopic) GoString() string {
11453	return s.String()
11454}
11455
11456// SetCreatedDateTime sets the CreatedDateTime field's value.
11457func (s *EventTopic) SetCreatedDateTime(v time.Time) *EventTopic {
11458	s.CreatedDateTime = &v
11459	return s
11460}
11461
11462// SetDirectoryId sets the DirectoryId field's value.
11463func (s *EventTopic) SetDirectoryId(v string) *EventTopic {
11464	s.DirectoryId = &v
11465	return s
11466}
11467
11468// SetStatus sets the Status field's value.
11469func (s *EventTopic) SetStatus(v string) *EventTopic {
11470	s.Status = &v
11471	return s
11472}
11473
11474// SetTopicArn sets the TopicArn field's value.
11475func (s *EventTopic) SetTopicArn(v string) *EventTopic {
11476	s.TopicArn = &v
11477	return s
11478}
11479
11480// SetTopicName sets the TopicName field's value.
11481func (s *EventTopic) SetTopicName(v string) *EventTopic {
11482	s.TopicName = &v
11483	return s
11484}
11485
11486// Contains the inputs for the GetDirectoryLimits operation.
11487type GetDirectoryLimitsInput struct {
11488	_ struct{} `type:"structure"`
11489}
11490
11491// String returns the string representation
11492func (s GetDirectoryLimitsInput) String() string {
11493	return awsutil.Prettify(s)
11494}
11495
11496// GoString returns the string representation
11497func (s GetDirectoryLimitsInput) GoString() string {
11498	return s.String()
11499}
11500
11501// Contains the results of the GetDirectoryLimits operation.
11502type GetDirectoryLimitsOutput struct {
11503	_ struct{} `type:"structure"`
11504
11505	// A DirectoryLimits object that contains the directory limits for the current
11506	// rRegion.
11507	DirectoryLimits *DirectoryLimits `type:"structure"`
11508}
11509
11510// String returns the string representation
11511func (s GetDirectoryLimitsOutput) String() string {
11512	return awsutil.Prettify(s)
11513}
11514
11515// GoString returns the string representation
11516func (s GetDirectoryLimitsOutput) GoString() string {
11517	return s.String()
11518}
11519
11520// SetDirectoryLimits sets the DirectoryLimits field's value.
11521func (s *GetDirectoryLimitsOutput) SetDirectoryLimits(v *DirectoryLimits) *GetDirectoryLimitsOutput {
11522	s.DirectoryLimits = v
11523	return s
11524}
11525
11526// Contains the inputs for the GetSnapshotLimits operation.
11527type GetSnapshotLimitsInput struct {
11528	_ struct{} `type:"structure"`
11529
11530	// Contains the identifier of the directory to obtain the limits for.
11531	//
11532	// DirectoryId is a required field
11533	DirectoryId *string `type:"string" required:"true"`
11534}
11535
11536// String returns the string representation
11537func (s GetSnapshotLimitsInput) String() string {
11538	return awsutil.Prettify(s)
11539}
11540
11541// GoString returns the string representation
11542func (s GetSnapshotLimitsInput) GoString() string {
11543	return s.String()
11544}
11545
11546// Validate inspects the fields of the type to determine if they are valid.
11547func (s *GetSnapshotLimitsInput) Validate() error {
11548	invalidParams := request.ErrInvalidParams{Context: "GetSnapshotLimitsInput"}
11549	if s.DirectoryId == nil {
11550		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11551	}
11552
11553	if invalidParams.Len() > 0 {
11554		return invalidParams
11555	}
11556	return nil
11557}
11558
11559// SetDirectoryId sets the DirectoryId field's value.
11560func (s *GetSnapshotLimitsInput) SetDirectoryId(v string) *GetSnapshotLimitsInput {
11561	s.DirectoryId = &v
11562	return s
11563}
11564
11565// Contains the results of the GetSnapshotLimits operation.
11566type GetSnapshotLimitsOutput struct {
11567	_ struct{} `type:"structure"`
11568
11569	// A SnapshotLimits object that contains the manual snapshot limits for the
11570	// specified directory.
11571	SnapshotLimits *SnapshotLimits `type:"structure"`
11572}
11573
11574// String returns the string representation
11575func (s GetSnapshotLimitsOutput) String() string {
11576	return awsutil.Prettify(s)
11577}
11578
11579// GoString returns the string representation
11580func (s GetSnapshotLimitsOutput) GoString() string {
11581	return s.String()
11582}
11583
11584// SetSnapshotLimits sets the SnapshotLimits field's value.
11585func (s *GetSnapshotLimitsOutput) SetSnapshotLimits(v *SnapshotLimits) *GetSnapshotLimitsOutput {
11586	s.SnapshotLimits = v
11587	return s
11588}
11589
11590// The account does not have sufficient permission to perform the operation.
11591type InsufficientPermissionsException struct {
11592	_            struct{}                  `type:"structure"`
11593	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11594
11595	// The descriptive message for the exception.
11596	Message_ *string `locationName:"Message" type:"string"`
11597
11598	// The AWS request identifier.
11599	RequestId *string `type:"string"`
11600}
11601
11602// String returns the string representation
11603func (s InsufficientPermissionsException) String() string {
11604	return awsutil.Prettify(s)
11605}
11606
11607// GoString returns the string representation
11608func (s InsufficientPermissionsException) GoString() string {
11609	return s.String()
11610}
11611
11612func newErrorInsufficientPermissionsException(v protocol.ResponseMetadata) error {
11613	return &InsufficientPermissionsException{
11614		RespMetadata: v,
11615	}
11616}
11617
11618// Code returns the exception type name.
11619func (s *InsufficientPermissionsException) Code() string {
11620	return "InsufficientPermissionsException"
11621}
11622
11623// Message returns the exception's message.
11624func (s *InsufficientPermissionsException) Message() string {
11625	if s.Message_ != nil {
11626		return *s.Message_
11627	}
11628	return ""
11629}
11630
11631// OrigErr always returns nil, satisfies awserr.Error interface.
11632func (s *InsufficientPermissionsException) OrigErr() error {
11633	return nil
11634}
11635
11636func (s *InsufficientPermissionsException) Error() string {
11637	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11638}
11639
11640// Status code returns the HTTP status code for the request's response error.
11641func (s *InsufficientPermissionsException) StatusCode() int {
11642	return s.RespMetadata.StatusCode
11643}
11644
11645// RequestID returns the service's response RequestID for request.
11646func (s *InsufficientPermissionsException) RequestID() string {
11647	return s.RespMetadata.RequestID
11648}
11649
11650// The certificate PEM that was provided has incorrect encoding.
11651type InvalidCertificateException struct {
11652	_            struct{}                  `type:"structure"`
11653	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11654
11655	// The descriptive message for the exception.
11656	Message_ *string `locationName:"Message" type:"string"`
11657
11658	// The AWS request identifier.
11659	RequestId *string `type:"string"`
11660}
11661
11662// String returns the string representation
11663func (s InvalidCertificateException) String() string {
11664	return awsutil.Prettify(s)
11665}
11666
11667// GoString returns the string representation
11668func (s InvalidCertificateException) GoString() string {
11669	return s.String()
11670}
11671
11672func newErrorInvalidCertificateException(v protocol.ResponseMetadata) error {
11673	return &InvalidCertificateException{
11674		RespMetadata: v,
11675	}
11676}
11677
11678// Code returns the exception type name.
11679func (s *InvalidCertificateException) Code() string {
11680	return "InvalidCertificateException"
11681}
11682
11683// Message returns the exception's message.
11684func (s *InvalidCertificateException) Message() string {
11685	if s.Message_ != nil {
11686		return *s.Message_
11687	}
11688	return ""
11689}
11690
11691// OrigErr always returns nil, satisfies awserr.Error interface.
11692func (s *InvalidCertificateException) OrigErr() error {
11693	return nil
11694}
11695
11696func (s *InvalidCertificateException) Error() string {
11697	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11698}
11699
11700// Status code returns the HTTP status code for the request's response error.
11701func (s *InvalidCertificateException) StatusCode() int {
11702	return s.RespMetadata.StatusCode
11703}
11704
11705// RequestID returns the service's response RequestID for request.
11706func (s *InvalidCertificateException) RequestID() string {
11707	return s.RespMetadata.RequestID
11708}
11709
11710// Client authentication is already enabled.
11711type InvalidClientAuthStatusException struct {
11712	_            struct{}                  `type:"structure"`
11713	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11714
11715	// The descriptive message for the exception.
11716	Message_ *string `locationName:"Message" type:"string"`
11717
11718	// The AWS request identifier.
11719	RequestId *string `type:"string"`
11720}
11721
11722// String returns the string representation
11723func (s InvalidClientAuthStatusException) String() string {
11724	return awsutil.Prettify(s)
11725}
11726
11727// GoString returns the string representation
11728func (s InvalidClientAuthStatusException) GoString() string {
11729	return s.String()
11730}
11731
11732func newErrorInvalidClientAuthStatusException(v protocol.ResponseMetadata) error {
11733	return &InvalidClientAuthStatusException{
11734		RespMetadata: v,
11735	}
11736}
11737
11738// Code returns the exception type name.
11739func (s *InvalidClientAuthStatusException) Code() string {
11740	return "InvalidClientAuthStatusException"
11741}
11742
11743// Message returns the exception's message.
11744func (s *InvalidClientAuthStatusException) Message() string {
11745	if s.Message_ != nil {
11746		return *s.Message_
11747	}
11748	return ""
11749}
11750
11751// OrigErr always returns nil, satisfies awserr.Error interface.
11752func (s *InvalidClientAuthStatusException) OrigErr() error {
11753	return nil
11754}
11755
11756func (s *InvalidClientAuthStatusException) Error() string {
11757	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11758}
11759
11760// Status code returns the HTTP status code for the request's response error.
11761func (s *InvalidClientAuthStatusException) StatusCode() int {
11762	return s.RespMetadata.StatusCode
11763}
11764
11765// RequestID returns the service's response RequestID for request.
11766func (s *InvalidClientAuthStatusException) RequestID() string {
11767	return s.RespMetadata.RequestID
11768}
11769
11770// The LDAP activities could not be performed because they are limited by the
11771// LDAPS status.
11772type InvalidLDAPSStatusException struct {
11773	_            struct{}                  `type:"structure"`
11774	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11775
11776	// The descriptive message for the exception.
11777	Message_ *string `locationName:"Message" type:"string"`
11778
11779	// The AWS request identifier.
11780	RequestId *string `type:"string"`
11781}
11782
11783// String returns the string representation
11784func (s InvalidLDAPSStatusException) String() string {
11785	return awsutil.Prettify(s)
11786}
11787
11788// GoString returns the string representation
11789func (s InvalidLDAPSStatusException) GoString() string {
11790	return s.String()
11791}
11792
11793func newErrorInvalidLDAPSStatusException(v protocol.ResponseMetadata) error {
11794	return &InvalidLDAPSStatusException{
11795		RespMetadata: v,
11796	}
11797}
11798
11799// Code returns the exception type name.
11800func (s *InvalidLDAPSStatusException) Code() string {
11801	return "InvalidLDAPSStatusException"
11802}
11803
11804// Message returns the exception's message.
11805func (s *InvalidLDAPSStatusException) Message() string {
11806	if s.Message_ != nil {
11807		return *s.Message_
11808	}
11809	return ""
11810}
11811
11812// OrigErr always returns nil, satisfies awserr.Error interface.
11813func (s *InvalidLDAPSStatusException) OrigErr() error {
11814	return nil
11815}
11816
11817func (s *InvalidLDAPSStatusException) Error() string {
11818	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11819}
11820
11821// Status code returns the HTTP status code for the request's response error.
11822func (s *InvalidLDAPSStatusException) StatusCode() int {
11823	return s.RespMetadata.StatusCode
11824}
11825
11826// RequestID returns the service's response RequestID for request.
11827func (s *InvalidLDAPSStatusException) RequestID() string {
11828	return s.RespMetadata.RequestID
11829}
11830
11831// The NextToken value is not valid.
11832type InvalidNextTokenException struct {
11833	_            struct{}                  `type:"structure"`
11834	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11835
11836	// The descriptive message for the exception.
11837	Message_ *string `locationName:"Message" type:"string"`
11838
11839	// The AWS request identifier.
11840	RequestId *string `type:"string"`
11841}
11842
11843// String returns the string representation
11844func (s InvalidNextTokenException) String() string {
11845	return awsutil.Prettify(s)
11846}
11847
11848// GoString returns the string representation
11849func (s InvalidNextTokenException) GoString() string {
11850	return s.String()
11851}
11852
11853func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
11854	return &InvalidNextTokenException{
11855		RespMetadata: v,
11856	}
11857}
11858
11859// Code returns the exception type name.
11860func (s *InvalidNextTokenException) Code() string {
11861	return "InvalidNextTokenException"
11862}
11863
11864// Message returns the exception's message.
11865func (s *InvalidNextTokenException) Message() string {
11866	if s.Message_ != nil {
11867		return *s.Message_
11868	}
11869	return ""
11870}
11871
11872// OrigErr always returns nil, satisfies awserr.Error interface.
11873func (s *InvalidNextTokenException) OrigErr() error {
11874	return nil
11875}
11876
11877func (s *InvalidNextTokenException) Error() string {
11878	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11879}
11880
11881// Status code returns the HTTP status code for the request's response error.
11882func (s *InvalidNextTokenException) StatusCode() int {
11883	return s.RespMetadata.StatusCode
11884}
11885
11886// RequestID returns the service's response RequestID for request.
11887func (s *InvalidNextTokenException) RequestID() string {
11888	return s.RespMetadata.RequestID
11889}
11890
11891// One or more parameters are not valid.
11892type InvalidParameterException struct {
11893	_            struct{}                  `type:"structure"`
11894	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11895
11896	// The descriptive message for the exception.
11897	Message_ *string `locationName:"Message" type:"string"`
11898
11899	// The AWS request identifier.
11900	RequestId *string `type:"string"`
11901}
11902
11903// String returns the string representation
11904func (s InvalidParameterException) String() string {
11905	return awsutil.Prettify(s)
11906}
11907
11908// GoString returns the string representation
11909func (s InvalidParameterException) GoString() string {
11910	return s.String()
11911}
11912
11913func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
11914	return &InvalidParameterException{
11915		RespMetadata: v,
11916	}
11917}
11918
11919// Code returns the exception type name.
11920func (s *InvalidParameterException) Code() string {
11921	return "InvalidParameterException"
11922}
11923
11924// Message returns the exception's message.
11925func (s *InvalidParameterException) Message() string {
11926	if s.Message_ != nil {
11927		return *s.Message_
11928	}
11929	return ""
11930}
11931
11932// OrigErr always returns nil, satisfies awserr.Error interface.
11933func (s *InvalidParameterException) OrigErr() error {
11934	return nil
11935}
11936
11937func (s *InvalidParameterException) Error() string {
11938	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11939}
11940
11941// Status code returns the HTTP status code for the request's response error.
11942func (s *InvalidParameterException) StatusCode() int {
11943	return s.RespMetadata.StatusCode
11944}
11945
11946// RequestID returns the service's response RequestID for request.
11947func (s *InvalidParameterException) RequestID() string {
11948	return s.RespMetadata.RequestID
11949}
11950
11951// The new password provided by the user does not meet the password complexity
11952// requirements defined in your directory.
11953type InvalidPasswordException struct {
11954	_            struct{}                  `type:"structure"`
11955	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11956
11957	// The descriptive message for the exception.
11958	Message_ *string `locationName:"Message" type:"string"`
11959
11960	// The AWS request identifier.
11961	RequestId *string `type:"string"`
11962}
11963
11964// String returns the string representation
11965func (s InvalidPasswordException) String() string {
11966	return awsutil.Prettify(s)
11967}
11968
11969// GoString returns the string representation
11970func (s InvalidPasswordException) GoString() string {
11971	return s.String()
11972}
11973
11974func newErrorInvalidPasswordException(v protocol.ResponseMetadata) error {
11975	return &InvalidPasswordException{
11976		RespMetadata: v,
11977	}
11978}
11979
11980// Code returns the exception type name.
11981func (s *InvalidPasswordException) Code() string {
11982	return "InvalidPasswordException"
11983}
11984
11985// Message returns the exception's message.
11986func (s *InvalidPasswordException) Message() string {
11987	if s.Message_ != nil {
11988		return *s.Message_
11989	}
11990	return ""
11991}
11992
11993// OrigErr always returns nil, satisfies awserr.Error interface.
11994func (s *InvalidPasswordException) OrigErr() error {
11995	return nil
11996}
11997
11998func (s *InvalidPasswordException) Error() string {
11999	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12000}
12001
12002// Status code returns the HTTP status code for the request's response error.
12003func (s *InvalidPasswordException) StatusCode() int {
12004	return s.RespMetadata.StatusCode
12005}
12006
12007// RequestID returns the service's response RequestID for request.
12008func (s *InvalidPasswordException) RequestID() string {
12009	return s.RespMetadata.RequestID
12010}
12011
12012// The specified shared target is not valid.
12013type InvalidTargetException struct {
12014	_            struct{}                  `type:"structure"`
12015	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12016
12017	// The descriptive message for the exception.
12018	Message_ *string `locationName:"Message" type:"string"`
12019
12020	// The AWS request identifier.
12021	RequestId *string `type:"string"`
12022}
12023
12024// String returns the string representation
12025func (s InvalidTargetException) String() string {
12026	return awsutil.Prettify(s)
12027}
12028
12029// GoString returns the string representation
12030func (s InvalidTargetException) GoString() string {
12031	return s.String()
12032}
12033
12034func newErrorInvalidTargetException(v protocol.ResponseMetadata) error {
12035	return &InvalidTargetException{
12036		RespMetadata: v,
12037	}
12038}
12039
12040// Code returns the exception type name.
12041func (s *InvalidTargetException) Code() string {
12042	return "InvalidTargetException"
12043}
12044
12045// Message returns the exception's message.
12046func (s *InvalidTargetException) Message() string {
12047	if s.Message_ != nil {
12048		return *s.Message_
12049	}
12050	return ""
12051}
12052
12053// OrigErr always returns nil, satisfies awserr.Error interface.
12054func (s *InvalidTargetException) OrigErr() error {
12055	return nil
12056}
12057
12058func (s *InvalidTargetException) Error() string {
12059	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12060}
12061
12062// Status code returns the HTTP status code for the request's response error.
12063func (s *InvalidTargetException) StatusCode() int {
12064	return s.RespMetadata.StatusCode
12065}
12066
12067// RequestID returns the service's response RequestID for request.
12068func (s *InvalidTargetException) RequestID() string {
12069	return s.RespMetadata.RequestID
12070}
12071
12072// IP address block. This is often the address block of the DNS server used
12073// for your on-premises domain.
12074type IpRoute struct {
12075	_ struct{} `type:"structure"`
12076
12077	// IP address block using CIDR format, for example 10.0.0.0/24. This is often
12078	// the address block of the DNS server used for your on-premises domain. For
12079	// a single IP address use a CIDR address block with /32. For example 10.0.0.0/32.
12080	CidrIp *string `type:"string"`
12081
12082	// Description of the address block.
12083	Description *string `type:"string"`
12084}
12085
12086// String returns the string representation
12087func (s IpRoute) String() string {
12088	return awsutil.Prettify(s)
12089}
12090
12091// GoString returns the string representation
12092func (s IpRoute) GoString() string {
12093	return s.String()
12094}
12095
12096// SetCidrIp sets the CidrIp field's value.
12097func (s *IpRoute) SetCidrIp(v string) *IpRoute {
12098	s.CidrIp = &v
12099	return s
12100}
12101
12102// SetDescription sets the Description field's value.
12103func (s *IpRoute) SetDescription(v string) *IpRoute {
12104	s.Description = &v
12105	return s
12106}
12107
12108// Information about one or more IP address blocks.
12109type IpRouteInfo struct {
12110	_ struct{} `type:"structure"`
12111
12112	// The date and time the address block was added to the directory.
12113	AddedDateTime *time.Time `type:"timestamp"`
12114
12115	// IP address block in the IpRoute.
12116	CidrIp *string `type:"string"`
12117
12118	// Description of the IpRouteInfo.
12119	Description *string `type:"string"`
12120
12121	// Identifier (ID) of the directory associated with the IP addresses.
12122	DirectoryId *string `type:"string"`
12123
12124	// The status of the IP address block.
12125	IpRouteStatusMsg *string `type:"string" enum:"IpRouteStatusMsg"`
12126
12127	// The reason for the IpRouteStatusMsg.
12128	IpRouteStatusReason *string `type:"string"`
12129}
12130
12131// String returns the string representation
12132func (s IpRouteInfo) String() string {
12133	return awsutil.Prettify(s)
12134}
12135
12136// GoString returns the string representation
12137func (s IpRouteInfo) GoString() string {
12138	return s.String()
12139}
12140
12141// SetAddedDateTime sets the AddedDateTime field's value.
12142func (s *IpRouteInfo) SetAddedDateTime(v time.Time) *IpRouteInfo {
12143	s.AddedDateTime = &v
12144	return s
12145}
12146
12147// SetCidrIp sets the CidrIp field's value.
12148func (s *IpRouteInfo) SetCidrIp(v string) *IpRouteInfo {
12149	s.CidrIp = &v
12150	return s
12151}
12152
12153// SetDescription sets the Description field's value.
12154func (s *IpRouteInfo) SetDescription(v string) *IpRouteInfo {
12155	s.Description = &v
12156	return s
12157}
12158
12159// SetDirectoryId sets the DirectoryId field's value.
12160func (s *IpRouteInfo) SetDirectoryId(v string) *IpRouteInfo {
12161	s.DirectoryId = &v
12162	return s
12163}
12164
12165// SetIpRouteStatusMsg sets the IpRouteStatusMsg field's value.
12166func (s *IpRouteInfo) SetIpRouteStatusMsg(v string) *IpRouteInfo {
12167	s.IpRouteStatusMsg = &v
12168	return s
12169}
12170
12171// SetIpRouteStatusReason sets the IpRouteStatusReason field's value.
12172func (s *IpRouteInfo) SetIpRouteStatusReason(v string) *IpRouteInfo {
12173	s.IpRouteStatusReason = &v
12174	return s
12175}
12176
12177// The maximum allowed number of IP addresses was exceeded. The default limit
12178// is 100 IP address blocks.
12179type IpRouteLimitExceededException struct {
12180	_            struct{}                  `type:"structure"`
12181	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12182
12183	// The descriptive message for the exception.
12184	Message_ *string `locationName:"Message" type:"string"`
12185
12186	// The AWS request identifier.
12187	RequestId *string `type:"string"`
12188}
12189
12190// String returns the string representation
12191func (s IpRouteLimitExceededException) String() string {
12192	return awsutil.Prettify(s)
12193}
12194
12195// GoString returns the string representation
12196func (s IpRouteLimitExceededException) GoString() string {
12197	return s.String()
12198}
12199
12200func newErrorIpRouteLimitExceededException(v protocol.ResponseMetadata) error {
12201	return &IpRouteLimitExceededException{
12202		RespMetadata: v,
12203	}
12204}
12205
12206// Code returns the exception type name.
12207func (s *IpRouteLimitExceededException) Code() string {
12208	return "IpRouteLimitExceededException"
12209}
12210
12211// Message returns the exception's message.
12212func (s *IpRouteLimitExceededException) Message() string {
12213	if s.Message_ != nil {
12214		return *s.Message_
12215	}
12216	return ""
12217}
12218
12219// OrigErr always returns nil, satisfies awserr.Error interface.
12220func (s *IpRouteLimitExceededException) OrigErr() error {
12221	return nil
12222}
12223
12224func (s *IpRouteLimitExceededException) Error() string {
12225	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12226}
12227
12228// Status code returns the HTTP status code for the request's response error.
12229func (s *IpRouteLimitExceededException) StatusCode() int {
12230	return s.RespMetadata.StatusCode
12231}
12232
12233// RequestID returns the service's response RequestID for request.
12234func (s *IpRouteLimitExceededException) RequestID() string {
12235	return s.RespMetadata.RequestID
12236}
12237
12238// Contains general information about the LDAPS settings.
12239type LDAPSSettingInfo struct {
12240	_ struct{} `type:"structure"`
12241
12242	// The state of the LDAPS settings.
12243	LDAPSStatus *string `type:"string" enum:"LDAPSStatus"`
12244
12245	// Describes a state change for LDAPS.
12246	LDAPSStatusReason *string `type:"string"`
12247
12248	// The date and time when the LDAPS settings were last updated.
12249	LastUpdatedDateTime *time.Time `type:"timestamp"`
12250}
12251
12252// String returns the string representation
12253func (s LDAPSSettingInfo) String() string {
12254	return awsutil.Prettify(s)
12255}
12256
12257// GoString returns the string representation
12258func (s LDAPSSettingInfo) GoString() string {
12259	return s.String()
12260}
12261
12262// SetLDAPSStatus sets the LDAPSStatus field's value.
12263func (s *LDAPSSettingInfo) SetLDAPSStatus(v string) *LDAPSSettingInfo {
12264	s.LDAPSStatus = &v
12265	return s
12266}
12267
12268// SetLDAPSStatusReason sets the LDAPSStatusReason field's value.
12269func (s *LDAPSSettingInfo) SetLDAPSStatusReason(v string) *LDAPSSettingInfo {
12270	s.LDAPSStatusReason = &v
12271	return s
12272}
12273
12274// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
12275func (s *LDAPSSettingInfo) SetLastUpdatedDateTime(v time.Time) *LDAPSSettingInfo {
12276	s.LastUpdatedDateTime = &v
12277	return s
12278}
12279
12280type ListCertificatesInput struct {
12281	_ struct{} `type:"structure"`
12282
12283	// The identifier of the directory.
12284	//
12285	// DirectoryId is a required field
12286	DirectoryId *string `type:"string" required:"true"`
12287
12288	// The number of items that should show up on one page
12289	Limit *int64 `min:"1" type:"integer"`
12290
12291	// A token for requesting another page of certificates if the NextToken response
12292	// element indicates that more certificates are available. Use the value of
12293	// the returned NextToken element in your request until the token comes back
12294	// as null. Pass null if this is the first call.
12295	NextToken *string `type:"string"`
12296}
12297
12298// String returns the string representation
12299func (s ListCertificatesInput) String() string {
12300	return awsutil.Prettify(s)
12301}
12302
12303// GoString returns the string representation
12304func (s ListCertificatesInput) GoString() string {
12305	return s.String()
12306}
12307
12308// Validate inspects the fields of the type to determine if they are valid.
12309func (s *ListCertificatesInput) Validate() error {
12310	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
12311	if s.DirectoryId == nil {
12312		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12313	}
12314	if s.Limit != nil && *s.Limit < 1 {
12315		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
12316	}
12317
12318	if invalidParams.Len() > 0 {
12319		return invalidParams
12320	}
12321	return nil
12322}
12323
12324// SetDirectoryId sets the DirectoryId field's value.
12325func (s *ListCertificatesInput) SetDirectoryId(v string) *ListCertificatesInput {
12326	s.DirectoryId = &v
12327	return s
12328}
12329
12330// SetLimit sets the Limit field's value.
12331func (s *ListCertificatesInput) SetLimit(v int64) *ListCertificatesInput {
12332	s.Limit = &v
12333	return s
12334}
12335
12336// SetNextToken sets the NextToken field's value.
12337func (s *ListCertificatesInput) SetNextToken(v string) *ListCertificatesInput {
12338	s.NextToken = &v
12339	return s
12340}
12341
12342type ListCertificatesOutput struct {
12343	_ struct{} `type:"structure"`
12344
12345	// A list of certificates with basic details including certificate ID, certificate
12346	// common name, certificate state.
12347	CertificatesInfo []*CertificateInfo `type:"list"`
12348
12349	// Indicates whether another page of certificates is available when the number
12350	// of available certificates exceeds the page limit.
12351	NextToken *string `type:"string"`
12352}
12353
12354// String returns the string representation
12355func (s ListCertificatesOutput) String() string {
12356	return awsutil.Prettify(s)
12357}
12358
12359// GoString returns the string representation
12360func (s ListCertificatesOutput) GoString() string {
12361	return s.String()
12362}
12363
12364// SetCertificatesInfo sets the CertificatesInfo field's value.
12365func (s *ListCertificatesOutput) SetCertificatesInfo(v []*CertificateInfo) *ListCertificatesOutput {
12366	s.CertificatesInfo = v
12367	return s
12368}
12369
12370// SetNextToken sets the NextToken field's value.
12371func (s *ListCertificatesOutput) SetNextToken(v string) *ListCertificatesOutput {
12372	s.NextToken = &v
12373	return s
12374}
12375
12376type ListIpRoutesInput struct {
12377	_ struct{} `type:"structure"`
12378
12379	// Identifier (ID) of the directory for which you want to retrieve the IP addresses.
12380	//
12381	// DirectoryId is a required field
12382	DirectoryId *string `type:"string" required:"true"`
12383
12384	// Maximum number of items to return. If this value is zero, the maximum number
12385	// of items is specified by the limitations of the operation.
12386	Limit *int64 `type:"integer"`
12387
12388	// The ListIpRoutes.NextToken value from a previous call to ListIpRoutes. Pass
12389	// null if this is the first call.
12390	NextToken *string `type:"string"`
12391}
12392
12393// String returns the string representation
12394func (s ListIpRoutesInput) String() string {
12395	return awsutil.Prettify(s)
12396}
12397
12398// GoString returns the string representation
12399func (s ListIpRoutesInput) GoString() string {
12400	return s.String()
12401}
12402
12403// Validate inspects the fields of the type to determine if they are valid.
12404func (s *ListIpRoutesInput) Validate() error {
12405	invalidParams := request.ErrInvalidParams{Context: "ListIpRoutesInput"}
12406	if s.DirectoryId == nil {
12407		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12408	}
12409
12410	if invalidParams.Len() > 0 {
12411		return invalidParams
12412	}
12413	return nil
12414}
12415
12416// SetDirectoryId sets the DirectoryId field's value.
12417func (s *ListIpRoutesInput) SetDirectoryId(v string) *ListIpRoutesInput {
12418	s.DirectoryId = &v
12419	return s
12420}
12421
12422// SetLimit sets the Limit field's value.
12423func (s *ListIpRoutesInput) SetLimit(v int64) *ListIpRoutesInput {
12424	s.Limit = &v
12425	return s
12426}
12427
12428// SetNextToken sets the NextToken field's value.
12429func (s *ListIpRoutesInput) SetNextToken(v string) *ListIpRoutesInput {
12430	s.NextToken = &v
12431	return s
12432}
12433
12434type ListIpRoutesOutput struct {
12435	_ struct{} `type:"structure"`
12436
12437	// A list of IpRoutes.
12438	IpRoutesInfo []*IpRouteInfo `type:"list"`
12439
12440	// If not null, more results are available. Pass this value for the NextToken
12441	// parameter in a subsequent call to ListIpRoutes to retrieve the next set of
12442	// items.
12443	NextToken *string `type:"string"`
12444}
12445
12446// String returns the string representation
12447func (s ListIpRoutesOutput) String() string {
12448	return awsutil.Prettify(s)
12449}
12450
12451// GoString returns the string representation
12452func (s ListIpRoutesOutput) GoString() string {
12453	return s.String()
12454}
12455
12456// SetIpRoutesInfo sets the IpRoutesInfo field's value.
12457func (s *ListIpRoutesOutput) SetIpRoutesInfo(v []*IpRouteInfo) *ListIpRoutesOutput {
12458	s.IpRoutesInfo = v
12459	return s
12460}
12461
12462// SetNextToken sets the NextToken field's value.
12463func (s *ListIpRoutesOutput) SetNextToken(v string) *ListIpRoutesOutput {
12464	s.NextToken = &v
12465	return s
12466}
12467
12468type ListLogSubscriptionsInput struct {
12469	_ struct{} `type:"structure"`
12470
12471	// If a DirectoryID is provided, lists only the log subscription associated
12472	// with that directory. If no DirectoryId is provided, lists all log subscriptions
12473	// associated with your AWS account. If there are no log subscriptions for the
12474	// AWS account or the directory, an empty list will be returned.
12475	DirectoryId *string `type:"string"`
12476
12477	// The maximum number of items returned.
12478	Limit *int64 `type:"integer"`
12479
12480	// The token for the next set of items to return.
12481	NextToken *string `type:"string"`
12482}
12483
12484// String returns the string representation
12485func (s ListLogSubscriptionsInput) String() string {
12486	return awsutil.Prettify(s)
12487}
12488
12489// GoString returns the string representation
12490func (s ListLogSubscriptionsInput) GoString() string {
12491	return s.String()
12492}
12493
12494// SetDirectoryId sets the DirectoryId field's value.
12495func (s *ListLogSubscriptionsInput) SetDirectoryId(v string) *ListLogSubscriptionsInput {
12496	s.DirectoryId = &v
12497	return s
12498}
12499
12500// SetLimit sets the Limit field's value.
12501func (s *ListLogSubscriptionsInput) SetLimit(v int64) *ListLogSubscriptionsInput {
12502	s.Limit = &v
12503	return s
12504}
12505
12506// SetNextToken sets the NextToken field's value.
12507func (s *ListLogSubscriptionsInput) SetNextToken(v string) *ListLogSubscriptionsInput {
12508	s.NextToken = &v
12509	return s
12510}
12511
12512type ListLogSubscriptionsOutput struct {
12513	_ struct{} `type:"structure"`
12514
12515	// A list of active LogSubscription objects for calling the AWS account.
12516	LogSubscriptions []*LogSubscription `type:"list"`
12517
12518	// The token for the next set of items to return.
12519	NextToken *string `type:"string"`
12520}
12521
12522// String returns the string representation
12523func (s ListLogSubscriptionsOutput) String() string {
12524	return awsutil.Prettify(s)
12525}
12526
12527// GoString returns the string representation
12528func (s ListLogSubscriptionsOutput) GoString() string {
12529	return s.String()
12530}
12531
12532// SetLogSubscriptions sets the LogSubscriptions field's value.
12533func (s *ListLogSubscriptionsOutput) SetLogSubscriptions(v []*LogSubscription) *ListLogSubscriptionsOutput {
12534	s.LogSubscriptions = v
12535	return s
12536}
12537
12538// SetNextToken sets the NextToken field's value.
12539func (s *ListLogSubscriptionsOutput) SetNextToken(v string) *ListLogSubscriptionsOutput {
12540	s.NextToken = &v
12541	return s
12542}
12543
12544type ListSchemaExtensionsInput struct {
12545	_ struct{} `type:"structure"`
12546
12547	// The identifier of the directory from which to retrieve the schema extension
12548	// information.
12549	//
12550	// DirectoryId is a required field
12551	DirectoryId *string `type:"string" required:"true"`
12552
12553	// The maximum number of items to return.
12554	Limit *int64 `type:"integer"`
12555
12556	// The ListSchemaExtensions.NextToken value from a previous call to ListSchemaExtensions.
12557	// Pass null if this is the first call.
12558	NextToken *string `type:"string"`
12559}
12560
12561// String returns the string representation
12562func (s ListSchemaExtensionsInput) String() string {
12563	return awsutil.Prettify(s)
12564}
12565
12566// GoString returns the string representation
12567func (s ListSchemaExtensionsInput) GoString() string {
12568	return s.String()
12569}
12570
12571// Validate inspects the fields of the type to determine if they are valid.
12572func (s *ListSchemaExtensionsInput) Validate() error {
12573	invalidParams := request.ErrInvalidParams{Context: "ListSchemaExtensionsInput"}
12574	if s.DirectoryId == nil {
12575		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12576	}
12577
12578	if invalidParams.Len() > 0 {
12579		return invalidParams
12580	}
12581	return nil
12582}
12583
12584// SetDirectoryId sets the DirectoryId field's value.
12585func (s *ListSchemaExtensionsInput) SetDirectoryId(v string) *ListSchemaExtensionsInput {
12586	s.DirectoryId = &v
12587	return s
12588}
12589
12590// SetLimit sets the Limit field's value.
12591func (s *ListSchemaExtensionsInput) SetLimit(v int64) *ListSchemaExtensionsInput {
12592	s.Limit = &v
12593	return s
12594}
12595
12596// SetNextToken sets the NextToken field's value.
12597func (s *ListSchemaExtensionsInput) SetNextToken(v string) *ListSchemaExtensionsInput {
12598	s.NextToken = &v
12599	return s
12600}
12601
12602type ListSchemaExtensionsOutput struct {
12603	_ struct{} `type:"structure"`
12604
12605	// If not null, more results are available. Pass this value for the NextToken
12606	// parameter in a subsequent call to ListSchemaExtensions to retrieve the next
12607	// set of items.
12608	NextToken *string `type:"string"`
12609
12610	// Information about the schema extensions applied to the directory.
12611	SchemaExtensionsInfo []*SchemaExtensionInfo `type:"list"`
12612}
12613
12614// String returns the string representation
12615func (s ListSchemaExtensionsOutput) String() string {
12616	return awsutil.Prettify(s)
12617}
12618
12619// GoString returns the string representation
12620func (s ListSchemaExtensionsOutput) GoString() string {
12621	return s.String()
12622}
12623
12624// SetNextToken sets the NextToken field's value.
12625func (s *ListSchemaExtensionsOutput) SetNextToken(v string) *ListSchemaExtensionsOutput {
12626	s.NextToken = &v
12627	return s
12628}
12629
12630// SetSchemaExtensionsInfo sets the SchemaExtensionsInfo field's value.
12631func (s *ListSchemaExtensionsOutput) SetSchemaExtensionsInfo(v []*SchemaExtensionInfo) *ListSchemaExtensionsOutput {
12632	s.SchemaExtensionsInfo = v
12633	return s
12634}
12635
12636type ListTagsForResourceInput struct {
12637	_ struct{} `type:"structure"`
12638
12639	// Reserved for future use.
12640	Limit *int64 `type:"integer"`
12641
12642	// Reserved for future use.
12643	NextToken *string `type:"string"`
12644
12645	// Identifier (ID) of the directory for which you want to retrieve tags.
12646	//
12647	// ResourceId is a required field
12648	ResourceId *string `type:"string" required:"true"`
12649}
12650
12651// String returns the string representation
12652func (s ListTagsForResourceInput) String() string {
12653	return awsutil.Prettify(s)
12654}
12655
12656// GoString returns the string representation
12657func (s ListTagsForResourceInput) GoString() string {
12658	return s.String()
12659}
12660
12661// Validate inspects the fields of the type to determine if they are valid.
12662func (s *ListTagsForResourceInput) Validate() error {
12663	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
12664	if s.ResourceId == nil {
12665		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
12666	}
12667
12668	if invalidParams.Len() > 0 {
12669		return invalidParams
12670	}
12671	return nil
12672}
12673
12674// SetLimit sets the Limit field's value.
12675func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
12676	s.Limit = &v
12677	return s
12678}
12679
12680// SetNextToken sets the NextToken field's value.
12681func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
12682	s.NextToken = &v
12683	return s
12684}
12685
12686// SetResourceId sets the ResourceId field's value.
12687func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput {
12688	s.ResourceId = &v
12689	return s
12690}
12691
12692type ListTagsForResourceOutput struct {
12693	_ struct{} `type:"structure"`
12694
12695	// Reserved for future use.
12696	NextToken *string `type:"string"`
12697
12698	// List of tags returned by the ListTagsForResource operation.
12699	Tags []*Tag `type:"list"`
12700}
12701
12702// String returns the string representation
12703func (s ListTagsForResourceOutput) String() string {
12704	return awsutil.Prettify(s)
12705}
12706
12707// GoString returns the string representation
12708func (s ListTagsForResourceOutput) GoString() string {
12709	return s.String()
12710}
12711
12712// SetNextToken sets the NextToken field's value.
12713func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
12714	s.NextToken = &v
12715	return s
12716}
12717
12718// SetTags sets the Tags field's value.
12719func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
12720	s.Tags = v
12721	return s
12722}
12723
12724// Represents a log subscription, which tracks real-time data from a chosen
12725// log group to a specified destination.
12726type LogSubscription struct {
12727	_ struct{} `type:"structure"`
12728
12729	// Identifier (ID) of the directory that you want to associate with the log
12730	// subscription.
12731	DirectoryId *string `type:"string"`
12732
12733	// The name of the log group.
12734	LogGroupName *string `min:"1" type:"string"`
12735
12736	// The date and time that the log subscription was created.
12737	SubscriptionCreatedDateTime *time.Time `type:"timestamp"`
12738}
12739
12740// String returns the string representation
12741func (s LogSubscription) String() string {
12742	return awsutil.Prettify(s)
12743}
12744
12745// GoString returns the string representation
12746func (s LogSubscription) GoString() string {
12747	return s.String()
12748}
12749
12750// SetDirectoryId sets the DirectoryId field's value.
12751func (s *LogSubscription) SetDirectoryId(v string) *LogSubscription {
12752	s.DirectoryId = &v
12753	return s
12754}
12755
12756// SetLogGroupName sets the LogGroupName field's value.
12757func (s *LogSubscription) SetLogGroupName(v string) *LogSubscription {
12758	s.LogGroupName = &v
12759	return s
12760}
12761
12762// SetSubscriptionCreatedDateTime sets the SubscriptionCreatedDateTime field's value.
12763func (s *LogSubscription) SetSubscriptionCreatedDateTime(v time.Time) *LogSubscription {
12764	s.SubscriptionCreatedDateTime = &v
12765	return s
12766}
12767
12768// Client authentication setup could not be completed because at least one valid
12769// certificate must be registered in the system.
12770type NoAvailableCertificateException struct {
12771	_            struct{}                  `type:"structure"`
12772	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12773
12774	// The descriptive message for the exception.
12775	Message_ *string `locationName:"Message" type:"string"`
12776
12777	// The AWS request identifier.
12778	RequestId *string `type:"string"`
12779}
12780
12781// String returns the string representation
12782func (s NoAvailableCertificateException) String() string {
12783	return awsutil.Prettify(s)
12784}
12785
12786// GoString returns the string representation
12787func (s NoAvailableCertificateException) GoString() string {
12788	return s.String()
12789}
12790
12791func newErrorNoAvailableCertificateException(v protocol.ResponseMetadata) error {
12792	return &NoAvailableCertificateException{
12793		RespMetadata: v,
12794	}
12795}
12796
12797// Code returns the exception type name.
12798func (s *NoAvailableCertificateException) Code() string {
12799	return "NoAvailableCertificateException"
12800}
12801
12802// Message returns the exception's message.
12803func (s *NoAvailableCertificateException) Message() string {
12804	if s.Message_ != nil {
12805		return *s.Message_
12806	}
12807	return ""
12808}
12809
12810// OrigErr always returns nil, satisfies awserr.Error interface.
12811func (s *NoAvailableCertificateException) OrigErr() error {
12812	return nil
12813}
12814
12815func (s *NoAvailableCertificateException) Error() string {
12816	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12817}
12818
12819// Status code returns the HTTP status code for the request's response error.
12820func (s *NoAvailableCertificateException) StatusCode() int {
12821	return s.RespMetadata.StatusCode
12822}
12823
12824// RequestID returns the service's response RequestID for request.
12825func (s *NoAvailableCertificateException) RequestID() string {
12826	return s.RespMetadata.RequestID
12827}
12828
12829// Exception encountered while trying to access your AWS organization.
12830type OrganizationsException struct {
12831	_            struct{}                  `type:"structure"`
12832	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12833
12834	// The descriptive message for the exception.
12835	Message_ *string `locationName:"Message" type:"string"`
12836
12837	// The AWS request identifier.
12838	RequestId *string `type:"string"`
12839}
12840
12841// String returns the string representation
12842func (s OrganizationsException) String() string {
12843	return awsutil.Prettify(s)
12844}
12845
12846// GoString returns the string representation
12847func (s OrganizationsException) GoString() string {
12848	return s.String()
12849}
12850
12851func newErrorOrganizationsException(v protocol.ResponseMetadata) error {
12852	return &OrganizationsException{
12853		RespMetadata: v,
12854	}
12855}
12856
12857// Code returns the exception type name.
12858func (s *OrganizationsException) Code() string {
12859	return "OrganizationsException"
12860}
12861
12862// Message returns the exception's message.
12863func (s *OrganizationsException) Message() string {
12864	if s.Message_ != nil {
12865		return *s.Message_
12866	}
12867	return ""
12868}
12869
12870// OrigErr always returns nil, satisfies awserr.Error interface.
12871func (s *OrganizationsException) OrigErr() error {
12872	return nil
12873}
12874
12875func (s *OrganizationsException) Error() string {
12876	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12877}
12878
12879// Status code returns the HTTP status code for the request's response error.
12880func (s *OrganizationsException) StatusCode() int {
12881	return s.RespMetadata.StatusCode
12882}
12883
12884// RequestID returns the service's response RequestID for request.
12885func (s *OrganizationsException) RequestID() string {
12886	return s.RespMetadata.RequestID
12887}
12888
12889// Describes the directory owner account details that have been shared to the
12890// directory consumer account.
12891type OwnerDirectoryDescription struct {
12892	_ struct{} `type:"structure"`
12893
12894	// Identifier of the directory owner account.
12895	AccountId *string `type:"string"`
12896
12897	// Identifier of the AWS Managed Microsoft AD directory in the directory owner
12898	// account.
12899	DirectoryId *string `type:"string"`
12900
12901	// IP address of the directory’s domain controllers.
12902	DnsIpAddrs []*string `type:"list"`
12903
12904	// A RadiusSettings object that contains information about the RADIUS server.
12905	RadiusSettings *RadiusSettings `type:"structure"`
12906
12907	// Information about the status of the RADIUS server.
12908	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
12909
12910	// Information about the VPC settings for the directory.
12911	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
12912}
12913
12914// String returns the string representation
12915func (s OwnerDirectoryDescription) String() string {
12916	return awsutil.Prettify(s)
12917}
12918
12919// GoString returns the string representation
12920func (s OwnerDirectoryDescription) GoString() string {
12921	return s.String()
12922}
12923
12924// SetAccountId sets the AccountId field's value.
12925func (s *OwnerDirectoryDescription) SetAccountId(v string) *OwnerDirectoryDescription {
12926	s.AccountId = &v
12927	return s
12928}
12929
12930// SetDirectoryId sets the DirectoryId field's value.
12931func (s *OwnerDirectoryDescription) SetDirectoryId(v string) *OwnerDirectoryDescription {
12932	s.DirectoryId = &v
12933	return s
12934}
12935
12936// SetDnsIpAddrs sets the DnsIpAddrs field's value.
12937func (s *OwnerDirectoryDescription) SetDnsIpAddrs(v []*string) *OwnerDirectoryDescription {
12938	s.DnsIpAddrs = v
12939	return s
12940}
12941
12942// SetRadiusSettings sets the RadiusSettings field's value.
12943func (s *OwnerDirectoryDescription) SetRadiusSettings(v *RadiusSettings) *OwnerDirectoryDescription {
12944	s.RadiusSettings = v
12945	return s
12946}
12947
12948// SetRadiusStatus sets the RadiusStatus field's value.
12949func (s *OwnerDirectoryDescription) SetRadiusStatus(v string) *OwnerDirectoryDescription {
12950	s.RadiusStatus = &v
12951	return s
12952}
12953
12954// SetVpcSettings sets the VpcSettings field's value.
12955func (s *OwnerDirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *OwnerDirectoryDescription {
12956	s.VpcSettings = v
12957	return s
12958}
12959
12960// Contains information about a Remote Authentication Dial In User Service (RADIUS)
12961// server.
12962type RadiusSettings struct {
12963	_ struct{} `type:"structure"`
12964
12965	// The protocol specified for your RADIUS endpoints.
12966	AuthenticationProtocol *string `type:"string" enum:"RadiusAuthenticationProtocol"`
12967
12968	// Not currently used.
12969	DisplayLabel *string `min:"1" type:"string"`
12970
12971	// The port that your RADIUS server is using for communications. Your on-premises
12972	// network must allow inbound traffic over this port from the AWS Directory
12973	// Service servers.
12974	RadiusPort *int64 `min:"1025" type:"integer"`
12975
12976	// The maximum number of times that communication with the RADIUS server is
12977	// attempted.
12978	RadiusRetries *int64 `type:"integer"`
12979
12980	// An array of strings that contains the fully qualified domain name (FQDN)
12981	// or IP addresses of the RADIUS server endpoints, or the FQDN or IP addresses
12982	// of your RADIUS server load balancer.
12983	RadiusServers []*string `type:"list"`
12984
12985	// The amount of time, in seconds, to wait for the RADIUS server to respond.
12986	RadiusTimeout *int64 `min:"1" type:"integer"`
12987
12988	// Required for enabling RADIUS on the directory.
12989	SharedSecret *string `min:"8" type:"string" sensitive:"true"`
12990
12991	// Not currently used.
12992	UseSameUsername *bool `type:"boolean"`
12993}
12994
12995// String returns the string representation
12996func (s RadiusSettings) String() string {
12997	return awsutil.Prettify(s)
12998}
12999
13000// GoString returns the string representation
13001func (s RadiusSettings) GoString() string {
13002	return s.String()
13003}
13004
13005// Validate inspects the fields of the type to determine if they are valid.
13006func (s *RadiusSettings) Validate() error {
13007	invalidParams := request.ErrInvalidParams{Context: "RadiusSettings"}
13008	if s.DisplayLabel != nil && len(*s.DisplayLabel) < 1 {
13009		invalidParams.Add(request.NewErrParamMinLen("DisplayLabel", 1))
13010	}
13011	if s.RadiusPort != nil && *s.RadiusPort < 1025 {
13012		invalidParams.Add(request.NewErrParamMinValue("RadiusPort", 1025))
13013	}
13014	if s.RadiusTimeout != nil && *s.RadiusTimeout < 1 {
13015		invalidParams.Add(request.NewErrParamMinValue("RadiusTimeout", 1))
13016	}
13017	if s.SharedSecret != nil && len(*s.SharedSecret) < 8 {
13018		invalidParams.Add(request.NewErrParamMinLen("SharedSecret", 8))
13019	}
13020
13021	if invalidParams.Len() > 0 {
13022		return invalidParams
13023	}
13024	return nil
13025}
13026
13027// SetAuthenticationProtocol sets the AuthenticationProtocol field's value.
13028func (s *RadiusSettings) SetAuthenticationProtocol(v string) *RadiusSettings {
13029	s.AuthenticationProtocol = &v
13030	return s
13031}
13032
13033// SetDisplayLabel sets the DisplayLabel field's value.
13034func (s *RadiusSettings) SetDisplayLabel(v string) *RadiusSettings {
13035	s.DisplayLabel = &v
13036	return s
13037}
13038
13039// SetRadiusPort sets the RadiusPort field's value.
13040func (s *RadiusSettings) SetRadiusPort(v int64) *RadiusSettings {
13041	s.RadiusPort = &v
13042	return s
13043}
13044
13045// SetRadiusRetries sets the RadiusRetries field's value.
13046func (s *RadiusSettings) SetRadiusRetries(v int64) *RadiusSettings {
13047	s.RadiusRetries = &v
13048	return s
13049}
13050
13051// SetRadiusServers sets the RadiusServers field's value.
13052func (s *RadiusSettings) SetRadiusServers(v []*string) *RadiusSettings {
13053	s.RadiusServers = v
13054	return s
13055}
13056
13057// SetRadiusTimeout sets the RadiusTimeout field's value.
13058func (s *RadiusSettings) SetRadiusTimeout(v int64) *RadiusSettings {
13059	s.RadiusTimeout = &v
13060	return s
13061}
13062
13063// SetSharedSecret sets the SharedSecret field's value.
13064func (s *RadiusSettings) SetSharedSecret(v string) *RadiusSettings {
13065	s.SharedSecret = &v
13066	return s
13067}
13068
13069// SetUseSameUsername sets the UseSameUsername field's value.
13070func (s *RadiusSettings) SetUseSameUsername(v bool) *RadiusSettings {
13071	s.UseSameUsername = &v
13072	return s
13073}
13074
13075// The replicated Region information for a directory.
13076type RegionDescription struct {
13077	_ struct{} `type:"structure"`
13078
13079	// The desired number of domain controllers in the specified Region for the
13080	// specified directory.
13081	DesiredNumberOfDomainControllers *int64 `min:"2" type:"integer"`
13082
13083	// The identifier of the directory.
13084	DirectoryId *string `type:"string"`
13085
13086	// The date and time that the Region description was last updated.
13087	LastUpdatedDateTime *time.Time `type:"timestamp"`
13088
13089	// Specifies when the Region replication began.
13090	LaunchTime *time.Time `type:"timestamp"`
13091
13092	// The name of the Region. For example, us-east-1.
13093	RegionName *string `min:"8" type:"string"`
13094
13095	// Specifies whether the Region is the primary Region or an additional Region.
13096	RegionType *string `type:"string" enum:"RegionType"`
13097
13098	// The status of the replication process for the specified Region.
13099	Status *string `type:"string" enum:"DirectoryStage"`
13100
13101	// The date and time that the Region status was last updated.
13102	StatusLastUpdatedDateTime *time.Time `type:"timestamp"`
13103
13104	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
13105	VpcSettings *DirectoryVpcSettings `type:"structure"`
13106}
13107
13108// String returns the string representation
13109func (s RegionDescription) String() string {
13110	return awsutil.Prettify(s)
13111}
13112
13113// GoString returns the string representation
13114func (s RegionDescription) GoString() string {
13115	return s.String()
13116}
13117
13118// SetDesiredNumberOfDomainControllers sets the DesiredNumberOfDomainControllers field's value.
13119func (s *RegionDescription) SetDesiredNumberOfDomainControllers(v int64) *RegionDescription {
13120	s.DesiredNumberOfDomainControllers = &v
13121	return s
13122}
13123
13124// SetDirectoryId sets the DirectoryId field's value.
13125func (s *RegionDescription) SetDirectoryId(v string) *RegionDescription {
13126	s.DirectoryId = &v
13127	return s
13128}
13129
13130// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
13131func (s *RegionDescription) SetLastUpdatedDateTime(v time.Time) *RegionDescription {
13132	s.LastUpdatedDateTime = &v
13133	return s
13134}
13135
13136// SetLaunchTime sets the LaunchTime field's value.
13137func (s *RegionDescription) SetLaunchTime(v time.Time) *RegionDescription {
13138	s.LaunchTime = &v
13139	return s
13140}
13141
13142// SetRegionName sets the RegionName field's value.
13143func (s *RegionDescription) SetRegionName(v string) *RegionDescription {
13144	s.RegionName = &v
13145	return s
13146}
13147
13148// SetRegionType sets the RegionType field's value.
13149func (s *RegionDescription) SetRegionType(v string) *RegionDescription {
13150	s.RegionType = &v
13151	return s
13152}
13153
13154// SetStatus sets the Status field's value.
13155func (s *RegionDescription) SetStatus(v string) *RegionDescription {
13156	s.Status = &v
13157	return s
13158}
13159
13160// SetStatusLastUpdatedDateTime sets the StatusLastUpdatedDateTime field's value.
13161func (s *RegionDescription) SetStatusLastUpdatedDateTime(v time.Time) *RegionDescription {
13162	s.StatusLastUpdatedDateTime = &v
13163	return s
13164}
13165
13166// SetVpcSettings sets the VpcSettings field's value.
13167func (s *RegionDescription) SetVpcSettings(v *DirectoryVpcSettings) *RegionDescription {
13168	s.VpcSettings = v
13169	return s
13170}
13171
13172// You have reached the limit for maximum number of simultaneous Region replications
13173// per directory.
13174type RegionLimitExceededException struct {
13175	_            struct{}                  `type:"structure"`
13176	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13177
13178	// The descriptive message for the exception.
13179	Message_ *string `locationName:"Message" type:"string"`
13180
13181	// The AWS request identifier.
13182	RequestId *string `type:"string"`
13183}
13184
13185// String returns the string representation
13186func (s RegionLimitExceededException) String() string {
13187	return awsutil.Prettify(s)
13188}
13189
13190// GoString returns the string representation
13191func (s RegionLimitExceededException) GoString() string {
13192	return s.String()
13193}
13194
13195func newErrorRegionLimitExceededException(v protocol.ResponseMetadata) error {
13196	return &RegionLimitExceededException{
13197		RespMetadata: v,
13198	}
13199}
13200
13201// Code returns the exception type name.
13202func (s *RegionLimitExceededException) Code() string {
13203	return "RegionLimitExceededException"
13204}
13205
13206// Message returns the exception's message.
13207func (s *RegionLimitExceededException) Message() string {
13208	if s.Message_ != nil {
13209		return *s.Message_
13210	}
13211	return ""
13212}
13213
13214// OrigErr always returns nil, satisfies awserr.Error interface.
13215func (s *RegionLimitExceededException) OrigErr() error {
13216	return nil
13217}
13218
13219func (s *RegionLimitExceededException) Error() string {
13220	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13221}
13222
13223// Status code returns the HTTP status code for the request's response error.
13224func (s *RegionLimitExceededException) StatusCode() int {
13225	return s.RespMetadata.StatusCode
13226}
13227
13228// RequestID returns the service's response RequestID for request.
13229func (s *RegionLimitExceededException) RequestID() string {
13230	return s.RespMetadata.RequestID
13231}
13232
13233// Provides information about the Regions that are configured for multi-Region
13234// replication.
13235type RegionsInfo struct {
13236	_ struct{} `type:"structure"`
13237
13238	// Lists the Regions where the directory has been replicated, excluding the
13239	// primary Region.
13240	AdditionalRegions []*string `type:"list"`
13241
13242	// The Region where the AWS Managed Microsoft AD directory was originally created.
13243	PrimaryRegion *string `min:"8" type:"string"`
13244}
13245
13246// String returns the string representation
13247func (s RegionsInfo) String() string {
13248	return awsutil.Prettify(s)
13249}
13250
13251// GoString returns the string representation
13252func (s RegionsInfo) GoString() string {
13253	return s.String()
13254}
13255
13256// SetAdditionalRegions sets the AdditionalRegions field's value.
13257func (s *RegionsInfo) SetAdditionalRegions(v []*string) *RegionsInfo {
13258	s.AdditionalRegions = v
13259	return s
13260}
13261
13262// SetPrimaryRegion sets the PrimaryRegion field's value.
13263func (s *RegionsInfo) SetPrimaryRegion(v string) *RegionsInfo {
13264	s.PrimaryRegion = &v
13265	return s
13266}
13267
13268type RegisterCertificateInput struct {
13269	_ struct{} `type:"structure"`
13270
13271	// The certificate PEM string that needs to be registered.
13272	//
13273	// CertificateData is a required field
13274	CertificateData *string `min:"1" type:"string" required:"true"`
13275
13276	// A ClientCertAuthSettings object that contains client certificate authentication
13277	// settings.
13278	ClientCertAuthSettings *ClientCertAuthSettings `type:"structure"`
13279
13280	// The identifier of the directory.
13281	//
13282	// DirectoryId is a required field
13283	DirectoryId *string `type:"string" required:"true"`
13284
13285	// The function that the registered certificate performs. Valid values include
13286	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
13287	Type *string `type:"string" enum:"CertificateType"`
13288}
13289
13290// String returns the string representation
13291func (s RegisterCertificateInput) String() string {
13292	return awsutil.Prettify(s)
13293}
13294
13295// GoString returns the string representation
13296func (s RegisterCertificateInput) GoString() string {
13297	return s.String()
13298}
13299
13300// Validate inspects the fields of the type to determine if they are valid.
13301func (s *RegisterCertificateInput) Validate() error {
13302	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
13303	if s.CertificateData == nil {
13304		invalidParams.Add(request.NewErrParamRequired("CertificateData"))
13305	}
13306	if s.CertificateData != nil && len(*s.CertificateData) < 1 {
13307		invalidParams.Add(request.NewErrParamMinLen("CertificateData", 1))
13308	}
13309	if s.DirectoryId == nil {
13310		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13311	}
13312	if s.ClientCertAuthSettings != nil {
13313		if err := s.ClientCertAuthSettings.Validate(); err != nil {
13314			invalidParams.AddNested("ClientCertAuthSettings", err.(request.ErrInvalidParams))
13315		}
13316	}
13317
13318	if invalidParams.Len() > 0 {
13319		return invalidParams
13320	}
13321	return nil
13322}
13323
13324// SetCertificateData sets the CertificateData field's value.
13325func (s *RegisterCertificateInput) SetCertificateData(v string) *RegisterCertificateInput {
13326	s.CertificateData = &v
13327	return s
13328}
13329
13330// SetClientCertAuthSettings sets the ClientCertAuthSettings field's value.
13331func (s *RegisterCertificateInput) SetClientCertAuthSettings(v *ClientCertAuthSettings) *RegisterCertificateInput {
13332	s.ClientCertAuthSettings = v
13333	return s
13334}
13335
13336// SetDirectoryId sets the DirectoryId field's value.
13337func (s *RegisterCertificateInput) SetDirectoryId(v string) *RegisterCertificateInput {
13338	s.DirectoryId = &v
13339	return s
13340}
13341
13342// SetType sets the Type field's value.
13343func (s *RegisterCertificateInput) SetType(v string) *RegisterCertificateInput {
13344	s.Type = &v
13345	return s
13346}
13347
13348type RegisterCertificateOutput struct {
13349	_ struct{} `type:"structure"`
13350
13351	// The identifier of the certificate.
13352	CertificateId *string `type:"string"`
13353}
13354
13355// String returns the string representation
13356func (s RegisterCertificateOutput) String() string {
13357	return awsutil.Prettify(s)
13358}
13359
13360// GoString returns the string representation
13361func (s RegisterCertificateOutput) GoString() string {
13362	return s.String()
13363}
13364
13365// SetCertificateId sets the CertificateId field's value.
13366func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
13367	s.CertificateId = &v
13368	return s
13369}
13370
13371// Registers a new event topic.
13372type RegisterEventTopicInput struct {
13373	_ struct{} `type:"structure"`
13374
13375	// The Directory ID that will publish status messages to the SNS topic.
13376	//
13377	// DirectoryId is a required field
13378	DirectoryId *string `type:"string" required:"true"`
13379
13380	// The SNS topic name to which the directory will publish status messages. This
13381	// SNS topic must be in the same region as the specified Directory ID.
13382	//
13383	// TopicName is a required field
13384	TopicName *string `min:"1" type:"string" required:"true"`
13385}
13386
13387// String returns the string representation
13388func (s RegisterEventTopicInput) String() string {
13389	return awsutil.Prettify(s)
13390}
13391
13392// GoString returns the string representation
13393func (s RegisterEventTopicInput) GoString() string {
13394	return s.String()
13395}
13396
13397// Validate inspects the fields of the type to determine if they are valid.
13398func (s *RegisterEventTopicInput) Validate() error {
13399	invalidParams := request.ErrInvalidParams{Context: "RegisterEventTopicInput"}
13400	if s.DirectoryId == nil {
13401		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13402	}
13403	if s.TopicName == nil {
13404		invalidParams.Add(request.NewErrParamRequired("TopicName"))
13405	}
13406	if s.TopicName != nil && len(*s.TopicName) < 1 {
13407		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
13408	}
13409
13410	if invalidParams.Len() > 0 {
13411		return invalidParams
13412	}
13413	return nil
13414}
13415
13416// SetDirectoryId sets the DirectoryId field's value.
13417func (s *RegisterEventTopicInput) SetDirectoryId(v string) *RegisterEventTopicInput {
13418	s.DirectoryId = &v
13419	return s
13420}
13421
13422// SetTopicName sets the TopicName field's value.
13423func (s *RegisterEventTopicInput) SetTopicName(v string) *RegisterEventTopicInput {
13424	s.TopicName = &v
13425	return s
13426}
13427
13428// The result of a RegisterEventTopic request.
13429type RegisterEventTopicOutput struct {
13430	_ struct{} `type:"structure"`
13431}
13432
13433// String returns the string representation
13434func (s RegisterEventTopicOutput) String() string {
13435	return awsutil.Prettify(s)
13436}
13437
13438// GoString returns the string representation
13439func (s RegisterEventTopicOutput) GoString() string {
13440	return s.String()
13441}
13442
13443type RejectSharedDirectoryInput struct {
13444	_ struct{} `type:"structure"`
13445
13446	// Identifier of the shared directory in the directory consumer account. This
13447	// identifier is different for each directory owner account.
13448	//
13449	// SharedDirectoryId is a required field
13450	SharedDirectoryId *string `type:"string" required:"true"`
13451}
13452
13453// String returns the string representation
13454func (s RejectSharedDirectoryInput) String() string {
13455	return awsutil.Prettify(s)
13456}
13457
13458// GoString returns the string representation
13459func (s RejectSharedDirectoryInput) GoString() string {
13460	return s.String()
13461}
13462
13463// Validate inspects the fields of the type to determine if they are valid.
13464func (s *RejectSharedDirectoryInput) Validate() error {
13465	invalidParams := request.ErrInvalidParams{Context: "RejectSharedDirectoryInput"}
13466	if s.SharedDirectoryId == nil {
13467		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
13468	}
13469
13470	if invalidParams.Len() > 0 {
13471		return invalidParams
13472	}
13473	return nil
13474}
13475
13476// SetSharedDirectoryId sets the SharedDirectoryId field's value.
13477func (s *RejectSharedDirectoryInput) SetSharedDirectoryId(v string) *RejectSharedDirectoryInput {
13478	s.SharedDirectoryId = &v
13479	return s
13480}
13481
13482type RejectSharedDirectoryOutput struct {
13483	_ struct{} `type:"structure"`
13484
13485	// Identifier of the shared directory in the directory consumer account.
13486	SharedDirectoryId *string `type:"string"`
13487}
13488
13489// String returns the string representation
13490func (s RejectSharedDirectoryOutput) String() string {
13491	return awsutil.Prettify(s)
13492}
13493
13494// GoString returns the string representation
13495func (s RejectSharedDirectoryOutput) GoString() string {
13496	return s.String()
13497}
13498
13499// SetSharedDirectoryId sets the SharedDirectoryId field's value.
13500func (s *RejectSharedDirectoryOutput) SetSharedDirectoryId(v string) *RejectSharedDirectoryOutput {
13501	s.SharedDirectoryId = &v
13502	return s
13503}
13504
13505type RemoveIpRoutesInput struct {
13506	_ struct{} `type:"structure"`
13507
13508	// IP address blocks that you want to remove.
13509	//
13510	// CidrIps is a required field
13511	CidrIps []*string `type:"list" required:"true"`
13512
13513	// Identifier (ID) of the directory from which you want to remove the IP addresses.
13514	//
13515	// DirectoryId is a required field
13516	DirectoryId *string `type:"string" required:"true"`
13517}
13518
13519// String returns the string representation
13520func (s RemoveIpRoutesInput) String() string {
13521	return awsutil.Prettify(s)
13522}
13523
13524// GoString returns the string representation
13525func (s RemoveIpRoutesInput) GoString() string {
13526	return s.String()
13527}
13528
13529// Validate inspects the fields of the type to determine if they are valid.
13530func (s *RemoveIpRoutesInput) Validate() error {
13531	invalidParams := request.ErrInvalidParams{Context: "RemoveIpRoutesInput"}
13532	if s.CidrIps == nil {
13533		invalidParams.Add(request.NewErrParamRequired("CidrIps"))
13534	}
13535	if s.DirectoryId == nil {
13536		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13537	}
13538
13539	if invalidParams.Len() > 0 {
13540		return invalidParams
13541	}
13542	return nil
13543}
13544
13545// SetCidrIps sets the CidrIps field's value.
13546func (s *RemoveIpRoutesInput) SetCidrIps(v []*string) *RemoveIpRoutesInput {
13547	s.CidrIps = v
13548	return s
13549}
13550
13551// SetDirectoryId sets the DirectoryId field's value.
13552func (s *RemoveIpRoutesInput) SetDirectoryId(v string) *RemoveIpRoutesInput {
13553	s.DirectoryId = &v
13554	return s
13555}
13556
13557type RemoveIpRoutesOutput struct {
13558	_ struct{} `type:"structure"`
13559}
13560
13561// String returns the string representation
13562func (s RemoveIpRoutesOutput) String() string {
13563	return awsutil.Prettify(s)
13564}
13565
13566// GoString returns the string representation
13567func (s RemoveIpRoutesOutput) GoString() string {
13568	return s.String()
13569}
13570
13571type RemoveRegionInput struct {
13572	_ struct{} `type:"structure"`
13573
13574	// The identifier of the directory for which you want to remove Region replication.
13575	//
13576	// DirectoryId is a required field
13577	DirectoryId *string `type:"string" required:"true"`
13578}
13579
13580// String returns the string representation
13581func (s RemoveRegionInput) String() string {
13582	return awsutil.Prettify(s)
13583}
13584
13585// GoString returns the string representation
13586func (s RemoveRegionInput) GoString() string {
13587	return s.String()
13588}
13589
13590// Validate inspects the fields of the type to determine if they are valid.
13591func (s *RemoveRegionInput) Validate() error {
13592	invalidParams := request.ErrInvalidParams{Context: "RemoveRegionInput"}
13593	if s.DirectoryId == nil {
13594		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13595	}
13596
13597	if invalidParams.Len() > 0 {
13598		return invalidParams
13599	}
13600	return nil
13601}
13602
13603// SetDirectoryId sets the DirectoryId field's value.
13604func (s *RemoveRegionInput) SetDirectoryId(v string) *RemoveRegionInput {
13605	s.DirectoryId = &v
13606	return s
13607}
13608
13609type RemoveRegionOutput struct {
13610	_ struct{} `type:"structure"`
13611}
13612
13613// String returns the string representation
13614func (s RemoveRegionOutput) String() string {
13615	return awsutil.Prettify(s)
13616}
13617
13618// GoString returns the string representation
13619func (s RemoveRegionOutput) GoString() string {
13620	return s.String()
13621}
13622
13623type RemoveTagsFromResourceInput struct {
13624	_ struct{} `type:"structure"`
13625
13626	// Identifier (ID) of the directory from which to remove the tag.
13627	//
13628	// ResourceId is a required field
13629	ResourceId *string `type:"string" required:"true"`
13630
13631	// The tag key (name) of the tag to be removed.
13632	//
13633	// TagKeys is a required field
13634	TagKeys []*string `type:"list" required:"true"`
13635}
13636
13637// String returns the string representation
13638func (s RemoveTagsFromResourceInput) String() string {
13639	return awsutil.Prettify(s)
13640}
13641
13642// GoString returns the string representation
13643func (s RemoveTagsFromResourceInput) GoString() string {
13644	return s.String()
13645}
13646
13647// Validate inspects the fields of the type to determine if they are valid.
13648func (s *RemoveTagsFromResourceInput) Validate() error {
13649	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
13650	if s.ResourceId == nil {
13651		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
13652	}
13653	if s.TagKeys == nil {
13654		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
13655	}
13656
13657	if invalidParams.Len() > 0 {
13658		return invalidParams
13659	}
13660	return nil
13661}
13662
13663// SetResourceId sets the ResourceId field's value.
13664func (s *RemoveTagsFromResourceInput) SetResourceId(v string) *RemoveTagsFromResourceInput {
13665	s.ResourceId = &v
13666	return s
13667}
13668
13669// SetTagKeys sets the TagKeys field's value.
13670func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
13671	s.TagKeys = v
13672	return s
13673}
13674
13675type RemoveTagsFromResourceOutput struct {
13676	_ struct{} `type:"structure"`
13677}
13678
13679// String returns the string representation
13680func (s RemoveTagsFromResourceOutput) String() string {
13681	return awsutil.Prettify(s)
13682}
13683
13684// GoString returns the string representation
13685func (s RemoveTagsFromResourceOutput) GoString() string {
13686	return s.String()
13687}
13688
13689type ResetUserPasswordInput struct {
13690	_ struct{} `type:"structure"`
13691
13692	// Identifier of the AWS Managed Microsoft AD or Simple AD directory in which
13693	// the user resides.
13694	//
13695	// DirectoryId is a required field
13696	DirectoryId *string `type:"string" required:"true"`
13697
13698	// The new password that will be reset.
13699	//
13700	// NewPassword is a required field
13701	NewPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
13702
13703	// The user name of the user whose password will be reset.
13704	//
13705	// UserName is a required field
13706	UserName *string `min:"1" type:"string" required:"true"`
13707}
13708
13709// String returns the string representation
13710func (s ResetUserPasswordInput) String() string {
13711	return awsutil.Prettify(s)
13712}
13713
13714// GoString returns the string representation
13715func (s ResetUserPasswordInput) GoString() string {
13716	return s.String()
13717}
13718
13719// Validate inspects the fields of the type to determine if they are valid.
13720func (s *ResetUserPasswordInput) Validate() error {
13721	invalidParams := request.ErrInvalidParams{Context: "ResetUserPasswordInput"}
13722	if s.DirectoryId == nil {
13723		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13724	}
13725	if s.NewPassword == nil {
13726		invalidParams.Add(request.NewErrParamRequired("NewPassword"))
13727	}
13728	if s.NewPassword != nil && len(*s.NewPassword) < 1 {
13729		invalidParams.Add(request.NewErrParamMinLen("NewPassword", 1))
13730	}
13731	if s.UserName == nil {
13732		invalidParams.Add(request.NewErrParamRequired("UserName"))
13733	}
13734	if s.UserName != nil && len(*s.UserName) < 1 {
13735		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
13736	}
13737
13738	if invalidParams.Len() > 0 {
13739		return invalidParams
13740	}
13741	return nil
13742}
13743
13744// SetDirectoryId sets the DirectoryId field's value.
13745func (s *ResetUserPasswordInput) SetDirectoryId(v string) *ResetUserPasswordInput {
13746	s.DirectoryId = &v
13747	return s
13748}
13749
13750// SetNewPassword sets the NewPassword field's value.
13751func (s *ResetUserPasswordInput) SetNewPassword(v string) *ResetUserPasswordInput {
13752	s.NewPassword = &v
13753	return s
13754}
13755
13756// SetUserName sets the UserName field's value.
13757func (s *ResetUserPasswordInput) SetUserName(v string) *ResetUserPasswordInput {
13758	s.UserName = &v
13759	return s
13760}
13761
13762type ResetUserPasswordOutput struct {
13763	_ struct{} `type:"structure"`
13764}
13765
13766// String returns the string representation
13767func (s ResetUserPasswordOutput) String() string {
13768	return awsutil.Prettify(s)
13769}
13770
13771// GoString returns the string representation
13772func (s ResetUserPasswordOutput) GoString() string {
13773	return s.String()
13774}
13775
13776// An object representing the inputs for the RestoreFromSnapshot operation.
13777type RestoreFromSnapshotInput struct {
13778	_ struct{} `type:"structure"`
13779
13780	// The identifier of the snapshot to restore from.
13781	//
13782	// SnapshotId is a required field
13783	SnapshotId *string `type:"string" required:"true"`
13784}
13785
13786// String returns the string representation
13787func (s RestoreFromSnapshotInput) String() string {
13788	return awsutil.Prettify(s)
13789}
13790
13791// GoString returns the string representation
13792func (s RestoreFromSnapshotInput) GoString() string {
13793	return s.String()
13794}
13795
13796// Validate inspects the fields of the type to determine if they are valid.
13797func (s *RestoreFromSnapshotInput) Validate() error {
13798	invalidParams := request.ErrInvalidParams{Context: "RestoreFromSnapshotInput"}
13799	if s.SnapshotId == nil {
13800		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
13801	}
13802
13803	if invalidParams.Len() > 0 {
13804		return invalidParams
13805	}
13806	return nil
13807}
13808
13809// SetSnapshotId sets the SnapshotId field's value.
13810func (s *RestoreFromSnapshotInput) SetSnapshotId(v string) *RestoreFromSnapshotInput {
13811	s.SnapshotId = &v
13812	return s
13813}
13814
13815// Contains the results of the RestoreFromSnapshot operation.
13816type RestoreFromSnapshotOutput struct {
13817	_ struct{} `type:"structure"`
13818}
13819
13820// String returns the string representation
13821func (s RestoreFromSnapshotOutput) String() string {
13822	return awsutil.Prettify(s)
13823}
13824
13825// GoString returns the string representation
13826func (s RestoreFromSnapshotOutput) GoString() string {
13827	return s.String()
13828}
13829
13830// Information about a schema extension.
13831type SchemaExtensionInfo struct {
13832	_ struct{} `type:"structure"`
13833
13834	// A description of the schema extension.
13835	Description *string `type:"string"`
13836
13837	// The identifier of the directory to which the schema extension is applied.
13838	DirectoryId *string `type:"string"`
13839
13840	// The date and time that the schema extension was completed.
13841	EndDateTime *time.Time `type:"timestamp"`
13842
13843	// The identifier of the schema extension.
13844	SchemaExtensionId *string `type:"string"`
13845
13846	// The current status of the schema extension.
13847	SchemaExtensionStatus *string `type:"string" enum:"SchemaExtensionStatus"`
13848
13849	// The reason for the SchemaExtensionStatus.
13850	SchemaExtensionStatusReason *string `type:"string"`
13851
13852	// The date and time that the schema extension started being applied to the
13853	// directory.
13854	StartDateTime *time.Time `type:"timestamp"`
13855}
13856
13857// String returns the string representation
13858func (s SchemaExtensionInfo) String() string {
13859	return awsutil.Prettify(s)
13860}
13861
13862// GoString returns the string representation
13863func (s SchemaExtensionInfo) GoString() string {
13864	return s.String()
13865}
13866
13867// SetDescription sets the Description field's value.
13868func (s *SchemaExtensionInfo) SetDescription(v string) *SchemaExtensionInfo {
13869	s.Description = &v
13870	return s
13871}
13872
13873// SetDirectoryId sets the DirectoryId field's value.
13874func (s *SchemaExtensionInfo) SetDirectoryId(v string) *SchemaExtensionInfo {
13875	s.DirectoryId = &v
13876	return s
13877}
13878
13879// SetEndDateTime sets the EndDateTime field's value.
13880func (s *SchemaExtensionInfo) SetEndDateTime(v time.Time) *SchemaExtensionInfo {
13881	s.EndDateTime = &v
13882	return s
13883}
13884
13885// SetSchemaExtensionId sets the SchemaExtensionId field's value.
13886func (s *SchemaExtensionInfo) SetSchemaExtensionId(v string) *SchemaExtensionInfo {
13887	s.SchemaExtensionId = &v
13888	return s
13889}
13890
13891// SetSchemaExtensionStatus sets the SchemaExtensionStatus field's value.
13892func (s *SchemaExtensionInfo) SetSchemaExtensionStatus(v string) *SchemaExtensionInfo {
13893	s.SchemaExtensionStatus = &v
13894	return s
13895}
13896
13897// SetSchemaExtensionStatusReason sets the SchemaExtensionStatusReason field's value.
13898func (s *SchemaExtensionInfo) SetSchemaExtensionStatusReason(v string) *SchemaExtensionInfo {
13899	s.SchemaExtensionStatusReason = &v
13900	return s
13901}
13902
13903// SetStartDateTime sets the StartDateTime field's value.
13904func (s *SchemaExtensionInfo) SetStartDateTime(v time.Time) *SchemaExtensionInfo {
13905	s.StartDateTime = &v
13906	return s
13907}
13908
13909// An exception has occurred in AWS Directory Service.
13910type ServiceException struct {
13911	_            struct{}                  `type:"structure"`
13912	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13913
13914	// The descriptive message for the exception.
13915	Message_ *string `locationName:"Message" type:"string"`
13916
13917	// The AWS request identifier.
13918	RequestId *string `type:"string"`
13919}
13920
13921// String returns the string representation
13922func (s ServiceException) String() string {
13923	return awsutil.Prettify(s)
13924}
13925
13926// GoString returns the string representation
13927func (s ServiceException) GoString() string {
13928	return s.String()
13929}
13930
13931func newErrorServiceException(v protocol.ResponseMetadata) error {
13932	return &ServiceException{
13933		RespMetadata: v,
13934	}
13935}
13936
13937// Code returns the exception type name.
13938func (s *ServiceException) Code() string {
13939	return "ServiceException"
13940}
13941
13942// Message returns the exception's message.
13943func (s *ServiceException) Message() string {
13944	if s.Message_ != nil {
13945		return *s.Message_
13946	}
13947	return ""
13948}
13949
13950// OrigErr always returns nil, satisfies awserr.Error interface.
13951func (s *ServiceException) OrigErr() error {
13952	return nil
13953}
13954
13955func (s *ServiceException) Error() string {
13956	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13957}
13958
13959// Status code returns the HTTP status code for the request's response error.
13960func (s *ServiceException) StatusCode() int {
13961	return s.RespMetadata.StatusCode
13962}
13963
13964// RequestID returns the service's response RequestID for request.
13965func (s *ServiceException) RequestID() string {
13966	return s.RespMetadata.RequestID
13967}
13968
13969type ShareDirectoryInput struct {
13970	_ struct{} `type:"structure"`
13971
13972	// Identifier of the AWS Managed Microsoft AD directory that you want to share
13973	// with other AWS accounts.
13974	//
13975	// DirectoryId is a required field
13976	DirectoryId *string `type:"string" required:"true"`
13977
13978	// The method used when sharing a directory to determine whether the directory
13979	// should be shared within your AWS organization (ORGANIZATIONS) or with any
13980	// AWS account by sending a directory sharing request (HANDSHAKE).
13981	//
13982	// ShareMethod is a required field
13983	ShareMethod *string `type:"string" required:"true" enum:"ShareMethod"`
13984
13985	// A directory share request that is sent by the directory owner to the directory
13986	// consumer. The request includes a typed message to help the directory consumer
13987	// administrator determine whether to approve or reject the share invitation.
13988	ShareNotes *string `type:"string" sensitive:"true"`
13989
13990	// Identifier for the directory consumer account with whom the directory is
13991	// to be shared.
13992	//
13993	// ShareTarget is a required field
13994	ShareTarget *ShareTarget `type:"structure" required:"true"`
13995}
13996
13997// String returns the string representation
13998func (s ShareDirectoryInput) String() string {
13999	return awsutil.Prettify(s)
14000}
14001
14002// GoString returns the string representation
14003func (s ShareDirectoryInput) GoString() string {
14004	return s.String()
14005}
14006
14007// Validate inspects the fields of the type to determine if they are valid.
14008func (s *ShareDirectoryInput) Validate() error {
14009	invalidParams := request.ErrInvalidParams{Context: "ShareDirectoryInput"}
14010	if s.DirectoryId == nil {
14011		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
14012	}
14013	if s.ShareMethod == nil {
14014		invalidParams.Add(request.NewErrParamRequired("ShareMethod"))
14015	}
14016	if s.ShareTarget == nil {
14017		invalidParams.Add(request.NewErrParamRequired("ShareTarget"))
14018	}
14019	if s.ShareTarget != nil {
14020		if err := s.ShareTarget.Validate(); err != nil {
14021			invalidParams.AddNested("ShareTarget", err.(request.ErrInvalidParams))
14022		}
14023	}
14024
14025	if invalidParams.Len() > 0 {
14026		return invalidParams
14027	}
14028	return nil
14029}
14030
14031// SetDirectoryId sets the DirectoryId field's value.
14032func (s *ShareDirectoryInput) SetDirectoryId(v string) *ShareDirectoryInput {
14033	s.DirectoryId = &v
14034	return s
14035}
14036
14037// SetShareMethod sets the ShareMethod field's value.
14038func (s *ShareDirectoryInput) SetShareMethod(v string) *ShareDirectoryInput {
14039	s.ShareMethod = &v
14040	return s
14041}
14042
14043// SetShareNotes sets the ShareNotes field's value.
14044func (s *ShareDirectoryInput) SetShareNotes(v string) *ShareDirectoryInput {
14045	s.ShareNotes = &v
14046	return s
14047}
14048
14049// SetShareTarget sets the ShareTarget field's value.
14050func (s *ShareDirectoryInput) SetShareTarget(v *ShareTarget) *ShareDirectoryInput {
14051	s.ShareTarget = v
14052	return s
14053}
14054
14055type ShareDirectoryOutput struct {
14056	_ struct{} `type:"structure"`
14057
14058	// Identifier of the directory that is stored in the directory consumer account
14059	// that is shared from the specified directory (DirectoryId).
14060	SharedDirectoryId *string `type:"string"`
14061}
14062
14063// String returns the string representation
14064func (s ShareDirectoryOutput) String() string {
14065	return awsutil.Prettify(s)
14066}
14067
14068// GoString returns the string representation
14069func (s ShareDirectoryOutput) GoString() string {
14070	return s.String()
14071}
14072
14073// SetSharedDirectoryId sets the SharedDirectoryId field's value.
14074func (s *ShareDirectoryOutput) SetSharedDirectoryId(v string) *ShareDirectoryOutput {
14075	s.SharedDirectoryId = &v
14076	return s
14077}
14078
14079// The maximum number of AWS accounts that you can share with this directory
14080// has been reached.
14081type ShareLimitExceededException struct {
14082	_            struct{}                  `type:"structure"`
14083	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14084
14085	// The descriptive message for the exception.
14086	Message_ *string `locationName:"Message" type:"string"`
14087
14088	// The AWS request identifier.
14089	RequestId *string `type:"string"`
14090}
14091
14092// String returns the string representation
14093func (s ShareLimitExceededException) String() string {
14094	return awsutil.Prettify(s)
14095}
14096
14097// GoString returns the string representation
14098func (s ShareLimitExceededException) GoString() string {
14099	return s.String()
14100}
14101
14102func newErrorShareLimitExceededException(v protocol.ResponseMetadata) error {
14103	return &ShareLimitExceededException{
14104		RespMetadata: v,
14105	}
14106}
14107
14108// Code returns the exception type name.
14109func (s *ShareLimitExceededException) Code() string {
14110	return "ShareLimitExceededException"
14111}
14112
14113// Message returns the exception's message.
14114func (s *ShareLimitExceededException) Message() string {
14115	if s.Message_ != nil {
14116		return *s.Message_
14117	}
14118	return ""
14119}
14120
14121// OrigErr always returns nil, satisfies awserr.Error interface.
14122func (s *ShareLimitExceededException) OrigErr() error {
14123	return nil
14124}
14125
14126func (s *ShareLimitExceededException) Error() string {
14127	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14128}
14129
14130// Status code returns the HTTP status code for the request's response error.
14131func (s *ShareLimitExceededException) StatusCode() int {
14132	return s.RespMetadata.StatusCode
14133}
14134
14135// RequestID returns the service's response RequestID for request.
14136func (s *ShareLimitExceededException) RequestID() string {
14137	return s.RespMetadata.RequestID
14138}
14139
14140// Identifier that contains details about the directory consumer account.
14141type ShareTarget struct {
14142	_ struct{} `type:"structure"`
14143
14144	// Identifier of the directory consumer account.
14145	//
14146	// Id is a required field
14147	Id *string `min:"1" type:"string" required:"true"`
14148
14149	// Type of identifier to be used in the Id field.
14150	//
14151	// Type is a required field
14152	Type *string `type:"string" required:"true" enum:"TargetType"`
14153}
14154
14155// String returns the string representation
14156func (s ShareTarget) String() string {
14157	return awsutil.Prettify(s)
14158}
14159
14160// GoString returns the string representation
14161func (s ShareTarget) GoString() string {
14162	return s.String()
14163}
14164
14165// Validate inspects the fields of the type to determine if they are valid.
14166func (s *ShareTarget) Validate() error {
14167	invalidParams := request.ErrInvalidParams{Context: "ShareTarget"}
14168	if s.Id == nil {
14169		invalidParams.Add(request.NewErrParamRequired("Id"))
14170	}
14171	if s.Id != nil && len(*s.Id) < 1 {
14172		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14173	}
14174	if s.Type == nil {
14175		invalidParams.Add(request.NewErrParamRequired("Type"))
14176	}
14177
14178	if invalidParams.Len() > 0 {
14179		return invalidParams
14180	}
14181	return nil
14182}
14183
14184// SetId sets the Id field's value.
14185func (s *ShareTarget) SetId(v string) *ShareTarget {
14186	s.Id = &v
14187	return s
14188}
14189
14190// SetType sets the Type field's value.
14191func (s *ShareTarget) SetType(v string) *ShareTarget {
14192	s.Type = &v
14193	return s
14194}
14195
14196// Details about the shared directory in the directory owner account for which
14197// the share request in the directory consumer account has been accepted.
14198type SharedDirectory struct {
14199	_ struct{} `type:"structure"`
14200
14201	// The date and time that the shared directory was created.
14202	CreatedDateTime *time.Time `type:"timestamp"`
14203
14204	// The date and time that the shared directory was last updated.
14205	LastUpdatedDateTime *time.Time `type:"timestamp"`
14206
14207	// Identifier of the directory owner account, which contains the directory that
14208	// has been shared to the consumer account.
14209	OwnerAccountId *string `type:"string"`
14210
14211	// Identifier of the directory in the directory owner account.
14212	OwnerDirectoryId *string `type:"string"`
14213
14214	// The method used when sharing a directory to determine whether the directory
14215	// should be shared within your AWS organization (ORGANIZATIONS) or with any
14216	// AWS account by sending a shared directory request (HANDSHAKE).
14217	ShareMethod *string `type:"string" enum:"ShareMethod"`
14218
14219	// A directory share request that is sent by the directory owner to the directory
14220	// consumer. The request includes a typed message to help the directory consumer
14221	// administrator determine whether to approve or reject the share invitation.
14222	ShareNotes *string `type:"string" sensitive:"true"`
14223
14224	// Current directory status of the shared AWS Managed Microsoft AD directory.
14225	ShareStatus *string `type:"string" enum:"ShareStatus"`
14226
14227	// Identifier of the directory consumer account that has access to the shared
14228	// directory (OwnerDirectoryId) in the directory owner account.
14229	SharedAccountId *string `type:"string"`
14230
14231	// Identifier of the shared directory in the directory consumer account. This
14232	// identifier is different for each directory owner account.
14233	SharedDirectoryId *string `type:"string"`
14234}
14235
14236// String returns the string representation
14237func (s SharedDirectory) String() string {
14238	return awsutil.Prettify(s)
14239}
14240
14241// GoString returns the string representation
14242func (s SharedDirectory) GoString() string {
14243	return s.String()
14244}
14245
14246// SetCreatedDateTime sets the CreatedDateTime field's value.
14247func (s *SharedDirectory) SetCreatedDateTime(v time.Time) *SharedDirectory {
14248	s.CreatedDateTime = &v
14249	return s
14250}
14251
14252// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
14253func (s *SharedDirectory) SetLastUpdatedDateTime(v time.Time) *SharedDirectory {
14254	s.LastUpdatedDateTime = &v
14255	return s
14256}
14257
14258// SetOwnerAccountId sets the OwnerAccountId field's value.
14259func (s *SharedDirectory) SetOwnerAccountId(v string) *SharedDirectory {
14260	s.OwnerAccountId = &v
14261	return s
14262}
14263
14264// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
14265func (s *SharedDirectory) SetOwnerDirectoryId(v string) *SharedDirectory {
14266	s.OwnerDirectoryId = &v
14267	return s
14268}
14269
14270// SetShareMethod sets the ShareMethod field's value.
14271func (s *SharedDirectory) SetShareMethod(v string) *SharedDirectory {
14272	s.ShareMethod = &v
14273	return s
14274}
14275
14276// SetShareNotes sets the ShareNotes field's value.
14277func (s *SharedDirectory) SetShareNotes(v string) *SharedDirectory {
14278	s.ShareNotes = &v
14279	return s
14280}
14281
14282// SetShareStatus sets the ShareStatus field's value.
14283func (s *SharedDirectory) SetShareStatus(v string) *SharedDirectory {
14284	s.ShareStatus = &v
14285	return s
14286}
14287
14288// SetSharedAccountId sets the SharedAccountId field's value.
14289func (s *SharedDirectory) SetSharedAccountId(v string) *SharedDirectory {
14290	s.SharedAccountId = &v
14291	return s
14292}
14293
14294// SetSharedDirectoryId sets the SharedDirectoryId field's value.
14295func (s *SharedDirectory) SetSharedDirectoryId(v string) *SharedDirectory {
14296	s.SharedDirectoryId = &v
14297	return s
14298}
14299
14300// Describes a directory snapshot.
14301type Snapshot struct {
14302	_ struct{} `type:"structure"`
14303
14304	// The directory identifier.
14305	DirectoryId *string `type:"string"`
14306
14307	// The descriptive name of the snapshot.
14308	Name *string `type:"string"`
14309
14310	// The snapshot identifier.
14311	SnapshotId *string `type:"string"`
14312
14313	// The date and time that the snapshot was taken.
14314	StartTime *time.Time `type:"timestamp"`
14315
14316	// The snapshot status.
14317	Status *string `type:"string" enum:"SnapshotStatus"`
14318
14319	// The snapshot type.
14320	Type *string `type:"string" enum:"SnapshotType"`
14321}
14322
14323// String returns the string representation
14324func (s Snapshot) String() string {
14325	return awsutil.Prettify(s)
14326}
14327
14328// GoString returns the string representation
14329func (s Snapshot) GoString() string {
14330	return s.String()
14331}
14332
14333// SetDirectoryId sets the DirectoryId field's value.
14334func (s *Snapshot) SetDirectoryId(v string) *Snapshot {
14335	s.DirectoryId = &v
14336	return s
14337}
14338
14339// SetName sets the Name field's value.
14340func (s *Snapshot) SetName(v string) *Snapshot {
14341	s.Name = &v
14342	return s
14343}
14344
14345// SetSnapshotId sets the SnapshotId field's value.
14346func (s *Snapshot) SetSnapshotId(v string) *Snapshot {
14347	s.SnapshotId = &v
14348	return s
14349}
14350
14351// SetStartTime sets the StartTime field's value.
14352func (s *Snapshot) SetStartTime(v time.Time) *Snapshot {
14353	s.StartTime = &v
14354	return s
14355}
14356
14357// SetStatus sets the Status field's value.
14358func (s *Snapshot) SetStatus(v string) *Snapshot {
14359	s.Status = &v
14360	return s
14361}
14362
14363// SetType sets the Type field's value.
14364func (s *Snapshot) SetType(v string) *Snapshot {
14365	s.Type = &v
14366	return s
14367}
14368
14369// The maximum number of manual snapshots for the directory has been reached.
14370// You can use the GetSnapshotLimits operation to determine the snapshot limits
14371// for a directory.
14372type SnapshotLimitExceededException struct {
14373	_            struct{}                  `type:"structure"`
14374	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14375
14376	// The descriptive message for the exception.
14377	Message_ *string `locationName:"Message" type:"string"`
14378
14379	// The AWS request identifier.
14380	RequestId *string `type:"string"`
14381}
14382
14383// String returns the string representation
14384func (s SnapshotLimitExceededException) String() string {
14385	return awsutil.Prettify(s)
14386}
14387
14388// GoString returns the string representation
14389func (s SnapshotLimitExceededException) GoString() string {
14390	return s.String()
14391}
14392
14393func newErrorSnapshotLimitExceededException(v protocol.ResponseMetadata) error {
14394	return &SnapshotLimitExceededException{
14395		RespMetadata: v,
14396	}
14397}
14398
14399// Code returns the exception type name.
14400func (s *SnapshotLimitExceededException) Code() string {
14401	return "SnapshotLimitExceededException"
14402}
14403
14404// Message returns the exception's message.
14405func (s *SnapshotLimitExceededException) Message() string {
14406	if s.Message_ != nil {
14407		return *s.Message_
14408	}
14409	return ""
14410}
14411
14412// OrigErr always returns nil, satisfies awserr.Error interface.
14413func (s *SnapshotLimitExceededException) OrigErr() error {
14414	return nil
14415}
14416
14417func (s *SnapshotLimitExceededException) Error() string {
14418	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14419}
14420
14421// Status code returns the HTTP status code for the request's response error.
14422func (s *SnapshotLimitExceededException) StatusCode() int {
14423	return s.RespMetadata.StatusCode
14424}
14425
14426// RequestID returns the service's response RequestID for request.
14427func (s *SnapshotLimitExceededException) RequestID() string {
14428	return s.RespMetadata.RequestID
14429}
14430
14431// Contains manual snapshot limit information for a directory.
14432type SnapshotLimits struct {
14433	_ struct{} `type:"structure"`
14434
14435	// The current number of manual snapshots of the directory.
14436	ManualSnapshotsCurrentCount *int64 `type:"integer"`
14437
14438	// The maximum number of manual snapshots allowed.
14439	ManualSnapshotsLimit *int64 `type:"integer"`
14440
14441	// Indicates if the manual snapshot limit has been reached.
14442	ManualSnapshotsLimitReached *bool `type:"boolean"`
14443}
14444
14445// String returns the string representation
14446func (s SnapshotLimits) String() string {
14447	return awsutil.Prettify(s)
14448}
14449
14450// GoString returns the string representation
14451func (s SnapshotLimits) GoString() string {
14452	return s.String()
14453}
14454
14455// SetManualSnapshotsCurrentCount sets the ManualSnapshotsCurrentCount field's value.
14456func (s *SnapshotLimits) SetManualSnapshotsCurrentCount(v int64) *SnapshotLimits {
14457	s.ManualSnapshotsCurrentCount = &v
14458	return s
14459}
14460
14461// SetManualSnapshotsLimit sets the ManualSnapshotsLimit field's value.
14462func (s *SnapshotLimits) SetManualSnapshotsLimit(v int64) *SnapshotLimits {
14463	s.ManualSnapshotsLimit = &v
14464	return s
14465}
14466
14467// SetManualSnapshotsLimitReached sets the ManualSnapshotsLimitReached field's value.
14468func (s *SnapshotLimits) SetManualSnapshotsLimitReached(v bool) *SnapshotLimits {
14469	s.ManualSnapshotsLimitReached = &v
14470	return s
14471}
14472
14473type StartSchemaExtensionInput struct {
14474	_ struct{} `type:"structure"`
14475
14476	// If true, creates a snapshot of the directory before applying the schema extension.
14477	//
14478	// CreateSnapshotBeforeSchemaExtension is a required field
14479	CreateSnapshotBeforeSchemaExtension *bool `type:"boolean" required:"true"`
14480
14481	// A description of the schema extension.
14482	//
14483	// Description is a required field
14484	Description *string `type:"string" required:"true"`
14485
14486	// The identifier of the directory for which the schema extension will be applied
14487	// to.
14488	//
14489	// DirectoryId is a required field
14490	DirectoryId *string `type:"string" required:"true"`
14491
14492	// The LDIF file represented as a string. To construct the LdifContent string,
14493	// precede each line as it would be formatted in an ldif file with \n. See the
14494	// example request below for more details. The file size can be no larger than
14495	// 1MB.
14496	//
14497	// LdifContent is a required field
14498	LdifContent *string `min:"1" type:"string" required:"true"`
14499}
14500
14501// String returns the string representation
14502func (s StartSchemaExtensionInput) String() string {
14503	return awsutil.Prettify(s)
14504}
14505
14506// GoString returns the string representation
14507func (s StartSchemaExtensionInput) GoString() string {
14508	return s.String()
14509}
14510
14511// Validate inspects the fields of the type to determine if they are valid.
14512func (s *StartSchemaExtensionInput) Validate() error {
14513	invalidParams := request.ErrInvalidParams{Context: "StartSchemaExtensionInput"}
14514	if s.CreateSnapshotBeforeSchemaExtension == nil {
14515		invalidParams.Add(request.NewErrParamRequired("CreateSnapshotBeforeSchemaExtension"))
14516	}
14517	if s.Description == nil {
14518		invalidParams.Add(request.NewErrParamRequired("Description"))
14519	}
14520	if s.DirectoryId == nil {
14521		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
14522	}
14523	if s.LdifContent == nil {
14524		invalidParams.Add(request.NewErrParamRequired("LdifContent"))
14525	}
14526	if s.LdifContent != nil && len(*s.LdifContent) < 1 {
14527		invalidParams.Add(request.NewErrParamMinLen("LdifContent", 1))
14528	}
14529
14530	if invalidParams.Len() > 0 {
14531		return invalidParams
14532	}
14533	return nil
14534}
14535
14536// SetCreateSnapshotBeforeSchemaExtension sets the CreateSnapshotBeforeSchemaExtension field's value.
14537func (s *StartSchemaExtensionInput) SetCreateSnapshotBeforeSchemaExtension(v bool) *StartSchemaExtensionInput {
14538	s.CreateSnapshotBeforeSchemaExtension = &v
14539	return s
14540}
14541
14542// SetDescription sets the Description field's value.
14543func (s *StartSchemaExtensionInput) SetDescription(v string) *StartSchemaExtensionInput {
14544	s.Description = &v
14545	return s
14546}
14547
14548// SetDirectoryId sets the DirectoryId field's value.
14549func (s *StartSchemaExtensionInput) SetDirectoryId(v string) *StartSchemaExtensionInput {
14550	s.DirectoryId = &v
14551	return s
14552}
14553
14554// SetLdifContent sets the LdifContent field's value.
14555func (s *StartSchemaExtensionInput) SetLdifContent(v string) *StartSchemaExtensionInput {
14556	s.LdifContent = &v
14557	return s
14558}
14559
14560type StartSchemaExtensionOutput struct {
14561	_ struct{} `type:"structure"`
14562
14563	// The identifier of the schema extension that will be applied.
14564	SchemaExtensionId *string `type:"string"`
14565}
14566
14567// String returns the string representation
14568func (s StartSchemaExtensionOutput) String() string {
14569	return awsutil.Prettify(s)
14570}
14571
14572// GoString returns the string representation
14573func (s StartSchemaExtensionOutput) GoString() string {
14574	return s.String()
14575}
14576
14577// SetSchemaExtensionId sets the SchemaExtensionId field's value.
14578func (s *StartSchemaExtensionOutput) SetSchemaExtensionId(v string) *StartSchemaExtensionOutput {
14579	s.SchemaExtensionId = &v
14580	return s
14581}
14582
14583// Metadata assigned to a directory consisting of a key-value pair.
14584type Tag struct {
14585	_ struct{} `type:"structure"`
14586
14587	// Required name of the tag. The string value can be Unicode characters and
14588	// cannot be prefixed with "aws:". The string can contain only the set of Unicode
14589	// letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
14590	//
14591	// Key is a required field
14592	Key *string `min:"1" type:"string" required:"true"`
14593
14594	// The optional value of the tag. The string value can be Unicode characters.
14595	// The string can contain only the set of Unicode letters, digits, white-space,
14596	// '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
14597	//
14598	// Value is a required field
14599	Value *string `type:"string" required:"true"`
14600}
14601
14602// String returns the string representation
14603func (s Tag) String() string {
14604	return awsutil.Prettify(s)
14605}
14606
14607// GoString returns the string representation
14608func (s Tag) GoString() string {
14609	return s.String()
14610}
14611
14612// Validate inspects the fields of the type to determine if they are valid.
14613func (s *Tag) Validate() error {
14614	invalidParams := request.ErrInvalidParams{Context: "Tag"}
14615	if s.Key == nil {
14616		invalidParams.Add(request.NewErrParamRequired("Key"))
14617	}
14618	if s.Key != nil && len(*s.Key) < 1 {
14619		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
14620	}
14621	if s.Value == nil {
14622		invalidParams.Add(request.NewErrParamRequired("Value"))
14623	}
14624
14625	if invalidParams.Len() > 0 {
14626		return invalidParams
14627	}
14628	return nil
14629}
14630
14631// SetKey sets the Key field's value.
14632func (s *Tag) SetKey(v string) *Tag {
14633	s.Key = &v
14634	return s
14635}
14636
14637// SetValue sets the Value field's value.
14638func (s *Tag) SetValue(v string) *Tag {
14639	s.Value = &v
14640	return s
14641}
14642
14643// The maximum allowed number of tags was exceeded.
14644type TagLimitExceededException struct {
14645	_            struct{}                  `type:"structure"`
14646	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14647
14648	// The descriptive message for the exception.
14649	Message_ *string `locationName:"Message" type:"string"`
14650
14651	// The AWS request identifier.
14652	RequestId *string `type:"string"`
14653}
14654
14655// String returns the string representation
14656func (s TagLimitExceededException) String() string {
14657	return awsutil.Prettify(s)
14658}
14659
14660// GoString returns the string representation
14661func (s TagLimitExceededException) GoString() string {
14662	return s.String()
14663}
14664
14665func newErrorTagLimitExceededException(v protocol.ResponseMetadata) error {
14666	return &TagLimitExceededException{
14667		RespMetadata: v,
14668	}
14669}
14670
14671// Code returns the exception type name.
14672func (s *TagLimitExceededException) Code() string {
14673	return "TagLimitExceededException"
14674}
14675
14676// Message returns the exception's message.
14677func (s *TagLimitExceededException) Message() string {
14678	if s.Message_ != nil {
14679		return *s.Message_
14680	}
14681	return ""
14682}
14683
14684// OrigErr always returns nil, satisfies awserr.Error interface.
14685func (s *TagLimitExceededException) OrigErr() error {
14686	return nil
14687}
14688
14689func (s *TagLimitExceededException) Error() string {
14690	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14691}
14692
14693// Status code returns the HTTP status code for the request's response error.
14694func (s *TagLimitExceededException) StatusCode() int {
14695	return s.RespMetadata.StatusCode
14696}
14697
14698// RequestID returns the service's response RequestID for request.
14699func (s *TagLimitExceededException) RequestID() string {
14700	return s.RespMetadata.RequestID
14701}
14702
14703// Describes a trust relationship between an AWS Managed Microsoft AD directory
14704// and an external domain.
14705type Trust struct {
14706	_ struct{} `type:"structure"`
14707
14708	// The date and time that the trust relationship was created.
14709	CreatedDateTime *time.Time `type:"timestamp"`
14710
14711	// The Directory ID of the AWS directory involved in the trust relationship.
14712	DirectoryId *string `type:"string"`
14713
14714	// The date and time that the trust relationship was last updated.
14715	LastUpdatedDateTime *time.Time `type:"timestamp"`
14716
14717	// The Fully Qualified Domain Name (FQDN) of the external domain involved in
14718	// the trust relationship.
14719	RemoteDomainName *string `type:"string"`
14720
14721	// Current state of selective authentication for the trust.
14722	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
14723
14724	// The date and time that the TrustState was last updated.
14725	StateLastUpdatedDateTime *time.Time `type:"timestamp"`
14726
14727	// The trust relationship direction.
14728	TrustDirection *string `type:"string" enum:"TrustDirection"`
14729
14730	// The unique ID of the trust relationship.
14731	TrustId *string `type:"string"`
14732
14733	// The trust relationship state.
14734	TrustState *string `type:"string" enum:"TrustState"`
14735
14736	// The reason for the TrustState.
14737	TrustStateReason *string `type:"string"`
14738
14739	// The trust relationship type. Forest is the default.
14740	TrustType *string `type:"string" enum:"TrustType"`
14741}
14742
14743// String returns the string representation
14744func (s Trust) String() string {
14745	return awsutil.Prettify(s)
14746}
14747
14748// GoString returns the string representation
14749func (s Trust) GoString() string {
14750	return s.String()
14751}
14752
14753// SetCreatedDateTime sets the CreatedDateTime field's value.
14754func (s *Trust) SetCreatedDateTime(v time.Time) *Trust {
14755	s.CreatedDateTime = &v
14756	return s
14757}
14758
14759// SetDirectoryId sets the DirectoryId field's value.
14760func (s *Trust) SetDirectoryId(v string) *Trust {
14761	s.DirectoryId = &v
14762	return s
14763}
14764
14765// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
14766func (s *Trust) SetLastUpdatedDateTime(v time.Time) *Trust {
14767	s.LastUpdatedDateTime = &v
14768	return s
14769}
14770
14771// SetRemoteDomainName sets the RemoteDomainName field's value.
14772func (s *Trust) SetRemoteDomainName(v string) *Trust {
14773	s.RemoteDomainName = &v
14774	return s
14775}
14776
14777// SetSelectiveAuth sets the SelectiveAuth field's value.
14778func (s *Trust) SetSelectiveAuth(v string) *Trust {
14779	s.SelectiveAuth = &v
14780	return s
14781}
14782
14783// SetStateLastUpdatedDateTime sets the StateLastUpdatedDateTime field's value.
14784func (s *Trust) SetStateLastUpdatedDateTime(v time.Time) *Trust {
14785	s.StateLastUpdatedDateTime = &v
14786	return s
14787}
14788
14789// SetTrustDirection sets the TrustDirection field's value.
14790func (s *Trust) SetTrustDirection(v string) *Trust {
14791	s.TrustDirection = &v
14792	return s
14793}
14794
14795// SetTrustId sets the TrustId field's value.
14796func (s *Trust) SetTrustId(v string) *Trust {
14797	s.TrustId = &v
14798	return s
14799}
14800
14801// SetTrustState sets the TrustState field's value.
14802func (s *Trust) SetTrustState(v string) *Trust {
14803	s.TrustState = &v
14804	return s
14805}
14806
14807// SetTrustStateReason sets the TrustStateReason field's value.
14808func (s *Trust) SetTrustStateReason(v string) *Trust {
14809	s.TrustStateReason = &v
14810	return s
14811}
14812
14813// SetTrustType sets the TrustType field's value.
14814func (s *Trust) SetTrustType(v string) *Trust {
14815	s.TrustType = &v
14816	return s
14817}
14818
14819type UnshareDirectoryInput struct {
14820	_ struct{} `type:"structure"`
14821
14822	// The identifier of the AWS Managed Microsoft AD directory that you want to
14823	// stop sharing.
14824	//
14825	// DirectoryId is a required field
14826	DirectoryId *string `type:"string" required:"true"`
14827
14828	// Identifier for the directory consumer account with whom the directory has
14829	// to be unshared.
14830	//
14831	// UnshareTarget is a required field
14832	UnshareTarget *UnshareTarget `type:"structure" required:"true"`
14833}
14834
14835// String returns the string representation
14836func (s UnshareDirectoryInput) String() string {
14837	return awsutil.Prettify(s)
14838}
14839
14840// GoString returns the string representation
14841func (s UnshareDirectoryInput) GoString() string {
14842	return s.String()
14843}
14844
14845// Validate inspects the fields of the type to determine if they are valid.
14846func (s *UnshareDirectoryInput) Validate() error {
14847	invalidParams := request.ErrInvalidParams{Context: "UnshareDirectoryInput"}
14848	if s.DirectoryId == nil {
14849		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
14850	}
14851	if s.UnshareTarget == nil {
14852		invalidParams.Add(request.NewErrParamRequired("UnshareTarget"))
14853	}
14854	if s.UnshareTarget != nil {
14855		if err := s.UnshareTarget.Validate(); err != nil {
14856			invalidParams.AddNested("UnshareTarget", err.(request.ErrInvalidParams))
14857		}
14858	}
14859
14860	if invalidParams.Len() > 0 {
14861		return invalidParams
14862	}
14863	return nil
14864}
14865
14866// SetDirectoryId sets the DirectoryId field's value.
14867func (s *UnshareDirectoryInput) SetDirectoryId(v string) *UnshareDirectoryInput {
14868	s.DirectoryId = &v
14869	return s
14870}
14871
14872// SetUnshareTarget sets the UnshareTarget field's value.
14873func (s *UnshareDirectoryInput) SetUnshareTarget(v *UnshareTarget) *UnshareDirectoryInput {
14874	s.UnshareTarget = v
14875	return s
14876}
14877
14878type UnshareDirectoryOutput struct {
14879	_ struct{} `type:"structure"`
14880
14881	// Identifier of the directory stored in the directory consumer account that
14882	// is to be unshared from the specified directory (DirectoryId).
14883	SharedDirectoryId *string `type:"string"`
14884}
14885
14886// String returns the string representation
14887func (s UnshareDirectoryOutput) String() string {
14888	return awsutil.Prettify(s)
14889}
14890
14891// GoString returns the string representation
14892func (s UnshareDirectoryOutput) GoString() string {
14893	return s.String()
14894}
14895
14896// SetSharedDirectoryId sets the SharedDirectoryId field's value.
14897func (s *UnshareDirectoryOutput) SetSharedDirectoryId(v string) *UnshareDirectoryOutput {
14898	s.SharedDirectoryId = &v
14899	return s
14900}
14901
14902// Identifier that contains details about the directory consumer account with
14903// whom the directory is being unshared.
14904type UnshareTarget struct {
14905	_ struct{} `type:"structure"`
14906
14907	// Identifier of the directory consumer account.
14908	//
14909	// Id is a required field
14910	Id *string `min:"1" type:"string" required:"true"`
14911
14912	// Type of identifier to be used in the Id field.
14913	//
14914	// Type is a required field
14915	Type *string `type:"string" required:"true" enum:"TargetType"`
14916}
14917
14918// String returns the string representation
14919func (s UnshareTarget) String() string {
14920	return awsutil.Prettify(s)
14921}
14922
14923// GoString returns the string representation
14924func (s UnshareTarget) GoString() string {
14925	return s.String()
14926}
14927
14928// Validate inspects the fields of the type to determine if they are valid.
14929func (s *UnshareTarget) Validate() error {
14930	invalidParams := request.ErrInvalidParams{Context: "UnshareTarget"}
14931	if s.Id == nil {
14932		invalidParams.Add(request.NewErrParamRequired("Id"))
14933	}
14934	if s.Id != nil && len(*s.Id) < 1 {
14935		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
14936	}
14937	if s.Type == nil {
14938		invalidParams.Add(request.NewErrParamRequired("Type"))
14939	}
14940
14941	if invalidParams.Len() > 0 {
14942		return invalidParams
14943	}
14944	return nil
14945}
14946
14947// SetId sets the Id field's value.
14948func (s *UnshareTarget) SetId(v string) *UnshareTarget {
14949	s.Id = &v
14950	return s
14951}
14952
14953// SetType sets the Type field's value.
14954func (s *UnshareTarget) SetType(v string) *UnshareTarget {
14955	s.Type = &v
14956	return s
14957}
14958
14959// The operation is not supported.
14960type UnsupportedOperationException struct {
14961	_            struct{}                  `type:"structure"`
14962	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14963
14964	// The descriptive message for the exception.
14965	Message_ *string `locationName:"Message" type:"string"`
14966
14967	// The AWS request identifier.
14968	RequestId *string `type:"string"`
14969}
14970
14971// String returns the string representation
14972func (s UnsupportedOperationException) String() string {
14973	return awsutil.Prettify(s)
14974}
14975
14976// GoString returns the string representation
14977func (s UnsupportedOperationException) GoString() string {
14978	return s.String()
14979}
14980
14981func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error {
14982	return &UnsupportedOperationException{
14983		RespMetadata: v,
14984	}
14985}
14986
14987// Code returns the exception type name.
14988func (s *UnsupportedOperationException) Code() string {
14989	return "UnsupportedOperationException"
14990}
14991
14992// Message returns the exception's message.
14993func (s *UnsupportedOperationException) Message() string {
14994	if s.Message_ != nil {
14995		return *s.Message_
14996	}
14997	return ""
14998}
14999
15000// OrigErr always returns nil, satisfies awserr.Error interface.
15001func (s *UnsupportedOperationException) OrigErr() error {
15002	return nil
15003}
15004
15005func (s *UnsupportedOperationException) Error() string {
15006	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15007}
15008
15009// Status code returns the HTTP status code for the request's response error.
15010func (s *UnsupportedOperationException) StatusCode() int {
15011	return s.RespMetadata.StatusCode
15012}
15013
15014// RequestID returns the service's response RequestID for request.
15015func (s *UnsupportedOperationException) RequestID() string {
15016	return s.RespMetadata.RequestID
15017}
15018
15019// Updates a conditional forwarder.
15020type UpdateConditionalForwarderInput struct {
15021	_ struct{} `type:"structure"`
15022
15023	// The directory ID of the AWS directory for which to update the conditional
15024	// forwarder.
15025	//
15026	// DirectoryId is a required field
15027	DirectoryId *string `type:"string" required:"true"`
15028
15029	// The updated IP addresses of the remote DNS server associated with the conditional
15030	// forwarder.
15031	//
15032	// DnsIpAddrs is a required field
15033	DnsIpAddrs []*string `type:"list" required:"true"`
15034
15035	// The fully qualified domain name (FQDN) of the remote domain with which you
15036	// will set up a trust relationship.
15037	//
15038	// RemoteDomainName is a required field
15039	RemoteDomainName *string `type:"string" required:"true"`
15040}
15041
15042// String returns the string representation
15043func (s UpdateConditionalForwarderInput) String() string {
15044	return awsutil.Prettify(s)
15045}
15046
15047// GoString returns the string representation
15048func (s UpdateConditionalForwarderInput) GoString() string {
15049	return s.String()
15050}
15051
15052// Validate inspects the fields of the type to determine if they are valid.
15053func (s *UpdateConditionalForwarderInput) Validate() error {
15054	invalidParams := request.ErrInvalidParams{Context: "UpdateConditionalForwarderInput"}
15055	if s.DirectoryId == nil {
15056		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
15057	}
15058	if s.DnsIpAddrs == nil {
15059		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
15060	}
15061	if s.RemoteDomainName == nil {
15062		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
15063	}
15064
15065	if invalidParams.Len() > 0 {
15066		return invalidParams
15067	}
15068	return nil
15069}
15070
15071// SetDirectoryId sets the DirectoryId field's value.
15072func (s *UpdateConditionalForwarderInput) SetDirectoryId(v string) *UpdateConditionalForwarderInput {
15073	s.DirectoryId = &v
15074	return s
15075}
15076
15077// SetDnsIpAddrs sets the DnsIpAddrs field's value.
15078func (s *UpdateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *UpdateConditionalForwarderInput {
15079	s.DnsIpAddrs = v
15080	return s
15081}
15082
15083// SetRemoteDomainName sets the RemoteDomainName field's value.
15084func (s *UpdateConditionalForwarderInput) SetRemoteDomainName(v string) *UpdateConditionalForwarderInput {
15085	s.RemoteDomainName = &v
15086	return s
15087}
15088
15089// The result of an UpdateConditionalForwarder request.
15090type UpdateConditionalForwarderOutput struct {
15091	_ struct{} `type:"structure"`
15092}
15093
15094// String returns the string representation
15095func (s UpdateConditionalForwarderOutput) String() string {
15096	return awsutil.Prettify(s)
15097}
15098
15099// GoString returns the string representation
15100func (s UpdateConditionalForwarderOutput) GoString() string {
15101	return s.String()
15102}
15103
15104type UpdateNumberOfDomainControllersInput struct {
15105	_ struct{} `type:"structure"`
15106
15107	// The number of domain controllers desired in the directory.
15108	//
15109	// DesiredNumber is a required field
15110	DesiredNumber *int64 `min:"2" type:"integer" required:"true"`
15111
15112	// Identifier of the directory to which the domain controllers will be added
15113	// or removed.
15114	//
15115	// DirectoryId is a required field
15116	DirectoryId *string `type:"string" required:"true"`
15117}
15118
15119// String returns the string representation
15120func (s UpdateNumberOfDomainControllersInput) String() string {
15121	return awsutil.Prettify(s)
15122}
15123
15124// GoString returns the string representation
15125func (s UpdateNumberOfDomainControllersInput) GoString() string {
15126	return s.String()
15127}
15128
15129// Validate inspects the fields of the type to determine if they are valid.
15130func (s *UpdateNumberOfDomainControllersInput) Validate() error {
15131	invalidParams := request.ErrInvalidParams{Context: "UpdateNumberOfDomainControllersInput"}
15132	if s.DesiredNumber == nil {
15133		invalidParams.Add(request.NewErrParamRequired("DesiredNumber"))
15134	}
15135	if s.DesiredNumber != nil && *s.DesiredNumber < 2 {
15136		invalidParams.Add(request.NewErrParamMinValue("DesiredNumber", 2))
15137	}
15138	if s.DirectoryId == nil {
15139		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
15140	}
15141
15142	if invalidParams.Len() > 0 {
15143		return invalidParams
15144	}
15145	return nil
15146}
15147
15148// SetDesiredNumber sets the DesiredNumber field's value.
15149func (s *UpdateNumberOfDomainControllersInput) SetDesiredNumber(v int64) *UpdateNumberOfDomainControllersInput {
15150	s.DesiredNumber = &v
15151	return s
15152}
15153
15154// SetDirectoryId sets the DirectoryId field's value.
15155func (s *UpdateNumberOfDomainControllersInput) SetDirectoryId(v string) *UpdateNumberOfDomainControllersInput {
15156	s.DirectoryId = &v
15157	return s
15158}
15159
15160type UpdateNumberOfDomainControllersOutput struct {
15161	_ struct{} `type:"structure"`
15162}
15163
15164// String returns the string representation
15165func (s UpdateNumberOfDomainControllersOutput) String() string {
15166	return awsutil.Prettify(s)
15167}
15168
15169// GoString returns the string representation
15170func (s UpdateNumberOfDomainControllersOutput) GoString() string {
15171	return s.String()
15172}
15173
15174// Contains the inputs for the UpdateRadius operation.
15175type UpdateRadiusInput struct {
15176	_ struct{} `type:"structure"`
15177
15178	// The identifier of the directory for which to update the RADIUS server information.
15179	//
15180	// DirectoryId is a required field
15181	DirectoryId *string `type:"string" required:"true"`
15182
15183	// A RadiusSettings object that contains information about the RADIUS server.
15184	//
15185	// RadiusSettings is a required field
15186	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
15187}
15188
15189// String returns the string representation
15190func (s UpdateRadiusInput) String() string {
15191	return awsutil.Prettify(s)
15192}
15193
15194// GoString returns the string representation
15195func (s UpdateRadiusInput) GoString() string {
15196	return s.String()
15197}
15198
15199// Validate inspects the fields of the type to determine if they are valid.
15200func (s *UpdateRadiusInput) Validate() error {
15201	invalidParams := request.ErrInvalidParams{Context: "UpdateRadiusInput"}
15202	if s.DirectoryId == nil {
15203		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
15204	}
15205	if s.RadiusSettings == nil {
15206		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
15207	}
15208	if s.RadiusSettings != nil {
15209		if err := s.RadiusSettings.Validate(); err != nil {
15210			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
15211		}
15212	}
15213
15214	if invalidParams.Len() > 0 {
15215		return invalidParams
15216	}
15217	return nil
15218}
15219
15220// SetDirectoryId sets the DirectoryId field's value.
15221func (s *UpdateRadiusInput) SetDirectoryId(v string) *UpdateRadiusInput {
15222	s.DirectoryId = &v
15223	return s
15224}
15225
15226// SetRadiusSettings sets the RadiusSettings field's value.
15227func (s *UpdateRadiusInput) SetRadiusSettings(v *RadiusSettings) *UpdateRadiusInput {
15228	s.RadiusSettings = v
15229	return s
15230}
15231
15232// Contains the results of the UpdateRadius operation.
15233type UpdateRadiusOutput struct {
15234	_ struct{} `type:"structure"`
15235}
15236
15237// String returns the string representation
15238func (s UpdateRadiusOutput) String() string {
15239	return awsutil.Prettify(s)
15240}
15241
15242// GoString returns the string representation
15243func (s UpdateRadiusOutput) GoString() string {
15244	return s.String()
15245}
15246
15247type UpdateTrustInput struct {
15248	_ struct{} `type:"structure"`
15249
15250	// Updates selective authentication for the trust.
15251	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
15252
15253	// Identifier of the trust relationship.
15254	//
15255	// TrustId is a required field
15256	TrustId *string `type:"string" required:"true"`
15257}
15258
15259// String returns the string representation
15260func (s UpdateTrustInput) String() string {
15261	return awsutil.Prettify(s)
15262}
15263
15264// GoString returns the string representation
15265func (s UpdateTrustInput) GoString() string {
15266	return s.String()
15267}
15268
15269// Validate inspects the fields of the type to determine if they are valid.
15270func (s *UpdateTrustInput) Validate() error {
15271	invalidParams := request.ErrInvalidParams{Context: "UpdateTrustInput"}
15272	if s.TrustId == nil {
15273		invalidParams.Add(request.NewErrParamRequired("TrustId"))
15274	}
15275
15276	if invalidParams.Len() > 0 {
15277		return invalidParams
15278	}
15279	return nil
15280}
15281
15282// SetSelectiveAuth sets the SelectiveAuth field's value.
15283func (s *UpdateTrustInput) SetSelectiveAuth(v string) *UpdateTrustInput {
15284	s.SelectiveAuth = &v
15285	return s
15286}
15287
15288// SetTrustId sets the TrustId field's value.
15289func (s *UpdateTrustInput) SetTrustId(v string) *UpdateTrustInput {
15290	s.TrustId = &v
15291	return s
15292}
15293
15294type UpdateTrustOutput struct {
15295	_ struct{} `type:"structure"`
15296
15297	// The AWS request identifier.
15298	RequestId *string `type:"string"`
15299
15300	// Identifier of the trust relationship.
15301	TrustId *string `type:"string"`
15302}
15303
15304// String returns the string representation
15305func (s UpdateTrustOutput) String() string {
15306	return awsutil.Prettify(s)
15307}
15308
15309// GoString returns the string representation
15310func (s UpdateTrustOutput) GoString() string {
15311	return s.String()
15312}
15313
15314// SetRequestId sets the RequestId field's value.
15315func (s *UpdateTrustOutput) SetRequestId(v string) *UpdateTrustOutput {
15316	s.RequestId = &v
15317	return s
15318}
15319
15320// SetTrustId sets the TrustId field's value.
15321func (s *UpdateTrustOutput) SetTrustId(v string) *UpdateTrustOutput {
15322	s.TrustId = &v
15323	return s
15324}
15325
15326// The user provided a username that does not exist in your directory.
15327type UserDoesNotExistException struct {
15328	_            struct{}                  `type:"structure"`
15329	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15330
15331	// The descriptive message for the exception.
15332	Message_ *string `locationName:"Message" type:"string"`
15333
15334	// The AWS request identifier.
15335	RequestId *string `type:"string"`
15336}
15337
15338// String returns the string representation
15339func (s UserDoesNotExistException) String() string {
15340	return awsutil.Prettify(s)
15341}
15342
15343// GoString returns the string representation
15344func (s UserDoesNotExistException) GoString() string {
15345	return s.String()
15346}
15347
15348func newErrorUserDoesNotExistException(v protocol.ResponseMetadata) error {
15349	return &UserDoesNotExistException{
15350		RespMetadata: v,
15351	}
15352}
15353
15354// Code returns the exception type name.
15355func (s *UserDoesNotExistException) Code() string {
15356	return "UserDoesNotExistException"
15357}
15358
15359// Message returns the exception's message.
15360func (s *UserDoesNotExistException) Message() string {
15361	if s.Message_ != nil {
15362		return *s.Message_
15363	}
15364	return ""
15365}
15366
15367// OrigErr always returns nil, satisfies awserr.Error interface.
15368func (s *UserDoesNotExistException) OrigErr() error {
15369	return nil
15370}
15371
15372func (s *UserDoesNotExistException) Error() string {
15373	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15374}
15375
15376// Status code returns the HTTP status code for the request's response error.
15377func (s *UserDoesNotExistException) StatusCode() int {
15378	return s.RespMetadata.StatusCode
15379}
15380
15381// RequestID returns the service's response RequestID for request.
15382func (s *UserDoesNotExistException) RequestID() string {
15383	return s.RespMetadata.RequestID
15384}
15385
15386// Initiates the verification of an existing trust relationship between an AWS
15387// Managed Microsoft AD directory and an external domain.
15388type VerifyTrustInput struct {
15389	_ struct{} `type:"structure"`
15390
15391	// The unique Trust ID of the trust relationship to verify.
15392	//
15393	// TrustId is a required field
15394	TrustId *string `type:"string" required:"true"`
15395}
15396
15397// String returns the string representation
15398func (s VerifyTrustInput) String() string {
15399	return awsutil.Prettify(s)
15400}
15401
15402// GoString returns the string representation
15403func (s VerifyTrustInput) GoString() string {
15404	return s.String()
15405}
15406
15407// Validate inspects the fields of the type to determine if they are valid.
15408func (s *VerifyTrustInput) Validate() error {
15409	invalidParams := request.ErrInvalidParams{Context: "VerifyTrustInput"}
15410	if s.TrustId == nil {
15411		invalidParams.Add(request.NewErrParamRequired("TrustId"))
15412	}
15413
15414	if invalidParams.Len() > 0 {
15415		return invalidParams
15416	}
15417	return nil
15418}
15419
15420// SetTrustId sets the TrustId field's value.
15421func (s *VerifyTrustInput) SetTrustId(v string) *VerifyTrustInput {
15422	s.TrustId = &v
15423	return s
15424}
15425
15426// Result of a VerifyTrust request.
15427type VerifyTrustOutput struct {
15428	_ struct{} `type:"structure"`
15429
15430	// The unique Trust ID of the trust relationship that was verified.
15431	TrustId *string `type:"string"`
15432}
15433
15434// String returns the string representation
15435func (s VerifyTrustOutput) String() string {
15436	return awsutil.Prettify(s)
15437}
15438
15439// GoString returns the string representation
15440func (s VerifyTrustOutput) GoString() string {
15441	return s.String()
15442}
15443
15444// SetTrustId sets the TrustId field's value.
15445func (s *VerifyTrustOutput) SetTrustId(v string) *VerifyTrustOutput {
15446	s.TrustId = &v
15447	return s
15448}
15449
15450const (
15451	// CertificateStateRegistering is a CertificateState enum value
15452	CertificateStateRegistering = "Registering"
15453
15454	// CertificateStateRegistered is a CertificateState enum value
15455	CertificateStateRegistered = "Registered"
15456
15457	// CertificateStateRegisterFailed is a CertificateState enum value
15458	CertificateStateRegisterFailed = "RegisterFailed"
15459
15460	// CertificateStateDeregistering is a CertificateState enum value
15461	CertificateStateDeregistering = "Deregistering"
15462
15463	// CertificateStateDeregistered is a CertificateState enum value
15464	CertificateStateDeregistered = "Deregistered"
15465
15466	// CertificateStateDeregisterFailed is a CertificateState enum value
15467	CertificateStateDeregisterFailed = "DeregisterFailed"
15468)
15469
15470// CertificateState_Values returns all elements of the CertificateState enum
15471func CertificateState_Values() []string {
15472	return []string{
15473		CertificateStateRegistering,
15474		CertificateStateRegistered,
15475		CertificateStateRegisterFailed,
15476		CertificateStateDeregistering,
15477		CertificateStateDeregistered,
15478		CertificateStateDeregisterFailed,
15479	}
15480}
15481
15482const (
15483	// CertificateTypeClientCertAuth is a CertificateType enum value
15484	CertificateTypeClientCertAuth = "ClientCertAuth"
15485
15486	// CertificateTypeClientLdaps is a CertificateType enum value
15487	CertificateTypeClientLdaps = "ClientLDAPS"
15488)
15489
15490// CertificateType_Values returns all elements of the CertificateType enum
15491func CertificateType_Values() []string {
15492	return []string{
15493		CertificateTypeClientCertAuth,
15494		CertificateTypeClientLdaps,
15495	}
15496}
15497
15498const (
15499	// ClientAuthenticationTypeSmartCard is a ClientAuthenticationType enum value
15500	ClientAuthenticationTypeSmartCard = "SmartCard"
15501)
15502
15503// ClientAuthenticationType_Values returns all elements of the ClientAuthenticationType enum
15504func ClientAuthenticationType_Values() []string {
15505	return []string{
15506		ClientAuthenticationTypeSmartCard,
15507	}
15508}
15509
15510const (
15511	// DirectoryEditionEnterprise is a DirectoryEdition enum value
15512	DirectoryEditionEnterprise = "Enterprise"
15513
15514	// DirectoryEditionStandard is a DirectoryEdition enum value
15515	DirectoryEditionStandard = "Standard"
15516)
15517
15518// DirectoryEdition_Values returns all elements of the DirectoryEdition enum
15519func DirectoryEdition_Values() []string {
15520	return []string{
15521		DirectoryEditionEnterprise,
15522		DirectoryEditionStandard,
15523	}
15524}
15525
15526const (
15527	// DirectorySizeSmall is a DirectorySize enum value
15528	DirectorySizeSmall = "Small"
15529
15530	// DirectorySizeLarge is a DirectorySize enum value
15531	DirectorySizeLarge = "Large"
15532)
15533
15534// DirectorySize_Values returns all elements of the DirectorySize enum
15535func DirectorySize_Values() []string {
15536	return []string{
15537		DirectorySizeSmall,
15538		DirectorySizeLarge,
15539	}
15540}
15541
15542const (
15543	// DirectoryStageRequested is a DirectoryStage enum value
15544	DirectoryStageRequested = "Requested"
15545
15546	// DirectoryStageCreating is a DirectoryStage enum value
15547	DirectoryStageCreating = "Creating"
15548
15549	// DirectoryStageCreated is a DirectoryStage enum value
15550	DirectoryStageCreated = "Created"
15551
15552	// DirectoryStageActive is a DirectoryStage enum value
15553	DirectoryStageActive = "Active"
15554
15555	// DirectoryStageInoperable is a DirectoryStage enum value
15556	DirectoryStageInoperable = "Inoperable"
15557
15558	// DirectoryStageImpaired is a DirectoryStage enum value
15559	DirectoryStageImpaired = "Impaired"
15560
15561	// DirectoryStageRestoring is a DirectoryStage enum value
15562	DirectoryStageRestoring = "Restoring"
15563
15564	// DirectoryStageRestoreFailed is a DirectoryStage enum value
15565	DirectoryStageRestoreFailed = "RestoreFailed"
15566
15567	// DirectoryStageDeleting is a DirectoryStage enum value
15568	DirectoryStageDeleting = "Deleting"
15569
15570	// DirectoryStageDeleted is a DirectoryStage enum value
15571	DirectoryStageDeleted = "Deleted"
15572
15573	// DirectoryStageFailed is a DirectoryStage enum value
15574	DirectoryStageFailed = "Failed"
15575)
15576
15577// DirectoryStage_Values returns all elements of the DirectoryStage enum
15578func DirectoryStage_Values() []string {
15579	return []string{
15580		DirectoryStageRequested,
15581		DirectoryStageCreating,
15582		DirectoryStageCreated,
15583		DirectoryStageActive,
15584		DirectoryStageInoperable,
15585		DirectoryStageImpaired,
15586		DirectoryStageRestoring,
15587		DirectoryStageRestoreFailed,
15588		DirectoryStageDeleting,
15589		DirectoryStageDeleted,
15590		DirectoryStageFailed,
15591	}
15592}
15593
15594const (
15595	// DirectoryTypeSimpleAd is a DirectoryType enum value
15596	DirectoryTypeSimpleAd = "SimpleAD"
15597
15598	// DirectoryTypeAdconnector is a DirectoryType enum value
15599	DirectoryTypeAdconnector = "ADConnector"
15600
15601	// DirectoryTypeMicrosoftAd is a DirectoryType enum value
15602	DirectoryTypeMicrosoftAd = "MicrosoftAD"
15603
15604	// DirectoryTypeSharedMicrosoftAd is a DirectoryType enum value
15605	DirectoryTypeSharedMicrosoftAd = "SharedMicrosoftAD"
15606)
15607
15608// DirectoryType_Values returns all elements of the DirectoryType enum
15609func DirectoryType_Values() []string {
15610	return []string{
15611		DirectoryTypeSimpleAd,
15612		DirectoryTypeAdconnector,
15613		DirectoryTypeMicrosoftAd,
15614		DirectoryTypeSharedMicrosoftAd,
15615	}
15616}
15617
15618const (
15619	// DomainControllerStatusCreating is a DomainControllerStatus enum value
15620	DomainControllerStatusCreating = "Creating"
15621
15622	// DomainControllerStatusActive is a DomainControllerStatus enum value
15623	DomainControllerStatusActive = "Active"
15624
15625	// DomainControllerStatusImpaired is a DomainControllerStatus enum value
15626	DomainControllerStatusImpaired = "Impaired"
15627
15628	// DomainControllerStatusRestoring is a DomainControllerStatus enum value
15629	DomainControllerStatusRestoring = "Restoring"
15630
15631	// DomainControllerStatusDeleting is a DomainControllerStatus enum value
15632	DomainControllerStatusDeleting = "Deleting"
15633
15634	// DomainControllerStatusDeleted is a DomainControllerStatus enum value
15635	DomainControllerStatusDeleted = "Deleted"
15636
15637	// DomainControllerStatusFailed is a DomainControllerStatus enum value
15638	DomainControllerStatusFailed = "Failed"
15639)
15640
15641// DomainControllerStatus_Values returns all elements of the DomainControllerStatus enum
15642func DomainControllerStatus_Values() []string {
15643	return []string{
15644		DomainControllerStatusCreating,
15645		DomainControllerStatusActive,
15646		DomainControllerStatusImpaired,
15647		DomainControllerStatusRestoring,
15648		DomainControllerStatusDeleting,
15649		DomainControllerStatusDeleted,
15650		DomainControllerStatusFailed,
15651	}
15652}
15653
15654const (
15655	// IpRouteStatusMsgAdding is a IpRouteStatusMsg enum value
15656	IpRouteStatusMsgAdding = "Adding"
15657
15658	// IpRouteStatusMsgAdded is a IpRouteStatusMsg enum value
15659	IpRouteStatusMsgAdded = "Added"
15660
15661	// IpRouteStatusMsgRemoving is a IpRouteStatusMsg enum value
15662	IpRouteStatusMsgRemoving = "Removing"
15663
15664	// IpRouteStatusMsgRemoved is a IpRouteStatusMsg enum value
15665	IpRouteStatusMsgRemoved = "Removed"
15666
15667	// IpRouteStatusMsgAddFailed is a IpRouteStatusMsg enum value
15668	IpRouteStatusMsgAddFailed = "AddFailed"
15669
15670	// IpRouteStatusMsgRemoveFailed is a IpRouteStatusMsg enum value
15671	IpRouteStatusMsgRemoveFailed = "RemoveFailed"
15672)
15673
15674// IpRouteStatusMsg_Values returns all elements of the IpRouteStatusMsg enum
15675func IpRouteStatusMsg_Values() []string {
15676	return []string{
15677		IpRouteStatusMsgAdding,
15678		IpRouteStatusMsgAdded,
15679		IpRouteStatusMsgRemoving,
15680		IpRouteStatusMsgRemoved,
15681		IpRouteStatusMsgAddFailed,
15682		IpRouteStatusMsgRemoveFailed,
15683	}
15684}
15685
15686const (
15687	// LDAPSStatusEnabling is a LDAPSStatus enum value
15688	LDAPSStatusEnabling = "Enabling"
15689
15690	// LDAPSStatusEnabled is a LDAPSStatus enum value
15691	LDAPSStatusEnabled = "Enabled"
15692
15693	// LDAPSStatusEnableFailed is a LDAPSStatus enum value
15694	LDAPSStatusEnableFailed = "EnableFailed"
15695
15696	// LDAPSStatusDisabled is a LDAPSStatus enum value
15697	LDAPSStatusDisabled = "Disabled"
15698)
15699
15700// LDAPSStatus_Values returns all elements of the LDAPSStatus enum
15701func LDAPSStatus_Values() []string {
15702	return []string{
15703		LDAPSStatusEnabling,
15704		LDAPSStatusEnabled,
15705		LDAPSStatusEnableFailed,
15706		LDAPSStatusDisabled,
15707	}
15708}
15709
15710const (
15711	// LDAPSTypeClient is a LDAPSType enum value
15712	LDAPSTypeClient = "Client"
15713)
15714
15715// LDAPSType_Values returns all elements of the LDAPSType enum
15716func LDAPSType_Values() []string {
15717	return []string{
15718		LDAPSTypeClient,
15719	}
15720}
15721
15722const (
15723	// RadiusAuthenticationProtocolPap is a RadiusAuthenticationProtocol enum value
15724	RadiusAuthenticationProtocolPap = "PAP"
15725
15726	// RadiusAuthenticationProtocolChap is a RadiusAuthenticationProtocol enum value
15727	RadiusAuthenticationProtocolChap = "CHAP"
15728
15729	// RadiusAuthenticationProtocolMsChapv1 is a RadiusAuthenticationProtocol enum value
15730	RadiusAuthenticationProtocolMsChapv1 = "MS-CHAPv1"
15731
15732	// RadiusAuthenticationProtocolMsChapv2 is a RadiusAuthenticationProtocol enum value
15733	RadiusAuthenticationProtocolMsChapv2 = "MS-CHAPv2"
15734)
15735
15736// RadiusAuthenticationProtocol_Values returns all elements of the RadiusAuthenticationProtocol enum
15737func RadiusAuthenticationProtocol_Values() []string {
15738	return []string{
15739		RadiusAuthenticationProtocolPap,
15740		RadiusAuthenticationProtocolChap,
15741		RadiusAuthenticationProtocolMsChapv1,
15742		RadiusAuthenticationProtocolMsChapv2,
15743	}
15744}
15745
15746const (
15747	// RadiusStatusCreating is a RadiusStatus enum value
15748	RadiusStatusCreating = "Creating"
15749
15750	// RadiusStatusCompleted is a RadiusStatus enum value
15751	RadiusStatusCompleted = "Completed"
15752
15753	// RadiusStatusFailed is a RadiusStatus enum value
15754	RadiusStatusFailed = "Failed"
15755)
15756
15757// RadiusStatus_Values returns all elements of the RadiusStatus enum
15758func RadiusStatus_Values() []string {
15759	return []string{
15760		RadiusStatusCreating,
15761		RadiusStatusCompleted,
15762		RadiusStatusFailed,
15763	}
15764}
15765
15766const (
15767	// RegionTypePrimary is a RegionType enum value
15768	RegionTypePrimary = "Primary"
15769
15770	// RegionTypeAdditional is a RegionType enum value
15771	RegionTypeAdditional = "Additional"
15772)
15773
15774// RegionType_Values returns all elements of the RegionType enum
15775func RegionType_Values() []string {
15776	return []string{
15777		RegionTypePrimary,
15778		RegionTypeAdditional,
15779	}
15780}
15781
15782const (
15783	// ReplicationScopeDomain is a ReplicationScope enum value
15784	ReplicationScopeDomain = "Domain"
15785)
15786
15787// ReplicationScope_Values returns all elements of the ReplicationScope enum
15788func ReplicationScope_Values() []string {
15789	return []string{
15790		ReplicationScopeDomain,
15791	}
15792}
15793
15794const (
15795	// SchemaExtensionStatusInitializing is a SchemaExtensionStatus enum value
15796	SchemaExtensionStatusInitializing = "Initializing"
15797
15798	// SchemaExtensionStatusCreatingSnapshot is a SchemaExtensionStatus enum value
15799	SchemaExtensionStatusCreatingSnapshot = "CreatingSnapshot"
15800
15801	// SchemaExtensionStatusUpdatingSchema is a SchemaExtensionStatus enum value
15802	SchemaExtensionStatusUpdatingSchema = "UpdatingSchema"
15803
15804	// SchemaExtensionStatusReplicating is a SchemaExtensionStatus enum value
15805	SchemaExtensionStatusReplicating = "Replicating"
15806
15807	// SchemaExtensionStatusCancelInProgress is a SchemaExtensionStatus enum value
15808	SchemaExtensionStatusCancelInProgress = "CancelInProgress"
15809
15810	// SchemaExtensionStatusRollbackInProgress is a SchemaExtensionStatus enum value
15811	SchemaExtensionStatusRollbackInProgress = "RollbackInProgress"
15812
15813	// SchemaExtensionStatusCancelled is a SchemaExtensionStatus enum value
15814	SchemaExtensionStatusCancelled = "Cancelled"
15815
15816	// SchemaExtensionStatusFailed is a SchemaExtensionStatus enum value
15817	SchemaExtensionStatusFailed = "Failed"
15818
15819	// SchemaExtensionStatusCompleted is a SchemaExtensionStatus enum value
15820	SchemaExtensionStatusCompleted = "Completed"
15821)
15822
15823// SchemaExtensionStatus_Values returns all elements of the SchemaExtensionStatus enum
15824func SchemaExtensionStatus_Values() []string {
15825	return []string{
15826		SchemaExtensionStatusInitializing,
15827		SchemaExtensionStatusCreatingSnapshot,
15828		SchemaExtensionStatusUpdatingSchema,
15829		SchemaExtensionStatusReplicating,
15830		SchemaExtensionStatusCancelInProgress,
15831		SchemaExtensionStatusRollbackInProgress,
15832		SchemaExtensionStatusCancelled,
15833		SchemaExtensionStatusFailed,
15834		SchemaExtensionStatusCompleted,
15835	}
15836}
15837
15838const (
15839	// SelectiveAuthEnabled is a SelectiveAuth enum value
15840	SelectiveAuthEnabled = "Enabled"
15841
15842	// SelectiveAuthDisabled is a SelectiveAuth enum value
15843	SelectiveAuthDisabled = "Disabled"
15844)
15845
15846// SelectiveAuth_Values returns all elements of the SelectiveAuth enum
15847func SelectiveAuth_Values() []string {
15848	return []string{
15849		SelectiveAuthEnabled,
15850		SelectiveAuthDisabled,
15851	}
15852}
15853
15854const (
15855	// ShareMethodOrganizations is a ShareMethod enum value
15856	ShareMethodOrganizations = "ORGANIZATIONS"
15857
15858	// ShareMethodHandshake is a ShareMethod enum value
15859	ShareMethodHandshake = "HANDSHAKE"
15860)
15861
15862// ShareMethod_Values returns all elements of the ShareMethod enum
15863func ShareMethod_Values() []string {
15864	return []string{
15865		ShareMethodOrganizations,
15866		ShareMethodHandshake,
15867	}
15868}
15869
15870const (
15871	// ShareStatusShared is a ShareStatus enum value
15872	ShareStatusShared = "Shared"
15873
15874	// ShareStatusPendingAcceptance is a ShareStatus enum value
15875	ShareStatusPendingAcceptance = "PendingAcceptance"
15876
15877	// ShareStatusRejected is a ShareStatus enum value
15878	ShareStatusRejected = "Rejected"
15879
15880	// ShareStatusRejecting is a ShareStatus enum value
15881	ShareStatusRejecting = "Rejecting"
15882
15883	// ShareStatusRejectFailed is a ShareStatus enum value
15884	ShareStatusRejectFailed = "RejectFailed"
15885
15886	// ShareStatusSharing is a ShareStatus enum value
15887	ShareStatusSharing = "Sharing"
15888
15889	// ShareStatusShareFailed is a ShareStatus enum value
15890	ShareStatusShareFailed = "ShareFailed"
15891
15892	// ShareStatusDeleted is a ShareStatus enum value
15893	ShareStatusDeleted = "Deleted"
15894
15895	// ShareStatusDeleting is a ShareStatus enum value
15896	ShareStatusDeleting = "Deleting"
15897)
15898
15899// ShareStatus_Values returns all elements of the ShareStatus enum
15900func ShareStatus_Values() []string {
15901	return []string{
15902		ShareStatusShared,
15903		ShareStatusPendingAcceptance,
15904		ShareStatusRejected,
15905		ShareStatusRejecting,
15906		ShareStatusRejectFailed,
15907		ShareStatusSharing,
15908		ShareStatusShareFailed,
15909		ShareStatusDeleted,
15910		ShareStatusDeleting,
15911	}
15912}
15913
15914const (
15915	// SnapshotStatusCreating is a SnapshotStatus enum value
15916	SnapshotStatusCreating = "Creating"
15917
15918	// SnapshotStatusCompleted is a SnapshotStatus enum value
15919	SnapshotStatusCompleted = "Completed"
15920
15921	// SnapshotStatusFailed is a SnapshotStatus enum value
15922	SnapshotStatusFailed = "Failed"
15923)
15924
15925// SnapshotStatus_Values returns all elements of the SnapshotStatus enum
15926func SnapshotStatus_Values() []string {
15927	return []string{
15928		SnapshotStatusCreating,
15929		SnapshotStatusCompleted,
15930		SnapshotStatusFailed,
15931	}
15932}
15933
15934const (
15935	// SnapshotTypeAuto is a SnapshotType enum value
15936	SnapshotTypeAuto = "Auto"
15937
15938	// SnapshotTypeManual is a SnapshotType enum value
15939	SnapshotTypeManual = "Manual"
15940)
15941
15942// SnapshotType_Values returns all elements of the SnapshotType enum
15943func SnapshotType_Values() []string {
15944	return []string{
15945		SnapshotTypeAuto,
15946		SnapshotTypeManual,
15947	}
15948}
15949
15950const (
15951	// TargetTypeAccount is a TargetType enum value
15952	TargetTypeAccount = "ACCOUNT"
15953)
15954
15955// TargetType_Values returns all elements of the TargetType enum
15956func TargetType_Values() []string {
15957	return []string{
15958		TargetTypeAccount,
15959	}
15960}
15961
15962const (
15963	// TopicStatusRegistered is a TopicStatus enum value
15964	TopicStatusRegistered = "Registered"
15965
15966	// TopicStatusTopicnotfound is a TopicStatus enum value
15967	TopicStatusTopicnotfound = "Topic not found"
15968
15969	// TopicStatusFailed is a TopicStatus enum value
15970	TopicStatusFailed = "Failed"
15971
15972	// TopicStatusDeleted is a TopicStatus enum value
15973	TopicStatusDeleted = "Deleted"
15974)
15975
15976// TopicStatus_Values returns all elements of the TopicStatus enum
15977func TopicStatus_Values() []string {
15978	return []string{
15979		TopicStatusRegistered,
15980		TopicStatusTopicnotfound,
15981		TopicStatusFailed,
15982		TopicStatusDeleted,
15983	}
15984}
15985
15986const (
15987	// TrustDirectionOneWayOutgoing is a TrustDirection enum value
15988	TrustDirectionOneWayOutgoing = "One-Way: Outgoing"
15989
15990	// TrustDirectionOneWayIncoming is a TrustDirection enum value
15991	TrustDirectionOneWayIncoming = "One-Way: Incoming"
15992
15993	// TrustDirectionTwoWay is a TrustDirection enum value
15994	TrustDirectionTwoWay = "Two-Way"
15995)
15996
15997// TrustDirection_Values returns all elements of the TrustDirection enum
15998func TrustDirection_Values() []string {
15999	return []string{
16000		TrustDirectionOneWayOutgoing,
16001		TrustDirectionOneWayIncoming,
16002		TrustDirectionTwoWay,
16003	}
16004}
16005
16006const (
16007	// TrustStateCreating is a TrustState enum value
16008	TrustStateCreating = "Creating"
16009
16010	// TrustStateCreated is a TrustState enum value
16011	TrustStateCreated = "Created"
16012
16013	// TrustStateVerifying is a TrustState enum value
16014	TrustStateVerifying = "Verifying"
16015
16016	// TrustStateVerifyFailed is a TrustState enum value
16017	TrustStateVerifyFailed = "VerifyFailed"
16018
16019	// TrustStateVerified is a TrustState enum value
16020	TrustStateVerified = "Verified"
16021
16022	// TrustStateUpdating is a TrustState enum value
16023	TrustStateUpdating = "Updating"
16024
16025	// TrustStateUpdateFailed is a TrustState enum value
16026	TrustStateUpdateFailed = "UpdateFailed"
16027
16028	// TrustStateUpdated is a TrustState enum value
16029	TrustStateUpdated = "Updated"
16030
16031	// TrustStateDeleting is a TrustState enum value
16032	TrustStateDeleting = "Deleting"
16033
16034	// TrustStateDeleted is a TrustState enum value
16035	TrustStateDeleted = "Deleted"
16036
16037	// TrustStateFailed is a TrustState enum value
16038	TrustStateFailed = "Failed"
16039)
16040
16041// TrustState_Values returns all elements of the TrustState enum
16042func TrustState_Values() []string {
16043	return []string{
16044		TrustStateCreating,
16045		TrustStateCreated,
16046		TrustStateVerifying,
16047		TrustStateVerifyFailed,
16048		TrustStateVerified,
16049		TrustStateUpdating,
16050		TrustStateUpdateFailed,
16051		TrustStateUpdated,
16052		TrustStateDeleting,
16053		TrustStateDeleted,
16054		TrustStateFailed,
16055	}
16056}
16057
16058const (
16059	// TrustTypeForest is a TrustType enum value
16060	TrustTypeForest = "Forest"
16061
16062	// TrustTypeExternal is a TrustType enum value
16063	TrustTypeExternal = "External"
16064)
16065
16066// TrustType_Values returns all elements of the TrustType enum
16067func TrustType_Values() []string {
16068	return []string{
16069		TrustTypeForest,
16070		TrustTypeExternal,
16071	}
16072}
16073