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 Amazon Web Services
79//   account.
80//
81//   * ClientException
82//   A client exception has occurred.
83//
84//   * ServiceException
85//   An exception has occurred in Directory Service.
86//
87// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AcceptSharedDirectory
88func (c *DirectoryService) AcceptSharedDirectory(input *AcceptSharedDirectoryInput) (*AcceptSharedDirectoryOutput, error) {
89	req, out := c.AcceptSharedDirectoryRequest(input)
90	return out, req.Send()
91}
92
93// AcceptSharedDirectoryWithContext is the same as AcceptSharedDirectory with the addition of
94// the ability to pass a context and additional request options.
95//
96// See AcceptSharedDirectory for details on how to use this API operation.
97//
98// The context must be non-nil and will be used for request cancellation. If
99// the context is nil a panic will occur. In the future the SDK may create
100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
101// for more information on using Contexts.
102func (c *DirectoryService) AcceptSharedDirectoryWithContext(ctx aws.Context, input *AcceptSharedDirectoryInput, opts ...request.Option) (*AcceptSharedDirectoryOutput, error) {
103	req, out := c.AcceptSharedDirectoryRequest(input)
104	req.SetContext(ctx)
105	req.ApplyOptions(opts...)
106	return out, req.Send()
107}
108
109const opAddIpRoutes = "AddIpRoutes"
110
111// AddIpRoutesRequest generates a "aws/request.Request" representing the
112// client's request for the AddIpRoutes operation. The "output" return
113// value will be populated with the request's response once the request completes
114// successfully.
115//
116// Use "Send" method on the returned Request to send the API call to the service.
117// the "output" return value is not valid until after Send returns without error.
118//
119// See AddIpRoutes for more information on using the AddIpRoutes
120// API call, and error handling.
121//
122// This method is useful when you want to inject custom logic or configuration
123// into the SDK's request lifecycle. Such as custom headers, or retry logic.
124//
125//
126//    // Example sending a request using the AddIpRoutesRequest method.
127//    req, resp := client.AddIpRoutesRequest(params)
128//
129//    err := req.Send()
130//    if err == nil { // resp is now filled
131//        fmt.Println(resp)
132//    }
133//
134// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutes
135func (c *DirectoryService) AddIpRoutesRequest(input *AddIpRoutesInput) (req *request.Request, output *AddIpRoutesOutput) {
136	op := &request.Operation{
137		Name:       opAddIpRoutes,
138		HTTPMethod: "POST",
139		HTTPPath:   "/",
140	}
141
142	if input == nil {
143		input = &AddIpRoutesInput{}
144	}
145
146	output = &AddIpRoutesOutput{}
147	req = c.newRequest(op, input, output)
148	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
149	return
150}
151
152// AddIpRoutes API operation for AWS Directory Service.
153//
154// If the DNS server for your self-managed domain uses a publicly addressable
155// IP address, you must add a CIDR address block to correctly route traffic
156// to and from your Microsoft AD on Amazon Web Services. AddIpRoutes adds this
157// address block. You can also use AddIpRoutes to facilitate routing traffic
158// that uses public IP ranges from your Microsoft AD on Amazon Web Services
159// to a peer VPC.
160//
161// Before you call AddIpRoutes, ensure that all of the required permissions
162// have been explicitly granted through a policy. For details about what permissions
163// are required to run the AddIpRoutes operation, see Directory Service API
164// Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
165//
166// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
167// with awserr.Error's Code and Message methods to get detailed information about
168// the error.
169//
170// See the AWS API reference guide for AWS Directory Service's
171// API operation AddIpRoutes for usage and error information.
172//
173// Returned Error Types:
174//   * EntityDoesNotExistException
175//   The specified entity could not be found.
176//
177//   * EntityAlreadyExistsException
178//   The specified entity already exists.
179//
180//   * InvalidParameterException
181//   One or more parameters are not valid.
182//
183//   * DirectoryUnavailableException
184//   The specified directory is unavailable or could not be found.
185//
186//   * IpRouteLimitExceededException
187//   The maximum allowed number of IP addresses was exceeded. The default limit
188//   is 100 IP address blocks.
189//
190//   * ClientException
191//   A client exception has occurred.
192//
193//   * ServiceException
194//   An exception has occurred in Directory Service.
195//
196// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutes
197func (c *DirectoryService) AddIpRoutes(input *AddIpRoutesInput) (*AddIpRoutesOutput, error) {
198	req, out := c.AddIpRoutesRequest(input)
199	return out, req.Send()
200}
201
202// AddIpRoutesWithContext is the same as AddIpRoutes with the addition of
203// the ability to pass a context and additional request options.
204//
205// See AddIpRoutes for details on how to use this API operation.
206//
207// The context must be non-nil and will be used for request cancellation. If
208// the context is nil a panic will occur. In the future the SDK may create
209// sub-contexts for http.Requests. See https://golang.org/pkg/context/
210// for more information on using Contexts.
211func (c *DirectoryService) AddIpRoutesWithContext(ctx aws.Context, input *AddIpRoutesInput, opts ...request.Option) (*AddIpRoutesOutput, error) {
212	req, out := c.AddIpRoutesRequest(input)
213	req.SetContext(ctx)
214	req.ApplyOptions(opts...)
215	return out, req.Send()
216}
217
218const opAddRegion = "AddRegion"
219
220// AddRegionRequest generates a "aws/request.Request" representing the
221// client's request for the AddRegion operation. The "output" return
222// value will be populated with the request's response once the request completes
223// successfully.
224//
225// Use "Send" method on the returned Request to send the API call to the service.
226// the "output" return value is not valid until after Send returns without error.
227//
228// See AddRegion for more information on using the AddRegion
229// API call, and error handling.
230//
231// This method is useful when you want to inject custom logic or configuration
232// into the SDK's request lifecycle. Such as custom headers, or retry logic.
233//
234//
235//    // Example sending a request using the AddRegionRequest method.
236//    req, resp := client.AddRegionRequest(params)
237//
238//    err := req.Send()
239//    if err == nil { // resp is now filled
240//        fmt.Println(resp)
241//    }
242//
243// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddRegion
244func (c *DirectoryService) AddRegionRequest(input *AddRegionInput) (req *request.Request, output *AddRegionOutput) {
245	op := &request.Operation{
246		Name:       opAddRegion,
247		HTTPMethod: "POST",
248		HTTPPath:   "/",
249	}
250
251	if input == nil {
252		input = &AddRegionInput{}
253	}
254
255	output = &AddRegionOutput{}
256	req = c.newRequest(op, input, output)
257	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
258	return
259}
260
261// AddRegion API operation for AWS Directory Service.
262//
263// Adds two domain controllers in the specified Region for the specified directory.
264//
265// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
266// with awserr.Error's Code and Message methods to get detailed information about
267// the error.
268//
269// See the AWS API reference guide for AWS Directory Service's
270// API operation AddRegion for usage and error information.
271//
272// Returned Error Types:
273//   * DirectoryUnavailableException
274//   The specified directory is unavailable or could not be found.
275//
276//   * InvalidParameterException
277//   One or more parameters are not valid.
278//
279//   * EntityDoesNotExistException
280//   The specified entity could not be found.
281//
282//   * DirectoryAlreadyInRegionException
283//   The Region you specified is the same Region where the Managed Microsoft AD
284//   directory was created. Specify a different Region and try again.
285//
286//   * UnsupportedOperationException
287//   The operation is not supported.
288//
289//   * DirectoryDoesNotExistException
290//   The specified directory does not exist in the system.
291//
292//   * RegionLimitExceededException
293//   You have reached the limit for maximum number of simultaneous Region replications
294//   per directory.
295//
296//   * AccessDeniedException
297//   Client authentication is not available in this region at this time.
298//
299//   * ClientException
300//   A client exception has occurred.
301//
302//   * ServiceException
303//   An exception has occurred in Directory Service.
304//
305// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddRegion
306func (c *DirectoryService) AddRegion(input *AddRegionInput) (*AddRegionOutput, error) {
307	req, out := c.AddRegionRequest(input)
308	return out, req.Send()
309}
310
311// AddRegionWithContext is the same as AddRegion with the addition of
312// the ability to pass a context and additional request options.
313//
314// See AddRegion for details on how to use this API operation.
315//
316// The context must be non-nil and will be used for request cancellation. If
317// the context is nil a panic will occur. In the future the SDK may create
318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
319// for more information on using Contexts.
320func (c *DirectoryService) AddRegionWithContext(ctx aws.Context, input *AddRegionInput, opts ...request.Option) (*AddRegionOutput, error) {
321	req, out := c.AddRegionRequest(input)
322	req.SetContext(ctx)
323	req.ApplyOptions(opts...)
324	return out, req.Send()
325}
326
327const opAddTagsToResource = "AddTagsToResource"
328
329// AddTagsToResourceRequest generates a "aws/request.Request" representing the
330// client's request for the AddTagsToResource operation. The "output" return
331// value will be populated with the request's response once the request completes
332// successfully.
333//
334// Use "Send" method on the returned Request to send the API call to the service.
335// the "output" return value is not valid until after Send returns without error.
336//
337// See AddTagsToResource for more information on using the AddTagsToResource
338// API call, and error handling.
339//
340// This method is useful when you want to inject custom logic or configuration
341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
342//
343//
344//    // Example sending a request using the AddTagsToResourceRequest method.
345//    req, resp := client.AddTagsToResourceRequest(params)
346//
347//    err := req.Send()
348//    if err == nil { // resp is now filled
349//        fmt.Println(resp)
350//    }
351//
352// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResource
353func (c *DirectoryService) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) {
354	op := &request.Operation{
355		Name:       opAddTagsToResource,
356		HTTPMethod: "POST",
357		HTTPPath:   "/",
358	}
359
360	if input == nil {
361		input = &AddTagsToResourceInput{}
362	}
363
364	output = &AddTagsToResourceOutput{}
365	req = c.newRequest(op, input, output)
366	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
367	return
368}
369
370// AddTagsToResource API operation for AWS Directory Service.
371//
372// Adds or overwrites one or more tags for the specified directory. Each directory
373// can have a maximum of 50 tags. Each tag consists of a key and optional value.
374// Tag keys must be unique to each resource.
375//
376// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
377// with awserr.Error's Code and Message methods to get detailed information about
378// the error.
379//
380// See the AWS API reference guide for AWS Directory Service's
381// API operation AddTagsToResource for usage and error information.
382//
383// Returned Error Types:
384//   * EntityDoesNotExistException
385//   The specified entity could not be found.
386//
387//   * InvalidParameterException
388//   One or more parameters are not valid.
389//
390//   * TagLimitExceededException
391//   The maximum allowed number of tags was exceeded.
392//
393//   * ClientException
394//   A client exception has occurred.
395//
396//   * ServiceException
397//   An exception has occurred in Directory Service.
398//
399// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResource
400func (c *DirectoryService) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) {
401	req, out := c.AddTagsToResourceRequest(input)
402	return out, req.Send()
403}
404
405// AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of
406// the ability to pass a context and additional request options.
407//
408// See AddTagsToResource for details on how to use this API operation.
409//
410// The context must be non-nil and will be used for request cancellation. If
411// the context is nil a panic will occur. In the future the SDK may create
412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
413// for more information on using Contexts.
414func (c *DirectoryService) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) {
415	req, out := c.AddTagsToResourceRequest(input)
416	req.SetContext(ctx)
417	req.ApplyOptions(opts...)
418	return out, req.Send()
419}
420
421const opCancelSchemaExtension = "CancelSchemaExtension"
422
423// CancelSchemaExtensionRequest generates a "aws/request.Request" representing the
424// client's request for the CancelSchemaExtension operation. The "output" return
425// value will be populated with the request's response once the request completes
426// successfully.
427//
428// Use "Send" method on the returned Request to send the API call to the service.
429// the "output" return value is not valid until after Send returns without error.
430//
431// See CancelSchemaExtension for more information on using the CancelSchemaExtension
432// API call, and error handling.
433//
434// This method is useful when you want to inject custom logic or configuration
435// into the SDK's request lifecycle. Such as custom headers, or retry logic.
436//
437//
438//    // Example sending a request using the CancelSchemaExtensionRequest method.
439//    req, resp := client.CancelSchemaExtensionRequest(params)
440//
441//    err := req.Send()
442//    if err == nil { // resp is now filled
443//        fmt.Println(resp)
444//    }
445//
446// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtension
447func (c *DirectoryService) CancelSchemaExtensionRequest(input *CancelSchemaExtensionInput) (req *request.Request, output *CancelSchemaExtensionOutput) {
448	op := &request.Operation{
449		Name:       opCancelSchemaExtension,
450		HTTPMethod: "POST",
451		HTTPPath:   "/",
452	}
453
454	if input == nil {
455		input = &CancelSchemaExtensionInput{}
456	}
457
458	output = &CancelSchemaExtensionOutput{}
459	req = c.newRequest(op, input, output)
460	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
461	return
462}
463
464// CancelSchemaExtension API operation for AWS Directory Service.
465//
466// Cancels an in-progress schema extension to a Microsoft AD directory. Once
467// a schema extension has started replicating to all domain controllers, the
468// task can no longer be canceled. A schema extension can be canceled during
469// any of the following states; Initializing, CreatingSnapshot, and UpdatingSchema.
470//
471// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
472// with awserr.Error's Code and Message methods to get detailed information about
473// the error.
474//
475// See the AWS API reference guide for AWS Directory Service's
476// API operation CancelSchemaExtension for usage and error information.
477//
478// Returned Error Types:
479//   * EntityDoesNotExistException
480//   The specified entity could not be found.
481//
482//   * ClientException
483//   A client exception has occurred.
484//
485//   * ServiceException
486//   An exception has occurred in Directory Service.
487//
488// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtension
489func (c *DirectoryService) CancelSchemaExtension(input *CancelSchemaExtensionInput) (*CancelSchemaExtensionOutput, error) {
490	req, out := c.CancelSchemaExtensionRequest(input)
491	return out, req.Send()
492}
493
494// CancelSchemaExtensionWithContext is the same as CancelSchemaExtension with the addition of
495// the ability to pass a context and additional request options.
496//
497// See CancelSchemaExtension for details on how to use this API operation.
498//
499// The context must be non-nil and will be used for request cancellation. If
500// the context is nil a panic will occur. In the future the SDK may create
501// sub-contexts for http.Requests. See https://golang.org/pkg/context/
502// for more information on using Contexts.
503func (c *DirectoryService) CancelSchemaExtensionWithContext(ctx aws.Context, input *CancelSchemaExtensionInput, opts ...request.Option) (*CancelSchemaExtensionOutput, error) {
504	req, out := c.CancelSchemaExtensionRequest(input)
505	req.SetContext(ctx)
506	req.ApplyOptions(opts...)
507	return out, req.Send()
508}
509
510const opConnectDirectory = "ConnectDirectory"
511
512// ConnectDirectoryRequest generates a "aws/request.Request" representing the
513// client's request for the ConnectDirectory operation. The "output" return
514// value will be populated with the request's response once the request completes
515// successfully.
516//
517// Use "Send" method on the returned Request to send the API call to the service.
518// the "output" return value is not valid until after Send returns without error.
519//
520// See ConnectDirectory for more information on using the ConnectDirectory
521// API call, and error handling.
522//
523// This method is useful when you want to inject custom logic or configuration
524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
525//
526//
527//    // Example sending a request using the ConnectDirectoryRequest method.
528//    req, resp := client.ConnectDirectoryRequest(params)
529//
530//    err := req.Send()
531//    if err == nil { // resp is now filled
532//        fmt.Println(resp)
533//    }
534//
535// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectory
536func (c *DirectoryService) ConnectDirectoryRequest(input *ConnectDirectoryInput) (req *request.Request, output *ConnectDirectoryOutput) {
537	op := &request.Operation{
538		Name:       opConnectDirectory,
539		HTTPMethod: "POST",
540		HTTPPath:   "/",
541	}
542
543	if input == nil {
544		input = &ConnectDirectoryInput{}
545	}
546
547	output = &ConnectDirectoryOutput{}
548	req = c.newRequest(op, input, output)
549	return
550}
551
552// ConnectDirectory API operation for AWS Directory Service.
553//
554// Creates an AD Connector to connect to a self-managed directory.
555//
556// Before you call ConnectDirectory, ensure that all of the required permissions
557// have been explicitly granted through a policy. For details about what permissions
558// are required to run the ConnectDirectory operation, see Directory Service
559// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
560//
561// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
562// with awserr.Error's Code and Message methods to get detailed information about
563// the error.
564//
565// See the AWS API reference guide for AWS Directory Service's
566// API operation ConnectDirectory for usage and error information.
567//
568// Returned Error Types:
569//   * DirectoryLimitExceededException
570//   The maximum number of directories in the region has been reached. You can
571//   use the GetDirectoryLimits operation to determine your directory limits in
572//   the region.
573//
574//   * InvalidParameterException
575//   One or more parameters are not valid.
576//
577//   * ClientException
578//   A client exception has occurred.
579//
580//   * ServiceException
581//   An exception has occurred in Directory Service.
582//
583// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectory
584func (c *DirectoryService) ConnectDirectory(input *ConnectDirectoryInput) (*ConnectDirectoryOutput, error) {
585	req, out := c.ConnectDirectoryRequest(input)
586	return out, req.Send()
587}
588
589// ConnectDirectoryWithContext is the same as ConnectDirectory with the addition of
590// the ability to pass a context and additional request options.
591//
592// See ConnectDirectory for details on how to use this API operation.
593//
594// The context must be non-nil and will be used for request cancellation. If
595// the context is nil a panic will occur. In the future the SDK may create
596// sub-contexts for http.Requests. See https://golang.org/pkg/context/
597// for more information on using Contexts.
598func (c *DirectoryService) ConnectDirectoryWithContext(ctx aws.Context, input *ConnectDirectoryInput, opts ...request.Option) (*ConnectDirectoryOutput, error) {
599	req, out := c.ConnectDirectoryRequest(input)
600	req.SetContext(ctx)
601	req.ApplyOptions(opts...)
602	return out, req.Send()
603}
604
605const opCreateAlias = "CreateAlias"
606
607// CreateAliasRequest generates a "aws/request.Request" representing the
608// client's request for the CreateAlias operation. The "output" return
609// value will be populated with the request's response once the request completes
610// successfully.
611//
612// Use "Send" method on the returned Request to send the API call to the service.
613// the "output" return value is not valid until after Send returns without error.
614//
615// See CreateAlias for more information on using the CreateAlias
616// API call, and error handling.
617//
618// This method is useful when you want to inject custom logic or configuration
619// into the SDK's request lifecycle. Such as custom headers, or retry logic.
620//
621//
622//    // Example sending a request using the CreateAliasRequest method.
623//    req, resp := client.CreateAliasRequest(params)
624//
625//    err := req.Send()
626//    if err == nil { // resp is now filled
627//        fmt.Println(resp)
628//    }
629//
630// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAlias
631func (c *DirectoryService) CreateAliasRequest(input *CreateAliasInput) (req *request.Request, output *CreateAliasOutput) {
632	op := &request.Operation{
633		Name:       opCreateAlias,
634		HTTPMethod: "POST",
635		HTTPPath:   "/",
636	}
637
638	if input == nil {
639		input = &CreateAliasInput{}
640	}
641
642	output = &CreateAliasOutput{}
643	req = c.newRequest(op, input, output)
644	return
645}
646
647// CreateAlias API operation for AWS Directory Service.
648//
649// Creates an alias for a directory and assigns the alias to the directory.
650// The alias is used to construct the access URL for the directory, such as
651// http://<alias>.awsapps.com.
652//
653// After an alias has been created, it cannot be deleted or reused, so this
654// operation should only be used when absolutely necessary.
655//
656// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
657// with awserr.Error's Code and Message methods to get detailed information about
658// the error.
659//
660// See the AWS API reference guide for AWS Directory Service's
661// API operation CreateAlias for usage and error information.
662//
663// Returned Error Types:
664//   * EntityAlreadyExistsException
665//   The specified entity already exists.
666//
667//   * EntityDoesNotExistException
668//   The specified entity could not be found.
669//
670//   * InvalidParameterException
671//   One or more parameters are not valid.
672//
673//   * ClientException
674//   A client exception has occurred.
675//
676//   * ServiceException
677//   An exception has occurred in Directory Service.
678//
679// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAlias
680func (c *DirectoryService) CreateAlias(input *CreateAliasInput) (*CreateAliasOutput, error) {
681	req, out := c.CreateAliasRequest(input)
682	return out, req.Send()
683}
684
685// CreateAliasWithContext is the same as CreateAlias with the addition of
686// the ability to pass a context and additional request options.
687//
688// See CreateAlias for details on how to use this API operation.
689//
690// The context must be non-nil and will be used for request cancellation. If
691// the context is nil a panic will occur. In the future the SDK may create
692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
693// for more information on using Contexts.
694func (c *DirectoryService) CreateAliasWithContext(ctx aws.Context, input *CreateAliasInput, opts ...request.Option) (*CreateAliasOutput, error) {
695	req, out := c.CreateAliasRequest(input)
696	req.SetContext(ctx)
697	req.ApplyOptions(opts...)
698	return out, req.Send()
699}
700
701const opCreateComputer = "CreateComputer"
702
703// CreateComputerRequest generates a "aws/request.Request" representing the
704// client's request for the CreateComputer operation. The "output" return
705// value will be populated with the request's response once the request completes
706// successfully.
707//
708// Use "Send" method on the returned Request to send the API call to the service.
709// the "output" return value is not valid until after Send returns without error.
710//
711// See CreateComputer for more information on using the CreateComputer
712// API call, and error handling.
713//
714// This method is useful when you want to inject custom logic or configuration
715// into the SDK's request lifecycle. Such as custom headers, or retry logic.
716//
717//
718//    // Example sending a request using the CreateComputerRequest method.
719//    req, resp := client.CreateComputerRequest(params)
720//
721//    err := req.Send()
722//    if err == nil { // resp is now filled
723//        fmt.Println(resp)
724//    }
725//
726// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputer
727func (c *DirectoryService) CreateComputerRequest(input *CreateComputerInput) (req *request.Request, output *CreateComputerOutput) {
728	op := &request.Operation{
729		Name:       opCreateComputer,
730		HTTPMethod: "POST",
731		HTTPPath:   "/",
732	}
733
734	if input == nil {
735		input = &CreateComputerInput{}
736	}
737
738	output = &CreateComputerOutput{}
739	req = c.newRequest(op, input, output)
740	return
741}
742
743// CreateComputer API operation for AWS Directory Service.
744//
745// Creates an Active Directory computer object in the specified directory.
746//
747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
748// with awserr.Error's Code and Message methods to get detailed information about
749// the error.
750//
751// See the AWS API reference guide for AWS Directory Service's
752// API operation CreateComputer for usage and error information.
753//
754// Returned Error Types:
755//   * AuthenticationFailedException
756//   An authentication error occurred.
757//
758//   * DirectoryUnavailableException
759//   The specified directory is unavailable or could not be found.
760//
761//   * EntityAlreadyExistsException
762//   The specified entity already exists.
763//
764//   * EntityDoesNotExistException
765//   The specified entity could not be found.
766//
767//   * InvalidParameterException
768//   One or more parameters are not valid.
769//
770//   * UnsupportedOperationException
771//   The operation is not supported.
772//
773//   * ClientException
774//   A client exception has occurred.
775//
776//   * ServiceException
777//   An exception has occurred in Directory Service.
778//
779// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputer
780func (c *DirectoryService) CreateComputer(input *CreateComputerInput) (*CreateComputerOutput, error) {
781	req, out := c.CreateComputerRequest(input)
782	return out, req.Send()
783}
784
785// CreateComputerWithContext is the same as CreateComputer with the addition of
786// the ability to pass a context and additional request options.
787//
788// See CreateComputer for details on how to use this API operation.
789//
790// The context must be non-nil and will be used for request cancellation. If
791// the context is nil a panic will occur. In the future the SDK may create
792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
793// for more information on using Contexts.
794func (c *DirectoryService) CreateComputerWithContext(ctx aws.Context, input *CreateComputerInput, opts ...request.Option) (*CreateComputerOutput, error) {
795	req, out := c.CreateComputerRequest(input)
796	req.SetContext(ctx)
797	req.ApplyOptions(opts...)
798	return out, req.Send()
799}
800
801const opCreateConditionalForwarder = "CreateConditionalForwarder"
802
803// CreateConditionalForwarderRequest generates a "aws/request.Request" representing the
804// client's request for the CreateConditionalForwarder operation. The "output" return
805// value will be populated with the request's response once the request completes
806// successfully.
807//
808// Use "Send" method on the returned Request to send the API call to the service.
809// the "output" return value is not valid until after Send returns without error.
810//
811// See CreateConditionalForwarder for more information on using the CreateConditionalForwarder
812// API call, and error handling.
813//
814// This method is useful when you want to inject custom logic or configuration
815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
816//
817//
818//    // Example sending a request using the CreateConditionalForwarderRequest method.
819//    req, resp := client.CreateConditionalForwarderRequest(params)
820//
821//    err := req.Send()
822//    if err == nil { // resp is now filled
823//        fmt.Println(resp)
824//    }
825//
826// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarder
827func (c *DirectoryService) CreateConditionalForwarderRequest(input *CreateConditionalForwarderInput) (req *request.Request, output *CreateConditionalForwarderOutput) {
828	op := &request.Operation{
829		Name:       opCreateConditionalForwarder,
830		HTTPMethod: "POST",
831		HTTPPath:   "/",
832	}
833
834	if input == nil {
835		input = &CreateConditionalForwarderInput{}
836	}
837
838	output = &CreateConditionalForwarderOutput{}
839	req = c.newRequest(op, input, output)
840	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
841	return
842}
843
844// CreateConditionalForwarder API operation for AWS Directory Service.
845//
846// Creates a conditional forwarder associated with your Amazon Web Services
847// directory. Conditional forwarders are required in order to set up a trust
848// relationship with another domain. The conditional forwarder points to the
849// trusted domain.
850//
851// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
852// with awserr.Error's Code and Message methods to get detailed information about
853// the error.
854//
855// See the AWS API reference guide for AWS Directory Service's
856// API operation CreateConditionalForwarder for usage and error information.
857//
858// Returned Error Types:
859//   * EntityAlreadyExistsException
860//   The specified entity already exists.
861//
862//   * EntityDoesNotExistException
863//   The specified entity could not be found.
864//
865//   * DirectoryUnavailableException
866//   The specified directory is unavailable or could not be found.
867//
868//   * InvalidParameterException
869//   One or more parameters are not valid.
870//
871//   * UnsupportedOperationException
872//   The operation is not supported.
873//
874//   * ClientException
875//   A client exception has occurred.
876//
877//   * ServiceException
878//   An exception has occurred in Directory Service.
879//
880// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarder
881func (c *DirectoryService) CreateConditionalForwarder(input *CreateConditionalForwarderInput) (*CreateConditionalForwarderOutput, error) {
882	req, out := c.CreateConditionalForwarderRequest(input)
883	return out, req.Send()
884}
885
886// CreateConditionalForwarderWithContext is the same as CreateConditionalForwarder with the addition of
887// the ability to pass a context and additional request options.
888//
889// See CreateConditionalForwarder for details on how to use this API operation.
890//
891// The context must be non-nil and will be used for request cancellation. If
892// the context is nil a panic will occur. In the future the SDK may create
893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
894// for more information on using Contexts.
895func (c *DirectoryService) CreateConditionalForwarderWithContext(ctx aws.Context, input *CreateConditionalForwarderInput, opts ...request.Option) (*CreateConditionalForwarderOutput, error) {
896	req, out := c.CreateConditionalForwarderRequest(input)
897	req.SetContext(ctx)
898	req.ApplyOptions(opts...)
899	return out, req.Send()
900}
901
902const opCreateDirectory = "CreateDirectory"
903
904// CreateDirectoryRequest generates a "aws/request.Request" representing the
905// client's request for the CreateDirectory operation. The "output" return
906// value will be populated with the request's response once the request completes
907// successfully.
908//
909// Use "Send" method on the returned Request to send the API call to the service.
910// the "output" return value is not valid until after Send returns without error.
911//
912// See CreateDirectory for more information on using the CreateDirectory
913// API call, and error handling.
914//
915// This method is useful when you want to inject custom logic or configuration
916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
917//
918//
919//    // Example sending a request using the CreateDirectoryRequest method.
920//    req, resp := client.CreateDirectoryRequest(params)
921//
922//    err := req.Send()
923//    if err == nil { // resp is now filled
924//        fmt.Println(resp)
925//    }
926//
927// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory
928func (c *DirectoryService) CreateDirectoryRequest(input *CreateDirectoryInput) (req *request.Request, output *CreateDirectoryOutput) {
929	op := &request.Operation{
930		Name:       opCreateDirectory,
931		HTTPMethod: "POST",
932		HTTPPath:   "/",
933	}
934
935	if input == nil {
936		input = &CreateDirectoryInput{}
937	}
938
939	output = &CreateDirectoryOutput{}
940	req = c.newRequest(op, input, output)
941	return
942}
943
944// CreateDirectory API operation for AWS Directory Service.
945//
946// Creates a Simple AD directory. For more information, see Simple Active Directory
947// (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html)
948// in the Directory Service Admin Guide.
949//
950// Before you call CreateDirectory, ensure that all of the required permissions
951// have been explicitly granted through a policy. For details about what permissions
952// are required to run the CreateDirectory operation, see Directory Service
953// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
954//
955// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
956// with awserr.Error's Code and Message methods to get detailed information about
957// the error.
958//
959// See the AWS API reference guide for AWS Directory Service's
960// API operation CreateDirectory for usage and error information.
961//
962// Returned Error Types:
963//   * DirectoryLimitExceededException
964//   The maximum number of directories in the region has been reached. You can
965//   use the GetDirectoryLimits operation to determine your directory limits in
966//   the region.
967//
968//   * InvalidParameterException
969//   One or more parameters are not valid.
970//
971//   * ClientException
972//   A client exception has occurred.
973//
974//   * ServiceException
975//   An exception has occurred in Directory Service.
976//
977// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory
978func (c *DirectoryService) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
979	req, out := c.CreateDirectoryRequest(input)
980	return out, req.Send()
981}
982
983// CreateDirectoryWithContext is the same as CreateDirectory with the addition of
984// the ability to pass a context and additional request options.
985//
986// See CreateDirectory for details on how to use this API operation.
987//
988// The context must be non-nil and will be used for request cancellation. If
989// the context is nil a panic will occur. In the future the SDK may create
990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
991// for more information on using Contexts.
992func (c *DirectoryService) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
993	req, out := c.CreateDirectoryRequest(input)
994	req.SetContext(ctx)
995	req.ApplyOptions(opts...)
996	return out, req.Send()
997}
998
999const opCreateLogSubscription = "CreateLogSubscription"
1000
1001// CreateLogSubscriptionRequest generates a "aws/request.Request" representing the
1002// client's request for the CreateLogSubscription operation. The "output" return
1003// value will be populated with the request's response once the request completes
1004// successfully.
1005//
1006// Use "Send" method on the returned Request to send the API call to the service.
1007// the "output" return value is not valid until after Send returns without error.
1008//
1009// See CreateLogSubscription for more information on using the CreateLogSubscription
1010// API call, and error handling.
1011//
1012// This method is useful when you want to inject custom logic or configuration
1013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1014//
1015//
1016//    // Example sending a request using the CreateLogSubscriptionRequest method.
1017//    req, resp := client.CreateLogSubscriptionRequest(params)
1018//
1019//    err := req.Send()
1020//    if err == nil { // resp is now filled
1021//        fmt.Println(resp)
1022//    }
1023//
1024// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
1025func (c *DirectoryService) CreateLogSubscriptionRequest(input *CreateLogSubscriptionInput) (req *request.Request, output *CreateLogSubscriptionOutput) {
1026	op := &request.Operation{
1027		Name:       opCreateLogSubscription,
1028		HTTPMethod: "POST",
1029		HTTPPath:   "/",
1030	}
1031
1032	if input == nil {
1033		input = &CreateLogSubscriptionInput{}
1034	}
1035
1036	output = &CreateLogSubscriptionOutput{}
1037	req = c.newRequest(op, input, output)
1038	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1039	return
1040}
1041
1042// CreateLogSubscription API operation for AWS Directory Service.
1043//
1044// Creates a subscription to forward real-time Directory Service domain controller
1045// security logs to the specified Amazon CloudWatch log group in your Amazon
1046// Web Services account.
1047//
1048// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1049// with awserr.Error's Code and Message methods to get detailed information about
1050// the error.
1051//
1052// See the AWS API reference guide for AWS Directory Service's
1053// API operation CreateLogSubscription for usage and error information.
1054//
1055// Returned Error Types:
1056//   * EntityAlreadyExistsException
1057//   The specified entity already exists.
1058//
1059//   * EntityDoesNotExistException
1060//   The specified entity could not be found.
1061//
1062//   * UnsupportedOperationException
1063//   The operation is not supported.
1064//
1065//   * InsufficientPermissionsException
1066//   The account does not have sufficient permission to perform the operation.
1067//
1068//   * ClientException
1069//   A client exception has occurred.
1070//
1071//   * ServiceException
1072//   An exception has occurred in Directory Service.
1073//
1074// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
1075func (c *DirectoryService) CreateLogSubscription(input *CreateLogSubscriptionInput) (*CreateLogSubscriptionOutput, error) {
1076	req, out := c.CreateLogSubscriptionRequest(input)
1077	return out, req.Send()
1078}
1079
1080// CreateLogSubscriptionWithContext is the same as CreateLogSubscription with the addition of
1081// the ability to pass a context and additional request options.
1082//
1083// See CreateLogSubscription for details on how to use this API operation.
1084//
1085// The context must be non-nil and will be used for request cancellation. If
1086// the context is nil a panic will occur. In the future the SDK may create
1087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1088// for more information on using Contexts.
1089func (c *DirectoryService) CreateLogSubscriptionWithContext(ctx aws.Context, input *CreateLogSubscriptionInput, opts ...request.Option) (*CreateLogSubscriptionOutput, error) {
1090	req, out := c.CreateLogSubscriptionRequest(input)
1091	req.SetContext(ctx)
1092	req.ApplyOptions(opts...)
1093	return out, req.Send()
1094}
1095
1096const opCreateMicrosoftAD = "CreateMicrosoftAD"
1097
1098// CreateMicrosoftADRequest generates a "aws/request.Request" representing the
1099// client's request for the CreateMicrosoftAD operation. The "output" return
1100// value will be populated with the request's response once the request completes
1101// successfully.
1102//
1103// Use "Send" method on the returned Request to send the API call to the service.
1104// the "output" return value is not valid until after Send returns without error.
1105//
1106// See CreateMicrosoftAD for more information on using the CreateMicrosoftAD
1107// API call, and error handling.
1108//
1109// This method is useful when you want to inject custom logic or configuration
1110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1111//
1112//
1113//    // Example sending a request using the CreateMicrosoftADRequest method.
1114//    req, resp := client.CreateMicrosoftADRequest(params)
1115//
1116//    err := req.Send()
1117//    if err == nil { // resp is now filled
1118//        fmt.Println(resp)
1119//    }
1120//
1121// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1122func (c *DirectoryService) CreateMicrosoftADRequest(input *CreateMicrosoftADInput) (req *request.Request, output *CreateMicrosoftADOutput) {
1123	op := &request.Operation{
1124		Name:       opCreateMicrosoftAD,
1125		HTTPMethod: "POST",
1126		HTTPPath:   "/",
1127	}
1128
1129	if input == nil {
1130		input = &CreateMicrosoftADInput{}
1131	}
1132
1133	output = &CreateMicrosoftADOutput{}
1134	req = c.newRequest(op, input, output)
1135	return
1136}
1137
1138// CreateMicrosoftAD API operation for AWS Directory Service.
1139//
1140// Creates a Microsoft AD directory in the Amazon Web Services Cloud. For more
1141// information, see Managed Microsoft AD (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)
1142// in the Directory Service Admin Guide.
1143//
1144// Before you call CreateMicrosoftAD, ensure that all of the required permissions
1145// have been explicitly granted through a policy. For details about what permissions
1146// are required to run the CreateMicrosoftAD operation, see Directory Service
1147// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1148//
1149// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1150// with awserr.Error's Code and Message methods to get detailed information about
1151// the error.
1152//
1153// See the AWS API reference guide for AWS Directory Service's
1154// API operation CreateMicrosoftAD for usage and error information.
1155//
1156// Returned Error Types:
1157//   * DirectoryLimitExceededException
1158//   The maximum number of directories in the region has been reached. You can
1159//   use the GetDirectoryLimits operation to determine your directory limits in
1160//   the region.
1161//
1162//   * InvalidParameterException
1163//   One or more parameters are not valid.
1164//
1165//   * ClientException
1166//   A client exception has occurred.
1167//
1168//   * ServiceException
1169//   An exception has occurred in Directory Service.
1170//
1171//   * UnsupportedOperationException
1172//   The operation is not supported.
1173//
1174// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1175func (c *DirectoryService) CreateMicrosoftAD(input *CreateMicrosoftADInput) (*CreateMicrosoftADOutput, error) {
1176	req, out := c.CreateMicrosoftADRequest(input)
1177	return out, req.Send()
1178}
1179
1180// CreateMicrosoftADWithContext is the same as CreateMicrosoftAD with the addition of
1181// the ability to pass a context and additional request options.
1182//
1183// See CreateMicrosoftAD for details on how to use this API operation.
1184//
1185// The context must be non-nil and will be used for request cancellation. If
1186// the context is nil a panic will occur. In the future the SDK may create
1187// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1188// for more information on using Contexts.
1189func (c *DirectoryService) CreateMicrosoftADWithContext(ctx aws.Context, input *CreateMicrosoftADInput, opts ...request.Option) (*CreateMicrosoftADOutput, error) {
1190	req, out := c.CreateMicrosoftADRequest(input)
1191	req.SetContext(ctx)
1192	req.ApplyOptions(opts...)
1193	return out, req.Send()
1194}
1195
1196const opCreateSnapshot = "CreateSnapshot"
1197
1198// CreateSnapshotRequest generates a "aws/request.Request" representing the
1199// client's request for the CreateSnapshot operation. The "output" return
1200// value will be populated with the request's response once the request completes
1201// successfully.
1202//
1203// Use "Send" method on the returned Request to send the API call to the service.
1204// the "output" return value is not valid until after Send returns without error.
1205//
1206// See CreateSnapshot for more information on using the CreateSnapshot
1207// API call, and error handling.
1208//
1209// This method is useful when you want to inject custom logic or configuration
1210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1211//
1212//
1213//    // Example sending a request using the CreateSnapshotRequest method.
1214//    req, resp := client.CreateSnapshotRequest(params)
1215//
1216//    err := req.Send()
1217//    if err == nil { // resp is now filled
1218//        fmt.Println(resp)
1219//    }
1220//
1221// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1222func (c *DirectoryService) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
1223	op := &request.Operation{
1224		Name:       opCreateSnapshot,
1225		HTTPMethod: "POST",
1226		HTTPPath:   "/",
1227	}
1228
1229	if input == nil {
1230		input = &CreateSnapshotInput{}
1231	}
1232
1233	output = &CreateSnapshotOutput{}
1234	req = c.newRequest(op, input, output)
1235	return
1236}
1237
1238// CreateSnapshot API operation for AWS Directory Service.
1239//
1240// Creates a snapshot of a Simple AD or Microsoft AD directory in the Amazon
1241// Web Services cloud.
1242//
1243// You cannot take snapshots of AD Connector directories.
1244//
1245// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1246// with awserr.Error's Code and Message methods to get detailed information about
1247// the error.
1248//
1249// See the AWS API reference guide for AWS Directory Service's
1250// API operation CreateSnapshot for usage and error information.
1251//
1252// Returned Error Types:
1253//   * EntityDoesNotExistException
1254//   The specified entity could not be found.
1255//
1256//   * InvalidParameterException
1257//   One or more parameters are not valid.
1258//
1259//   * SnapshotLimitExceededException
1260//   The maximum number of manual snapshots for the directory has been reached.
1261//   You can use the GetSnapshotLimits operation to determine the snapshot limits
1262//   for a directory.
1263//
1264//   * ClientException
1265//   A client exception has occurred.
1266//
1267//   * ServiceException
1268//   An exception has occurred in Directory Service.
1269//
1270// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1271func (c *DirectoryService) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
1272	req, out := c.CreateSnapshotRequest(input)
1273	return out, req.Send()
1274}
1275
1276// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
1277// the ability to pass a context and additional request options.
1278//
1279// See CreateSnapshot for details on how to use this API operation.
1280//
1281// The context must be non-nil and will be used for request cancellation. If
1282// the context is nil a panic will occur. In the future the SDK may create
1283// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1284// for more information on using Contexts.
1285func (c *DirectoryService) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
1286	req, out := c.CreateSnapshotRequest(input)
1287	req.SetContext(ctx)
1288	req.ApplyOptions(opts...)
1289	return out, req.Send()
1290}
1291
1292const opCreateTrust = "CreateTrust"
1293
1294// CreateTrustRequest generates a "aws/request.Request" representing the
1295// client's request for the CreateTrust operation. The "output" return
1296// value will be populated with the request's response once the request completes
1297// successfully.
1298//
1299// Use "Send" method on the returned Request to send the API call to the service.
1300// the "output" return value is not valid until after Send returns without error.
1301//
1302// See CreateTrust for more information on using the CreateTrust
1303// API call, and error handling.
1304//
1305// This method is useful when you want to inject custom logic or configuration
1306// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1307//
1308//
1309//    // Example sending a request using the CreateTrustRequest method.
1310//    req, resp := client.CreateTrustRequest(params)
1311//
1312//    err := req.Send()
1313//    if err == nil { // resp is now filled
1314//        fmt.Println(resp)
1315//    }
1316//
1317// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1318func (c *DirectoryService) CreateTrustRequest(input *CreateTrustInput) (req *request.Request, output *CreateTrustOutput) {
1319	op := &request.Operation{
1320		Name:       opCreateTrust,
1321		HTTPMethod: "POST",
1322		HTTPPath:   "/",
1323	}
1324
1325	if input == nil {
1326		input = &CreateTrustInput{}
1327	}
1328
1329	output = &CreateTrustOutput{}
1330	req = c.newRequest(op, input, output)
1331	return
1332}
1333
1334// CreateTrust API operation for AWS Directory Service.
1335//
1336// Directory Service for Microsoft Active Directory allows you to configure
1337// trust relationships. For example, you can establish a trust between your
1338// Managed Microsoft AD directory, and your existing self-managed Microsoft
1339// Active Directory. This would allow you to provide users and groups access
1340// to resources in either domain, with a single set of credentials.
1341//
1342// This action initiates the creation of the Amazon Web Services side of a trust
1343// relationship between an Managed Microsoft AD directory and an external domain.
1344// You can create either a forest trust or an external trust.
1345//
1346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1347// with awserr.Error's Code and Message methods to get detailed information about
1348// the error.
1349//
1350// See the AWS API reference guide for AWS Directory Service's
1351// API operation CreateTrust for usage and error information.
1352//
1353// Returned Error Types:
1354//   * EntityAlreadyExistsException
1355//   The specified entity already exists.
1356//
1357//   * EntityDoesNotExistException
1358//   The specified entity could not be found.
1359//
1360//   * InvalidParameterException
1361//   One or more parameters are not valid.
1362//
1363//   * ClientException
1364//   A client exception has occurred.
1365//
1366//   * ServiceException
1367//   An exception has occurred in Directory Service.
1368//
1369//   * UnsupportedOperationException
1370//   The operation is not supported.
1371//
1372// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1373func (c *DirectoryService) CreateTrust(input *CreateTrustInput) (*CreateTrustOutput, error) {
1374	req, out := c.CreateTrustRequest(input)
1375	return out, req.Send()
1376}
1377
1378// CreateTrustWithContext is the same as CreateTrust with the addition of
1379// the ability to pass a context and additional request options.
1380//
1381// See CreateTrust for details on how to use this API operation.
1382//
1383// The context must be non-nil and will be used for request cancellation. If
1384// the context is nil a panic will occur. In the future the SDK may create
1385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1386// for more information on using Contexts.
1387func (c *DirectoryService) CreateTrustWithContext(ctx aws.Context, input *CreateTrustInput, opts ...request.Option) (*CreateTrustOutput, error) {
1388	req, out := c.CreateTrustRequest(input)
1389	req.SetContext(ctx)
1390	req.ApplyOptions(opts...)
1391	return out, req.Send()
1392}
1393
1394const opDeleteConditionalForwarder = "DeleteConditionalForwarder"
1395
1396// DeleteConditionalForwarderRequest generates a "aws/request.Request" representing the
1397// client's request for the DeleteConditionalForwarder operation. The "output" return
1398// value will be populated with the request's response once the request completes
1399// successfully.
1400//
1401// Use "Send" method on the returned Request to send the API call to the service.
1402// the "output" return value is not valid until after Send returns without error.
1403//
1404// See DeleteConditionalForwarder for more information on using the DeleteConditionalForwarder
1405// API call, and error handling.
1406//
1407// This method is useful when you want to inject custom logic or configuration
1408// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1409//
1410//
1411//    // Example sending a request using the DeleteConditionalForwarderRequest method.
1412//    req, resp := client.DeleteConditionalForwarderRequest(params)
1413//
1414//    err := req.Send()
1415//    if err == nil { // resp is now filled
1416//        fmt.Println(resp)
1417//    }
1418//
1419// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1420func (c *DirectoryService) DeleteConditionalForwarderRequest(input *DeleteConditionalForwarderInput) (req *request.Request, output *DeleteConditionalForwarderOutput) {
1421	op := &request.Operation{
1422		Name:       opDeleteConditionalForwarder,
1423		HTTPMethod: "POST",
1424		HTTPPath:   "/",
1425	}
1426
1427	if input == nil {
1428		input = &DeleteConditionalForwarderInput{}
1429	}
1430
1431	output = &DeleteConditionalForwarderOutput{}
1432	req = c.newRequest(op, input, output)
1433	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1434	return
1435}
1436
1437// DeleteConditionalForwarder API operation for AWS Directory Service.
1438//
1439// Deletes a conditional forwarder that has been set up for your Amazon Web
1440// Services directory.
1441//
1442// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1443// with awserr.Error's Code and Message methods to get detailed information about
1444// the error.
1445//
1446// See the AWS API reference guide for AWS Directory Service's
1447// API operation DeleteConditionalForwarder for usage and error information.
1448//
1449// Returned Error Types:
1450//   * EntityDoesNotExistException
1451//   The specified entity could not be found.
1452//
1453//   * DirectoryUnavailableException
1454//   The specified directory is unavailable or could not be found.
1455//
1456//   * InvalidParameterException
1457//   One or more parameters are not valid.
1458//
1459//   * UnsupportedOperationException
1460//   The operation is not supported.
1461//
1462//   * ClientException
1463//   A client exception has occurred.
1464//
1465//   * ServiceException
1466//   An exception has occurred in Directory Service.
1467//
1468// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1469func (c *DirectoryService) DeleteConditionalForwarder(input *DeleteConditionalForwarderInput) (*DeleteConditionalForwarderOutput, error) {
1470	req, out := c.DeleteConditionalForwarderRequest(input)
1471	return out, req.Send()
1472}
1473
1474// DeleteConditionalForwarderWithContext is the same as DeleteConditionalForwarder with the addition of
1475// the ability to pass a context and additional request options.
1476//
1477// See DeleteConditionalForwarder for details on how to use this API operation.
1478//
1479// The context must be non-nil and will be used for request cancellation. If
1480// the context is nil a panic will occur. In the future the SDK may create
1481// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1482// for more information on using Contexts.
1483func (c *DirectoryService) DeleteConditionalForwarderWithContext(ctx aws.Context, input *DeleteConditionalForwarderInput, opts ...request.Option) (*DeleteConditionalForwarderOutput, error) {
1484	req, out := c.DeleteConditionalForwarderRequest(input)
1485	req.SetContext(ctx)
1486	req.ApplyOptions(opts...)
1487	return out, req.Send()
1488}
1489
1490const opDeleteDirectory = "DeleteDirectory"
1491
1492// DeleteDirectoryRequest generates a "aws/request.Request" representing the
1493// client's request for the DeleteDirectory operation. The "output" return
1494// value will be populated with the request's response once the request completes
1495// successfully.
1496//
1497// Use "Send" method on the returned Request to send the API call to the service.
1498// the "output" return value is not valid until after Send returns without error.
1499//
1500// See DeleteDirectory for more information on using the DeleteDirectory
1501// API call, and error handling.
1502//
1503// This method is useful when you want to inject custom logic or configuration
1504// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1505//
1506//
1507//    // Example sending a request using the DeleteDirectoryRequest method.
1508//    req, resp := client.DeleteDirectoryRequest(params)
1509//
1510//    err := req.Send()
1511//    if err == nil { // resp is now filled
1512//        fmt.Println(resp)
1513//    }
1514//
1515// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1516func (c *DirectoryService) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
1517	op := &request.Operation{
1518		Name:       opDeleteDirectory,
1519		HTTPMethod: "POST",
1520		HTTPPath:   "/",
1521	}
1522
1523	if input == nil {
1524		input = &DeleteDirectoryInput{}
1525	}
1526
1527	output = &DeleteDirectoryOutput{}
1528	req = c.newRequest(op, input, output)
1529	return
1530}
1531
1532// DeleteDirectory API operation for AWS Directory Service.
1533//
1534// Deletes an Directory Service directory.
1535//
1536// Before you call DeleteDirectory, ensure that all of the required permissions
1537// have been explicitly granted through a policy. For details about what permissions
1538// are required to run the DeleteDirectory operation, see Directory Service
1539// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1540//
1541// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1542// with awserr.Error's Code and Message methods to get detailed information about
1543// the error.
1544//
1545// See the AWS API reference guide for AWS Directory Service's
1546// API operation DeleteDirectory for usage and error information.
1547//
1548// Returned Error Types:
1549//   * EntityDoesNotExistException
1550//   The specified entity could not be found.
1551//
1552//   * ClientException
1553//   A client exception has occurred.
1554//
1555//   * ServiceException
1556//   An exception has occurred in Directory Service.
1557//
1558// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1559func (c *DirectoryService) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
1560	req, out := c.DeleteDirectoryRequest(input)
1561	return out, req.Send()
1562}
1563
1564// DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
1565// the ability to pass a context and additional request options.
1566//
1567// See DeleteDirectory for details on how to use this API operation.
1568//
1569// The context must be non-nil and will be used for request cancellation. If
1570// the context is nil a panic will occur. In the future the SDK may create
1571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1572// for more information on using Contexts.
1573func (c *DirectoryService) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
1574	req, out := c.DeleteDirectoryRequest(input)
1575	req.SetContext(ctx)
1576	req.ApplyOptions(opts...)
1577	return out, req.Send()
1578}
1579
1580const opDeleteLogSubscription = "DeleteLogSubscription"
1581
1582// DeleteLogSubscriptionRequest generates a "aws/request.Request" representing the
1583// client's request for the DeleteLogSubscription operation. The "output" return
1584// value will be populated with the request's response once the request completes
1585// successfully.
1586//
1587// Use "Send" method on the returned Request to send the API call to the service.
1588// the "output" return value is not valid until after Send returns without error.
1589//
1590// See DeleteLogSubscription for more information on using the DeleteLogSubscription
1591// API call, and error handling.
1592//
1593// This method is useful when you want to inject custom logic or configuration
1594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1595//
1596//
1597//    // Example sending a request using the DeleteLogSubscriptionRequest method.
1598//    req, resp := client.DeleteLogSubscriptionRequest(params)
1599//
1600//    err := req.Send()
1601//    if err == nil { // resp is now filled
1602//        fmt.Println(resp)
1603//    }
1604//
1605// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1606func (c *DirectoryService) DeleteLogSubscriptionRequest(input *DeleteLogSubscriptionInput) (req *request.Request, output *DeleteLogSubscriptionOutput) {
1607	op := &request.Operation{
1608		Name:       opDeleteLogSubscription,
1609		HTTPMethod: "POST",
1610		HTTPPath:   "/",
1611	}
1612
1613	if input == nil {
1614		input = &DeleteLogSubscriptionInput{}
1615	}
1616
1617	output = &DeleteLogSubscriptionOutput{}
1618	req = c.newRequest(op, input, output)
1619	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1620	return
1621}
1622
1623// DeleteLogSubscription API operation for AWS Directory Service.
1624//
1625// Deletes the specified log subscription.
1626//
1627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1628// with awserr.Error's Code and Message methods to get detailed information about
1629// the error.
1630//
1631// See the AWS API reference guide for AWS Directory Service's
1632// API operation DeleteLogSubscription for usage and error information.
1633//
1634// Returned Error Types:
1635//   * EntityDoesNotExistException
1636//   The specified entity could not be found.
1637//
1638//   * UnsupportedOperationException
1639//   The operation is not supported.
1640//
1641//   * ClientException
1642//   A client exception has occurred.
1643//
1644//   * ServiceException
1645//   An exception has occurred in Directory Service.
1646//
1647// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1648func (c *DirectoryService) DeleteLogSubscription(input *DeleteLogSubscriptionInput) (*DeleteLogSubscriptionOutput, error) {
1649	req, out := c.DeleteLogSubscriptionRequest(input)
1650	return out, req.Send()
1651}
1652
1653// DeleteLogSubscriptionWithContext is the same as DeleteLogSubscription with the addition of
1654// the ability to pass a context and additional request options.
1655//
1656// See DeleteLogSubscription for details on how to use this API operation.
1657//
1658// The context must be non-nil and will be used for request cancellation. If
1659// the context is nil a panic will occur. In the future the SDK may create
1660// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1661// for more information on using Contexts.
1662func (c *DirectoryService) DeleteLogSubscriptionWithContext(ctx aws.Context, input *DeleteLogSubscriptionInput, opts ...request.Option) (*DeleteLogSubscriptionOutput, error) {
1663	req, out := c.DeleteLogSubscriptionRequest(input)
1664	req.SetContext(ctx)
1665	req.ApplyOptions(opts...)
1666	return out, req.Send()
1667}
1668
1669const opDeleteSnapshot = "DeleteSnapshot"
1670
1671// DeleteSnapshotRequest generates a "aws/request.Request" representing the
1672// client's request for the DeleteSnapshot operation. The "output" return
1673// value will be populated with the request's response once the request completes
1674// successfully.
1675//
1676// Use "Send" method on the returned Request to send the API call to the service.
1677// the "output" return value is not valid until after Send returns without error.
1678//
1679// See DeleteSnapshot for more information on using the DeleteSnapshot
1680// API call, and error handling.
1681//
1682// This method is useful when you want to inject custom logic or configuration
1683// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1684//
1685//
1686//    // Example sending a request using the DeleteSnapshotRequest method.
1687//    req, resp := client.DeleteSnapshotRequest(params)
1688//
1689//    err := req.Send()
1690//    if err == nil { // resp is now filled
1691//        fmt.Println(resp)
1692//    }
1693//
1694// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1695func (c *DirectoryService) DeleteSnapshotRequest(input *DeleteSnapshotInput) (req *request.Request, output *DeleteSnapshotOutput) {
1696	op := &request.Operation{
1697		Name:       opDeleteSnapshot,
1698		HTTPMethod: "POST",
1699		HTTPPath:   "/",
1700	}
1701
1702	if input == nil {
1703		input = &DeleteSnapshotInput{}
1704	}
1705
1706	output = &DeleteSnapshotOutput{}
1707	req = c.newRequest(op, input, output)
1708	return
1709}
1710
1711// DeleteSnapshot API operation for AWS Directory Service.
1712//
1713// Deletes a directory snapshot.
1714//
1715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1716// with awserr.Error's Code and Message methods to get detailed information about
1717// the error.
1718//
1719// See the AWS API reference guide for AWS Directory Service's
1720// API operation DeleteSnapshot for usage and error information.
1721//
1722// Returned Error Types:
1723//   * EntityDoesNotExistException
1724//   The specified entity could not be found.
1725//
1726//   * InvalidParameterException
1727//   One or more parameters are not valid.
1728//
1729//   * ClientException
1730//   A client exception has occurred.
1731//
1732//   * ServiceException
1733//   An exception has occurred in Directory Service.
1734//
1735// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1736func (c *DirectoryService) DeleteSnapshot(input *DeleteSnapshotInput) (*DeleteSnapshotOutput, error) {
1737	req, out := c.DeleteSnapshotRequest(input)
1738	return out, req.Send()
1739}
1740
1741// DeleteSnapshotWithContext is the same as DeleteSnapshot with the addition of
1742// the ability to pass a context and additional request options.
1743//
1744// See DeleteSnapshot for details on how to use this API operation.
1745//
1746// The context must be non-nil and will be used for request cancellation. If
1747// the context is nil a panic will occur. In the future the SDK may create
1748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1749// for more information on using Contexts.
1750func (c *DirectoryService) DeleteSnapshotWithContext(ctx aws.Context, input *DeleteSnapshotInput, opts ...request.Option) (*DeleteSnapshotOutput, error) {
1751	req, out := c.DeleteSnapshotRequest(input)
1752	req.SetContext(ctx)
1753	req.ApplyOptions(opts...)
1754	return out, req.Send()
1755}
1756
1757const opDeleteTrust = "DeleteTrust"
1758
1759// DeleteTrustRequest generates a "aws/request.Request" representing the
1760// client's request for the DeleteTrust operation. The "output" return
1761// value will be populated with the request's response once the request completes
1762// successfully.
1763//
1764// Use "Send" method on the returned Request to send the API call to the service.
1765// the "output" return value is not valid until after Send returns without error.
1766//
1767// See DeleteTrust for more information on using the DeleteTrust
1768// API call, and error handling.
1769//
1770// This method is useful when you want to inject custom logic or configuration
1771// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1772//
1773//
1774//    // Example sending a request using the DeleteTrustRequest method.
1775//    req, resp := client.DeleteTrustRequest(params)
1776//
1777//    err := req.Send()
1778//    if err == nil { // resp is now filled
1779//        fmt.Println(resp)
1780//    }
1781//
1782// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1783func (c *DirectoryService) DeleteTrustRequest(input *DeleteTrustInput) (req *request.Request, output *DeleteTrustOutput) {
1784	op := &request.Operation{
1785		Name:       opDeleteTrust,
1786		HTTPMethod: "POST",
1787		HTTPPath:   "/",
1788	}
1789
1790	if input == nil {
1791		input = &DeleteTrustInput{}
1792	}
1793
1794	output = &DeleteTrustOutput{}
1795	req = c.newRequest(op, input, output)
1796	return
1797}
1798
1799// DeleteTrust API operation for AWS Directory Service.
1800//
1801// Deletes an existing trust relationship between your Managed Microsoft AD
1802// directory and an external domain.
1803//
1804// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1805// with awserr.Error's Code and Message methods to get detailed information about
1806// the error.
1807//
1808// See the AWS API reference guide for AWS Directory Service's
1809// API operation DeleteTrust for usage and error information.
1810//
1811// Returned Error Types:
1812//   * EntityDoesNotExistException
1813//   The specified entity could not be found.
1814//
1815//   * InvalidParameterException
1816//   One or more parameters are not valid.
1817//
1818//   * ClientException
1819//   A client exception has occurred.
1820//
1821//   * ServiceException
1822//   An exception has occurred in Directory Service.
1823//
1824//   * UnsupportedOperationException
1825//   The operation is not supported.
1826//
1827// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1828func (c *DirectoryService) DeleteTrust(input *DeleteTrustInput) (*DeleteTrustOutput, error) {
1829	req, out := c.DeleteTrustRequest(input)
1830	return out, req.Send()
1831}
1832
1833// DeleteTrustWithContext is the same as DeleteTrust with the addition of
1834// the ability to pass a context and additional request options.
1835//
1836// See DeleteTrust for details on how to use this API operation.
1837//
1838// The context must be non-nil and will be used for request cancellation. If
1839// the context is nil a panic will occur. In the future the SDK may create
1840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1841// for more information on using Contexts.
1842func (c *DirectoryService) DeleteTrustWithContext(ctx aws.Context, input *DeleteTrustInput, opts ...request.Option) (*DeleteTrustOutput, error) {
1843	req, out := c.DeleteTrustRequest(input)
1844	req.SetContext(ctx)
1845	req.ApplyOptions(opts...)
1846	return out, req.Send()
1847}
1848
1849const opDeregisterCertificate = "DeregisterCertificate"
1850
1851// DeregisterCertificateRequest generates a "aws/request.Request" representing the
1852// client's request for the DeregisterCertificate operation. The "output" return
1853// value will be populated with the request's response once the request completes
1854// successfully.
1855//
1856// Use "Send" method on the returned Request to send the API call to the service.
1857// the "output" return value is not valid until after Send returns without error.
1858//
1859// See DeregisterCertificate for more information on using the DeregisterCertificate
1860// API call, and error handling.
1861//
1862// This method is useful when you want to inject custom logic or configuration
1863// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1864//
1865//
1866//    // Example sending a request using the DeregisterCertificateRequest method.
1867//    req, resp := client.DeregisterCertificateRequest(params)
1868//
1869//    err := req.Send()
1870//    if err == nil { // resp is now filled
1871//        fmt.Println(resp)
1872//    }
1873//
1874// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterCertificate
1875func (c *DirectoryService) DeregisterCertificateRequest(input *DeregisterCertificateInput) (req *request.Request, output *DeregisterCertificateOutput) {
1876	op := &request.Operation{
1877		Name:       opDeregisterCertificate,
1878		HTTPMethod: "POST",
1879		HTTPPath:   "/",
1880	}
1881
1882	if input == nil {
1883		input = &DeregisterCertificateInput{}
1884	}
1885
1886	output = &DeregisterCertificateOutput{}
1887	req = c.newRequest(op, input, output)
1888	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1889	return
1890}
1891
1892// DeregisterCertificate API operation for AWS Directory Service.
1893//
1894// Deletes from the system the certificate that was registered for secure LDAP
1895// or client certificate authentication.
1896//
1897// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1898// with awserr.Error's Code and Message methods to get detailed information about
1899// the error.
1900//
1901// See the AWS API reference guide for AWS Directory Service's
1902// API operation DeregisterCertificate for usage and error information.
1903//
1904// Returned Error Types:
1905//   * DirectoryUnavailableException
1906//   The specified directory is unavailable or could not be found.
1907//
1908//   * DirectoryDoesNotExistException
1909//   The specified directory does not exist in the system.
1910//
1911//   * CertificateDoesNotExistException
1912//   The certificate is not present in the system for describe or deregister activities.
1913//
1914//   * CertificateInUseException
1915//   The certificate is being used for the LDAP security connection and cannot
1916//   be removed without disabling LDAP security.
1917//
1918//   * UnsupportedOperationException
1919//   The operation is not supported.
1920//
1921//   * InvalidParameterException
1922//   One or more parameters are not valid.
1923//
1924//   * ClientException
1925//   A client exception has occurred.
1926//
1927//   * ServiceException
1928//   An exception has occurred in Directory Service.
1929//
1930// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterCertificate
1931func (c *DirectoryService) DeregisterCertificate(input *DeregisterCertificateInput) (*DeregisterCertificateOutput, error) {
1932	req, out := c.DeregisterCertificateRequest(input)
1933	return out, req.Send()
1934}
1935
1936// DeregisterCertificateWithContext is the same as DeregisterCertificate with the addition of
1937// the ability to pass a context and additional request options.
1938//
1939// See DeregisterCertificate for details on how to use this API operation.
1940//
1941// The context must be non-nil and will be used for request cancellation. If
1942// the context is nil a panic will occur. In the future the SDK may create
1943// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1944// for more information on using Contexts.
1945func (c *DirectoryService) DeregisterCertificateWithContext(ctx aws.Context, input *DeregisterCertificateInput, opts ...request.Option) (*DeregisterCertificateOutput, error) {
1946	req, out := c.DeregisterCertificateRequest(input)
1947	req.SetContext(ctx)
1948	req.ApplyOptions(opts...)
1949	return out, req.Send()
1950}
1951
1952const opDeregisterEventTopic = "DeregisterEventTopic"
1953
1954// DeregisterEventTopicRequest generates a "aws/request.Request" representing the
1955// client's request for the DeregisterEventTopic operation. The "output" return
1956// value will be populated with the request's response once the request completes
1957// successfully.
1958//
1959// Use "Send" method on the returned Request to send the API call to the service.
1960// the "output" return value is not valid until after Send returns without error.
1961//
1962// See DeregisterEventTopic for more information on using the DeregisterEventTopic
1963// API call, and error handling.
1964//
1965// This method is useful when you want to inject custom logic or configuration
1966// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1967//
1968//
1969//    // Example sending a request using the DeregisterEventTopicRequest method.
1970//    req, resp := client.DeregisterEventTopicRequest(params)
1971//
1972//    err := req.Send()
1973//    if err == nil { // resp is now filled
1974//        fmt.Println(resp)
1975//    }
1976//
1977// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
1978func (c *DirectoryService) DeregisterEventTopicRequest(input *DeregisterEventTopicInput) (req *request.Request, output *DeregisterEventTopicOutput) {
1979	op := &request.Operation{
1980		Name:       opDeregisterEventTopic,
1981		HTTPMethod: "POST",
1982		HTTPPath:   "/",
1983	}
1984
1985	if input == nil {
1986		input = &DeregisterEventTopicInput{}
1987	}
1988
1989	output = &DeregisterEventTopicOutput{}
1990	req = c.newRequest(op, input, output)
1991	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1992	return
1993}
1994
1995// DeregisterEventTopic API operation for AWS Directory Service.
1996//
1997// Removes the specified directory as a publisher to the specified Amazon SNS
1998// topic.
1999//
2000// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2001// with awserr.Error's Code and Message methods to get detailed information about
2002// the error.
2003//
2004// See the AWS API reference guide for AWS Directory Service's
2005// API operation DeregisterEventTopic for usage and error information.
2006//
2007// Returned Error Types:
2008//   * EntityDoesNotExistException
2009//   The specified entity could not be found.
2010//
2011//   * InvalidParameterException
2012//   One or more parameters are not valid.
2013//
2014//   * ClientException
2015//   A client exception has occurred.
2016//
2017//   * ServiceException
2018//   An exception has occurred in Directory Service.
2019//
2020// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
2021func (c *DirectoryService) DeregisterEventTopic(input *DeregisterEventTopicInput) (*DeregisterEventTopicOutput, error) {
2022	req, out := c.DeregisterEventTopicRequest(input)
2023	return out, req.Send()
2024}
2025
2026// DeregisterEventTopicWithContext is the same as DeregisterEventTopic with the addition of
2027// the ability to pass a context and additional request options.
2028//
2029// See DeregisterEventTopic for details on how to use this API operation.
2030//
2031// The context must be non-nil and will be used for request cancellation. If
2032// the context is nil a panic will occur. In the future the SDK may create
2033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2034// for more information on using Contexts.
2035func (c *DirectoryService) DeregisterEventTopicWithContext(ctx aws.Context, input *DeregisterEventTopicInput, opts ...request.Option) (*DeregisterEventTopicOutput, error) {
2036	req, out := c.DeregisterEventTopicRequest(input)
2037	req.SetContext(ctx)
2038	req.ApplyOptions(opts...)
2039	return out, req.Send()
2040}
2041
2042const opDescribeCertificate = "DescribeCertificate"
2043
2044// DescribeCertificateRequest generates a "aws/request.Request" representing the
2045// client's request for the DescribeCertificate operation. The "output" return
2046// value will be populated with the request's response once the request completes
2047// successfully.
2048//
2049// Use "Send" method on the returned Request to send the API call to the service.
2050// the "output" return value is not valid until after Send returns without error.
2051//
2052// See DescribeCertificate for more information on using the DescribeCertificate
2053// API call, and error handling.
2054//
2055// This method is useful when you want to inject custom logic or configuration
2056// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2057//
2058//
2059//    // Example sending a request using the DescribeCertificateRequest method.
2060//    req, resp := client.DescribeCertificateRequest(params)
2061//
2062//    err := req.Send()
2063//    if err == nil { // resp is now filled
2064//        fmt.Println(resp)
2065//    }
2066//
2067// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeCertificate
2068func (c *DirectoryService) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
2069	op := &request.Operation{
2070		Name:       opDescribeCertificate,
2071		HTTPMethod: "POST",
2072		HTTPPath:   "/",
2073	}
2074
2075	if input == nil {
2076		input = &DescribeCertificateInput{}
2077	}
2078
2079	output = &DescribeCertificateOutput{}
2080	req = c.newRequest(op, input, output)
2081	return
2082}
2083
2084// DescribeCertificate API operation for AWS Directory Service.
2085//
2086// Displays information about the certificate registered for secure LDAP or
2087// client certificate authentication.
2088//
2089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2090// with awserr.Error's Code and Message methods to get detailed information about
2091// the error.
2092//
2093// See the AWS API reference guide for AWS Directory Service's
2094// API operation DescribeCertificate for usage and error information.
2095//
2096// Returned Error Types:
2097//   * DirectoryDoesNotExistException
2098//   The specified directory does not exist in the system.
2099//
2100//   * UnsupportedOperationException
2101//   The operation is not supported.
2102//
2103//   * CertificateDoesNotExistException
2104//   The certificate is not present in the system for describe or deregister activities.
2105//
2106//   * InvalidParameterException
2107//   One or more parameters are not valid.
2108//
2109//   * ClientException
2110//   A client exception has occurred.
2111//
2112//   * ServiceException
2113//   An exception has occurred in Directory Service.
2114//
2115// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeCertificate
2116func (c *DirectoryService) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
2117	req, out := c.DescribeCertificateRequest(input)
2118	return out, req.Send()
2119}
2120
2121// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
2122// the ability to pass a context and additional request options.
2123//
2124// See DescribeCertificate for details on how to use this API operation.
2125//
2126// The context must be non-nil and will be used for request cancellation. If
2127// the context is nil a panic will occur. In the future the SDK may create
2128// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2129// for more information on using Contexts.
2130func (c *DirectoryService) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
2131	req, out := c.DescribeCertificateRequest(input)
2132	req.SetContext(ctx)
2133	req.ApplyOptions(opts...)
2134	return out, req.Send()
2135}
2136
2137const opDescribeClientAuthenticationSettings = "DescribeClientAuthenticationSettings"
2138
2139// DescribeClientAuthenticationSettingsRequest generates a "aws/request.Request" representing the
2140// client's request for the DescribeClientAuthenticationSettings operation. The "output" return
2141// value will be populated with the request's response once the request completes
2142// successfully.
2143//
2144// Use "Send" method on the returned Request to send the API call to the service.
2145// the "output" return value is not valid until after Send returns without error.
2146//
2147// See DescribeClientAuthenticationSettings for more information on using the DescribeClientAuthenticationSettings
2148// API call, and error handling.
2149//
2150// This method is useful when you want to inject custom logic or configuration
2151// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2152//
2153//
2154//    // Example sending a request using the DescribeClientAuthenticationSettingsRequest method.
2155//    req, resp := client.DescribeClientAuthenticationSettingsRequest(params)
2156//
2157//    err := req.Send()
2158//    if err == nil { // resp is now filled
2159//        fmt.Println(resp)
2160//    }
2161//
2162// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeClientAuthenticationSettings
2163func (c *DirectoryService) DescribeClientAuthenticationSettingsRequest(input *DescribeClientAuthenticationSettingsInput) (req *request.Request, output *DescribeClientAuthenticationSettingsOutput) {
2164	op := &request.Operation{
2165		Name:       opDescribeClientAuthenticationSettings,
2166		HTTPMethod: "POST",
2167		HTTPPath:   "/",
2168	}
2169
2170	if input == nil {
2171		input = &DescribeClientAuthenticationSettingsInput{}
2172	}
2173
2174	output = &DescribeClientAuthenticationSettingsOutput{}
2175	req = c.newRequest(op, input, output)
2176	return
2177}
2178
2179// DescribeClientAuthenticationSettings API operation for AWS Directory Service.
2180//
2181// Retrieves information about the type of client authentication for the specified
2182// directory, if the type is specified. If no type is specified, information
2183// about all client authentication types that are supported for the specified
2184// directory is retrieved. Currently, only SmartCard is supported.
2185//
2186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2187// with awserr.Error's Code and Message methods to get detailed information about
2188// the error.
2189//
2190// See the AWS API reference guide for AWS Directory Service's
2191// API operation DescribeClientAuthenticationSettings for usage and error information.
2192//
2193// Returned Error Types:
2194//   * DirectoryDoesNotExistException
2195//   The specified directory does not exist in the system.
2196//
2197//   * UnsupportedOperationException
2198//   The operation is not supported.
2199//
2200//   * AccessDeniedException
2201//   Client authentication is not available in this region at this time.
2202//
2203//   * InvalidParameterException
2204//   One or more parameters are not valid.
2205//
2206//   * ClientException
2207//   A client exception has occurred.
2208//
2209//   * ServiceException
2210//   An exception has occurred in Directory Service.
2211//
2212// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeClientAuthenticationSettings
2213func (c *DirectoryService) DescribeClientAuthenticationSettings(input *DescribeClientAuthenticationSettingsInput) (*DescribeClientAuthenticationSettingsOutput, error) {
2214	req, out := c.DescribeClientAuthenticationSettingsRequest(input)
2215	return out, req.Send()
2216}
2217
2218// DescribeClientAuthenticationSettingsWithContext is the same as DescribeClientAuthenticationSettings with the addition of
2219// the ability to pass a context and additional request options.
2220//
2221// See DescribeClientAuthenticationSettings for details on how to use this API operation.
2222//
2223// The context must be non-nil and will be used for request cancellation. If
2224// the context is nil a panic will occur. In the future the SDK may create
2225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2226// for more information on using Contexts.
2227func (c *DirectoryService) DescribeClientAuthenticationSettingsWithContext(ctx aws.Context, input *DescribeClientAuthenticationSettingsInput, opts ...request.Option) (*DescribeClientAuthenticationSettingsOutput, error) {
2228	req, out := c.DescribeClientAuthenticationSettingsRequest(input)
2229	req.SetContext(ctx)
2230	req.ApplyOptions(opts...)
2231	return out, req.Send()
2232}
2233
2234const opDescribeConditionalForwarders = "DescribeConditionalForwarders"
2235
2236// DescribeConditionalForwardersRequest generates a "aws/request.Request" representing the
2237// client's request for the DescribeConditionalForwarders operation. The "output" return
2238// value will be populated with the request's response once the request completes
2239// successfully.
2240//
2241// Use "Send" method on the returned Request to send the API call to the service.
2242// the "output" return value is not valid until after Send returns without error.
2243//
2244// See DescribeConditionalForwarders for more information on using the DescribeConditionalForwarders
2245// API call, and error handling.
2246//
2247// This method is useful when you want to inject custom logic or configuration
2248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2249//
2250//
2251//    // Example sending a request using the DescribeConditionalForwardersRequest method.
2252//    req, resp := client.DescribeConditionalForwardersRequest(params)
2253//
2254//    err := req.Send()
2255//    if err == nil { // resp is now filled
2256//        fmt.Println(resp)
2257//    }
2258//
2259// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
2260func (c *DirectoryService) DescribeConditionalForwardersRequest(input *DescribeConditionalForwardersInput) (req *request.Request, output *DescribeConditionalForwardersOutput) {
2261	op := &request.Operation{
2262		Name:       opDescribeConditionalForwarders,
2263		HTTPMethod: "POST",
2264		HTTPPath:   "/",
2265	}
2266
2267	if input == nil {
2268		input = &DescribeConditionalForwardersInput{}
2269	}
2270
2271	output = &DescribeConditionalForwardersOutput{}
2272	req = c.newRequest(op, input, output)
2273	return
2274}
2275
2276// DescribeConditionalForwarders API operation for AWS Directory Service.
2277//
2278// Obtains information about the conditional forwarders for this account.
2279//
2280// If no input parameters are provided for RemoteDomainNames, this request describes
2281// all conditional forwarders for the specified directory ID.
2282//
2283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2284// with awserr.Error's Code and Message methods to get detailed information about
2285// the error.
2286//
2287// See the AWS API reference guide for AWS Directory Service's
2288// API operation DescribeConditionalForwarders for usage and error information.
2289//
2290// Returned Error Types:
2291//   * EntityDoesNotExistException
2292//   The specified entity could not be found.
2293//
2294//   * DirectoryUnavailableException
2295//   The specified directory is unavailable or could not be found.
2296//
2297//   * InvalidParameterException
2298//   One or more parameters are not valid.
2299//
2300//   * UnsupportedOperationException
2301//   The operation is not supported.
2302//
2303//   * ClientException
2304//   A client exception has occurred.
2305//
2306//   * ServiceException
2307//   An exception has occurred in Directory Service.
2308//
2309// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
2310func (c *DirectoryService) DescribeConditionalForwarders(input *DescribeConditionalForwardersInput) (*DescribeConditionalForwardersOutput, error) {
2311	req, out := c.DescribeConditionalForwardersRequest(input)
2312	return out, req.Send()
2313}
2314
2315// DescribeConditionalForwardersWithContext is the same as DescribeConditionalForwarders with the addition of
2316// the ability to pass a context and additional request options.
2317//
2318// See DescribeConditionalForwarders for details on how to use this API operation.
2319//
2320// The context must be non-nil and will be used for request cancellation. If
2321// the context is nil a panic will occur. In the future the SDK may create
2322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2323// for more information on using Contexts.
2324func (c *DirectoryService) DescribeConditionalForwardersWithContext(ctx aws.Context, input *DescribeConditionalForwardersInput, opts ...request.Option) (*DescribeConditionalForwardersOutput, error) {
2325	req, out := c.DescribeConditionalForwardersRequest(input)
2326	req.SetContext(ctx)
2327	req.ApplyOptions(opts...)
2328	return out, req.Send()
2329}
2330
2331const opDescribeDirectories = "DescribeDirectories"
2332
2333// DescribeDirectoriesRequest generates a "aws/request.Request" representing the
2334// client's request for the DescribeDirectories operation. The "output" return
2335// value will be populated with the request's response once the request completes
2336// successfully.
2337//
2338// Use "Send" method on the returned Request to send the API call to the service.
2339// the "output" return value is not valid until after Send returns without error.
2340//
2341// See DescribeDirectories for more information on using the DescribeDirectories
2342// API call, and error handling.
2343//
2344// This method is useful when you want to inject custom logic or configuration
2345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2346//
2347//
2348//    // Example sending a request using the DescribeDirectoriesRequest method.
2349//    req, resp := client.DescribeDirectoriesRequest(params)
2350//
2351//    err := req.Send()
2352//    if err == nil { // resp is now filled
2353//        fmt.Println(resp)
2354//    }
2355//
2356// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
2357func (c *DirectoryService) DescribeDirectoriesRequest(input *DescribeDirectoriesInput) (req *request.Request, output *DescribeDirectoriesOutput) {
2358	op := &request.Operation{
2359		Name:       opDescribeDirectories,
2360		HTTPMethod: "POST",
2361		HTTPPath:   "/",
2362	}
2363
2364	if input == nil {
2365		input = &DescribeDirectoriesInput{}
2366	}
2367
2368	output = &DescribeDirectoriesOutput{}
2369	req = c.newRequest(op, input, output)
2370	return
2371}
2372
2373// DescribeDirectories API operation for AWS Directory Service.
2374//
2375// Obtains information about the directories that belong to this account.
2376//
2377// You can retrieve information about specific directories by passing the directory
2378// identifiers in the DirectoryIds parameter. Otherwise, all directories that
2379// belong to the current account are returned.
2380//
2381// This operation supports pagination with the use of the NextToken request
2382// and response parameters. If more results are available, the DescribeDirectoriesResult.NextToken
2383// member contains a token that you pass in the next call to DescribeDirectories
2384// to retrieve the next set of items.
2385//
2386// You can also specify a maximum number of return results with the Limit parameter.
2387//
2388// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2389// with awserr.Error's Code and Message methods to get detailed information about
2390// the error.
2391//
2392// See the AWS API reference guide for AWS Directory Service's
2393// API operation DescribeDirectories for usage and error information.
2394//
2395// Returned Error Types:
2396//   * EntityDoesNotExistException
2397//   The specified entity could not be found.
2398//
2399//   * InvalidParameterException
2400//   One or more parameters are not valid.
2401//
2402//   * InvalidNextTokenException
2403//   The NextToken value is not valid.
2404//
2405//   * ClientException
2406//   A client exception has occurred.
2407//
2408//   * ServiceException
2409//   An exception has occurred in Directory Service.
2410//
2411// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
2412func (c *DirectoryService) DescribeDirectories(input *DescribeDirectoriesInput) (*DescribeDirectoriesOutput, error) {
2413	req, out := c.DescribeDirectoriesRequest(input)
2414	return out, req.Send()
2415}
2416
2417// DescribeDirectoriesWithContext is the same as DescribeDirectories with the addition of
2418// the ability to pass a context and additional request options.
2419//
2420// See DescribeDirectories for details on how to use this API operation.
2421//
2422// The context must be non-nil and will be used for request cancellation. If
2423// the context is nil a panic will occur. In the future the SDK may create
2424// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2425// for more information on using Contexts.
2426func (c *DirectoryService) DescribeDirectoriesWithContext(ctx aws.Context, input *DescribeDirectoriesInput, opts ...request.Option) (*DescribeDirectoriesOutput, error) {
2427	req, out := c.DescribeDirectoriesRequest(input)
2428	req.SetContext(ctx)
2429	req.ApplyOptions(opts...)
2430	return out, req.Send()
2431}
2432
2433const opDescribeDomainControllers = "DescribeDomainControllers"
2434
2435// DescribeDomainControllersRequest generates a "aws/request.Request" representing the
2436// client's request for the DescribeDomainControllers operation. The "output" return
2437// value will be populated with the request's response once the request completes
2438// successfully.
2439//
2440// Use "Send" method on the returned Request to send the API call to the service.
2441// the "output" return value is not valid until after Send returns without error.
2442//
2443// See DescribeDomainControllers for more information on using the DescribeDomainControllers
2444// API call, and error handling.
2445//
2446// This method is useful when you want to inject custom logic or configuration
2447// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2448//
2449//
2450//    // Example sending a request using the DescribeDomainControllersRequest method.
2451//    req, resp := client.DescribeDomainControllersRequest(params)
2452//
2453//    err := req.Send()
2454//    if err == nil { // resp is now filled
2455//        fmt.Println(resp)
2456//    }
2457//
2458// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2459func (c *DirectoryService) DescribeDomainControllersRequest(input *DescribeDomainControllersInput) (req *request.Request, output *DescribeDomainControllersOutput) {
2460	op := &request.Operation{
2461		Name:       opDescribeDomainControllers,
2462		HTTPMethod: "POST",
2463		HTTPPath:   "/",
2464		Paginator: &request.Paginator{
2465			InputTokens:     []string{"NextToken"},
2466			OutputTokens:    []string{"NextToken"},
2467			LimitToken:      "Limit",
2468			TruncationToken: "",
2469		},
2470	}
2471
2472	if input == nil {
2473		input = &DescribeDomainControllersInput{}
2474	}
2475
2476	output = &DescribeDomainControllersOutput{}
2477	req = c.newRequest(op, input, output)
2478	return
2479}
2480
2481// DescribeDomainControllers API operation for AWS Directory Service.
2482//
2483// Provides information about any domain controllers in your directory.
2484//
2485// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2486// with awserr.Error's Code and Message methods to get detailed information about
2487// the error.
2488//
2489// See the AWS API reference guide for AWS Directory Service's
2490// API operation DescribeDomainControllers for usage and error information.
2491//
2492// Returned Error Types:
2493//   * EntityDoesNotExistException
2494//   The specified entity could not be found.
2495//
2496//   * InvalidNextTokenException
2497//   The NextToken value is not valid.
2498//
2499//   * InvalidParameterException
2500//   One or more parameters are not valid.
2501//
2502//   * ClientException
2503//   A client exception has occurred.
2504//
2505//   * ServiceException
2506//   An exception has occurred in Directory Service.
2507//
2508//   * UnsupportedOperationException
2509//   The operation is not supported.
2510//
2511// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2512func (c *DirectoryService) DescribeDomainControllers(input *DescribeDomainControllersInput) (*DescribeDomainControllersOutput, error) {
2513	req, out := c.DescribeDomainControllersRequest(input)
2514	return out, req.Send()
2515}
2516
2517// DescribeDomainControllersWithContext is the same as DescribeDomainControllers with the addition of
2518// the ability to pass a context and additional request options.
2519//
2520// See DescribeDomainControllers for details on how to use this API operation.
2521//
2522// The context must be non-nil and will be used for request cancellation. If
2523// the context is nil a panic will occur. In the future the SDK may create
2524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2525// for more information on using Contexts.
2526func (c *DirectoryService) DescribeDomainControllersWithContext(ctx aws.Context, input *DescribeDomainControllersInput, opts ...request.Option) (*DescribeDomainControllersOutput, error) {
2527	req, out := c.DescribeDomainControllersRequest(input)
2528	req.SetContext(ctx)
2529	req.ApplyOptions(opts...)
2530	return out, req.Send()
2531}
2532
2533// DescribeDomainControllersPages iterates over the pages of a DescribeDomainControllers operation,
2534// calling the "fn" function with the response data for each page. To stop
2535// iterating, return false from the fn function.
2536//
2537// See DescribeDomainControllers method for more information on how to use this operation.
2538//
2539// Note: This operation can generate multiple requests to a service.
2540//
2541//    // Example iterating over at most 3 pages of a DescribeDomainControllers operation.
2542//    pageNum := 0
2543//    err := client.DescribeDomainControllersPages(params,
2544//        func(page *directoryservice.DescribeDomainControllersOutput, lastPage bool) bool {
2545//            pageNum++
2546//            fmt.Println(page)
2547//            return pageNum <= 3
2548//        })
2549//
2550func (c *DirectoryService) DescribeDomainControllersPages(input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool) error {
2551	return c.DescribeDomainControllersPagesWithContext(aws.BackgroundContext(), input, fn)
2552}
2553
2554// DescribeDomainControllersPagesWithContext same as DescribeDomainControllersPages except
2555// it takes a Context and allows setting request options on the pages.
2556//
2557// The context must be non-nil and will be used for request cancellation. If
2558// the context is nil a panic will occur. In the future the SDK may create
2559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2560// for more information on using Contexts.
2561func (c *DirectoryService) DescribeDomainControllersPagesWithContext(ctx aws.Context, input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool, opts ...request.Option) error {
2562	p := request.Pagination{
2563		NewRequest: func() (*request.Request, error) {
2564			var inCpy *DescribeDomainControllersInput
2565			if input != nil {
2566				tmp := *input
2567				inCpy = &tmp
2568			}
2569			req, _ := c.DescribeDomainControllersRequest(inCpy)
2570			req.SetContext(ctx)
2571			req.ApplyOptions(opts...)
2572			return req, nil
2573		},
2574	}
2575
2576	for p.Next() {
2577		if !fn(p.Page().(*DescribeDomainControllersOutput), !p.HasNextPage()) {
2578			break
2579		}
2580	}
2581
2582	return p.Err()
2583}
2584
2585const opDescribeEventTopics = "DescribeEventTopics"
2586
2587// DescribeEventTopicsRequest generates a "aws/request.Request" representing the
2588// client's request for the DescribeEventTopics operation. The "output" return
2589// value will be populated with the request's response once the request completes
2590// successfully.
2591//
2592// Use "Send" method on the returned Request to send the API call to the service.
2593// the "output" return value is not valid until after Send returns without error.
2594//
2595// See DescribeEventTopics for more information on using the DescribeEventTopics
2596// API call, and error handling.
2597//
2598// This method is useful when you want to inject custom logic or configuration
2599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2600//
2601//
2602//    // Example sending a request using the DescribeEventTopicsRequest method.
2603//    req, resp := client.DescribeEventTopicsRequest(params)
2604//
2605//    err := req.Send()
2606//    if err == nil { // resp is now filled
2607//        fmt.Println(resp)
2608//    }
2609//
2610// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2611func (c *DirectoryService) DescribeEventTopicsRequest(input *DescribeEventTopicsInput) (req *request.Request, output *DescribeEventTopicsOutput) {
2612	op := &request.Operation{
2613		Name:       opDescribeEventTopics,
2614		HTTPMethod: "POST",
2615		HTTPPath:   "/",
2616	}
2617
2618	if input == nil {
2619		input = &DescribeEventTopicsInput{}
2620	}
2621
2622	output = &DescribeEventTopicsOutput{}
2623	req = c.newRequest(op, input, output)
2624	return
2625}
2626
2627// DescribeEventTopics API operation for AWS Directory Service.
2628//
2629// Obtains information about which Amazon SNS topics receive status messages
2630// from the specified directory.
2631//
2632// If no input parameters are provided, such as DirectoryId or TopicName, this
2633// request describes all of the associations in the account.
2634//
2635// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2636// with awserr.Error's Code and Message methods to get detailed information about
2637// the error.
2638//
2639// See the AWS API reference guide for AWS Directory Service's
2640// API operation DescribeEventTopics for usage and error information.
2641//
2642// Returned Error Types:
2643//   * EntityDoesNotExistException
2644//   The specified entity could not be found.
2645//
2646//   * InvalidParameterException
2647//   One or more parameters are not valid.
2648//
2649//   * ClientException
2650//   A client exception has occurred.
2651//
2652//   * ServiceException
2653//   An exception has occurred in Directory Service.
2654//
2655// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2656func (c *DirectoryService) DescribeEventTopics(input *DescribeEventTopicsInput) (*DescribeEventTopicsOutput, error) {
2657	req, out := c.DescribeEventTopicsRequest(input)
2658	return out, req.Send()
2659}
2660
2661// DescribeEventTopicsWithContext is the same as DescribeEventTopics with the addition of
2662// the ability to pass a context and additional request options.
2663//
2664// See DescribeEventTopics for details on how to use this API operation.
2665//
2666// The context must be non-nil and will be used for request cancellation. If
2667// the context is nil a panic will occur. In the future the SDK may create
2668// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2669// for more information on using Contexts.
2670func (c *DirectoryService) DescribeEventTopicsWithContext(ctx aws.Context, input *DescribeEventTopicsInput, opts ...request.Option) (*DescribeEventTopicsOutput, error) {
2671	req, out := c.DescribeEventTopicsRequest(input)
2672	req.SetContext(ctx)
2673	req.ApplyOptions(opts...)
2674	return out, req.Send()
2675}
2676
2677const opDescribeLDAPSSettings = "DescribeLDAPSSettings"
2678
2679// DescribeLDAPSSettingsRequest generates a "aws/request.Request" representing the
2680// client's request for the DescribeLDAPSSettings operation. The "output" return
2681// value will be populated with the request's response once the request completes
2682// successfully.
2683//
2684// Use "Send" method on the returned Request to send the API call to the service.
2685// the "output" return value is not valid until after Send returns without error.
2686//
2687// See DescribeLDAPSSettings for more information on using the DescribeLDAPSSettings
2688// API call, and error handling.
2689//
2690// This method is useful when you want to inject custom logic or configuration
2691// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2692//
2693//
2694//    // Example sending a request using the DescribeLDAPSSettingsRequest method.
2695//    req, resp := client.DescribeLDAPSSettingsRequest(params)
2696//
2697//    err := req.Send()
2698//    if err == nil { // resp is now filled
2699//        fmt.Println(resp)
2700//    }
2701//
2702// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeLDAPSSettings
2703func (c *DirectoryService) DescribeLDAPSSettingsRequest(input *DescribeLDAPSSettingsInput) (req *request.Request, output *DescribeLDAPSSettingsOutput) {
2704	op := &request.Operation{
2705		Name:       opDescribeLDAPSSettings,
2706		HTTPMethod: "POST",
2707		HTTPPath:   "/",
2708	}
2709
2710	if input == nil {
2711		input = &DescribeLDAPSSettingsInput{}
2712	}
2713
2714	output = &DescribeLDAPSSettingsOutput{}
2715	req = c.newRequest(op, input, output)
2716	return
2717}
2718
2719// DescribeLDAPSSettings API operation for AWS Directory Service.
2720//
2721// Describes the status of LDAP security for the specified directory.
2722//
2723// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2724// with awserr.Error's Code and Message methods to get detailed information about
2725// the error.
2726//
2727// See the AWS API reference guide for AWS Directory Service's
2728// API operation DescribeLDAPSSettings for usage and error information.
2729//
2730// Returned Error Types:
2731//   * DirectoryDoesNotExistException
2732//   The specified directory does not exist in the system.
2733//
2734//   * UnsupportedOperationException
2735//   The operation is not supported.
2736//
2737//   * InvalidNextTokenException
2738//   The NextToken value is not valid.
2739//
2740//   * InvalidParameterException
2741//   One or more parameters are not valid.
2742//
2743//   * ClientException
2744//   A client exception has occurred.
2745//
2746//   * ServiceException
2747//   An exception has occurred in Directory Service.
2748//
2749// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeLDAPSSettings
2750func (c *DirectoryService) DescribeLDAPSSettings(input *DescribeLDAPSSettingsInput) (*DescribeLDAPSSettingsOutput, error) {
2751	req, out := c.DescribeLDAPSSettingsRequest(input)
2752	return out, req.Send()
2753}
2754
2755// DescribeLDAPSSettingsWithContext is the same as DescribeLDAPSSettings with the addition of
2756// the ability to pass a context and additional request options.
2757//
2758// See DescribeLDAPSSettings for details on how to use this API operation.
2759//
2760// The context must be non-nil and will be used for request cancellation. If
2761// the context is nil a panic will occur. In the future the SDK may create
2762// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2763// for more information on using Contexts.
2764func (c *DirectoryService) DescribeLDAPSSettingsWithContext(ctx aws.Context, input *DescribeLDAPSSettingsInput, opts ...request.Option) (*DescribeLDAPSSettingsOutput, error) {
2765	req, out := c.DescribeLDAPSSettingsRequest(input)
2766	req.SetContext(ctx)
2767	req.ApplyOptions(opts...)
2768	return out, req.Send()
2769}
2770
2771const opDescribeRegions = "DescribeRegions"
2772
2773// DescribeRegionsRequest generates a "aws/request.Request" representing the
2774// client's request for the DescribeRegions operation. The "output" return
2775// value will be populated with the request's response once the request completes
2776// successfully.
2777//
2778// Use "Send" method on the returned Request to send the API call to the service.
2779// the "output" return value is not valid until after Send returns without error.
2780//
2781// See DescribeRegions for more information on using the DescribeRegions
2782// API call, and error handling.
2783//
2784// This method is useful when you want to inject custom logic or configuration
2785// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2786//
2787//
2788//    // Example sending a request using the DescribeRegionsRequest method.
2789//    req, resp := client.DescribeRegionsRequest(params)
2790//
2791//    err := req.Send()
2792//    if err == nil { // resp is now filled
2793//        fmt.Println(resp)
2794//    }
2795//
2796// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeRegions
2797func (c *DirectoryService) DescribeRegionsRequest(input *DescribeRegionsInput) (req *request.Request, output *DescribeRegionsOutput) {
2798	op := &request.Operation{
2799		Name:       opDescribeRegions,
2800		HTTPMethod: "POST",
2801		HTTPPath:   "/",
2802	}
2803
2804	if input == nil {
2805		input = &DescribeRegionsInput{}
2806	}
2807
2808	output = &DescribeRegionsOutput{}
2809	req = c.newRequest(op, input, output)
2810	return
2811}
2812
2813// DescribeRegions API operation for AWS Directory Service.
2814//
2815// Provides information about the Regions that are configured for multi-Region
2816// replication.
2817//
2818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2819// with awserr.Error's Code and Message methods to get detailed information about
2820// the error.
2821//
2822// See the AWS API reference guide for AWS Directory Service's
2823// API operation DescribeRegions for usage and error information.
2824//
2825// Returned Error Types:
2826//   * InvalidParameterException
2827//   One or more parameters are not valid.
2828//
2829//   * DirectoryDoesNotExistException
2830//   The specified directory does not exist in the system.
2831//
2832//   * UnsupportedOperationException
2833//   The operation is not supported.
2834//
2835//   * InvalidNextTokenException
2836//   The NextToken value is not valid.
2837//
2838//   * AccessDeniedException
2839//   Client authentication is not available in this region at this time.
2840//
2841//   * ClientException
2842//   A client exception has occurred.
2843//
2844//   * ServiceException
2845//   An exception has occurred in Directory Service.
2846//
2847// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeRegions
2848func (c *DirectoryService) DescribeRegions(input *DescribeRegionsInput) (*DescribeRegionsOutput, error) {
2849	req, out := c.DescribeRegionsRequest(input)
2850	return out, req.Send()
2851}
2852
2853// DescribeRegionsWithContext is the same as DescribeRegions with the addition of
2854// the ability to pass a context and additional request options.
2855//
2856// See DescribeRegions for details on how to use this API operation.
2857//
2858// The context must be non-nil and will be used for request cancellation. If
2859// the context is nil a panic will occur. In the future the SDK may create
2860// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2861// for more information on using Contexts.
2862func (c *DirectoryService) DescribeRegionsWithContext(ctx aws.Context, input *DescribeRegionsInput, opts ...request.Option) (*DescribeRegionsOutput, error) {
2863	req, out := c.DescribeRegionsRequest(input)
2864	req.SetContext(ctx)
2865	req.ApplyOptions(opts...)
2866	return out, req.Send()
2867}
2868
2869const opDescribeSharedDirectories = "DescribeSharedDirectories"
2870
2871// DescribeSharedDirectoriesRequest generates a "aws/request.Request" representing the
2872// client's request for the DescribeSharedDirectories operation. The "output" return
2873// value will be populated with the request's response once the request completes
2874// successfully.
2875//
2876// Use "Send" method on the returned Request to send the API call to the service.
2877// the "output" return value is not valid until after Send returns without error.
2878//
2879// See DescribeSharedDirectories for more information on using the DescribeSharedDirectories
2880// API call, and error handling.
2881//
2882// This method is useful when you want to inject custom logic or configuration
2883// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2884//
2885//
2886//    // Example sending a request using the DescribeSharedDirectoriesRequest method.
2887//    req, resp := client.DescribeSharedDirectoriesRequest(params)
2888//
2889//    err := req.Send()
2890//    if err == nil { // resp is now filled
2891//        fmt.Println(resp)
2892//    }
2893//
2894// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2895func (c *DirectoryService) DescribeSharedDirectoriesRequest(input *DescribeSharedDirectoriesInput) (req *request.Request, output *DescribeSharedDirectoriesOutput) {
2896	op := &request.Operation{
2897		Name:       opDescribeSharedDirectories,
2898		HTTPMethod: "POST",
2899		HTTPPath:   "/",
2900	}
2901
2902	if input == nil {
2903		input = &DescribeSharedDirectoriesInput{}
2904	}
2905
2906	output = &DescribeSharedDirectoriesOutput{}
2907	req = c.newRequest(op, input, output)
2908	return
2909}
2910
2911// DescribeSharedDirectories API operation for AWS Directory Service.
2912//
2913// Returns the shared directories in your account.
2914//
2915// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2916// with awserr.Error's Code and Message methods to get detailed information about
2917// the error.
2918//
2919// See the AWS API reference guide for AWS Directory Service's
2920// API operation DescribeSharedDirectories for usage and error information.
2921//
2922// Returned Error Types:
2923//   * EntityDoesNotExistException
2924//   The specified entity could not be found.
2925//
2926//   * InvalidNextTokenException
2927//   The NextToken value is not valid.
2928//
2929//   * InvalidParameterException
2930//   One or more parameters are not valid.
2931//
2932//   * UnsupportedOperationException
2933//   The operation is not supported.
2934//
2935//   * ClientException
2936//   A client exception has occurred.
2937//
2938//   * ServiceException
2939//   An exception has occurred in Directory Service.
2940//
2941// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2942func (c *DirectoryService) DescribeSharedDirectories(input *DescribeSharedDirectoriesInput) (*DescribeSharedDirectoriesOutput, error) {
2943	req, out := c.DescribeSharedDirectoriesRequest(input)
2944	return out, req.Send()
2945}
2946
2947// DescribeSharedDirectoriesWithContext is the same as DescribeSharedDirectories with the addition of
2948// the ability to pass a context and additional request options.
2949//
2950// See DescribeSharedDirectories for details on how to use this API operation.
2951//
2952// The context must be non-nil and will be used for request cancellation. If
2953// the context is nil a panic will occur. In the future the SDK may create
2954// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2955// for more information on using Contexts.
2956func (c *DirectoryService) DescribeSharedDirectoriesWithContext(ctx aws.Context, input *DescribeSharedDirectoriesInput, opts ...request.Option) (*DescribeSharedDirectoriesOutput, error) {
2957	req, out := c.DescribeSharedDirectoriesRequest(input)
2958	req.SetContext(ctx)
2959	req.ApplyOptions(opts...)
2960	return out, req.Send()
2961}
2962
2963const opDescribeSnapshots = "DescribeSnapshots"
2964
2965// DescribeSnapshotsRequest generates a "aws/request.Request" representing the
2966// client's request for the DescribeSnapshots operation. The "output" return
2967// value will be populated with the request's response once the request completes
2968// successfully.
2969//
2970// Use "Send" method on the returned Request to send the API call to the service.
2971// the "output" return value is not valid until after Send returns without error.
2972//
2973// See DescribeSnapshots for more information on using the DescribeSnapshots
2974// API call, and error handling.
2975//
2976// This method is useful when you want to inject custom logic or configuration
2977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2978//
2979//
2980//    // Example sending a request using the DescribeSnapshotsRequest method.
2981//    req, resp := client.DescribeSnapshotsRequest(params)
2982//
2983//    err := req.Send()
2984//    if err == nil { // resp is now filled
2985//        fmt.Println(resp)
2986//    }
2987//
2988// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
2989func (c *DirectoryService) DescribeSnapshotsRequest(input *DescribeSnapshotsInput) (req *request.Request, output *DescribeSnapshotsOutput) {
2990	op := &request.Operation{
2991		Name:       opDescribeSnapshots,
2992		HTTPMethod: "POST",
2993		HTTPPath:   "/",
2994	}
2995
2996	if input == nil {
2997		input = &DescribeSnapshotsInput{}
2998	}
2999
3000	output = &DescribeSnapshotsOutput{}
3001	req = c.newRequest(op, input, output)
3002	return
3003}
3004
3005// DescribeSnapshots API operation for AWS Directory Service.
3006//
3007// Obtains information about the directory snapshots that belong to this account.
3008//
3009// This operation supports pagination with the use of the NextToken request
3010// and response parameters. If more results are available, the DescribeSnapshots.NextToken
3011// member contains a token that you pass in the next call to DescribeSnapshots
3012// to retrieve the next set of items.
3013//
3014// You can also specify a maximum number of return results with the Limit parameter.
3015//
3016// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3017// with awserr.Error's Code and Message methods to get detailed information about
3018// the error.
3019//
3020// See the AWS API reference guide for AWS Directory Service's
3021// API operation DescribeSnapshots for usage and error information.
3022//
3023// Returned Error Types:
3024//   * EntityDoesNotExistException
3025//   The specified entity could not be found.
3026//
3027//   * InvalidParameterException
3028//   One or more parameters are not valid.
3029//
3030//   * InvalidNextTokenException
3031//   The NextToken value is not valid.
3032//
3033//   * ClientException
3034//   A client exception has occurred.
3035//
3036//   * ServiceException
3037//   An exception has occurred in Directory Service.
3038//
3039// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
3040func (c *DirectoryService) DescribeSnapshots(input *DescribeSnapshotsInput) (*DescribeSnapshotsOutput, error) {
3041	req, out := c.DescribeSnapshotsRequest(input)
3042	return out, req.Send()
3043}
3044
3045// DescribeSnapshotsWithContext is the same as DescribeSnapshots with the addition of
3046// the ability to pass a context and additional request options.
3047//
3048// See DescribeSnapshots for details on how to use this API operation.
3049//
3050// The context must be non-nil and will be used for request cancellation. If
3051// the context is nil a panic will occur. In the future the SDK may create
3052// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3053// for more information on using Contexts.
3054func (c *DirectoryService) DescribeSnapshotsWithContext(ctx aws.Context, input *DescribeSnapshotsInput, opts ...request.Option) (*DescribeSnapshotsOutput, error) {
3055	req, out := c.DescribeSnapshotsRequest(input)
3056	req.SetContext(ctx)
3057	req.ApplyOptions(opts...)
3058	return out, req.Send()
3059}
3060
3061const opDescribeTrusts = "DescribeTrusts"
3062
3063// DescribeTrustsRequest generates a "aws/request.Request" representing the
3064// client's request for the DescribeTrusts operation. The "output" return
3065// value will be populated with the request's response once the request completes
3066// successfully.
3067//
3068// Use "Send" method on the returned Request to send the API call to the service.
3069// the "output" return value is not valid until after Send returns without error.
3070//
3071// See DescribeTrusts for more information on using the DescribeTrusts
3072// API call, and error handling.
3073//
3074// This method is useful when you want to inject custom logic or configuration
3075// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3076//
3077//
3078//    // Example sending a request using the DescribeTrustsRequest method.
3079//    req, resp := client.DescribeTrustsRequest(params)
3080//
3081//    err := req.Send()
3082//    if err == nil { // resp is now filled
3083//        fmt.Println(resp)
3084//    }
3085//
3086// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
3087func (c *DirectoryService) DescribeTrustsRequest(input *DescribeTrustsInput) (req *request.Request, output *DescribeTrustsOutput) {
3088	op := &request.Operation{
3089		Name:       opDescribeTrusts,
3090		HTTPMethod: "POST",
3091		HTTPPath:   "/",
3092	}
3093
3094	if input == nil {
3095		input = &DescribeTrustsInput{}
3096	}
3097
3098	output = &DescribeTrustsOutput{}
3099	req = c.newRequest(op, input, output)
3100	return
3101}
3102
3103// DescribeTrusts API operation for AWS Directory Service.
3104//
3105// Obtains information about the trust relationships for this account.
3106//
3107// If no input parameters are provided, such as DirectoryId or TrustIds, this
3108// request describes all the trust relationships belonging to the account.
3109//
3110// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3111// with awserr.Error's Code and Message methods to get detailed information about
3112// the error.
3113//
3114// See the AWS API reference guide for AWS Directory Service's
3115// API operation DescribeTrusts for usage and error information.
3116//
3117// Returned Error Types:
3118//   * EntityDoesNotExistException
3119//   The specified entity could not be found.
3120//
3121//   * InvalidNextTokenException
3122//   The NextToken value is not valid.
3123//
3124//   * InvalidParameterException
3125//   One or more parameters are not valid.
3126//
3127//   * ClientException
3128//   A client exception has occurred.
3129//
3130//   * ServiceException
3131//   An exception has occurred in Directory Service.
3132//
3133//   * UnsupportedOperationException
3134//   The operation is not supported.
3135//
3136// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
3137func (c *DirectoryService) DescribeTrusts(input *DescribeTrustsInput) (*DescribeTrustsOutput, error) {
3138	req, out := c.DescribeTrustsRequest(input)
3139	return out, req.Send()
3140}
3141
3142// DescribeTrustsWithContext is the same as DescribeTrusts with the addition of
3143// the ability to pass a context and additional request options.
3144//
3145// See DescribeTrusts for details on how to use this API operation.
3146//
3147// The context must be non-nil and will be used for request cancellation. If
3148// the context is nil a panic will occur. In the future the SDK may create
3149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3150// for more information on using Contexts.
3151func (c *DirectoryService) DescribeTrustsWithContext(ctx aws.Context, input *DescribeTrustsInput, opts ...request.Option) (*DescribeTrustsOutput, error) {
3152	req, out := c.DescribeTrustsRequest(input)
3153	req.SetContext(ctx)
3154	req.ApplyOptions(opts...)
3155	return out, req.Send()
3156}
3157
3158const opDisableClientAuthentication = "DisableClientAuthentication"
3159
3160// DisableClientAuthenticationRequest generates a "aws/request.Request" representing the
3161// client's request for the DisableClientAuthentication operation. The "output" return
3162// value will be populated with the request's response once the request completes
3163// successfully.
3164//
3165// Use "Send" method on the returned Request to send the API call to the service.
3166// the "output" return value is not valid until after Send returns without error.
3167//
3168// See DisableClientAuthentication for more information on using the DisableClientAuthentication
3169// API call, and error handling.
3170//
3171// This method is useful when you want to inject custom logic or configuration
3172// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3173//
3174//
3175//    // Example sending a request using the DisableClientAuthenticationRequest method.
3176//    req, resp := client.DisableClientAuthenticationRequest(params)
3177//
3178//    err := req.Send()
3179//    if err == nil { // resp is now filled
3180//        fmt.Println(resp)
3181//    }
3182//
3183// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableClientAuthentication
3184func (c *DirectoryService) DisableClientAuthenticationRequest(input *DisableClientAuthenticationInput) (req *request.Request, output *DisableClientAuthenticationOutput) {
3185	op := &request.Operation{
3186		Name:       opDisableClientAuthentication,
3187		HTTPMethod: "POST",
3188		HTTPPath:   "/",
3189	}
3190
3191	if input == nil {
3192		input = &DisableClientAuthenticationInput{}
3193	}
3194
3195	output = &DisableClientAuthenticationOutput{}
3196	req = c.newRequest(op, input, output)
3197	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3198	return
3199}
3200
3201// DisableClientAuthentication API operation for AWS Directory Service.
3202//
3203// Disables alternative client authentication methods for the specified directory.
3204//
3205// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3206// with awserr.Error's Code and Message methods to get detailed information about
3207// the error.
3208//
3209// See the AWS API reference guide for AWS Directory Service's
3210// API operation DisableClientAuthentication for usage and error information.
3211//
3212// Returned Error Types:
3213//   * DirectoryDoesNotExistException
3214//   The specified directory does not exist in the system.
3215//
3216//   * UnsupportedOperationException
3217//   The operation is not supported.
3218//
3219//   * InvalidClientAuthStatusException
3220//   Client authentication is already enabled.
3221//
3222//   * AccessDeniedException
3223//   Client authentication is not available in this region at this time.
3224//
3225//   * ClientException
3226//   A client exception has occurred.
3227//
3228//   * ServiceException
3229//   An exception has occurred in Directory Service.
3230//
3231// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableClientAuthentication
3232func (c *DirectoryService) DisableClientAuthentication(input *DisableClientAuthenticationInput) (*DisableClientAuthenticationOutput, error) {
3233	req, out := c.DisableClientAuthenticationRequest(input)
3234	return out, req.Send()
3235}
3236
3237// DisableClientAuthenticationWithContext is the same as DisableClientAuthentication with the addition of
3238// the ability to pass a context and additional request options.
3239//
3240// See DisableClientAuthentication for details on how to use this API operation.
3241//
3242// The context must be non-nil and will be used for request cancellation. If
3243// the context is nil a panic will occur. In the future the SDK may create
3244// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3245// for more information on using Contexts.
3246func (c *DirectoryService) DisableClientAuthenticationWithContext(ctx aws.Context, input *DisableClientAuthenticationInput, opts ...request.Option) (*DisableClientAuthenticationOutput, error) {
3247	req, out := c.DisableClientAuthenticationRequest(input)
3248	req.SetContext(ctx)
3249	req.ApplyOptions(opts...)
3250	return out, req.Send()
3251}
3252
3253const opDisableLDAPS = "DisableLDAPS"
3254
3255// DisableLDAPSRequest generates a "aws/request.Request" representing the
3256// client's request for the DisableLDAPS operation. The "output" return
3257// value will be populated with the request's response once the request completes
3258// successfully.
3259//
3260// Use "Send" method on the returned Request to send the API call to the service.
3261// the "output" return value is not valid until after Send returns without error.
3262//
3263// See DisableLDAPS for more information on using the DisableLDAPS
3264// API call, and error handling.
3265//
3266// This method is useful when you want to inject custom logic or configuration
3267// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3268//
3269//
3270//    // Example sending a request using the DisableLDAPSRequest method.
3271//    req, resp := client.DisableLDAPSRequest(params)
3272//
3273//    err := req.Send()
3274//    if err == nil { // resp is now filled
3275//        fmt.Println(resp)
3276//    }
3277//
3278// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableLDAPS
3279func (c *DirectoryService) DisableLDAPSRequest(input *DisableLDAPSInput) (req *request.Request, output *DisableLDAPSOutput) {
3280	op := &request.Operation{
3281		Name:       opDisableLDAPS,
3282		HTTPMethod: "POST",
3283		HTTPPath:   "/",
3284	}
3285
3286	if input == nil {
3287		input = &DisableLDAPSInput{}
3288	}
3289
3290	output = &DisableLDAPSOutput{}
3291	req = c.newRequest(op, input, output)
3292	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3293	return
3294}
3295
3296// DisableLDAPS API operation for AWS Directory Service.
3297//
3298// Deactivates LDAP secure calls for the specified directory.
3299//
3300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3301// with awserr.Error's Code and Message methods to get detailed information about
3302// the error.
3303//
3304// See the AWS API reference guide for AWS Directory Service's
3305// API operation DisableLDAPS for usage and error information.
3306//
3307// Returned Error Types:
3308//   * DirectoryUnavailableException
3309//   The specified directory is unavailable or could not be found.
3310//
3311//   * DirectoryDoesNotExistException
3312//   The specified directory does not exist in the system.
3313//
3314//   * InvalidLDAPSStatusException
3315//   The LDAP activities could not be performed because they are limited by the
3316//   LDAPS status.
3317//
3318//   * UnsupportedOperationException
3319//   The operation is not supported.
3320//
3321//   * InvalidParameterException
3322//   One or more parameters are not valid.
3323//
3324//   * ClientException
3325//   A client exception has occurred.
3326//
3327//   * ServiceException
3328//   An exception has occurred in Directory Service.
3329//
3330// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableLDAPS
3331func (c *DirectoryService) DisableLDAPS(input *DisableLDAPSInput) (*DisableLDAPSOutput, error) {
3332	req, out := c.DisableLDAPSRequest(input)
3333	return out, req.Send()
3334}
3335
3336// DisableLDAPSWithContext is the same as DisableLDAPS with the addition of
3337// the ability to pass a context and additional request options.
3338//
3339// See DisableLDAPS for details on how to use this API operation.
3340//
3341// The context must be non-nil and will be used for request cancellation. If
3342// the context is nil a panic will occur. In the future the SDK may create
3343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3344// for more information on using Contexts.
3345func (c *DirectoryService) DisableLDAPSWithContext(ctx aws.Context, input *DisableLDAPSInput, opts ...request.Option) (*DisableLDAPSOutput, error) {
3346	req, out := c.DisableLDAPSRequest(input)
3347	req.SetContext(ctx)
3348	req.ApplyOptions(opts...)
3349	return out, req.Send()
3350}
3351
3352const opDisableRadius = "DisableRadius"
3353
3354// DisableRadiusRequest generates a "aws/request.Request" representing the
3355// client's request for the DisableRadius operation. The "output" return
3356// value will be populated with the request's response once the request completes
3357// successfully.
3358//
3359// Use "Send" method on the returned Request to send the API call to the service.
3360// the "output" return value is not valid until after Send returns without error.
3361//
3362// See DisableRadius for more information on using the DisableRadius
3363// API call, and error handling.
3364//
3365// This method is useful when you want to inject custom logic or configuration
3366// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3367//
3368//
3369//    // Example sending a request using the DisableRadiusRequest method.
3370//    req, resp := client.DisableRadiusRequest(params)
3371//
3372//    err := req.Send()
3373//    if err == nil { // resp is now filled
3374//        fmt.Println(resp)
3375//    }
3376//
3377// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
3378func (c *DirectoryService) DisableRadiusRequest(input *DisableRadiusInput) (req *request.Request, output *DisableRadiusOutput) {
3379	op := &request.Operation{
3380		Name:       opDisableRadius,
3381		HTTPMethod: "POST",
3382		HTTPPath:   "/",
3383	}
3384
3385	if input == nil {
3386		input = &DisableRadiusInput{}
3387	}
3388
3389	output = &DisableRadiusOutput{}
3390	req = c.newRequest(op, input, output)
3391	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3392	return
3393}
3394
3395// DisableRadius API operation for AWS Directory Service.
3396//
3397// Disables multi-factor authentication (MFA) with the Remote Authentication
3398// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
3399// directory.
3400//
3401// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3402// with awserr.Error's Code and Message methods to get detailed information about
3403// the error.
3404//
3405// See the AWS API reference guide for AWS Directory Service's
3406// API operation DisableRadius for usage and error information.
3407//
3408// Returned Error Types:
3409//   * EntityDoesNotExistException
3410//   The specified entity could not be found.
3411//
3412//   * ClientException
3413//   A client exception has occurred.
3414//
3415//   * ServiceException
3416//   An exception has occurred in Directory Service.
3417//
3418// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
3419func (c *DirectoryService) DisableRadius(input *DisableRadiusInput) (*DisableRadiusOutput, error) {
3420	req, out := c.DisableRadiusRequest(input)
3421	return out, req.Send()
3422}
3423
3424// DisableRadiusWithContext is the same as DisableRadius with the addition of
3425// the ability to pass a context and additional request options.
3426//
3427// See DisableRadius for details on how to use this API operation.
3428//
3429// The context must be non-nil and will be used for request cancellation. If
3430// the context is nil a panic will occur. In the future the SDK may create
3431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3432// for more information on using Contexts.
3433func (c *DirectoryService) DisableRadiusWithContext(ctx aws.Context, input *DisableRadiusInput, opts ...request.Option) (*DisableRadiusOutput, error) {
3434	req, out := c.DisableRadiusRequest(input)
3435	req.SetContext(ctx)
3436	req.ApplyOptions(opts...)
3437	return out, req.Send()
3438}
3439
3440const opDisableSso = "DisableSso"
3441
3442// DisableSsoRequest generates a "aws/request.Request" representing the
3443// client's request for the DisableSso operation. The "output" return
3444// value will be populated with the request's response once the request completes
3445// successfully.
3446//
3447// Use "Send" method on the returned Request to send the API call to the service.
3448// the "output" return value is not valid until after Send returns without error.
3449//
3450// See DisableSso for more information on using the DisableSso
3451// API call, and error handling.
3452//
3453// This method is useful when you want to inject custom logic or configuration
3454// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3455//
3456//
3457//    // Example sending a request using the DisableSsoRequest method.
3458//    req, resp := client.DisableSsoRequest(params)
3459//
3460//    err := req.Send()
3461//    if err == nil { // resp is now filled
3462//        fmt.Println(resp)
3463//    }
3464//
3465// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
3466func (c *DirectoryService) DisableSsoRequest(input *DisableSsoInput) (req *request.Request, output *DisableSsoOutput) {
3467	op := &request.Operation{
3468		Name:       opDisableSso,
3469		HTTPMethod: "POST",
3470		HTTPPath:   "/",
3471	}
3472
3473	if input == nil {
3474		input = &DisableSsoInput{}
3475	}
3476
3477	output = &DisableSsoOutput{}
3478	req = c.newRequest(op, input, output)
3479	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3480	return
3481}
3482
3483// DisableSso API operation for AWS Directory Service.
3484//
3485// Disables single-sign on for a directory.
3486//
3487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3488// with awserr.Error's Code and Message methods to get detailed information about
3489// the error.
3490//
3491// See the AWS API reference guide for AWS Directory Service's
3492// API operation DisableSso for usage and error information.
3493//
3494// Returned Error Types:
3495//   * EntityDoesNotExistException
3496//   The specified entity could not be found.
3497//
3498//   * InsufficientPermissionsException
3499//   The account does not have sufficient permission to perform the operation.
3500//
3501//   * AuthenticationFailedException
3502//   An authentication error occurred.
3503//
3504//   * ClientException
3505//   A client exception has occurred.
3506//
3507//   * ServiceException
3508//   An exception has occurred in Directory Service.
3509//
3510// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
3511func (c *DirectoryService) DisableSso(input *DisableSsoInput) (*DisableSsoOutput, error) {
3512	req, out := c.DisableSsoRequest(input)
3513	return out, req.Send()
3514}
3515
3516// DisableSsoWithContext is the same as DisableSso with the addition of
3517// the ability to pass a context and additional request options.
3518//
3519// See DisableSso for details on how to use this API operation.
3520//
3521// The context must be non-nil and will be used for request cancellation. If
3522// the context is nil a panic will occur. In the future the SDK may create
3523// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3524// for more information on using Contexts.
3525func (c *DirectoryService) DisableSsoWithContext(ctx aws.Context, input *DisableSsoInput, opts ...request.Option) (*DisableSsoOutput, error) {
3526	req, out := c.DisableSsoRequest(input)
3527	req.SetContext(ctx)
3528	req.ApplyOptions(opts...)
3529	return out, req.Send()
3530}
3531
3532const opEnableClientAuthentication = "EnableClientAuthentication"
3533
3534// EnableClientAuthenticationRequest generates a "aws/request.Request" representing the
3535// client's request for the EnableClientAuthentication operation. The "output" return
3536// value will be populated with the request's response once the request completes
3537// successfully.
3538//
3539// Use "Send" method on the returned Request to send the API call to the service.
3540// the "output" return value is not valid until after Send returns without error.
3541//
3542// See EnableClientAuthentication for more information on using the EnableClientAuthentication
3543// API call, and error handling.
3544//
3545// This method is useful when you want to inject custom logic or configuration
3546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3547//
3548//
3549//    // Example sending a request using the EnableClientAuthenticationRequest method.
3550//    req, resp := client.EnableClientAuthenticationRequest(params)
3551//
3552//    err := req.Send()
3553//    if err == nil { // resp is now filled
3554//        fmt.Println(resp)
3555//    }
3556//
3557// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableClientAuthentication
3558func (c *DirectoryService) EnableClientAuthenticationRequest(input *EnableClientAuthenticationInput) (req *request.Request, output *EnableClientAuthenticationOutput) {
3559	op := &request.Operation{
3560		Name:       opEnableClientAuthentication,
3561		HTTPMethod: "POST",
3562		HTTPPath:   "/",
3563	}
3564
3565	if input == nil {
3566		input = &EnableClientAuthenticationInput{}
3567	}
3568
3569	output = &EnableClientAuthenticationOutput{}
3570	req = c.newRequest(op, input, output)
3571	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3572	return
3573}
3574
3575// EnableClientAuthentication API operation for AWS Directory Service.
3576//
3577// Enables alternative client authentication methods for the specified directory.
3578//
3579// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3580// with awserr.Error's Code and Message methods to get detailed information about
3581// the error.
3582//
3583// See the AWS API reference guide for AWS Directory Service's
3584// API operation EnableClientAuthentication for usage and error information.
3585//
3586// Returned Error Types:
3587//   * DirectoryDoesNotExistException
3588//   The specified directory does not exist in the system.
3589//
3590//   * UnsupportedOperationException
3591//   The operation is not supported.
3592//
3593//   * InvalidClientAuthStatusException
3594//   Client authentication is already enabled.
3595//
3596//   * AccessDeniedException
3597//   Client authentication is not available in this region at this time.
3598//
3599//   * NoAvailableCertificateException
3600//   Client authentication setup could not be completed because at least one valid
3601//   certificate must be registered in the system.
3602//
3603//   * ClientException
3604//   A client exception has occurred.
3605//
3606//   * ServiceException
3607//   An exception has occurred in Directory Service.
3608//
3609// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableClientAuthentication
3610func (c *DirectoryService) EnableClientAuthentication(input *EnableClientAuthenticationInput) (*EnableClientAuthenticationOutput, error) {
3611	req, out := c.EnableClientAuthenticationRequest(input)
3612	return out, req.Send()
3613}
3614
3615// EnableClientAuthenticationWithContext is the same as EnableClientAuthentication with the addition of
3616// the ability to pass a context and additional request options.
3617//
3618// See EnableClientAuthentication 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) EnableClientAuthenticationWithContext(ctx aws.Context, input *EnableClientAuthenticationInput, opts ...request.Option) (*EnableClientAuthenticationOutput, error) {
3625	req, out := c.EnableClientAuthenticationRequest(input)
3626	req.SetContext(ctx)
3627	req.ApplyOptions(opts...)
3628	return out, req.Send()
3629}
3630
3631const opEnableLDAPS = "EnableLDAPS"
3632
3633// EnableLDAPSRequest generates a "aws/request.Request" representing the
3634// client's request for the EnableLDAPS 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 EnableLDAPS for more information on using the EnableLDAPS
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 EnableLDAPSRequest method.
3649//    req, resp := client.EnableLDAPSRequest(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/EnableLDAPS
3657func (c *DirectoryService) EnableLDAPSRequest(input *EnableLDAPSInput) (req *request.Request, output *EnableLDAPSOutput) {
3658	op := &request.Operation{
3659		Name:       opEnableLDAPS,
3660		HTTPMethod: "POST",
3661		HTTPPath:   "/",
3662	}
3663
3664	if input == nil {
3665		input = &EnableLDAPSInput{}
3666	}
3667
3668	output = &EnableLDAPSOutput{}
3669	req = c.newRequest(op, input, output)
3670	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3671	return
3672}
3673
3674// EnableLDAPS API operation for AWS Directory Service.
3675//
3676// Activates the switch for the specific directory to always use LDAP secure
3677// calls.
3678//
3679// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3680// with awserr.Error's Code and Message methods to get detailed information about
3681// the error.
3682//
3683// See the AWS API reference guide for AWS Directory Service's
3684// API operation EnableLDAPS for usage and error information.
3685//
3686// Returned Error Types:
3687//   * DirectoryUnavailableException
3688//   The specified directory is unavailable or could not be found.
3689//
3690//   * DirectoryDoesNotExistException
3691//   The specified directory does not exist in the system.
3692//
3693//   * NoAvailableCertificateException
3694//   Client authentication setup could not be completed because at least one valid
3695//   certificate must be registered in the system.
3696//
3697//   * InvalidLDAPSStatusException
3698//   The LDAP activities could not be performed because they are limited by the
3699//   LDAPS status.
3700//
3701//   * UnsupportedOperationException
3702//   The operation is not supported.
3703//
3704//   * InvalidParameterException
3705//   One or more parameters are not valid.
3706//
3707//   * ClientException
3708//   A client exception has occurred.
3709//
3710//   * ServiceException
3711//   An exception has occurred in Directory Service.
3712//
3713// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableLDAPS
3714func (c *DirectoryService) EnableLDAPS(input *EnableLDAPSInput) (*EnableLDAPSOutput, error) {
3715	req, out := c.EnableLDAPSRequest(input)
3716	return out, req.Send()
3717}
3718
3719// EnableLDAPSWithContext is the same as EnableLDAPS with the addition of
3720// the ability to pass a context and additional request options.
3721//
3722// See EnableLDAPS for details on how to use this API operation.
3723//
3724// The context must be non-nil and will be used for request cancellation. If
3725// the context is nil a panic will occur. In the future the SDK may create
3726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3727// for more information on using Contexts.
3728func (c *DirectoryService) EnableLDAPSWithContext(ctx aws.Context, input *EnableLDAPSInput, opts ...request.Option) (*EnableLDAPSOutput, error) {
3729	req, out := c.EnableLDAPSRequest(input)
3730	req.SetContext(ctx)
3731	req.ApplyOptions(opts...)
3732	return out, req.Send()
3733}
3734
3735const opEnableRadius = "EnableRadius"
3736
3737// EnableRadiusRequest generates a "aws/request.Request" representing the
3738// client's request for the EnableRadius operation. The "output" return
3739// value will be populated with the request's response once the request completes
3740// successfully.
3741//
3742// Use "Send" method on the returned Request to send the API call to the service.
3743// the "output" return value is not valid until after Send returns without error.
3744//
3745// See EnableRadius for more information on using the EnableRadius
3746// API call, and error handling.
3747//
3748// This method is useful when you want to inject custom logic or configuration
3749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3750//
3751//
3752//    // Example sending a request using the EnableRadiusRequest method.
3753//    req, resp := client.EnableRadiusRequest(params)
3754//
3755//    err := req.Send()
3756//    if err == nil { // resp is now filled
3757//        fmt.Println(resp)
3758//    }
3759//
3760// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
3761func (c *DirectoryService) EnableRadiusRequest(input *EnableRadiusInput) (req *request.Request, output *EnableRadiusOutput) {
3762	op := &request.Operation{
3763		Name:       opEnableRadius,
3764		HTTPMethod: "POST",
3765		HTTPPath:   "/",
3766	}
3767
3768	if input == nil {
3769		input = &EnableRadiusInput{}
3770	}
3771
3772	output = &EnableRadiusOutput{}
3773	req = c.newRequest(op, input, output)
3774	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3775	return
3776}
3777
3778// EnableRadius API operation for AWS Directory Service.
3779//
3780// Enables multi-factor authentication (MFA) with the Remote Authentication
3781// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
3782// directory.
3783//
3784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3785// with awserr.Error's Code and Message methods to get detailed information about
3786// the error.
3787//
3788// See the AWS API reference guide for AWS Directory Service's
3789// API operation EnableRadius for usage and error information.
3790//
3791// Returned Error Types:
3792//   * InvalidParameterException
3793//   One or more parameters are not valid.
3794//
3795//   * EntityAlreadyExistsException
3796//   The specified entity already exists.
3797//
3798//   * EntityDoesNotExistException
3799//   The specified entity could not be found.
3800//
3801//   * ClientException
3802//   A client exception has occurred.
3803//
3804//   * ServiceException
3805//   An exception has occurred in Directory Service.
3806//
3807// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
3808func (c *DirectoryService) EnableRadius(input *EnableRadiusInput) (*EnableRadiusOutput, error) {
3809	req, out := c.EnableRadiusRequest(input)
3810	return out, req.Send()
3811}
3812
3813// EnableRadiusWithContext is the same as EnableRadius with the addition of
3814// the ability to pass a context and additional request options.
3815//
3816// See EnableRadius for details on how to use this API operation.
3817//
3818// The context must be non-nil and will be used for request cancellation. If
3819// the context is nil a panic will occur. In the future the SDK may create
3820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3821// for more information on using Contexts.
3822func (c *DirectoryService) EnableRadiusWithContext(ctx aws.Context, input *EnableRadiusInput, opts ...request.Option) (*EnableRadiusOutput, error) {
3823	req, out := c.EnableRadiusRequest(input)
3824	req.SetContext(ctx)
3825	req.ApplyOptions(opts...)
3826	return out, req.Send()
3827}
3828
3829const opEnableSso = "EnableSso"
3830
3831// EnableSsoRequest generates a "aws/request.Request" representing the
3832// client's request for the EnableSso operation. The "output" return
3833// value will be populated with the request's response once the request completes
3834// successfully.
3835//
3836// Use "Send" method on the returned Request to send the API call to the service.
3837// the "output" return value is not valid until after Send returns without error.
3838//
3839// See EnableSso for more information on using the EnableSso
3840// API call, and error handling.
3841//
3842// This method is useful when you want to inject custom logic or configuration
3843// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3844//
3845//
3846//    // Example sending a request using the EnableSsoRequest method.
3847//    req, resp := client.EnableSsoRequest(params)
3848//
3849//    err := req.Send()
3850//    if err == nil { // resp is now filled
3851//        fmt.Println(resp)
3852//    }
3853//
3854// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
3855func (c *DirectoryService) EnableSsoRequest(input *EnableSsoInput) (req *request.Request, output *EnableSsoOutput) {
3856	op := &request.Operation{
3857		Name:       opEnableSso,
3858		HTTPMethod: "POST",
3859		HTTPPath:   "/",
3860	}
3861
3862	if input == nil {
3863		input = &EnableSsoInput{}
3864	}
3865
3866	output = &EnableSsoOutput{}
3867	req = c.newRequest(op, input, output)
3868	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3869	return
3870}
3871
3872// EnableSso API operation for AWS Directory Service.
3873//
3874// Enables single sign-on for a directory. Single sign-on allows users in your
3875// directory to access certain Amazon Web Services services from a computer
3876// joined to the directory without having to enter their credentials separately.
3877//
3878// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3879// with awserr.Error's Code and Message methods to get detailed information about
3880// the error.
3881//
3882// See the AWS API reference guide for AWS Directory Service's
3883// API operation EnableSso for usage and error information.
3884//
3885// Returned Error Types:
3886//   * EntityDoesNotExistException
3887//   The specified entity could not be found.
3888//
3889//   * InsufficientPermissionsException
3890//   The account does not have sufficient permission to perform the operation.
3891//
3892//   * AuthenticationFailedException
3893//   An authentication error occurred.
3894//
3895//   * ClientException
3896//   A client exception has occurred.
3897//
3898//   * ServiceException
3899//   An exception has occurred in Directory Service.
3900//
3901// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
3902func (c *DirectoryService) EnableSso(input *EnableSsoInput) (*EnableSsoOutput, error) {
3903	req, out := c.EnableSsoRequest(input)
3904	return out, req.Send()
3905}
3906
3907// EnableSsoWithContext is the same as EnableSso with the addition of
3908// the ability to pass a context and additional request options.
3909//
3910// See EnableSso for details on how to use this API operation.
3911//
3912// The context must be non-nil and will be used for request cancellation. If
3913// the context is nil a panic will occur. In the future the SDK may create
3914// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3915// for more information on using Contexts.
3916func (c *DirectoryService) EnableSsoWithContext(ctx aws.Context, input *EnableSsoInput, opts ...request.Option) (*EnableSsoOutput, error) {
3917	req, out := c.EnableSsoRequest(input)
3918	req.SetContext(ctx)
3919	req.ApplyOptions(opts...)
3920	return out, req.Send()
3921}
3922
3923const opGetDirectoryLimits = "GetDirectoryLimits"
3924
3925// GetDirectoryLimitsRequest generates a "aws/request.Request" representing the
3926// client's request for the GetDirectoryLimits operation. The "output" return
3927// value will be populated with the request's response once the request completes
3928// successfully.
3929//
3930// Use "Send" method on the returned Request to send the API call to the service.
3931// the "output" return value is not valid until after Send returns without error.
3932//
3933// See GetDirectoryLimits for more information on using the GetDirectoryLimits
3934// API call, and error handling.
3935//
3936// This method is useful when you want to inject custom logic or configuration
3937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3938//
3939//
3940//    // Example sending a request using the GetDirectoryLimitsRequest method.
3941//    req, resp := client.GetDirectoryLimitsRequest(params)
3942//
3943//    err := req.Send()
3944//    if err == nil { // resp is now filled
3945//        fmt.Println(resp)
3946//    }
3947//
3948// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
3949func (c *DirectoryService) GetDirectoryLimitsRequest(input *GetDirectoryLimitsInput) (req *request.Request, output *GetDirectoryLimitsOutput) {
3950	op := &request.Operation{
3951		Name:       opGetDirectoryLimits,
3952		HTTPMethod: "POST",
3953		HTTPPath:   "/",
3954	}
3955
3956	if input == nil {
3957		input = &GetDirectoryLimitsInput{}
3958	}
3959
3960	output = &GetDirectoryLimitsOutput{}
3961	req = c.newRequest(op, input, output)
3962	return
3963}
3964
3965// GetDirectoryLimits API operation for AWS Directory Service.
3966//
3967// Obtains directory limit information for the current Region.
3968//
3969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3970// with awserr.Error's Code and Message methods to get detailed information about
3971// the error.
3972//
3973// See the AWS API reference guide for AWS Directory Service's
3974// API operation GetDirectoryLimits for usage and error information.
3975//
3976// Returned Error Types:
3977//   * EntityDoesNotExistException
3978//   The specified entity could not be found.
3979//
3980//   * ClientException
3981//   A client exception has occurred.
3982//
3983//   * ServiceException
3984//   An exception has occurred in Directory Service.
3985//
3986// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
3987func (c *DirectoryService) GetDirectoryLimits(input *GetDirectoryLimitsInput) (*GetDirectoryLimitsOutput, error) {
3988	req, out := c.GetDirectoryLimitsRequest(input)
3989	return out, req.Send()
3990}
3991
3992// GetDirectoryLimitsWithContext is the same as GetDirectoryLimits with the addition of
3993// the ability to pass a context and additional request options.
3994//
3995// See GetDirectoryLimits for details on how to use this API operation.
3996//
3997// The context must be non-nil and will be used for request cancellation. If
3998// the context is nil a panic will occur. In the future the SDK may create
3999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4000// for more information on using Contexts.
4001func (c *DirectoryService) GetDirectoryLimitsWithContext(ctx aws.Context, input *GetDirectoryLimitsInput, opts ...request.Option) (*GetDirectoryLimitsOutput, error) {
4002	req, out := c.GetDirectoryLimitsRequest(input)
4003	req.SetContext(ctx)
4004	req.ApplyOptions(opts...)
4005	return out, req.Send()
4006}
4007
4008const opGetSnapshotLimits = "GetSnapshotLimits"
4009
4010// GetSnapshotLimitsRequest generates a "aws/request.Request" representing the
4011// client's request for the GetSnapshotLimits operation. The "output" return
4012// value will be populated with the request's response once the request completes
4013// successfully.
4014//
4015// Use "Send" method on the returned Request to send the API call to the service.
4016// the "output" return value is not valid until after Send returns without error.
4017//
4018// See GetSnapshotLimits for more information on using the GetSnapshotLimits
4019// API call, and error handling.
4020//
4021// This method is useful when you want to inject custom logic or configuration
4022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4023//
4024//
4025//    // Example sending a request using the GetSnapshotLimitsRequest method.
4026//    req, resp := client.GetSnapshotLimitsRequest(params)
4027//
4028//    err := req.Send()
4029//    if err == nil { // resp is now filled
4030//        fmt.Println(resp)
4031//    }
4032//
4033// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
4034func (c *DirectoryService) GetSnapshotLimitsRequest(input *GetSnapshotLimitsInput) (req *request.Request, output *GetSnapshotLimitsOutput) {
4035	op := &request.Operation{
4036		Name:       opGetSnapshotLimits,
4037		HTTPMethod: "POST",
4038		HTTPPath:   "/",
4039	}
4040
4041	if input == nil {
4042		input = &GetSnapshotLimitsInput{}
4043	}
4044
4045	output = &GetSnapshotLimitsOutput{}
4046	req = c.newRequest(op, input, output)
4047	return
4048}
4049
4050// GetSnapshotLimits API operation for AWS Directory Service.
4051//
4052// Obtains the manual snapshot limits for a directory.
4053//
4054// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4055// with awserr.Error's Code and Message methods to get detailed information about
4056// the error.
4057//
4058// See the AWS API reference guide for AWS Directory Service's
4059// API operation GetSnapshotLimits for usage and error information.
4060//
4061// Returned Error Types:
4062//   * EntityDoesNotExistException
4063//   The specified entity could not be found.
4064//
4065//   * ClientException
4066//   A client exception has occurred.
4067//
4068//   * ServiceException
4069//   An exception has occurred in Directory Service.
4070//
4071// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
4072func (c *DirectoryService) GetSnapshotLimits(input *GetSnapshotLimitsInput) (*GetSnapshotLimitsOutput, error) {
4073	req, out := c.GetSnapshotLimitsRequest(input)
4074	return out, req.Send()
4075}
4076
4077// GetSnapshotLimitsWithContext is the same as GetSnapshotLimits with the addition of
4078// the ability to pass a context and additional request options.
4079//
4080// See GetSnapshotLimits for details on how to use this API operation.
4081//
4082// The context must be non-nil and will be used for request cancellation. If
4083// the context is nil a panic will occur. In the future the SDK may create
4084// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4085// for more information on using Contexts.
4086func (c *DirectoryService) GetSnapshotLimitsWithContext(ctx aws.Context, input *GetSnapshotLimitsInput, opts ...request.Option) (*GetSnapshotLimitsOutput, error) {
4087	req, out := c.GetSnapshotLimitsRequest(input)
4088	req.SetContext(ctx)
4089	req.ApplyOptions(opts...)
4090	return out, req.Send()
4091}
4092
4093const opListCertificates = "ListCertificates"
4094
4095// ListCertificatesRequest generates a "aws/request.Request" representing the
4096// client's request for the ListCertificates operation. The "output" return
4097// value will be populated with the request's response once the request completes
4098// successfully.
4099//
4100// Use "Send" method on the returned Request to send the API call to the service.
4101// the "output" return value is not valid until after Send returns without error.
4102//
4103// See ListCertificates for more information on using the ListCertificates
4104// API call, and error handling.
4105//
4106// This method is useful when you want to inject custom logic or configuration
4107// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4108//
4109//
4110//    // Example sending a request using the ListCertificatesRequest method.
4111//    req, resp := client.ListCertificatesRequest(params)
4112//
4113//    err := req.Send()
4114//    if err == nil { // resp is now filled
4115//        fmt.Println(resp)
4116//    }
4117//
4118// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListCertificates
4119func (c *DirectoryService) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
4120	op := &request.Operation{
4121		Name:       opListCertificates,
4122		HTTPMethod: "POST",
4123		HTTPPath:   "/",
4124	}
4125
4126	if input == nil {
4127		input = &ListCertificatesInput{}
4128	}
4129
4130	output = &ListCertificatesOutput{}
4131	req = c.newRequest(op, input, output)
4132	return
4133}
4134
4135// ListCertificates API operation for AWS Directory Service.
4136//
4137// For the specified directory, lists all the certificates registered for a
4138// secure LDAP or client certificate authentication.
4139//
4140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4141// with awserr.Error's Code and Message methods to get detailed information about
4142// the error.
4143//
4144// See the AWS API reference guide for AWS Directory Service's
4145// API operation ListCertificates for usage and error information.
4146//
4147// Returned Error Types:
4148//   * DirectoryDoesNotExistException
4149//   The specified directory does not exist in the system.
4150//
4151//   * UnsupportedOperationException
4152//   The operation is not supported.
4153//
4154//   * InvalidParameterException
4155//   One or more parameters are not valid.
4156//
4157//   * InvalidNextTokenException
4158//   The NextToken value is not valid.
4159//
4160//   * ClientException
4161//   A client exception has occurred.
4162//
4163//   * ServiceException
4164//   An exception has occurred in Directory Service.
4165//
4166// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListCertificates
4167func (c *DirectoryService) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
4168	req, out := c.ListCertificatesRequest(input)
4169	return out, req.Send()
4170}
4171
4172// ListCertificatesWithContext is the same as ListCertificates with the addition of
4173// the ability to pass a context and additional request options.
4174//
4175// See ListCertificates for details on how to use this API operation.
4176//
4177// The context must be non-nil and will be used for request cancellation. If
4178// the context is nil a panic will occur. In the future the SDK may create
4179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4180// for more information on using Contexts.
4181func (c *DirectoryService) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
4182	req, out := c.ListCertificatesRequest(input)
4183	req.SetContext(ctx)
4184	req.ApplyOptions(opts...)
4185	return out, req.Send()
4186}
4187
4188const opListIpRoutes = "ListIpRoutes"
4189
4190// ListIpRoutesRequest generates a "aws/request.Request" representing the
4191// client's request for the ListIpRoutes operation. The "output" return
4192// value will be populated with the request's response once the request completes
4193// successfully.
4194//
4195// Use "Send" method on the returned Request to send the API call to the service.
4196// the "output" return value is not valid until after Send returns without error.
4197//
4198// See ListIpRoutes for more information on using the ListIpRoutes
4199// API call, and error handling.
4200//
4201// This method is useful when you want to inject custom logic or configuration
4202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4203//
4204//
4205//    // Example sending a request using the ListIpRoutesRequest method.
4206//    req, resp := client.ListIpRoutesRequest(params)
4207//
4208//    err := req.Send()
4209//    if err == nil { // resp is now filled
4210//        fmt.Println(resp)
4211//    }
4212//
4213// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
4214func (c *DirectoryService) ListIpRoutesRequest(input *ListIpRoutesInput) (req *request.Request, output *ListIpRoutesOutput) {
4215	op := &request.Operation{
4216		Name:       opListIpRoutes,
4217		HTTPMethod: "POST",
4218		HTTPPath:   "/",
4219	}
4220
4221	if input == nil {
4222		input = &ListIpRoutesInput{}
4223	}
4224
4225	output = &ListIpRoutesOutput{}
4226	req = c.newRequest(op, input, output)
4227	return
4228}
4229
4230// ListIpRoutes API operation for AWS Directory Service.
4231//
4232// Lists the address blocks that you have added to a directory.
4233//
4234// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4235// with awserr.Error's Code and Message methods to get detailed information about
4236// the error.
4237//
4238// See the AWS API reference guide for AWS Directory Service's
4239// API operation ListIpRoutes for usage and error information.
4240//
4241// Returned Error Types:
4242//   * EntityDoesNotExistException
4243//   The specified entity could not be found.
4244//
4245//   * InvalidNextTokenException
4246//   The NextToken value is not valid.
4247//
4248//   * InvalidParameterException
4249//   One or more parameters are not valid.
4250//
4251//   * ClientException
4252//   A client exception has occurred.
4253//
4254//   * ServiceException
4255//   An exception has occurred in Directory Service.
4256//
4257// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
4258func (c *DirectoryService) ListIpRoutes(input *ListIpRoutesInput) (*ListIpRoutesOutput, error) {
4259	req, out := c.ListIpRoutesRequest(input)
4260	return out, req.Send()
4261}
4262
4263// ListIpRoutesWithContext is the same as ListIpRoutes with the addition of
4264// the ability to pass a context and additional request options.
4265//
4266// See ListIpRoutes for details on how to use this API operation.
4267//
4268// The context must be non-nil and will be used for request cancellation. If
4269// the context is nil a panic will occur. In the future the SDK may create
4270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4271// for more information on using Contexts.
4272func (c *DirectoryService) ListIpRoutesWithContext(ctx aws.Context, input *ListIpRoutesInput, opts ...request.Option) (*ListIpRoutesOutput, error) {
4273	req, out := c.ListIpRoutesRequest(input)
4274	req.SetContext(ctx)
4275	req.ApplyOptions(opts...)
4276	return out, req.Send()
4277}
4278
4279const opListLogSubscriptions = "ListLogSubscriptions"
4280
4281// ListLogSubscriptionsRequest generates a "aws/request.Request" representing the
4282// client's request for the ListLogSubscriptions operation. The "output" return
4283// value will be populated with the request's response once the request completes
4284// successfully.
4285//
4286// Use "Send" method on the returned Request to send the API call to the service.
4287// the "output" return value is not valid until after Send returns without error.
4288//
4289// See ListLogSubscriptions for more information on using the ListLogSubscriptions
4290// API call, and error handling.
4291//
4292// This method is useful when you want to inject custom logic or configuration
4293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4294//
4295//
4296//    // Example sending a request using the ListLogSubscriptionsRequest method.
4297//    req, resp := client.ListLogSubscriptionsRequest(params)
4298//
4299//    err := req.Send()
4300//    if err == nil { // resp is now filled
4301//        fmt.Println(resp)
4302//    }
4303//
4304// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
4305func (c *DirectoryService) ListLogSubscriptionsRequest(input *ListLogSubscriptionsInput) (req *request.Request, output *ListLogSubscriptionsOutput) {
4306	op := &request.Operation{
4307		Name:       opListLogSubscriptions,
4308		HTTPMethod: "POST",
4309		HTTPPath:   "/",
4310	}
4311
4312	if input == nil {
4313		input = &ListLogSubscriptionsInput{}
4314	}
4315
4316	output = &ListLogSubscriptionsOutput{}
4317	req = c.newRequest(op, input, output)
4318	return
4319}
4320
4321// ListLogSubscriptions API operation for AWS Directory Service.
4322//
4323// Lists the active log subscriptions for the Amazon Web Services account.
4324//
4325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4326// with awserr.Error's Code and Message methods to get detailed information about
4327// the error.
4328//
4329// See the AWS API reference guide for AWS Directory Service's
4330// API operation ListLogSubscriptions for usage and error information.
4331//
4332// Returned Error Types:
4333//   * EntityDoesNotExistException
4334//   The specified entity could not be found.
4335//
4336//   * InvalidNextTokenException
4337//   The NextToken value is not valid.
4338//
4339//   * ClientException
4340//   A client exception has occurred.
4341//
4342//   * ServiceException
4343//   An exception has occurred in Directory Service.
4344//
4345// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
4346func (c *DirectoryService) ListLogSubscriptions(input *ListLogSubscriptionsInput) (*ListLogSubscriptionsOutput, error) {
4347	req, out := c.ListLogSubscriptionsRequest(input)
4348	return out, req.Send()
4349}
4350
4351// ListLogSubscriptionsWithContext is the same as ListLogSubscriptions with the addition of
4352// the ability to pass a context and additional request options.
4353//
4354// See ListLogSubscriptions for details on how to use this API operation.
4355//
4356// The context must be non-nil and will be used for request cancellation. If
4357// the context is nil a panic will occur. In the future the SDK may create
4358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4359// for more information on using Contexts.
4360func (c *DirectoryService) ListLogSubscriptionsWithContext(ctx aws.Context, input *ListLogSubscriptionsInput, opts ...request.Option) (*ListLogSubscriptionsOutput, error) {
4361	req, out := c.ListLogSubscriptionsRequest(input)
4362	req.SetContext(ctx)
4363	req.ApplyOptions(opts...)
4364	return out, req.Send()
4365}
4366
4367const opListSchemaExtensions = "ListSchemaExtensions"
4368
4369// ListSchemaExtensionsRequest generates a "aws/request.Request" representing the
4370// client's request for the ListSchemaExtensions operation. The "output" return
4371// value will be populated with the request's response once the request completes
4372// successfully.
4373//
4374// Use "Send" method on the returned Request to send the API call to the service.
4375// the "output" return value is not valid until after Send returns without error.
4376//
4377// See ListSchemaExtensions for more information on using the ListSchemaExtensions
4378// API call, and error handling.
4379//
4380// This method is useful when you want to inject custom logic or configuration
4381// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4382//
4383//
4384//    // Example sending a request using the ListSchemaExtensionsRequest method.
4385//    req, resp := client.ListSchemaExtensionsRequest(params)
4386//
4387//    err := req.Send()
4388//    if err == nil { // resp is now filled
4389//        fmt.Println(resp)
4390//    }
4391//
4392// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
4393func (c *DirectoryService) ListSchemaExtensionsRequest(input *ListSchemaExtensionsInput) (req *request.Request, output *ListSchemaExtensionsOutput) {
4394	op := &request.Operation{
4395		Name:       opListSchemaExtensions,
4396		HTTPMethod: "POST",
4397		HTTPPath:   "/",
4398	}
4399
4400	if input == nil {
4401		input = &ListSchemaExtensionsInput{}
4402	}
4403
4404	output = &ListSchemaExtensionsOutput{}
4405	req = c.newRequest(op, input, output)
4406	return
4407}
4408
4409// ListSchemaExtensions API operation for AWS Directory Service.
4410//
4411// Lists all schema extensions applied to a Microsoft AD Directory.
4412//
4413// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4414// with awserr.Error's Code and Message methods to get detailed information about
4415// the error.
4416//
4417// See the AWS API reference guide for AWS Directory Service's
4418// API operation ListSchemaExtensions for usage and error information.
4419//
4420// Returned Error Types:
4421//   * InvalidNextTokenException
4422//   The NextToken value is not valid.
4423//
4424//   * EntityDoesNotExistException
4425//   The specified entity could not be found.
4426//
4427//   * ClientException
4428//   A client exception has occurred.
4429//
4430//   * ServiceException
4431//   An exception has occurred in Directory Service.
4432//
4433// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
4434func (c *DirectoryService) ListSchemaExtensions(input *ListSchemaExtensionsInput) (*ListSchemaExtensionsOutput, error) {
4435	req, out := c.ListSchemaExtensionsRequest(input)
4436	return out, req.Send()
4437}
4438
4439// ListSchemaExtensionsWithContext is the same as ListSchemaExtensions with the addition of
4440// the ability to pass a context and additional request options.
4441//
4442// See ListSchemaExtensions for details on how to use this API operation.
4443//
4444// The context must be non-nil and will be used for request cancellation. If
4445// the context is nil a panic will occur. In the future the SDK may create
4446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4447// for more information on using Contexts.
4448func (c *DirectoryService) ListSchemaExtensionsWithContext(ctx aws.Context, input *ListSchemaExtensionsInput, opts ...request.Option) (*ListSchemaExtensionsOutput, error) {
4449	req, out := c.ListSchemaExtensionsRequest(input)
4450	req.SetContext(ctx)
4451	req.ApplyOptions(opts...)
4452	return out, req.Send()
4453}
4454
4455const opListTagsForResource = "ListTagsForResource"
4456
4457// ListTagsForResourceRequest generates a "aws/request.Request" representing the
4458// client's request for the ListTagsForResource operation. The "output" return
4459// value will be populated with the request's response once the request completes
4460// successfully.
4461//
4462// Use "Send" method on the returned Request to send the API call to the service.
4463// the "output" return value is not valid until after Send returns without error.
4464//
4465// See ListTagsForResource for more information on using the ListTagsForResource
4466// API call, and error handling.
4467//
4468// This method is useful when you want to inject custom logic or configuration
4469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4470//
4471//
4472//    // Example sending a request using the ListTagsForResourceRequest method.
4473//    req, resp := client.ListTagsForResourceRequest(params)
4474//
4475//    err := req.Send()
4476//    if err == nil { // resp is now filled
4477//        fmt.Println(resp)
4478//    }
4479//
4480// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
4481func (c *DirectoryService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
4482	op := &request.Operation{
4483		Name:       opListTagsForResource,
4484		HTTPMethod: "POST",
4485		HTTPPath:   "/",
4486	}
4487
4488	if input == nil {
4489		input = &ListTagsForResourceInput{}
4490	}
4491
4492	output = &ListTagsForResourceOutput{}
4493	req = c.newRequest(op, input, output)
4494	return
4495}
4496
4497// ListTagsForResource API operation for AWS Directory Service.
4498//
4499// Lists all tags on a directory.
4500//
4501// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4502// with awserr.Error's Code and Message methods to get detailed information about
4503// the error.
4504//
4505// See the AWS API reference guide for AWS Directory Service's
4506// API operation ListTagsForResource for usage and error information.
4507//
4508// Returned Error Types:
4509//   * EntityDoesNotExistException
4510//   The specified entity could not be found.
4511//
4512//   * InvalidNextTokenException
4513//   The NextToken value is not valid.
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 Directory Service.
4523//
4524// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
4525func (c *DirectoryService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4526	req, out := c.ListTagsForResourceRequest(input)
4527	return out, req.Send()
4528}
4529
4530// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4531// the ability to pass a context and additional request options.
4532//
4533// See ListTagsForResource 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) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4540	req, out := c.ListTagsForResourceRequest(input)
4541	req.SetContext(ctx)
4542	req.ApplyOptions(opts...)
4543	return out, req.Send()
4544}
4545
4546const opRegisterCertificate = "RegisterCertificate"
4547
4548// RegisterCertificateRequest generates a "aws/request.Request" representing the
4549// client's request for the RegisterCertificate 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 RegisterCertificate for more information on using the RegisterCertificate
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 RegisterCertificateRequest method.
4564//    req, resp := client.RegisterCertificateRequest(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/RegisterCertificate
4572func (c *DirectoryService) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
4573	op := &request.Operation{
4574		Name:       opRegisterCertificate,
4575		HTTPMethod: "POST",
4576		HTTPPath:   "/",
4577	}
4578
4579	if input == nil {
4580		input = &RegisterCertificateInput{}
4581	}
4582
4583	output = &RegisterCertificateOutput{}
4584	req = c.newRequest(op, input, output)
4585	return
4586}
4587
4588// RegisterCertificate API operation for AWS Directory Service.
4589//
4590// Registers a certificate for a secure LDAP or client certificate authentication.
4591//
4592// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4593// with awserr.Error's Code and Message methods to get detailed information about
4594// the error.
4595//
4596// See the AWS API reference guide for AWS Directory Service's
4597// API operation RegisterCertificate for usage and error information.
4598//
4599// Returned Error Types:
4600//   * DirectoryUnavailableException
4601//   The specified directory is unavailable or could not be found.
4602//
4603//   * DirectoryDoesNotExistException
4604//   The specified directory does not exist in the system.
4605//
4606//   * InvalidCertificateException
4607//   The certificate PEM that was provided has incorrect encoding.
4608//
4609//   * CertificateLimitExceededException
4610//   The certificate could not be added because the certificate limit has been
4611//   reached.
4612//
4613//   * CertificateAlreadyExistsException
4614//   The certificate has already been registered into the system.
4615//
4616//   * UnsupportedOperationException
4617//   The operation is not supported.
4618//
4619//   * InvalidParameterException
4620//   One or more parameters are not valid.
4621//
4622//   * ClientException
4623//   A client exception has occurred.
4624//
4625//   * ServiceException
4626//   An exception has occurred in Directory Service.
4627//
4628// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterCertificate
4629func (c *DirectoryService) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
4630	req, out := c.RegisterCertificateRequest(input)
4631	return out, req.Send()
4632}
4633
4634// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
4635// the ability to pass a context and additional request options.
4636//
4637// See RegisterCertificate for details on how to use this API operation.
4638//
4639// The context must be non-nil and will be used for request cancellation. If
4640// the context is nil a panic will occur. In the future the SDK may create
4641// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4642// for more information on using Contexts.
4643func (c *DirectoryService) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
4644	req, out := c.RegisterCertificateRequest(input)
4645	req.SetContext(ctx)
4646	req.ApplyOptions(opts...)
4647	return out, req.Send()
4648}
4649
4650const opRegisterEventTopic = "RegisterEventTopic"
4651
4652// RegisterEventTopicRequest generates a "aws/request.Request" representing the
4653// client's request for the RegisterEventTopic operation. The "output" return
4654// value will be populated with the request's response once the request completes
4655// successfully.
4656//
4657// Use "Send" method on the returned Request to send the API call to the service.
4658// the "output" return value is not valid until after Send returns without error.
4659//
4660// See RegisterEventTopic for more information on using the RegisterEventTopic
4661// API call, and error handling.
4662//
4663// This method is useful when you want to inject custom logic or configuration
4664// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4665//
4666//
4667//    // Example sending a request using the RegisterEventTopicRequest method.
4668//    req, resp := client.RegisterEventTopicRequest(params)
4669//
4670//    err := req.Send()
4671//    if err == nil { // resp is now filled
4672//        fmt.Println(resp)
4673//    }
4674//
4675// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
4676func (c *DirectoryService) RegisterEventTopicRequest(input *RegisterEventTopicInput) (req *request.Request, output *RegisterEventTopicOutput) {
4677	op := &request.Operation{
4678		Name:       opRegisterEventTopic,
4679		HTTPMethod: "POST",
4680		HTTPPath:   "/",
4681	}
4682
4683	if input == nil {
4684		input = &RegisterEventTopicInput{}
4685	}
4686
4687	output = &RegisterEventTopicOutput{}
4688	req = c.newRequest(op, input, output)
4689	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4690	return
4691}
4692
4693// RegisterEventTopic API operation for AWS Directory Service.
4694//
4695// Associates a directory with an Amazon SNS topic. This establishes the directory
4696// as a publisher to the specified Amazon SNS topic. You can then receive email
4697// or text (SMS) messages when the status of your directory changes. You get
4698// notified if your directory goes from an Active status to an Impaired or Inoperable
4699// status. You also receive a notification when the directory returns to an
4700// Active status.
4701//
4702// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4703// with awserr.Error's Code and Message methods to get detailed information about
4704// the error.
4705//
4706// See the AWS API reference guide for AWS Directory Service's
4707// API operation RegisterEventTopic for usage and error information.
4708//
4709// Returned Error Types:
4710//   * EntityDoesNotExistException
4711//   The specified entity could not be found.
4712//
4713//   * InvalidParameterException
4714//   One or more parameters are not valid.
4715//
4716//   * ClientException
4717//   A client exception has occurred.
4718//
4719//   * ServiceException
4720//   An exception has occurred in Directory Service.
4721//
4722// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
4723func (c *DirectoryService) RegisterEventTopic(input *RegisterEventTopicInput) (*RegisterEventTopicOutput, error) {
4724	req, out := c.RegisterEventTopicRequest(input)
4725	return out, req.Send()
4726}
4727
4728// RegisterEventTopicWithContext is the same as RegisterEventTopic with the addition of
4729// the ability to pass a context and additional request options.
4730//
4731// See RegisterEventTopic for details on how to use this API operation.
4732//
4733// The context must be non-nil and will be used for request cancellation. If
4734// the context is nil a panic will occur. In the future the SDK may create
4735// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4736// for more information on using Contexts.
4737func (c *DirectoryService) RegisterEventTopicWithContext(ctx aws.Context, input *RegisterEventTopicInput, opts ...request.Option) (*RegisterEventTopicOutput, error) {
4738	req, out := c.RegisterEventTopicRequest(input)
4739	req.SetContext(ctx)
4740	req.ApplyOptions(opts...)
4741	return out, req.Send()
4742}
4743
4744const opRejectSharedDirectory = "RejectSharedDirectory"
4745
4746// RejectSharedDirectoryRequest generates a "aws/request.Request" representing the
4747// client's request for the RejectSharedDirectory operation. The "output" return
4748// value will be populated with the request's response once the request completes
4749// successfully.
4750//
4751// Use "Send" method on the returned Request to send the API call to the service.
4752// the "output" return value is not valid until after Send returns without error.
4753//
4754// See RejectSharedDirectory for more information on using the RejectSharedDirectory
4755// API call, and error handling.
4756//
4757// This method is useful when you want to inject custom logic or configuration
4758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4759//
4760//
4761//    // Example sending a request using the RejectSharedDirectoryRequest method.
4762//    req, resp := client.RejectSharedDirectoryRequest(params)
4763//
4764//    err := req.Send()
4765//    if err == nil { // resp is now filled
4766//        fmt.Println(resp)
4767//    }
4768//
4769// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
4770func (c *DirectoryService) RejectSharedDirectoryRequest(input *RejectSharedDirectoryInput) (req *request.Request, output *RejectSharedDirectoryOutput) {
4771	op := &request.Operation{
4772		Name:       opRejectSharedDirectory,
4773		HTTPMethod: "POST",
4774		HTTPPath:   "/",
4775	}
4776
4777	if input == nil {
4778		input = &RejectSharedDirectoryInput{}
4779	}
4780
4781	output = &RejectSharedDirectoryOutput{}
4782	req = c.newRequest(op, input, output)
4783	return
4784}
4785
4786// RejectSharedDirectory API operation for AWS Directory Service.
4787//
4788// Rejects a directory sharing request that was sent from the directory owner
4789// account.
4790//
4791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4792// with awserr.Error's Code and Message methods to get detailed information about
4793// the error.
4794//
4795// See the AWS API reference guide for AWS Directory Service's
4796// API operation RejectSharedDirectory for usage and error information.
4797//
4798// Returned Error Types:
4799//   * InvalidParameterException
4800//   One or more parameters are not valid.
4801//
4802//   * EntityDoesNotExistException
4803//   The specified entity could not be found.
4804//
4805//   * DirectoryAlreadySharedException
4806//   The specified directory has already been shared with this Amazon Web Services
4807//   account.
4808//
4809//   * ClientException
4810//   A client exception has occurred.
4811//
4812//   * ServiceException
4813//   An exception has occurred in Directory Service.
4814//
4815// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
4816func (c *DirectoryService) RejectSharedDirectory(input *RejectSharedDirectoryInput) (*RejectSharedDirectoryOutput, error) {
4817	req, out := c.RejectSharedDirectoryRequest(input)
4818	return out, req.Send()
4819}
4820
4821// RejectSharedDirectoryWithContext is the same as RejectSharedDirectory with the addition of
4822// the ability to pass a context and additional request options.
4823//
4824// See RejectSharedDirectory for details on how to use this API operation.
4825//
4826// The context must be non-nil and will be used for request cancellation. If
4827// the context is nil a panic will occur. In the future the SDK may create
4828// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4829// for more information on using Contexts.
4830func (c *DirectoryService) RejectSharedDirectoryWithContext(ctx aws.Context, input *RejectSharedDirectoryInput, opts ...request.Option) (*RejectSharedDirectoryOutput, error) {
4831	req, out := c.RejectSharedDirectoryRequest(input)
4832	req.SetContext(ctx)
4833	req.ApplyOptions(opts...)
4834	return out, req.Send()
4835}
4836
4837const opRemoveIpRoutes = "RemoveIpRoutes"
4838
4839// RemoveIpRoutesRequest generates a "aws/request.Request" representing the
4840// client's request for the RemoveIpRoutes operation. The "output" return
4841// value will be populated with the request's response once the request completes
4842// successfully.
4843//
4844// Use "Send" method on the returned Request to send the API call to the service.
4845// the "output" return value is not valid until after Send returns without error.
4846//
4847// See RemoveIpRoutes for more information on using the RemoveIpRoutes
4848// API call, and error handling.
4849//
4850// This method is useful when you want to inject custom logic or configuration
4851// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4852//
4853//
4854//    // Example sending a request using the RemoveIpRoutesRequest method.
4855//    req, resp := client.RemoveIpRoutesRequest(params)
4856//
4857//    err := req.Send()
4858//    if err == nil { // resp is now filled
4859//        fmt.Println(resp)
4860//    }
4861//
4862// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
4863func (c *DirectoryService) RemoveIpRoutesRequest(input *RemoveIpRoutesInput) (req *request.Request, output *RemoveIpRoutesOutput) {
4864	op := &request.Operation{
4865		Name:       opRemoveIpRoutes,
4866		HTTPMethod: "POST",
4867		HTTPPath:   "/",
4868	}
4869
4870	if input == nil {
4871		input = &RemoveIpRoutesInput{}
4872	}
4873
4874	output = &RemoveIpRoutesOutput{}
4875	req = c.newRequest(op, input, output)
4876	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4877	return
4878}
4879
4880// RemoveIpRoutes API operation for AWS Directory Service.
4881//
4882// Removes IP address blocks from a directory.
4883//
4884// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4885// with awserr.Error's Code and Message methods to get detailed information about
4886// the error.
4887//
4888// See the AWS API reference guide for AWS Directory Service's
4889// API operation RemoveIpRoutes for usage and error information.
4890//
4891// Returned Error Types:
4892//   * EntityDoesNotExistException
4893//   The specified entity could not be found.
4894//
4895//   * InvalidParameterException
4896//   One or more parameters are not valid.
4897//
4898//   * DirectoryUnavailableException
4899//   The specified directory is unavailable or could not be found.
4900//
4901//   * ClientException
4902//   A client exception has occurred.
4903//
4904//   * ServiceException
4905//   An exception has occurred in Directory Service.
4906//
4907// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
4908func (c *DirectoryService) RemoveIpRoutes(input *RemoveIpRoutesInput) (*RemoveIpRoutesOutput, error) {
4909	req, out := c.RemoveIpRoutesRequest(input)
4910	return out, req.Send()
4911}
4912
4913// RemoveIpRoutesWithContext is the same as RemoveIpRoutes with the addition of
4914// the ability to pass a context and additional request options.
4915//
4916// See RemoveIpRoutes for details on how to use this API operation.
4917//
4918// The context must be non-nil and will be used for request cancellation. If
4919// the context is nil a panic will occur. In the future the SDK may create
4920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4921// for more information on using Contexts.
4922func (c *DirectoryService) RemoveIpRoutesWithContext(ctx aws.Context, input *RemoveIpRoutesInput, opts ...request.Option) (*RemoveIpRoutesOutput, error) {
4923	req, out := c.RemoveIpRoutesRequest(input)
4924	req.SetContext(ctx)
4925	req.ApplyOptions(opts...)
4926	return out, req.Send()
4927}
4928
4929const opRemoveRegion = "RemoveRegion"
4930
4931// RemoveRegionRequest generates a "aws/request.Request" representing the
4932// client's request for the RemoveRegion operation. The "output" return
4933// value will be populated with the request's response once the request completes
4934// successfully.
4935//
4936// Use "Send" method on the returned Request to send the API call to the service.
4937// the "output" return value is not valid until after Send returns without error.
4938//
4939// See RemoveRegion for more information on using the RemoveRegion
4940// API call, and error handling.
4941//
4942// This method is useful when you want to inject custom logic or configuration
4943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4944//
4945//
4946//    // Example sending a request using the RemoveRegionRequest method.
4947//    req, resp := client.RemoveRegionRequest(params)
4948//
4949//    err := req.Send()
4950//    if err == nil { // resp is now filled
4951//        fmt.Println(resp)
4952//    }
4953//
4954// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveRegion
4955func (c *DirectoryService) RemoveRegionRequest(input *RemoveRegionInput) (req *request.Request, output *RemoveRegionOutput) {
4956	op := &request.Operation{
4957		Name:       opRemoveRegion,
4958		HTTPMethod: "POST",
4959		HTTPPath:   "/",
4960	}
4961
4962	if input == nil {
4963		input = &RemoveRegionInput{}
4964	}
4965
4966	output = &RemoveRegionOutput{}
4967	req = c.newRequest(op, input, output)
4968	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4969	return
4970}
4971
4972// RemoveRegion API operation for AWS Directory Service.
4973//
4974// Stops all replication and removes the domain controllers from the specified
4975// Region. You cannot remove the primary Region with this operation. Instead,
4976// use the DeleteDirectory API.
4977//
4978// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4979// with awserr.Error's Code and Message methods to get detailed information about
4980// the error.
4981//
4982// See the AWS API reference guide for AWS Directory Service's
4983// API operation RemoveRegion for usage and error information.
4984//
4985// Returned Error Types:
4986//   * DirectoryUnavailableException
4987//   The specified directory is unavailable or could not be found.
4988//
4989//   * DirectoryDoesNotExistException
4990//   The specified directory does not exist in the system.
4991//
4992//   * UnsupportedOperationException
4993//   The operation is not supported.
4994//
4995//   * AccessDeniedException
4996//   Client authentication is not available in this region at this time.
4997//
4998//   * ClientException
4999//   A client exception has occurred.
5000//
5001//   * ServiceException
5002//   An exception has occurred in Directory Service.
5003//
5004// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveRegion
5005func (c *DirectoryService) RemoveRegion(input *RemoveRegionInput) (*RemoveRegionOutput, error) {
5006	req, out := c.RemoveRegionRequest(input)
5007	return out, req.Send()
5008}
5009
5010// RemoveRegionWithContext is the same as RemoveRegion with the addition of
5011// the ability to pass a context and additional request options.
5012//
5013// See RemoveRegion for details on how to use this API operation.
5014//
5015// The context must be non-nil and will be used for request cancellation. If
5016// the context is nil a panic will occur. In the future the SDK may create
5017// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5018// for more information on using Contexts.
5019func (c *DirectoryService) RemoveRegionWithContext(ctx aws.Context, input *RemoveRegionInput, opts ...request.Option) (*RemoveRegionOutput, error) {
5020	req, out := c.RemoveRegionRequest(input)
5021	req.SetContext(ctx)
5022	req.ApplyOptions(opts...)
5023	return out, req.Send()
5024}
5025
5026const opRemoveTagsFromResource = "RemoveTagsFromResource"
5027
5028// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
5029// client's request for the RemoveTagsFromResource operation. The "output" return
5030// value will be populated with the request's response once the request completes
5031// successfully.
5032//
5033// Use "Send" method on the returned Request to send the API call to the service.
5034// the "output" return value is not valid until after Send returns without error.
5035//
5036// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
5037// API call, and error handling.
5038//
5039// This method is useful when you want to inject custom logic or configuration
5040// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5041//
5042//
5043//    // Example sending a request using the RemoveTagsFromResourceRequest method.
5044//    req, resp := client.RemoveTagsFromResourceRequest(params)
5045//
5046//    err := req.Send()
5047//    if err == nil { // resp is now filled
5048//        fmt.Println(resp)
5049//    }
5050//
5051// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
5052func (c *DirectoryService) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
5053	op := &request.Operation{
5054		Name:       opRemoveTagsFromResource,
5055		HTTPMethod: "POST",
5056		HTTPPath:   "/",
5057	}
5058
5059	if input == nil {
5060		input = &RemoveTagsFromResourceInput{}
5061	}
5062
5063	output = &RemoveTagsFromResourceOutput{}
5064	req = c.newRequest(op, input, output)
5065	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5066	return
5067}
5068
5069// RemoveTagsFromResource API operation for AWS Directory Service.
5070//
5071// Removes tags from a directory.
5072//
5073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5074// with awserr.Error's Code and Message methods to get detailed information about
5075// the error.
5076//
5077// See the AWS API reference guide for AWS Directory Service's
5078// API operation RemoveTagsFromResource for usage and error information.
5079//
5080// Returned Error Types:
5081//   * EntityDoesNotExistException
5082//   The specified entity could not be found.
5083//
5084//   * InvalidParameterException
5085//   One or more parameters are not valid.
5086//
5087//   * ClientException
5088//   A client exception has occurred.
5089//
5090//   * ServiceException
5091//   An exception has occurred in Directory Service.
5092//
5093// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
5094func (c *DirectoryService) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
5095	req, out := c.RemoveTagsFromResourceRequest(input)
5096	return out, req.Send()
5097}
5098
5099// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
5100// the ability to pass a context and additional request options.
5101//
5102// See RemoveTagsFromResource for details on how to use this API operation.
5103//
5104// The context must be non-nil and will be used for request cancellation. If
5105// the context is nil a panic will occur. In the future the SDK may create
5106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5107// for more information on using Contexts.
5108func (c *DirectoryService) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
5109	req, out := c.RemoveTagsFromResourceRequest(input)
5110	req.SetContext(ctx)
5111	req.ApplyOptions(opts...)
5112	return out, req.Send()
5113}
5114
5115const opResetUserPassword = "ResetUserPassword"
5116
5117// ResetUserPasswordRequest generates a "aws/request.Request" representing the
5118// client's request for the ResetUserPassword operation. The "output" return
5119// value will be populated with the request's response once the request completes
5120// successfully.
5121//
5122// Use "Send" method on the returned Request to send the API call to the service.
5123// the "output" return value is not valid until after Send returns without error.
5124//
5125// See ResetUserPassword for more information on using the ResetUserPassword
5126// API call, and error handling.
5127//
5128// This method is useful when you want to inject custom logic or configuration
5129// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5130//
5131//
5132//    // Example sending a request using the ResetUserPasswordRequest method.
5133//    req, resp := client.ResetUserPasswordRequest(params)
5134//
5135//    err := req.Send()
5136//    if err == nil { // resp is now filled
5137//        fmt.Println(resp)
5138//    }
5139//
5140// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ResetUserPassword
5141func (c *DirectoryService) ResetUserPasswordRequest(input *ResetUserPasswordInput) (req *request.Request, output *ResetUserPasswordOutput) {
5142	op := &request.Operation{
5143		Name:       opResetUserPassword,
5144		HTTPMethod: "POST",
5145		HTTPPath:   "/",
5146	}
5147
5148	if input == nil {
5149		input = &ResetUserPasswordInput{}
5150	}
5151
5152	output = &ResetUserPasswordOutput{}
5153	req = c.newRequest(op, input, output)
5154	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5155	return
5156}
5157
5158// ResetUserPassword API operation for AWS Directory Service.
5159//
5160// Resets the password for any user in your Managed Microsoft AD or Simple AD
5161// directory.
5162//
5163// You can reset the password for any user in your directory with the following
5164// exceptions:
5165//
5166//    * For Simple AD, you cannot reset the password for any user that is a
5167//    member of either the Domain Admins or Enterprise Admins group except for
5168//    the administrator user.
5169//
5170//    * For Managed Microsoft AD, you can only reset the password for a user
5171//    that is in an OU based off of the NetBIOS name that you typed when you
5172//    created your directory. For example, you cannot reset the password for
5173//    a user in the Amazon Web Services Reserved OU. For more information about
5174//    the OU structure for an Managed Microsoft AD directory, see What Gets
5175//    Created (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_what_gets_created.html)
5176//    in the Directory Service Administration Guide.
5177//
5178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5179// with awserr.Error's Code and Message methods to get detailed information about
5180// the error.
5181//
5182// See the AWS API reference guide for AWS Directory Service's
5183// API operation ResetUserPassword for usage and error information.
5184//
5185// Returned Error Types:
5186//   * DirectoryUnavailableException
5187//   The specified directory is unavailable or could not be found.
5188//
5189//   * UserDoesNotExistException
5190//   The user provided a username that does not exist in your directory.
5191//
5192//   * InvalidPasswordException
5193//   The new password provided by the user does not meet the password complexity
5194//   requirements defined in your directory.
5195//
5196//   * UnsupportedOperationException
5197//   The operation is not supported.
5198//
5199//   * EntityDoesNotExistException
5200//   The specified entity could not be found.
5201//
5202//   * ClientException
5203//   A client exception has occurred.
5204//
5205//   * ServiceException
5206//   An exception has occurred in Directory Service.
5207//
5208// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ResetUserPassword
5209func (c *DirectoryService) ResetUserPassword(input *ResetUserPasswordInput) (*ResetUserPasswordOutput, error) {
5210	req, out := c.ResetUserPasswordRequest(input)
5211	return out, req.Send()
5212}
5213
5214// ResetUserPasswordWithContext is the same as ResetUserPassword with the addition of
5215// the ability to pass a context and additional request options.
5216//
5217// See ResetUserPassword for details on how to use this API operation.
5218//
5219// The context must be non-nil and will be used for request cancellation. If
5220// the context is nil a panic will occur. In the future the SDK may create
5221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5222// for more information on using Contexts.
5223func (c *DirectoryService) ResetUserPasswordWithContext(ctx aws.Context, input *ResetUserPasswordInput, opts ...request.Option) (*ResetUserPasswordOutput, error) {
5224	req, out := c.ResetUserPasswordRequest(input)
5225	req.SetContext(ctx)
5226	req.ApplyOptions(opts...)
5227	return out, req.Send()
5228}
5229
5230const opRestoreFromSnapshot = "RestoreFromSnapshot"
5231
5232// RestoreFromSnapshotRequest generates a "aws/request.Request" representing the
5233// client's request for the RestoreFromSnapshot operation. The "output" return
5234// value will be populated with the request's response once the request completes
5235// successfully.
5236//
5237// Use "Send" method on the returned Request to send the API call to the service.
5238// the "output" return value is not valid until after Send returns without error.
5239//
5240// See RestoreFromSnapshot for more information on using the RestoreFromSnapshot
5241// API call, and error handling.
5242//
5243// This method is useful when you want to inject custom logic or configuration
5244// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5245//
5246//
5247//    // Example sending a request using the RestoreFromSnapshotRequest method.
5248//    req, resp := client.RestoreFromSnapshotRequest(params)
5249//
5250//    err := req.Send()
5251//    if err == nil { // resp is now filled
5252//        fmt.Println(resp)
5253//    }
5254//
5255// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
5256func (c *DirectoryService) RestoreFromSnapshotRequest(input *RestoreFromSnapshotInput) (req *request.Request, output *RestoreFromSnapshotOutput) {
5257	op := &request.Operation{
5258		Name:       opRestoreFromSnapshot,
5259		HTTPMethod: "POST",
5260		HTTPPath:   "/",
5261	}
5262
5263	if input == nil {
5264		input = &RestoreFromSnapshotInput{}
5265	}
5266
5267	output = &RestoreFromSnapshotOutput{}
5268	req = c.newRequest(op, input, output)
5269	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5270	return
5271}
5272
5273// RestoreFromSnapshot API operation for AWS Directory Service.
5274//
5275// Restores a directory using an existing directory snapshot.
5276//
5277// When you restore a directory from a snapshot, any changes made to the directory
5278// after the snapshot date are overwritten.
5279//
5280// This action returns as soon as the restore operation is initiated. You can
5281// monitor the progress of the restore operation by calling the DescribeDirectories
5282// operation with the directory identifier. When the DirectoryDescription.Stage
5283// value changes to Active, the restore operation is complete.
5284//
5285// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5286// with awserr.Error's Code and Message methods to get detailed information about
5287// the error.
5288//
5289// See the AWS API reference guide for AWS Directory Service's
5290// API operation RestoreFromSnapshot for usage and error information.
5291//
5292// Returned Error Types:
5293//   * EntityDoesNotExistException
5294//   The specified entity could not be found.
5295//
5296//   * InvalidParameterException
5297//   One or more parameters are not valid.
5298//
5299//   * ClientException
5300//   A client exception has occurred.
5301//
5302//   * ServiceException
5303//   An exception has occurred in Directory Service.
5304//
5305// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
5306func (c *DirectoryService) RestoreFromSnapshot(input *RestoreFromSnapshotInput) (*RestoreFromSnapshotOutput, error) {
5307	req, out := c.RestoreFromSnapshotRequest(input)
5308	return out, req.Send()
5309}
5310
5311// RestoreFromSnapshotWithContext is the same as RestoreFromSnapshot with the addition of
5312// the ability to pass a context and additional request options.
5313//
5314// See RestoreFromSnapshot for details on how to use this API operation.
5315//
5316// The context must be non-nil and will be used for request cancellation. If
5317// the context is nil a panic will occur. In the future the SDK may create
5318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5319// for more information on using Contexts.
5320func (c *DirectoryService) RestoreFromSnapshotWithContext(ctx aws.Context, input *RestoreFromSnapshotInput, opts ...request.Option) (*RestoreFromSnapshotOutput, error) {
5321	req, out := c.RestoreFromSnapshotRequest(input)
5322	req.SetContext(ctx)
5323	req.ApplyOptions(opts...)
5324	return out, req.Send()
5325}
5326
5327const opShareDirectory = "ShareDirectory"
5328
5329// ShareDirectoryRequest generates a "aws/request.Request" representing the
5330// client's request for the ShareDirectory operation. The "output" return
5331// value will be populated with the request's response once the request completes
5332// successfully.
5333//
5334// Use "Send" method on the returned Request to send the API call to the service.
5335// the "output" return value is not valid until after Send returns without error.
5336//
5337// See ShareDirectory for more information on using the ShareDirectory
5338// API call, and error handling.
5339//
5340// This method is useful when you want to inject custom logic or configuration
5341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5342//
5343//
5344//    // Example sending a request using the ShareDirectoryRequest method.
5345//    req, resp := client.ShareDirectoryRequest(params)
5346//
5347//    err := req.Send()
5348//    if err == nil { // resp is now filled
5349//        fmt.Println(resp)
5350//    }
5351//
5352// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
5353func (c *DirectoryService) ShareDirectoryRequest(input *ShareDirectoryInput) (req *request.Request, output *ShareDirectoryOutput) {
5354	op := &request.Operation{
5355		Name:       opShareDirectory,
5356		HTTPMethod: "POST",
5357		HTTPPath:   "/",
5358	}
5359
5360	if input == nil {
5361		input = &ShareDirectoryInput{}
5362	}
5363
5364	output = &ShareDirectoryOutput{}
5365	req = c.newRequest(op, input, output)
5366	return
5367}
5368
5369// ShareDirectory API operation for AWS Directory Service.
5370//
5371// Shares a specified directory (DirectoryId) in your Amazon Web Services account
5372// (directory owner) with another Amazon Web Services account (directory consumer).
5373// With this operation you can use your directory from any Amazon Web Services
5374// account and from any Amazon VPC within an Amazon Web Services Region.
5375//
5376// When you share your Managed Microsoft AD directory, Directory Service creates
5377// a shared directory in the directory consumer account. This shared directory
5378// contains the metadata to provide access to the directory within the directory
5379// owner account. The shared directory is visible in all VPCs in the directory
5380// consumer account.
5381//
5382// The ShareMethod parameter determines whether the specified directory can
5383// be shared between Amazon Web Services accounts inside the same Amazon Web
5384// Services organization (ORGANIZATIONS). It also determines whether you can
5385// share the directory with any other Amazon Web Services account either inside
5386// or outside of the organization (HANDSHAKE).
5387//
5388// The ShareNotes parameter is only used when HANDSHAKE is called, which sends
5389// a directory sharing request to the directory consumer.
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 ShareDirectory for usage and error information.
5397//
5398// Returned Error Types:
5399//   * DirectoryAlreadySharedException
5400//   The specified directory has already been shared with this Amazon Web Services
5401//   account.
5402//
5403//   * EntityDoesNotExistException
5404//   The specified entity could not be found.
5405//
5406//   * InvalidTargetException
5407//   The specified shared target is not valid.
5408//
5409//   * InvalidParameterException
5410//   One or more parameters are not valid.
5411//
5412//   * ClientException
5413//   A client exception has occurred.
5414//
5415//   * ShareLimitExceededException
5416//   The maximum number of Amazon Web Services accounts that you can share with
5417//   this directory has been reached.
5418//
5419//   * OrganizationsException
5420//   Exception encountered while trying to access your Amazon Web Services organization.
5421//
5422//   * AccessDeniedException
5423//   Client authentication is not available in this region at this time.
5424//
5425//   * UnsupportedOperationException
5426//   The operation is not supported.
5427//
5428//   * ServiceException
5429//   An exception has occurred in Directory Service.
5430//
5431// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
5432func (c *DirectoryService) ShareDirectory(input *ShareDirectoryInput) (*ShareDirectoryOutput, error) {
5433	req, out := c.ShareDirectoryRequest(input)
5434	return out, req.Send()
5435}
5436
5437// ShareDirectoryWithContext is the same as ShareDirectory with the addition of
5438// the ability to pass a context and additional request options.
5439//
5440// See ShareDirectory for details on how to use this API operation.
5441//
5442// The context must be non-nil and will be used for request cancellation. If
5443// the context is nil a panic will occur. In the future the SDK may create
5444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5445// for more information on using Contexts.
5446func (c *DirectoryService) ShareDirectoryWithContext(ctx aws.Context, input *ShareDirectoryInput, opts ...request.Option) (*ShareDirectoryOutput, error) {
5447	req, out := c.ShareDirectoryRequest(input)
5448	req.SetContext(ctx)
5449	req.ApplyOptions(opts...)
5450	return out, req.Send()
5451}
5452
5453const opStartSchemaExtension = "StartSchemaExtension"
5454
5455// StartSchemaExtensionRequest generates a "aws/request.Request" representing the
5456// client's request for the StartSchemaExtension operation. The "output" return
5457// value will be populated with the request's response once the request completes
5458// successfully.
5459//
5460// Use "Send" method on the returned Request to send the API call to the service.
5461// the "output" return value is not valid until after Send returns without error.
5462//
5463// See StartSchemaExtension for more information on using the StartSchemaExtension
5464// API call, and error handling.
5465//
5466// This method is useful when you want to inject custom logic or configuration
5467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5468//
5469//
5470//    // Example sending a request using the StartSchemaExtensionRequest method.
5471//    req, resp := client.StartSchemaExtensionRequest(params)
5472//
5473//    err := req.Send()
5474//    if err == nil { // resp is now filled
5475//        fmt.Println(resp)
5476//    }
5477//
5478// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
5479func (c *DirectoryService) StartSchemaExtensionRequest(input *StartSchemaExtensionInput) (req *request.Request, output *StartSchemaExtensionOutput) {
5480	op := &request.Operation{
5481		Name:       opStartSchemaExtension,
5482		HTTPMethod: "POST",
5483		HTTPPath:   "/",
5484	}
5485
5486	if input == nil {
5487		input = &StartSchemaExtensionInput{}
5488	}
5489
5490	output = &StartSchemaExtensionOutput{}
5491	req = c.newRequest(op, input, output)
5492	return
5493}
5494
5495// StartSchemaExtension API operation for AWS Directory Service.
5496//
5497// Applies a schema extension to a Microsoft AD directory.
5498//
5499// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5500// with awserr.Error's Code and Message methods to get detailed information about
5501// the error.
5502//
5503// See the AWS API reference guide for AWS Directory Service's
5504// API operation StartSchemaExtension for usage and error information.
5505//
5506// Returned Error Types:
5507//   * DirectoryUnavailableException
5508//   The specified directory is unavailable or could not be found.
5509//
5510//   * EntityDoesNotExistException
5511//   The specified entity could not be found.
5512//
5513//   * InvalidParameterException
5514//   One or more parameters are not valid.
5515//
5516//   * SnapshotLimitExceededException
5517//   The maximum number of manual snapshots for the directory has been reached.
5518//   You can use the GetSnapshotLimits operation to determine the snapshot limits
5519//   for a directory.
5520//
5521//   * ClientException
5522//   A client exception has occurred.
5523//
5524//   * ServiceException
5525//   An exception has occurred in Directory Service.
5526//
5527// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
5528func (c *DirectoryService) StartSchemaExtension(input *StartSchemaExtensionInput) (*StartSchemaExtensionOutput, error) {
5529	req, out := c.StartSchemaExtensionRequest(input)
5530	return out, req.Send()
5531}
5532
5533// StartSchemaExtensionWithContext is the same as StartSchemaExtension with the addition of
5534// the ability to pass a context and additional request options.
5535//
5536// See StartSchemaExtension for details on how to use this API operation.
5537//
5538// The context must be non-nil and will be used for request cancellation. If
5539// the context is nil a panic will occur. In the future the SDK may create
5540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5541// for more information on using Contexts.
5542func (c *DirectoryService) StartSchemaExtensionWithContext(ctx aws.Context, input *StartSchemaExtensionInput, opts ...request.Option) (*StartSchemaExtensionOutput, error) {
5543	req, out := c.StartSchemaExtensionRequest(input)
5544	req.SetContext(ctx)
5545	req.ApplyOptions(opts...)
5546	return out, req.Send()
5547}
5548
5549const opUnshareDirectory = "UnshareDirectory"
5550
5551// UnshareDirectoryRequest generates a "aws/request.Request" representing the
5552// client's request for the UnshareDirectory operation. The "output" return
5553// value will be populated with the request's response once the request completes
5554// successfully.
5555//
5556// Use "Send" method on the returned Request to send the API call to the service.
5557// the "output" return value is not valid until after Send returns without error.
5558//
5559// See UnshareDirectory for more information on using the UnshareDirectory
5560// API call, and error handling.
5561//
5562// This method is useful when you want to inject custom logic or configuration
5563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5564//
5565//
5566//    // Example sending a request using the UnshareDirectoryRequest method.
5567//    req, resp := client.UnshareDirectoryRequest(params)
5568//
5569//    err := req.Send()
5570//    if err == nil { // resp is now filled
5571//        fmt.Println(resp)
5572//    }
5573//
5574// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
5575func (c *DirectoryService) UnshareDirectoryRequest(input *UnshareDirectoryInput) (req *request.Request, output *UnshareDirectoryOutput) {
5576	op := &request.Operation{
5577		Name:       opUnshareDirectory,
5578		HTTPMethod: "POST",
5579		HTTPPath:   "/",
5580	}
5581
5582	if input == nil {
5583		input = &UnshareDirectoryInput{}
5584	}
5585
5586	output = &UnshareDirectoryOutput{}
5587	req = c.newRequest(op, input, output)
5588	return
5589}
5590
5591// UnshareDirectory API operation for AWS Directory Service.
5592//
5593// Stops the directory sharing between the directory owner and consumer accounts.
5594//
5595// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5596// with awserr.Error's Code and Message methods to get detailed information about
5597// the error.
5598//
5599// See the AWS API reference guide for AWS Directory Service's
5600// API operation UnshareDirectory for usage and error information.
5601//
5602// Returned Error Types:
5603//   * EntityDoesNotExistException
5604//   The specified entity could not be found.
5605//
5606//   * InvalidTargetException
5607//   The specified shared target is not valid.
5608//
5609//   * DirectoryNotSharedException
5610//   The specified directory has not been shared with this Amazon Web Services
5611//   account.
5612//
5613//   * ClientException
5614//   A client exception has occurred.
5615//
5616//   * ServiceException
5617//   An exception has occurred in Directory Service.
5618//
5619// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
5620func (c *DirectoryService) UnshareDirectory(input *UnshareDirectoryInput) (*UnshareDirectoryOutput, error) {
5621	req, out := c.UnshareDirectoryRequest(input)
5622	return out, req.Send()
5623}
5624
5625// UnshareDirectoryWithContext is the same as UnshareDirectory with the addition of
5626// the ability to pass a context and additional request options.
5627//
5628// See UnshareDirectory for details on how to use this API operation.
5629//
5630// The context must be non-nil and will be used for request cancellation. If
5631// the context is nil a panic will occur. In the future the SDK may create
5632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5633// for more information on using Contexts.
5634func (c *DirectoryService) UnshareDirectoryWithContext(ctx aws.Context, input *UnshareDirectoryInput, opts ...request.Option) (*UnshareDirectoryOutput, error) {
5635	req, out := c.UnshareDirectoryRequest(input)
5636	req.SetContext(ctx)
5637	req.ApplyOptions(opts...)
5638	return out, req.Send()
5639}
5640
5641const opUpdateConditionalForwarder = "UpdateConditionalForwarder"
5642
5643// UpdateConditionalForwarderRequest generates a "aws/request.Request" representing the
5644// client's request for the UpdateConditionalForwarder operation. The "output" return
5645// value will be populated with the request's response once the request completes
5646// successfully.
5647//
5648// Use "Send" method on the returned Request to send the API call to the service.
5649// the "output" return value is not valid until after Send returns without error.
5650//
5651// See UpdateConditionalForwarder for more information on using the UpdateConditionalForwarder
5652// API call, and error handling.
5653//
5654// This method is useful when you want to inject custom logic or configuration
5655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5656//
5657//
5658//    // Example sending a request using the UpdateConditionalForwarderRequest method.
5659//    req, resp := client.UpdateConditionalForwarderRequest(params)
5660//
5661//    err := req.Send()
5662//    if err == nil { // resp is now filled
5663//        fmt.Println(resp)
5664//    }
5665//
5666// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
5667func (c *DirectoryService) UpdateConditionalForwarderRequest(input *UpdateConditionalForwarderInput) (req *request.Request, output *UpdateConditionalForwarderOutput) {
5668	op := &request.Operation{
5669		Name:       opUpdateConditionalForwarder,
5670		HTTPMethod: "POST",
5671		HTTPPath:   "/",
5672	}
5673
5674	if input == nil {
5675		input = &UpdateConditionalForwarderInput{}
5676	}
5677
5678	output = &UpdateConditionalForwarderOutput{}
5679	req = c.newRequest(op, input, output)
5680	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5681	return
5682}
5683
5684// UpdateConditionalForwarder API operation for AWS Directory Service.
5685//
5686// Updates a conditional forwarder that has been set up for your Amazon Web
5687// Services directory.
5688//
5689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5690// with awserr.Error's Code and Message methods to get detailed information about
5691// the error.
5692//
5693// See the AWS API reference guide for AWS Directory Service's
5694// API operation UpdateConditionalForwarder for usage and error information.
5695//
5696// Returned Error Types:
5697//   * EntityDoesNotExistException
5698//   The specified entity could not be found.
5699//
5700//   * DirectoryUnavailableException
5701//   The specified directory is unavailable or could not be found.
5702//
5703//   * InvalidParameterException
5704//   One or more parameters are not valid.
5705//
5706//   * UnsupportedOperationException
5707//   The operation is not supported.
5708//
5709//   * ClientException
5710//   A client exception has occurred.
5711//
5712//   * ServiceException
5713//   An exception has occurred in Directory Service.
5714//
5715// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
5716func (c *DirectoryService) UpdateConditionalForwarder(input *UpdateConditionalForwarderInput) (*UpdateConditionalForwarderOutput, error) {
5717	req, out := c.UpdateConditionalForwarderRequest(input)
5718	return out, req.Send()
5719}
5720
5721// UpdateConditionalForwarderWithContext is the same as UpdateConditionalForwarder with the addition of
5722// the ability to pass a context and additional request options.
5723//
5724// See UpdateConditionalForwarder for details on how to use this API operation.
5725//
5726// The context must be non-nil and will be used for request cancellation. If
5727// the context is nil a panic will occur. In the future the SDK may create
5728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5729// for more information on using Contexts.
5730func (c *DirectoryService) UpdateConditionalForwarderWithContext(ctx aws.Context, input *UpdateConditionalForwarderInput, opts ...request.Option) (*UpdateConditionalForwarderOutput, error) {
5731	req, out := c.UpdateConditionalForwarderRequest(input)
5732	req.SetContext(ctx)
5733	req.ApplyOptions(opts...)
5734	return out, req.Send()
5735}
5736
5737const opUpdateNumberOfDomainControllers = "UpdateNumberOfDomainControllers"
5738
5739// UpdateNumberOfDomainControllersRequest generates a "aws/request.Request" representing the
5740// client's request for the UpdateNumberOfDomainControllers operation. The "output" return
5741// value will be populated with the request's response once the request completes
5742// successfully.
5743//
5744// Use "Send" method on the returned Request to send the API call to the service.
5745// the "output" return value is not valid until after Send returns without error.
5746//
5747// See UpdateNumberOfDomainControllers for more information on using the UpdateNumberOfDomainControllers
5748// API call, and error handling.
5749//
5750// This method is useful when you want to inject custom logic or configuration
5751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5752//
5753//
5754//    // Example sending a request using the UpdateNumberOfDomainControllersRequest method.
5755//    req, resp := client.UpdateNumberOfDomainControllersRequest(params)
5756//
5757//    err := req.Send()
5758//    if err == nil { // resp is now filled
5759//        fmt.Println(resp)
5760//    }
5761//
5762// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
5763func (c *DirectoryService) UpdateNumberOfDomainControllersRequest(input *UpdateNumberOfDomainControllersInput) (req *request.Request, output *UpdateNumberOfDomainControllersOutput) {
5764	op := &request.Operation{
5765		Name:       opUpdateNumberOfDomainControllers,
5766		HTTPMethod: "POST",
5767		HTTPPath:   "/",
5768	}
5769
5770	if input == nil {
5771		input = &UpdateNumberOfDomainControllersInput{}
5772	}
5773
5774	output = &UpdateNumberOfDomainControllersOutput{}
5775	req = c.newRequest(op, input, output)
5776	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5777	return
5778}
5779
5780// UpdateNumberOfDomainControllers API operation for AWS Directory Service.
5781//
5782// Adds or removes domain controllers to or from the directory. Based on the
5783// difference between current value and new value (provided through this API
5784// call), domain controllers will be added or removed. It may take up to 45
5785// minutes for any new domain controllers to become fully active once the requested
5786// number of domain controllers is updated. During this time, you cannot make
5787// another update request.
5788//
5789// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5790// with awserr.Error's Code and Message methods to get detailed information about
5791// the error.
5792//
5793// See the AWS API reference guide for AWS Directory Service's
5794// API operation UpdateNumberOfDomainControllers for usage and error information.
5795//
5796// Returned Error Types:
5797//   * EntityDoesNotExistException
5798//   The specified entity could not be found.
5799//
5800//   * DirectoryUnavailableException
5801//   The specified directory is unavailable or could not be found.
5802//
5803//   * DomainControllerLimitExceededException
5804//   The maximum allowed number of domain controllers per directory was exceeded.
5805//   The default limit per directory is 20 domain controllers.
5806//
5807//   * InvalidParameterException
5808//   One or more parameters are not valid.
5809//
5810//   * UnsupportedOperationException
5811//   The operation is not supported.
5812//
5813//   * ClientException
5814//   A client exception has occurred.
5815//
5816//   * ServiceException
5817//   An exception has occurred in Directory Service.
5818//
5819// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
5820func (c *DirectoryService) UpdateNumberOfDomainControllers(input *UpdateNumberOfDomainControllersInput) (*UpdateNumberOfDomainControllersOutput, error) {
5821	req, out := c.UpdateNumberOfDomainControllersRequest(input)
5822	return out, req.Send()
5823}
5824
5825// UpdateNumberOfDomainControllersWithContext is the same as UpdateNumberOfDomainControllers with the addition of
5826// the ability to pass a context and additional request options.
5827//
5828// See UpdateNumberOfDomainControllers for details on how to use this API operation.
5829//
5830// The context must be non-nil and will be used for request cancellation. If
5831// the context is nil a panic will occur. In the future the SDK may create
5832// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5833// for more information on using Contexts.
5834func (c *DirectoryService) UpdateNumberOfDomainControllersWithContext(ctx aws.Context, input *UpdateNumberOfDomainControllersInput, opts ...request.Option) (*UpdateNumberOfDomainControllersOutput, error) {
5835	req, out := c.UpdateNumberOfDomainControllersRequest(input)
5836	req.SetContext(ctx)
5837	req.ApplyOptions(opts...)
5838	return out, req.Send()
5839}
5840
5841const opUpdateRadius = "UpdateRadius"
5842
5843// UpdateRadiusRequest generates a "aws/request.Request" representing the
5844// client's request for the UpdateRadius operation. The "output" return
5845// value will be populated with the request's response once the request completes
5846// successfully.
5847//
5848// Use "Send" method on the returned Request to send the API call to the service.
5849// the "output" return value is not valid until after Send returns without error.
5850//
5851// See UpdateRadius for more information on using the UpdateRadius
5852// API call, and error handling.
5853//
5854// This method is useful when you want to inject custom logic or configuration
5855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5856//
5857//
5858//    // Example sending a request using the UpdateRadiusRequest method.
5859//    req, resp := client.UpdateRadiusRequest(params)
5860//
5861//    err := req.Send()
5862//    if err == nil { // resp is now filled
5863//        fmt.Println(resp)
5864//    }
5865//
5866// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
5867func (c *DirectoryService) UpdateRadiusRequest(input *UpdateRadiusInput) (req *request.Request, output *UpdateRadiusOutput) {
5868	op := &request.Operation{
5869		Name:       opUpdateRadius,
5870		HTTPMethod: "POST",
5871		HTTPPath:   "/",
5872	}
5873
5874	if input == nil {
5875		input = &UpdateRadiusInput{}
5876	}
5877
5878	output = &UpdateRadiusOutput{}
5879	req = c.newRequest(op, input, output)
5880	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5881	return
5882}
5883
5884// UpdateRadius API operation for AWS Directory Service.
5885//
5886// Updates the Remote Authentication Dial In User Service (RADIUS) server information
5887// for an AD Connector or Microsoft AD directory.
5888//
5889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5890// with awserr.Error's Code and Message methods to get detailed information about
5891// the error.
5892//
5893// See the AWS API reference guide for AWS Directory Service's
5894// API operation UpdateRadius for usage and error information.
5895//
5896// Returned Error Types:
5897//   * InvalidParameterException
5898//   One or more parameters are not valid.
5899//
5900//   * EntityDoesNotExistException
5901//   The specified entity could not be found.
5902//
5903//   * ClientException
5904//   A client exception has occurred.
5905//
5906//   * ServiceException
5907//   An exception has occurred in Directory Service.
5908//
5909// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
5910func (c *DirectoryService) UpdateRadius(input *UpdateRadiusInput) (*UpdateRadiusOutput, error) {
5911	req, out := c.UpdateRadiusRequest(input)
5912	return out, req.Send()
5913}
5914
5915// UpdateRadiusWithContext is the same as UpdateRadius with the addition of
5916// the ability to pass a context and additional request options.
5917//
5918// See UpdateRadius for details on how to use this API operation.
5919//
5920// The context must be non-nil and will be used for request cancellation. If
5921// the context is nil a panic will occur. In the future the SDK may create
5922// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5923// for more information on using Contexts.
5924func (c *DirectoryService) UpdateRadiusWithContext(ctx aws.Context, input *UpdateRadiusInput, opts ...request.Option) (*UpdateRadiusOutput, error) {
5925	req, out := c.UpdateRadiusRequest(input)
5926	req.SetContext(ctx)
5927	req.ApplyOptions(opts...)
5928	return out, req.Send()
5929}
5930
5931const opUpdateTrust = "UpdateTrust"
5932
5933// UpdateTrustRequest generates a "aws/request.Request" representing the
5934// client's request for the UpdateTrust operation. The "output" return
5935// value will be populated with the request's response once the request completes
5936// successfully.
5937//
5938// Use "Send" method on the returned Request to send the API call to the service.
5939// the "output" return value is not valid until after Send returns without error.
5940//
5941// See UpdateTrust for more information on using the UpdateTrust
5942// API call, and error handling.
5943//
5944// This method is useful when you want to inject custom logic or configuration
5945// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5946//
5947//
5948//    // Example sending a request using the UpdateTrustRequest method.
5949//    req, resp := client.UpdateTrustRequest(params)
5950//
5951//    err := req.Send()
5952//    if err == nil { // resp is now filled
5953//        fmt.Println(resp)
5954//    }
5955//
5956// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
5957func (c *DirectoryService) UpdateTrustRequest(input *UpdateTrustInput) (req *request.Request, output *UpdateTrustOutput) {
5958	op := &request.Operation{
5959		Name:       opUpdateTrust,
5960		HTTPMethod: "POST",
5961		HTTPPath:   "/",
5962	}
5963
5964	if input == nil {
5965		input = &UpdateTrustInput{}
5966	}
5967
5968	output = &UpdateTrustOutput{}
5969	req = c.newRequest(op, input, output)
5970	return
5971}
5972
5973// UpdateTrust API operation for AWS Directory Service.
5974//
5975// Updates the trust that has been set up between your Managed Microsoft AD
5976// directory and an self-managed Active Directory.
5977//
5978// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5979// with awserr.Error's Code and Message methods to get detailed information about
5980// the error.
5981//
5982// See the AWS API reference guide for AWS Directory Service's
5983// API operation UpdateTrust for usage and error information.
5984//
5985// Returned Error Types:
5986//   * EntityDoesNotExistException
5987//   The specified entity could not be found.
5988//
5989//   * InvalidParameterException
5990//   One or more parameters are not valid.
5991//
5992//   * ClientException
5993//   A client exception has occurred.
5994//
5995//   * ServiceException
5996//   An exception has occurred in Directory Service.
5997//
5998// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
5999func (c *DirectoryService) UpdateTrust(input *UpdateTrustInput) (*UpdateTrustOutput, error) {
6000	req, out := c.UpdateTrustRequest(input)
6001	return out, req.Send()
6002}
6003
6004// UpdateTrustWithContext is the same as UpdateTrust with the addition of
6005// the ability to pass a context and additional request options.
6006//
6007// See UpdateTrust for details on how to use this API operation.
6008//
6009// The context must be non-nil and will be used for request cancellation. If
6010// the context is nil a panic will occur. In the future the SDK may create
6011// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6012// for more information on using Contexts.
6013func (c *DirectoryService) UpdateTrustWithContext(ctx aws.Context, input *UpdateTrustInput, opts ...request.Option) (*UpdateTrustOutput, error) {
6014	req, out := c.UpdateTrustRequest(input)
6015	req.SetContext(ctx)
6016	req.ApplyOptions(opts...)
6017	return out, req.Send()
6018}
6019
6020const opVerifyTrust = "VerifyTrust"
6021
6022// VerifyTrustRequest generates a "aws/request.Request" representing the
6023// client's request for the VerifyTrust operation. The "output" return
6024// value will be populated with the request's response once the request completes
6025// successfully.
6026//
6027// Use "Send" method on the returned Request to send the API call to the service.
6028// the "output" return value is not valid until after Send returns without error.
6029//
6030// See VerifyTrust for more information on using the VerifyTrust
6031// API call, and error handling.
6032//
6033// This method is useful when you want to inject custom logic or configuration
6034// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6035//
6036//
6037//    // Example sending a request using the VerifyTrustRequest method.
6038//    req, resp := client.VerifyTrustRequest(params)
6039//
6040//    err := req.Send()
6041//    if err == nil { // resp is now filled
6042//        fmt.Println(resp)
6043//    }
6044//
6045// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
6046func (c *DirectoryService) VerifyTrustRequest(input *VerifyTrustInput) (req *request.Request, output *VerifyTrustOutput) {
6047	op := &request.Operation{
6048		Name:       opVerifyTrust,
6049		HTTPMethod: "POST",
6050		HTTPPath:   "/",
6051	}
6052
6053	if input == nil {
6054		input = &VerifyTrustInput{}
6055	}
6056
6057	output = &VerifyTrustOutput{}
6058	req = c.newRequest(op, input, output)
6059	return
6060}
6061
6062// VerifyTrust API operation for AWS Directory Service.
6063//
6064// Directory Service for Microsoft Active Directory allows you to configure
6065// and verify trust relationships.
6066//
6067// This action verifies a trust relationship between your Managed Microsoft
6068// AD directory and an external domain.
6069//
6070// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6071// with awserr.Error's Code and Message methods to get detailed information about
6072// the error.
6073//
6074// See the AWS API reference guide for AWS Directory Service's
6075// API operation VerifyTrust for usage and error information.
6076//
6077// Returned Error Types:
6078//   * EntityDoesNotExistException
6079//   The specified entity could not be found.
6080//
6081//   * InvalidParameterException
6082//   One or more parameters are not valid.
6083//
6084//   * ClientException
6085//   A client exception has occurred.
6086//
6087//   * ServiceException
6088//   An exception has occurred in Directory Service.
6089//
6090//   * UnsupportedOperationException
6091//   The operation is not supported.
6092//
6093// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
6094func (c *DirectoryService) VerifyTrust(input *VerifyTrustInput) (*VerifyTrustOutput, error) {
6095	req, out := c.VerifyTrustRequest(input)
6096	return out, req.Send()
6097}
6098
6099// VerifyTrustWithContext is the same as VerifyTrust with the addition of
6100// the ability to pass a context and additional request options.
6101//
6102// See VerifyTrust for details on how to use this API operation.
6103//
6104// The context must be non-nil and will be used for request cancellation. If
6105// the context is nil a panic will occur. In the future the SDK may create
6106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6107// for more information on using Contexts.
6108func (c *DirectoryService) VerifyTrustWithContext(ctx aws.Context, input *VerifyTrustInput, opts ...request.Option) (*VerifyTrustOutput, error) {
6109	req, out := c.VerifyTrustRequest(input)
6110	req.SetContext(ctx)
6111	req.ApplyOptions(opts...)
6112	return out, req.Send()
6113}
6114
6115type AcceptSharedDirectoryInput struct {
6116	_ struct{} `type:"structure"`
6117
6118	// Identifier of the shared directory in the directory consumer account. This
6119	// identifier is different for each directory owner account.
6120	//
6121	// SharedDirectoryId is a required field
6122	SharedDirectoryId *string `type:"string" required:"true"`
6123}
6124
6125// String returns the string representation.
6126//
6127// API parameter values that are decorated as "sensitive" in the API will not
6128// be included in the string output. The member name will be present, but the
6129// value will be replaced with "sensitive".
6130func (s AcceptSharedDirectoryInput) String() string {
6131	return awsutil.Prettify(s)
6132}
6133
6134// GoString returns the string representation.
6135//
6136// API parameter values that are decorated as "sensitive" in the API will not
6137// be included in the string output. The member name will be present, but the
6138// value will be replaced with "sensitive".
6139func (s AcceptSharedDirectoryInput) GoString() string {
6140	return s.String()
6141}
6142
6143// Validate inspects the fields of the type to determine if they are valid.
6144func (s *AcceptSharedDirectoryInput) Validate() error {
6145	invalidParams := request.ErrInvalidParams{Context: "AcceptSharedDirectoryInput"}
6146	if s.SharedDirectoryId == nil {
6147		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
6148	}
6149
6150	if invalidParams.Len() > 0 {
6151		return invalidParams
6152	}
6153	return nil
6154}
6155
6156// SetSharedDirectoryId sets the SharedDirectoryId field's value.
6157func (s *AcceptSharedDirectoryInput) SetSharedDirectoryId(v string) *AcceptSharedDirectoryInput {
6158	s.SharedDirectoryId = &v
6159	return s
6160}
6161
6162type AcceptSharedDirectoryOutput struct {
6163	_ struct{} `type:"structure"`
6164
6165	// The shared directory in the directory consumer account.
6166	SharedDirectory *SharedDirectory `type:"structure"`
6167}
6168
6169// String returns the string representation.
6170//
6171// API parameter values that are decorated as "sensitive" in the API will not
6172// be included in the string output. The member name will be present, but the
6173// value will be replaced with "sensitive".
6174func (s AcceptSharedDirectoryOutput) String() string {
6175	return awsutil.Prettify(s)
6176}
6177
6178// GoString returns the string representation.
6179//
6180// API parameter values that are decorated as "sensitive" in the API will not
6181// be included in the string output. The member name will be present, but the
6182// value will be replaced with "sensitive".
6183func (s AcceptSharedDirectoryOutput) GoString() string {
6184	return s.String()
6185}
6186
6187// SetSharedDirectory sets the SharedDirectory field's value.
6188func (s *AcceptSharedDirectoryOutput) SetSharedDirectory(v *SharedDirectory) *AcceptSharedDirectoryOutput {
6189	s.SharedDirectory = v
6190	return s
6191}
6192
6193// Client authentication is not available in this region at this time.
6194type AccessDeniedException struct {
6195	_            struct{}                  `type:"structure"`
6196	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6197
6198	// The descriptive message for the exception.
6199	Message_ *string `locationName:"Message" type:"string"`
6200
6201	// The Amazon Web Services request identifier.
6202	RequestId *string `type:"string"`
6203}
6204
6205// String returns the string representation.
6206//
6207// API parameter values that are decorated as "sensitive" in the API will not
6208// be included in the string output. The member name will be present, but the
6209// value will be replaced with "sensitive".
6210func (s AccessDeniedException) String() string {
6211	return awsutil.Prettify(s)
6212}
6213
6214// GoString returns the string representation.
6215//
6216// API parameter values that are decorated as "sensitive" in the API will not
6217// be included in the string output. The member name will be present, but the
6218// value will be replaced with "sensitive".
6219func (s AccessDeniedException) GoString() string {
6220	return s.String()
6221}
6222
6223func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
6224	return &AccessDeniedException{
6225		RespMetadata: v,
6226	}
6227}
6228
6229// Code returns the exception type name.
6230func (s *AccessDeniedException) Code() string {
6231	return "AccessDeniedException"
6232}
6233
6234// Message returns the exception's message.
6235func (s *AccessDeniedException) Message() string {
6236	if s.Message_ != nil {
6237		return *s.Message_
6238	}
6239	return ""
6240}
6241
6242// OrigErr always returns nil, satisfies awserr.Error interface.
6243func (s *AccessDeniedException) OrigErr() error {
6244	return nil
6245}
6246
6247func (s *AccessDeniedException) Error() string {
6248	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6249}
6250
6251// Status code returns the HTTP status code for the request's response error.
6252func (s *AccessDeniedException) StatusCode() int {
6253	return s.RespMetadata.StatusCode
6254}
6255
6256// RequestID returns the service's response RequestID for request.
6257func (s *AccessDeniedException) RequestID() string {
6258	return s.RespMetadata.RequestID
6259}
6260
6261type AddIpRoutesInput struct {
6262	_ struct{} `type:"structure"`
6263
6264	// Identifier (ID) of the directory to which to add the address block.
6265	//
6266	// DirectoryId is a required field
6267	DirectoryId *string `type:"string" required:"true"`
6268
6269	// IP address blocks, using CIDR format, of the traffic to route. This is often
6270	// the IP address block of the DNS server used for your self-managed domain.
6271	//
6272	// IpRoutes is a required field
6273	IpRoutes []*IpRoute `type:"list" required:"true"`
6274
6275	// If set to true, updates the inbound and outbound rules of the security group
6276	// that has the description: "Amazon Web Services created security group for
6277	// directory ID directory controllers." Following are the new rules:
6278	//
6279	// Inbound:
6280	//
6281	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 88, Source: 0.0.0.0/0
6282	//
6283	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 123, Source: 0.0.0.0/0
6284	//
6285	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 138, Source: 0.0.0.0/0
6286	//
6287	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 389, Source: 0.0.0.0/0
6288	//
6289	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 464, Source: 0.0.0.0/0
6290	//
6291	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 445, Source: 0.0.0.0/0
6292	//
6293	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 88, Source: 0.0.0.0/0
6294	//
6295	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 135, Source: 0.0.0.0/0
6296	//
6297	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 445, Source: 0.0.0.0/0
6298	//
6299	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0/0
6300	//
6301	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 636, Source: 0.0.0.0/0
6302	//
6303	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 1024-65535, Source: 0.0.0.0/0
6304	//
6305	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 3268-33269, Source: 0.0.0.0/0
6306	//
6307	//    * Type: DNS (UDP), Protocol: UDP, Range: 53, Source: 0.0.0.0/0
6308	//
6309	//    * Type: DNS (TCP), Protocol: TCP, Range: 53, Source: 0.0.0.0/0
6310	//
6311	//    * Type: LDAP, Protocol: TCP, Range: 389, Source: 0.0.0.0/0
6312	//
6313	//    * Type: All ICMP, Protocol: All, Range: N/A, Source: 0.0.0.0/0
6314	//
6315	// Outbound:
6316	//
6317	//    * Type: All traffic, Protocol: All, Range: All, Destination: 0.0.0.0/0
6318	//
6319	// These security rules impact an internal network interface that is not exposed
6320	// publicly.
6321	UpdateSecurityGroupForDirectoryControllers *bool `type:"boolean"`
6322}
6323
6324// String returns the string representation.
6325//
6326// API parameter values that are decorated as "sensitive" in the API will not
6327// be included in the string output. The member name will be present, but the
6328// value will be replaced with "sensitive".
6329func (s AddIpRoutesInput) String() string {
6330	return awsutil.Prettify(s)
6331}
6332
6333// GoString returns the string representation.
6334//
6335// API parameter values that are decorated as "sensitive" in the API will not
6336// be included in the string output. The member name will be present, but the
6337// value will be replaced with "sensitive".
6338func (s AddIpRoutesInput) GoString() string {
6339	return s.String()
6340}
6341
6342// Validate inspects the fields of the type to determine if they are valid.
6343func (s *AddIpRoutesInput) Validate() error {
6344	invalidParams := request.ErrInvalidParams{Context: "AddIpRoutesInput"}
6345	if s.DirectoryId == nil {
6346		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6347	}
6348	if s.IpRoutes == nil {
6349		invalidParams.Add(request.NewErrParamRequired("IpRoutes"))
6350	}
6351
6352	if invalidParams.Len() > 0 {
6353		return invalidParams
6354	}
6355	return nil
6356}
6357
6358// SetDirectoryId sets the DirectoryId field's value.
6359func (s *AddIpRoutesInput) SetDirectoryId(v string) *AddIpRoutesInput {
6360	s.DirectoryId = &v
6361	return s
6362}
6363
6364// SetIpRoutes sets the IpRoutes field's value.
6365func (s *AddIpRoutesInput) SetIpRoutes(v []*IpRoute) *AddIpRoutesInput {
6366	s.IpRoutes = v
6367	return s
6368}
6369
6370// SetUpdateSecurityGroupForDirectoryControllers sets the UpdateSecurityGroupForDirectoryControllers field's value.
6371func (s *AddIpRoutesInput) SetUpdateSecurityGroupForDirectoryControllers(v bool) *AddIpRoutesInput {
6372	s.UpdateSecurityGroupForDirectoryControllers = &v
6373	return s
6374}
6375
6376type AddIpRoutesOutput struct {
6377	_ struct{} `type:"structure"`
6378}
6379
6380// String returns the string representation.
6381//
6382// API parameter values that are decorated as "sensitive" in the API will not
6383// be included in the string output. The member name will be present, but the
6384// value will be replaced with "sensitive".
6385func (s AddIpRoutesOutput) String() string {
6386	return awsutil.Prettify(s)
6387}
6388
6389// GoString returns the string representation.
6390//
6391// API parameter values that are decorated as "sensitive" in the API will not
6392// be included in the string output. The member name will be present, but the
6393// value will be replaced with "sensitive".
6394func (s AddIpRoutesOutput) GoString() string {
6395	return s.String()
6396}
6397
6398type AddRegionInput struct {
6399	_ struct{} `type:"structure"`
6400
6401	// The identifier of the directory to which you want to add Region replication.
6402	//
6403	// DirectoryId is a required field
6404	DirectoryId *string `type:"string" required:"true"`
6405
6406	// The name of the Region where you want to add domain controllers for replication.
6407	// For example, us-east-1.
6408	//
6409	// RegionName is a required field
6410	RegionName *string `min:"8" type:"string" required:"true"`
6411
6412	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
6413	//
6414	// VPCSettings is a required field
6415	VPCSettings *DirectoryVpcSettings `type:"structure" required:"true"`
6416}
6417
6418// String returns the string representation.
6419//
6420// API parameter values that are decorated as "sensitive" in the API will not
6421// be included in the string output. The member name will be present, but the
6422// value will be replaced with "sensitive".
6423func (s AddRegionInput) String() string {
6424	return awsutil.Prettify(s)
6425}
6426
6427// GoString returns the string representation.
6428//
6429// API parameter values that are decorated as "sensitive" in the API will not
6430// be included in the string output. The member name will be present, but the
6431// value will be replaced with "sensitive".
6432func (s AddRegionInput) GoString() string {
6433	return s.String()
6434}
6435
6436// Validate inspects the fields of the type to determine if they are valid.
6437func (s *AddRegionInput) Validate() error {
6438	invalidParams := request.ErrInvalidParams{Context: "AddRegionInput"}
6439	if s.DirectoryId == nil {
6440		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6441	}
6442	if s.RegionName == nil {
6443		invalidParams.Add(request.NewErrParamRequired("RegionName"))
6444	}
6445	if s.RegionName != nil && len(*s.RegionName) < 8 {
6446		invalidParams.Add(request.NewErrParamMinLen("RegionName", 8))
6447	}
6448	if s.VPCSettings == nil {
6449		invalidParams.Add(request.NewErrParamRequired("VPCSettings"))
6450	}
6451	if s.VPCSettings != nil {
6452		if err := s.VPCSettings.Validate(); err != nil {
6453			invalidParams.AddNested("VPCSettings", err.(request.ErrInvalidParams))
6454		}
6455	}
6456
6457	if invalidParams.Len() > 0 {
6458		return invalidParams
6459	}
6460	return nil
6461}
6462
6463// SetDirectoryId sets the DirectoryId field's value.
6464func (s *AddRegionInput) SetDirectoryId(v string) *AddRegionInput {
6465	s.DirectoryId = &v
6466	return s
6467}
6468
6469// SetRegionName sets the RegionName field's value.
6470func (s *AddRegionInput) SetRegionName(v string) *AddRegionInput {
6471	s.RegionName = &v
6472	return s
6473}
6474
6475// SetVPCSettings sets the VPCSettings field's value.
6476func (s *AddRegionInput) SetVPCSettings(v *DirectoryVpcSettings) *AddRegionInput {
6477	s.VPCSettings = v
6478	return s
6479}
6480
6481type AddRegionOutput struct {
6482	_ struct{} `type:"structure"`
6483}
6484
6485// String returns the string representation.
6486//
6487// API parameter values that are decorated as "sensitive" in the API will not
6488// be included in the string output. The member name will be present, but the
6489// value will be replaced with "sensitive".
6490func (s AddRegionOutput) String() string {
6491	return awsutil.Prettify(s)
6492}
6493
6494// GoString returns the string representation.
6495//
6496// API parameter values that are decorated as "sensitive" in the API will not
6497// be included in the string output. The member name will be present, but the
6498// value will be replaced with "sensitive".
6499func (s AddRegionOutput) GoString() string {
6500	return s.String()
6501}
6502
6503type AddTagsToResourceInput struct {
6504	_ struct{} `type:"structure"`
6505
6506	// Identifier (ID) for the directory to which to add the tag.
6507	//
6508	// ResourceId is a required field
6509	ResourceId *string `type:"string" required:"true"`
6510
6511	// The tags to be assigned to the directory.
6512	//
6513	// Tags is a required field
6514	Tags []*Tag `type:"list" required:"true"`
6515}
6516
6517// String returns the string representation.
6518//
6519// API parameter values that are decorated as "sensitive" in the API will not
6520// be included in the string output. The member name will be present, but the
6521// value will be replaced with "sensitive".
6522func (s AddTagsToResourceInput) String() string {
6523	return awsutil.Prettify(s)
6524}
6525
6526// GoString returns the string representation.
6527//
6528// API parameter values that are decorated as "sensitive" in the API will not
6529// be included in the string output. The member name will be present, but the
6530// value will be replaced with "sensitive".
6531func (s AddTagsToResourceInput) GoString() string {
6532	return s.String()
6533}
6534
6535// Validate inspects the fields of the type to determine if they are valid.
6536func (s *AddTagsToResourceInput) Validate() error {
6537	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
6538	if s.ResourceId == nil {
6539		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6540	}
6541	if s.Tags == nil {
6542		invalidParams.Add(request.NewErrParamRequired("Tags"))
6543	}
6544	if s.Tags != nil {
6545		for i, v := range s.Tags {
6546			if v == nil {
6547				continue
6548			}
6549			if err := v.Validate(); err != nil {
6550				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6551			}
6552		}
6553	}
6554
6555	if invalidParams.Len() > 0 {
6556		return invalidParams
6557	}
6558	return nil
6559}
6560
6561// SetResourceId sets the ResourceId field's value.
6562func (s *AddTagsToResourceInput) SetResourceId(v string) *AddTagsToResourceInput {
6563	s.ResourceId = &v
6564	return s
6565}
6566
6567// SetTags sets the Tags field's value.
6568func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
6569	s.Tags = v
6570	return s
6571}
6572
6573type AddTagsToResourceOutput struct {
6574	_ struct{} `type:"structure"`
6575}
6576
6577// String returns the string representation.
6578//
6579// API parameter values that are decorated as "sensitive" in the API will not
6580// be included in the string output. The member name will be present, but the
6581// value will be replaced with "sensitive".
6582func (s AddTagsToResourceOutput) String() string {
6583	return awsutil.Prettify(s)
6584}
6585
6586// GoString returns the string representation.
6587//
6588// API parameter values that are decorated as "sensitive" in the API will not
6589// be included in the string output. The member name will be present, but the
6590// value will be replaced with "sensitive".
6591func (s AddTagsToResourceOutput) GoString() string {
6592	return s.String()
6593}
6594
6595// Represents a named directory attribute.
6596type Attribute struct {
6597	_ struct{} `type:"structure"`
6598
6599	// The name of the attribute.
6600	Name *string `min:"1" type:"string"`
6601
6602	// The value of the attribute.
6603	Value *string `type:"string"`
6604}
6605
6606// String returns the string representation.
6607//
6608// API parameter values that are decorated as "sensitive" in the API will not
6609// be included in the string output. The member name will be present, but the
6610// value will be replaced with "sensitive".
6611func (s Attribute) String() string {
6612	return awsutil.Prettify(s)
6613}
6614
6615// GoString returns the string representation.
6616//
6617// API parameter values that are decorated as "sensitive" in the API will not
6618// be included in the string output. The member name will be present, but the
6619// value will be replaced with "sensitive".
6620func (s Attribute) GoString() string {
6621	return s.String()
6622}
6623
6624// Validate inspects the fields of the type to determine if they are valid.
6625func (s *Attribute) Validate() error {
6626	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
6627	if s.Name != nil && len(*s.Name) < 1 {
6628		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6629	}
6630
6631	if invalidParams.Len() > 0 {
6632		return invalidParams
6633	}
6634	return nil
6635}
6636
6637// SetName sets the Name field's value.
6638func (s *Attribute) SetName(v string) *Attribute {
6639	s.Name = &v
6640	return s
6641}
6642
6643// SetValue sets the Value field's value.
6644func (s *Attribute) SetValue(v string) *Attribute {
6645	s.Value = &v
6646	return s
6647}
6648
6649// An authentication error occurred.
6650type AuthenticationFailedException struct {
6651	_            struct{}                  `type:"structure"`
6652	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6653
6654	// The textual message for the exception.
6655	Message_ *string `locationName:"Message" type:"string"`
6656
6657	// The identifier of the request that caused the exception.
6658	RequestId *string `type:"string"`
6659}
6660
6661// String returns the string representation.
6662//
6663// API parameter values that are decorated as "sensitive" in the API will not
6664// be included in the string output. The member name will be present, but the
6665// value will be replaced with "sensitive".
6666func (s AuthenticationFailedException) String() string {
6667	return awsutil.Prettify(s)
6668}
6669
6670// GoString returns the string representation.
6671//
6672// API parameter values that are decorated as "sensitive" in the API will not
6673// be included in the string output. The member name will be present, but the
6674// value will be replaced with "sensitive".
6675func (s AuthenticationFailedException) GoString() string {
6676	return s.String()
6677}
6678
6679func newErrorAuthenticationFailedException(v protocol.ResponseMetadata) error {
6680	return &AuthenticationFailedException{
6681		RespMetadata: v,
6682	}
6683}
6684
6685// Code returns the exception type name.
6686func (s *AuthenticationFailedException) Code() string {
6687	return "AuthenticationFailedException"
6688}
6689
6690// Message returns the exception's message.
6691func (s *AuthenticationFailedException) Message() string {
6692	if s.Message_ != nil {
6693		return *s.Message_
6694	}
6695	return ""
6696}
6697
6698// OrigErr always returns nil, satisfies awserr.Error interface.
6699func (s *AuthenticationFailedException) OrigErr() error {
6700	return nil
6701}
6702
6703func (s *AuthenticationFailedException) Error() string {
6704	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6705}
6706
6707// Status code returns the HTTP status code for the request's response error.
6708func (s *AuthenticationFailedException) StatusCode() int {
6709	return s.RespMetadata.StatusCode
6710}
6711
6712// RequestID returns the service's response RequestID for request.
6713func (s *AuthenticationFailedException) RequestID() string {
6714	return s.RespMetadata.RequestID
6715}
6716
6717type CancelSchemaExtensionInput struct {
6718	_ struct{} `type:"structure"`
6719
6720	// The identifier of the directory whose schema extension will be canceled.
6721	//
6722	// DirectoryId is a required field
6723	DirectoryId *string `type:"string" required:"true"`
6724
6725	// The identifier of the schema extension that will be canceled.
6726	//
6727	// SchemaExtensionId is a required field
6728	SchemaExtensionId *string `type:"string" required:"true"`
6729}
6730
6731// String returns the string representation.
6732//
6733// API parameter values that are decorated as "sensitive" in the API will not
6734// be included in the string output. The member name will be present, but the
6735// value will be replaced with "sensitive".
6736func (s CancelSchemaExtensionInput) String() string {
6737	return awsutil.Prettify(s)
6738}
6739
6740// GoString returns the string representation.
6741//
6742// API parameter values that are decorated as "sensitive" in the API will not
6743// be included in the string output. The member name will be present, but the
6744// value will be replaced with "sensitive".
6745func (s CancelSchemaExtensionInput) GoString() string {
6746	return s.String()
6747}
6748
6749// Validate inspects the fields of the type to determine if they are valid.
6750func (s *CancelSchemaExtensionInput) Validate() error {
6751	invalidParams := request.ErrInvalidParams{Context: "CancelSchemaExtensionInput"}
6752	if s.DirectoryId == nil {
6753		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6754	}
6755	if s.SchemaExtensionId == nil {
6756		invalidParams.Add(request.NewErrParamRequired("SchemaExtensionId"))
6757	}
6758
6759	if invalidParams.Len() > 0 {
6760		return invalidParams
6761	}
6762	return nil
6763}
6764
6765// SetDirectoryId sets the DirectoryId field's value.
6766func (s *CancelSchemaExtensionInput) SetDirectoryId(v string) *CancelSchemaExtensionInput {
6767	s.DirectoryId = &v
6768	return s
6769}
6770
6771// SetSchemaExtensionId sets the SchemaExtensionId field's value.
6772func (s *CancelSchemaExtensionInput) SetSchemaExtensionId(v string) *CancelSchemaExtensionInput {
6773	s.SchemaExtensionId = &v
6774	return s
6775}
6776
6777type CancelSchemaExtensionOutput struct {
6778	_ struct{} `type:"structure"`
6779}
6780
6781// String returns the string representation.
6782//
6783// API parameter values that are decorated as "sensitive" in the API will not
6784// be included in the string output. The member name will be present, but the
6785// value will be replaced with "sensitive".
6786func (s CancelSchemaExtensionOutput) String() string {
6787	return awsutil.Prettify(s)
6788}
6789
6790// GoString returns the string representation.
6791//
6792// API parameter values that are decorated as "sensitive" in the API will not
6793// be included in the string output. The member name will be present, but the
6794// value will be replaced with "sensitive".
6795func (s CancelSchemaExtensionOutput) GoString() string {
6796	return s.String()
6797}
6798
6799// Information about the certificate.
6800type Certificate struct {
6801	_ struct{} `type:"structure"`
6802
6803	// The identifier of the certificate.
6804	CertificateId *string `type:"string"`
6805
6806	// A ClientCertAuthSettings object that contains client certificate authentication
6807	// settings.
6808	ClientCertAuthSettings *ClientCertAuthSettings `type:"structure"`
6809
6810	// The common name for the certificate.
6811	CommonName *string `type:"string"`
6812
6813	// The date and time when the certificate will expire.
6814	ExpiryDateTime *time.Time `type:"timestamp"`
6815
6816	// The date and time that the certificate was registered.
6817	RegisteredDateTime *time.Time `type:"timestamp"`
6818
6819	// The state of the certificate.
6820	State *string `type:"string" enum:"CertificateState"`
6821
6822	// Describes a state change for the certificate.
6823	StateReason *string `type:"string"`
6824
6825	// The function that the registered certificate performs. Valid values include
6826	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
6827	Type *string `type:"string" enum:"CertificateType"`
6828}
6829
6830// String returns the string representation.
6831//
6832// API parameter values that are decorated as "sensitive" in the API will not
6833// be included in the string output. The member name will be present, but the
6834// value will be replaced with "sensitive".
6835func (s Certificate) String() string {
6836	return awsutil.Prettify(s)
6837}
6838
6839// GoString returns the string representation.
6840//
6841// API parameter values that are decorated as "sensitive" in the API will not
6842// be included in the string output. The member name will be present, but the
6843// value will be replaced with "sensitive".
6844func (s Certificate) GoString() string {
6845	return s.String()
6846}
6847
6848// SetCertificateId sets the CertificateId field's value.
6849func (s *Certificate) SetCertificateId(v string) *Certificate {
6850	s.CertificateId = &v
6851	return s
6852}
6853
6854// SetClientCertAuthSettings sets the ClientCertAuthSettings field's value.
6855func (s *Certificate) SetClientCertAuthSettings(v *ClientCertAuthSettings) *Certificate {
6856	s.ClientCertAuthSettings = v
6857	return s
6858}
6859
6860// SetCommonName sets the CommonName field's value.
6861func (s *Certificate) SetCommonName(v string) *Certificate {
6862	s.CommonName = &v
6863	return s
6864}
6865
6866// SetExpiryDateTime sets the ExpiryDateTime field's value.
6867func (s *Certificate) SetExpiryDateTime(v time.Time) *Certificate {
6868	s.ExpiryDateTime = &v
6869	return s
6870}
6871
6872// SetRegisteredDateTime sets the RegisteredDateTime field's value.
6873func (s *Certificate) SetRegisteredDateTime(v time.Time) *Certificate {
6874	s.RegisteredDateTime = &v
6875	return s
6876}
6877
6878// SetState sets the State field's value.
6879func (s *Certificate) SetState(v string) *Certificate {
6880	s.State = &v
6881	return s
6882}
6883
6884// SetStateReason sets the StateReason field's value.
6885func (s *Certificate) SetStateReason(v string) *Certificate {
6886	s.StateReason = &v
6887	return s
6888}
6889
6890// SetType sets the Type field's value.
6891func (s *Certificate) SetType(v string) *Certificate {
6892	s.Type = &v
6893	return s
6894}
6895
6896// The certificate has already been registered into the system.
6897type CertificateAlreadyExistsException struct {
6898	_            struct{}                  `type:"structure"`
6899	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6900
6901	// The descriptive message for the exception.
6902	Message_ *string `locationName:"Message" type:"string"`
6903
6904	// The Amazon Web Services request identifier.
6905	RequestId *string `type:"string"`
6906}
6907
6908// String returns the string representation.
6909//
6910// API parameter values that are decorated as "sensitive" in the API will not
6911// be included in the string output. The member name will be present, but the
6912// value will be replaced with "sensitive".
6913func (s CertificateAlreadyExistsException) String() string {
6914	return awsutil.Prettify(s)
6915}
6916
6917// GoString returns the string representation.
6918//
6919// API parameter values that are decorated as "sensitive" in the API will not
6920// be included in the string output. The member name will be present, but the
6921// value will be replaced with "sensitive".
6922func (s CertificateAlreadyExistsException) GoString() string {
6923	return s.String()
6924}
6925
6926func newErrorCertificateAlreadyExistsException(v protocol.ResponseMetadata) error {
6927	return &CertificateAlreadyExistsException{
6928		RespMetadata: v,
6929	}
6930}
6931
6932// Code returns the exception type name.
6933func (s *CertificateAlreadyExistsException) Code() string {
6934	return "CertificateAlreadyExistsException"
6935}
6936
6937// Message returns the exception's message.
6938func (s *CertificateAlreadyExistsException) Message() string {
6939	if s.Message_ != nil {
6940		return *s.Message_
6941	}
6942	return ""
6943}
6944
6945// OrigErr always returns nil, satisfies awserr.Error interface.
6946func (s *CertificateAlreadyExistsException) OrigErr() error {
6947	return nil
6948}
6949
6950func (s *CertificateAlreadyExistsException) Error() string {
6951	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6952}
6953
6954// Status code returns the HTTP status code for the request's response error.
6955func (s *CertificateAlreadyExistsException) StatusCode() int {
6956	return s.RespMetadata.StatusCode
6957}
6958
6959// RequestID returns the service's response RequestID for request.
6960func (s *CertificateAlreadyExistsException) RequestID() string {
6961	return s.RespMetadata.RequestID
6962}
6963
6964// The certificate is not present in the system for describe or deregister activities.
6965type CertificateDoesNotExistException struct {
6966	_            struct{}                  `type:"structure"`
6967	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6968
6969	// The descriptive message for the exception.
6970	Message_ *string `locationName:"Message" type:"string"`
6971
6972	// The Amazon Web Services request identifier.
6973	RequestId *string `type:"string"`
6974}
6975
6976// String returns the string representation.
6977//
6978// API parameter values that are decorated as "sensitive" in the API will not
6979// be included in the string output. The member name will be present, but the
6980// value will be replaced with "sensitive".
6981func (s CertificateDoesNotExistException) String() string {
6982	return awsutil.Prettify(s)
6983}
6984
6985// GoString returns the string representation.
6986//
6987// API parameter values that are decorated as "sensitive" in the API will not
6988// be included in the string output. The member name will be present, but the
6989// value will be replaced with "sensitive".
6990func (s CertificateDoesNotExistException) GoString() string {
6991	return s.String()
6992}
6993
6994func newErrorCertificateDoesNotExistException(v protocol.ResponseMetadata) error {
6995	return &CertificateDoesNotExistException{
6996		RespMetadata: v,
6997	}
6998}
6999
7000// Code returns the exception type name.
7001func (s *CertificateDoesNotExistException) Code() string {
7002	return "CertificateDoesNotExistException"
7003}
7004
7005// Message returns the exception's message.
7006func (s *CertificateDoesNotExistException) Message() string {
7007	if s.Message_ != nil {
7008		return *s.Message_
7009	}
7010	return ""
7011}
7012
7013// OrigErr always returns nil, satisfies awserr.Error interface.
7014func (s *CertificateDoesNotExistException) OrigErr() error {
7015	return nil
7016}
7017
7018func (s *CertificateDoesNotExistException) Error() string {
7019	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7020}
7021
7022// Status code returns the HTTP status code for the request's response error.
7023func (s *CertificateDoesNotExistException) StatusCode() int {
7024	return s.RespMetadata.StatusCode
7025}
7026
7027// RequestID returns the service's response RequestID for request.
7028func (s *CertificateDoesNotExistException) RequestID() string {
7029	return s.RespMetadata.RequestID
7030}
7031
7032// The certificate is being used for the LDAP security connection and cannot
7033// be removed without disabling LDAP security.
7034type CertificateInUseException struct {
7035	_            struct{}                  `type:"structure"`
7036	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7037
7038	// The descriptive message for the exception.
7039	Message_ *string `locationName:"Message" type:"string"`
7040
7041	// The Amazon Web Services request identifier.
7042	RequestId *string `type:"string"`
7043}
7044
7045// String returns the string representation.
7046//
7047// API parameter values that are decorated as "sensitive" in the API will not
7048// be included in the string output. The member name will be present, but the
7049// value will be replaced with "sensitive".
7050func (s CertificateInUseException) String() string {
7051	return awsutil.Prettify(s)
7052}
7053
7054// GoString returns the string representation.
7055//
7056// API parameter values that are decorated as "sensitive" in the API will not
7057// be included in the string output. The member name will be present, but the
7058// value will be replaced with "sensitive".
7059func (s CertificateInUseException) GoString() string {
7060	return s.String()
7061}
7062
7063func newErrorCertificateInUseException(v protocol.ResponseMetadata) error {
7064	return &CertificateInUseException{
7065		RespMetadata: v,
7066	}
7067}
7068
7069// Code returns the exception type name.
7070func (s *CertificateInUseException) Code() string {
7071	return "CertificateInUseException"
7072}
7073
7074// Message returns the exception's message.
7075func (s *CertificateInUseException) Message() string {
7076	if s.Message_ != nil {
7077		return *s.Message_
7078	}
7079	return ""
7080}
7081
7082// OrigErr always returns nil, satisfies awserr.Error interface.
7083func (s *CertificateInUseException) OrigErr() error {
7084	return nil
7085}
7086
7087func (s *CertificateInUseException) Error() string {
7088	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7089}
7090
7091// Status code returns the HTTP status code for the request's response error.
7092func (s *CertificateInUseException) StatusCode() int {
7093	return s.RespMetadata.StatusCode
7094}
7095
7096// RequestID returns the service's response RequestID for request.
7097func (s *CertificateInUseException) RequestID() string {
7098	return s.RespMetadata.RequestID
7099}
7100
7101// Contains general information about a certificate.
7102type CertificateInfo struct {
7103	_ struct{} `type:"structure"`
7104
7105	// The identifier of the certificate.
7106	CertificateId *string `type:"string"`
7107
7108	// The common name for the certificate.
7109	CommonName *string `type:"string"`
7110
7111	// The date and time when the certificate will expire.
7112	ExpiryDateTime *time.Time `type:"timestamp"`
7113
7114	// The state of the certificate.
7115	State *string `type:"string" enum:"CertificateState"`
7116
7117	// The function that the registered certificate performs. Valid values include
7118	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
7119	Type *string `type:"string" enum:"CertificateType"`
7120}
7121
7122// String returns the string representation.
7123//
7124// API parameter values that are decorated as "sensitive" in the API will not
7125// be included in the string output. The member name will be present, but the
7126// value will be replaced with "sensitive".
7127func (s CertificateInfo) String() string {
7128	return awsutil.Prettify(s)
7129}
7130
7131// GoString returns the string representation.
7132//
7133// API parameter values that are decorated as "sensitive" in the API will not
7134// be included in the string output. The member name will be present, but the
7135// value will be replaced with "sensitive".
7136func (s CertificateInfo) GoString() string {
7137	return s.String()
7138}
7139
7140// SetCertificateId sets the CertificateId field's value.
7141func (s *CertificateInfo) SetCertificateId(v string) *CertificateInfo {
7142	s.CertificateId = &v
7143	return s
7144}
7145
7146// SetCommonName sets the CommonName field's value.
7147func (s *CertificateInfo) SetCommonName(v string) *CertificateInfo {
7148	s.CommonName = &v
7149	return s
7150}
7151
7152// SetExpiryDateTime sets the ExpiryDateTime field's value.
7153func (s *CertificateInfo) SetExpiryDateTime(v time.Time) *CertificateInfo {
7154	s.ExpiryDateTime = &v
7155	return s
7156}
7157
7158// SetState sets the State field's value.
7159func (s *CertificateInfo) SetState(v string) *CertificateInfo {
7160	s.State = &v
7161	return s
7162}
7163
7164// SetType sets the Type field's value.
7165func (s *CertificateInfo) SetType(v string) *CertificateInfo {
7166	s.Type = &v
7167	return s
7168}
7169
7170// The certificate could not be added because the certificate limit has been
7171// reached.
7172type CertificateLimitExceededException struct {
7173	_            struct{}                  `type:"structure"`
7174	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7175
7176	// The descriptive message for the exception.
7177	Message_ *string `locationName:"Message" type:"string"`
7178
7179	// The Amazon Web Services request identifier.
7180	RequestId *string `type:"string"`
7181}
7182
7183// String returns the string representation.
7184//
7185// API parameter values that are decorated as "sensitive" in the API will not
7186// be included in the string output. The member name will be present, but the
7187// value will be replaced with "sensitive".
7188func (s CertificateLimitExceededException) String() string {
7189	return awsutil.Prettify(s)
7190}
7191
7192// GoString returns the string representation.
7193//
7194// API parameter values that are decorated as "sensitive" in the API will not
7195// be included in the string output. The member name will be present, but the
7196// value will be replaced with "sensitive".
7197func (s CertificateLimitExceededException) GoString() string {
7198	return s.String()
7199}
7200
7201func newErrorCertificateLimitExceededException(v protocol.ResponseMetadata) error {
7202	return &CertificateLimitExceededException{
7203		RespMetadata: v,
7204	}
7205}
7206
7207// Code returns the exception type name.
7208func (s *CertificateLimitExceededException) Code() string {
7209	return "CertificateLimitExceededException"
7210}
7211
7212// Message returns the exception's message.
7213func (s *CertificateLimitExceededException) Message() string {
7214	if s.Message_ != nil {
7215		return *s.Message_
7216	}
7217	return ""
7218}
7219
7220// OrigErr always returns nil, satisfies awserr.Error interface.
7221func (s *CertificateLimitExceededException) OrigErr() error {
7222	return nil
7223}
7224
7225func (s *CertificateLimitExceededException) Error() string {
7226	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7227}
7228
7229// Status code returns the HTTP status code for the request's response error.
7230func (s *CertificateLimitExceededException) StatusCode() int {
7231	return s.RespMetadata.StatusCode
7232}
7233
7234// RequestID returns the service's response RequestID for request.
7235func (s *CertificateLimitExceededException) RequestID() string {
7236	return s.RespMetadata.RequestID
7237}
7238
7239// Contains information about a client authentication method for a directory.
7240type ClientAuthenticationSettingInfo struct {
7241	_ struct{} `type:"structure"`
7242
7243	// The date and time when the status of the client authentication type was last
7244	// updated.
7245	LastUpdatedDateTime *time.Time `type:"timestamp"`
7246
7247	// Whether the client authentication type is enabled or disabled for the specified
7248	// directory.
7249	Status *string `type:"string" enum:"ClientAuthenticationStatus"`
7250
7251	// The type of client authentication for the specified directory. If no type
7252	// is specified, a list of all client authentication types that are supported
7253	// for the directory is retrieved.
7254	Type *string `type:"string" enum:"ClientAuthenticationType"`
7255}
7256
7257// String returns the string representation.
7258//
7259// API parameter values that are decorated as "sensitive" in the API will not
7260// be included in the string output. The member name will be present, but the
7261// value will be replaced with "sensitive".
7262func (s ClientAuthenticationSettingInfo) String() string {
7263	return awsutil.Prettify(s)
7264}
7265
7266// GoString returns the string representation.
7267//
7268// API parameter values that are decorated as "sensitive" in the API will not
7269// be included in the string output. The member name will be present, but the
7270// value will be replaced with "sensitive".
7271func (s ClientAuthenticationSettingInfo) GoString() string {
7272	return s.String()
7273}
7274
7275// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
7276func (s *ClientAuthenticationSettingInfo) SetLastUpdatedDateTime(v time.Time) *ClientAuthenticationSettingInfo {
7277	s.LastUpdatedDateTime = &v
7278	return s
7279}
7280
7281// SetStatus sets the Status field's value.
7282func (s *ClientAuthenticationSettingInfo) SetStatus(v string) *ClientAuthenticationSettingInfo {
7283	s.Status = &v
7284	return s
7285}
7286
7287// SetType sets the Type field's value.
7288func (s *ClientAuthenticationSettingInfo) SetType(v string) *ClientAuthenticationSettingInfo {
7289	s.Type = &v
7290	return s
7291}
7292
7293// Contains information about the client certificate authentication settings
7294// for the RegisterCertificate and DescribeCertificate operations.
7295type ClientCertAuthSettings struct {
7296	_ struct{} `type:"structure"`
7297
7298	// Specifies the URL of the default OCSP server used to check for revocation
7299	// status. A secondary value to any OCSP address found in the AIA extension
7300	// of the user certificate.
7301	OCSPUrl *string `min:"1" type:"string"`
7302}
7303
7304// String returns the string representation.
7305//
7306// API parameter values that are decorated as "sensitive" in the API will not
7307// be included in the string output. The member name will be present, but the
7308// value will be replaced with "sensitive".
7309func (s ClientCertAuthSettings) String() string {
7310	return awsutil.Prettify(s)
7311}
7312
7313// GoString returns the string representation.
7314//
7315// API parameter values that are decorated as "sensitive" in the API will not
7316// be included in the string output. The member name will be present, but the
7317// value will be replaced with "sensitive".
7318func (s ClientCertAuthSettings) GoString() string {
7319	return s.String()
7320}
7321
7322// Validate inspects the fields of the type to determine if they are valid.
7323func (s *ClientCertAuthSettings) Validate() error {
7324	invalidParams := request.ErrInvalidParams{Context: "ClientCertAuthSettings"}
7325	if s.OCSPUrl != nil && len(*s.OCSPUrl) < 1 {
7326		invalidParams.Add(request.NewErrParamMinLen("OCSPUrl", 1))
7327	}
7328
7329	if invalidParams.Len() > 0 {
7330		return invalidParams
7331	}
7332	return nil
7333}
7334
7335// SetOCSPUrl sets the OCSPUrl field's value.
7336func (s *ClientCertAuthSettings) SetOCSPUrl(v string) *ClientCertAuthSettings {
7337	s.OCSPUrl = &v
7338	return s
7339}
7340
7341// A client exception has occurred.
7342type ClientException struct {
7343	_            struct{}                  `type:"structure"`
7344	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7345
7346	// The descriptive message for the exception.
7347	Message_ *string `locationName:"Message" type:"string"`
7348
7349	// The Amazon Web Services request identifier.
7350	RequestId *string `type:"string"`
7351}
7352
7353// String returns the string representation.
7354//
7355// API parameter values that are decorated as "sensitive" in the API will not
7356// be included in the string output. The member name will be present, but the
7357// value will be replaced with "sensitive".
7358func (s ClientException) String() string {
7359	return awsutil.Prettify(s)
7360}
7361
7362// GoString returns the string representation.
7363//
7364// API parameter values that are decorated as "sensitive" in the API will not
7365// be included in the string output. The member name will be present, but the
7366// value will be replaced with "sensitive".
7367func (s ClientException) GoString() string {
7368	return s.String()
7369}
7370
7371func newErrorClientException(v protocol.ResponseMetadata) error {
7372	return &ClientException{
7373		RespMetadata: v,
7374	}
7375}
7376
7377// Code returns the exception type name.
7378func (s *ClientException) Code() string {
7379	return "ClientException"
7380}
7381
7382// Message returns the exception's message.
7383func (s *ClientException) Message() string {
7384	if s.Message_ != nil {
7385		return *s.Message_
7386	}
7387	return ""
7388}
7389
7390// OrigErr always returns nil, satisfies awserr.Error interface.
7391func (s *ClientException) OrigErr() error {
7392	return nil
7393}
7394
7395func (s *ClientException) Error() string {
7396	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7397}
7398
7399// Status code returns the HTTP status code for the request's response error.
7400func (s *ClientException) StatusCode() int {
7401	return s.RespMetadata.StatusCode
7402}
7403
7404// RequestID returns the service's response RequestID for request.
7405func (s *ClientException) RequestID() string {
7406	return s.RespMetadata.RequestID
7407}
7408
7409// Contains information about a computer account in a directory.
7410type Computer struct {
7411	_ struct{} `type:"structure"`
7412
7413	// An array of Attribute objects containing the LDAP attributes that belong
7414	// to the computer account.
7415	ComputerAttributes []*Attribute `type:"list"`
7416
7417	// The identifier of the computer.
7418	ComputerId *string `min:"1" type:"string"`
7419
7420	// The computer name.
7421	ComputerName *string `min:"1" type:"string"`
7422}
7423
7424// String returns the string representation.
7425//
7426// API parameter values that are decorated as "sensitive" in the API will not
7427// be included in the string output. The member name will be present, but the
7428// value will be replaced with "sensitive".
7429func (s Computer) String() string {
7430	return awsutil.Prettify(s)
7431}
7432
7433// GoString returns the string representation.
7434//
7435// API parameter values that are decorated as "sensitive" in the API will not
7436// be included in the string output. The member name will be present, but the
7437// value will be replaced with "sensitive".
7438func (s Computer) GoString() string {
7439	return s.String()
7440}
7441
7442// SetComputerAttributes sets the ComputerAttributes field's value.
7443func (s *Computer) SetComputerAttributes(v []*Attribute) *Computer {
7444	s.ComputerAttributes = v
7445	return s
7446}
7447
7448// SetComputerId sets the ComputerId field's value.
7449func (s *Computer) SetComputerId(v string) *Computer {
7450	s.ComputerId = &v
7451	return s
7452}
7453
7454// SetComputerName sets the ComputerName field's value.
7455func (s *Computer) SetComputerName(v string) *Computer {
7456	s.ComputerName = &v
7457	return s
7458}
7459
7460// Points to a remote domain with which you are setting up a trust relationship.
7461// Conditional forwarders are required in order to set up a trust relationship
7462// with another domain.
7463type ConditionalForwarder struct {
7464	_ struct{} `type:"structure"`
7465
7466	// The IP addresses of the remote DNS server associated with RemoteDomainName.
7467	// This is the IP address of the DNS server that your conditional forwarder
7468	// points to.
7469	DnsIpAddrs []*string `type:"list"`
7470
7471	// The fully qualified domain name (FQDN) of the remote domains pointed to by
7472	// the conditional forwarder.
7473	RemoteDomainName *string `type:"string"`
7474
7475	// The replication scope of the conditional forwarder. The only allowed value
7476	// is Domain, which will replicate the conditional forwarder to all of the domain
7477	// controllers for your Amazon Web Services directory.
7478	ReplicationScope *string `type:"string" enum:"ReplicationScope"`
7479}
7480
7481// String returns the string representation.
7482//
7483// API parameter values that are decorated as "sensitive" in the API will not
7484// be included in the string output. The member name will be present, but the
7485// value will be replaced with "sensitive".
7486func (s ConditionalForwarder) String() string {
7487	return awsutil.Prettify(s)
7488}
7489
7490// GoString returns the string representation.
7491//
7492// API parameter values that are decorated as "sensitive" in the API will not
7493// be included in the string output. The member name will be present, but the
7494// value will be replaced with "sensitive".
7495func (s ConditionalForwarder) GoString() string {
7496	return s.String()
7497}
7498
7499// SetDnsIpAddrs sets the DnsIpAddrs field's value.
7500func (s *ConditionalForwarder) SetDnsIpAddrs(v []*string) *ConditionalForwarder {
7501	s.DnsIpAddrs = v
7502	return s
7503}
7504
7505// SetRemoteDomainName sets the RemoteDomainName field's value.
7506func (s *ConditionalForwarder) SetRemoteDomainName(v string) *ConditionalForwarder {
7507	s.RemoteDomainName = &v
7508	return s
7509}
7510
7511// SetReplicationScope sets the ReplicationScope field's value.
7512func (s *ConditionalForwarder) SetReplicationScope(v string) *ConditionalForwarder {
7513	s.ReplicationScope = &v
7514	return s
7515}
7516
7517// Contains the inputs for the ConnectDirectory operation.
7518type ConnectDirectoryInput struct {
7519	_ struct{} `type:"structure"`
7520
7521	// A DirectoryConnectSettings object that contains additional information for
7522	// the operation.
7523	//
7524	// ConnectSettings is a required field
7525	ConnectSettings *DirectoryConnectSettings `type:"structure" required:"true"`
7526
7527	// A description for the directory.
7528	Description *string `type:"string"`
7529
7530	// The fully qualified name of your self-managed directory, such as corp.example.com.
7531	//
7532	// Name is a required field
7533	Name *string `type:"string" required:"true"`
7534
7535	// The password for your self-managed user account.
7536	//
7537	// Password is a sensitive parameter and its value will be
7538	// replaced with "sensitive" in string returned by ConnectDirectoryInput's
7539	// String and GoString methods.
7540	//
7541	// Password is a required field
7542	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
7543
7544	// The NetBIOS name of your self-managed directory, such as CORP.
7545	ShortName *string `type:"string"`
7546
7547	// The size of the directory.
7548	//
7549	// Size is a required field
7550	Size *string `type:"string" required:"true" enum:"DirectorySize"`
7551
7552	// The tags to be assigned to AD Connector.
7553	Tags []*Tag `type:"list"`
7554}
7555
7556// String returns the string representation.
7557//
7558// API parameter values that are decorated as "sensitive" in the API will not
7559// be included in the string output. The member name will be present, but the
7560// value will be replaced with "sensitive".
7561func (s ConnectDirectoryInput) String() string {
7562	return awsutil.Prettify(s)
7563}
7564
7565// GoString returns the string representation.
7566//
7567// API parameter values that are decorated as "sensitive" in the API will not
7568// be included in the string output. The member name will be present, but the
7569// value will be replaced with "sensitive".
7570func (s ConnectDirectoryInput) GoString() string {
7571	return s.String()
7572}
7573
7574// Validate inspects the fields of the type to determine if they are valid.
7575func (s *ConnectDirectoryInput) Validate() error {
7576	invalidParams := request.ErrInvalidParams{Context: "ConnectDirectoryInput"}
7577	if s.ConnectSettings == nil {
7578		invalidParams.Add(request.NewErrParamRequired("ConnectSettings"))
7579	}
7580	if s.Name == nil {
7581		invalidParams.Add(request.NewErrParamRequired("Name"))
7582	}
7583	if s.Password == nil {
7584		invalidParams.Add(request.NewErrParamRequired("Password"))
7585	}
7586	if s.Password != nil && len(*s.Password) < 1 {
7587		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
7588	}
7589	if s.Size == nil {
7590		invalidParams.Add(request.NewErrParamRequired("Size"))
7591	}
7592	if s.ConnectSettings != nil {
7593		if err := s.ConnectSettings.Validate(); err != nil {
7594			invalidParams.AddNested("ConnectSettings", err.(request.ErrInvalidParams))
7595		}
7596	}
7597	if s.Tags != nil {
7598		for i, v := range s.Tags {
7599			if v == nil {
7600				continue
7601			}
7602			if err := v.Validate(); err != nil {
7603				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7604			}
7605		}
7606	}
7607
7608	if invalidParams.Len() > 0 {
7609		return invalidParams
7610	}
7611	return nil
7612}
7613
7614// SetConnectSettings sets the ConnectSettings field's value.
7615func (s *ConnectDirectoryInput) SetConnectSettings(v *DirectoryConnectSettings) *ConnectDirectoryInput {
7616	s.ConnectSettings = v
7617	return s
7618}
7619
7620// SetDescription sets the Description field's value.
7621func (s *ConnectDirectoryInput) SetDescription(v string) *ConnectDirectoryInput {
7622	s.Description = &v
7623	return s
7624}
7625
7626// SetName sets the Name field's value.
7627func (s *ConnectDirectoryInput) SetName(v string) *ConnectDirectoryInput {
7628	s.Name = &v
7629	return s
7630}
7631
7632// SetPassword sets the Password field's value.
7633func (s *ConnectDirectoryInput) SetPassword(v string) *ConnectDirectoryInput {
7634	s.Password = &v
7635	return s
7636}
7637
7638// SetShortName sets the ShortName field's value.
7639func (s *ConnectDirectoryInput) SetShortName(v string) *ConnectDirectoryInput {
7640	s.ShortName = &v
7641	return s
7642}
7643
7644// SetSize sets the Size field's value.
7645func (s *ConnectDirectoryInput) SetSize(v string) *ConnectDirectoryInput {
7646	s.Size = &v
7647	return s
7648}
7649
7650// SetTags sets the Tags field's value.
7651func (s *ConnectDirectoryInput) SetTags(v []*Tag) *ConnectDirectoryInput {
7652	s.Tags = v
7653	return s
7654}
7655
7656// Contains the results of the ConnectDirectory operation.
7657type ConnectDirectoryOutput struct {
7658	_ struct{} `type:"structure"`
7659
7660	// The identifier of the new directory.
7661	DirectoryId *string `type:"string"`
7662}
7663
7664// String returns the string representation.
7665//
7666// API parameter values that are decorated as "sensitive" in the API will not
7667// be included in the string output. The member name will be present, but the
7668// value will be replaced with "sensitive".
7669func (s ConnectDirectoryOutput) String() string {
7670	return awsutil.Prettify(s)
7671}
7672
7673// GoString returns the string representation.
7674//
7675// API parameter values that are decorated as "sensitive" in the API will not
7676// be included in the string output. The member name will be present, but the
7677// value will be replaced with "sensitive".
7678func (s ConnectDirectoryOutput) GoString() string {
7679	return s.String()
7680}
7681
7682// SetDirectoryId sets the DirectoryId field's value.
7683func (s *ConnectDirectoryOutput) SetDirectoryId(v string) *ConnectDirectoryOutput {
7684	s.DirectoryId = &v
7685	return s
7686}
7687
7688// Contains the inputs for the CreateAlias operation.
7689type CreateAliasInput struct {
7690	_ struct{} `type:"structure"`
7691
7692	// The requested alias.
7693	//
7694	// The alias must be unique amongst all aliases in Amazon Web Services. This
7695	// operation throws an EntityAlreadyExistsException error if the alias already
7696	// exists.
7697	//
7698	// Alias is a required field
7699	Alias *string `min:"1" type:"string" required:"true"`
7700
7701	// The identifier of the directory for which to create the alias.
7702	//
7703	// DirectoryId is a required field
7704	DirectoryId *string `type:"string" required:"true"`
7705}
7706
7707// String returns the string representation.
7708//
7709// API parameter values that are decorated as "sensitive" in the API will not
7710// be included in the string output. The member name will be present, but the
7711// value will be replaced with "sensitive".
7712func (s CreateAliasInput) String() string {
7713	return awsutil.Prettify(s)
7714}
7715
7716// GoString returns the string representation.
7717//
7718// API parameter values that are decorated as "sensitive" in the API will not
7719// be included in the string output. The member name will be present, but the
7720// value will be replaced with "sensitive".
7721func (s CreateAliasInput) GoString() string {
7722	return s.String()
7723}
7724
7725// Validate inspects the fields of the type to determine if they are valid.
7726func (s *CreateAliasInput) Validate() error {
7727	invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"}
7728	if s.Alias == nil {
7729		invalidParams.Add(request.NewErrParamRequired("Alias"))
7730	}
7731	if s.Alias != nil && len(*s.Alias) < 1 {
7732		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
7733	}
7734	if s.DirectoryId == nil {
7735		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7736	}
7737
7738	if invalidParams.Len() > 0 {
7739		return invalidParams
7740	}
7741	return nil
7742}
7743
7744// SetAlias sets the Alias field's value.
7745func (s *CreateAliasInput) SetAlias(v string) *CreateAliasInput {
7746	s.Alias = &v
7747	return s
7748}
7749
7750// SetDirectoryId sets the DirectoryId field's value.
7751func (s *CreateAliasInput) SetDirectoryId(v string) *CreateAliasInput {
7752	s.DirectoryId = &v
7753	return s
7754}
7755
7756// Contains the results of the CreateAlias operation.
7757type CreateAliasOutput struct {
7758	_ struct{} `type:"structure"`
7759
7760	// The alias for the directory.
7761	Alias *string `min:"1" type:"string"`
7762
7763	// The identifier of the directory.
7764	DirectoryId *string `type:"string"`
7765}
7766
7767// String returns the string representation.
7768//
7769// API parameter values that are decorated as "sensitive" in the API will not
7770// be included in the string output. The member name will be present, but the
7771// value will be replaced with "sensitive".
7772func (s CreateAliasOutput) String() string {
7773	return awsutil.Prettify(s)
7774}
7775
7776// GoString returns the string representation.
7777//
7778// API parameter values that are decorated as "sensitive" in the API will not
7779// be included in the string output. The member name will be present, but the
7780// value will be replaced with "sensitive".
7781func (s CreateAliasOutput) GoString() string {
7782	return s.String()
7783}
7784
7785// SetAlias sets the Alias field's value.
7786func (s *CreateAliasOutput) SetAlias(v string) *CreateAliasOutput {
7787	s.Alias = &v
7788	return s
7789}
7790
7791// SetDirectoryId sets the DirectoryId field's value.
7792func (s *CreateAliasOutput) SetDirectoryId(v string) *CreateAliasOutput {
7793	s.DirectoryId = &v
7794	return s
7795}
7796
7797// Contains the inputs for the CreateComputer operation.
7798type CreateComputerInput struct {
7799	_ struct{} `type:"structure"`
7800
7801	// An array of Attribute objects that contain any LDAP attributes to apply to
7802	// the computer account.
7803	ComputerAttributes []*Attribute `type:"list"`
7804
7805	// The name of the computer account.
7806	//
7807	// ComputerName is a required field
7808	ComputerName *string `min:"1" type:"string" required:"true"`
7809
7810	// The identifier of the directory in which to create the computer account.
7811	//
7812	// DirectoryId is a required field
7813	DirectoryId *string `type:"string" required:"true"`
7814
7815	// The fully-qualified distinguished name of the organizational unit to place
7816	// the computer account in.
7817	OrganizationalUnitDistinguishedName *string `min:"1" type:"string"`
7818
7819	// A one-time password that is used to join the computer to the directory. You
7820	// should generate a random, strong password to use for this parameter.
7821	//
7822	// Password is a sensitive parameter and its value will be
7823	// replaced with "sensitive" in string returned by CreateComputerInput's
7824	// String and GoString methods.
7825	//
7826	// Password is a required field
7827	Password *string `min:"8" type:"string" required:"true" sensitive:"true"`
7828}
7829
7830// String returns the string representation.
7831//
7832// API parameter values that are decorated as "sensitive" in the API will not
7833// be included in the string output. The member name will be present, but the
7834// value will be replaced with "sensitive".
7835func (s CreateComputerInput) String() string {
7836	return awsutil.Prettify(s)
7837}
7838
7839// GoString returns the string representation.
7840//
7841// API parameter values that are decorated as "sensitive" in the API will not
7842// be included in the string output. The member name will be present, but the
7843// value will be replaced with "sensitive".
7844func (s CreateComputerInput) GoString() string {
7845	return s.String()
7846}
7847
7848// Validate inspects the fields of the type to determine if they are valid.
7849func (s *CreateComputerInput) Validate() error {
7850	invalidParams := request.ErrInvalidParams{Context: "CreateComputerInput"}
7851	if s.ComputerName == nil {
7852		invalidParams.Add(request.NewErrParamRequired("ComputerName"))
7853	}
7854	if s.ComputerName != nil && len(*s.ComputerName) < 1 {
7855		invalidParams.Add(request.NewErrParamMinLen("ComputerName", 1))
7856	}
7857	if s.DirectoryId == nil {
7858		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7859	}
7860	if s.OrganizationalUnitDistinguishedName != nil && len(*s.OrganizationalUnitDistinguishedName) < 1 {
7861		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnitDistinguishedName", 1))
7862	}
7863	if s.Password == nil {
7864		invalidParams.Add(request.NewErrParamRequired("Password"))
7865	}
7866	if s.Password != nil && len(*s.Password) < 8 {
7867		invalidParams.Add(request.NewErrParamMinLen("Password", 8))
7868	}
7869	if s.ComputerAttributes != nil {
7870		for i, v := range s.ComputerAttributes {
7871			if v == nil {
7872				continue
7873			}
7874			if err := v.Validate(); err != nil {
7875				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputerAttributes", i), err.(request.ErrInvalidParams))
7876			}
7877		}
7878	}
7879
7880	if invalidParams.Len() > 0 {
7881		return invalidParams
7882	}
7883	return nil
7884}
7885
7886// SetComputerAttributes sets the ComputerAttributes field's value.
7887func (s *CreateComputerInput) SetComputerAttributes(v []*Attribute) *CreateComputerInput {
7888	s.ComputerAttributes = v
7889	return s
7890}
7891
7892// SetComputerName sets the ComputerName field's value.
7893func (s *CreateComputerInput) SetComputerName(v string) *CreateComputerInput {
7894	s.ComputerName = &v
7895	return s
7896}
7897
7898// SetDirectoryId sets the DirectoryId field's value.
7899func (s *CreateComputerInput) SetDirectoryId(v string) *CreateComputerInput {
7900	s.DirectoryId = &v
7901	return s
7902}
7903
7904// SetOrganizationalUnitDistinguishedName sets the OrganizationalUnitDistinguishedName field's value.
7905func (s *CreateComputerInput) SetOrganizationalUnitDistinguishedName(v string) *CreateComputerInput {
7906	s.OrganizationalUnitDistinguishedName = &v
7907	return s
7908}
7909
7910// SetPassword sets the Password field's value.
7911func (s *CreateComputerInput) SetPassword(v string) *CreateComputerInput {
7912	s.Password = &v
7913	return s
7914}
7915
7916// Contains the results for the CreateComputer operation.
7917type CreateComputerOutput struct {
7918	_ struct{} `type:"structure"`
7919
7920	// A Computer object that represents the computer account.
7921	Computer *Computer `type:"structure"`
7922}
7923
7924// String returns the string representation.
7925//
7926// API parameter values that are decorated as "sensitive" in the API will not
7927// be included in the string output. The member name will be present, but the
7928// value will be replaced with "sensitive".
7929func (s CreateComputerOutput) String() string {
7930	return awsutil.Prettify(s)
7931}
7932
7933// GoString returns the string representation.
7934//
7935// API parameter values that are decorated as "sensitive" in the API will not
7936// be included in the string output. The member name will be present, but the
7937// value will be replaced with "sensitive".
7938func (s CreateComputerOutput) GoString() string {
7939	return s.String()
7940}
7941
7942// SetComputer sets the Computer field's value.
7943func (s *CreateComputerOutput) SetComputer(v *Computer) *CreateComputerOutput {
7944	s.Computer = v
7945	return s
7946}
7947
7948// Initiates the creation of a conditional forwarder for your Directory Service
7949// for Microsoft Active Directory. Conditional forwarders are required in order
7950// to set up a trust relationship with another domain.
7951type CreateConditionalForwarderInput struct {
7952	_ struct{} `type:"structure"`
7953
7954	// The directory ID of the Amazon Web Services directory for which you are creating
7955	// the conditional forwarder.
7956	//
7957	// DirectoryId is a required field
7958	DirectoryId *string `type:"string" required:"true"`
7959
7960	// The IP addresses of the remote DNS server associated with RemoteDomainName.
7961	//
7962	// DnsIpAddrs is a required field
7963	DnsIpAddrs []*string `type:"list" required:"true"`
7964
7965	// The fully qualified domain name (FQDN) of the remote domain with which you
7966	// will set up a trust relationship.
7967	//
7968	// RemoteDomainName is a required field
7969	RemoteDomainName *string `type:"string" required:"true"`
7970}
7971
7972// String returns the string representation.
7973//
7974// API parameter values that are decorated as "sensitive" in the API will not
7975// be included in the string output. The member name will be present, but the
7976// value will be replaced with "sensitive".
7977func (s CreateConditionalForwarderInput) String() string {
7978	return awsutil.Prettify(s)
7979}
7980
7981// GoString returns the string representation.
7982//
7983// API parameter values that are decorated as "sensitive" in the API will not
7984// be included in the string output. The member name will be present, but the
7985// value will be replaced with "sensitive".
7986func (s CreateConditionalForwarderInput) GoString() string {
7987	return s.String()
7988}
7989
7990// Validate inspects the fields of the type to determine if they are valid.
7991func (s *CreateConditionalForwarderInput) Validate() error {
7992	invalidParams := request.ErrInvalidParams{Context: "CreateConditionalForwarderInput"}
7993	if s.DirectoryId == nil {
7994		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7995	}
7996	if s.DnsIpAddrs == nil {
7997		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
7998	}
7999	if s.RemoteDomainName == nil {
8000		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
8001	}
8002
8003	if invalidParams.Len() > 0 {
8004		return invalidParams
8005	}
8006	return nil
8007}
8008
8009// SetDirectoryId sets the DirectoryId field's value.
8010func (s *CreateConditionalForwarderInput) SetDirectoryId(v string) *CreateConditionalForwarderInput {
8011	s.DirectoryId = &v
8012	return s
8013}
8014
8015// SetDnsIpAddrs sets the DnsIpAddrs field's value.
8016func (s *CreateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *CreateConditionalForwarderInput {
8017	s.DnsIpAddrs = v
8018	return s
8019}
8020
8021// SetRemoteDomainName sets the RemoteDomainName field's value.
8022func (s *CreateConditionalForwarderInput) SetRemoteDomainName(v string) *CreateConditionalForwarderInput {
8023	s.RemoteDomainName = &v
8024	return s
8025}
8026
8027// The result of a CreateConditinalForwarder request.
8028type CreateConditionalForwarderOutput struct {
8029	_ struct{} `type:"structure"`
8030}
8031
8032// String returns the string representation.
8033//
8034// API parameter values that are decorated as "sensitive" in the API will not
8035// be included in the string output. The member name will be present, but the
8036// value will be replaced with "sensitive".
8037func (s CreateConditionalForwarderOutput) String() string {
8038	return awsutil.Prettify(s)
8039}
8040
8041// GoString returns the string representation.
8042//
8043// API parameter values that are decorated as "sensitive" in the API will not
8044// be included in the string output. The member name will be present, but the
8045// value will be replaced with "sensitive".
8046func (s CreateConditionalForwarderOutput) GoString() string {
8047	return s.String()
8048}
8049
8050// Contains the inputs for the CreateDirectory operation.
8051type CreateDirectoryInput struct {
8052	_ struct{} `type:"structure"`
8053
8054	// A description for the directory.
8055	Description *string `type:"string"`
8056
8057	// The fully qualified name for the directory, such as corp.example.com.
8058	//
8059	// Name is a required field
8060	Name *string `type:"string" required:"true"`
8061
8062	// The password for the directory administrator. The directory creation process
8063	// creates a directory administrator account with the user name Administrator
8064	// and this password.
8065	//
8066	// If you need to change the password for the administrator account, you can
8067	// use the ResetUserPassword API call.
8068	//
8069	// The regex pattern for this string is made up of the following conditions:
8070	//
8071	//    * Length (?=^.{8,64}$) – Must be between 8 and 64 characters
8072	//
8073	// AND any 3 of the following password complexity rules required by Active Directory:
8074	//
8075	//    * Numbers and upper case and lowercase (?=.*\d)(?=.*[A-Z])(?=.*[a-z])
8076	//
8077	//    * Numbers and special characters and lower case (?=.*\d)(?=.*[^A-Za-z0-9\s])(?=.*[a-z])
8078	//
8079	//    * Special characters and upper case and lower case (?=.*[^A-Za-z0-9\s])(?=.*[A-Z])(?=.*[a-z])
8080	//
8081	//    * Numbers and upper case and special characters (?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9\s])
8082	//
8083	// For additional information about how Active Directory passwords are enforced,
8084	// see Password must meet complexity requirements (https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements)
8085	// on the Microsoft website.
8086	//
8087	// Password is a sensitive parameter and its value will be
8088	// replaced with "sensitive" in string returned by CreateDirectoryInput's
8089	// String and GoString methods.
8090	//
8091	// Password is a required field
8092	Password *string `type:"string" required:"true" sensitive:"true"`
8093
8094	// The NetBIOS name of the directory, such as CORP.
8095	ShortName *string `type:"string"`
8096
8097	// The size of the directory.
8098	//
8099	// Size is a required field
8100	Size *string `type:"string" required:"true" enum:"DirectorySize"`
8101
8102	// The tags to be assigned to the Simple AD directory.
8103	Tags []*Tag `type:"list"`
8104
8105	// A DirectoryVpcSettings object that contains additional information for the
8106	// operation.
8107	VpcSettings *DirectoryVpcSettings `type:"structure"`
8108}
8109
8110// String returns the string representation.
8111//
8112// API parameter values that are decorated as "sensitive" in the API will not
8113// be included in the string output. The member name will be present, but the
8114// value will be replaced with "sensitive".
8115func (s CreateDirectoryInput) String() string {
8116	return awsutil.Prettify(s)
8117}
8118
8119// GoString returns the string representation.
8120//
8121// API parameter values that are decorated as "sensitive" in the API will not
8122// be included in the string output. The member name will be present, but the
8123// value will be replaced with "sensitive".
8124func (s CreateDirectoryInput) GoString() string {
8125	return s.String()
8126}
8127
8128// Validate inspects the fields of the type to determine if they are valid.
8129func (s *CreateDirectoryInput) Validate() error {
8130	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
8131	if s.Name == nil {
8132		invalidParams.Add(request.NewErrParamRequired("Name"))
8133	}
8134	if s.Password == nil {
8135		invalidParams.Add(request.NewErrParamRequired("Password"))
8136	}
8137	if s.Size == nil {
8138		invalidParams.Add(request.NewErrParamRequired("Size"))
8139	}
8140	if s.Tags != nil {
8141		for i, v := range s.Tags {
8142			if v == nil {
8143				continue
8144			}
8145			if err := v.Validate(); err != nil {
8146				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8147			}
8148		}
8149	}
8150	if s.VpcSettings != nil {
8151		if err := s.VpcSettings.Validate(); err != nil {
8152			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
8153		}
8154	}
8155
8156	if invalidParams.Len() > 0 {
8157		return invalidParams
8158	}
8159	return nil
8160}
8161
8162// SetDescription sets the Description field's value.
8163func (s *CreateDirectoryInput) SetDescription(v string) *CreateDirectoryInput {
8164	s.Description = &v
8165	return s
8166}
8167
8168// SetName sets the Name field's value.
8169func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
8170	s.Name = &v
8171	return s
8172}
8173
8174// SetPassword sets the Password field's value.
8175func (s *CreateDirectoryInput) SetPassword(v string) *CreateDirectoryInput {
8176	s.Password = &v
8177	return s
8178}
8179
8180// SetShortName sets the ShortName field's value.
8181func (s *CreateDirectoryInput) SetShortName(v string) *CreateDirectoryInput {
8182	s.ShortName = &v
8183	return s
8184}
8185
8186// SetSize sets the Size field's value.
8187func (s *CreateDirectoryInput) SetSize(v string) *CreateDirectoryInput {
8188	s.Size = &v
8189	return s
8190}
8191
8192// SetTags sets the Tags field's value.
8193func (s *CreateDirectoryInput) SetTags(v []*Tag) *CreateDirectoryInput {
8194	s.Tags = v
8195	return s
8196}
8197
8198// SetVpcSettings sets the VpcSettings field's value.
8199func (s *CreateDirectoryInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateDirectoryInput {
8200	s.VpcSettings = v
8201	return s
8202}
8203
8204// Contains the results of the CreateDirectory operation.
8205type CreateDirectoryOutput struct {
8206	_ struct{} `type:"structure"`
8207
8208	// The identifier of the directory that was created.
8209	DirectoryId *string `type:"string"`
8210}
8211
8212// String returns the string representation.
8213//
8214// API parameter values that are decorated as "sensitive" in the API will not
8215// be included in the string output. The member name will be present, but the
8216// value will be replaced with "sensitive".
8217func (s CreateDirectoryOutput) String() string {
8218	return awsutil.Prettify(s)
8219}
8220
8221// GoString returns the string representation.
8222//
8223// API parameter values that are decorated as "sensitive" in the API will not
8224// be included in the string output. The member name will be present, but the
8225// value will be replaced with "sensitive".
8226func (s CreateDirectoryOutput) GoString() string {
8227	return s.String()
8228}
8229
8230// SetDirectoryId sets the DirectoryId field's value.
8231func (s *CreateDirectoryOutput) SetDirectoryId(v string) *CreateDirectoryOutput {
8232	s.DirectoryId = &v
8233	return s
8234}
8235
8236type CreateLogSubscriptionInput struct {
8237	_ struct{} `type:"structure"`
8238
8239	// Identifier of the directory to which you want to subscribe and receive real-time
8240	// logs to your specified CloudWatch log group.
8241	//
8242	// DirectoryId is a required field
8243	DirectoryId *string `type:"string" required:"true"`
8244
8245	// The name of the CloudWatch log group where the real-time domain controller
8246	// logs are forwarded.
8247	//
8248	// LogGroupName is a required field
8249	LogGroupName *string `min:"1" type:"string" required:"true"`
8250}
8251
8252// String returns the string representation.
8253//
8254// API parameter values that are decorated as "sensitive" in the API will not
8255// be included in the string output. The member name will be present, but the
8256// value will be replaced with "sensitive".
8257func (s CreateLogSubscriptionInput) String() string {
8258	return awsutil.Prettify(s)
8259}
8260
8261// GoString returns the string representation.
8262//
8263// API parameter values that are decorated as "sensitive" in the API will not
8264// be included in the string output. The member name will be present, but the
8265// value will be replaced with "sensitive".
8266func (s CreateLogSubscriptionInput) GoString() string {
8267	return s.String()
8268}
8269
8270// Validate inspects the fields of the type to determine if they are valid.
8271func (s *CreateLogSubscriptionInput) Validate() error {
8272	invalidParams := request.ErrInvalidParams{Context: "CreateLogSubscriptionInput"}
8273	if s.DirectoryId == nil {
8274		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8275	}
8276	if s.LogGroupName == nil {
8277		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
8278	}
8279	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
8280		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
8281	}
8282
8283	if invalidParams.Len() > 0 {
8284		return invalidParams
8285	}
8286	return nil
8287}
8288
8289// SetDirectoryId sets the DirectoryId field's value.
8290func (s *CreateLogSubscriptionInput) SetDirectoryId(v string) *CreateLogSubscriptionInput {
8291	s.DirectoryId = &v
8292	return s
8293}
8294
8295// SetLogGroupName sets the LogGroupName field's value.
8296func (s *CreateLogSubscriptionInput) SetLogGroupName(v string) *CreateLogSubscriptionInput {
8297	s.LogGroupName = &v
8298	return s
8299}
8300
8301type CreateLogSubscriptionOutput struct {
8302	_ struct{} `type:"structure"`
8303}
8304
8305// String returns the string representation.
8306//
8307// API parameter values that are decorated as "sensitive" in the API will not
8308// be included in the string output. The member name will be present, but the
8309// value will be replaced with "sensitive".
8310func (s CreateLogSubscriptionOutput) String() string {
8311	return awsutil.Prettify(s)
8312}
8313
8314// GoString returns the string representation.
8315//
8316// API parameter values that are decorated as "sensitive" in the API will not
8317// be included in the string output. The member name will be present, but the
8318// value will be replaced with "sensitive".
8319func (s CreateLogSubscriptionOutput) GoString() string {
8320	return s.String()
8321}
8322
8323// Creates an Managed Microsoft AD directory.
8324type CreateMicrosoftADInput struct {
8325	_ struct{} `type:"structure"`
8326
8327	// A description for the directory. This label will appear on the Amazon Web
8328	// Services console Directory Details page after the directory is created.
8329	Description *string `type:"string"`
8330
8331	// Managed Microsoft AD is available in two editions: Standard and Enterprise.
8332	// Enterprise is the default.
8333	Edition *string `type:"string" enum:"DirectoryEdition"`
8334
8335	// The fully qualified domain name for the Managed Microsoft AD directory, such
8336	// as corp.example.com. This name will resolve inside your VPC only. It does
8337	// not need to be publicly resolvable.
8338	//
8339	// Name is a required field
8340	Name *string `type:"string" required:"true"`
8341
8342	// The password for the default administrative user named Admin.
8343	//
8344	// If you need to change the password for the administrator account, you can
8345	// use the ResetUserPassword API call.
8346	//
8347	// Password is a sensitive parameter and its value will be
8348	// replaced with "sensitive" in string returned by CreateMicrosoftADInput's
8349	// String and GoString methods.
8350	//
8351	// Password is a required field
8352	Password *string `type:"string" required:"true" sensitive:"true"`
8353
8354	// The NetBIOS name for your domain, such as CORP. If you don't specify a NetBIOS
8355	// name, it will default to the first part of your directory DNS. For example,
8356	// CORP for the directory DNS corp.example.com.
8357	ShortName *string `type:"string"`
8358
8359	// The tags to be assigned to the Managed Microsoft AD directory.
8360	Tags []*Tag `type:"list"`
8361
8362	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
8363	//
8364	// VpcSettings is a required field
8365	VpcSettings *DirectoryVpcSettings `type:"structure" required:"true"`
8366}
8367
8368// String returns the string representation.
8369//
8370// API parameter values that are decorated as "sensitive" in the API will not
8371// be included in the string output. The member name will be present, but the
8372// value will be replaced with "sensitive".
8373func (s CreateMicrosoftADInput) String() string {
8374	return awsutil.Prettify(s)
8375}
8376
8377// GoString returns the string representation.
8378//
8379// API parameter values that are decorated as "sensitive" in the API will not
8380// be included in the string output. The member name will be present, but the
8381// value will be replaced with "sensitive".
8382func (s CreateMicrosoftADInput) GoString() string {
8383	return s.String()
8384}
8385
8386// Validate inspects the fields of the type to determine if they are valid.
8387func (s *CreateMicrosoftADInput) Validate() error {
8388	invalidParams := request.ErrInvalidParams{Context: "CreateMicrosoftADInput"}
8389	if s.Name == nil {
8390		invalidParams.Add(request.NewErrParamRequired("Name"))
8391	}
8392	if s.Password == nil {
8393		invalidParams.Add(request.NewErrParamRequired("Password"))
8394	}
8395	if s.VpcSettings == nil {
8396		invalidParams.Add(request.NewErrParamRequired("VpcSettings"))
8397	}
8398	if s.Tags != nil {
8399		for i, v := range s.Tags {
8400			if v == nil {
8401				continue
8402			}
8403			if err := v.Validate(); err != nil {
8404				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8405			}
8406		}
8407	}
8408	if s.VpcSettings != nil {
8409		if err := s.VpcSettings.Validate(); err != nil {
8410			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
8411		}
8412	}
8413
8414	if invalidParams.Len() > 0 {
8415		return invalidParams
8416	}
8417	return nil
8418}
8419
8420// SetDescription sets the Description field's value.
8421func (s *CreateMicrosoftADInput) SetDescription(v string) *CreateMicrosoftADInput {
8422	s.Description = &v
8423	return s
8424}
8425
8426// SetEdition sets the Edition field's value.
8427func (s *CreateMicrosoftADInput) SetEdition(v string) *CreateMicrosoftADInput {
8428	s.Edition = &v
8429	return s
8430}
8431
8432// SetName sets the Name field's value.
8433func (s *CreateMicrosoftADInput) SetName(v string) *CreateMicrosoftADInput {
8434	s.Name = &v
8435	return s
8436}
8437
8438// SetPassword sets the Password field's value.
8439func (s *CreateMicrosoftADInput) SetPassword(v string) *CreateMicrosoftADInput {
8440	s.Password = &v
8441	return s
8442}
8443
8444// SetShortName sets the ShortName field's value.
8445func (s *CreateMicrosoftADInput) SetShortName(v string) *CreateMicrosoftADInput {
8446	s.ShortName = &v
8447	return s
8448}
8449
8450// SetTags sets the Tags field's value.
8451func (s *CreateMicrosoftADInput) SetTags(v []*Tag) *CreateMicrosoftADInput {
8452	s.Tags = v
8453	return s
8454}
8455
8456// SetVpcSettings sets the VpcSettings field's value.
8457func (s *CreateMicrosoftADInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateMicrosoftADInput {
8458	s.VpcSettings = v
8459	return s
8460}
8461
8462// Result of a CreateMicrosoftAD request.
8463type CreateMicrosoftADOutput struct {
8464	_ struct{} `type:"structure"`
8465
8466	// The identifier of the directory that was created.
8467	DirectoryId *string `type:"string"`
8468}
8469
8470// String returns the string representation.
8471//
8472// API parameter values that are decorated as "sensitive" in the API will not
8473// be included in the string output. The member name will be present, but the
8474// value will be replaced with "sensitive".
8475func (s CreateMicrosoftADOutput) String() string {
8476	return awsutil.Prettify(s)
8477}
8478
8479// GoString returns the string representation.
8480//
8481// API parameter values that are decorated as "sensitive" in the API will not
8482// be included in the string output. The member name will be present, but the
8483// value will be replaced with "sensitive".
8484func (s CreateMicrosoftADOutput) GoString() string {
8485	return s.String()
8486}
8487
8488// SetDirectoryId sets the DirectoryId field's value.
8489func (s *CreateMicrosoftADOutput) SetDirectoryId(v string) *CreateMicrosoftADOutput {
8490	s.DirectoryId = &v
8491	return s
8492}
8493
8494// Contains the inputs for the CreateSnapshot operation.
8495type CreateSnapshotInput struct {
8496	_ struct{} `type:"structure"`
8497
8498	// The identifier of the directory of which to take a snapshot.
8499	//
8500	// DirectoryId is a required field
8501	DirectoryId *string `type:"string" required:"true"`
8502
8503	// The descriptive name to apply to the snapshot.
8504	Name *string `type:"string"`
8505}
8506
8507// String returns the string representation.
8508//
8509// API parameter values that are decorated as "sensitive" in the API will not
8510// be included in the string output. The member name will be present, but the
8511// value will be replaced with "sensitive".
8512func (s CreateSnapshotInput) String() string {
8513	return awsutil.Prettify(s)
8514}
8515
8516// GoString returns the string representation.
8517//
8518// API parameter values that are decorated as "sensitive" in the API will not
8519// be included in the string output. The member name will be present, but the
8520// value will be replaced with "sensitive".
8521func (s CreateSnapshotInput) GoString() string {
8522	return s.String()
8523}
8524
8525// Validate inspects the fields of the type to determine if they are valid.
8526func (s *CreateSnapshotInput) Validate() error {
8527	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
8528	if s.DirectoryId == nil {
8529		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8530	}
8531
8532	if invalidParams.Len() > 0 {
8533		return invalidParams
8534	}
8535	return nil
8536}
8537
8538// SetDirectoryId sets the DirectoryId field's value.
8539func (s *CreateSnapshotInput) SetDirectoryId(v string) *CreateSnapshotInput {
8540	s.DirectoryId = &v
8541	return s
8542}
8543
8544// SetName sets the Name field's value.
8545func (s *CreateSnapshotInput) SetName(v string) *CreateSnapshotInput {
8546	s.Name = &v
8547	return s
8548}
8549
8550// Contains the results of the CreateSnapshot operation.
8551type CreateSnapshotOutput struct {
8552	_ struct{} `type:"structure"`
8553
8554	// The identifier of the snapshot that was created.
8555	SnapshotId *string `type:"string"`
8556}
8557
8558// String returns the string representation.
8559//
8560// API parameter values that are decorated as "sensitive" in the API will not
8561// be included in the string output. The member name will be present, but the
8562// value will be replaced with "sensitive".
8563func (s CreateSnapshotOutput) String() string {
8564	return awsutil.Prettify(s)
8565}
8566
8567// GoString returns the string representation.
8568//
8569// API parameter values that are decorated as "sensitive" in the API will not
8570// be included in the string output. The member name will be present, but the
8571// value will be replaced with "sensitive".
8572func (s CreateSnapshotOutput) GoString() string {
8573	return s.String()
8574}
8575
8576// SetSnapshotId sets the SnapshotId field's value.
8577func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
8578	s.SnapshotId = &v
8579	return s
8580}
8581
8582// Directory Service for Microsoft Active Directory allows you to configure
8583// trust relationships. For example, you can establish a trust between your
8584// Managed Microsoft AD directory, and your existing self-managed Microsoft
8585// Active Directory. This would allow you to provide users and groups access
8586// to resources in either domain, with a single set of credentials.
8587//
8588// This action initiates the creation of the Amazon Web Services side of a trust
8589// relationship between an Managed Microsoft AD directory and an external domain.
8590type CreateTrustInput struct {
8591	_ struct{} `type:"structure"`
8592
8593	// The IP addresses of the remote DNS server associated with RemoteDomainName.
8594	ConditionalForwarderIpAddrs []*string `type:"list"`
8595
8596	// The Directory ID of the Managed Microsoft AD directory for which to establish
8597	// the trust relationship.
8598	//
8599	// DirectoryId is a required field
8600	DirectoryId *string `type:"string" required:"true"`
8601
8602	// The Fully Qualified Domain Name (FQDN) of the external domain for which to
8603	// create the trust relationship.
8604	//
8605	// RemoteDomainName is a required field
8606	RemoteDomainName *string `type:"string" required:"true"`
8607
8608	// Optional parameter to enable selective authentication for the trust.
8609	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
8610
8611	// The direction of the trust relationship.
8612	//
8613	// TrustDirection is a required field
8614	TrustDirection *string `type:"string" required:"true" enum:"TrustDirection"`
8615
8616	// The trust password. The must be the same password that was used when creating
8617	// the trust relationship on the external domain.
8618	//
8619	// TrustPassword is a sensitive parameter and its value will be
8620	// replaced with "sensitive" in string returned by CreateTrustInput's
8621	// String and GoString methods.
8622	//
8623	// TrustPassword is a required field
8624	TrustPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
8625
8626	// The trust relationship type. Forest is the default.
8627	TrustType *string `type:"string" enum:"TrustType"`
8628}
8629
8630// String returns the string representation.
8631//
8632// API parameter values that are decorated as "sensitive" in the API will not
8633// be included in the string output. The member name will be present, but the
8634// value will be replaced with "sensitive".
8635func (s CreateTrustInput) String() string {
8636	return awsutil.Prettify(s)
8637}
8638
8639// GoString returns the string representation.
8640//
8641// API parameter values that are decorated as "sensitive" in the API will not
8642// be included in the string output. The member name will be present, but the
8643// value will be replaced with "sensitive".
8644func (s CreateTrustInput) GoString() string {
8645	return s.String()
8646}
8647
8648// Validate inspects the fields of the type to determine if they are valid.
8649func (s *CreateTrustInput) Validate() error {
8650	invalidParams := request.ErrInvalidParams{Context: "CreateTrustInput"}
8651	if s.DirectoryId == nil {
8652		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8653	}
8654	if s.RemoteDomainName == nil {
8655		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
8656	}
8657	if s.TrustDirection == nil {
8658		invalidParams.Add(request.NewErrParamRequired("TrustDirection"))
8659	}
8660	if s.TrustPassword == nil {
8661		invalidParams.Add(request.NewErrParamRequired("TrustPassword"))
8662	}
8663	if s.TrustPassword != nil && len(*s.TrustPassword) < 1 {
8664		invalidParams.Add(request.NewErrParamMinLen("TrustPassword", 1))
8665	}
8666
8667	if invalidParams.Len() > 0 {
8668		return invalidParams
8669	}
8670	return nil
8671}
8672
8673// SetConditionalForwarderIpAddrs sets the ConditionalForwarderIpAddrs field's value.
8674func (s *CreateTrustInput) SetConditionalForwarderIpAddrs(v []*string) *CreateTrustInput {
8675	s.ConditionalForwarderIpAddrs = v
8676	return s
8677}
8678
8679// SetDirectoryId sets the DirectoryId field's value.
8680func (s *CreateTrustInput) SetDirectoryId(v string) *CreateTrustInput {
8681	s.DirectoryId = &v
8682	return s
8683}
8684
8685// SetRemoteDomainName sets the RemoteDomainName field's value.
8686func (s *CreateTrustInput) SetRemoteDomainName(v string) *CreateTrustInput {
8687	s.RemoteDomainName = &v
8688	return s
8689}
8690
8691// SetSelectiveAuth sets the SelectiveAuth field's value.
8692func (s *CreateTrustInput) SetSelectiveAuth(v string) *CreateTrustInput {
8693	s.SelectiveAuth = &v
8694	return s
8695}
8696
8697// SetTrustDirection sets the TrustDirection field's value.
8698func (s *CreateTrustInput) SetTrustDirection(v string) *CreateTrustInput {
8699	s.TrustDirection = &v
8700	return s
8701}
8702
8703// SetTrustPassword sets the TrustPassword field's value.
8704func (s *CreateTrustInput) SetTrustPassword(v string) *CreateTrustInput {
8705	s.TrustPassword = &v
8706	return s
8707}
8708
8709// SetTrustType sets the TrustType field's value.
8710func (s *CreateTrustInput) SetTrustType(v string) *CreateTrustInput {
8711	s.TrustType = &v
8712	return s
8713}
8714
8715// The result of a CreateTrust request.
8716type CreateTrustOutput struct {
8717	_ struct{} `type:"structure"`
8718
8719	// A unique identifier for the trust relationship that was created.
8720	TrustId *string `type:"string"`
8721}
8722
8723// String returns the string representation.
8724//
8725// API parameter values that are decorated as "sensitive" in the API will not
8726// be included in the string output. The member name will be present, but the
8727// value will be replaced with "sensitive".
8728func (s CreateTrustOutput) String() string {
8729	return awsutil.Prettify(s)
8730}
8731
8732// GoString returns the string representation.
8733//
8734// API parameter values that are decorated as "sensitive" in the API will not
8735// be included in the string output. The member name will be present, but the
8736// value will be replaced with "sensitive".
8737func (s CreateTrustOutput) GoString() string {
8738	return s.String()
8739}
8740
8741// SetTrustId sets the TrustId field's value.
8742func (s *CreateTrustOutput) SetTrustId(v string) *CreateTrustOutput {
8743	s.TrustId = &v
8744	return s
8745}
8746
8747// Deletes a conditional forwarder.
8748type DeleteConditionalForwarderInput struct {
8749	_ struct{} `type:"structure"`
8750
8751	// The directory ID for which you are deleting the conditional forwarder.
8752	//
8753	// DirectoryId is a required field
8754	DirectoryId *string `type:"string" required:"true"`
8755
8756	// The fully qualified domain name (FQDN) of the remote domain with which you
8757	// are deleting the conditional forwarder.
8758	//
8759	// RemoteDomainName is a required field
8760	RemoteDomainName *string `type:"string" required:"true"`
8761}
8762
8763// String returns the string representation.
8764//
8765// API parameter values that are decorated as "sensitive" in the API will not
8766// be included in the string output. The member name will be present, but the
8767// value will be replaced with "sensitive".
8768func (s DeleteConditionalForwarderInput) String() string {
8769	return awsutil.Prettify(s)
8770}
8771
8772// GoString returns the string representation.
8773//
8774// API parameter values that are decorated as "sensitive" in the API will not
8775// be included in the string output. The member name will be present, but the
8776// value will be replaced with "sensitive".
8777func (s DeleteConditionalForwarderInput) GoString() string {
8778	return s.String()
8779}
8780
8781// Validate inspects the fields of the type to determine if they are valid.
8782func (s *DeleteConditionalForwarderInput) Validate() error {
8783	invalidParams := request.ErrInvalidParams{Context: "DeleteConditionalForwarderInput"}
8784	if s.DirectoryId == nil {
8785		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8786	}
8787	if s.RemoteDomainName == nil {
8788		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
8789	}
8790
8791	if invalidParams.Len() > 0 {
8792		return invalidParams
8793	}
8794	return nil
8795}
8796
8797// SetDirectoryId sets the DirectoryId field's value.
8798func (s *DeleteConditionalForwarderInput) SetDirectoryId(v string) *DeleteConditionalForwarderInput {
8799	s.DirectoryId = &v
8800	return s
8801}
8802
8803// SetRemoteDomainName sets the RemoteDomainName field's value.
8804func (s *DeleteConditionalForwarderInput) SetRemoteDomainName(v string) *DeleteConditionalForwarderInput {
8805	s.RemoteDomainName = &v
8806	return s
8807}
8808
8809// The result of a DeleteConditionalForwarder request.
8810type DeleteConditionalForwarderOutput struct {
8811	_ struct{} `type:"structure"`
8812}
8813
8814// String returns the string representation.
8815//
8816// API parameter values that are decorated as "sensitive" in the API will not
8817// be included in the string output. The member name will be present, but the
8818// value will be replaced with "sensitive".
8819func (s DeleteConditionalForwarderOutput) String() string {
8820	return awsutil.Prettify(s)
8821}
8822
8823// GoString returns the string representation.
8824//
8825// API parameter values that are decorated as "sensitive" in the API will not
8826// be included in the string output. The member name will be present, but the
8827// value will be replaced with "sensitive".
8828func (s DeleteConditionalForwarderOutput) GoString() string {
8829	return s.String()
8830}
8831
8832// Contains the inputs for the DeleteDirectory operation.
8833type DeleteDirectoryInput struct {
8834	_ struct{} `type:"structure"`
8835
8836	// The identifier of the directory to delete.
8837	//
8838	// DirectoryId is a required field
8839	DirectoryId *string `type:"string" required:"true"`
8840}
8841
8842// String returns the string representation.
8843//
8844// API parameter values that are decorated as "sensitive" in the API will not
8845// be included in the string output. The member name will be present, but the
8846// value will be replaced with "sensitive".
8847func (s DeleteDirectoryInput) String() string {
8848	return awsutil.Prettify(s)
8849}
8850
8851// GoString returns the string representation.
8852//
8853// API parameter values that are decorated as "sensitive" in the API will not
8854// be included in the string output. The member name will be present, but the
8855// value will be replaced with "sensitive".
8856func (s DeleteDirectoryInput) GoString() string {
8857	return s.String()
8858}
8859
8860// Validate inspects the fields of the type to determine if they are valid.
8861func (s *DeleteDirectoryInput) Validate() error {
8862	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
8863	if s.DirectoryId == nil {
8864		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8865	}
8866
8867	if invalidParams.Len() > 0 {
8868		return invalidParams
8869	}
8870	return nil
8871}
8872
8873// SetDirectoryId sets the DirectoryId field's value.
8874func (s *DeleteDirectoryInput) SetDirectoryId(v string) *DeleteDirectoryInput {
8875	s.DirectoryId = &v
8876	return s
8877}
8878
8879// Contains the results of the DeleteDirectory operation.
8880type DeleteDirectoryOutput struct {
8881	_ struct{} `type:"structure"`
8882
8883	// The directory identifier.
8884	DirectoryId *string `type:"string"`
8885}
8886
8887// String returns the string representation.
8888//
8889// API parameter values that are decorated as "sensitive" in the API will not
8890// be included in the string output. The member name will be present, but the
8891// value will be replaced with "sensitive".
8892func (s DeleteDirectoryOutput) String() string {
8893	return awsutil.Prettify(s)
8894}
8895
8896// GoString returns the string representation.
8897//
8898// API parameter values that are decorated as "sensitive" in the API will not
8899// be included in the string output. The member name will be present, but the
8900// value will be replaced with "sensitive".
8901func (s DeleteDirectoryOutput) GoString() string {
8902	return s.String()
8903}
8904
8905// SetDirectoryId sets the DirectoryId field's value.
8906func (s *DeleteDirectoryOutput) SetDirectoryId(v string) *DeleteDirectoryOutput {
8907	s.DirectoryId = &v
8908	return s
8909}
8910
8911type DeleteLogSubscriptionInput struct {
8912	_ struct{} `type:"structure"`
8913
8914	// Identifier of the directory whose log subscription you want to delete.
8915	//
8916	// DirectoryId is a required field
8917	DirectoryId *string `type:"string" required:"true"`
8918}
8919
8920// String returns the string representation.
8921//
8922// API parameter values that are decorated as "sensitive" in the API will not
8923// be included in the string output. The member name will be present, but the
8924// value will be replaced with "sensitive".
8925func (s DeleteLogSubscriptionInput) String() string {
8926	return awsutil.Prettify(s)
8927}
8928
8929// GoString returns the string representation.
8930//
8931// API parameter values that are decorated as "sensitive" in the API will not
8932// be included in the string output. The member name will be present, but the
8933// value will be replaced with "sensitive".
8934func (s DeleteLogSubscriptionInput) GoString() string {
8935	return s.String()
8936}
8937
8938// Validate inspects the fields of the type to determine if they are valid.
8939func (s *DeleteLogSubscriptionInput) Validate() error {
8940	invalidParams := request.ErrInvalidParams{Context: "DeleteLogSubscriptionInput"}
8941	if s.DirectoryId == nil {
8942		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8943	}
8944
8945	if invalidParams.Len() > 0 {
8946		return invalidParams
8947	}
8948	return nil
8949}
8950
8951// SetDirectoryId sets the DirectoryId field's value.
8952func (s *DeleteLogSubscriptionInput) SetDirectoryId(v string) *DeleteLogSubscriptionInput {
8953	s.DirectoryId = &v
8954	return s
8955}
8956
8957type DeleteLogSubscriptionOutput struct {
8958	_ struct{} `type:"structure"`
8959}
8960
8961// String returns the string representation.
8962//
8963// API parameter values that are decorated as "sensitive" in the API will not
8964// be included in the string output. The member name will be present, but the
8965// value will be replaced with "sensitive".
8966func (s DeleteLogSubscriptionOutput) String() string {
8967	return awsutil.Prettify(s)
8968}
8969
8970// GoString returns the string representation.
8971//
8972// API parameter values that are decorated as "sensitive" in the API will not
8973// be included in the string output. The member name will be present, but the
8974// value will be replaced with "sensitive".
8975func (s DeleteLogSubscriptionOutput) GoString() string {
8976	return s.String()
8977}
8978
8979// Contains the inputs for the DeleteSnapshot operation.
8980type DeleteSnapshotInput struct {
8981	_ struct{} `type:"structure"`
8982
8983	// The identifier of the directory snapshot to be deleted.
8984	//
8985	// SnapshotId is a required field
8986	SnapshotId *string `type:"string" required:"true"`
8987}
8988
8989// String returns the string representation.
8990//
8991// API parameter values that are decorated as "sensitive" in the API will not
8992// be included in the string output. The member name will be present, but the
8993// value will be replaced with "sensitive".
8994func (s DeleteSnapshotInput) String() string {
8995	return awsutil.Prettify(s)
8996}
8997
8998// GoString returns the string representation.
8999//
9000// API parameter values that are decorated as "sensitive" in the API will not
9001// be included in the string output. The member name will be present, but the
9002// value will be replaced with "sensitive".
9003func (s DeleteSnapshotInput) GoString() string {
9004	return s.String()
9005}
9006
9007// Validate inspects the fields of the type to determine if they are valid.
9008func (s *DeleteSnapshotInput) Validate() error {
9009	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotInput"}
9010	if s.SnapshotId == nil {
9011		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
9012	}
9013
9014	if invalidParams.Len() > 0 {
9015		return invalidParams
9016	}
9017	return nil
9018}
9019
9020// SetSnapshotId sets the SnapshotId field's value.
9021func (s *DeleteSnapshotInput) SetSnapshotId(v string) *DeleteSnapshotInput {
9022	s.SnapshotId = &v
9023	return s
9024}
9025
9026// Contains the results of the DeleteSnapshot operation.
9027type DeleteSnapshotOutput struct {
9028	_ struct{} `type:"structure"`
9029
9030	// The identifier of the directory snapshot that was deleted.
9031	SnapshotId *string `type:"string"`
9032}
9033
9034// String returns the string representation.
9035//
9036// API parameter values that are decorated as "sensitive" in the API will not
9037// be included in the string output. The member name will be present, but the
9038// value will be replaced with "sensitive".
9039func (s DeleteSnapshotOutput) String() string {
9040	return awsutil.Prettify(s)
9041}
9042
9043// GoString returns the string representation.
9044//
9045// API parameter values that are decorated as "sensitive" in the API will not
9046// be included in the string output. The member name will be present, but the
9047// value will be replaced with "sensitive".
9048func (s DeleteSnapshotOutput) GoString() string {
9049	return s.String()
9050}
9051
9052// SetSnapshotId sets the SnapshotId field's value.
9053func (s *DeleteSnapshotOutput) SetSnapshotId(v string) *DeleteSnapshotOutput {
9054	s.SnapshotId = &v
9055	return s
9056}
9057
9058// Deletes the local side of an existing trust relationship between the Managed
9059// Microsoft AD directory and the external domain.
9060type DeleteTrustInput struct {
9061	_ struct{} `type:"structure"`
9062
9063	// Delete a conditional forwarder as part of a DeleteTrustRequest.
9064	DeleteAssociatedConditionalForwarder *bool `type:"boolean"`
9065
9066	// The Trust ID of the trust relationship to be deleted.
9067	//
9068	// TrustId is a required field
9069	TrustId *string `type:"string" required:"true"`
9070}
9071
9072// String returns the string representation.
9073//
9074// API parameter values that are decorated as "sensitive" in the API will not
9075// be included in the string output. The member name will be present, but the
9076// value will be replaced with "sensitive".
9077func (s DeleteTrustInput) String() string {
9078	return awsutil.Prettify(s)
9079}
9080
9081// GoString returns the string representation.
9082//
9083// API parameter values that are decorated as "sensitive" in the API will not
9084// be included in the string output. The member name will be present, but the
9085// value will be replaced with "sensitive".
9086func (s DeleteTrustInput) GoString() string {
9087	return s.String()
9088}
9089
9090// Validate inspects the fields of the type to determine if they are valid.
9091func (s *DeleteTrustInput) Validate() error {
9092	invalidParams := request.ErrInvalidParams{Context: "DeleteTrustInput"}
9093	if s.TrustId == nil {
9094		invalidParams.Add(request.NewErrParamRequired("TrustId"))
9095	}
9096
9097	if invalidParams.Len() > 0 {
9098		return invalidParams
9099	}
9100	return nil
9101}
9102
9103// SetDeleteAssociatedConditionalForwarder sets the DeleteAssociatedConditionalForwarder field's value.
9104func (s *DeleteTrustInput) SetDeleteAssociatedConditionalForwarder(v bool) *DeleteTrustInput {
9105	s.DeleteAssociatedConditionalForwarder = &v
9106	return s
9107}
9108
9109// SetTrustId sets the TrustId field's value.
9110func (s *DeleteTrustInput) SetTrustId(v string) *DeleteTrustInput {
9111	s.TrustId = &v
9112	return s
9113}
9114
9115// The result of a DeleteTrust request.
9116type DeleteTrustOutput struct {
9117	_ struct{} `type:"structure"`
9118
9119	// The Trust ID of the trust relationship that was deleted.
9120	TrustId *string `type:"string"`
9121}
9122
9123// String returns the string representation.
9124//
9125// API parameter values that are decorated as "sensitive" in the API will not
9126// be included in the string output. The member name will be present, but the
9127// value will be replaced with "sensitive".
9128func (s DeleteTrustOutput) String() string {
9129	return awsutil.Prettify(s)
9130}
9131
9132// GoString returns the string representation.
9133//
9134// API parameter values that are decorated as "sensitive" in the API will not
9135// be included in the string output. The member name will be present, but the
9136// value will be replaced with "sensitive".
9137func (s DeleteTrustOutput) GoString() string {
9138	return s.String()
9139}
9140
9141// SetTrustId sets the TrustId field's value.
9142func (s *DeleteTrustOutput) SetTrustId(v string) *DeleteTrustOutput {
9143	s.TrustId = &v
9144	return s
9145}
9146
9147type DeregisterCertificateInput struct {
9148	_ struct{} `type:"structure"`
9149
9150	// The identifier of the certificate.
9151	//
9152	// CertificateId is a required field
9153	CertificateId *string `type:"string" required:"true"`
9154
9155	// The identifier of the directory.
9156	//
9157	// DirectoryId is a required field
9158	DirectoryId *string `type:"string" required:"true"`
9159}
9160
9161// String returns the string representation.
9162//
9163// API parameter values that are decorated as "sensitive" in the API will not
9164// be included in the string output. The member name will be present, but the
9165// value will be replaced with "sensitive".
9166func (s DeregisterCertificateInput) String() string {
9167	return awsutil.Prettify(s)
9168}
9169
9170// GoString returns the string representation.
9171//
9172// API parameter values that are decorated as "sensitive" in the API will not
9173// be included in the string output. The member name will be present, but the
9174// value will be replaced with "sensitive".
9175func (s DeregisterCertificateInput) GoString() string {
9176	return s.String()
9177}
9178
9179// Validate inspects the fields of the type to determine if they are valid.
9180func (s *DeregisterCertificateInput) Validate() error {
9181	invalidParams := request.ErrInvalidParams{Context: "DeregisterCertificateInput"}
9182	if s.CertificateId == nil {
9183		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
9184	}
9185	if s.DirectoryId == nil {
9186		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9187	}
9188
9189	if invalidParams.Len() > 0 {
9190		return invalidParams
9191	}
9192	return nil
9193}
9194
9195// SetCertificateId sets the CertificateId field's value.
9196func (s *DeregisterCertificateInput) SetCertificateId(v string) *DeregisterCertificateInput {
9197	s.CertificateId = &v
9198	return s
9199}
9200
9201// SetDirectoryId sets the DirectoryId field's value.
9202func (s *DeregisterCertificateInput) SetDirectoryId(v string) *DeregisterCertificateInput {
9203	s.DirectoryId = &v
9204	return s
9205}
9206
9207type DeregisterCertificateOutput struct {
9208	_ struct{} `type:"structure"`
9209}
9210
9211// String returns the string representation.
9212//
9213// API parameter values that are decorated as "sensitive" in the API will not
9214// be included in the string output. The member name will be present, but the
9215// value will be replaced with "sensitive".
9216func (s DeregisterCertificateOutput) String() string {
9217	return awsutil.Prettify(s)
9218}
9219
9220// GoString returns the string representation.
9221//
9222// API parameter values that are decorated as "sensitive" in the API will not
9223// be included in the string output. The member name will be present, but the
9224// value will be replaced with "sensitive".
9225func (s DeregisterCertificateOutput) GoString() string {
9226	return s.String()
9227}
9228
9229// Removes the specified directory as a publisher to the specified Amazon SNS
9230// topic.
9231type DeregisterEventTopicInput struct {
9232	_ struct{} `type:"structure"`
9233
9234	// The Directory ID to remove as a publisher. This directory will no longer
9235	// send messages to the specified Amazon SNS topic.
9236	//
9237	// DirectoryId is a required field
9238	DirectoryId *string `type:"string" required:"true"`
9239
9240	// The name of the Amazon SNS topic from which to remove the directory as a
9241	// publisher.
9242	//
9243	// TopicName is a required field
9244	TopicName *string `min:"1" type:"string" required:"true"`
9245}
9246
9247// String returns the string representation.
9248//
9249// API parameter values that are decorated as "sensitive" in the API will not
9250// be included in the string output. The member name will be present, but the
9251// value will be replaced with "sensitive".
9252func (s DeregisterEventTopicInput) String() string {
9253	return awsutil.Prettify(s)
9254}
9255
9256// GoString returns the string representation.
9257//
9258// API parameter values that are decorated as "sensitive" in the API will not
9259// be included in the string output. The member name will be present, but the
9260// value will be replaced with "sensitive".
9261func (s DeregisterEventTopicInput) GoString() string {
9262	return s.String()
9263}
9264
9265// Validate inspects the fields of the type to determine if they are valid.
9266func (s *DeregisterEventTopicInput) Validate() error {
9267	invalidParams := request.ErrInvalidParams{Context: "DeregisterEventTopicInput"}
9268	if s.DirectoryId == nil {
9269		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9270	}
9271	if s.TopicName == nil {
9272		invalidParams.Add(request.NewErrParamRequired("TopicName"))
9273	}
9274	if s.TopicName != nil && len(*s.TopicName) < 1 {
9275		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
9276	}
9277
9278	if invalidParams.Len() > 0 {
9279		return invalidParams
9280	}
9281	return nil
9282}
9283
9284// SetDirectoryId sets the DirectoryId field's value.
9285func (s *DeregisterEventTopicInput) SetDirectoryId(v string) *DeregisterEventTopicInput {
9286	s.DirectoryId = &v
9287	return s
9288}
9289
9290// SetTopicName sets the TopicName field's value.
9291func (s *DeregisterEventTopicInput) SetTopicName(v string) *DeregisterEventTopicInput {
9292	s.TopicName = &v
9293	return s
9294}
9295
9296// The result of a DeregisterEventTopic request.
9297type DeregisterEventTopicOutput struct {
9298	_ struct{} `type:"structure"`
9299}
9300
9301// String returns the string representation.
9302//
9303// API parameter values that are decorated as "sensitive" in the API will not
9304// be included in the string output. The member name will be present, but the
9305// value will be replaced with "sensitive".
9306func (s DeregisterEventTopicOutput) String() string {
9307	return awsutil.Prettify(s)
9308}
9309
9310// GoString returns the string representation.
9311//
9312// API parameter values that are decorated as "sensitive" in the API will not
9313// be included in the string output. The member name will be present, but the
9314// value will be replaced with "sensitive".
9315func (s DeregisterEventTopicOutput) GoString() string {
9316	return s.String()
9317}
9318
9319type DescribeCertificateInput struct {
9320	_ struct{} `type:"structure"`
9321
9322	// The identifier of the certificate.
9323	//
9324	// CertificateId is a required field
9325	CertificateId *string `type:"string" required:"true"`
9326
9327	// The identifier of the directory.
9328	//
9329	// DirectoryId is a required field
9330	DirectoryId *string `type:"string" required:"true"`
9331}
9332
9333// String returns the string representation.
9334//
9335// API parameter values that are decorated as "sensitive" in the API will not
9336// be included in the string output. The member name will be present, but the
9337// value will be replaced with "sensitive".
9338func (s DescribeCertificateInput) String() string {
9339	return awsutil.Prettify(s)
9340}
9341
9342// GoString returns the string representation.
9343//
9344// API parameter values that are decorated as "sensitive" in the API will not
9345// be included in the string output. The member name will be present, but the
9346// value will be replaced with "sensitive".
9347func (s DescribeCertificateInput) GoString() string {
9348	return s.String()
9349}
9350
9351// Validate inspects the fields of the type to determine if they are valid.
9352func (s *DescribeCertificateInput) Validate() error {
9353	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
9354	if s.CertificateId == nil {
9355		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
9356	}
9357	if s.DirectoryId == nil {
9358		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9359	}
9360
9361	if invalidParams.Len() > 0 {
9362		return invalidParams
9363	}
9364	return nil
9365}
9366
9367// SetCertificateId sets the CertificateId field's value.
9368func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
9369	s.CertificateId = &v
9370	return s
9371}
9372
9373// SetDirectoryId sets the DirectoryId field's value.
9374func (s *DescribeCertificateInput) SetDirectoryId(v string) *DescribeCertificateInput {
9375	s.DirectoryId = &v
9376	return s
9377}
9378
9379type DescribeCertificateOutput struct {
9380	_ struct{} `type:"structure"`
9381
9382	// Information about the certificate, including registered date time, certificate
9383	// state, the reason for the state, expiration date time, and certificate common
9384	// name.
9385	Certificate *Certificate `type:"structure"`
9386}
9387
9388// String returns the string representation.
9389//
9390// API parameter values that are decorated as "sensitive" in the API will not
9391// be included in the string output. The member name will be present, but the
9392// value will be replaced with "sensitive".
9393func (s DescribeCertificateOutput) String() string {
9394	return awsutil.Prettify(s)
9395}
9396
9397// GoString returns the string representation.
9398//
9399// API parameter values that are decorated as "sensitive" in the API will not
9400// be included in the string output. The member name will be present, but the
9401// value will be replaced with "sensitive".
9402func (s DescribeCertificateOutput) GoString() string {
9403	return s.String()
9404}
9405
9406// SetCertificate sets the Certificate field's value.
9407func (s *DescribeCertificateOutput) SetCertificate(v *Certificate) *DescribeCertificateOutput {
9408	s.Certificate = v
9409	return s
9410}
9411
9412type DescribeClientAuthenticationSettingsInput struct {
9413	_ struct{} `type:"structure"`
9414
9415	// The identifier of the directory for which to retrieve information.
9416	//
9417	// DirectoryId is a required field
9418	DirectoryId *string `type:"string" required:"true"`
9419
9420	// The maximum number of items to return. If this value is zero, the maximum
9421	// number of items is specified by the limitations of the operation.
9422	Limit *int64 `min:"1" type:"integer"`
9423
9424	// The DescribeClientAuthenticationSettingsResult.NextToken value from a previous
9425	// call to DescribeClientAuthenticationSettings. Pass null if this is the first
9426	// call.
9427	NextToken *string `type:"string"`
9428
9429	// The type of client authentication for which to retrieve information. If no
9430	// type is specified, a list of all client authentication types that are supported
9431	// for the specified directory is retrieved.
9432	Type *string `type:"string" enum:"ClientAuthenticationType"`
9433}
9434
9435// String returns the string representation.
9436//
9437// API parameter values that are decorated as "sensitive" in the API will not
9438// be included in the string output. The member name will be present, but the
9439// value will be replaced with "sensitive".
9440func (s DescribeClientAuthenticationSettingsInput) String() string {
9441	return awsutil.Prettify(s)
9442}
9443
9444// GoString returns the string representation.
9445//
9446// API parameter values that are decorated as "sensitive" in the API will not
9447// be included in the string output. The member name will be present, but the
9448// value will be replaced with "sensitive".
9449func (s DescribeClientAuthenticationSettingsInput) GoString() string {
9450	return s.String()
9451}
9452
9453// Validate inspects the fields of the type to determine if they are valid.
9454func (s *DescribeClientAuthenticationSettingsInput) Validate() error {
9455	invalidParams := request.ErrInvalidParams{Context: "DescribeClientAuthenticationSettingsInput"}
9456	if s.DirectoryId == nil {
9457		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9458	}
9459	if s.Limit != nil && *s.Limit < 1 {
9460		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
9461	}
9462
9463	if invalidParams.Len() > 0 {
9464		return invalidParams
9465	}
9466	return nil
9467}
9468
9469// SetDirectoryId sets the DirectoryId field's value.
9470func (s *DescribeClientAuthenticationSettingsInput) SetDirectoryId(v string) *DescribeClientAuthenticationSettingsInput {
9471	s.DirectoryId = &v
9472	return s
9473}
9474
9475// SetLimit sets the Limit field's value.
9476func (s *DescribeClientAuthenticationSettingsInput) SetLimit(v int64) *DescribeClientAuthenticationSettingsInput {
9477	s.Limit = &v
9478	return s
9479}
9480
9481// SetNextToken sets the NextToken field's value.
9482func (s *DescribeClientAuthenticationSettingsInput) SetNextToken(v string) *DescribeClientAuthenticationSettingsInput {
9483	s.NextToken = &v
9484	return s
9485}
9486
9487// SetType sets the Type field's value.
9488func (s *DescribeClientAuthenticationSettingsInput) SetType(v string) *DescribeClientAuthenticationSettingsInput {
9489	s.Type = &v
9490	return s
9491}
9492
9493type DescribeClientAuthenticationSettingsOutput struct {
9494	_ struct{} `type:"structure"`
9495
9496	// Information about the type of client authentication for the specified directory.
9497	// The following information is retrieved: The date and time when the status
9498	// of the client authentication type was last updated, whether the client authentication
9499	// type is enabled or disabled, and the type of client authentication.
9500	ClientAuthenticationSettingsInfo []*ClientAuthenticationSettingInfo `type:"list"`
9501
9502	// The next token used to retrieve the client authentication settings if the
9503	// number of setting types exceeds page limit and there is another page.
9504	NextToken *string `type:"string"`
9505}
9506
9507// String returns the string representation.
9508//
9509// API parameter values that are decorated as "sensitive" in the API will not
9510// be included in the string output. The member name will be present, but the
9511// value will be replaced with "sensitive".
9512func (s DescribeClientAuthenticationSettingsOutput) String() string {
9513	return awsutil.Prettify(s)
9514}
9515
9516// GoString returns the string representation.
9517//
9518// API parameter values that are decorated as "sensitive" in the API will not
9519// be included in the string output. The member name will be present, but the
9520// value will be replaced with "sensitive".
9521func (s DescribeClientAuthenticationSettingsOutput) GoString() string {
9522	return s.String()
9523}
9524
9525// SetClientAuthenticationSettingsInfo sets the ClientAuthenticationSettingsInfo field's value.
9526func (s *DescribeClientAuthenticationSettingsOutput) SetClientAuthenticationSettingsInfo(v []*ClientAuthenticationSettingInfo) *DescribeClientAuthenticationSettingsOutput {
9527	s.ClientAuthenticationSettingsInfo = v
9528	return s
9529}
9530
9531// SetNextToken sets the NextToken field's value.
9532func (s *DescribeClientAuthenticationSettingsOutput) SetNextToken(v string) *DescribeClientAuthenticationSettingsOutput {
9533	s.NextToken = &v
9534	return s
9535}
9536
9537// Describes a conditional forwarder.
9538type DescribeConditionalForwardersInput struct {
9539	_ struct{} `type:"structure"`
9540
9541	// The directory ID for which to get the list of associated conditional forwarders.
9542	//
9543	// DirectoryId is a required field
9544	DirectoryId *string `type:"string" required:"true"`
9545
9546	// The fully qualified domain names (FQDN) of the remote domains for which to
9547	// get the list of associated conditional forwarders. If this member is null,
9548	// all conditional forwarders are returned.
9549	RemoteDomainNames []*string `type:"list"`
9550}
9551
9552// String returns the string representation.
9553//
9554// API parameter values that are decorated as "sensitive" in the API will not
9555// be included in the string output. The member name will be present, but the
9556// value will be replaced with "sensitive".
9557func (s DescribeConditionalForwardersInput) String() string {
9558	return awsutil.Prettify(s)
9559}
9560
9561// GoString returns the string representation.
9562//
9563// API parameter values that are decorated as "sensitive" in the API will not
9564// be included in the string output. The member name will be present, but the
9565// value will be replaced with "sensitive".
9566func (s DescribeConditionalForwardersInput) GoString() string {
9567	return s.String()
9568}
9569
9570// Validate inspects the fields of the type to determine if they are valid.
9571func (s *DescribeConditionalForwardersInput) Validate() error {
9572	invalidParams := request.ErrInvalidParams{Context: "DescribeConditionalForwardersInput"}
9573	if s.DirectoryId == nil {
9574		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9575	}
9576
9577	if invalidParams.Len() > 0 {
9578		return invalidParams
9579	}
9580	return nil
9581}
9582
9583// SetDirectoryId sets the DirectoryId field's value.
9584func (s *DescribeConditionalForwardersInput) SetDirectoryId(v string) *DescribeConditionalForwardersInput {
9585	s.DirectoryId = &v
9586	return s
9587}
9588
9589// SetRemoteDomainNames sets the RemoteDomainNames field's value.
9590func (s *DescribeConditionalForwardersInput) SetRemoteDomainNames(v []*string) *DescribeConditionalForwardersInput {
9591	s.RemoteDomainNames = v
9592	return s
9593}
9594
9595// The result of a DescribeConditionalForwarder request.
9596type DescribeConditionalForwardersOutput struct {
9597	_ struct{} `type:"structure"`
9598
9599	// The list of conditional forwarders that have been created.
9600	ConditionalForwarders []*ConditionalForwarder `type:"list"`
9601}
9602
9603// String returns the string representation.
9604//
9605// API parameter values that are decorated as "sensitive" in the API will not
9606// be included in the string output. The member name will be present, but the
9607// value will be replaced with "sensitive".
9608func (s DescribeConditionalForwardersOutput) String() string {
9609	return awsutil.Prettify(s)
9610}
9611
9612// GoString returns the string representation.
9613//
9614// API parameter values that are decorated as "sensitive" in the API will not
9615// be included in the string output. The member name will be present, but the
9616// value will be replaced with "sensitive".
9617func (s DescribeConditionalForwardersOutput) GoString() string {
9618	return s.String()
9619}
9620
9621// SetConditionalForwarders sets the ConditionalForwarders field's value.
9622func (s *DescribeConditionalForwardersOutput) SetConditionalForwarders(v []*ConditionalForwarder) *DescribeConditionalForwardersOutput {
9623	s.ConditionalForwarders = v
9624	return s
9625}
9626
9627// Contains the inputs for the DescribeDirectories operation.
9628type DescribeDirectoriesInput struct {
9629	_ struct{} `type:"structure"`
9630
9631	// A list of identifiers of the directories for which to obtain the information.
9632	// If this member is null, all directories that belong to the current account
9633	// are returned.
9634	//
9635	// An empty list results in an InvalidParameterException being thrown.
9636	DirectoryIds []*string `type:"list"`
9637
9638	// The maximum number of items to return. If this value is zero, the maximum
9639	// number of items is specified by the limitations of the operation.
9640	Limit *int64 `type:"integer"`
9641
9642	// The DescribeDirectoriesResult.NextToken value from a previous call to DescribeDirectories.
9643	// Pass null if this is the first call.
9644	NextToken *string `type:"string"`
9645}
9646
9647// String returns the string representation.
9648//
9649// API parameter values that are decorated as "sensitive" in the API will not
9650// be included in the string output. The member name will be present, but the
9651// value will be replaced with "sensitive".
9652func (s DescribeDirectoriesInput) String() string {
9653	return awsutil.Prettify(s)
9654}
9655
9656// GoString returns the string representation.
9657//
9658// API parameter values that are decorated as "sensitive" in the API will not
9659// be included in the string output. The member name will be present, but the
9660// value will be replaced with "sensitive".
9661func (s DescribeDirectoriesInput) GoString() string {
9662	return s.String()
9663}
9664
9665// SetDirectoryIds sets the DirectoryIds field's value.
9666func (s *DescribeDirectoriesInput) SetDirectoryIds(v []*string) *DescribeDirectoriesInput {
9667	s.DirectoryIds = v
9668	return s
9669}
9670
9671// SetLimit sets the Limit field's value.
9672func (s *DescribeDirectoriesInput) SetLimit(v int64) *DescribeDirectoriesInput {
9673	s.Limit = &v
9674	return s
9675}
9676
9677// SetNextToken sets the NextToken field's value.
9678func (s *DescribeDirectoriesInput) SetNextToken(v string) *DescribeDirectoriesInput {
9679	s.NextToken = &v
9680	return s
9681}
9682
9683// Contains the results of the DescribeDirectories operation.
9684type DescribeDirectoriesOutput struct {
9685	_ struct{} `type:"structure"`
9686
9687	// The list of DirectoryDescription objects that were retrieved.
9688	//
9689	// It is possible that this list contains less than the number of items specified
9690	// in the Limit member of the request. This occurs if there are less than the
9691	// requested number of items left to retrieve, or if the limitations of the
9692	// operation have been exceeded.
9693	DirectoryDescriptions []*DirectoryDescription `type:"list"`
9694
9695	// If not null, more results are available. Pass this value for the NextToken
9696	// parameter in a subsequent call to DescribeDirectories to retrieve the next
9697	// set of items.
9698	NextToken *string `type:"string"`
9699}
9700
9701// String returns the string representation.
9702//
9703// API parameter values that are decorated as "sensitive" in the API will not
9704// be included in the string output. The member name will be present, but the
9705// value will be replaced with "sensitive".
9706func (s DescribeDirectoriesOutput) String() string {
9707	return awsutil.Prettify(s)
9708}
9709
9710// GoString returns the string representation.
9711//
9712// API parameter values that are decorated as "sensitive" in the API will not
9713// be included in the string output. The member name will be present, but the
9714// value will be replaced with "sensitive".
9715func (s DescribeDirectoriesOutput) GoString() string {
9716	return s.String()
9717}
9718
9719// SetDirectoryDescriptions sets the DirectoryDescriptions field's value.
9720func (s *DescribeDirectoriesOutput) SetDirectoryDescriptions(v []*DirectoryDescription) *DescribeDirectoriesOutput {
9721	s.DirectoryDescriptions = v
9722	return s
9723}
9724
9725// SetNextToken sets the NextToken field's value.
9726func (s *DescribeDirectoriesOutput) SetNextToken(v string) *DescribeDirectoriesOutput {
9727	s.NextToken = &v
9728	return s
9729}
9730
9731type DescribeDomainControllersInput struct {
9732	_ struct{} `type:"structure"`
9733
9734	// Identifier of the directory for which to retrieve the domain controller information.
9735	//
9736	// DirectoryId is a required field
9737	DirectoryId *string `type:"string" required:"true"`
9738
9739	// A list of identifiers for the domain controllers whose information will be
9740	// provided.
9741	DomainControllerIds []*string `type:"list"`
9742
9743	// The maximum number of items to return.
9744	Limit *int64 `type:"integer"`
9745
9746	// The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers.
9747	// Pass null if this is the first call.
9748	NextToken *string `type:"string"`
9749}
9750
9751// String returns the string representation.
9752//
9753// API parameter values that are decorated as "sensitive" in the API will not
9754// be included in the string output. The member name will be present, but the
9755// value will be replaced with "sensitive".
9756func (s DescribeDomainControllersInput) String() string {
9757	return awsutil.Prettify(s)
9758}
9759
9760// GoString returns the string representation.
9761//
9762// API parameter values that are decorated as "sensitive" in the API will not
9763// be included in the string output. The member name will be present, but the
9764// value will be replaced with "sensitive".
9765func (s DescribeDomainControllersInput) GoString() string {
9766	return s.String()
9767}
9768
9769// Validate inspects the fields of the type to determine if they are valid.
9770func (s *DescribeDomainControllersInput) Validate() error {
9771	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainControllersInput"}
9772	if s.DirectoryId == nil {
9773		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9774	}
9775
9776	if invalidParams.Len() > 0 {
9777		return invalidParams
9778	}
9779	return nil
9780}
9781
9782// SetDirectoryId sets the DirectoryId field's value.
9783func (s *DescribeDomainControllersInput) SetDirectoryId(v string) *DescribeDomainControllersInput {
9784	s.DirectoryId = &v
9785	return s
9786}
9787
9788// SetDomainControllerIds sets the DomainControllerIds field's value.
9789func (s *DescribeDomainControllersInput) SetDomainControllerIds(v []*string) *DescribeDomainControllersInput {
9790	s.DomainControllerIds = v
9791	return s
9792}
9793
9794// SetLimit sets the Limit field's value.
9795func (s *DescribeDomainControllersInput) SetLimit(v int64) *DescribeDomainControllersInput {
9796	s.Limit = &v
9797	return s
9798}
9799
9800// SetNextToken sets the NextToken field's value.
9801func (s *DescribeDomainControllersInput) SetNextToken(v string) *DescribeDomainControllersInput {
9802	s.NextToken = &v
9803	return s
9804}
9805
9806type DescribeDomainControllersOutput struct {
9807	_ struct{} `type:"structure"`
9808
9809	// List of the DomainController objects that were retrieved.
9810	DomainControllers []*DomainController `type:"list"`
9811
9812	// If not null, more results are available. Pass this value for the NextToken
9813	// parameter in a subsequent call to DescribeDomainControllers retrieve the
9814	// next set of items.
9815	NextToken *string `type:"string"`
9816}
9817
9818// String returns the string representation.
9819//
9820// API parameter values that are decorated as "sensitive" in the API will not
9821// be included in the string output. The member name will be present, but the
9822// value will be replaced with "sensitive".
9823func (s DescribeDomainControllersOutput) String() string {
9824	return awsutil.Prettify(s)
9825}
9826
9827// GoString returns the string representation.
9828//
9829// API parameter values that are decorated as "sensitive" in the API will not
9830// be included in the string output. The member name will be present, but the
9831// value will be replaced with "sensitive".
9832func (s DescribeDomainControllersOutput) GoString() string {
9833	return s.String()
9834}
9835
9836// SetDomainControllers sets the DomainControllers field's value.
9837func (s *DescribeDomainControllersOutput) SetDomainControllers(v []*DomainController) *DescribeDomainControllersOutput {
9838	s.DomainControllers = v
9839	return s
9840}
9841
9842// SetNextToken sets the NextToken field's value.
9843func (s *DescribeDomainControllersOutput) SetNextToken(v string) *DescribeDomainControllersOutput {
9844	s.NextToken = &v
9845	return s
9846}
9847
9848// Describes event topics.
9849type DescribeEventTopicsInput struct {
9850	_ struct{} `type:"structure"`
9851
9852	// The Directory ID for which to get the list of associated Amazon SNS topics.
9853	// If this member is null, associations for all Directory IDs are returned.
9854	DirectoryId *string `type:"string"`
9855
9856	// A list of Amazon SNS topic names for which to obtain the information. If
9857	// this member is null, all associations for the specified Directory ID are
9858	// returned.
9859	//
9860	// An empty list results in an InvalidParameterException being thrown.
9861	TopicNames []*string `type:"list"`
9862}
9863
9864// String returns the string representation.
9865//
9866// API parameter values that are decorated as "sensitive" in the API will not
9867// be included in the string output. The member name will be present, but the
9868// value will be replaced with "sensitive".
9869func (s DescribeEventTopicsInput) String() string {
9870	return awsutil.Prettify(s)
9871}
9872
9873// GoString returns the string representation.
9874//
9875// API parameter values that are decorated as "sensitive" in the API will not
9876// be included in the string output. The member name will be present, but the
9877// value will be replaced with "sensitive".
9878func (s DescribeEventTopicsInput) GoString() string {
9879	return s.String()
9880}
9881
9882// SetDirectoryId sets the DirectoryId field's value.
9883func (s *DescribeEventTopicsInput) SetDirectoryId(v string) *DescribeEventTopicsInput {
9884	s.DirectoryId = &v
9885	return s
9886}
9887
9888// SetTopicNames sets the TopicNames field's value.
9889func (s *DescribeEventTopicsInput) SetTopicNames(v []*string) *DescribeEventTopicsInput {
9890	s.TopicNames = v
9891	return s
9892}
9893
9894// The result of a DescribeEventTopic request.
9895type DescribeEventTopicsOutput struct {
9896	_ struct{} `type:"structure"`
9897
9898	// A list of Amazon SNS topic names that receive status messages from the specified
9899	// Directory ID.
9900	EventTopics []*EventTopic `type:"list"`
9901}
9902
9903// String returns the string representation.
9904//
9905// API parameter values that are decorated as "sensitive" in the API will not
9906// be included in the string output. The member name will be present, but the
9907// value will be replaced with "sensitive".
9908func (s DescribeEventTopicsOutput) String() string {
9909	return awsutil.Prettify(s)
9910}
9911
9912// GoString returns the string representation.
9913//
9914// API parameter values that are decorated as "sensitive" in the API will not
9915// be included in the string output. The member name will be present, but the
9916// value will be replaced with "sensitive".
9917func (s DescribeEventTopicsOutput) GoString() string {
9918	return s.String()
9919}
9920
9921// SetEventTopics sets the EventTopics field's value.
9922func (s *DescribeEventTopicsOutput) SetEventTopics(v []*EventTopic) *DescribeEventTopicsOutput {
9923	s.EventTopics = v
9924	return s
9925}
9926
9927type DescribeLDAPSSettingsInput struct {
9928	_ struct{} `type:"structure"`
9929
9930	// The identifier of the directory.
9931	//
9932	// DirectoryId is a required field
9933	DirectoryId *string `type:"string" required:"true"`
9934
9935	// Specifies the number of items that should be displayed on one page.
9936	Limit *int64 `min:"1" type:"integer"`
9937
9938	// The type of next token used for pagination.
9939	NextToken *string `type:"string"`
9940
9941	// The type of LDAP security to enable. Currently only the value Client is supported.
9942	Type *string `type:"string" enum:"LDAPSType"`
9943}
9944
9945// String returns the string representation.
9946//
9947// API parameter values that are decorated as "sensitive" in the API will not
9948// be included in the string output. The member name will be present, but the
9949// value will be replaced with "sensitive".
9950func (s DescribeLDAPSSettingsInput) String() string {
9951	return awsutil.Prettify(s)
9952}
9953
9954// GoString returns the string representation.
9955//
9956// API parameter values that are decorated as "sensitive" in the API will not
9957// be included in the string output. The member name will be present, but the
9958// value will be replaced with "sensitive".
9959func (s DescribeLDAPSSettingsInput) GoString() string {
9960	return s.String()
9961}
9962
9963// Validate inspects the fields of the type to determine if they are valid.
9964func (s *DescribeLDAPSSettingsInput) Validate() error {
9965	invalidParams := request.ErrInvalidParams{Context: "DescribeLDAPSSettingsInput"}
9966	if s.DirectoryId == nil {
9967		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9968	}
9969	if s.Limit != nil && *s.Limit < 1 {
9970		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
9971	}
9972
9973	if invalidParams.Len() > 0 {
9974		return invalidParams
9975	}
9976	return nil
9977}
9978
9979// SetDirectoryId sets the DirectoryId field's value.
9980func (s *DescribeLDAPSSettingsInput) SetDirectoryId(v string) *DescribeLDAPSSettingsInput {
9981	s.DirectoryId = &v
9982	return s
9983}
9984
9985// SetLimit sets the Limit field's value.
9986func (s *DescribeLDAPSSettingsInput) SetLimit(v int64) *DescribeLDAPSSettingsInput {
9987	s.Limit = &v
9988	return s
9989}
9990
9991// SetNextToken sets the NextToken field's value.
9992func (s *DescribeLDAPSSettingsInput) SetNextToken(v string) *DescribeLDAPSSettingsInput {
9993	s.NextToken = &v
9994	return s
9995}
9996
9997// SetType sets the Type field's value.
9998func (s *DescribeLDAPSSettingsInput) SetType(v string) *DescribeLDAPSSettingsInput {
9999	s.Type = &v
10000	return s
10001}
10002
10003type DescribeLDAPSSettingsOutput struct {
10004	_ struct{} `type:"structure"`
10005
10006	// Information about LDAP security for the specified directory, including status
10007	// of enablement, state last updated date time, and the reason for the state.
10008	LDAPSSettingsInfo []*LDAPSSettingInfo `type:"list"`
10009
10010	// The next token used to retrieve the LDAPS settings if the number of setting
10011	// types exceeds page limit and there is another page.
10012	NextToken *string `type:"string"`
10013}
10014
10015// String returns the string representation.
10016//
10017// API parameter values that are decorated as "sensitive" in the API will not
10018// be included in the string output. The member name will be present, but the
10019// value will be replaced with "sensitive".
10020func (s DescribeLDAPSSettingsOutput) String() string {
10021	return awsutil.Prettify(s)
10022}
10023
10024// GoString returns the string representation.
10025//
10026// API parameter values that are decorated as "sensitive" in the API will not
10027// be included in the string output. The member name will be present, but the
10028// value will be replaced with "sensitive".
10029func (s DescribeLDAPSSettingsOutput) GoString() string {
10030	return s.String()
10031}
10032
10033// SetLDAPSSettingsInfo sets the LDAPSSettingsInfo field's value.
10034func (s *DescribeLDAPSSettingsOutput) SetLDAPSSettingsInfo(v []*LDAPSSettingInfo) *DescribeLDAPSSettingsOutput {
10035	s.LDAPSSettingsInfo = v
10036	return s
10037}
10038
10039// SetNextToken sets the NextToken field's value.
10040func (s *DescribeLDAPSSettingsOutput) SetNextToken(v string) *DescribeLDAPSSettingsOutput {
10041	s.NextToken = &v
10042	return s
10043}
10044
10045type DescribeRegionsInput struct {
10046	_ struct{} `type:"structure"`
10047
10048	// The identifier of the directory.
10049	//
10050	// DirectoryId is a required field
10051	DirectoryId *string `type:"string" required:"true"`
10052
10053	// The DescribeRegionsResult.NextToken value from a previous call to DescribeRegions.
10054	// Pass null if this is the first call.
10055	NextToken *string `type:"string"`
10056
10057	// The name of the Region. For example, us-east-1.
10058	RegionName *string `min:"8" type:"string"`
10059}
10060
10061// String returns the string representation.
10062//
10063// API parameter values that are decorated as "sensitive" in the API will not
10064// be included in the string output. The member name will be present, but the
10065// value will be replaced with "sensitive".
10066func (s DescribeRegionsInput) String() string {
10067	return awsutil.Prettify(s)
10068}
10069
10070// GoString returns the string representation.
10071//
10072// API parameter values that are decorated as "sensitive" in the API will not
10073// be included in the string output. The member name will be present, but the
10074// value will be replaced with "sensitive".
10075func (s DescribeRegionsInput) GoString() string {
10076	return s.String()
10077}
10078
10079// Validate inspects the fields of the type to determine if they are valid.
10080func (s *DescribeRegionsInput) Validate() error {
10081	invalidParams := request.ErrInvalidParams{Context: "DescribeRegionsInput"}
10082	if s.DirectoryId == nil {
10083		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10084	}
10085	if s.RegionName != nil && len(*s.RegionName) < 8 {
10086		invalidParams.Add(request.NewErrParamMinLen("RegionName", 8))
10087	}
10088
10089	if invalidParams.Len() > 0 {
10090		return invalidParams
10091	}
10092	return nil
10093}
10094
10095// SetDirectoryId sets the DirectoryId field's value.
10096func (s *DescribeRegionsInput) SetDirectoryId(v string) *DescribeRegionsInput {
10097	s.DirectoryId = &v
10098	return s
10099}
10100
10101// SetNextToken sets the NextToken field's value.
10102func (s *DescribeRegionsInput) SetNextToken(v string) *DescribeRegionsInput {
10103	s.NextToken = &v
10104	return s
10105}
10106
10107// SetRegionName sets the RegionName field's value.
10108func (s *DescribeRegionsInput) SetRegionName(v string) *DescribeRegionsInput {
10109	s.RegionName = &v
10110	return s
10111}
10112
10113type DescribeRegionsOutput struct {
10114	_ struct{} `type:"structure"`
10115
10116	// If not null, more results are available. Pass this value for the NextToken
10117	// parameter in a subsequent call to DescribeRegions to retrieve the next set
10118	// of items.
10119	NextToken *string `type:"string"`
10120
10121	// List of Region information related to the directory for each replicated Region.
10122	RegionsDescription []*RegionDescription `type:"list"`
10123}
10124
10125// String returns the string representation.
10126//
10127// API parameter values that are decorated as "sensitive" in the API will not
10128// be included in the string output. The member name will be present, but the
10129// value will be replaced with "sensitive".
10130func (s DescribeRegionsOutput) String() string {
10131	return awsutil.Prettify(s)
10132}
10133
10134// GoString returns the string representation.
10135//
10136// API parameter values that are decorated as "sensitive" in the API will not
10137// be included in the string output. The member name will be present, but the
10138// value will be replaced with "sensitive".
10139func (s DescribeRegionsOutput) GoString() string {
10140	return s.String()
10141}
10142
10143// SetNextToken sets the NextToken field's value.
10144func (s *DescribeRegionsOutput) SetNextToken(v string) *DescribeRegionsOutput {
10145	s.NextToken = &v
10146	return s
10147}
10148
10149// SetRegionsDescription sets the RegionsDescription field's value.
10150func (s *DescribeRegionsOutput) SetRegionsDescription(v []*RegionDescription) *DescribeRegionsOutput {
10151	s.RegionsDescription = v
10152	return s
10153}
10154
10155type DescribeSharedDirectoriesInput struct {
10156	_ struct{} `type:"structure"`
10157
10158	// The number of shared directories to return in the response object.
10159	Limit *int64 `type:"integer"`
10160
10161	// The DescribeSharedDirectoriesResult.NextToken value from a previous call
10162	// to DescribeSharedDirectories. Pass null if this is the first call.
10163	NextToken *string `type:"string"`
10164
10165	// Returns the identifier of the directory in the directory owner account.
10166	//
10167	// OwnerDirectoryId is a required field
10168	OwnerDirectoryId *string `type:"string" required:"true"`
10169
10170	// A list of identifiers of all shared directories in your account.
10171	SharedDirectoryIds []*string `type:"list"`
10172}
10173
10174// String returns the string representation.
10175//
10176// API parameter values that are decorated as "sensitive" in the API will not
10177// be included in the string output. The member name will be present, but the
10178// value will be replaced with "sensitive".
10179func (s DescribeSharedDirectoriesInput) String() string {
10180	return awsutil.Prettify(s)
10181}
10182
10183// GoString returns the string representation.
10184//
10185// API parameter values that are decorated as "sensitive" in the API will not
10186// be included in the string output. The member name will be present, but the
10187// value will be replaced with "sensitive".
10188func (s DescribeSharedDirectoriesInput) GoString() string {
10189	return s.String()
10190}
10191
10192// Validate inspects the fields of the type to determine if they are valid.
10193func (s *DescribeSharedDirectoriesInput) Validate() error {
10194	invalidParams := request.ErrInvalidParams{Context: "DescribeSharedDirectoriesInput"}
10195	if s.OwnerDirectoryId == nil {
10196		invalidParams.Add(request.NewErrParamRequired("OwnerDirectoryId"))
10197	}
10198
10199	if invalidParams.Len() > 0 {
10200		return invalidParams
10201	}
10202	return nil
10203}
10204
10205// SetLimit sets the Limit field's value.
10206func (s *DescribeSharedDirectoriesInput) SetLimit(v int64) *DescribeSharedDirectoriesInput {
10207	s.Limit = &v
10208	return s
10209}
10210
10211// SetNextToken sets the NextToken field's value.
10212func (s *DescribeSharedDirectoriesInput) SetNextToken(v string) *DescribeSharedDirectoriesInput {
10213	s.NextToken = &v
10214	return s
10215}
10216
10217// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
10218func (s *DescribeSharedDirectoriesInput) SetOwnerDirectoryId(v string) *DescribeSharedDirectoriesInput {
10219	s.OwnerDirectoryId = &v
10220	return s
10221}
10222
10223// SetSharedDirectoryIds sets the SharedDirectoryIds field's value.
10224func (s *DescribeSharedDirectoriesInput) SetSharedDirectoryIds(v []*string) *DescribeSharedDirectoriesInput {
10225	s.SharedDirectoryIds = v
10226	return s
10227}
10228
10229type DescribeSharedDirectoriesOutput struct {
10230	_ struct{} `type:"structure"`
10231
10232	// If not null, token that indicates that more results are available. Pass this
10233	// value for the NextToken parameter in a subsequent call to DescribeSharedDirectories
10234	// to retrieve the next set of items.
10235	NextToken *string `type:"string"`
10236
10237	// A list of all shared directories in your account.
10238	SharedDirectories []*SharedDirectory `type:"list"`
10239}
10240
10241// String returns the string representation.
10242//
10243// API parameter values that are decorated as "sensitive" in the API will not
10244// be included in the string output. The member name will be present, but the
10245// value will be replaced with "sensitive".
10246func (s DescribeSharedDirectoriesOutput) String() string {
10247	return awsutil.Prettify(s)
10248}
10249
10250// GoString returns the string representation.
10251//
10252// API parameter values that are decorated as "sensitive" in the API will not
10253// be included in the string output. The member name will be present, but the
10254// value will be replaced with "sensitive".
10255func (s DescribeSharedDirectoriesOutput) GoString() string {
10256	return s.String()
10257}
10258
10259// SetNextToken sets the NextToken field's value.
10260func (s *DescribeSharedDirectoriesOutput) SetNextToken(v string) *DescribeSharedDirectoriesOutput {
10261	s.NextToken = &v
10262	return s
10263}
10264
10265// SetSharedDirectories sets the SharedDirectories field's value.
10266func (s *DescribeSharedDirectoriesOutput) SetSharedDirectories(v []*SharedDirectory) *DescribeSharedDirectoriesOutput {
10267	s.SharedDirectories = v
10268	return s
10269}
10270
10271// Contains the inputs for the DescribeSnapshots operation.
10272type DescribeSnapshotsInput struct {
10273	_ struct{} `type:"structure"`
10274
10275	// The identifier of the directory for which to retrieve snapshot information.
10276	DirectoryId *string `type:"string"`
10277
10278	// The maximum number of objects to return.
10279	Limit *int64 `type:"integer"`
10280
10281	// The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots.
10282	// Pass null if this is the first call.
10283	NextToken *string `type:"string"`
10284
10285	// A list of identifiers of the snapshots to obtain the information for. If
10286	// this member is null or empty, all snapshots are returned using the Limit
10287	// and NextToken members.
10288	SnapshotIds []*string `type:"list"`
10289}
10290
10291// String returns the string representation.
10292//
10293// API parameter values that are decorated as "sensitive" in the API will not
10294// be included in the string output. The member name will be present, but the
10295// value will be replaced with "sensitive".
10296func (s DescribeSnapshotsInput) String() string {
10297	return awsutil.Prettify(s)
10298}
10299
10300// GoString returns the string representation.
10301//
10302// API parameter values that are decorated as "sensitive" in the API will not
10303// be included in the string output. The member name will be present, but the
10304// value will be replaced with "sensitive".
10305func (s DescribeSnapshotsInput) GoString() string {
10306	return s.String()
10307}
10308
10309// SetDirectoryId sets the DirectoryId field's value.
10310func (s *DescribeSnapshotsInput) SetDirectoryId(v string) *DescribeSnapshotsInput {
10311	s.DirectoryId = &v
10312	return s
10313}
10314
10315// SetLimit sets the Limit field's value.
10316func (s *DescribeSnapshotsInput) SetLimit(v int64) *DescribeSnapshotsInput {
10317	s.Limit = &v
10318	return s
10319}
10320
10321// SetNextToken sets the NextToken field's value.
10322func (s *DescribeSnapshotsInput) SetNextToken(v string) *DescribeSnapshotsInput {
10323	s.NextToken = &v
10324	return s
10325}
10326
10327// SetSnapshotIds sets the SnapshotIds field's value.
10328func (s *DescribeSnapshotsInput) SetSnapshotIds(v []*string) *DescribeSnapshotsInput {
10329	s.SnapshotIds = v
10330	return s
10331}
10332
10333// Contains the results of the DescribeSnapshots operation.
10334type DescribeSnapshotsOutput struct {
10335	_ struct{} `type:"structure"`
10336
10337	// If not null, more results are available. Pass this value in the NextToken
10338	// member of a subsequent call to DescribeSnapshots.
10339	NextToken *string `type:"string"`
10340
10341	// The list of Snapshot objects that were retrieved.
10342	//
10343	// It is possible that this list contains less than the number of items specified
10344	// in the Limit member of the request. This occurs if there are less than the
10345	// requested number of items left to retrieve, or if the limitations of the
10346	// operation have been exceeded.
10347	Snapshots []*Snapshot `type:"list"`
10348}
10349
10350// String returns the string representation.
10351//
10352// API parameter values that are decorated as "sensitive" in the API will not
10353// be included in the string output. The member name will be present, but the
10354// value will be replaced with "sensitive".
10355func (s DescribeSnapshotsOutput) String() string {
10356	return awsutil.Prettify(s)
10357}
10358
10359// GoString returns the string representation.
10360//
10361// API parameter values that are decorated as "sensitive" in the API will not
10362// be included in the string output. The member name will be present, but the
10363// value will be replaced with "sensitive".
10364func (s DescribeSnapshotsOutput) GoString() string {
10365	return s.String()
10366}
10367
10368// SetNextToken sets the NextToken field's value.
10369func (s *DescribeSnapshotsOutput) SetNextToken(v string) *DescribeSnapshotsOutput {
10370	s.NextToken = &v
10371	return s
10372}
10373
10374// SetSnapshots sets the Snapshots field's value.
10375func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshotsOutput {
10376	s.Snapshots = v
10377	return s
10378}
10379
10380// Describes the trust relationships for a particular Managed Microsoft AD directory.
10381// If no input parameters are provided, such as directory ID or trust ID, this
10382// request describes all the trust relationships.
10383type DescribeTrustsInput struct {
10384	_ struct{} `type:"structure"`
10385
10386	// The Directory ID of the Amazon Web Services directory that is a part of the
10387	// requested trust relationship.
10388	DirectoryId *string `type:"string"`
10389
10390	// The maximum number of objects to return.
10391	Limit *int64 `type:"integer"`
10392
10393	// The DescribeTrustsResult.NextToken value from a previous call to DescribeTrusts.
10394	// Pass null if this is the first call.
10395	NextToken *string `type:"string"`
10396
10397	// A list of identifiers of the trust relationships for which to obtain the
10398	// information. If this member is null, all trust relationships that belong
10399	// to the current account are returned.
10400	//
10401	// An empty list results in an InvalidParameterException being thrown.
10402	TrustIds []*string `type:"list"`
10403}
10404
10405// String returns the string representation.
10406//
10407// API parameter values that are decorated as "sensitive" in the API will not
10408// be included in the string output. The member name will be present, but the
10409// value will be replaced with "sensitive".
10410func (s DescribeTrustsInput) String() string {
10411	return awsutil.Prettify(s)
10412}
10413
10414// GoString returns the string representation.
10415//
10416// API parameter values that are decorated as "sensitive" in the API will not
10417// be included in the string output. The member name will be present, but the
10418// value will be replaced with "sensitive".
10419func (s DescribeTrustsInput) GoString() string {
10420	return s.String()
10421}
10422
10423// SetDirectoryId sets the DirectoryId field's value.
10424func (s *DescribeTrustsInput) SetDirectoryId(v string) *DescribeTrustsInput {
10425	s.DirectoryId = &v
10426	return s
10427}
10428
10429// SetLimit sets the Limit field's value.
10430func (s *DescribeTrustsInput) SetLimit(v int64) *DescribeTrustsInput {
10431	s.Limit = &v
10432	return s
10433}
10434
10435// SetNextToken sets the NextToken field's value.
10436func (s *DescribeTrustsInput) SetNextToken(v string) *DescribeTrustsInput {
10437	s.NextToken = &v
10438	return s
10439}
10440
10441// SetTrustIds sets the TrustIds field's value.
10442func (s *DescribeTrustsInput) SetTrustIds(v []*string) *DescribeTrustsInput {
10443	s.TrustIds = v
10444	return s
10445}
10446
10447// The result of a DescribeTrust request.
10448type DescribeTrustsOutput struct {
10449	_ struct{} `type:"structure"`
10450
10451	// If not null, more results are available. Pass this value for the NextToken
10452	// parameter in a subsequent call to DescribeTrusts to retrieve the next set
10453	// of items.
10454	NextToken *string `type:"string"`
10455
10456	// The list of Trust objects that were retrieved.
10457	//
10458	// It is possible that this list contains less than the number of items specified
10459	// in the Limit member of the request. This occurs if there are less than the
10460	// requested number of items left to retrieve, or if the limitations of the
10461	// operation have been exceeded.
10462	Trusts []*Trust `type:"list"`
10463}
10464
10465// String returns the string representation.
10466//
10467// API parameter values that are decorated as "sensitive" in the API will not
10468// be included in the string output. The member name will be present, but the
10469// value will be replaced with "sensitive".
10470func (s DescribeTrustsOutput) String() string {
10471	return awsutil.Prettify(s)
10472}
10473
10474// GoString returns the string representation.
10475//
10476// API parameter values that are decorated as "sensitive" in the API will not
10477// be included in the string output. The member name will be present, but the
10478// value will be replaced with "sensitive".
10479func (s DescribeTrustsOutput) GoString() string {
10480	return s.String()
10481}
10482
10483// SetNextToken sets the NextToken field's value.
10484func (s *DescribeTrustsOutput) SetNextToken(v string) *DescribeTrustsOutput {
10485	s.NextToken = &v
10486	return s
10487}
10488
10489// SetTrusts sets the Trusts field's value.
10490func (s *DescribeTrustsOutput) SetTrusts(v []*Trust) *DescribeTrustsOutput {
10491	s.Trusts = v
10492	return s
10493}
10494
10495// The Region you specified is the same Region where the Managed Microsoft AD
10496// directory was created. Specify a different Region and try again.
10497type DirectoryAlreadyInRegionException struct {
10498	_            struct{}                  `type:"structure"`
10499	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10500
10501	// The descriptive message for the exception.
10502	Message_ *string `locationName:"Message" type:"string"`
10503
10504	// The Amazon Web Services request identifier.
10505	RequestId *string `type:"string"`
10506}
10507
10508// String returns the string representation.
10509//
10510// API parameter values that are decorated as "sensitive" in the API will not
10511// be included in the string output. The member name will be present, but the
10512// value will be replaced with "sensitive".
10513func (s DirectoryAlreadyInRegionException) String() string {
10514	return awsutil.Prettify(s)
10515}
10516
10517// GoString returns the string representation.
10518//
10519// API parameter values that are decorated as "sensitive" in the API will not
10520// be included in the string output. The member name will be present, but the
10521// value will be replaced with "sensitive".
10522func (s DirectoryAlreadyInRegionException) GoString() string {
10523	return s.String()
10524}
10525
10526func newErrorDirectoryAlreadyInRegionException(v protocol.ResponseMetadata) error {
10527	return &DirectoryAlreadyInRegionException{
10528		RespMetadata: v,
10529	}
10530}
10531
10532// Code returns the exception type name.
10533func (s *DirectoryAlreadyInRegionException) Code() string {
10534	return "DirectoryAlreadyInRegionException"
10535}
10536
10537// Message returns the exception's message.
10538func (s *DirectoryAlreadyInRegionException) Message() string {
10539	if s.Message_ != nil {
10540		return *s.Message_
10541	}
10542	return ""
10543}
10544
10545// OrigErr always returns nil, satisfies awserr.Error interface.
10546func (s *DirectoryAlreadyInRegionException) OrigErr() error {
10547	return nil
10548}
10549
10550func (s *DirectoryAlreadyInRegionException) Error() string {
10551	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10552}
10553
10554// Status code returns the HTTP status code for the request's response error.
10555func (s *DirectoryAlreadyInRegionException) StatusCode() int {
10556	return s.RespMetadata.StatusCode
10557}
10558
10559// RequestID returns the service's response RequestID for request.
10560func (s *DirectoryAlreadyInRegionException) RequestID() string {
10561	return s.RespMetadata.RequestID
10562}
10563
10564// The specified directory has already been shared with this Amazon Web Services
10565// account.
10566type DirectoryAlreadySharedException struct {
10567	_            struct{}                  `type:"structure"`
10568	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10569
10570	// The descriptive message for the exception.
10571	Message_ *string `locationName:"Message" type:"string"`
10572
10573	// The Amazon Web Services request identifier.
10574	RequestId *string `type:"string"`
10575}
10576
10577// String returns the string representation.
10578//
10579// API parameter values that are decorated as "sensitive" in the API will not
10580// be included in the string output. The member name will be present, but the
10581// value will be replaced with "sensitive".
10582func (s DirectoryAlreadySharedException) String() string {
10583	return awsutil.Prettify(s)
10584}
10585
10586// GoString returns the string representation.
10587//
10588// API parameter values that are decorated as "sensitive" in the API will not
10589// be included in the string output. The member name will be present, but the
10590// value will be replaced with "sensitive".
10591func (s DirectoryAlreadySharedException) GoString() string {
10592	return s.String()
10593}
10594
10595func newErrorDirectoryAlreadySharedException(v protocol.ResponseMetadata) error {
10596	return &DirectoryAlreadySharedException{
10597		RespMetadata: v,
10598	}
10599}
10600
10601// Code returns the exception type name.
10602func (s *DirectoryAlreadySharedException) Code() string {
10603	return "DirectoryAlreadySharedException"
10604}
10605
10606// Message returns the exception's message.
10607func (s *DirectoryAlreadySharedException) Message() string {
10608	if s.Message_ != nil {
10609		return *s.Message_
10610	}
10611	return ""
10612}
10613
10614// OrigErr always returns nil, satisfies awserr.Error interface.
10615func (s *DirectoryAlreadySharedException) OrigErr() error {
10616	return nil
10617}
10618
10619func (s *DirectoryAlreadySharedException) Error() string {
10620	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10621}
10622
10623// Status code returns the HTTP status code for the request's response error.
10624func (s *DirectoryAlreadySharedException) StatusCode() int {
10625	return s.RespMetadata.StatusCode
10626}
10627
10628// RequestID returns the service's response RequestID for request.
10629func (s *DirectoryAlreadySharedException) RequestID() string {
10630	return s.RespMetadata.RequestID
10631}
10632
10633// Contains information for the ConnectDirectory operation when an AD Connector
10634// directory is being created.
10635type DirectoryConnectSettings struct {
10636	_ struct{} `type:"structure"`
10637
10638	// A list of one or more IP addresses of DNS servers or domain controllers in
10639	// your self-managed directory.
10640	//
10641	// CustomerDnsIps is a required field
10642	CustomerDnsIps []*string `type:"list" required:"true"`
10643
10644	// The user name of an account in your self-managed directory that is used to
10645	// connect to the directory. This account must have the following permissions:
10646	//
10647	//    * Read users and groups
10648	//
10649	//    * Create computer objects
10650	//
10651	//    * Join computers to the domain
10652	//
10653	// CustomerUserName is a required field
10654	CustomerUserName *string `min:"1" type:"string" required:"true"`
10655
10656	// A list of subnet identifiers in the VPC in which the AD Connector is created.
10657	//
10658	// SubnetIds is a required field
10659	SubnetIds []*string `type:"list" required:"true"`
10660
10661	// The identifier of the VPC in which the AD Connector is created.
10662	//
10663	// VpcId is a required field
10664	VpcId *string `type:"string" required:"true"`
10665}
10666
10667// String returns the string representation.
10668//
10669// API parameter values that are decorated as "sensitive" in the API will not
10670// be included in the string output. The member name will be present, but the
10671// value will be replaced with "sensitive".
10672func (s DirectoryConnectSettings) String() string {
10673	return awsutil.Prettify(s)
10674}
10675
10676// GoString returns the string representation.
10677//
10678// API parameter values that are decorated as "sensitive" in the API will not
10679// be included in the string output. The member name will be present, but the
10680// value will be replaced with "sensitive".
10681func (s DirectoryConnectSettings) GoString() string {
10682	return s.String()
10683}
10684
10685// Validate inspects the fields of the type to determine if they are valid.
10686func (s *DirectoryConnectSettings) Validate() error {
10687	invalidParams := request.ErrInvalidParams{Context: "DirectoryConnectSettings"}
10688	if s.CustomerDnsIps == nil {
10689		invalidParams.Add(request.NewErrParamRequired("CustomerDnsIps"))
10690	}
10691	if s.CustomerUserName == nil {
10692		invalidParams.Add(request.NewErrParamRequired("CustomerUserName"))
10693	}
10694	if s.CustomerUserName != nil && len(*s.CustomerUserName) < 1 {
10695		invalidParams.Add(request.NewErrParamMinLen("CustomerUserName", 1))
10696	}
10697	if s.SubnetIds == nil {
10698		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
10699	}
10700	if s.VpcId == nil {
10701		invalidParams.Add(request.NewErrParamRequired("VpcId"))
10702	}
10703
10704	if invalidParams.Len() > 0 {
10705		return invalidParams
10706	}
10707	return nil
10708}
10709
10710// SetCustomerDnsIps sets the CustomerDnsIps field's value.
10711func (s *DirectoryConnectSettings) SetCustomerDnsIps(v []*string) *DirectoryConnectSettings {
10712	s.CustomerDnsIps = v
10713	return s
10714}
10715
10716// SetCustomerUserName sets the CustomerUserName field's value.
10717func (s *DirectoryConnectSettings) SetCustomerUserName(v string) *DirectoryConnectSettings {
10718	s.CustomerUserName = &v
10719	return s
10720}
10721
10722// SetSubnetIds sets the SubnetIds field's value.
10723func (s *DirectoryConnectSettings) SetSubnetIds(v []*string) *DirectoryConnectSettings {
10724	s.SubnetIds = v
10725	return s
10726}
10727
10728// SetVpcId sets the VpcId field's value.
10729func (s *DirectoryConnectSettings) SetVpcId(v string) *DirectoryConnectSettings {
10730	s.VpcId = &v
10731	return s
10732}
10733
10734// Contains information about an AD Connector directory.
10735type DirectoryConnectSettingsDescription struct {
10736	_ struct{} `type:"structure"`
10737
10738	// A list of the Availability Zones that the directory is in.
10739	AvailabilityZones []*string `type:"list"`
10740
10741	// The IP addresses of the AD Connector servers.
10742	ConnectIps []*string `type:"list"`
10743
10744	// The user name of the service account in your self-managed directory.
10745	CustomerUserName *string `min:"1" type:"string"`
10746
10747	// The security group identifier for the AD Connector directory.
10748	SecurityGroupId *string `type:"string"`
10749
10750	// A list of subnet identifiers in the VPC that the AD Connector is in.
10751	SubnetIds []*string `type:"list"`
10752
10753	// The identifier of the VPC that the AD Connector is in.
10754	VpcId *string `type:"string"`
10755}
10756
10757// String returns the string representation.
10758//
10759// API parameter values that are decorated as "sensitive" in the API will not
10760// be included in the string output. The member name will be present, but the
10761// value will be replaced with "sensitive".
10762func (s DirectoryConnectSettingsDescription) String() string {
10763	return awsutil.Prettify(s)
10764}
10765
10766// GoString returns the string representation.
10767//
10768// API parameter values that are decorated as "sensitive" in the API will not
10769// be included in the string output. The member name will be present, but the
10770// value will be replaced with "sensitive".
10771func (s DirectoryConnectSettingsDescription) GoString() string {
10772	return s.String()
10773}
10774
10775// SetAvailabilityZones sets the AvailabilityZones field's value.
10776func (s *DirectoryConnectSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryConnectSettingsDescription {
10777	s.AvailabilityZones = v
10778	return s
10779}
10780
10781// SetConnectIps sets the ConnectIps field's value.
10782func (s *DirectoryConnectSettingsDescription) SetConnectIps(v []*string) *DirectoryConnectSettingsDescription {
10783	s.ConnectIps = v
10784	return s
10785}
10786
10787// SetCustomerUserName sets the CustomerUserName field's value.
10788func (s *DirectoryConnectSettingsDescription) SetCustomerUserName(v string) *DirectoryConnectSettingsDescription {
10789	s.CustomerUserName = &v
10790	return s
10791}
10792
10793// SetSecurityGroupId sets the SecurityGroupId field's value.
10794func (s *DirectoryConnectSettingsDescription) SetSecurityGroupId(v string) *DirectoryConnectSettingsDescription {
10795	s.SecurityGroupId = &v
10796	return s
10797}
10798
10799// SetSubnetIds sets the SubnetIds field's value.
10800func (s *DirectoryConnectSettingsDescription) SetSubnetIds(v []*string) *DirectoryConnectSettingsDescription {
10801	s.SubnetIds = v
10802	return s
10803}
10804
10805// SetVpcId sets the VpcId field's value.
10806func (s *DirectoryConnectSettingsDescription) SetVpcId(v string) *DirectoryConnectSettingsDescription {
10807	s.VpcId = &v
10808	return s
10809}
10810
10811// Contains information about an Directory Service directory.
10812type DirectoryDescription struct {
10813	_ struct{} `type:"structure"`
10814
10815	// The access URL for the directory, such as http://<alias>.awsapps.com. If
10816	// no alias has been created for the directory, <alias> is the directory identifier,
10817	// such as d-XXXXXXXXXX.
10818	AccessUrl *string `min:"1" type:"string"`
10819
10820	// The alias for the directory. If no alias has been created for the directory,
10821	// the alias is the directory identifier, such as d-XXXXXXXXXX.
10822	Alias *string `min:"1" type:"string"`
10823
10824	// A DirectoryConnectSettingsDescription object that contains additional information
10825	// about an AD Connector directory. This member is only present if the directory
10826	// is an AD Connector directory.
10827	ConnectSettings *DirectoryConnectSettingsDescription `type:"structure"`
10828
10829	// The description for the directory.
10830	Description *string `type:"string"`
10831
10832	// The desired number of domain controllers in the directory if the directory
10833	// is Microsoft AD.
10834	DesiredNumberOfDomainControllers *int64 `min:"2" type:"integer"`
10835
10836	// The directory identifier.
10837	DirectoryId *string `type:"string"`
10838
10839	// The IP addresses of the DNS servers for the directory. For a Simple AD or
10840	// Microsoft AD directory, these are the IP addresses of the Simple AD or Microsoft
10841	// AD directory servers. For an AD Connector directory, these are the IP addresses
10842	// of the DNS servers or domain controllers in your self-managed directory to
10843	// which the AD Connector is connected.
10844	DnsIpAddrs []*string `type:"list"`
10845
10846	// The edition associated with this directory.
10847	Edition *string `type:"string" enum:"DirectoryEdition"`
10848
10849	// Specifies when the directory was created.
10850	LaunchTime *time.Time `type:"timestamp"`
10851
10852	// The fully qualified name of the directory.
10853	Name *string `type:"string"`
10854
10855	// Describes the Managed Microsoft AD directory in the directory owner account.
10856	OwnerDirectoryDescription *OwnerDirectoryDescription `type:"structure"`
10857
10858	// A RadiusSettings object that contains information about the RADIUS server
10859	// configured for this directory.
10860	RadiusSettings *RadiusSettings `type:"structure"`
10861
10862	// The status of the RADIUS MFA server connection.
10863	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
10864
10865	// Lists the Regions where the directory has replicated.
10866	RegionsInfo *RegionsInfo `type:"structure"`
10867
10868	// The method used when sharing a directory to determine whether the directory
10869	// should be shared within your Amazon Web Services organization (ORGANIZATIONS)
10870	// or with any Amazon Web Services account by sending a shared directory request
10871	// (HANDSHAKE).
10872	ShareMethod *string `type:"string" enum:"ShareMethod"`
10873
10874	// A directory share request that is sent by the directory owner to the directory
10875	// consumer. The request includes a typed message to help the directory consumer
10876	// administrator determine whether to approve or reject the share invitation.
10877	//
10878	// ShareNotes is a sensitive parameter and its value will be
10879	// replaced with "sensitive" in string returned by DirectoryDescription's
10880	// String and GoString methods.
10881	ShareNotes *string `type:"string" sensitive:"true"`
10882
10883	// Current directory status of the shared Managed Microsoft AD directory.
10884	ShareStatus *string `type:"string" enum:"ShareStatus"`
10885
10886	// The short name of the directory.
10887	ShortName *string `type:"string"`
10888
10889	// The directory size.
10890	Size *string `type:"string" enum:"DirectorySize"`
10891
10892	// Indicates if single sign-on is enabled for the directory. For more information,
10893	// see EnableSso and DisableSso.
10894	SsoEnabled *bool `type:"boolean"`
10895
10896	// The current stage of the directory.
10897	Stage *string `type:"string" enum:"DirectoryStage"`
10898
10899	// The date and time that the stage was last updated.
10900	StageLastUpdatedDateTime *time.Time `type:"timestamp"`
10901
10902	// Additional information about the directory stage.
10903	StageReason *string `type:"string"`
10904
10905	// The directory size.
10906	Type *string `type:"string" enum:"DirectoryType"`
10907
10908	// A DirectoryVpcSettingsDescription object that contains additional information
10909	// about a directory. This member is only present if the directory is a Simple
10910	// AD or Managed Microsoft AD directory.
10911	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
10912}
10913
10914// String returns the string representation.
10915//
10916// API parameter values that are decorated as "sensitive" in the API will not
10917// be included in the string output. The member name will be present, but the
10918// value will be replaced with "sensitive".
10919func (s DirectoryDescription) String() string {
10920	return awsutil.Prettify(s)
10921}
10922
10923// GoString returns the string representation.
10924//
10925// API parameter values that are decorated as "sensitive" in the API will not
10926// be included in the string output. The member name will be present, but the
10927// value will be replaced with "sensitive".
10928func (s DirectoryDescription) GoString() string {
10929	return s.String()
10930}
10931
10932// SetAccessUrl sets the AccessUrl field's value.
10933func (s *DirectoryDescription) SetAccessUrl(v string) *DirectoryDescription {
10934	s.AccessUrl = &v
10935	return s
10936}
10937
10938// SetAlias sets the Alias field's value.
10939func (s *DirectoryDescription) SetAlias(v string) *DirectoryDescription {
10940	s.Alias = &v
10941	return s
10942}
10943
10944// SetConnectSettings sets the ConnectSettings field's value.
10945func (s *DirectoryDescription) SetConnectSettings(v *DirectoryConnectSettingsDescription) *DirectoryDescription {
10946	s.ConnectSettings = v
10947	return s
10948}
10949
10950// SetDescription sets the Description field's value.
10951func (s *DirectoryDescription) SetDescription(v string) *DirectoryDescription {
10952	s.Description = &v
10953	return s
10954}
10955
10956// SetDesiredNumberOfDomainControllers sets the DesiredNumberOfDomainControllers field's value.
10957func (s *DirectoryDescription) SetDesiredNumberOfDomainControllers(v int64) *DirectoryDescription {
10958	s.DesiredNumberOfDomainControllers = &v
10959	return s
10960}
10961
10962// SetDirectoryId sets the DirectoryId field's value.
10963func (s *DirectoryDescription) SetDirectoryId(v string) *DirectoryDescription {
10964	s.DirectoryId = &v
10965	return s
10966}
10967
10968// SetDnsIpAddrs sets the DnsIpAddrs field's value.
10969func (s *DirectoryDescription) SetDnsIpAddrs(v []*string) *DirectoryDescription {
10970	s.DnsIpAddrs = v
10971	return s
10972}
10973
10974// SetEdition sets the Edition field's value.
10975func (s *DirectoryDescription) SetEdition(v string) *DirectoryDescription {
10976	s.Edition = &v
10977	return s
10978}
10979
10980// SetLaunchTime sets the LaunchTime field's value.
10981func (s *DirectoryDescription) SetLaunchTime(v time.Time) *DirectoryDescription {
10982	s.LaunchTime = &v
10983	return s
10984}
10985
10986// SetName sets the Name field's value.
10987func (s *DirectoryDescription) SetName(v string) *DirectoryDescription {
10988	s.Name = &v
10989	return s
10990}
10991
10992// SetOwnerDirectoryDescription sets the OwnerDirectoryDescription field's value.
10993func (s *DirectoryDescription) SetOwnerDirectoryDescription(v *OwnerDirectoryDescription) *DirectoryDescription {
10994	s.OwnerDirectoryDescription = v
10995	return s
10996}
10997
10998// SetRadiusSettings sets the RadiusSettings field's value.
10999func (s *DirectoryDescription) SetRadiusSettings(v *RadiusSettings) *DirectoryDescription {
11000	s.RadiusSettings = v
11001	return s
11002}
11003
11004// SetRadiusStatus sets the RadiusStatus field's value.
11005func (s *DirectoryDescription) SetRadiusStatus(v string) *DirectoryDescription {
11006	s.RadiusStatus = &v
11007	return s
11008}
11009
11010// SetRegionsInfo sets the RegionsInfo field's value.
11011func (s *DirectoryDescription) SetRegionsInfo(v *RegionsInfo) *DirectoryDescription {
11012	s.RegionsInfo = v
11013	return s
11014}
11015
11016// SetShareMethod sets the ShareMethod field's value.
11017func (s *DirectoryDescription) SetShareMethod(v string) *DirectoryDescription {
11018	s.ShareMethod = &v
11019	return s
11020}
11021
11022// SetShareNotes sets the ShareNotes field's value.
11023func (s *DirectoryDescription) SetShareNotes(v string) *DirectoryDescription {
11024	s.ShareNotes = &v
11025	return s
11026}
11027
11028// SetShareStatus sets the ShareStatus field's value.
11029func (s *DirectoryDescription) SetShareStatus(v string) *DirectoryDescription {
11030	s.ShareStatus = &v
11031	return s
11032}
11033
11034// SetShortName sets the ShortName field's value.
11035func (s *DirectoryDescription) SetShortName(v string) *DirectoryDescription {
11036	s.ShortName = &v
11037	return s
11038}
11039
11040// SetSize sets the Size field's value.
11041func (s *DirectoryDescription) SetSize(v string) *DirectoryDescription {
11042	s.Size = &v
11043	return s
11044}
11045
11046// SetSsoEnabled sets the SsoEnabled field's value.
11047func (s *DirectoryDescription) SetSsoEnabled(v bool) *DirectoryDescription {
11048	s.SsoEnabled = &v
11049	return s
11050}
11051
11052// SetStage sets the Stage field's value.
11053func (s *DirectoryDescription) SetStage(v string) *DirectoryDescription {
11054	s.Stage = &v
11055	return s
11056}
11057
11058// SetStageLastUpdatedDateTime sets the StageLastUpdatedDateTime field's value.
11059func (s *DirectoryDescription) SetStageLastUpdatedDateTime(v time.Time) *DirectoryDescription {
11060	s.StageLastUpdatedDateTime = &v
11061	return s
11062}
11063
11064// SetStageReason sets the StageReason field's value.
11065func (s *DirectoryDescription) SetStageReason(v string) *DirectoryDescription {
11066	s.StageReason = &v
11067	return s
11068}
11069
11070// SetType sets the Type field's value.
11071func (s *DirectoryDescription) SetType(v string) *DirectoryDescription {
11072	s.Type = &v
11073	return s
11074}
11075
11076// SetVpcSettings sets the VpcSettings field's value.
11077func (s *DirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *DirectoryDescription {
11078	s.VpcSettings = v
11079	return s
11080}
11081
11082// The specified directory does not exist in the system.
11083type DirectoryDoesNotExistException struct {
11084	_            struct{}                  `type:"structure"`
11085	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11086
11087	// The descriptive message for the exception.
11088	Message_ *string `locationName:"Message" type:"string"`
11089
11090	// The Amazon Web Services request identifier.
11091	RequestId *string `type:"string"`
11092}
11093
11094// String returns the string representation.
11095//
11096// API parameter values that are decorated as "sensitive" in the API will not
11097// be included in the string output. The member name will be present, but the
11098// value will be replaced with "sensitive".
11099func (s DirectoryDoesNotExistException) String() string {
11100	return awsutil.Prettify(s)
11101}
11102
11103// GoString returns the string representation.
11104//
11105// API parameter values that are decorated as "sensitive" in the API will not
11106// be included in the string output. The member name will be present, but the
11107// value will be replaced with "sensitive".
11108func (s DirectoryDoesNotExistException) GoString() string {
11109	return s.String()
11110}
11111
11112func newErrorDirectoryDoesNotExistException(v protocol.ResponseMetadata) error {
11113	return &DirectoryDoesNotExistException{
11114		RespMetadata: v,
11115	}
11116}
11117
11118// Code returns the exception type name.
11119func (s *DirectoryDoesNotExistException) Code() string {
11120	return "DirectoryDoesNotExistException"
11121}
11122
11123// Message returns the exception's message.
11124func (s *DirectoryDoesNotExistException) Message() string {
11125	if s.Message_ != nil {
11126		return *s.Message_
11127	}
11128	return ""
11129}
11130
11131// OrigErr always returns nil, satisfies awserr.Error interface.
11132func (s *DirectoryDoesNotExistException) OrigErr() error {
11133	return nil
11134}
11135
11136func (s *DirectoryDoesNotExistException) Error() string {
11137	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11138}
11139
11140// Status code returns the HTTP status code for the request's response error.
11141func (s *DirectoryDoesNotExistException) StatusCode() int {
11142	return s.RespMetadata.StatusCode
11143}
11144
11145// RequestID returns the service's response RequestID for request.
11146func (s *DirectoryDoesNotExistException) RequestID() string {
11147	return s.RespMetadata.RequestID
11148}
11149
11150// The maximum number of directories in the region has been reached. You can
11151// use the GetDirectoryLimits operation to determine your directory limits in
11152// the region.
11153type DirectoryLimitExceededException struct {
11154	_            struct{}                  `type:"structure"`
11155	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11156
11157	// The descriptive message for the exception.
11158	Message_ *string `locationName:"Message" type:"string"`
11159
11160	// The Amazon Web Services request identifier.
11161	RequestId *string `type:"string"`
11162}
11163
11164// String returns the string representation.
11165//
11166// API parameter values that are decorated as "sensitive" in the API will not
11167// be included in the string output. The member name will be present, but the
11168// value will be replaced with "sensitive".
11169func (s DirectoryLimitExceededException) String() string {
11170	return awsutil.Prettify(s)
11171}
11172
11173// GoString returns the string representation.
11174//
11175// API parameter values that are decorated as "sensitive" in the API will not
11176// be included in the string output. The member name will be present, but the
11177// value will be replaced with "sensitive".
11178func (s DirectoryLimitExceededException) GoString() string {
11179	return s.String()
11180}
11181
11182func newErrorDirectoryLimitExceededException(v protocol.ResponseMetadata) error {
11183	return &DirectoryLimitExceededException{
11184		RespMetadata: v,
11185	}
11186}
11187
11188// Code returns the exception type name.
11189func (s *DirectoryLimitExceededException) Code() string {
11190	return "DirectoryLimitExceededException"
11191}
11192
11193// Message returns the exception's message.
11194func (s *DirectoryLimitExceededException) Message() string {
11195	if s.Message_ != nil {
11196		return *s.Message_
11197	}
11198	return ""
11199}
11200
11201// OrigErr always returns nil, satisfies awserr.Error interface.
11202func (s *DirectoryLimitExceededException) OrigErr() error {
11203	return nil
11204}
11205
11206func (s *DirectoryLimitExceededException) Error() string {
11207	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11208}
11209
11210// Status code returns the HTTP status code for the request's response error.
11211func (s *DirectoryLimitExceededException) StatusCode() int {
11212	return s.RespMetadata.StatusCode
11213}
11214
11215// RequestID returns the service's response RequestID for request.
11216func (s *DirectoryLimitExceededException) RequestID() string {
11217	return s.RespMetadata.RequestID
11218}
11219
11220// Contains directory limit information for a Region.
11221type DirectoryLimits struct {
11222	_ struct{} `type:"structure"`
11223
11224	// The current number of cloud directories in the Region.
11225	CloudOnlyDirectoriesCurrentCount *int64 `type:"integer"`
11226
11227	// The maximum number of cloud directories allowed in the Region.
11228	CloudOnlyDirectoriesLimit *int64 `type:"integer"`
11229
11230	// Indicates if the cloud directory limit has been reached.
11231	CloudOnlyDirectoriesLimitReached *bool `type:"boolean"`
11232
11233	// The current number of Managed Microsoft AD directories in the region.
11234	CloudOnlyMicrosoftADCurrentCount *int64 `type:"integer"`
11235
11236	// The maximum number of Managed Microsoft AD directories allowed in the region.
11237	CloudOnlyMicrosoftADLimit *int64 `type:"integer"`
11238
11239	// Indicates if the Managed Microsoft AD directory limit has been reached.
11240	CloudOnlyMicrosoftADLimitReached *bool `type:"boolean"`
11241
11242	// The current number of connected directories in the Region.
11243	ConnectedDirectoriesCurrentCount *int64 `type:"integer"`
11244
11245	// The maximum number of connected directories allowed in the Region.
11246	ConnectedDirectoriesLimit *int64 `type:"integer"`
11247
11248	// Indicates if the connected directory limit has been reached.
11249	ConnectedDirectoriesLimitReached *bool `type:"boolean"`
11250}
11251
11252// String returns the string representation.
11253//
11254// API parameter values that are decorated as "sensitive" in the API will not
11255// be included in the string output. The member name will be present, but the
11256// value will be replaced with "sensitive".
11257func (s DirectoryLimits) String() string {
11258	return awsutil.Prettify(s)
11259}
11260
11261// GoString returns the string representation.
11262//
11263// API parameter values that are decorated as "sensitive" in the API will not
11264// be included in the string output. The member name will be present, but the
11265// value will be replaced with "sensitive".
11266func (s DirectoryLimits) GoString() string {
11267	return s.String()
11268}
11269
11270// SetCloudOnlyDirectoriesCurrentCount sets the CloudOnlyDirectoriesCurrentCount field's value.
11271func (s *DirectoryLimits) SetCloudOnlyDirectoriesCurrentCount(v int64) *DirectoryLimits {
11272	s.CloudOnlyDirectoriesCurrentCount = &v
11273	return s
11274}
11275
11276// SetCloudOnlyDirectoriesLimit sets the CloudOnlyDirectoriesLimit field's value.
11277func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimit(v int64) *DirectoryLimits {
11278	s.CloudOnlyDirectoriesLimit = &v
11279	return s
11280}
11281
11282// SetCloudOnlyDirectoriesLimitReached sets the CloudOnlyDirectoriesLimitReached field's value.
11283func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimitReached(v bool) *DirectoryLimits {
11284	s.CloudOnlyDirectoriesLimitReached = &v
11285	return s
11286}
11287
11288// SetCloudOnlyMicrosoftADCurrentCount sets the CloudOnlyMicrosoftADCurrentCount field's value.
11289func (s *DirectoryLimits) SetCloudOnlyMicrosoftADCurrentCount(v int64) *DirectoryLimits {
11290	s.CloudOnlyMicrosoftADCurrentCount = &v
11291	return s
11292}
11293
11294// SetCloudOnlyMicrosoftADLimit sets the CloudOnlyMicrosoftADLimit field's value.
11295func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimit(v int64) *DirectoryLimits {
11296	s.CloudOnlyMicrosoftADLimit = &v
11297	return s
11298}
11299
11300// SetCloudOnlyMicrosoftADLimitReached sets the CloudOnlyMicrosoftADLimitReached field's value.
11301func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimitReached(v bool) *DirectoryLimits {
11302	s.CloudOnlyMicrosoftADLimitReached = &v
11303	return s
11304}
11305
11306// SetConnectedDirectoriesCurrentCount sets the ConnectedDirectoriesCurrentCount field's value.
11307func (s *DirectoryLimits) SetConnectedDirectoriesCurrentCount(v int64) *DirectoryLimits {
11308	s.ConnectedDirectoriesCurrentCount = &v
11309	return s
11310}
11311
11312// SetConnectedDirectoriesLimit sets the ConnectedDirectoriesLimit field's value.
11313func (s *DirectoryLimits) SetConnectedDirectoriesLimit(v int64) *DirectoryLimits {
11314	s.ConnectedDirectoriesLimit = &v
11315	return s
11316}
11317
11318// SetConnectedDirectoriesLimitReached sets the ConnectedDirectoriesLimitReached field's value.
11319func (s *DirectoryLimits) SetConnectedDirectoriesLimitReached(v bool) *DirectoryLimits {
11320	s.ConnectedDirectoriesLimitReached = &v
11321	return s
11322}
11323
11324// The specified directory has not been shared with this Amazon Web Services
11325// account.
11326type DirectoryNotSharedException struct {
11327	_            struct{}                  `type:"structure"`
11328	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11329
11330	// The descriptive message for the exception.
11331	Message_ *string `locationName:"Message" type:"string"`
11332
11333	// The Amazon Web Services request identifier.
11334	RequestId *string `type:"string"`
11335}
11336
11337// String returns the string representation.
11338//
11339// API parameter values that are decorated as "sensitive" in the API will not
11340// be included in the string output. The member name will be present, but the
11341// value will be replaced with "sensitive".
11342func (s DirectoryNotSharedException) String() string {
11343	return awsutil.Prettify(s)
11344}
11345
11346// GoString returns the string representation.
11347//
11348// API parameter values that are decorated as "sensitive" in the API will not
11349// be included in the string output. The member name will be present, but the
11350// value will be replaced with "sensitive".
11351func (s DirectoryNotSharedException) GoString() string {
11352	return s.String()
11353}
11354
11355func newErrorDirectoryNotSharedException(v protocol.ResponseMetadata) error {
11356	return &DirectoryNotSharedException{
11357		RespMetadata: v,
11358	}
11359}
11360
11361// Code returns the exception type name.
11362func (s *DirectoryNotSharedException) Code() string {
11363	return "DirectoryNotSharedException"
11364}
11365
11366// Message returns the exception's message.
11367func (s *DirectoryNotSharedException) Message() string {
11368	if s.Message_ != nil {
11369		return *s.Message_
11370	}
11371	return ""
11372}
11373
11374// OrigErr always returns nil, satisfies awserr.Error interface.
11375func (s *DirectoryNotSharedException) OrigErr() error {
11376	return nil
11377}
11378
11379func (s *DirectoryNotSharedException) Error() string {
11380	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11381}
11382
11383// Status code returns the HTTP status code for the request's response error.
11384func (s *DirectoryNotSharedException) StatusCode() int {
11385	return s.RespMetadata.StatusCode
11386}
11387
11388// RequestID returns the service's response RequestID for request.
11389func (s *DirectoryNotSharedException) RequestID() string {
11390	return s.RespMetadata.RequestID
11391}
11392
11393// The specified directory is unavailable or could not be found.
11394type DirectoryUnavailableException struct {
11395	_            struct{}                  `type:"structure"`
11396	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11397
11398	// The descriptive message for the exception.
11399	Message_ *string `locationName:"Message" type:"string"`
11400
11401	// The Amazon Web Services request identifier.
11402	RequestId *string `type:"string"`
11403}
11404
11405// String returns the string representation.
11406//
11407// API parameter values that are decorated as "sensitive" in the API will not
11408// be included in the string output. The member name will be present, but the
11409// value will be replaced with "sensitive".
11410func (s DirectoryUnavailableException) String() string {
11411	return awsutil.Prettify(s)
11412}
11413
11414// GoString returns the string representation.
11415//
11416// API parameter values that are decorated as "sensitive" in the API will not
11417// be included in the string output. The member name will be present, but the
11418// value will be replaced with "sensitive".
11419func (s DirectoryUnavailableException) GoString() string {
11420	return s.String()
11421}
11422
11423func newErrorDirectoryUnavailableException(v protocol.ResponseMetadata) error {
11424	return &DirectoryUnavailableException{
11425		RespMetadata: v,
11426	}
11427}
11428
11429// Code returns the exception type name.
11430func (s *DirectoryUnavailableException) Code() string {
11431	return "DirectoryUnavailableException"
11432}
11433
11434// Message returns the exception's message.
11435func (s *DirectoryUnavailableException) Message() string {
11436	if s.Message_ != nil {
11437		return *s.Message_
11438	}
11439	return ""
11440}
11441
11442// OrigErr always returns nil, satisfies awserr.Error interface.
11443func (s *DirectoryUnavailableException) OrigErr() error {
11444	return nil
11445}
11446
11447func (s *DirectoryUnavailableException) Error() string {
11448	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11449}
11450
11451// Status code returns the HTTP status code for the request's response error.
11452func (s *DirectoryUnavailableException) StatusCode() int {
11453	return s.RespMetadata.StatusCode
11454}
11455
11456// RequestID returns the service's response RequestID for request.
11457func (s *DirectoryUnavailableException) RequestID() string {
11458	return s.RespMetadata.RequestID
11459}
11460
11461// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
11462type DirectoryVpcSettings struct {
11463	_ struct{} `type:"structure"`
11464
11465	// The identifiers of the subnets for the directory servers. The two subnets
11466	// must be in different Availability Zones. Directory Service creates a directory
11467	// server and a DNS server in each of these subnets.
11468	//
11469	// SubnetIds is a required field
11470	SubnetIds []*string `type:"list" required:"true"`
11471
11472	// The identifier of the VPC in which to create the directory.
11473	//
11474	// VpcId is a required field
11475	VpcId *string `type:"string" required:"true"`
11476}
11477
11478// String returns the string representation.
11479//
11480// API parameter values that are decorated as "sensitive" in the API will not
11481// be included in the string output. The member name will be present, but the
11482// value will be replaced with "sensitive".
11483func (s DirectoryVpcSettings) String() string {
11484	return awsutil.Prettify(s)
11485}
11486
11487// GoString returns the string representation.
11488//
11489// API parameter values that are decorated as "sensitive" in the API will not
11490// be included in the string output. The member name will be present, but the
11491// value will be replaced with "sensitive".
11492func (s DirectoryVpcSettings) GoString() string {
11493	return s.String()
11494}
11495
11496// Validate inspects the fields of the type to determine if they are valid.
11497func (s *DirectoryVpcSettings) Validate() error {
11498	invalidParams := request.ErrInvalidParams{Context: "DirectoryVpcSettings"}
11499	if s.SubnetIds == nil {
11500		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
11501	}
11502	if s.VpcId == nil {
11503		invalidParams.Add(request.NewErrParamRequired("VpcId"))
11504	}
11505
11506	if invalidParams.Len() > 0 {
11507		return invalidParams
11508	}
11509	return nil
11510}
11511
11512// SetSubnetIds sets the SubnetIds field's value.
11513func (s *DirectoryVpcSettings) SetSubnetIds(v []*string) *DirectoryVpcSettings {
11514	s.SubnetIds = v
11515	return s
11516}
11517
11518// SetVpcId sets the VpcId field's value.
11519func (s *DirectoryVpcSettings) SetVpcId(v string) *DirectoryVpcSettings {
11520	s.VpcId = &v
11521	return s
11522}
11523
11524// Contains information about the directory.
11525type DirectoryVpcSettingsDescription struct {
11526	_ struct{} `type:"structure"`
11527
11528	// The list of Availability Zones that the directory is in.
11529	AvailabilityZones []*string `type:"list"`
11530
11531	// The domain controller security group identifier for the directory.
11532	SecurityGroupId *string `type:"string"`
11533
11534	// The identifiers of the subnets for the directory servers.
11535	SubnetIds []*string `type:"list"`
11536
11537	// The identifier of the VPC that the directory is in.
11538	VpcId *string `type:"string"`
11539}
11540
11541// String returns the string representation.
11542//
11543// API parameter values that are decorated as "sensitive" in the API will not
11544// be included in the string output. The member name will be present, but the
11545// value will be replaced with "sensitive".
11546func (s DirectoryVpcSettingsDescription) String() string {
11547	return awsutil.Prettify(s)
11548}
11549
11550// GoString returns the string representation.
11551//
11552// API parameter values that are decorated as "sensitive" in the API will not
11553// be included in the string output. The member name will be present, but the
11554// value will be replaced with "sensitive".
11555func (s DirectoryVpcSettingsDescription) GoString() string {
11556	return s.String()
11557}
11558
11559// SetAvailabilityZones sets the AvailabilityZones field's value.
11560func (s *DirectoryVpcSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryVpcSettingsDescription {
11561	s.AvailabilityZones = v
11562	return s
11563}
11564
11565// SetSecurityGroupId sets the SecurityGroupId field's value.
11566func (s *DirectoryVpcSettingsDescription) SetSecurityGroupId(v string) *DirectoryVpcSettingsDescription {
11567	s.SecurityGroupId = &v
11568	return s
11569}
11570
11571// SetSubnetIds sets the SubnetIds field's value.
11572func (s *DirectoryVpcSettingsDescription) SetSubnetIds(v []*string) *DirectoryVpcSettingsDescription {
11573	s.SubnetIds = v
11574	return s
11575}
11576
11577// SetVpcId sets the VpcId field's value.
11578func (s *DirectoryVpcSettingsDescription) SetVpcId(v string) *DirectoryVpcSettingsDescription {
11579	s.VpcId = &v
11580	return s
11581}
11582
11583type DisableClientAuthenticationInput struct {
11584	_ struct{} `type:"structure"`
11585
11586	// The identifier of the directory
11587	//
11588	// DirectoryId is a required field
11589	DirectoryId *string `type:"string" required:"true"`
11590
11591	// The type of client authentication to disable. Currently, only the parameter,
11592	// SmartCard is supported.
11593	//
11594	// Type is a required field
11595	Type *string `type:"string" required:"true" enum:"ClientAuthenticationType"`
11596}
11597
11598// String returns the string representation.
11599//
11600// API parameter values that are decorated as "sensitive" in the API will not
11601// be included in the string output. The member name will be present, but the
11602// value will be replaced with "sensitive".
11603func (s DisableClientAuthenticationInput) String() string {
11604	return awsutil.Prettify(s)
11605}
11606
11607// GoString returns the string representation.
11608//
11609// API parameter values that are decorated as "sensitive" in the API will not
11610// be included in the string output. The member name will be present, but the
11611// value will be replaced with "sensitive".
11612func (s DisableClientAuthenticationInput) GoString() string {
11613	return s.String()
11614}
11615
11616// Validate inspects the fields of the type to determine if they are valid.
11617func (s *DisableClientAuthenticationInput) Validate() error {
11618	invalidParams := request.ErrInvalidParams{Context: "DisableClientAuthenticationInput"}
11619	if s.DirectoryId == nil {
11620		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11621	}
11622	if s.Type == nil {
11623		invalidParams.Add(request.NewErrParamRequired("Type"))
11624	}
11625
11626	if invalidParams.Len() > 0 {
11627		return invalidParams
11628	}
11629	return nil
11630}
11631
11632// SetDirectoryId sets the DirectoryId field's value.
11633func (s *DisableClientAuthenticationInput) SetDirectoryId(v string) *DisableClientAuthenticationInput {
11634	s.DirectoryId = &v
11635	return s
11636}
11637
11638// SetType sets the Type field's value.
11639func (s *DisableClientAuthenticationInput) SetType(v string) *DisableClientAuthenticationInput {
11640	s.Type = &v
11641	return s
11642}
11643
11644type DisableClientAuthenticationOutput struct {
11645	_ struct{} `type:"structure"`
11646}
11647
11648// String returns the string representation.
11649//
11650// API parameter values that are decorated as "sensitive" in the API will not
11651// be included in the string output. The member name will be present, but the
11652// value will be replaced with "sensitive".
11653func (s DisableClientAuthenticationOutput) String() string {
11654	return awsutil.Prettify(s)
11655}
11656
11657// GoString returns the string representation.
11658//
11659// API parameter values that are decorated as "sensitive" in the API will not
11660// be included in the string output. The member name will be present, but the
11661// value will be replaced with "sensitive".
11662func (s DisableClientAuthenticationOutput) GoString() string {
11663	return s.String()
11664}
11665
11666type DisableLDAPSInput struct {
11667	_ struct{} `type:"structure"`
11668
11669	// The identifier of the directory.
11670	//
11671	// DirectoryId is a required field
11672	DirectoryId *string `type:"string" required:"true"`
11673
11674	// The type of LDAP security to enable. Currently only the value Client is supported.
11675	//
11676	// Type is a required field
11677	Type *string `type:"string" required:"true" enum:"LDAPSType"`
11678}
11679
11680// String returns the string representation.
11681//
11682// API parameter values that are decorated as "sensitive" in the API will not
11683// be included in the string output. The member name will be present, but the
11684// value will be replaced with "sensitive".
11685func (s DisableLDAPSInput) String() string {
11686	return awsutil.Prettify(s)
11687}
11688
11689// GoString returns the string representation.
11690//
11691// API parameter values that are decorated as "sensitive" in the API will not
11692// be included in the string output. The member name will be present, but the
11693// value will be replaced with "sensitive".
11694func (s DisableLDAPSInput) GoString() string {
11695	return s.String()
11696}
11697
11698// Validate inspects the fields of the type to determine if they are valid.
11699func (s *DisableLDAPSInput) Validate() error {
11700	invalidParams := request.ErrInvalidParams{Context: "DisableLDAPSInput"}
11701	if s.DirectoryId == nil {
11702		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11703	}
11704	if s.Type == nil {
11705		invalidParams.Add(request.NewErrParamRequired("Type"))
11706	}
11707
11708	if invalidParams.Len() > 0 {
11709		return invalidParams
11710	}
11711	return nil
11712}
11713
11714// SetDirectoryId sets the DirectoryId field's value.
11715func (s *DisableLDAPSInput) SetDirectoryId(v string) *DisableLDAPSInput {
11716	s.DirectoryId = &v
11717	return s
11718}
11719
11720// SetType sets the Type field's value.
11721func (s *DisableLDAPSInput) SetType(v string) *DisableLDAPSInput {
11722	s.Type = &v
11723	return s
11724}
11725
11726type DisableLDAPSOutput struct {
11727	_ struct{} `type:"structure"`
11728}
11729
11730// String returns the string representation.
11731//
11732// API parameter values that are decorated as "sensitive" in the API will not
11733// be included in the string output. The member name will be present, but the
11734// value will be replaced with "sensitive".
11735func (s DisableLDAPSOutput) String() string {
11736	return awsutil.Prettify(s)
11737}
11738
11739// GoString returns the string representation.
11740//
11741// API parameter values that are decorated as "sensitive" in the API will not
11742// be included in the string output. The member name will be present, but the
11743// value will be replaced with "sensitive".
11744func (s DisableLDAPSOutput) GoString() string {
11745	return s.String()
11746}
11747
11748// Contains the inputs for the DisableRadius operation.
11749type DisableRadiusInput struct {
11750	_ struct{} `type:"structure"`
11751
11752	// The identifier of the directory for which to disable MFA.
11753	//
11754	// DirectoryId is a required field
11755	DirectoryId *string `type:"string" required:"true"`
11756}
11757
11758// String returns the string representation.
11759//
11760// API parameter values that are decorated as "sensitive" in the API will not
11761// be included in the string output. The member name will be present, but the
11762// value will be replaced with "sensitive".
11763func (s DisableRadiusInput) String() string {
11764	return awsutil.Prettify(s)
11765}
11766
11767// GoString returns the string representation.
11768//
11769// API parameter values that are decorated as "sensitive" in the API will not
11770// be included in the string output. The member name will be present, but the
11771// value will be replaced with "sensitive".
11772func (s DisableRadiusInput) GoString() string {
11773	return s.String()
11774}
11775
11776// Validate inspects the fields of the type to determine if they are valid.
11777func (s *DisableRadiusInput) Validate() error {
11778	invalidParams := request.ErrInvalidParams{Context: "DisableRadiusInput"}
11779	if s.DirectoryId == nil {
11780		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11781	}
11782
11783	if invalidParams.Len() > 0 {
11784		return invalidParams
11785	}
11786	return nil
11787}
11788
11789// SetDirectoryId sets the DirectoryId field's value.
11790func (s *DisableRadiusInput) SetDirectoryId(v string) *DisableRadiusInput {
11791	s.DirectoryId = &v
11792	return s
11793}
11794
11795// Contains the results of the DisableRadius operation.
11796type DisableRadiusOutput struct {
11797	_ struct{} `type:"structure"`
11798}
11799
11800// String returns the string representation.
11801//
11802// API parameter values that are decorated as "sensitive" in the API will not
11803// be included in the string output. The member name will be present, but the
11804// value will be replaced with "sensitive".
11805func (s DisableRadiusOutput) String() string {
11806	return awsutil.Prettify(s)
11807}
11808
11809// GoString returns the string representation.
11810//
11811// API parameter values that are decorated as "sensitive" in the API will not
11812// be included in the string output. The member name will be present, but the
11813// value will be replaced with "sensitive".
11814func (s DisableRadiusOutput) GoString() string {
11815	return s.String()
11816}
11817
11818// Contains the inputs for the DisableSso operation.
11819type DisableSsoInput struct {
11820	_ struct{} `type:"structure"`
11821
11822	// The identifier of the directory for which to disable single-sign on.
11823	//
11824	// DirectoryId is a required field
11825	DirectoryId *string `type:"string" required:"true"`
11826
11827	// The password of an alternate account to use to disable single-sign on. This
11828	// is only used for AD Connector directories. For more information, see the
11829	// UserName parameter.
11830	//
11831	// Password is a sensitive parameter and its value will be
11832	// replaced with "sensitive" in string returned by DisableSsoInput's
11833	// String and GoString methods.
11834	Password *string `min:"1" type:"string" sensitive:"true"`
11835
11836	// The username of an alternate account to use to disable single-sign on. This
11837	// is only used for AD Connector directories. This account must have privileges
11838	// to remove a service principal name.
11839	//
11840	// If the AD Connector service account does not have privileges to remove a
11841	// service principal name, you can specify an alternate account with the UserName
11842	// and Password parameters. These credentials are only used to disable single
11843	// sign-on and are not stored by the service. The AD Connector service account
11844	// is not changed.
11845	UserName *string `min:"1" type:"string"`
11846}
11847
11848// String returns the string representation.
11849//
11850// API parameter values that are decorated as "sensitive" in the API will not
11851// be included in the string output. The member name will be present, but the
11852// value will be replaced with "sensitive".
11853func (s DisableSsoInput) String() string {
11854	return awsutil.Prettify(s)
11855}
11856
11857// GoString returns the string representation.
11858//
11859// API parameter values that are decorated as "sensitive" in the API will not
11860// be included in the string output. The member name will be present, but the
11861// value will be replaced with "sensitive".
11862func (s DisableSsoInput) GoString() string {
11863	return s.String()
11864}
11865
11866// Validate inspects the fields of the type to determine if they are valid.
11867func (s *DisableSsoInput) Validate() error {
11868	invalidParams := request.ErrInvalidParams{Context: "DisableSsoInput"}
11869	if s.DirectoryId == nil {
11870		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11871	}
11872	if s.Password != nil && len(*s.Password) < 1 {
11873		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
11874	}
11875	if s.UserName != nil && len(*s.UserName) < 1 {
11876		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
11877	}
11878
11879	if invalidParams.Len() > 0 {
11880		return invalidParams
11881	}
11882	return nil
11883}
11884
11885// SetDirectoryId sets the DirectoryId field's value.
11886func (s *DisableSsoInput) SetDirectoryId(v string) *DisableSsoInput {
11887	s.DirectoryId = &v
11888	return s
11889}
11890
11891// SetPassword sets the Password field's value.
11892func (s *DisableSsoInput) SetPassword(v string) *DisableSsoInput {
11893	s.Password = &v
11894	return s
11895}
11896
11897// SetUserName sets the UserName field's value.
11898func (s *DisableSsoInput) SetUserName(v string) *DisableSsoInput {
11899	s.UserName = &v
11900	return s
11901}
11902
11903// Contains the results of the DisableSso operation.
11904type DisableSsoOutput struct {
11905	_ struct{} `type:"structure"`
11906}
11907
11908// String returns the string representation.
11909//
11910// API parameter values that are decorated as "sensitive" in the API will not
11911// be included in the string output. The member name will be present, but the
11912// value will be replaced with "sensitive".
11913func (s DisableSsoOutput) String() string {
11914	return awsutil.Prettify(s)
11915}
11916
11917// GoString returns the string representation.
11918//
11919// API parameter values that are decorated as "sensitive" in the API will not
11920// be included in the string output. The member name will be present, but the
11921// value will be replaced with "sensitive".
11922func (s DisableSsoOutput) GoString() string {
11923	return s.String()
11924}
11925
11926// Contains information about the domain controllers for a specified directory.
11927type DomainController struct {
11928	_ struct{} `type:"structure"`
11929
11930	// The Availability Zone where the domain controller is located.
11931	AvailabilityZone *string `type:"string"`
11932
11933	// Identifier of the directory where the domain controller resides.
11934	DirectoryId *string `type:"string"`
11935
11936	// The IP address of the domain controller.
11937	DnsIpAddr *string `type:"string"`
11938
11939	// Identifies a specific domain controller in the directory.
11940	DomainControllerId *string `type:"string"`
11941
11942	// Specifies when the domain controller was created.
11943	LaunchTime *time.Time `type:"timestamp"`
11944
11945	// The status of the domain controller.
11946	Status *string `type:"string" enum:"DomainControllerStatus"`
11947
11948	// The date and time that the status was last updated.
11949	StatusLastUpdatedDateTime *time.Time `type:"timestamp"`
11950
11951	// A description of the domain controller state.
11952	StatusReason *string `type:"string"`
11953
11954	// Identifier of the subnet in the VPC that contains the domain controller.
11955	SubnetId *string `type:"string"`
11956
11957	// The identifier of the VPC that contains the domain controller.
11958	VpcId *string `type:"string"`
11959}
11960
11961// String returns the string representation.
11962//
11963// API parameter values that are decorated as "sensitive" in the API will not
11964// be included in the string output. The member name will be present, but the
11965// value will be replaced with "sensitive".
11966func (s DomainController) String() string {
11967	return awsutil.Prettify(s)
11968}
11969
11970// GoString returns the string representation.
11971//
11972// API parameter values that are decorated as "sensitive" in the API will not
11973// be included in the string output. The member name will be present, but the
11974// value will be replaced with "sensitive".
11975func (s DomainController) GoString() string {
11976	return s.String()
11977}
11978
11979// SetAvailabilityZone sets the AvailabilityZone field's value.
11980func (s *DomainController) SetAvailabilityZone(v string) *DomainController {
11981	s.AvailabilityZone = &v
11982	return s
11983}
11984
11985// SetDirectoryId sets the DirectoryId field's value.
11986func (s *DomainController) SetDirectoryId(v string) *DomainController {
11987	s.DirectoryId = &v
11988	return s
11989}
11990
11991// SetDnsIpAddr sets the DnsIpAddr field's value.
11992func (s *DomainController) SetDnsIpAddr(v string) *DomainController {
11993	s.DnsIpAddr = &v
11994	return s
11995}
11996
11997// SetDomainControllerId sets the DomainControllerId field's value.
11998func (s *DomainController) SetDomainControllerId(v string) *DomainController {
11999	s.DomainControllerId = &v
12000	return s
12001}
12002
12003// SetLaunchTime sets the LaunchTime field's value.
12004func (s *DomainController) SetLaunchTime(v time.Time) *DomainController {
12005	s.LaunchTime = &v
12006	return s
12007}
12008
12009// SetStatus sets the Status field's value.
12010func (s *DomainController) SetStatus(v string) *DomainController {
12011	s.Status = &v
12012	return s
12013}
12014
12015// SetStatusLastUpdatedDateTime sets the StatusLastUpdatedDateTime field's value.
12016func (s *DomainController) SetStatusLastUpdatedDateTime(v time.Time) *DomainController {
12017	s.StatusLastUpdatedDateTime = &v
12018	return s
12019}
12020
12021// SetStatusReason sets the StatusReason field's value.
12022func (s *DomainController) SetStatusReason(v string) *DomainController {
12023	s.StatusReason = &v
12024	return s
12025}
12026
12027// SetSubnetId sets the SubnetId field's value.
12028func (s *DomainController) SetSubnetId(v string) *DomainController {
12029	s.SubnetId = &v
12030	return s
12031}
12032
12033// SetVpcId sets the VpcId field's value.
12034func (s *DomainController) SetVpcId(v string) *DomainController {
12035	s.VpcId = &v
12036	return s
12037}
12038
12039// The maximum allowed number of domain controllers per directory was exceeded.
12040// The default limit per directory is 20 domain controllers.
12041type DomainControllerLimitExceededException struct {
12042	_            struct{}                  `type:"structure"`
12043	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12044
12045	// The descriptive message for the exception.
12046	Message_ *string `locationName:"Message" type:"string"`
12047
12048	// The Amazon Web Services request identifier.
12049	RequestId *string `type:"string"`
12050}
12051
12052// String returns the string representation.
12053//
12054// API parameter values that are decorated as "sensitive" in the API will not
12055// be included in the string output. The member name will be present, but the
12056// value will be replaced with "sensitive".
12057func (s DomainControllerLimitExceededException) String() string {
12058	return awsutil.Prettify(s)
12059}
12060
12061// GoString returns the string representation.
12062//
12063// API parameter values that are decorated as "sensitive" in the API will not
12064// be included in the string output. The member name will be present, but the
12065// value will be replaced with "sensitive".
12066func (s DomainControllerLimitExceededException) GoString() string {
12067	return s.String()
12068}
12069
12070func newErrorDomainControllerLimitExceededException(v protocol.ResponseMetadata) error {
12071	return &DomainControllerLimitExceededException{
12072		RespMetadata: v,
12073	}
12074}
12075
12076// Code returns the exception type name.
12077func (s *DomainControllerLimitExceededException) Code() string {
12078	return "DomainControllerLimitExceededException"
12079}
12080
12081// Message returns the exception's message.
12082func (s *DomainControllerLimitExceededException) Message() string {
12083	if s.Message_ != nil {
12084		return *s.Message_
12085	}
12086	return ""
12087}
12088
12089// OrigErr always returns nil, satisfies awserr.Error interface.
12090func (s *DomainControllerLimitExceededException) OrigErr() error {
12091	return nil
12092}
12093
12094func (s *DomainControllerLimitExceededException) Error() string {
12095	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12096}
12097
12098// Status code returns the HTTP status code for the request's response error.
12099func (s *DomainControllerLimitExceededException) StatusCode() int {
12100	return s.RespMetadata.StatusCode
12101}
12102
12103// RequestID returns the service's response RequestID for request.
12104func (s *DomainControllerLimitExceededException) RequestID() string {
12105	return s.RespMetadata.RequestID
12106}
12107
12108type EnableClientAuthenticationInput struct {
12109	_ struct{} `type:"structure"`
12110
12111	// The identifier of the specified directory.
12112	//
12113	// DirectoryId is a required field
12114	DirectoryId *string `type:"string" required:"true"`
12115
12116	// The type of client authentication to enable. Currently only the value SmartCard
12117	// is supported. Smart card authentication in AD Connector requires that you
12118	// enable Kerberos Constrained Delegation for the Service User to the LDAP service
12119	// in your self-managed AD.
12120	//
12121	// Type is a required field
12122	Type *string `type:"string" required:"true" enum:"ClientAuthenticationType"`
12123}
12124
12125// String returns the string representation.
12126//
12127// API parameter values that are decorated as "sensitive" in the API will not
12128// be included in the string output. The member name will be present, but the
12129// value will be replaced with "sensitive".
12130func (s EnableClientAuthenticationInput) String() string {
12131	return awsutil.Prettify(s)
12132}
12133
12134// GoString returns the string representation.
12135//
12136// API parameter values that are decorated as "sensitive" in the API will not
12137// be included in the string output. The member name will be present, but the
12138// value will be replaced with "sensitive".
12139func (s EnableClientAuthenticationInput) GoString() string {
12140	return s.String()
12141}
12142
12143// Validate inspects the fields of the type to determine if they are valid.
12144func (s *EnableClientAuthenticationInput) Validate() error {
12145	invalidParams := request.ErrInvalidParams{Context: "EnableClientAuthenticationInput"}
12146	if s.DirectoryId == nil {
12147		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12148	}
12149	if s.Type == nil {
12150		invalidParams.Add(request.NewErrParamRequired("Type"))
12151	}
12152
12153	if invalidParams.Len() > 0 {
12154		return invalidParams
12155	}
12156	return nil
12157}
12158
12159// SetDirectoryId sets the DirectoryId field's value.
12160func (s *EnableClientAuthenticationInput) SetDirectoryId(v string) *EnableClientAuthenticationInput {
12161	s.DirectoryId = &v
12162	return s
12163}
12164
12165// SetType sets the Type field's value.
12166func (s *EnableClientAuthenticationInput) SetType(v string) *EnableClientAuthenticationInput {
12167	s.Type = &v
12168	return s
12169}
12170
12171type EnableClientAuthenticationOutput struct {
12172	_ struct{} `type:"structure"`
12173}
12174
12175// String returns the string representation.
12176//
12177// API parameter values that are decorated as "sensitive" in the API will not
12178// be included in the string output. The member name will be present, but the
12179// value will be replaced with "sensitive".
12180func (s EnableClientAuthenticationOutput) String() string {
12181	return awsutil.Prettify(s)
12182}
12183
12184// GoString returns the string representation.
12185//
12186// API parameter values that are decorated as "sensitive" in the API will not
12187// be included in the string output. The member name will be present, but the
12188// value will be replaced with "sensitive".
12189func (s EnableClientAuthenticationOutput) GoString() string {
12190	return s.String()
12191}
12192
12193type EnableLDAPSInput struct {
12194	_ struct{} `type:"structure"`
12195
12196	// The identifier of the directory.
12197	//
12198	// DirectoryId is a required field
12199	DirectoryId *string `type:"string" required:"true"`
12200
12201	// The type of LDAP security to enable. Currently only the value Client is supported.
12202	//
12203	// Type is a required field
12204	Type *string `type:"string" required:"true" enum:"LDAPSType"`
12205}
12206
12207// String returns the string representation.
12208//
12209// API parameter values that are decorated as "sensitive" in the API will not
12210// be included in the string output. The member name will be present, but the
12211// value will be replaced with "sensitive".
12212func (s EnableLDAPSInput) String() string {
12213	return awsutil.Prettify(s)
12214}
12215
12216// GoString returns the string representation.
12217//
12218// API parameter values that are decorated as "sensitive" in the API will not
12219// be included in the string output. The member name will be present, but the
12220// value will be replaced with "sensitive".
12221func (s EnableLDAPSInput) GoString() string {
12222	return s.String()
12223}
12224
12225// Validate inspects the fields of the type to determine if they are valid.
12226func (s *EnableLDAPSInput) Validate() error {
12227	invalidParams := request.ErrInvalidParams{Context: "EnableLDAPSInput"}
12228	if s.DirectoryId == nil {
12229		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12230	}
12231	if s.Type == nil {
12232		invalidParams.Add(request.NewErrParamRequired("Type"))
12233	}
12234
12235	if invalidParams.Len() > 0 {
12236		return invalidParams
12237	}
12238	return nil
12239}
12240
12241// SetDirectoryId sets the DirectoryId field's value.
12242func (s *EnableLDAPSInput) SetDirectoryId(v string) *EnableLDAPSInput {
12243	s.DirectoryId = &v
12244	return s
12245}
12246
12247// SetType sets the Type field's value.
12248func (s *EnableLDAPSInput) SetType(v string) *EnableLDAPSInput {
12249	s.Type = &v
12250	return s
12251}
12252
12253type EnableLDAPSOutput struct {
12254	_ struct{} `type:"structure"`
12255}
12256
12257// String returns the string representation.
12258//
12259// API parameter values that are decorated as "sensitive" in the API will not
12260// be included in the string output. The member name will be present, but the
12261// value will be replaced with "sensitive".
12262func (s EnableLDAPSOutput) String() string {
12263	return awsutil.Prettify(s)
12264}
12265
12266// GoString returns the string representation.
12267//
12268// API parameter values that are decorated as "sensitive" in the API will not
12269// be included in the string output. The member name will be present, but the
12270// value will be replaced with "sensitive".
12271func (s EnableLDAPSOutput) GoString() string {
12272	return s.String()
12273}
12274
12275// Contains the inputs for the EnableRadius operation.
12276type EnableRadiusInput struct {
12277	_ struct{} `type:"structure"`
12278
12279	// The identifier of the directory for which to enable MFA.
12280	//
12281	// DirectoryId is a required field
12282	DirectoryId *string `type:"string" required:"true"`
12283
12284	// A RadiusSettings object that contains information about the RADIUS server.
12285	//
12286	// RadiusSettings is a required field
12287	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
12288}
12289
12290// String returns the string representation.
12291//
12292// API parameter values that are decorated as "sensitive" in the API will not
12293// be included in the string output. The member name will be present, but the
12294// value will be replaced with "sensitive".
12295func (s EnableRadiusInput) String() string {
12296	return awsutil.Prettify(s)
12297}
12298
12299// GoString returns the string representation.
12300//
12301// API parameter values that are decorated as "sensitive" in the API will not
12302// be included in the string output. The member name will be present, but the
12303// value will be replaced with "sensitive".
12304func (s EnableRadiusInput) GoString() string {
12305	return s.String()
12306}
12307
12308// Validate inspects the fields of the type to determine if they are valid.
12309func (s *EnableRadiusInput) Validate() error {
12310	invalidParams := request.ErrInvalidParams{Context: "EnableRadiusInput"}
12311	if s.DirectoryId == nil {
12312		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12313	}
12314	if s.RadiusSettings == nil {
12315		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
12316	}
12317	if s.RadiusSettings != nil {
12318		if err := s.RadiusSettings.Validate(); err != nil {
12319			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
12320		}
12321	}
12322
12323	if invalidParams.Len() > 0 {
12324		return invalidParams
12325	}
12326	return nil
12327}
12328
12329// SetDirectoryId sets the DirectoryId field's value.
12330func (s *EnableRadiusInput) SetDirectoryId(v string) *EnableRadiusInput {
12331	s.DirectoryId = &v
12332	return s
12333}
12334
12335// SetRadiusSettings sets the RadiusSettings field's value.
12336func (s *EnableRadiusInput) SetRadiusSettings(v *RadiusSettings) *EnableRadiusInput {
12337	s.RadiusSettings = v
12338	return s
12339}
12340
12341// Contains the results of the EnableRadius operation.
12342type EnableRadiusOutput struct {
12343	_ struct{} `type:"structure"`
12344}
12345
12346// String returns the string representation.
12347//
12348// API parameter values that are decorated as "sensitive" in the API will not
12349// be included in the string output. The member name will be present, but the
12350// value will be replaced with "sensitive".
12351func (s EnableRadiusOutput) String() string {
12352	return awsutil.Prettify(s)
12353}
12354
12355// GoString returns the string representation.
12356//
12357// API parameter values that are decorated as "sensitive" in the API will not
12358// be included in the string output. The member name will be present, but the
12359// value will be replaced with "sensitive".
12360func (s EnableRadiusOutput) GoString() string {
12361	return s.String()
12362}
12363
12364// Contains the inputs for the EnableSso operation.
12365type EnableSsoInput struct {
12366	_ struct{} `type:"structure"`
12367
12368	// The identifier of the directory for which to enable single-sign on.
12369	//
12370	// DirectoryId is a required field
12371	DirectoryId *string `type:"string" required:"true"`
12372
12373	// The password of an alternate account to use to enable single-sign on. This
12374	// is only used for AD Connector directories. For more information, see the
12375	// UserName parameter.
12376	//
12377	// Password is a sensitive parameter and its value will be
12378	// replaced with "sensitive" in string returned by EnableSsoInput's
12379	// String and GoString methods.
12380	Password *string `min:"1" type:"string" sensitive:"true"`
12381
12382	// The username of an alternate account to use to enable single-sign on. This
12383	// is only used for AD Connector directories. This account must have privileges
12384	// to add a service principal name.
12385	//
12386	// If the AD Connector service account does not have privileges to add a service
12387	// principal name, you can specify an alternate account with the UserName and
12388	// Password parameters. These credentials are only used to enable single sign-on
12389	// and are not stored by the service. The AD Connector service account is not
12390	// changed.
12391	UserName *string `min:"1" type:"string"`
12392}
12393
12394// String returns the string representation.
12395//
12396// API parameter values that are decorated as "sensitive" in the API will not
12397// be included in the string output. The member name will be present, but the
12398// value will be replaced with "sensitive".
12399func (s EnableSsoInput) String() string {
12400	return awsutil.Prettify(s)
12401}
12402
12403// GoString returns the string representation.
12404//
12405// API parameter values that are decorated as "sensitive" in the API will not
12406// be included in the string output. The member name will be present, but the
12407// value will be replaced with "sensitive".
12408func (s EnableSsoInput) GoString() string {
12409	return s.String()
12410}
12411
12412// Validate inspects the fields of the type to determine if they are valid.
12413func (s *EnableSsoInput) Validate() error {
12414	invalidParams := request.ErrInvalidParams{Context: "EnableSsoInput"}
12415	if s.DirectoryId == nil {
12416		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12417	}
12418	if s.Password != nil && len(*s.Password) < 1 {
12419		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
12420	}
12421	if s.UserName != nil && len(*s.UserName) < 1 {
12422		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
12423	}
12424
12425	if invalidParams.Len() > 0 {
12426		return invalidParams
12427	}
12428	return nil
12429}
12430
12431// SetDirectoryId sets the DirectoryId field's value.
12432func (s *EnableSsoInput) SetDirectoryId(v string) *EnableSsoInput {
12433	s.DirectoryId = &v
12434	return s
12435}
12436
12437// SetPassword sets the Password field's value.
12438func (s *EnableSsoInput) SetPassword(v string) *EnableSsoInput {
12439	s.Password = &v
12440	return s
12441}
12442
12443// SetUserName sets the UserName field's value.
12444func (s *EnableSsoInput) SetUserName(v string) *EnableSsoInput {
12445	s.UserName = &v
12446	return s
12447}
12448
12449// Contains the results of the EnableSso operation.
12450type EnableSsoOutput struct {
12451	_ struct{} `type:"structure"`
12452}
12453
12454// String returns the string representation.
12455//
12456// API parameter values that are decorated as "sensitive" in the API will not
12457// be included in the string output. The member name will be present, but the
12458// value will be replaced with "sensitive".
12459func (s EnableSsoOutput) String() string {
12460	return awsutil.Prettify(s)
12461}
12462
12463// GoString returns the string representation.
12464//
12465// API parameter values that are decorated as "sensitive" in the API will not
12466// be included in the string output. The member name will be present, but the
12467// value will be replaced with "sensitive".
12468func (s EnableSsoOutput) GoString() string {
12469	return s.String()
12470}
12471
12472// The specified entity already exists.
12473type EntityAlreadyExistsException struct {
12474	_            struct{}                  `type:"structure"`
12475	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12476
12477	// The descriptive message for the exception.
12478	Message_ *string `locationName:"Message" type:"string"`
12479
12480	// The Amazon Web Services request identifier.
12481	RequestId *string `type:"string"`
12482}
12483
12484// String returns the string representation.
12485//
12486// API parameter values that are decorated as "sensitive" in the API will not
12487// be included in the string output. The member name will be present, but the
12488// value will be replaced with "sensitive".
12489func (s EntityAlreadyExistsException) String() string {
12490	return awsutil.Prettify(s)
12491}
12492
12493// GoString returns the string representation.
12494//
12495// API parameter values that are decorated as "sensitive" in the API will not
12496// be included in the string output. The member name will be present, but the
12497// value will be replaced with "sensitive".
12498func (s EntityAlreadyExistsException) GoString() string {
12499	return s.String()
12500}
12501
12502func newErrorEntityAlreadyExistsException(v protocol.ResponseMetadata) error {
12503	return &EntityAlreadyExistsException{
12504		RespMetadata: v,
12505	}
12506}
12507
12508// Code returns the exception type name.
12509func (s *EntityAlreadyExistsException) Code() string {
12510	return "EntityAlreadyExistsException"
12511}
12512
12513// Message returns the exception's message.
12514func (s *EntityAlreadyExistsException) Message() string {
12515	if s.Message_ != nil {
12516		return *s.Message_
12517	}
12518	return ""
12519}
12520
12521// OrigErr always returns nil, satisfies awserr.Error interface.
12522func (s *EntityAlreadyExistsException) OrigErr() error {
12523	return nil
12524}
12525
12526func (s *EntityAlreadyExistsException) Error() string {
12527	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12528}
12529
12530// Status code returns the HTTP status code for the request's response error.
12531func (s *EntityAlreadyExistsException) StatusCode() int {
12532	return s.RespMetadata.StatusCode
12533}
12534
12535// RequestID returns the service's response RequestID for request.
12536func (s *EntityAlreadyExistsException) RequestID() string {
12537	return s.RespMetadata.RequestID
12538}
12539
12540// The specified entity could not be found.
12541type EntityDoesNotExistException struct {
12542	_            struct{}                  `type:"structure"`
12543	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12544
12545	// The descriptive message for the exception.
12546	Message_ *string `locationName:"Message" type:"string"`
12547
12548	// The Amazon Web Services request identifier.
12549	RequestId *string `type:"string"`
12550}
12551
12552// String returns the string representation.
12553//
12554// API parameter values that are decorated as "sensitive" in the API will not
12555// be included in the string output. The member name will be present, but the
12556// value will be replaced with "sensitive".
12557func (s EntityDoesNotExistException) String() string {
12558	return awsutil.Prettify(s)
12559}
12560
12561// GoString returns the string representation.
12562//
12563// API parameter values that are decorated as "sensitive" in the API will not
12564// be included in the string output. The member name will be present, but the
12565// value will be replaced with "sensitive".
12566func (s EntityDoesNotExistException) GoString() string {
12567	return s.String()
12568}
12569
12570func newErrorEntityDoesNotExistException(v protocol.ResponseMetadata) error {
12571	return &EntityDoesNotExistException{
12572		RespMetadata: v,
12573	}
12574}
12575
12576// Code returns the exception type name.
12577func (s *EntityDoesNotExistException) Code() string {
12578	return "EntityDoesNotExistException"
12579}
12580
12581// Message returns the exception's message.
12582func (s *EntityDoesNotExistException) Message() string {
12583	if s.Message_ != nil {
12584		return *s.Message_
12585	}
12586	return ""
12587}
12588
12589// OrigErr always returns nil, satisfies awserr.Error interface.
12590func (s *EntityDoesNotExistException) OrigErr() error {
12591	return nil
12592}
12593
12594func (s *EntityDoesNotExistException) Error() string {
12595	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12596}
12597
12598// Status code returns the HTTP status code for the request's response error.
12599func (s *EntityDoesNotExistException) StatusCode() int {
12600	return s.RespMetadata.StatusCode
12601}
12602
12603// RequestID returns the service's response RequestID for request.
12604func (s *EntityDoesNotExistException) RequestID() string {
12605	return s.RespMetadata.RequestID
12606}
12607
12608// Information about Amazon SNS topic and Directory Service directory associations.
12609type EventTopic struct {
12610	_ struct{} `type:"structure"`
12611
12612	// The date and time of when you associated your directory with the Amazon SNS
12613	// topic.
12614	CreatedDateTime *time.Time `type:"timestamp"`
12615
12616	// The Directory ID of an Directory Service directory that will publish status
12617	// messages to an Amazon SNS topic.
12618	DirectoryId *string `type:"string"`
12619
12620	// The topic registration status.
12621	Status *string `type:"string" enum:"TopicStatus"`
12622
12623	// The Amazon SNS topic ARN (Amazon Resource Name).
12624	TopicArn *string `type:"string"`
12625
12626	// The name of an Amazon SNS topic the receives status messages from the directory.
12627	TopicName *string `min:"1" type:"string"`
12628}
12629
12630// String returns the string representation.
12631//
12632// API parameter values that are decorated as "sensitive" in the API will not
12633// be included in the string output. The member name will be present, but the
12634// value will be replaced with "sensitive".
12635func (s EventTopic) String() string {
12636	return awsutil.Prettify(s)
12637}
12638
12639// GoString returns the string representation.
12640//
12641// API parameter values that are decorated as "sensitive" in the API will not
12642// be included in the string output. The member name will be present, but the
12643// value will be replaced with "sensitive".
12644func (s EventTopic) GoString() string {
12645	return s.String()
12646}
12647
12648// SetCreatedDateTime sets the CreatedDateTime field's value.
12649func (s *EventTopic) SetCreatedDateTime(v time.Time) *EventTopic {
12650	s.CreatedDateTime = &v
12651	return s
12652}
12653
12654// SetDirectoryId sets the DirectoryId field's value.
12655func (s *EventTopic) SetDirectoryId(v string) *EventTopic {
12656	s.DirectoryId = &v
12657	return s
12658}
12659
12660// SetStatus sets the Status field's value.
12661func (s *EventTopic) SetStatus(v string) *EventTopic {
12662	s.Status = &v
12663	return s
12664}
12665
12666// SetTopicArn sets the TopicArn field's value.
12667func (s *EventTopic) SetTopicArn(v string) *EventTopic {
12668	s.TopicArn = &v
12669	return s
12670}
12671
12672// SetTopicName sets the TopicName field's value.
12673func (s *EventTopic) SetTopicName(v string) *EventTopic {
12674	s.TopicName = &v
12675	return s
12676}
12677
12678// Contains the inputs for the GetDirectoryLimits operation.
12679type GetDirectoryLimitsInput struct {
12680	_ struct{} `type:"structure"`
12681}
12682
12683// String returns the string representation.
12684//
12685// API parameter values that are decorated as "sensitive" in the API will not
12686// be included in the string output. The member name will be present, but the
12687// value will be replaced with "sensitive".
12688func (s GetDirectoryLimitsInput) String() string {
12689	return awsutil.Prettify(s)
12690}
12691
12692// GoString returns the string representation.
12693//
12694// API parameter values that are decorated as "sensitive" in the API will not
12695// be included in the string output. The member name will be present, but the
12696// value will be replaced with "sensitive".
12697func (s GetDirectoryLimitsInput) GoString() string {
12698	return s.String()
12699}
12700
12701// Contains the results of the GetDirectoryLimits operation.
12702type GetDirectoryLimitsOutput struct {
12703	_ struct{} `type:"structure"`
12704
12705	// A DirectoryLimits object that contains the directory limits for the current
12706	// Region.
12707	DirectoryLimits *DirectoryLimits `type:"structure"`
12708}
12709
12710// String returns the string representation.
12711//
12712// API parameter values that are decorated as "sensitive" in the API will not
12713// be included in the string output. The member name will be present, but the
12714// value will be replaced with "sensitive".
12715func (s GetDirectoryLimitsOutput) String() string {
12716	return awsutil.Prettify(s)
12717}
12718
12719// GoString returns the string representation.
12720//
12721// API parameter values that are decorated as "sensitive" in the API will not
12722// be included in the string output. The member name will be present, but the
12723// value will be replaced with "sensitive".
12724func (s GetDirectoryLimitsOutput) GoString() string {
12725	return s.String()
12726}
12727
12728// SetDirectoryLimits sets the DirectoryLimits field's value.
12729func (s *GetDirectoryLimitsOutput) SetDirectoryLimits(v *DirectoryLimits) *GetDirectoryLimitsOutput {
12730	s.DirectoryLimits = v
12731	return s
12732}
12733
12734// Contains the inputs for the GetSnapshotLimits operation.
12735type GetSnapshotLimitsInput struct {
12736	_ struct{} `type:"structure"`
12737
12738	// Contains the identifier of the directory to obtain the limits for.
12739	//
12740	// DirectoryId is a required field
12741	DirectoryId *string `type:"string" required:"true"`
12742}
12743
12744// String returns the string representation.
12745//
12746// API parameter values that are decorated as "sensitive" in the API will not
12747// be included in the string output. The member name will be present, but the
12748// value will be replaced with "sensitive".
12749func (s GetSnapshotLimitsInput) String() string {
12750	return awsutil.Prettify(s)
12751}
12752
12753// GoString returns the string representation.
12754//
12755// API parameter values that are decorated as "sensitive" in the API will not
12756// be included in the string output. The member name will be present, but the
12757// value will be replaced with "sensitive".
12758func (s GetSnapshotLimitsInput) GoString() string {
12759	return s.String()
12760}
12761
12762// Validate inspects the fields of the type to determine if they are valid.
12763func (s *GetSnapshotLimitsInput) Validate() error {
12764	invalidParams := request.ErrInvalidParams{Context: "GetSnapshotLimitsInput"}
12765	if s.DirectoryId == nil {
12766		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12767	}
12768
12769	if invalidParams.Len() > 0 {
12770		return invalidParams
12771	}
12772	return nil
12773}
12774
12775// SetDirectoryId sets the DirectoryId field's value.
12776func (s *GetSnapshotLimitsInput) SetDirectoryId(v string) *GetSnapshotLimitsInput {
12777	s.DirectoryId = &v
12778	return s
12779}
12780
12781// Contains the results of the GetSnapshotLimits operation.
12782type GetSnapshotLimitsOutput struct {
12783	_ struct{} `type:"structure"`
12784
12785	// A SnapshotLimits object that contains the manual snapshot limits for the
12786	// specified directory.
12787	SnapshotLimits *SnapshotLimits `type:"structure"`
12788}
12789
12790// String returns the string representation.
12791//
12792// API parameter values that are decorated as "sensitive" in the API will not
12793// be included in the string output. The member name will be present, but the
12794// value will be replaced with "sensitive".
12795func (s GetSnapshotLimitsOutput) String() string {
12796	return awsutil.Prettify(s)
12797}
12798
12799// GoString returns the string representation.
12800//
12801// API parameter values that are decorated as "sensitive" in the API will not
12802// be included in the string output. The member name will be present, but the
12803// value will be replaced with "sensitive".
12804func (s GetSnapshotLimitsOutput) GoString() string {
12805	return s.String()
12806}
12807
12808// SetSnapshotLimits sets the SnapshotLimits field's value.
12809func (s *GetSnapshotLimitsOutput) SetSnapshotLimits(v *SnapshotLimits) *GetSnapshotLimitsOutput {
12810	s.SnapshotLimits = v
12811	return s
12812}
12813
12814// The account does not have sufficient permission to perform the operation.
12815type InsufficientPermissionsException struct {
12816	_            struct{}                  `type:"structure"`
12817	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12818
12819	// The descriptive message for the exception.
12820	Message_ *string `locationName:"Message" type:"string"`
12821
12822	// The Amazon Web Services request identifier.
12823	RequestId *string `type:"string"`
12824}
12825
12826// String returns the string representation.
12827//
12828// API parameter values that are decorated as "sensitive" in the API will not
12829// be included in the string output. The member name will be present, but the
12830// value will be replaced with "sensitive".
12831func (s InsufficientPermissionsException) String() string {
12832	return awsutil.Prettify(s)
12833}
12834
12835// GoString returns the string representation.
12836//
12837// API parameter values that are decorated as "sensitive" in the API will not
12838// be included in the string output. The member name will be present, but the
12839// value will be replaced with "sensitive".
12840func (s InsufficientPermissionsException) GoString() string {
12841	return s.String()
12842}
12843
12844func newErrorInsufficientPermissionsException(v protocol.ResponseMetadata) error {
12845	return &InsufficientPermissionsException{
12846		RespMetadata: v,
12847	}
12848}
12849
12850// Code returns the exception type name.
12851func (s *InsufficientPermissionsException) Code() string {
12852	return "InsufficientPermissionsException"
12853}
12854
12855// Message returns the exception's message.
12856func (s *InsufficientPermissionsException) Message() string {
12857	if s.Message_ != nil {
12858		return *s.Message_
12859	}
12860	return ""
12861}
12862
12863// OrigErr always returns nil, satisfies awserr.Error interface.
12864func (s *InsufficientPermissionsException) OrigErr() error {
12865	return nil
12866}
12867
12868func (s *InsufficientPermissionsException) Error() string {
12869	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12870}
12871
12872// Status code returns the HTTP status code for the request's response error.
12873func (s *InsufficientPermissionsException) StatusCode() int {
12874	return s.RespMetadata.StatusCode
12875}
12876
12877// RequestID returns the service's response RequestID for request.
12878func (s *InsufficientPermissionsException) RequestID() string {
12879	return s.RespMetadata.RequestID
12880}
12881
12882// The certificate PEM that was provided has incorrect encoding.
12883type InvalidCertificateException struct {
12884	_            struct{}                  `type:"structure"`
12885	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12886
12887	// The descriptive message for the exception.
12888	Message_ *string `locationName:"Message" type:"string"`
12889
12890	// The Amazon Web Services request identifier.
12891	RequestId *string `type:"string"`
12892}
12893
12894// String returns the string representation.
12895//
12896// API parameter values that are decorated as "sensitive" in the API will not
12897// be included in the string output. The member name will be present, but the
12898// value will be replaced with "sensitive".
12899func (s InvalidCertificateException) String() string {
12900	return awsutil.Prettify(s)
12901}
12902
12903// GoString returns the string representation.
12904//
12905// API parameter values that are decorated as "sensitive" in the API will not
12906// be included in the string output. The member name will be present, but the
12907// value will be replaced with "sensitive".
12908func (s InvalidCertificateException) GoString() string {
12909	return s.String()
12910}
12911
12912func newErrorInvalidCertificateException(v protocol.ResponseMetadata) error {
12913	return &InvalidCertificateException{
12914		RespMetadata: v,
12915	}
12916}
12917
12918// Code returns the exception type name.
12919func (s *InvalidCertificateException) Code() string {
12920	return "InvalidCertificateException"
12921}
12922
12923// Message returns the exception's message.
12924func (s *InvalidCertificateException) Message() string {
12925	if s.Message_ != nil {
12926		return *s.Message_
12927	}
12928	return ""
12929}
12930
12931// OrigErr always returns nil, satisfies awserr.Error interface.
12932func (s *InvalidCertificateException) OrigErr() error {
12933	return nil
12934}
12935
12936func (s *InvalidCertificateException) Error() string {
12937	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12938}
12939
12940// Status code returns the HTTP status code for the request's response error.
12941func (s *InvalidCertificateException) StatusCode() int {
12942	return s.RespMetadata.StatusCode
12943}
12944
12945// RequestID returns the service's response RequestID for request.
12946func (s *InvalidCertificateException) RequestID() string {
12947	return s.RespMetadata.RequestID
12948}
12949
12950// Client authentication is already enabled.
12951type InvalidClientAuthStatusException struct {
12952	_            struct{}                  `type:"structure"`
12953	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12954
12955	// The descriptive message for the exception.
12956	Message_ *string `locationName:"Message" type:"string"`
12957
12958	// The Amazon Web Services request identifier.
12959	RequestId *string `type:"string"`
12960}
12961
12962// String returns the string representation.
12963//
12964// API parameter values that are decorated as "sensitive" in the API will not
12965// be included in the string output. The member name will be present, but the
12966// value will be replaced with "sensitive".
12967func (s InvalidClientAuthStatusException) String() string {
12968	return awsutil.Prettify(s)
12969}
12970
12971// GoString returns the string representation.
12972//
12973// API parameter values that are decorated as "sensitive" in the API will not
12974// be included in the string output. The member name will be present, but the
12975// value will be replaced with "sensitive".
12976func (s InvalidClientAuthStatusException) GoString() string {
12977	return s.String()
12978}
12979
12980func newErrorInvalidClientAuthStatusException(v protocol.ResponseMetadata) error {
12981	return &InvalidClientAuthStatusException{
12982		RespMetadata: v,
12983	}
12984}
12985
12986// Code returns the exception type name.
12987func (s *InvalidClientAuthStatusException) Code() string {
12988	return "InvalidClientAuthStatusException"
12989}
12990
12991// Message returns the exception's message.
12992func (s *InvalidClientAuthStatusException) Message() string {
12993	if s.Message_ != nil {
12994		return *s.Message_
12995	}
12996	return ""
12997}
12998
12999// OrigErr always returns nil, satisfies awserr.Error interface.
13000func (s *InvalidClientAuthStatusException) OrigErr() error {
13001	return nil
13002}
13003
13004func (s *InvalidClientAuthStatusException) Error() string {
13005	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13006}
13007
13008// Status code returns the HTTP status code for the request's response error.
13009func (s *InvalidClientAuthStatusException) StatusCode() int {
13010	return s.RespMetadata.StatusCode
13011}
13012
13013// RequestID returns the service's response RequestID for request.
13014func (s *InvalidClientAuthStatusException) RequestID() string {
13015	return s.RespMetadata.RequestID
13016}
13017
13018// The LDAP activities could not be performed because they are limited by the
13019// LDAPS status.
13020type InvalidLDAPSStatusException struct {
13021	_            struct{}                  `type:"structure"`
13022	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13023
13024	// The descriptive message for the exception.
13025	Message_ *string `locationName:"Message" type:"string"`
13026
13027	// The Amazon Web Services request identifier.
13028	RequestId *string `type:"string"`
13029}
13030
13031// String returns the string representation.
13032//
13033// API parameter values that are decorated as "sensitive" in the API will not
13034// be included in the string output. The member name will be present, but the
13035// value will be replaced with "sensitive".
13036func (s InvalidLDAPSStatusException) String() string {
13037	return awsutil.Prettify(s)
13038}
13039
13040// GoString returns the string representation.
13041//
13042// API parameter values that are decorated as "sensitive" in the API will not
13043// be included in the string output. The member name will be present, but the
13044// value will be replaced with "sensitive".
13045func (s InvalidLDAPSStatusException) GoString() string {
13046	return s.String()
13047}
13048
13049func newErrorInvalidLDAPSStatusException(v protocol.ResponseMetadata) error {
13050	return &InvalidLDAPSStatusException{
13051		RespMetadata: v,
13052	}
13053}
13054
13055// Code returns the exception type name.
13056func (s *InvalidLDAPSStatusException) Code() string {
13057	return "InvalidLDAPSStatusException"
13058}
13059
13060// Message returns the exception's message.
13061func (s *InvalidLDAPSStatusException) Message() string {
13062	if s.Message_ != nil {
13063		return *s.Message_
13064	}
13065	return ""
13066}
13067
13068// OrigErr always returns nil, satisfies awserr.Error interface.
13069func (s *InvalidLDAPSStatusException) OrigErr() error {
13070	return nil
13071}
13072
13073func (s *InvalidLDAPSStatusException) Error() string {
13074	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13075}
13076
13077// Status code returns the HTTP status code for the request's response error.
13078func (s *InvalidLDAPSStatusException) StatusCode() int {
13079	return s.RespMetadata.StatusCode
13080}
13081
13082// RequestID returns the service's response RequestID for request.
13083func (s *InvalidLDAPSStatusException) RequestID() string {
13084	return s.RespMetadata.RequestID
13085}
13086
13087// The NextToken value is not valid.
13088type InvalidNextTokenException struct {
13089	_            struct{}                  `type:"structure"`
13090	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13091
13092	// The descriptive message for the exception.
13093	Message_ *string `locationName:"Message" type:"string"`
13094
13095	// The Amazon Web Services request identifier.
13096	RequestId *string `type:"string"`
13097}
13098
13099// String returns the string representation.
13100//
13101// API parameter values that are decorated as "sensitive" in the API will not
13102// be included in the string output. The member name will be present, but the
13103// value will be replaced with "sensitive".
13104func (s InvalidNextTokenException) String() string {
13105	return awsutil.Prettify(s)
13106}
13107
13108// GoString returns the string representation.
13109//
13110// API parameter values that are decorated as "sensitive" in the API will not
13111// be included in the string output. The member name will be present, but the
13112// value will be replaced with "sensitive".
13113func (s InvalidNextTokenException) GoString() string {
13114	return s.String()
13115}
13116
13117func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
13118	return &InvalidNextTokenException{
13119		RespMetadata: v,
13120	}
13121}
13122
13123// Code returns the exception type name.
13124func (s *InvalidNextTokenException) Code() string {
13125	return "InvalidNextTokenException"
13126}
13127
13128// Message returns the exception's message.
13129func (s *InvalidNextTokenException) Message() string {
13130	if s.Message_ != nil {
13131		return *s.Message_
13132	}
13133	return ""
13134}
13135
13136// OrigErr always returns nil, satisfies awserr.Error interface.
13137func (s *InvalidNextTokenException) OrigErr() error {
13138	return nil
13139}
13140
13141func (s *InvalidNextTokenException) Error() string {
13142	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13143}
13144
13145// Status code returns the HTTP status code for the request's response error.
13146func (s *InvalidNextTokenException) StatusCode() int {
13147	return s.RespMetadata.StatusCode
13148}
13149
13150// RequestID returns the service's response RequestID for request.
13151func (s *InvalidNextTokenException) RequestID() string {
13152	return s.RespMetadata.RequestID
13153}
13154
13155// One or more parameters are not valid.
13156type InvalidParameterException struct {
13157	_            struct{}                  `type:"structure"`
13158	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13159
13160	// The descriptive message for the exception.
13161	Message_ *string `locationName:"Message" type:"string"`
13162
13163	// The Amazon Web Services request identifier.
13164	RequestId *string `type:"string"`
13165}
13166
13167// String returns the string representation.
13168//
13169// API parameter values that are decorated as "sensitive" in the API will not
13170// be included in the string output. The member name will be present, but the
13171// value will be replaced with "sensitive".
13172func (s InvalidParameterException) String() string {
13173	return awsutil.Prettify(s)
13174}
13175
13176// GoString returns the string representation.
13177//
13178// API parameter values that are decorated as "sensitive" in the API will not
13179// be included in the string output. The member name will be present, but the
13180// value will be replaced with "sensitive".
13181func (s InvalidParameterException) GoString() string {
13182	return s.String()
13183}
13184
13185func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
13186	return &InvalidParameterException{
13187		RespMetadata: v,
13188	}
13189}
13190
13191// Code returns the exception type name.
13192func (s *InvalidParameterException) Code() string {
13193	return "InvalidParameterException"
13194}
13195
13196// Message returns the exception's message.
13197func (s *InvalidParameterException) Message() string {
13198	if s.Message_ != nil {
13199		return *s.Message_
13200	}
13201	return ""
13202}
13203
13204// OrigErr always returns nil, satisfies awserr.Error interface.
13205func (s *InvalidParameterException) OrigErr() error {
13206	return nil
13207}
13208
13209func (s *InvalidParameterException) Error() string {
13210	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13211}
13212
13213// Status code returns the HTTP status code for the request's response error.
13214func (s *InvalidParameterException) StatusCode() int {
13215	return s.RespMetadata.StatusCode
13216}
13217
13218// RequestID returns the service's response RequestID for request.
13219func (s *InvalidParameterException) RequestID() string {
13220	return s.RespMetadata.RequestID
13221}
13222
13223// The new password provided by the user does not meet the password complexity
13224// requirements defined in your directory.
13225type InvalidPasswordException struct {
13226	_            struct{}                  `type:"structure"`
13227	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13228
13229	// The descriptive message for the exception.
13230	Message_ *string `locationName:"Message" type:"string"`
13231
13232	// The Amazon Web Services request identifier.
13233	RequestId *string `type:"string"`
13234}
13235
13236// String returns the string representation.
13237//
13238// API parameter values that are decorated as "sensitive" in the API will not
13239// be included in the string output. The member name will be present, but the
13240// value will be replaced with "sensitive".
13241func (s InvalidPasswordException) String() string {
13242	return awsutil.Prettify(s)
13243}
13244
13245// GoString returns the string representation.
13246//
13247// API parameter values that are decorated as "sensitive" in the API will not
13248// be included in the string output. The member name will be present, but the
13249// value will be replaced with "sensitive".
13250func (s InvalidPasswordException) GoString() string {
13251	return s.String()
13252}
13253
13254func newErrorInvalidPasswordException(v protocol.ResponseMetadata) error {
13255	return &InvalidPasswordException{
13256		RespMetadata: v,
13257	}
13258}
13259
13260// Code returns the exception type name.
13261func (s *InvalidPasswordException) Code() string {
13262	return "InvalidPasswordException"
13263}
13264
13265// Message returns the exception's message.
13266func (s *InvalidPasswordException) Message() string {
13267	if s.Message_ != nil {
13268		return *s.Message_
13269	}
13270	return ""
13271}
13272
13273// OrigErr always returns nil, satisfies awserr.Error interface.
13274func (s *InvalidPasswordException) OrigErr() error {
13275	return nil
13276}
13277
13278func (s *InvalidPasswordException) Error() string {
13279	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13280}
13281
13282// Status code returns the HTTP status code for the request's response error.
13283func (s *InvalidPasswordException) StatusCode() int {
13284	return s.RespMetadata.StatusCode
13285}
13286
13287// RequestID returns the service's response RequestID for request.
13288func (s *InvalidPasswordException) RequestID() string {
13289	return s.RespMetadata.RequestID
13290}
13291
13292// The specified shared target is not valid.
13293type InvalidTargetException struct {
13294	_            struct{}                  `type:"structure"`
13295	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13296
13297	// The descriptive message for the exception.
13298	Message_ *string `locationName:"Message" type:"string"`
13299
13300	// The Amazon Web Services request identifier.
13301	RequestId *string `type:"string"`
13302}
13303
13304// String returns the string representation.
13305//
13306// API parameter values that are decorated as "sensitive" in the API will not
13307// be included in the string output. The member name will be present, but the
13308// value will be replaced with "sensitive".
13309func (s InvalidTargetException) String() string {
13310	return awsutil.Prettify(s)
13311}
13312
13313// GoString returns the string representation.
13314//
13315// API parameter values that are decorated as "sensitive" in the API will not
13316// be included in the string output. The member name will be present, but the
13317// value will be replaced with "sensitive".
13318func (s InvalidTargetException) GoString() string {
13319	return s.String()
13320}
13321
13322func newErrorInvalidTargetException(v protocol.ResponseMetadata) error {
13323	return &InvalidTargetException{
13324		RespMetadata: v,
13325	}
13326}
13327
13328// Code returns the exception type name.
13329func (s *InvalidTargetException) Code() string {
13330	return "InvalidTargetException"
13331}
13332
13333// Message returns the exception's message.
13334func (s *InvalidTargetException) Message() string {
13335	if s.Message_ != nil {
13336		return *s.Message_
13337	}
13338	return ""
13339}
13340
13341// OrigErr always returns nil, satisfies awserr.Error interface.
13342func (s *InvalidTargetException) OrigErr() error {
13343	return nil
13344}
13345
13346func (s *InvalidTargetException) Error() string {
13347	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13348}
13349
13350// Status code returns the HTTP status code for the request's response error.
13351func (s *InvalidTargetException) StatusCode() int {
13352	return s.RespMetadata.StatusCode
13353}
13354
13355// RequestID returns the service's response RequestID for request.
13356func (s *InvalidTargetException) RequestID() string {
13357	return s.RespMetadata.RequestID
13358}
13359
13360// IP address block. This is often the address block of the DNS server used
13361// for your self-managed domain.
13362type IpRoute struct {
13363	_ struct{} `type:"structure"`
13364
13365	// IP address block using CIDR format, for example 10.0.0.0/24. This is often
13366	// the address block of the DNS server used for your self-managed domain. For
13367	// a single IP address use a CIDR address block with /32. For example 10.0.0.0/32.
13368	CidrIp *string `type:"string"`
13369
13370	// Description of the address block.
13371	Description *string `type:"string"`
13372}
13373
13374// String returns the string representation.
13375//
13376// API parameter values that are decorated as "sensitive" in the API will not
13377// be included in the string output. The member name will be present, but the
13378// value will be replaced with "sensitive".
13379func (s IpRoute) String() string {
13380	return awsutil.Prettify(s)
13381}
13382
13383// GoString returns the string representation.
13384//
13385// API parameter values that are decorated as "sensitive" in the API will not
13386// be included in the string output. The member name will be present, but the
13387// value will be replaced with "sensitive".
13388func (s IpRoute) GoString() string {
13389	return s.String()
13390}
13391
13392// SetCidrIp sets the CidrIp field's value.
13393func (s *IpRoute) SetCidrIp(v string) *IpRoute {
13394	s.CidrIp = &v
13395	return s
13396}
13397
13398// SetDescription sets the Description field's value.
13399func (s *IpRoute) SetDescription(v string) *IpRoute {
13400	s.Description = &v
13401	return s
13402}
13403
13404// Information about one or more IP address blocks.
13405type IpRouteInfo struct {
13406	_ struct{} `type:"structure"`
13407
13408	// The date and time the address block was added to the directory.
13409	AddedDateTime *time.Time `type:"timestamp"`
13410
13411	// IP address block in the IpRoute.
13412	CidrIp *string `type:"string"`
13413
13414	// Description of the IpRouteInfo.
13415	Description *string `type:"string"`
13416
13417	// Identifier (ID) of the directory associated with the IP addresses.
13418	DirectoryId *string `type:"string"`
13419
13420	// The status of the IP address block.
13421	IpRouteStatusMsg *string `type:"string" enum:"IpRouteStatusMsg"`
13422
13423	// The reason for the IpRouteStatusMsg.
13424	IpRouteStatusReason *string `type:"string"`
13425}
13426
13427// String returns the string representation.
13428//
13429// API parameter values that are decorated as "sensitive" in the API will not
13430// be included in the string output. The member name will be present, but the
13431// value will be replaced with "sensitive".
13432func (s IpRouteInfo) String() string {
13433	return awsutil.Prettify(s)
13434}
13435
13436// GoString returns the string representation.
13437//
13438// API parameter values that are decorated as "sensitive" in the API will not
13439// be included in the string output. The member name will be present, but the
13440// value will be replaced with "sensitive".
13441func (s IpRouteInfo) GoString() string {
13442	return s.String()
13443}
13444
13445// SetAddedDateTime sets the AddedDateTime field's value.
13446func (s *IpRouteInfo) SetAddedDateTime(v time.Time) *IpRouteInfo {
13447	s.AddedDateTime = &v
13448	return s
13449}
13450
13451// SetCidrIp sets the CidrIp field's value.
13452func (s *IpRouteInfo) SetCidrIp(v string) *IpRouteInfo {
13453	s.CidrIp = &v
13454	return s
13455}
13456
13457// SetDescription sets the Description field's value.
13458func (s *IpRouteInfo) SetDescription(v string) *IpRouteInfo {
13459	s.Description = &v
13460	return s
13461}
13462
13463// SetDirectoryId sets the DirectoryId field's value.
13464func (s *IpRouteInfo) SetDirectoryId(v string) *IpRouteInfo {
13465	s.DirectoryId = &v
13466	return s
13467}
13468
13469// SetIpRouteStatusMsg sets the IpRouteStatusMsg field's value.
13470func (s *IpRouteInfo) SetIpRouteStatusMsg(v string) *IpRouteInfo {
13471	s.IpRouteStatusMsg = &v
13472	return s
13473}
13474
13475// SetIpRouteStatusReason sets the IpRouteStatusReason field's value.
13476func (s *IpRouteInfo) SetIpRouteStatusReason(v string) *IpRouteInfo {
13477	s.IpRouteStatusReason = &v
13478	return s
13479}
13480
13481// The maximum allowed number of IP addresses was exceeded. The default limit
13482// is 100 IP address blocks.
13483type IpRouteLimitExceededException struct {
13484	_            struct{}                  `type:"structure"`
13485	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13486
13487	// The descriptive message for the exception.
13488	Message_ *string `locationName:"Message" type:"string"`
13489
13490	// The Amazon Web Services request identifier.
13491	RequestId *string `type:"string"`
13492}
13493
13494// String returns the string representation.
13495//
13496// API parameter values that are decorated as "sensitive" in the API will not
13497// be included in the string output. The member name will be present, but the
13498// value will be replaced with "sensitive".
13499func (s IpRouteLimitExceededException) String() string {
13500	return awsutil.Prettify(s)
13501}
13502
13503// GoString returns the string representation.
13504//
13505// API parameter values that are decorated as "sensitive" in the API will not
13506// be included in the string output. The member name will be present, but the
13507// value will be replaced with "sensitive".
13508func (s IpRouteLimitExceededException) GoString() string {
13509	return s.String()
13510}
13511
13512func newErrorIpRouteLimitExceededException(v protocol.ResponseMetadata) error {
13513	return &IpRouteLimitExceededException{
13514		RespMetadata: v,
13515	}
13516}
13517
13518// Code returns the exception type name.
13519func (s *IpRouteLimitExceededException) Code() string {
13520	return "IpRouteLimitExceededException"
13521}
13522
13523// Message returns the exception's message.
13524func (s *IpRouteLimitExceededException) Message() string {
13525	if s.Message_ != nil {
13526		return *s.Message_
13527	}
13528	return ""
13529}
13530
13531// OrigErr always returns nil, satisfies awserr.Error interface.
13532func (s *IpRouteLimitExceededException) OrigErr() error {
13533	return nil
13534}
13535
13536func (s *IpRouteLimitExceededException) Error() string {
13537	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13538}
13539
13540// Status code returns the HTTP status code for the request's response error.
13541func (s *IpRouteLimitExceededException) StatusCode() int {
13542	return s.RespMetadata.StatusCode
13543}
13544
13545// RequestID returns the service's response RequestID for request.
13546func (s *IpRouteLimitExceededException) RequestID() string {
13547	return s.RespMetadata.RequestID
13548}
13549
13550// Contains general information about the LDAPS settings.
13551type LDAPSSettingInfo struct {
13552	_ struct{} `type:"structure"`
13553
13554	// The state of the LDAPS settings.
13555	LDAPSStatus *string `type:"string" enum:"LDAPSStatus"`
13556
13557	// Describes a state change for LDAPS.
13558	LDAPSStatusReason *string `type:"string"`
13559
13560	// The date and time when the LDAPS settings were last updated.
13561	LastUpdatedDateTime *time.Time `type:"timestamp"`
13562}
13563
13564// String returns the string representation.
13565//
13566// API parameter values that are decorated as "sensitive" in the API will not
13567// be included in the string output. The member name will be present, but the
13568// value will be replaced with "sensitive".
13569func (s LDAPSSettingInfo) String() string {
13570	return awsutil.Prettify(s)
13571}
13572
13573// GoString returns the string representation.
13574//
13575// API parameter values that are decorated as "sensitive" in the API will not
13576// be included in the string output. The member name will be present, but the
13577// value will be replaced with "sensitive".
13578func (s LDAPSSettingInfo) GoString() string {
13579	return s.String()
13580}
13581
13582// SetLDAPSStatus sets the LDAPSStatus field's value.
13583func (s *LDAPSSettingInfo) SetLDAPSStatus(v string) *LDAPSSettingInfo {
13584	s.LDAPSStatus = &v
13585	return s
13586}
13587
13588// SetLDAPSStatusReason sets the LDAPSStatusReason field's value.
13589func (s *LDAPSSettingInfo) SetLDAPSStatusReason(v string) *LDAPSSettingInfo {
13590	s.LDAPSStatusReason = &v
13591	return s
13592}
13593
13594// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
13595func (s *LDAPSSettingInfo) SetLastUpdatedDateTime(v time.Time) *LDAPSSettingInfo {
13596	s.LastUpdatedDateTime = &v
13597	return s
13598}
13599
13600type ListCertificatesInput struct {
13601	_ struct{} `type:"structure"`
13602
13603	// The identifier of the directory.
13604	//
13605	// DirectoryId is a required field
13606	DirectoryId *string `type:"string" required:"true"`
13607
13608	// The number of items that should show up on one page
13609	Limit *int64 `min:"1" type:"integer"`
13610
13611	// A token for requesting another page of certificates if the NextToken response
13612	// element indicates that more certificates are available. Use the value of
13613	// the returned NextToken element in your request until the token comes back
13614	// as null. Pass null if this is the first call.
13615	NextToken *string `type:"string"`
13616}
13617
13618// String returns the string representation.
13619//
13620// API parameter values that are decorated as "sensitive" in the API will not
13621// be included in the string output. The member name will be present, but the
13622// value will be replaced with "sensitive".
13623func (s ListCertificatesInput) String() string {
13624	return awsutil.Prettify(s)
13625}
13626
13627// GoString returns the string representation.
13628//
13629// API parameter values that are decorated as "sensitive" in the API will not
13630// be included in the string output. The member name will be present, but the
13631// value will be replaced with "sensitive".
13632func (s ListCertificatesInput) GoString() string {
13633	return s.String()
13634}
13635
13636// Validate inspects the fields of the type to determine if they are valid.
13637func (s *ListCertificatesInput) Validate() error {
13638	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
13639	if s.DirectoryId == nil {
13640		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13641	}
13642	if s.Limit != nil && *s.Limit < 1 {
13643		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13644	}
13645
13646	if invalidParams.Len() > 0 {
13647		return invalidParams
13648	}
13649	return nil
13650}
13651
13652// SetDirectoryId sets the DirectoryId field's value.
13653func (s *ListCertificatesInput) SetDirectoryId(v string) *ListCertificatesInput {
13654	s.DirectoryId = &v
13655	return s
13656}
13657
13658// SetLimit sets the Limit field's value.
13659func (s *ListCertificatesInput) SetLimit(v int64) *ListCertificatesInput {
13660	s.Limit = &v
13661	return s
13662}
13663
13664// SetNextToken sets the NextToken field's value.
13665func (s *ListCertificatesInput) SetNextToken(v string) *ListCertificatesInput {
13666	s.NextToken = &v
13667	return s
13668}
13669
13670type ListCertificatesOutput struct {
13671	_ struct{} `type:"structure"`
13672
13673	// A list of certificates with basic details including certificate ID, certificate
13674	// common name, certificate state.
13675	CertificatesInfo []*CertificateInfo `type:"list"`
13676
13677	// Indicates whether another page of certificates is available when the number
13678	// of available certificates exceeds the page limit.
13679	NextToken *string `type:"string"`
13680}
13681
13682// String returns the string representation.
13683//
13684// API parameter values that are decorated as "sensitive" in the API will not
13685// be included in the string output. The member name will be present, but the
13686// value will be replaced with "sensitive".
13687func (s ListCertificatesOutput) String() string {
13688	return awsutil.Prettify(s)
13689}
13690
13691// GoString returns the string representation.
13692//
13693// API parameter values that are decorated as "sensitive" in the API will not
13694// be included in the string output. The member name will be present, but the
13695// value will be replaced with "sensitive".
13696func (s ListCertificatesOutput) GoString() string {
13697	return s.String()
13698}
13699
13700// SetCertificatesInfo sets the CertificatesInfo field's value.
13701func (s *ListCertificatesOutput) SetCertificatesInfo(v []*CertificateInfo) *ListCertificatesOutput {
13702	s.CertificatesInfo = v
13703	return s
13704}
13705
13706// SetNextToken sets the NextToken field's value.
13707func (s *ListCertificatesOutput) SetNextToken(v string) *ListCertificatesOutput {
13708	s.NextToken = &v
13709	return s
13710}
13711
13712type ListIpRoutesInput struct {
13713	_ struct{} `type:"structure"`
13714
13715	// Identifier (ID) of the directory for which you want to retrieve the IP addresses.
13716	//
13717	// DirectoryId is a required field
13718	DirectoryId *string `type:"string" required:"true"`
13719
13720	// Maximum number of items to return. If this value is zero, the maximum number
13721	// of items is specified by the limitations of the operation.
13722	Limit *int64 `type:"integer"`
13723
13724	// The ListIpRoutes.NextToken value from a previous call to ListIpRoutes. Pass
13725	// null if this is the first call.
13726	NextToken *string `type:"string"`
13727}
13728
13729// String returns the string representation.
13730//
13731// API parameter values that are decorated as "sensitive" in the API will not
13732// be included in the string output. The member name will be present, but the
13733// value will be replaced with "sensitive".
13734func (s ListIpRoutesInput) String() string {
13735	return awsutil.Prettify(s)
13736}
13737
13738// GoString returns the string representation.
13739//
13740// API parameter values that are decorated as "sensitive" in the API will not
13741// be included in the string output. The member name will be present, but the
13742// value will be replaced with "sensitive".
13743func (s ListIpRoutesInput) GoString() string {
13744	return s.String()
13745}
13746
13747// Validate inspects the fields of the type to determine if they are valid.
13748func (s *ListIpRoutesInput) Validate() error {
13749	invalidParams := request.ErrInvalidParams{Context: "ListIpRoutesInput"}
13750	if s.DirectoryId == nil {
13751		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13752	}
13753
13754	if invalidParams.Len() > 0 {
13755		return invalidParams
13756	}
13757	return nil
13758}
13759
13760// SetDirectoryId sets the DirectoryId field's value.
13761func (s *ListIpRoutesInput) SetDirectoryId(v string) *ListIpRoutesInput {
13762	s.DirectoryId = &v
13763	return s
13764}
13765
13766// SetLimit sets the Limit field's value.
13767func (s *ListIpRoutesInput) SetLimit(v int64) *ListIpRoutesInput {
13768	s.Limit = &v
13769	return s
13770}
13771
13772// SetNextToken sets the NextToken field's value.
13773func (s *ListIpRoutesInput) SetNextToken(v string) *ListIpRoutesInput {
13774	s.NextToken = &v
13775	return s
13776}
13777
13778type ListIpRoutesOutput struct {
13779	_ struct{} `type:"structure"`
13780
13781	// A list of IpRoutes.
13782	IpRoutesInfo []*IpRouteInfo `type:"list"`
13783
13784	// If not null, more results are available. Pass this value for the NextToken
13785	// parameter in a subsequent call to ListIpRoutes to retrieve the next set of
13786	// items.
13787	NextToken *string `type:"string"`
13788}
13789
13790// String returns the string representation.
13791//
13792// API parameter values that are decorated as "sensitive" in the API will not
13793// be included in the string output. The member name will be present, but the
13794// value will be replaced with "sensitive".
13795func (s ListIpRoutesOutput) String() string {
13796	return awsutil.Prettify(s)
13797}
13798
13799// GoString returns the string representation.
13800//
13801// API parameter values that are decorated as "sensitive" in the API will not
13802// be included in the string output. The member name will be present, but the
13803// value will be replaced with "sensitive".
13804func (s ListIpRoutesOutput) GoString() string {
13805	return s.String()
13806}
13807
13808// SetIpRoutesInfo sets the IpRoutesInfo field's value.
13809func (s *ListIpRoutesOutput) SetIpRoutesInfo(v []*IpRouteInfo) *ListIpRoutesOutput {
13810	s.IpRoutesInfo = v
13811	return s
13812}
13813
13814// SetNextToken sets the NextToken field's value.
13815func (s *ListIpRoutesOutput) SetNextToken(v string) *ListIpRoutesOutput {
13816	s.NextToken = &v
13817	return s
13818}
13819
13820type ListLogSubscriptionsInput struct {
13821	_ struct{} `type:"structure"`
13822
13823	// If a DirectoryID is provided, lists only the log subscription associated
13824	// with that directory. If no DirectoryId is provided, lists all log subscriptions
13825	// associated with your Amazon Web Services account. If there are no log subscriptions
13826	// for the Amazon Web Services account or the directory, an empty list will
13827	// be returned.
13828	DirectoryId *string `type:"string"`
13829
13830	// The maximum number of items returned.
13831	Limit *int64 `type:"integer"`
13832
13833	// The token for the next set of items to return.
13834	NextToken *string `type:"string"`
13835}
13836
13837// String returns the string representation.
13838//
13839// API parameter values that are decorated as "sensitive" in the API will not
13840// be included in the string output. The member name will be present, but the
13841// value will be replaced with "sensitive".
13842func (s ListLogSubscriptionsInput) String() string {
13843	return awsutil.Prettify(s)
13844}
13845
13846// GoString returns the string representation.
13847//
13848// API parameter values that are decorated as "sensitive" in the API will not
13849// be included in the string output. The member name will be present, but the
13850// value will be replaced with "sensitive".
13851func (s ListLogSubscriptionsInput) GoString() string {
13852	return s.String()
13853}
13854
13855// SetDirectoryId sets the DirectoryId field's value.
13856func (s *ListLogSubscriptionsInput) SetDirectoryId(v string) *ListLogSubscriptionsInput {
13857	s.DirectoryId = &v
13858	return s
13859}
13860
13861// SetLimit sets the Limit field's value.
13862func (s *ListLogSubscriptionsInput) SetLimit(v int64) *ListLogSubscriptionsInput {
13863	s.Limit = &v
13864	return s
13865}
13866
13867// SetNextToken sets the NextToken field's value.
13868func (s *ListLogSubscriptionsInput) SetNextToken(v string) *ListLogSubscriptionsInput {
13869	s.NextToken = &v
13870	return s
13871}
13872
13873type ListLogSubscriptionsOutput struct {
13874	_ struct{} `type:"structure"`
13875
13876	// A list of active LogSubscription objects for calling the Amazon Web Services
13877	// account.
13878	LogSubscriptions []*LogSubscription `type:"list"`
13879
13880	// The token for the next set of items to return.
13881	NextToken *string `type:"string"`
13882}
13883
13884// String returns the string representation.
13885//
13886// API parameter values that are decorated as "sensitive" in the API will not
13887// be included in the string output. The member name will be present, but the
13888// value will be replaced with "sensitive".
13889func (s ListLogSubscriptionsOutput) String() string {
13890	return awsutil.Prettify(s)
13891}
13892
13893// GoString returns the string representation.
13894//
13895// API parameter values that are decorated as "sensitive" in the API will not
13896// be included in the string output. The member name will be present, but the
13897// value will be replaced with "sensitive".
13898func (s ListLogSubscriptionsOutput) GoString() string {
13899	return s.String()
13900}
13901
13902// SetLogSubscriptions sets the LogSubscriptions field's value.
13903func (s *ListLogSubscriptionsOutput) SetLogSubscriptions(v []*LogSubscription) *ListLogSubscriptionsOutput {
13904	s.LogSubscriptions = v
13905	return s
13906}
13907
13908// SetNextToken sets the NextToken field's value.
13909func (s *ListLogSubscriptionsOutput) SetNextToken(v string) *ListLogSubscriptionsOutput {
13910	s.NextToken = &v
13911	return s
13912}
13913
13914type ListSchemaExtensionsInput struct {
13915	_ struct{} `type:"structure"`
13916
13917	// The identifier of the directory from which to retrieve the schema extension
13918	// information.
13919	//
13920	// DirectoryId is a required field
13921	DirectoryId *string `type:"string" required:"true"`
13922
13923	// The maximum number of items to return.
13924	Limit *int64 `type:"integer"`
13925
13926	// The ListSchemaExtensions.NextToken value from a previous call to ListSchemaExtensions.
13927	// Pass null if this is the first call.
13928	NextToken *string `type:"string"`
13929}
13930
13931// String returns the string representation.
13932//
13933// API parameter values that are decorated as "sensitive" in the API will not
13934// be included in the string output. The member name will be present, but the
13935// value will be replaced with "sensitive".
13936func (s ListSchemaExtensionsInput) String() string {
13937	return awsutil.Prettify(s)
13938}
13939
13940// GoString returns the string representation.
13941//
13942// API parameter values that are decorated as "sensitive" in the API will not
13943// be included in the string output. The member name will be present, but the
13944// value will be replaced with "sensitive".
13945func (s ListSchemaExtensionsInput) GoString() string {
13946	return s.String()
13947}
13948
13949// Validate inspects the fields of the type to determine if they are valid.
13950func (s *ListSchemaExtensionsInput) Validate() error {
13951	invalidParams := request.ErrInvalidParams{Context: "ListSchemaExtensionsInput"}
13952	if s.DirectoryId == nil {
13953		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13954	}
13955
13956	if invalidParams.Len() > 0 {
13957		return invalidParams
13958	}
13959	return nil
13960}
13961
13962// SetDirectoryId sets the DirectoryId field's value.
13963func (s *ListSchemaExtensionsInput) SetDirectoryId(v string) *ListSchemaExtensionsInput {
13964	s.DirectoryId = &v
13965	return s
13966}
13967
13968// SetLimit sets the Limit field's value.
13969func (s *ListSchemaExtensionsInput) SetLimit(v int64) *ListSchemaExtensionsInput {
13970	s.Limit = &v
13971	return s
13972}
13973
13974// SetNextToken sets the NextToken field's value.
13975func (s *ListSchemaExtensionsInput) SetNextToken(v string) *ListSchemaExtensionsInput {
13976	s.NextToken = &v
13977	return s
13978}
13979
13980type ListSchemaExtensionsOutput struct {
13981	_ struct{} `type:"structure"`
13982
13983	// If not null, more results are available. Pass this value for the NextToken
13984	// parameter in a subsequent call to ListSchemaExtensions to retrieve the next
13985	// set of items.
13986	NextToken *string `type:"string"`
13987
13988	// Information about the schema extensions applied to the directory.
13989	SchemaExtensionsInfo []*SchemaExtensionInfo `type:"list"`
13990}
13991
13992// String returns the string representation.
13993//
13994// API parameter values that are decorated as "sensitive" in the API will not
13995// be included in the string output. The member name will be present, but the
13996// value will be replaced with "sensitive".
13997func (s ListSchemaExtensionsOutput) String() string {
13998	return awsutil.Prettify(s)
13999}
14000
14001// GoString returns the string representation.
14002//
14003// API parameter values that are decorated as "sensitive" in the API will not
14004// be included in the string output. The member name will be present, but the
14005// value will be replaced with "sensitive".
14006func (s ListSchemaExtensionsOutput) GoString() string {
14007	return s.String()
14008}
14009
14010// SetNextToken sets the NextToken field's value.
14011func (s *ListSchemaExtensionsOutput) SetNextToken(v string) *ListSchemaExtensionsOutput {
14012	s.NextToken = &v
14013	return s
14014}
14015
14016// SetSchemaExtensionsInfo sets the SchemaExtensionsInfo field's value.
14017func (s *ListSchemaExtensionsOutput) SetSchemaExtensionsInfo(v []*SchemaExtensionInfo) *ListSchemaExtensionsOutput {
14018	s.SchemaExtensionsInfo = v
14019	return s
14020}
14021
14022type ListTagsForResourceInput struct {
14023	_ struct{} `type:"structure"`
14024
14025	// Reserved for future use.
14026	Limit *int64 `type:"integer"`
14027
14028	// Reserved for future use.
14029	NextToken *string `type:"string"`
14030
14031	// Identifier (ID) of the directory for which you want to retrieve tags.
14032	//
14033	// ResourceId is a required field
14034	ResourceId *string `type:"string" required:"true"`
14035}
14036
14037// String returns the string representation.
14038//
14039// API parameter values that are decorated as "sensitive" in the API will not
14040// be included in the string output. The member name will be present, but the
14041// value will be replaced with "sensitive".
14042func (s ListTagsForResourceInput) String() string {
14043	return awsutil.Prettify(s)
14044}
14045
14046// GoString returns the string representation.
14047//
14048// API parameter values that are decorated as "sensitive" in the API will not
14049// be included in the string output. The member name will be present, but the
14050// value will be replaced with "sensitive".
14051func (s ListTagsForResourceInput) GoString() string {
14052	return s.String()
14053}
14054
14055// Validate inspects the fields of the type to determine if they are valid.
14056func (s *ListTagsForResourceInput) Validate() error {
14057	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
14058	if s.ResourceId == nil {
14059		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14060	}
14061
14062	if invalidParams.Len() > 0 {
14063		return invalidParams
14064	}
14065	return nil
14066}
14067
14068// SetLimit sets the Limit field's value.
14069func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
14070	s.Limit = &v
14071	return s
14072}
14073
14074// SetNextToken sets the NextToken field's value.
14075func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
14076	s.NextToken = &v
14077	return s
14078}
14079
14080// SetResourceId sets the ResourceId field's value.
14081func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput {
14082	s.ResourceId = &v
14083	return s
14084}
14085
14086type ListTagsForResourceOutput struct {
14087	_ struct{} `type:"structure"`
14088
14089	// Reserved for future use.
14090	NextToken *string `type:"string"`
14091
14092	// List of tags returned by the ListTagsForResource operation.
14093	Tags []*Tag `type:"list"`
14094}
14095
14096// String returns the string representation.
14097//
14098// API parameter values that are decorated as "sensitive" in the API will not
14099// be included in the string output. The member name will be present, but the
14100// value will be replaced with "sensitive".
14101func (s ListTagsForResourceOutput) String() string {
14102	return awsutil.Prettify(s)
14103}
14104
14105// GoString returns the string representation.
14106//
14107// API parameter values that are decorated as "sensitive" in the API will not
14108// be included in the string output. The member name will be present, but the
14109// value will be replaced with "sensitive".
14110func (s ListTagsForResourceOutput) GoString() string {
14111	return s.String()
14112}
14113
14114// SetNextToken sets the NextToken field's value.
14115func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
14116	s.NextToken = &v
14117	return s
14118}
14119
14120// SetTags sets the Tags field's value.
14121func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
14122	s.Tags = v
14123	return s
14124}
14125
14126// Represents a log subscription, which tracks real-time data from a chosen
14127// log group to a specified destination.
14128type LogSubscription struct {
14129	_ struct{} `type:"structure"`
14130
14131	// Identifier (ID) of the directory that you want to associate with the log
14132	// subscription.
14133	DirectoryId *string `type:"string"`
14134
14135	// The name of the log group.
14136	LogGroupName *string `min:"1" type:"string"`
14137
14138	// The date and time that the log subscription was created.
14139	SubscriptionCreatedDateTime *time.Time `type:"timestamp"`
14140}
14141
14142// String returns the string representation.
14143//
14144// API parameter values that are decorated as "sensitive" in the API will not
14145// be included in the string output. The member name will be present, but the
14146// value will be replaced with "sensitive".
14147func (s LogSubscription) String() string {
14148	return awsutil.Prettify(s)
14149}
14150
14151// GoString returns the string representation.
14152//
14153// API parameter values that are decorated as "sensitive" in the API will not
14154// be included in the string output. The member name will be present, but the
14155// value will be replaced with "sensitive".
14156func (s LogSubscription) GoString() string {
14157	return s.String()
14158}
14159
14160// SetDirectoryId sets the DirectoryId field's value.
14161func (s *LogSubscription) SetDirectoryId(v string) *LogSubscription {
14162	s.DirectoryId = &v
14163	return s
14164}
14165
14166// SetLogGroupName sets the LogGroupName field's value.
14167func (s *LogSubscription) SetLogGroupName(v string) *LogSubscription {
14168	s.LogGroupName = &v
14169	return s
14170}
14171
14172// SetSubscriptionCreatedDateTime sets the SubscriptionCreatedDateTime field's value.
14173func (s *LogSubscription) SetSubscriptionCreatedDateTime(v time.Time) *LogSubscription {
14174	s.SubscriptionCreatedDateTime = &v
14175	return s
14176}
14177
14178// Client authentication setup could not be completed because at least one valid
14179// certificate must be registered in the system.
14180type NoAvailableCertificateException struct {
14181	_            struct{}                  `type:"structure"`
14182	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14183
14184	// The descriptive message for the exception.
14185	Message_ *string `locationName:"Message" type:"string"`
14186
14187	// The Amazon Web Services request identifier.
14188	RequestId *string `type:"string"`
14189}
14190
14191// String returns the string representation.
14192//
14193// API parameter values that are decorated as "sensitive" in the API will not
14194// be included in the string output. The member name will be present, but the
14195// value will be replaced with "sensitive".
14196func (s NoAvailableCertificateException) String() string {
14197	return awsutil.Prettify(s)
14198}
14199
14200// GoString returns the string representation.
14201//
14202// API parameter values that are decorated as "sensitive" in the API will not
14203// be included in the string output. The member name will be present, but the
14204// value will be replaced with "sensitive".
14205func (s NoAvailableCertificateException) GoString() string {
14206	return s.String()
14207}
14208
14209func newErrorNoAvailableCertificateException(v protocol.ResponseMetadata) error {
14210	return &NoAvailableCertificateException{
14211		RespMetadata: v,
14212	}
14213}
14214
14215// Code returns the exception type name.
14216func (s *NoAvailableCertificateException) Code() string {
14217	return "NoAvailableCertificateException"
14218}
14219
14220// Message returns the exception's message.
14221func (s *NoAvailableCertificateException) Message() string {
14222	if s.Message_ != nil {
14223		return *s.Message_
14224	}
14225	return ""
14226}
14227
14228// OrigErr always returns nil, satisfies awserr.Error interface.
14229func (s *NoAvailableCertificateException) OrigErr() error {
14230	return nil
14231}
14232
14233func (s *NoAvailableCertificateException) Error() string {
14234	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14235}
14236
14237// Status code returns the HTTP status code for the request's response error.
14238func (s *NoAvailableCertificateException) StatusCode() int {
14239	return s.RespMetadata.StatusCode
14240}
14241
14242// RequestID returns the service's response RequestID for request.
14243func (s *NoAvailableCertificateException) RequestID() string {
14244	return s.RespMetadata.RequestID
14245}
14246
14247// Exception encountered while trying to access your Amazon Web Services organization.
14248type OrganizationsException struct {
14249	_            struct{}                  `type:"structure"`
14250	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14251
14252	// The descriptive message for the exception.
14253	Message_ *string `locationName:"Message" type:"string"`
14254
14255	// The Amazon Web Services request identifier.
14256	RequestId *string `type:"string"`
14257}
14258
14259// String returns the string representation.
14260//
14261// API parameter values that are decorated as "sensitive" in the API will not
14262// be included in the string output. The member name will be present, but the
14263// value will be replaced with "sensitive".
14264func (s OrganizationsException) String() string {
14265	return awsutil.Prettify(s)
14266}
14267
14268// GoString returns the string representation.
14269//
14270// API parameter values that are decorated as "sensitive" in the API will not
14271// be included in the string output. The member name will be present, but the
14272// value will be replaced with "sensitive".
14273func (s OrganizationsException) GoString() string {
14274	return s.String()
14275}
14276
14277func newErrorOrganizationsException(v protocol.ResponseMetadata) error {
14278	return &OrganizationsException{
14279		RespMetadata: v,
14280	}
14281}
14282
14283// Code returns the exception type name.
14284func (s *OrganizationsException) Code() string {
14285	return "OrganizationsException"
14286}
14287
14288// Message returns the exception's message.
14289func (s *OrganizationsException) Message() string {
14290	if s.Message_ != nil {
14291		return *s.Message_
14292	}
14293	return ""
14294}
14295
14296// OrigErr always returns nil, satisfies awserr.Error interface.
14297func (s *OrganizationsException) OrigErr() error {
14298	return nil
14299}
14300
14301func (s *OrganizationsException) Error() string {
14302	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14303}
14304
14305// Status code returns the HTTP status code for the request's response error.
14306func (s *OrganizationsException) StatusCode() int {
14307	return s.RespMetadata.StatusCode
14308}
14309
14310// RequestID returns the service's response RequestID for request.
14311func (s *OrganizationsException) RequestID() string {
14312	return s.RespMetadata.RequestID
14313}
14314
14315// Describes the directory owner account details that have been shared to the
14316// directory consumer account.
14317type OwnerDirectoryDescription struct {
14318	_ struct{} `type:"structure"`
14319
14320	// Identifier of the directory owner account.
14321	AccountId *string `type:"string"`
14322
14323	// Identifier of the Managed Microsoft AD directory in the directory owner account.
14324	DirectoryId *string `type:"string"`
14325
14326	// IP address of the directory’s domain controllers.
14327	DnsIpAddrs []*string `type:"list"`
14328
14329	// A RadiusSettings object that contains information about the RADIUS server.
14330	RadiusSettings *RadiusSettings `type:"structure"`
14331
14332	// Information about the status of the RADIUS server.
14333	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
14334
14335	// Information about the VPC settings for the directory.
14336	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
14337}
14338
14339// String returns the string representation.
14340//
14341// API parameter values that are decorated as "sensitive" in the API will not
14342// be included in the string output. The member name will be present, but the
14343// value will be replaced with "sensitive".
14344func (s OwnerDirectoryDescription) String() string {
14345	return awsutil.Prettify(s)
14346}
14347
14348// GoString returns the string representation.
14349//
14350// API parameter values that are decorated as "sensitive" in the API will not
14351// be included in the string output. The member name will be present, but the
14352// value will be replaced with "sensitive".
14353func (s OwnerDirectoryDescription) GoString() string {
14354	return s.String()
14355}
14356
14357// SetAccountId sets the AccountId field's value.
14358func (s *OwnerDirectoryDescription) SetAccountId(v string) *OwnerDirectoryDescription {
14359	s.AccountId = &v
14360	return s
14361}
14362
14363// SetDirectoryId sets the DirectoryId field's value.
14364func (s *OwnerDirectoryDescription) SetDirectoryId(v string) *OwnerDirectoryDescription {
14365	s.DirectoryId = &v
14366	return s
14367}
14368
14369// SetDnsIpAddrs sets the DnsIpAddrs field's value.
14370func (s *OwnerDirectoryDescription) SetDnsIpAddrs(v []*string) *OwnerDirectoryDescription {
14371	s.DnsIpAddrs = v
14372	return s
14373}
14374
14375// SetRadiusSettings sets the RadiusSettings field's value.
14376func (s *OwnerDirectoryDescription) SetRadiusSettings(v *RadiusSettings) *OwnerDirectoryDescription {
14377	s.RadiusSettings = v
14378	return s
14379}
14380
14381// SetRadiusStatus sets the RadiusStatus field's value.
14382func (s *OwnerDirectoryDescription) SetRadiusStatus(v string) *OwnerDirectoryDescription {
14383	s.RadiusStatus = &v
14384	return s
14385}
14386
14387// SetVpcSettings sets the VpcSettings field's value.
14388func (s *OwnerDirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *OwnerDirectoryDescription {
14389	s.VpcSettings = v
14390	return s
14391}
14392
14393// Contains information about a Remote Authentication Dial In User Service (RADIUS)
14394// server.
14395type RadiusSettings struct {
14396	_ struct{} `type:"structure"`
14397
14398	// The protocol specified for your RADIUS endpoints.
14399	AuthenticationProtocol *string `type:"string" enum:"RadiusAuthenticationProtocol"`
14400
14401	// Not currently used.
14402	DisplayLabel *string `min:"1" type:"string"`
14403
14404	// The port that your RADIUS server is using for communications. Your self-managed
14405	// network must allow inbound traffic over this port from the Directory Service
14406	// servers.
14407	RadiusPort *int64 `min:"1025" type:"integer"`
14408
14409	// The maximum number of times that communication with the RADIUS server is
14410	// attempted.
14411	RadiusRetries *int64 `type:"integer"`
14412
14413	// An array of strings that contains the fully qualified domain name (FQDN)
14414	// or IP addresses of the RADIUS server endpoints, or the FQDN or IP addresses
14415	// of your RADIUS server load balancer.
14416	RadiusServers []*string `type:"list"`
14417
14418	// The amount of time, in seconds, to wait for the RADIUS server to respond.
14419	RadiusTimeout *int64 `min:"1" type:"integer"`
14420
14421	// Required for enabling RADIUS on the directory.
14422	//
14423	// SharedSecret is a sensitive parameter and its value will be
14424	// replaced with "sensitive" in string returned by RadiusSettings's
14425	// String and GoString methods.
14426	SharedSecret *string `min:"8" type:"string" sensitive:"true"`
14427
14428	// Not currently used.
14429	UseSameUsername *bool `type:"boolean"`
14430}
14431
14432// String returns the string representation.
14433//
14434// API parameter values that are decorated as "sensitive" in the API will not
14435// be included in the string output. The member name will be present, but the
14436// value will be replaced with "sensitive".
14437func (s RadiusSettings) String() string {
14438	return awsutil.Prettify(s)
14439}
14440
14441// GoString returns the string representation.
14442//
14443// API parameter values that are decorated as "sensitive" in the API will not
14444// be included in the string output. The member name will be present, but the
14445// value will be replaced with "sensitive".
14446func (s RadiusSettings) GoString() string {
14447	return s.String()
14448}
14449
14450// Validate inspects the fields of the type to determine if they are valid.
14451func (s *RadiusSettings) Validate() error {
14452	invalidParams := request.ErrInvalidParams{Context: "RadiusSettings"}
14453	if s.DisplayLabel != nil && len(*s.DisplayLabel) < 1 {
14454		invalidParams.Add(request.NewErrParamMinLen("DisplayLabel", 1))
14455	}
14456	if s.RadiusPort != nil && *s.RadiusPort < 1025 {
14457		invalidParams.Add(request.NewErrParamMinValue("RadiusPort", 1025))
14458	}
14459	if s.RadiusTimeout != nil && *s.RadiusTimeout < 1 {
14460		invalidParams.Add(request.NewErrParamMinValue("RadiusTimeout", 1))
14461	}
14462	if s.SharedSecret != nil && len(*s.SharedSecret) < 8 {
14463		invalidParams.Add(request.NewErrParamMinLen("SharedSecret", 8))
14464	}
14465
14466	if invalidParams.Len() > 0 {
14467		return invalidParams
14468	}
14469	return nil
14470}
14471
14472// SetAuthenticationProtocol sets the AuthenticationProtocol field's value.
14473func (s *RadiusSettings) SetAuthenticationProtocol(v string) *RadiusSettings {
14474	s.AuthenticationProtocol = &v
14475	return s
14476}
14477
14478// SetDisplayLabel sets the DisplayLabel field's value.
14479func (s *RadiusSettings) SetDisplayLabel(v string) *RadiusSettings {
14480	s.DisplayLabel = &v
14481	return s
14482}
14483
14484// SetRadiusPort sets the RadiusPort field's value.
14485func (s *RadiusSettings) SetRadiusPort(v int64) *RadiusSettings {
14486	s.RadiusPort = &v
14487	return s
14488}
14489
14490// SetRadiusRetries sets the RadiusRetries field's value.
14491func (s *RadiusSettings) SetRadiusRetries(v int64) *RadiusSettings {
14492	s.RadiusRetries = &v
14493	return s
14494}
14495
14496// SetRadiusServers sets the RadiusServers field's value.
14497func (s *RadiusSettings) SetRadiusServers(v []*string) *RadiusSettings {
14498	s.RadiusServers = v
14499	return s
14500}
14501
14502// SetRadiusTimeout sets the RadiusTimeout field's value.
14503func (s *RadiusSettings) SetRadiusTimeout(v int64) *RadiusSettings {
14504	s.RadiusTimeout = &v
14505	return s
14506}
14507
14508// SetSharedSecret sets the SharedSecret field's value.
14509func (s *RadiusSettings) SetSharedSecret(v string) *RadiusSettings {
14510	s.SharedSecret = &v
14511	return s
14512}
14513
14514// SetUseSameUsername sets the UseSameUsername field's value.
14515func (s *RadiusSettings) SetUseSameUsername(v bool) *RadiusSettings {
14516	s.UseSameUsername = &v
14517	return s
14518}
14519
14520// The replicated Region information for a directory.
14521type RegionDescription struct {
14522	_ struct{} `type:"structure"`
14523
14524	// The desired number of domain controllers in the specified Region for the
14525	// specified directory.
14526	DesiredNumberOfDomainControllers *int64 `min:"2" type:"integer"`
14527
14528	// The identifier of the directory.
14529	DirectoryId *string `type:"string"`
14530
14531	// The date and time that the Region description was last updated.
14532	LastUpdatedDateTime *time.Time `type:"timestamp"`
14533
14534	// Specifies when the Region replication began.
14535	LaunchTime *time.Time `type:"timestamp"`
14536
14537	// The name of the Region. For example, us-east-1.
14538	RegionName *string `min:"8" type:"string"`
14539
14540	// Specifies whether the Region is the primary Region or an additional Region.
14541	RegionType *string `type:"string" enum:"RegionType"`
14542
14543	// The status of the replication process for the specified Region.
14544	Status *string `type:"string" enum:"DirectoryStage"`
14545
14546	// The date and time that the Region status was last updated.
14547	StatusLastUpdatedDateTime *time.Time `type:"timestamp"`
14548
14549	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
14550	VpcSettings *DirectoryVpcSettings `type:"structure"`
14551}
14552
14553// String returns the string representation.
14554//
14555// API parameter values that are decorated as "sensitive" in the API will not
14556// be included in the string output. The member name will be present, but the
14557// value will be replaced with "sensitive".
14558func (s RegionDescription) String() string {
14559	return awsutil.Prettify(s)
14560}
14561
14562// GoString returns the string representation.
14563//
14564// API parameter values that are decorated as "sensitive" in the API will not
14565// be included in the string output. The member name will be present, but the
14566// value will be replaced with "sensitive".
14567func (s RegionDescription) GoString() string {
14568	return s.String()
14569}
14570
14571// SetDesiredNumberOfDomainControllers sets the DesiredNumberOfDomainControllers field's value.
14572func (s *RegionDescription) SetDesiredNumberOfDomainControllers(v int64) *RegionDescription {
14573	s.DesiredNumberOfDomainControllers = &v
14574	return s
14575}
14576
14577// SetDirectoryId sets the DirectoryId field's value.
14578func (s *RegionDescription) SetDirectoryId(v string) *RegionDescription {
14579	s.DirectoryId = &v
14580	return s
14581}
14582
14583// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
14584func (s *RegionDescription) SetLastUpdatedDateTime(v time.Time) *RegionDescription {
14585	s.LastUpdatedDateTime = &v
14586	return s
14587}
14588
14589// SetLaunchTime sets the LaunchTime field's value.
14590func (s *RegionDescription) SetLaunchTime(v time.Time) *RegionDescription {
14591	s.LaunchTime = &v
14592	return s
14593}
14594
14595// SetRegionName sets the RegionName field's value.
14596func (s *RegionDescription) SetRegionName(v string) *RegionDescription {
14597	s.RegionName = &v
14598	return s
14599}
14600
14601// SetRegionType sets the RegionType field's value.
14602func (s *RegionDescription) SetRegionType(v string) *RegionDescription {
14603	s.RegionType = &v
14604	return s
14605}
14606
14607// SetStatus sets the Status field's value.
14608func (s *RegionDescription) SetStatus(v string) *RegionDescription {
14609	s.Status = &v
14610	return s
14611}
14612
14613// SetStatusLastUpdatedDateTime sets the StatusLastUpdatedDateTime field's value.
14614func (s *RegionDescription) SetStatusLastUpdatedDateTime(v time.Time) *RegionDescription {
14615	s.StatusLastUpdatedDateTime = &v
14616	return s
14617}
14618
14619// SetVpcSettings sets the VpcSettings field's value.
14620func (s *RegionDescription) SetVpcSettings(v *DirectoryVpcSettings) *RegionDescription {
14621	s.VpcSettings = v
14622	return s
14623}
14624
14625// You have reached the limit for maximum number of simultaneous Region replications
14626// per directory.
14627type RegionLimitExceededException struct {
14628	_            struct{}                  `type:"structure"`
14629	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14630
14631	// The descriptive message for the exception.
14632	Message_ *string `locationName:"Message" type:"string"`
14633
14634	// The Amazon Web Services request identifier.
14635	RequestId *string `type:"string"`
14636}
14637
14638// String returns the string representation.
14639//
14640// API parameter values that are decorated as "sensitive" in the API will not
14641// be included in the string output. The member name will be present, but the
14642// value will be replaced with "sensitive".
14643func (s RegionLimitExceededException) String() string {
14644	return awsutil.Prettify(s)
14645}
14646
14647// GoString returns the string representation.
14648//
14649// API parameter values that are decorated as "sensitive" in the API will not
14650// be included in the string output. The member name will be present, but the
14651// value will be replaced with "sensitive".
14652func (s RegionLimitExceededException) GoString() string {
14653	return s.String()
14654}
14655
14656func newErrorRegionLimitExceededException(v protocol.ResponseMetadata) error {
14657	return &RegionLimitExceededException{
14658		RespMetadata: v,
14659	}
14660}
14661
14662// Code returns the exception type name.
14663func (s *RegionLimitExceededException) Code() string {
14664	return "RegionLimitExceededException"
14665}
14666
14667// Message returns the exception's message.
14668func (s *RegionLimitExceededException) Message() string {
14669	if s.Message_ != nil {
14670		return *s.Message_
14671	}
14672	return ""
14673}
14674
14675// OrigErr always returns nil, satisfies awserr.Error interface.
14676func (s *RegionLimitExceededException) OrigErr() error {
14677	return nil
14678}
14679
14680func (s *RegionLimitExceededException) Error() string {
14681	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14682}
14683
14684// Status code returns the HTTP status code for the request's response error.
14685func (s *RegionLimitExceededException) StatusCode() int {
14686	return s.RespMetadata.StatusCode
14687}
14688
14689// RequestID returns the service's response RequestID for request.
14690func (s *RegionLimitExceededException) RequestID() string {
14691	return s.RespMetadata.RequestID
14692}
14693
14694// Provides information about the Regions that are configured for multi-Region
14695// replication.
14696type RegionsInfo struct {
14697	_ struct{} `type:"structure"`
14698
14699	// Lists the Regions where the directory has been replicated, excluding the
14700	// primary Region.
14701	AdditionalRegions []*string `type:"list"`
14702
14703	// The Region where the Managed Microsoft AD directory was originally created.
14704	PrimaryRegion *string `min:"8" type:"string"`
14705}
14706
14707// String returns the string representation.
14708//
14709// API parameter values that are decorated as "sensitive" in the API will not
14710// be included in the string output. The member name will be present, but the
14711// value will be replaced with "sensitive".
14712func (s RegionsInfo) String() string {
14713	return awsutil.Prettify(s)
14714}
14715
14716// GoString returns the string representation.
14717//
14718// API parameter values that are decorated as "sensitive" in the API will not
14719// be included in the string output. The member name will be present, but the
14720// value will be replaced with "sensitive".
14721func (s RegionsInfo) GoString() string {
14722	return s.String()
14723}
14724
14725// SetAdditionalRegions sets the AdditionalRegions field's value.
14726func (s *RegionsInfo) SetAdditionalRegions(v []*string) *RegionsInfo {
14727	s.AdditionalRegions = v
14728	return s
14729}
14730
14731// SetPrimaryRegion sets the PrimaryRegion field's value.
14732func (s *RegionsInfo) SetPrimaryRegion(v string) *RegionsInfo {
14733	s.PrimaryRegion = &v
14734	return s
14735}
14736
14737type RegisterCertificateInput struct {
14738	_ struct{} `type:"structure"`
14739
14740	// The certificate PEM string that needs to be registered.
14741	//
14742	// CertificateData is a required field
14743	CertificateData *string `min:"1" type:"string" required:"true"`
14744
14745	// A ClientCertAuthSettings object that contains client certificate authentication
14746	// settings.
14747	ClientCertAuthSettings *ClientCertAuthSettings `type:"structure"`
14748
14749	// The identifier of the directory.
14750	//
14751	// DirectoryId is a required field
14752	DirectoryId *string `type:"string" required:"true"`
14753
14754	// The function that the registered certificate performs. Valid values include
14755	// ClientLDAPS or ClientCertAuth. The default value is ClientLDAPS.
14756	Type *string `type:"string" enum:"CertificateType"`
14757}
14758
14759// String returns the string representation.
14760//
14761// API parameter values that are decorated as "sensitive" in the API will not
14762// be included in the string output. The member name will be present, but the
14763// value will be replaced with "sensitive".
14764func (s RegisterCertificateInput) String() string {
14765	return awsutil.Prettify(s)
14766}
14767
14768// GoString returns the string representation.
14769//
14770// API parameter values that are decorated as "sensitive" in the API will not
14771// be included in the string output. The member name will be present, but the
14772// value will be replaced with "sensitive".
14773func (s RegisterCertificateInput) GoString() string {
14774	return s.String()
14775}
14776
14777// Validate inspects the fields of the type to determine if they are valid.
14778func (s *RegisterCertificateInput) Validate() error {
14779	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
14780	if s.CertificateData == nil {
14781		invalidParams.Add(request.NewErrParamRequired("CertificateData"))
14782	}
14783	if s.CertificateData != nil && len(*s.CertificateData) < 1 {
14784		invalidParams.Add(request.NewErrParamMinLen("CertificateData", 1))
14785	}
14786	if s.DirectoryId == nil {
14787		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
14788	}
14789	if s.ClientCertAuthSettings != nil {
14790		if err := s.ClientCertAuthSettings.Validate(); err != nil {
14791			invalidParams.AddNested("ClientCertAuthSettings", err.(request.ErrInvalidParams))
14792		}
14793	}
14794
14795	if invalidParams.Len() > 0 {
14796		return invalidParams
14797	}
14798	return nil
14799}
14800
14801// SetCertificateData sets the CertificateData field's value.
14802func (s *RegisterCertificateInput) SetCertificateData(v string) *RegisterCertificateInput {
14803	s.CertificateData = &v
14804	return s
14805}
14806
14807// SetClientCertAuthSettings sets the ClientCertAuthSettings field's value.
14808func (s *RegisterCertificateInput) SetClientCertAuthSettings(v *ClientCertAuthSettings) *RegisterCertificateInput {
14809	s.ClientCertAuthSettings = v
14810	return s
14811}
14812
14813// SetDirectoryId sets the DirectoryId field's value.
14814func (s *RegisterCertificateInput) SetDirectoryId(v string) *RegisterCertificateInput {
14815	s.DirectoryId = &v
14816	return s
14817}
14818
14819// SetType sets the Type field's value.
14820func (s *RegisterCertificateInput) SetType(v string) *RegisterCertificateInput {
14821	s.Type = &v
14822	return s
14823}
14824
14825type RegisterCertificateOutput struct {
14826	_ struct{} `type:"structure"`
14827
14828	// The identifier of the certificate.
14829	CertificateId *string `type:"string"`
14830}
14831
14832// String returns the string representation.
14833//
14834// API parameter values that are decorated as "sensitive" in the API will not
14835// be included in the string output. The member name will be present, but the
14836// value will be replaced with "sensitive".
14837func (s RegisterCertificateOutput) String() string {
14838	return awsutil.Prettify(s)
14839}
14840
14841// GoString returns the string representation.
14842//
14843// API parameter values that are decorated as "sensitive" in the API will not
14844// be included in the string output. The member name will be present, but the
14845// value will be replaced with "sensitive".
14846func (s RegisterCertificateOutput) GoString() string {
14847	return s.String()
14848}
14849
14850// SetCertificateId sets the CertificateId field's value.
14851func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
14852	s.CertificateId = &v
14853	return s
14854}
14855
14856// Registers a new event topic.
14857type RegisterEventTopicInput struct {
14858	_ struct{} `type:"structure"`
14859
14860	// The Directory ID that will publish status messages to the Amazon SNS topic.
14861	//
14862	// DirectoryId is a required field
14863	DirectoryId *string `type:"string" required:"true"`
14864
14865	// The Amazon SNS topic name to which the directory will publish status messages.
14866	// This Amazon SNS topic must be in the same region as the specified Directory
14867	// ID.
14868	//
14869	// TopicName is a required field
14870	TopicName *string `min:"1" type:"string" required:"true"`
14871}
14872
14873// String returns the string representation.
14874//
14875// API parameter values that are decorated as "sensitive" in the API will not
14876// be included in the string output. The member name will be present, but the
14877// value will be replaced with "sensitive".
14878func (s RegisterEventTopicInput) String() string {
14879	return awsutil.Prettify(s)
14880}
14881
14882// GoString returns the string representation.
14883//
14884// API parameter values that are decorated as "sensitive" in the API will not
14885// be included in the string output. The member name will be present, but the
14886// value will be replaced with "sensitive".
14887func (s RegisterEventTopicInput) GoString() string {
14888	return s.String()
14889}
14890
14891// Validate inspects the fields of the type to determine if they are valid.
14892func (s *RegisterEventTopicInput) Validate() error {
14893	invalidParams := request.ErrInvalidParams{Context: "RegisterEventTopicInput"}
14894	if s.DirectoryId == nil {
14895		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
14896	}
14897	if s.TopicName == nil {
14898		invalidParams.Add(request.NewErrParamRequired("TopicName"))
14899	}
14900	if s.TopicName != nil && len(*s.TopicName) < 1 {
14901		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
14902	}
14903
14904	if invalidParams.Len() > 0 {
14905		return invalidParams
14906	}
14907	return nil
14908}
14909
14910// SetDirectoryId sets the DirectoryId field's value.
14911func (s *RegisterEventTopicInput) SetDirectoryId(v string) *RegisterEventTopicInput {
14912	s.DirectoryId = &v
14913	return s
14914}
14915
14916// SetTopicName sets the TopicName field's value.
14917func (s *RegisterEventTopicInput) SetTopicName(v string) *RegisterEventTopicInput {
14918	s.TopicName = &v
14919	return s
14920}
14921
14922// The result of a RegisterEventTopic request.
14923type RegisterEventTopicOutput struct {
14924	_ struct{} `type:"structure"`
14925}
14926
14927// String returns the string representation.
14928//
14929// API parameter values that are decorated as "sensitive" in the API will not
14930// be included in the string output. The member name will be present, but the
14931// value will be replaced with "sensitive".
14932func (s RegisterEventTopicOutput) String() string {
14933	return awsutil.Prettify(s)
14934}
14935
14936// GoString returns the string representation.
14937//
14938// API parameter values that are decorated as "sensitive" in the API will not
14939// be included in the string output. The member name will be present, but the
14940// value will be replaced with "sensitive".
14941func (s RegisterEventTopicOutput) GoString() string {
14942	return s.String()
14943}
14944
14945type RejectSharedDirectoryInput struct {
14946	_ struct{} `type:"structure"`
14947
14948	// Identifier of the shared directory in the directory consumer account. This
14949	// identifier is different for each directory owner account.
14950	//
14951	// SharedDirectoryId is a required field
14952	SharedDirectoryId *string `type:"string" required:"true"`
14953}
14954
14955// String returns the string representation.
14956//
14957// API parameter values that are decorated as "sensitive" in the API will not
14958// be included in the string output. The member name will be present, but the
14959// value will be replaced with "sensitive".
14960func (s RejectSharedDirectoryInput) String() string {
14961	return awsutil.Prettify(s)
14962}
14963
14964// GoString returns the string representation.
14965//
14966// API parameter values that are decorated as "sensitive" in the API will not
14967// be included in the string output. The member name will be present, but the
14968// value will be replaced with "sensitive".
14969func (s RejectSharedDirectoryInput) GoString() string {
14970	return s.String()
14971}
14972
14973// Validate inspects the fields of the type to determine if they are valid.
14974func (s *RejectSharedDirectoryInput) Validate() error {
14975	invalidParams := request.ErrInvalidParams{Context: "RejectSharedDirectoryInput"}
14976	if s.SharedDirectoryId == nil {
14977		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
14978	}
14979
14980	if invalidParams.Len() > 0 {
14981		return invalidParams
14982	}
14983	return nil
14984}
14985
14986// SetSharedDirectoryId sets the SharedDirectoryId field's value.
14987func (s *RejectSharedDirectoryInput) SetSharedDirectoryId(v string) *RejectSharedDirectoryInput {
14988	s.SharedDirectoryId = &v
14989	return s
14990}
14991
14992type RejectSharedDirectoryOutput struct {
14993	_ struct{} `type:"structure"`
14994
14995	// Identifier of the shared directory in the directory consumer account.
14996	SharedDirectoryId *string `type:"string"`
14997}
14998
14999// String returns the string representation.
15000//
15001// API parameter values that are decorated as "sensitive" in the API will not
15002// be included in the string output. The member name will be present, but the
15003// value will be replaced with "sensitive".
15004func (s RejectSharedDirectoryOutput) String() string {
15005	return awsutil.Prettify(s)
15006}
15007
15008// GoString returns the string representation.
15009//
15010// API parameter values that are decorated as "sensitive" in the API will not
15011// be included in the string output. The member name will be present, but the
15012// value will be replaced with "sensitive".
15013func (s RejectSharedDirectoryOutput) GoString() string {
15014	return s.String()
15015}
15016
15017// SetSharedDirectoryId sets the SharedDirectoryId field's value.
15018func (s *RejectSharedDirectoryOutput) SetSharedDirectoryId(v string) *RejectSharedDirectoryOutput {
15019	s.SharedDirectoryId = &v
15020	return s
15021}
15022
15023type RemoveIpRoutesInput struct {
15024	_ struct{} `type:"structure"`
15025
15026	// IP address blocks that you want to remove.
15027	//
15028	// CidrIps is a required field
15029	CidrIps []*string `type:"list" required:"true"`
15030
15031	// Identifier (ID) of the directory from which you want to remove the IP addresses.
15032	//
15033	// DirectoryId is a required field
15034	DirectoryId *string `type:"string" required:"true"`
15035}
15036
15037// String returns the string representation.
15038//
15039// API parameter values that are decorated as "sensitive" in the API will not
15040// be included in the string output. The member name will be present, but the
15041// value will be replaced with "sensitive".
15042func (s RemoveIpRoutesInput) String() string {
15043	return awsutil.Prettify(s)
15044}
15045
15046// GoString returns the string representation.
15047//
15048// API parameter values that are decorated as "sensitive" in the API will not
15049// be included in the string output. The member name will be present, but the
15050// value will be replaced with "sensitive".
15051func (s RemoveIpRoutesInput) GoString() string {
15052	return s.String()
15053}
15054
15055// Validate inspects the fields of the type to determine if they are valid.
15056func (s *RemoveIpRoutesInput) Validate() error {
15057	invalidParams := request.ErrInvalidParams{Context: "RemoveIpRoutesInput"}
15058	if s.CidrIps == nil {
15059		invalidParams.Add(request.NewErrParamRequired("CidrIps"))
15060	}
15061	if s.DirectoryId == nil {
15062		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
15063	}
15064
15065	if invalidParams.Len() > 0 {
15066		return invalidParams
15067	}
15068	return nil
15069}
15070
15071// SetCidrIps sets the CidrIps field's value.
15072func (s *RemoveIpRoutesInput) SetCidrIps(v []*string) *RemoveIpRoutesInput {
15073	s.CidrIps = v
15074	return s
15075}
15076
15077// SetDirectoryId sets the DirectoryId field's value.
15078func (s *RemoveIpRoutesInput) SetDirectoryId(v string) *RemoveIpRoutesInput {
15079	s.DirectoryId = &v
15080	return s
15081}
15082
15083type RemoveIpRoutesOutput struct {
15084	_ struct{} `type:"structure"`
15085}
15086
15087// String returns the string representation.
15088//
15089// API parameter values that are decorated as "sensitive" in the API will not
15090// be included in the string output. The member name will be present, but the
15091// value will be replaced with "sensitive".
15092func (s RemoveIpRoutesOutput) String() string {
15093	return awsutil.Prettify(s)
15094}
15095
15096// GoString returns the string representation.
15097//
15098// API parameter values that are decorated as "sensitive" in the API will not
15099// be included in the string output. The member name will be present, but the
15100// value will be replaced with "sensitive".
15101func (s RemoveIpRoutesOutput) GoString() string {
15102	return s.String()
15103}
15104
15105type RemoveRegionInput struct {
15106	_ struct{} `type:"structure"`
15107
15108	// The identifier of the directory for which you want to remove Region replication.
15109	//
15110	// DirectoryId is a required field
15111	DirectoryId *string `type:"string" required:"true"`
15112}
15113
15114// String returns the string representation.
15115//
15116// API parameter values that are decorated as "sensitive" in the API will not
15117// be included in the string output. The member name will be present, but the
15118// value will be replaced with "sensitive".
15119func (s RemoveRegionInput) String() string {
15120	return awsutil.Prettify(s)
15121}
15122
15123// GoString returns the string representation.
15124//
15125// API parameter values that are decorated as "sensitive" in the API will not
15126// be included in the string output. The member name will be present, but the
15127// value will be replaced with "sensitive".
15128func (s RemoveRegionInput) GoString() string {
15129	return s.String()
15130}
15131
15132// Validate inspects the fields of the type to determine if they are valid.
15133func (s *RemoveRegionInput) Validate() error {
15134	invalidParams := request.ErrInvalidParams{Context: "RemoveRegionInput"}
15135	if s.DirectoryId == nil {
15136		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
15137	}
15138
15139	if invalidParams.Len() > 0 {
15140		return invalidParams
15141	}
15142	return nil
15143}
15144
15145// SetDirectoryId sets the DirectoryId field's value.
15146func (s *RemoveRegionInput) SetDirectoryId(v string) *RemoveRegionInput {
15147	s.DirectoryId = &v
15148	return s
15149}
15150
15151type RemoveRegionOutput struct {
15152	_ struct{} `type:"structure"`
15153}
15154
15155// String returns the string representation.
15156//
15157// API parameter values that are decorated as "sensitive" in the API will not
15158// be included in the string output. The member name will be present, but the
15159// value will be replaced with "sensitive".
15160func (s RemoveRegionOutput) String() string {
15161	return awsutil.Prettify(s)
15162}
15163
15164// GoString returns the string representation.
15165//
15166// API parameter values that are decorated as "sensitive" in the API will not
15167// be included in the string output. The member name will be present, but the
15168// value will be replaced with "sensitive".
15169func (s RemoveRegionOutput) GoString() string {
15170	return s.String()
15171}
15172
15173type RemoveTagsFromResourceInput struct {
15174	_ struct{} `type:"structure"`
15175
15176	// Identifier (ID) of the directory from which to remove the tag.
15177	//
15178	// ResourceId is a required field
15179	ResourceId *string `type:"string" required:"true"`
15180
15181	// The tag key (name) of the tag to be removed.
15182	//
15183	// TagKeys is a required field
15184	TagKeys []*string `type:"list" required:"true"`
15185}
15186
15187// String returns the string representation.
15188//
15189// API parameter values that are decorated as "sensitive" in the API will not
15190// be included in the string output. The member name will be present, but the
15191// value will be replaced with "sensitive".
15192func (s RemoveTagsFromResourceInput) String() string {
15193	return awsutil.Prettify(s)
15194}
15195
15196// GoString returns the string representation.
15197//
15198// API parameter values that are decorated as "sensitive" in the API will not
15199// be included in the string output. The member name will be present, but the
15200// value will be replaced with "sensitive".
15201func (s RemoveTagsFromResourceInput) GoString() string {
15202	return s.String()
15203}
15204
15205// Validate inspects the fields of the type to determine if they are valid.
15206func (s *RemoveTagsFromResourceInput) Validate() error {
15207	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
15208	if s.ResourceId == nil {
15209		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15210	}
15211	if s.TagKeys == nil {
15212		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
15213	}
15214
15215	if invalidParams.Len() > 0 {
15216		return invalidParams
15217	}
15218	return nil
15219}
15220
15221// SetResourceId sets the ResourceId field's value.
15222func (s *RemoveTagsFromResourceInput) SetResourceId(v string) *RemoveTagsFromResourceInput {
15223	s.ResourceId = &v
15224	return s
15225}
15226
15227// SetTagKeys sets the TagKeys field's value.
15228func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
15229	s.TagKeys = v
15230	return s
15231}
15232
15233type RemoveTagsFromResourceOutput struct {
15234	_ struct{} `type:"structure"`
15235}
15236
15237// String returns the string representation.
15238//
15239// API parameter values that are decorated as "sensitive" in the API will not
15240// be included in the string output. The member name will be present, but the
15241// value will be replaced with "sensitive".
15242func (s RemoveTagsFromResourceOutput) String() string {
15243	return awsutil.Prettify(s)
15244}
15245
15246// GoString returns the string representation.
15247//
15248// API parameter values that are decorated as "sensitive" in the API will not
15249// be included in the string output. The member name will be present, but the
15250// value will be replaced with "sensitive".
15251func (s RemoveTagsFromResourceOutput) GoString() string {
15252	return s.String()
15253}
15254
15255type ResetUserPasswordInput struct {
15256	_ struct{} `type:"structure"`
15257
15258	// Identifier of the Managed Microsoft AD or Simple AD directory in which the
15259	// user resides.
15260	//
15261	// DirectoryId is a required field
15262	DirectoryId *string `type:"string" required:"true"`
15263
15264	// The new password that will be reset.
15265	//
15266	// NewPassword is a sensitive parameter and its value will be
15267	// replaced with "sensitive" in string returned by ResetUserPasswordInput's
15268	// String and GoString methods.
15269	//
15270	// NewPassword is a required field
15271	NewPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
15272
15273	// The user name of the user whose password will be reset.
15274	//
15275	// UserName is a required field
15276	UserName *string `min:"1" type:"string" required:"true"`
15277}
15278
15279// String returns the string representation.
15280//
15281// API parameter values that are decorated as "sensitive" in the API will not
15282// be included in the string output. The member name will be present, but the
15283// value will be replaced with "sensitive".
15284func (s ResetUserPasswordInput) String() string {
15285	return awsutil.Prettify(s)
15286}
15287
15288// GoString returns the string representation.
15289//
15290// API parameter values that are decorated as "sensitive" in the API will not
15291// be included in the string output. The member name will be present, but the
15292// value will be replaced with "sensitive".
15293func (s ResetUserPasswordInput) GoString() string {
15294	return s.String()
15295}
15296
15297// Validate inspects the fields of the type to determine if they are valid.
15298func (s *ResetUserPasswordInput) Validate() error {
15299	invalidParams := request.ErrInvalidParams{Context: "ResetUserPasswordInput"}
15300	if s.DirectoryId == nil {
15301		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
15302	}
15303	if s.NewPassword == nil {
15304		invalidParams.Add(request.NewErrParamRequired("NewPassword"))
15305	}
15306	if s.NewPassword != nil && len(*s.NewPassword) < 1 {
15307		invalidParams.Add(request.NewErrParamMinLen("NewPassword", 1))
15308	}
15309	if s.UserName == nil {
15310		invalidParams.Add(request.NewErrParamRequired("UserName"))
15311	}
15312	if s.UserName != nil && len(*s.UserName) < 1 {
15313		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
15314	}
15315
15316	if invalidParams.Len() > 0 {
15317		return invalidParams
15318	}
15319	return nil
15320}
15321
15322// SetDirectoryId sets the DirectoryId field's value.
15323func (s *ResetUserPasswordInput) SetDirectoryId(v string) *ResetUserPasswordInput {
15324	s.DirectoryId = &v
15325	return s
15326}
15327
15328// SetNewPassword sets the NewPassword field's value.
15329func (s *ResetUserPasswordInput) SetNewPassword(v string) *ResetUserPasswordInput {
15330	s.NewPassword = &v
15331	return s
15332}
15333
15334// SetUserName sets the UserName field's value.
15335func (s *ResetUserPasswordInput) SetUserName(v string) *ResetUserPasswordInput {
15336	s.UserName = &v
15337	return s
15338}
15339
15340type ResetUserPasswordOutput struct {
15341	_ struct{} `type:"structure"`
15342}
15343
15344// String returns the string representation.
15345//
15346// API parameter values that are decorated as "sensitive" in the API will not
15347// be included in the string output. The member name will be present, but the
15348// value will be replaced with "sensitive".
15349func (s ResetUserPasswordOutput) String() string {
15350	return awsutil.Prettify(s)
15351}
15352
15353// GoString returns the string representation.
15354//
15355// API parameter values that are decorated as "sensitive" in the API will not
15356// be included in the string output. The member name will be present, but the
15357// value will be replaced with "sensitive".
15358func (s ResetUserPasswordOutput) GoString() string {
15359	return s.String()
15360}
15361
15362// An object representing the inputs for the RestoreFromSnapshot operation.
15363type RestoreFromSnapshotInput struct {
15364	_ struct{} `type:"structure"`
15365
15366	// The identifier of the snapshot to restore from.
15367	//
15368	// SnapshotId is a required field
15369	SnapshotId *string `type:"string" required:"true"`
15370}
15371
15372// String returns the string representation.
15373//
15374// API parameter values that are decorated as "sensitive" in the API will not
15375// be included in the string output. The member name will be present, but the
15376// value will be replaced with "sensitive".
15377func (s RestoreFromSnapshotInput) String() string {
15378	return awsutil.Prettify(s)
15379}
15380
15381// GoString returns the string representation.
15382//
15383// API parameter values that are decorated as "sensitive" in the API will not
15384// be included in the string output. The member name will be present, but the
15385// value will be replaced with "sensitive".
15386func (s RestoreFromSnapshotInput) GoString() string {
15387	return s.String()
15388}
15389
15390// Validate inspects the fields of the type to determine if they are valid.
15391func (s *RestoreFromSnapshotInput) Validate() error {
15392	invalidParams := request.ErrInvalidParams{Context: "RestoreFromSnapshotInput"}
15393	if s.SnapshotId == nil {
15394		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
15395	}
15396
15397	if invalidParams.Len() > 0 {
15398		return invalidParams
15399	}
15400	return nil
15401}
15402
15403// SetSnapshotId sets the SnapshotId field's value.
15404func (s *RestoreFromSnapshotInput) SetSnapshotId(v string) *RestoreFromSnapshotInput {
15405	s.SnapshotId = &v
15406	return s
15407}
15408
15409// Contains the results of the RestoreFromSnapshot operation.
15410type RestoreFromSnapshotOutput struct {
15411	_ struct{} `type:"structure"`
15412}
15413
15414// String returns the string representation.
15415//
15416// API parameter values that are decorated as "sensitive" in the API will not
15417// be included in the string output. The member name will be present, but the
15418// value will be replaced with "sensitive".
15419func (s RestoreFromSnapshotOutput) String() string {
15420	return awsutil.Prettify(s)
15421}
15422
15423// GoString returns the string representation.
15424//
15425// API parameter values that are decorated as "sensitive" in the API will not
15426// be included in the string output. The member name will be present, but the
15427// value will be replaced with "sensitive".
15428func (s RestoreFromSnapshotOutput) GoString() string {
15429	return s.String()
15430}
15431
15432// Information about a schema extension.
15433type SchemaExtensionInfo struct {
15434	_ struct{} `type:"structure"`
15435
15436	// A description of the schema extension.
15437	Description *string `type:"string"`
15438
15439	// The identifier of the directory to which the schema extension is applied.
15440	DirectoryId *string `type:"string"`
15441
15442	// The date and time that the schema extension was completed.
15443	EndDateTime *time.Time `type:"timestamp"`
15444
15445	// The identifier of the schema extension.
15446	SchemaExtensionId *string `type:"string"`
15447
15448	// The current status of the schema extension.
15449	SchemaExtensionStatus *string `type:"string" enum:"SchemaExtensionStatus"`
15450
15451	// The reason for the SchemaExtensionStatus.
15452	SchemaExtensionStatusReason *string `type:"string"`
15453
15454	// The date and time that the schema extension started being applied to the
15455	// directory.
15456	StartDateTime *time.Time `type:"timestamp"`
15457}
15458
15459// String returns the string representation.
15460//
15461// API parameter values that are decorated as "sensitive" in the API will not
15462// be included in the string output. The member name will be present, but the
15463// value will be replaced with "sensitive".
15464func (s SchemaExtensionInfo) String() string {
15465	return awsutil.Prettify(s)
15466}
15467
15468// GoString returns the string representation.
15469//
15470// API parameter values that are decorated as "sensitive" in the API will not
15471// be included in the string output. The member name will be present, but the
15472// value will be replaced with "sensitive".
15473func (s SchemaExtensionInfo) GoString() string {
15474	return s.String()
15475}
15476
15477// SetDescription sets the Description field's value.
15478func (s *SchemaExtensionInfo) SetDescription(v string) *SchemaExtensionInfo {
15479	s.Description = &v
15480	return s
15481}
15482
15483// SetDirectoryId sets the DirectoryId field's value.
15484func (s *SchemaExtensionInfo) SetDirectoryId(v string) *SchemaExtensionInfo {
15485	s.DirectoryId = &v
15486	return s
15487}
15488
15489// SetEndDateTime sets the EndDateTime field's value.
15490func (s *SchemaExtensionInfo) SetEndDateTime(v time.Time) *SchemaExtensionInfo {
15491	s.EndDateTime = &v
15492	return s
15493}
15494
15495// SetSchemaExtensionId sets the SchemaExtensionId field's value.
15496func (s *SchemaExtensionInfo) SetSchemaExtensionId(v string) *SchemaExtensionInfo {
15497	s.SchemaExtensionId = &v
15498	return s
15499}
15500
15501// SetSchemaExtensionStatus sets the SchemaExtensionStatus field's value.
15502func (s *SchemaExtensionInfo) SetSchemaExtensionStatus(v string) *SchemaExtensionInfo {
15503	s.SchemaExtensionStatus = &v
15504	return s
15505}
15506
15507// SetSchemaExtensionStatusReason sets the SchemaExtensionStatusReason field's value.
15508func (s *SchemaExtensionInfo) SetSchemaExtensionStatusReason(v string) *SchemaExtensionInfo {
15509	s.SchemaExtensionStatusReason = &v
15510	return s
15511}
15512
15513// SetStartDateTime sets the StartDateTime field's value.
15514func (s *SchemaExtensionInfo) SetStartDateTime(v time.Time) *SchemaExtensionInfo {
15515	s.StartDateTime = &v
15516	return s
15517}
15518
15519// An exception has occurred in Directory Service.
15520type ServiceException struct {
15521	_            struct{}                  `type:"structure"`
15522	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15523
15524	// The descriptive message for the exception.
15525	Message_ *string `locationName:"Message" type:"string"`
15526
15527	// The Amazon Web Services request identifier.
15528	RequestId *string `type:"string"`
15529}
15530
15531// String returns the string representation.
15532//
15533// API parameter values that are decorated as "sensitive" in the API will not
15534// be included in the string output. The member name will be present, but the
15535// value will be replaced with "sensitive".
15536func (s ServiceException) String() string {
15537	return awsutil.Prettify(s)
15538}
15539
15540// GoString returns the string representation.
15541//
15542// API parameter values that are decorated as "sensitive" in the API will not
15543// be included in the string output. The member name will be present, but the
15544// value will be replaced with "sensitive".
15545func (s ServiceException) GoString() string {
15546	return s.String()
15547}
15548
15549func newErrorServiceException(v protocol.ResponseMetadata) error {
15550	return &ServiceException{
15551		RespMetadata: v,
15552	}
15553}
15554
15555// Code returns the exception type name.
15556func (s *ServiceException) Code() string {
15557	return "ServiceException"
15558}
15559
15560// Message returns the exception's message.
15561func (s *ServiceException) Message() string {
15562	if s.Message_ != nil {
15563		return *s.Message_
15564	}
15565	return ""
15566}
15567
15568// OrigErr always returns nil, satisfies awserr.Error interface.
15569func (s *ServiceException) OrigErr() error {
15570	return nil
15571}
15572
15573func (s *ServiceException) Error() string {
15574	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15575}
15576
15577// Status code returns the HTTP status code for the request's response error.
15578func (s *ServiceException) StatusCode() int {
15579	return s.RespMetadata.StatusCode
15580}
15581
15582// RequestID returns the service's response RequestID for request.
15583func (s *ServiceException) RequestID() string {
15584	return s.RespMetadata.RequestID
15585}
15586
15587type ShareDirectoryInput struct {
15588	_ struct{} `type:"structure"`
15589
15590	// Identifier of the Managed Microsoft AD directory that you want to share with
15591	// other Amazon Web Services accounts.
15592	//
15593	// DirectoryId is a required field
15594	DirectoryId *string `type:"string" required:"true"`
15595
15596	// The method used when sharing a directory to determine whether the directory
15597	// should be shared within your Amazon Web Services organization (ORGANIZATIONS)
15598	// or with any Amazon Web Services account by sending a directory sharing request
15599	// (HANDSHAKE).
15600	//
15601	// ShareMethod is a required field
15602	ShareMethod *string `type:"string" required:"true" enum:"ShareMethod"`
15603
15604	// A directory share request that is sent by the directory owner to the directory
15605	// consumer. The request includes a typed message to help the directory consumer
15606	// administrator determine whether to approve or reject the share invitation.
15607	//
15608	// ShareNotes is a sensitive parameter and its value will be
15609	// replaced with "sensitive" in string returned by ShareDirectoryInput's
15610	// String and GoString methods.
15611	ShareNotes *string `type:"string" sensitive:"true"`
15612
15613	// Identifier for the directory consumer account with whom the directory is
15614	// to be shared.
15615	//
15616	// ShareTarget is a required field
15617	ShareTarget *ShareTarget `type:"structure" required:"true"`
15618}
15619
15620// String returns the string representation.
15621//
15622// API parameter values that are decorated as "sensitive" in the API will not
15623// be included in the string output. The member name will be present, but the
15624// value will be replaced with "sensitive".
15625func (s ShareDirectoryInput) String() string {
15626	return awsutil.Prettify(s)
15627}
15628
15629// GoString returns the string representation.
15630//
15631// API parameter values that are decorated as "sensitive" in the API will not
15632// be included in the string output. The member name will be present, but the
15633// value will be replaced with "sensitive".
15634func (s ShareDirectoryInput) GoString() string {
15635	return s.String()
15636}
15637
15638// Validate inspects the fields of the type to determine if they are valid.
15639func (s *ShareDirectoryInput) Validate() error {
15640	invalidParams := request.ErrInvalidParams{Context: "ShareDirectoryInput"}
15641	if s.DirectoryId == nil {
15642		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
15643	}
15644	if s.ShareMethod == nil {
15645		invalidParams.Add(request.NewErrParamRequired("ShareMethod"))
15646	}
15647	if s.ShareTarget == nil {
15648		invalidParams.Add(request.NewErrParamRequired("ShareTarget"))
15649	}
15650	if s.ShareTarget != nil {
15651		if err := s.ShareTarget.Validate(); err != nil {
15652			invalidParams.AddNested("ShareTarget", err.(request.ErrInvalidParams))
15653		}
15654	}
15655
15656	if invalidParams.Len() > 0 {
15657		return invalidParams
15658	}
15659	return nil
15660}
15661
15662// SetDirectoryId sets the DirectoryId field's value.
15663func (s *ShareDirectoryInput) SetDirectoryId(v string) *ShareDirectoryInput {
15664	s.DirectoryId = &v
15665	return s
15666}
15667
15668// SetShareMethod sets the ShareMethod field's value.
15669func (s *ShareDirectoryInput) SetShareMethod(v string) *ShareDirectoryInput {
15670	s.ShareMethod = &v
15671	return s
15672}
15673
15674// SetShareNotes sets the ShareNotes field's value.
15675func (s *ShareDirectoryInput) SetShareNotes(v string) *ShareDirectoryInput {
15676	s.ShareNotes = &v
15677	return s
15678}
15679
15680// SetShareTarget sets the ShareTarget field's value.
15681func (s *ShareDirectoryInput) SetShareTarget(v *ShareTarget) *ShareDirectoryInput {
15682	s.ShareTarget = v
15683	return s
15684}
15685
15686type ShareDirectoryOutput struct {
15687	_ struct{} `type:"structure"`
15688
15689	// Identifier of the directory that is stored in the directory consumer account
15690	// that is shared from the specified directory (DirectoryId).
15691	SharedDirectoryId *string `type:"string"`
15692}
15693
15694// String returns the string representation.
15695//
15696// API parameter values that are decorated as "sensitive" in the API will not
15697// be included in the string output. The member name will be present, but the
15698// value will be replaced with "sensitive".
15699func (s ShareDirectoryOutput) String() string {
15700	return awsutil.Prettify(s)
15701}
15702
15703// GoString returns the string representation.
15704//
15705// API parameter values that are decorated as "sensitive" in the API will not
15706// be included in the string output. The member name will be present, but the
15707// value will be replaced with "sensitive".
15708func (s ShareDirectoryOutput) GoString() string {
15709	return s.String()
15710}
15711
15712// SetSharedDirectoryId sets the SharedDirectoryId field's value.
15713func (s *ShareDirectoryOutput) SetSharedDirectoryId(v string) *ShareDirectoryOutput {
15714	s.SharedDirectoryId = &v
15715	return s
15716}
15717
15718// The maximum number of Amazon Web Services accounts that you can share with
15719// this directory has been reached.
15720type ShareLimitExceededException struct {
15721	_            struct{}                  `type:"structure"`
15722	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15723
15724	// The descriptive message for the exception.
15725	Message_ *string `locationName:"Message" type:"string"`
15726
15727	// The Amazon Web Services request identifier.
15728	RequestId *string `type:"string"`
15729}
15730
15731// String returns the string representation.
15732//
15733// API parameter values that are decorated as "sensitive" in the API will not
15734// be included in the string output. The member name will be present, but the
15735// value will be replaced with "sensitive".
15736func (s ShareLimitExceededException) String() string {
15737	return awsutil.Prettify(s)
15738}
15739
15740// GoString returns the string representation.
15741//
15742// API parameter values that are decorated as "sensitive" in the API will not
15743// be included in the string output. The member name will be present, but the
15744// value will be replaced with "sensitive".
15745func (s ShareLimitExceededException) GoString() string {
15746	return s.String()
15747}
15748
15749func newErrorShareLimitExceededException(v protocol.ResponseMetadata) error {
15750	return &ShareLimitExceededException{
15751		RespMetadata: v,
15752	}
15753}
15754
15755// Code returns the exception type name.
15756func (s *ShareLimitExceededException) Code() string {
15757	return "ShareLimitExceededException"
15758}
15759
15760// Message returns the exception's message.
15761func (s *ShareLimitExceededException) Message() string {
15762	if s.Message_ != nil {
15763		return *s.Message_
15764	}
15765	return ""
15766}
15767
15768// OrigErr always returns nil, satisfies awserr.Error interface.
15769func (s *ShareLimitExceededException) OrigErr() error {
15770	return nil
15771}
15772
15773func (s *ShareLimitExceededException) Error() string {
15774	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15775}
15776
15777// Status code returns the HTTP status code for the request's response error.
15778func (s *ShareLimitExceededException) StatusCode() int {
15779	return s.RespMetadata.StatusCode
15780}
15781
15782// RequestID returns the service's response RequestID for request.
15783func (s *ShareLimitExceededException) RequestID() string {
15784	return s.RespMetadata.RequestID
15785}
15786
15787// Identifier that contains details about the directory consumer account.
15788type ShareTarget struct {
15789	_ struct{} `type:"structure"`
15790
15791	// Identifier of the directory consumer account.
15792	//
15793	// Id is a required field
15794	Id *string `min:"1" type:"string" required:"true"`
15795
15796	// Type of identifier to be used in the Id field.
15797	//
15798	// Type is a required field
15799	Type *string `type:"string" required:"true" enum:"TargetType"`
15800}
15801
15802// String returns the string representation.
15803//
15804// API parameter values that are decorated as "sensitive" in the API will not
15805// be included in the string output. The member name will be present, but the
15806// value will be replaced with "sensitive".
15807func (s ShareTarget) String() string {
15808	return awsutil.Prettify(s)
15809}
15810
15811// GoString returns the string representation.
15812//
15813// API parameter values that are decorated as "sensitive" in the API will not
15814// be included in the string output. The member name will be present, but the
15815// value will be replaced with "sensitive".
15816func (s ShareTarget) GoString() string {
15817	return s.String()
15818}
15819
15820// Validate inspects the fields of the type to determine if they are valid.
15821func (s *ShareTarget) Validate() error {
15822	invalidParams := request.ErrInvalidParams{Context: "ShareTarget"}
15823	if s.Id == nil {
15824		invalidParams.Add(request.NewErrParamRequired("Id"))
15825	}
15826	if s.Id != nil && len(*s.Id) < 1 {
15827		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
15828	}
15829	if s.Type == nil {
15830		invalidParams.Add(request.NewErrParamRequired("Type"))
15831	}
15832
15833	if invalidParams.Len() > 0 {
15834		return invalidParams
15835	}
15836	return nil
15837}
15838
15839// SetId sets the Id field's value.
15840func (s *ShareTarget) SetId(v string) *ShareTarget {
15841	s.Id = &v
15842	return s
15843}
15844
15845// SetType sets the Type field's value.
15846func (s *ShareTarget) SetType(v string) *ShareTarget {
15847	s.Type = &v
15848	return s
15849}
15850
15851// Details about the shared directory in the directory owner account for which
15852// the share request in the directory consumer account has been accepted.
15853type SharedDirectory struct {
15854	_ struct{} `type:"structure"`
15855
15856	// The date and time that the shared directory was created.
15857	CreatedDateTime *time.Time `type:"timestamp"`
15858
15859	// The date and time that the shared directory was last updated.
15860	LastUpdatedDateTime *time.Time `type:"timestamp"`
15861
15862	// Identifier of the directory owner account, which contains the directory that
15863	// has been shared to the consumer account.
15864	OwnerAccountId *string `type:"string"`
15865
15866	// Identifier of the directory in the directory owner account.
15867	OwnerDirectoryId *string `type:"string"`
15868
15869	// The method used when sharing a directory to determine whether the directory
15870	// should be shared within your Amazon Web Services organization (ORGANIZATIONS)
15871	// or with any Amazon Web Services account by sending a shared directory request
15872	// (HANDSHAKE).
15873	ShareMethod *string `type:"string" enum:"ShareMethod"`
15874
15875	// A directory share request that is sent by the directory owner to the directory
15876	// consumer. The request includes a typed message to help the directory consumer
15877	// administrator determine whether to approve or reject the share invitation.
15878	//
15879	// ShareNotes is a sensitive parameter and its value will be
15880	// replaced with "sensitive" in string returned by SharedDirectory's
15881	// String and GoString methods.
15882	ShareNotes *string `type:"string" sensitive:"true"`
15883
15884	// Current directory status of the shared Managed Microsoft AD directory.
15885	ShareStatus *string `type:"string" enum:"ShareStatus"`
15886
15887	// Identifier of the directory consumer account that has access to the shared
15888	// directory (OwnerDirectoryId) in the directory owner account.
15889	SharedAccountId *string `type:"string"`
15890
15891	// Identifier of the shared directory in the directory consumer account. This
15892	// identifier is different for each directory owner account.
15893	SharedDirectoryId *string `type:"string"`
15894}
15895
15896// String returns the string representation.
15897//
15898// API parameter values that are decorated as "sensitive" in the API will not
15899// be included in the string output. The member name will be present, but the
15900// value will be replaced with "sensitive".
15901func (s SharedDirectory) String() string {
15902	return awsutil.Prettify(s)
15903}
15904
15905// GoString returns the string representation.
15906//
15907// API parameter values that are decorated as "sensitive" in the API will not
15908// be included in the string output. The member name will be present, but the
15909// value will be replaced with "sensitive".
15910func (s SharedDirectory) GoString() string {
15911	return s.String()
15912}
15913
15914// SetCreatedDateTime sets the CreatedDateTime field's value.
15915func (s *SharedDirectory) SetCreatedDateTime(v time.Time) *SharedDirectory {
15916	s.CreatedDateTime = &v
15917	return s
15918}
15919
15920// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
15921func (s *SharedDirectory) SetLastUpdatedDateTime(v time.Time) *SharedDirectory {
15922	s.LastUpdatedDateTime = &v
15923	return s
15924}
15925
15926// SetOwnerAccountId sets the OwnerAccountId field's value.
15927func (s *SharedDirectory) SetOwnerAccountId(v string) *SharedDirectory {
15928	s.OwnerAccountId = &v
15929	return s
15930}
15931
15932// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
15933func (s *SharedDirectory) SetOwnerDirectoryId(v string) *SharedDirectory {
15934	s.OwnerDirectoryId = &v
15935	return s
15936}
15937
15938// SetShareMethod sets the ShareMethod field's value.
15939func (s *SharedDirectory) SetShareMethod(v string) *SharedDirectory {
15940	s.ShareMethod = &v
15941	return s
15942}
15943
15944// SetShareNotes sets the ShareNotes field's value.
15945func (s *SharedDirectory) SetShareNotes(v string) *SharedDirectory {
15946	s.ShareNotes = &v
15947	return s
15948}
15949
15950// SetShareStatus sets the ShareStatus field's value.
15951func (s *SharedDirectory) SetShareStatus(v string) *SharedDirectory {
15952	s.ShareStatus = &v
15953	return s
15954}
15955
15956// SetSharedAccountId sets the SharedAccountId field's value.
15957func (s *SharedDirectory) SetSharedAccountId(v string) *SharedDirectory {
15958	s.SharedAccountId = &v
15959	return s
15960}
15961
15962// SetSharedDirectoryId sets the SharedDirectoryId field's value.
15963func (s *SharedDirectory) SetSharedDirectoryId(v string) *SharedDirectory {
15964	s.SharedDirectoryId = &v
15965	return s
15966}
15967
15968// Describes a directory snapshot.
15969type Snapshot struct {
15970	_ struct{} `type:"structure"`
15971
15972	// The directory identifier.
15973	DirectoryId *string `type:"string"`
15974
15975	// The descriptive name of the snapshot.
15976	Name *string `type:"string"`
15977
15978	// The snapshot identifier.
15979	SnapshotId *string `type:"string"`
15980
15981	// The date and time that the snapshot was taken.
15982	StartTime *time.Time `type:"timestamp"`
15983
15984	// The snapshot status.
15985	Status *string `type:"string" enum:"SnapshotStatus"`
15986
15987	// The snapshot type.
15988	Type *string `type:"string" enum:"SnapshotType"`
15989}
15990
15991// String returns the string representation.
15992//
15993// API parameter values that are decorated as "sensitive" in the API will not
15994// be included in the string output. The member name will be present, but the
15995// value will be replaced with "sensitive".
15996func (s Snapshot) String() string {
15997	return awsutil.Prettify(s)
15998}
15999
16000// GoString returns the string representation.
16001//
16002// API parameter values that are decorated as "sensitive" in the API will not
16003// be included in the string output. The member name will be present, but the
16004// value will be replaced with "sensitive".
16005func (s Snapshot) GoString() string {
16006	return s.String()
16007}
16008
16009// SetDirectoryId sets the DirectoryId field's value.
16010func (s *Snapshot) SetDirectoryId(v string) *Snapshot {
16011	s.DirectoryId = &v
16012	return s
16013}
16014
16015// SetName sets the Name field's value.
16016func (s *Snapshot) SetName(v string) *Snapshot {
16017	s.Name = &v
16018	return s
16019}
16020
16021// SetSnapshotId sets the SnapshotId field's value.
16022func (s *Snapshot) SetSnapshotId(v string) *Snapshot {
16023	s.SnapshotId = &v
16024	return s
16025}
16026
16027// SetStartTime sets the StartTime field's value.
16028func (s *Snapshot) SetStartTime(v time.Time) *Snapshot {
16029	s.StartTime = &v
16030	return s
16031}
16032
16033// SetStatus sets the Status field's value.
16034func (s *Snapshot) SetStatus(v string) *Snapshot {
16035	s.Status = &v
16036	return s
16037}
16038
16039// SetType sets the Type field's value.
16040func (s *Snapshot) SetType(v string) *Snapshot {
16041	s.Type = &v
16042	return s
16043}
16044
16045// The maximum number of manual snapshots for the directory has been reached.
16046// You can use the GetSnapshotLimits operation to determine the snapshot limits
16047// for a directory.
16048type SnapshotLimitExceededException struct {
16049	_            struct{}                  `type:"structure"`
16050	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16051
16052	// The descriptive message for the exception.
16053	Message_ *string `locationName:"Message" type:"string"`
16054
16055	// The Amazon Web Services request identifier.
16056	RequestId *string `type:"string"`
16057}
16058
16059// String returns the string representation.
16060//
16061// API parameter values that are decorated as "sensitive" in the API will not
16062// be included in the string output. The member name will be present, but the
16063// value will be replaced with "sensitive".
16064func (s SnapshotLimitExceededException) String() string {
16065	return awsutil.Prettify(s)
16066}
16067
16068// GoString returns the string representation.
16069//
16070// API parameter values that are decorated as "sensitive" in the API will not
16071// be included in the string output. The member name will be present, but the
16072// value will be replaced with "sensitive".
16073func (s SnapshotLimitExceededException) GoString() string {
16074	return s.String()
16075}
16076
16077func newErrorSnapshotLimitExceededException(v protocol.ResponseMetadata) error {
16078	return &SnapshotLimitExceededException{
16079		RespMetadata: v,
16080	}
16081}
16082
16083// Code returns the exception type name.
16084func (s *SnapshotLimitExceededException) Code() string {
16085	return "SnapshotLimitExceededException"
16086}
16087
16088// Message returns the exception's message.
16089func (s *SnapshotLimitExceededException) Message() string {
16090	if s.Message_ != nil {
16091		return *s.Message_
16092	}
16093	return ""
16094}
16095
16096// OrigErr always returns nil, satisfies awserr.Error interface.
16097func (s *SnapshotLimitExceededException) OrigErr() error {
16098	return nil
16099}
16100
16101func (s *SnapshotLimitExceededException) Error() string {
16102	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16103}
16104
16105// Status code returns the HTTP status code for the request's response error.
16106func (s *SnapshotLimitExceededException) StatusCode() int {
16107	return s.RespMetadata.StatusCode
16108}
16109
16110// RequestID returns the service's response RequestID for request.
16111func (s *SnapshotLimitExceededException) RequestID() string {
16112	return s.RespMetadata.RequestID
16113}
16114
16115// Contains manual snapshot limit information for a directory.
16116type SnapshotLimits struct {
16117	_ struct{} `type:"structure"`
16118
16119	// The current number of manual snapshots of the directory.
16120	ManualSnapshotsCurrentCount *int64 `type:"integer"`
16121
16122	// The maximum number of manual snapshots allowed.
16123	ManualSnapshotsLimit *int64 `type:"integer"`
16124
16125	// Indicates if the manual snapshot limit has been reached.
16126	ManualSnapshotsLimitReached *bool `type:"boolean"`
16127}
16128
16129// String returns the string representation.
16130//
16131// API parameter values that are decorated as "sensitive" in the API will not
16132// be included in the string output. The member name will be present, but the
16133// value will be replaced with "sensitive".
16134func (s SnapshotLimits) String() string {
16135	return awsutil.Prettify(s)
16136}
16137
16138// GoString returns the string representation.
16139//
16140// API parameter values that are decorated as "sensitive" in the API will not
16141// be included in the string output. The member name will be present, but the
16142// value will be replaced with "sensitive".
16143func (s SnapshotLimits) GoString() string {
16144	return s.String()
16145}
16146
16147// SetManualSnapshotsCurrentCount sets the ManualSnapshotsCurrentCount field's value.
16148func (s *SnapshotLimits) SetManualSnapshotsCurrentCount(v int64) *SnapshotLimits {
16149	s.ManualSnapshotsCurrentCount = &v
16150	return s
16151}
16152
16153// SetManualSnapshotsLimit sets the ManualSnapshotsLimit field's value.
16154func (s *SnapshotLimits) SetManualSnapshotsLimit(v int64) *SnapshotLimits {
16155	s.ManualSnapshotsLimit = &v
16156	return s
16157}
16158
16159// SetManualSnapshotsLimitReached sets the ManualSnapshotsLimitReached field's value.
16160func (s *SnapshotLimits) SetManualSnapshotsLimitReached(v bool) *SnapshotLimits {
16161	s.ManualSnapshotsLimitReached = &v
16162	return s
16163}
16164
16165type StartSchemaExtensionInput struct {
16166	_ struct{} `type:"structure"`
16167
16168	// If true, creates a snapshot of the directory before applying the schema extension.
16169	//
16170	// CreateSnapshotBeforeSchemaExtension is a required field
16171	CreateSnapshotBeforeSchemaExtension *bool `type:"boolean" required:"true"`
16172
16173	// A description of the schema extension.
16174	//
16175	// Description is a required field
16176	Description *string `type:"string" required:"true"`
16177
16178	// The identifier of the directory for which the schema extension will be applied
16179	// to.
16180	//
16181	// DirectoryId is a required field
16182	DirectoryId *string `type:"string" required:"true"`
16183
16184	// The LDIF file represented as a string. To construct the LdifContent string,
16185	// precede each line as it would be formatted in an ldif file with \n. See the
16186	// example request below for more details. The file size can be no larger than
16187	// 1MB.
16188	//
16189	// LdifContent is a required field
16190	LdifContent *string `min:"1" type:"string" required:"true"`
16191}
16192
16193// String returns the string representation.
16194//
16195// API parameter values that are decorated as "sensitive" in the API will not
16196// be included in the string output. The member name will be present, but the
16197// value will be replaced with "sensitive".
16198func (s StartSchemaExtensionInput) String() string {
16199	return awsutil.Prettify(s)
16200}
16201
16202// GoString returns the string representation.
16203//
16204// API parameter values that are decorated as "sensitive" in the API will not
16205// be included in the string output. The member name will be present, but the
16206// value will be replaced with "sensitive".
16207func (s StartSchemaExtensionInput) GoString() string {
16208	return s.String()
16209}
16210
16211// Validate inspects the fields of the type to determine if they are valid.
16212func (s *StartSchemaExtensionInput) Validate() error {
16213	invalidParams := request.ErrInvalidParams{Context: "StartSchemaExtensionInput"}
16214	if s.CreateSnapshotBeforeSchemaExtension == nil {
16215		invalidParams.Add(request.NewErrParamRequired("CreateSnapshotBeforeSchemaExtension"))
16216	}
16217	if s.Description == nil {
16218		invalidParams.Add(request.NewErrParamRequired("Description"))
16219	}
16220	if s.DirectoryId == nil {
16221		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
16222	}
16223	if s.LdifContent == nil {
16224		invalidParams.Add(request.NewErrParamRequired("LdifContent"))
16225	}
16226	if s.LdifContent != nil && len(*s.LdifContent) < 1 {
16227		invalidParams.Add(request.NewErrParamMinLen("LdifContent", 1))
16228	}
16229
16230	if invalidParams.Len() > 0 {
16231		return invalidParams
16232	}
16233	return nil
16234}
16235
16236// SetCreateSnapshotBeforeSchemaExtension sets the CreateSnapshotBeforeSchemaExtension field's value.
16237func (s *StartSchemaExtensionInput) SetCreateSnapshotBeforeSchemaExtension(v bool) *StartSchemaExtensionInput {
16238	s.CreateSnapshotBeforeSchemaExtension = &v
16239	return s
16240}
16241
16242// SetDescription sets the Description field's value.
16243func (s *StartSchemaExtensionInput) SetDescription(v string) *StartSchemaExtensionInput {
16244	s.Description = &v
16245	return s
16246}
16247
16248// SetDirectoryId sets the DirectoryId field's value.
16249func (s *StartSchemaExtensionInput) SetDirectoryId(v string) *StartSchemaExtensionInput {
16250	s.DirectoryId = &v
16251	return s
16252}
16253
16254// SetLdifContent sets the LdifContent field's value.
16255func (s *StartSchemaExtensionInput) SetLdifContent(v string) *StartSchemaExtensionInput {
16256	s.LdifContent = &v
16257	return s
16258}
16259
16260type StartSchemaExtensionOutput struct {
16261	_ struct{} `type:"structure"`
16262
16263	// The identifier of the schema extension that will be applied.
16264	SchemaExtensionId *string `type:"string"`
16265}
16266
16267// String returns the string representation.
16268//
16269// API parameter values that are decorated as "sensitive" in the API will not
16270// be included in the string output. The member name will be present, but the
16271// value will be replaced with "sensitive".
16272func (s StartSchemaExtensionOutput) String() string {
16273	return awsutil.Prettify(s)
16274}
16275
16276// GoString returns the string representation.
16277//
16278// API parameter values that are decorated as "sensitive" in the API will not
16279// be included in the string output. The member name will be present, but the
16280// value will be replaced with "sensitive".
16281func (s StartSchemaExtensionOutput) GoString() string {
16282	return s.String()
16283}
16284
16285// SetSchemaExtensionId sets the SchemaExtensionId field's value.
16286func (s *StartSchemaExtensionOutput) SetSchemaExtensionId(v string) *StartSchemaExtensionOutput {
16287	s.SchemaExtensionId = &v
16288	return s
16289}
16290
16291// Metadata assigned to a directory consisting of a key-value pair.
16292type Tag struct {
16293	_ struct{} `type:"structure"`
16294
16295	// Required name of the tag. The string value can be Unicode characters and
16296	// cannot be prefixed with "aws:". The string can contain only the set of Unicode
16297	// letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
16298	//
16299	// Key is a required field
16300	Key *string `min:"1" type:"string" required:"true"`
16301
16302	// The optional value of the tag. The string value can be Unicode characters.
16303	// The string can contain only the set of Unicode letters, digits, white-space,
16304	// '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
16305	//
16306	// Value is a required field
16307	Value *string `type:"string" required:"true"`
16308}
16309
16310// String returns the string representation.
16311//
16312// API parameter values that are decorated as "sensitive" in the API will not
16313// be included in the string output. The member name will be present, but the
16314// value will be replaced with "sensitive".
16315func (s Tag) String() string {
16316	return awsutil.Prettify(s)
16317}
16318
16319// GoString returns the string representation.
16320//
16321// API parameter values that are decorated as "sensitive" in the API will not
16322// be included in the string output. The member name will be present, but the
16323// value will be replaced with "sensitive".
16324func (s Tag) GoString() string {
16325	return s.String()
16326}
16327
16328// Validate inspects the fields of the type to determine if they are valid.
16329func (s *Tag) Validate() error {
16330	invalidParams := request.ErrInvalidParams{Context: "Tag"}
16331	if s.Key == nil {
16332		invalidParams.Add(request.NewErrParamRequired("Key"))
16333	}
16334	if s.Key != nil && len(*s.Key) < 1 {
16335		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
16336	}
16337	if s.Value == nil {
16338		invalidParams.Add(request.NewErrParamRequired("Value"))
16339	}
16340
16341	if invalidParams.Len() > 0 {
16342		return invalidParams
16343	}
16344	return nil
16345}
16346
16347// SetKey sets the Key field's value.
16348func (s *Tag) SetKey(v string) *Tag {
16349	s.Key = &v
16350	return s
16351}
16352
16353// SetValue sets the Value field's value.
16354func (s *Tag) SetValue(v string) *Tag {
16355	s.Value = &v
16356	return s
16357}
16358
16359// The maximum allowed number of tags was exceeded.
16360type TagLimitExceededException struct {
16361	_            struct{}                  `type:"structure"`
16362	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16363
16364	// The descriptive message for the exception.
16365	Message_ *string `locationName:"Message" type:"string"`
16366
16367	// The Amazon Web Services request identifier.
16368	RequestId *string `type:"string"`
16369}
16370
16371// String returns the string representation.
16372//
16373// API parameter values that are decorated as "sensitive" in the API will not
16374// be included in the string output. The member name will be present, but the
16375// value will be replaced with "sensitive".
16376func (s TagLimitExceededException) String() string {
16377	return awsutil.Prettify(s)
16378}
16379
16380// GoString returns the string representation.
16381//
16382// API parameter values that are decorated as "sensitive" in the API will not
16383// be included in the string output. The member name will be present, but the
16384// value will be replaced with "sensitive".
16385func (s TagLimitExceededException) GoString() string {
16386	return s.String()
16387}
16388
16389func newErrorTagLimitExceededException(v protocol.ResponseMetadata) error {
16390	return &TagLimitExceededException{
16391		RespMetadata: v,
16392	}
16393}
16394
16395// Code returns the exception type name.
16396func (s *TagLimitExceededException) Code() string {
16397	return "TagLimitExceededException"
16398}
16399
16400// Message returns the exception's message.
16401func (s *TagLimitExceededException) Message() string {
16402	if s.Message_ != nil {
16403		return *s.Message_
16404	}
16405	return ""
16406}
16407
16408// OrigErr always returns nil, satisfies awserr.Error interface.
16409func (s *TagLimitExceededException) OrigErr() error {
16410	return nil
16411}
16412
16413func (s *TagLimitExceededException) Error() string {
16414	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16415}
16416
16417// Status code returns the HTTP status code for the request's response error.
16418func (s *TagLimitExceededException) StatusCode() int {
16419	return s.RespMetadata.StatusCode
16420}
16421
16422// RequestID returns the service's response RequestID for request.
16423func (s *TagLimitExceededException) RequestID() string {
16424	return s.RespMetadata.RequestID
16425}
16426
16427// Describes a trust relationship between an Managed Microsoft AD directory
16428// and an external domain.
16429type Trust struct {
16430	_ struct{} `type:"structure"`
16431
16432	// The date and time that the trust relationship was created.
16433	CreatedDateTime *time.Time `type:"timestamp"`
16434
16435	// The Directory ID of the Amazon Web Services directory involved in the trust
16436	// relationship.
16437	DirectoryId *string `type:"string"`
16438
16439	// The date and time that the trust relationship was last updated.
16440	LastUpdatedDateTime *time.Time `type:"timestamp"`
16441
16442	// The Fully Qualified Domain Name (FQDN) of the external domain involved in
16443	// the trust relationship.
16444	RemoteDomainName *string `type:"string"`
16445
16446	// Current state of selective authentication for the trust.
16447	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
16448
16449	// The date and time that the TrustState was last updated.
16450	StateLastUpdatedDateTime *time.Time `type:"timestamp"`
16451
16452	// The trust relationship direction.
16453	TrustDirection *string `type:"string" enum:"TrustDirection"`
16454
16455	// The unique ID of the trust relationship.
16456	TrustId *string `type:"string"`
16457
16458	// The trust relationship state.
16459	TrustState *string `type:"string" enum:"TrustState"`
16460
16461	// The reason for the TrustState.
16462	TrustStateReason *string `type:"string"`
16463
16464	// The trust relationship type. Forest is the default.
16465	TrustType *string `type:"string" enum:"TrustType"`
16466}
16467
16468// String returns the string representation.
16469//
16470// API parameter values that are decorated as "sensitive" in the API will not
16471// be included in the string output. The member name will be present, but the
16472// value will be replaced with "sensitive".
16473func (s Trust) String() string {
16474	return awsutil.Prettify(s)
16475}
16476
16477// GoString returns the string representation.
16478//
16479// API parameter values that are decorated as "sensitive" in the API will not
16480// be included in the string output. The member name will be present, but the
16481// value will be replaced with "sensitive".
16482func (s Trust) GoString() string {
16483	return s.String()
16484}
16485
16486// SetCreatedDateTime sets the CreatedDateTime field's value.
16487func (s *Trust) SetCreatedDateTime(v time.Time) *Trust {
16488	s.CreatedDateTime = &v
16489	return s
16490}
16491
16492// SetDirectoryId sets the DirectoryId field's value.
16493func (s *Trust) SetDirectoryId(v string) *Trust {
16494	s.DirectoryId = &v
16495	return s
16496}
16497
16498// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
16499func (s *Trust) SetLastUpdatedDateTime(v time.Time) *Trust {
16500	s.LastUpdatedDateTime = &v
16501	return s
16502}
16503
16504// SetRemoteDomainName sets the RemoteDomainName field's value.
16505func (s *Trust) SetRemoteDomainName(v string) *Trust {
16506	s.RemoteDomainName = &v
16507	return s
16508}
16509
16510// SetSelectiveAuth sets the SelectiveAuth field's value.
16511func (s *Trust) SetSelectiveAuth(v string) *Trust {
16512	s.SelectiveAuth = &v
16513	return s
16514}
16515
16516// SetStateLastUpdatedDateTime sets the StateLastUpdatedDateTime field's value.
16517func (s *Trust) SetStateLastUpdatedDateTime(v time.Time) *Trust {
16518	s.StateLastUpdatedDateTime = &v
16519	return s
16520}
16521
16522// SetTrustDirection sets the TrustDirection field's value.
16523func (s *Trust) SetTrustDirection(v string) *Trust {
16524	s.TrustDirection = &v
16525	return s
16526}
16527
16528// SetTrustId sets the TrustId field's value.
16529func (s *Trust) SetTrustId(v string) *Trust {
16530	s.TrustId = &v
16531	return s
16532}
16533
16534// SetTrustState sets the TrustState field's value.
16535func (s *Trust) SetTrustState(v string) *Trust {
16536	s.TrustState = &v
16537	return s
16538}
16539
16540// SetTrustStateReason sets the TrustStateReason field's value.
16541func (s *Trust) SetTrustStateReason(v string) *Trust {
16542	s.TrustStateReason = &v
16543	return s
16544}
16545
16546// SetTrustType sets the TrustType field's value.
16547func (s *Trust) SetTrustType(v string) *Trust {
16548	s.TrustType = &v
16549	return s
16550}
16551
16552type UnshareDirectoryInput struct {
16553	_ struct{} `type:"structure"`
16554
16555	// The identifier of the Managed Microsoft AD directory that you want to stop
16556	// sharing.
16557	//
16558	// DirectoryId is a required field
16559	DirectoryId *string `type:"string" required:"true"`
16560
16561	// Identifier for the directory consumer account with whom the directory has
16562	// to be unshared.
16563	//
16564	// UnshareTarget is a required field
16565	UnshareTarget *UnshareTarget `type:"structure" required:"true"`
16566}
16567
16568// String returns the string representation.
16569//
16570// API parameter values that are decorated as "sensitive" in the API will not
16571// be included in the string output. The member name will be present, but the
16572// value will be replaced with "sensitive".
16573func (s UnshareDirectoryInput) String() string {
16574	return awsutil.Prettify(s)
16575}
16576
16577// GoString returns the string representation.
16578//
16579// API parameter values that are decorated as "sensitive" in the API will not
16580// be included in the string output. The member name will be present, but the
16581// value will be replaced with "sensitive".
16582func (s UnshareDirectoryInput) GoString() string {
16583	return s.String()
16584}
16585
16586// Validate inspects the fields of the type to determine if they are valid.
16587func (s *UnshareDirectoryInput) Validate() error {
16588	invalidParams := request.ErrInvalidParams{Context: "UnshareDirectoryInput"}
16589	if s.DirectoryId == nil {
16590		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
16591	}
16592	if s.UnshareTarget == nil {
16593		invalidParams.Add(request.NewErrParamRequired("UnshareTarget"))
16594	}
16595	if s.UnshareTarget != nil {
16596		if err := s.UnshareTarget.Validate(); err != nil {
16597			invalidParams.AddNested("UnshareTarget", err.(request.ErrInvalidParams))
16598		}
16599	}
16600
16601	if invalidParams.Len() > 0 {
16602		return invalidParams
16603	}
16604	return nil
16605}
16606
16607// SetDirectoryId sets the DirectoryId field's value.
16608func (s *UnshareDirectoryInput) SetDirectoryId(v string) *UnshareDirectoryInput {
16609	s.DirectoryId = &v
16610	return s
16611}
16612
16613// SetUnshareTarget sets the UnshareTarget field's value.
16614func (s *UnshareDirectoryInput) SetUnshareTarget(v *UnshareTarget) *UnshareDirectoryInput {
16615	s.UnshareTarget = v
16616	return s
16617}
16618
16619type UnshareDirectoryOutput struct {
16620	_ struct{} `type:"structure"`
16621
16622	// Identifier of the directory stored in the directory consumer account that
16623	// is to be unshared from the specified directory (DirectoryId).
16624	SharedDirectoryId *string `type:"string"`
16625}
16626
16627// String returns the string representation.
16628//
16629// API parameter values that are decorated as "sensitive" in the API will not
16630// be included in the string output. The member name will be present, but the
16631// value will be replaced with "sensitive".
16632func (s UnshareDirectoryOutput) String() string {
16633	return awsutil.Prettify(s)
16634}
16635
16636// GoString returns the string representation.
16637//
16638// API parameter values that are decorated as "sensitive" in the API will not
16639// be included in the string output. The member name will be present, but the
16640// value will be replaced with "sensitive".
16641func (s UnshareDirectoryOutput) GoString() string {
16642	return s.String()
16643}
16644
16645// SetSharedDirectoryId sets the SharedDirectoryId field's value.
16646func (s *UnshareDirectoryOutput) SetSharedDirectoryId(v string) *UnshareDirectoryOutput {
16647	s.SharedDirectoryId = &v
16648	return s
16649}
16650
16651// Identifier that contains details about the directory consumer account with
16652// whom the directory is being unshared.
16653type UnshareTarget struct {
16654	_ struct{} `type:"structure"`
16655
16656	// Identifier of the directory consumer account.
16657	//
16658	// Id is a required field
16659	Id *string `min:"1" type:"string" required:"true"`
16660
16661	// Type of identifier to be used in the Id field.
16662	//
16663	// Type is a required field
16664	Type *string `type:"string" required:"true" enum:"TargetType"`
16665}
16666
16667// String returns the string representation.
16668//
16669// API parameter values that are decorated as "sensitive" in the API will not
16670// be included in the string output. The member name will be present, but the
16671// value will be replaced with "sensitive".
16672func (s UnshareTarget) String() string {
16673	return awsutil.Prettify(s)
16674}
16675
16676// GoString returns the string representation.
16677//
16678// API parameter values that are decorated as "sensitive" in the API will not
16679// be included in the string output. The member name will be present, but the
16680// value will be replaced with "sensitive".
16681func (s UnshareTarget) GoString() string {
16682	return s.String()
16683}
16684
16685// Validate inspects the fields of the type to determine if they are valid.
16686func (s *UnshareTarget) Validate() error {
16687	invalidParams := request.ErrInvalidParams{Context: "UnshareTarget"}
16688	if s.Id == nil {
16689		invalidParams.Add(request.NewErrParamRequired("Id"))
16690	}
16691	if s.Id != nil && len(*s.Id) < 1 {
16692		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
16693	}
16694	if s.Type == nil {
16695		invalidParams.Add(request.NewErrParamRequired("Type"))
16696	}
16697
16698	if invalidParams.Len() > 0 {
16699		return invalidParams
16700	}
16701	return nil
16702}
16703
16704// SetId sets the Id field's value.
16705func (s *UnshareTarget) SetId(v string) *UnshareTarget {
16706	s.Id = &v
16707	return s
16708}
16709
16710// SetType sets the Type field's value.
16711func (s *UnshareTarget) SetType(v string) *UnshareTarget {
16712	s.Type = &v
16713	return s
16714}
16715
16716// The operation is not supported.
16717type UnsupportedOperationException struct {
16718	_            struct{}                  `type:"structure"`
16719	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16720
16721	// The descriptive message for the exception.
16722	Message_ *string `locationName:"Message" type:"string"`
16723
16724	// The Amazon Web Services request identifier.
16725	RequestId *string `type:"string"`
16726}
16727
16728// String returns the string representation.
16729//
16730// API parameter values that are decorated as "sensitive" in the API will not
16731// be included in the string output. The member name will be present, but the
16732// value will be replaced with "sensitive".
16733func (s UnsupportedOperationException) String() string {
16734	return awsutil.Prettify(s)
16735}
16736
16737// GoString returns the string representation.
16738//
16739// API parameter values that are decorated as "sensitive" in the API will not
16740// be included in the string output. The member name will be present, but the
16741// value will be replaced with "sensitive".
16742func (s UnsupportedOperationException) GoString() string {
16743	return s.String()
16744}
16745
16746func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error {
16747	return &UnsupportedOperationException{
16748		RespMetadata: v,
16749	}
16750}
16751
16752// Code returns the exception type name.
16753func (s *UnsupportedOperationException) Code() string {
16754	return "UnsupportedOperationException"
16755}
16756
16757// Message returns the exception's message.
16758func (s *UnsupportedOperationException) Message() string {
16759	if s.Message_ != nil {
16760		return *s.Message_
16761	}
16762	return ""
16763}
16764
16765// OrigErr always returns nil, satisfies awserr.Error interface.
16766func (s *UnsupportedOperationException) OrigErr() error {
16767	return nil
16768}
16769
16770func (s *UnsupportedOperationException) Error() string {
16771	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16772}
16773
16774// Status code returns the HTTP status code for the request's response error.
16775func (s *UnsupportedOperationException) StatusCode() int {
16776	return s.RespMetadata.StatusCode
16777}
16778
16779// RequestID returns the service's response RequestID for request.
16780func (s *UnsupportedOperationException) RequestID() string {
16781	return s.RespMetadata.RequestID
16782}
16783
16784// Updates a conditional forwarder.
16785type UpdateConditionalForwarderInput struct {
16786	_ struct{} `type:"structure"`
16787
16788	// The directory ID of the Amazon Web Services directory for which to update
16789	// the conditional forwarder.
16790	//
16791	// DirectoryId is a required field
16792	DirectoryId *string `type:"string" required:"true"`
16793
16794	// The updated IP addresses of the remote DNS server associated with the conditional
16795	// forwarder.
16796	//
16797	// DnsIpAddrs is a required field
16798	DnsIpAddrs []*string `type:"list" required:"true"`
16799
16800	// The fully qualified domain name (FQDN) of the remote domain with which you
16801	// will set up a trust relationship.
16802	//
16803	// RemoteDomainName is a required field
16804	RemoteDomainName *string `type:"string" required:"true"`
16805}
16806
16807// String returns the string representation.
16808//
16809// API parameter values that are decorated as "sensitive" in the API will not
16810// be included in the string output. The member name will be present, but the
16811// value will be replaced with "sensitive".
16812func (s UpdateConditionalForwarderInput) String() string {
16813	return awsutil.Prettify(s)
16814}
16815
16816// GoString returns the string representation.
16817//
16818// API parameter values that are decorated as "sensitive" in the API will not
16819// be included in the string output. The member name will be present, but the
16820// value will be replaced with "sensitive".
16821func (s UpdateConditionalForwarderInput) GoString() string {
16822	return s.String()
16823}
16824
16825// Validate inspects the fields of the type to determine if they are valid.
16826func (s *UpdateConditionalForwarderInput) Validate() error {
16827	invalidParams := request.ErrInvalidParams{Context: "UpdateConditionalForwarderInput"}
16828	if s.DirectoryId == nil {
16829		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
16830	}
16831	if s.DnsIpAddrs == nil {
16832		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
16833	}
16834	if s.RemoteDomainName == nil {
16835		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
16836	}
16837
16838	if invalidParams.Len() > 0 {
16839		return invalidParams
16840	}
16841	return nil
16842}
16843
16844// SetDirectoryId sets the DirectoryId field's value.
16845func (s *UpdateConditionalForwarderInput) SetDirectoryId(v string) *UpdateConditionalForwarderInput {
16846	s.DirectoryId = &v
16847	return s
16848}
16849
16850// SetDnsIpAddrs sets the DnsIpAddrs field's value.
16851func (s *UpdateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *UpdateConditionalForwarderInput {
16852	s.DnsIpAddrs = v
16853	return s
16854}
16855
16856// SetRemoteDomainName sets the RemoteDomainName field's value.
16857func (s *UpdateConditionalForwarderInput) SetRemoteDomainName(v string) *UpdateConditionalForwarderInput {
16858	s.RemoteDomainName = &v
16859	return s
16860}
16861
16862// The result of an UpdateConditionalForwarder request.
16863type UpdateConditionalForwarderOutput struct {
16864	_ struct{} `type:"structure"`
16865}
16866
16867// String returns the string representation.
16868//
16869// API parameter values that are decorated as "sensitive" in the API will not
16870// be included in the string output. The member name will be present, but the
16871// value will be replaced with "sensitive".
16872func (s UpdateConditionalForwarderOutput) String() string {
16873	return awsutil.Prettify(s)
16874}
16875
16876// GoString returns the string representation.
16877//
16878// API parameter values that are decorated as "sensitive" in the API will not
16879// be included in the string output. The member name will be present, but the
16880// value will be replaced with "sensitive".
16881func (s UpdateConditionalForwarderOutput) GoString() string {
16882	return s.String()
16883}
16884
16885type UpdateNumberOfDomainControllersInput struct {
16886	_ struct{} `type:"structure"`
16887
16888	// The number of domain controllers desired in the directory.
16889	//
16890	// DesiredNumber is a required field
16891	DesiredNumber *int64 `min:"2" type:"integer" required:"true"`
16892
16893	// Identifier of the directory to which the domain controllers will be added
16894	// or removed.
16895	//
16896	// DirectoryId is a required field
16897	DirectoryId *string `type:"string" required:"true"`
16898}
16899
16900// String returns the string representation.
16901//
16902// API parameter values that are decorated as "sensitive" in the API will not
16903// be included in the string output. The member name will be present, but the
16904// value will be replaced with "sensitive".
16905func (s UpdateNumberOfDomainControllersInput) String() string {
16906	return awsutil.Prettify(s)
16907}
16908
16909// GoString returns the string representation.
16910//
16911// API parameter values that are decorated as "sensitive" in the API will not
16912// be included in the string output. The member name will be present, but the
16913// value will be replaced with "sensitive".
16914func (s UpdateNumberOfDomainControllersInput) GoString() string {
16915	return s.String()
16916}
16917
16918// Validate inspects the fields of the type to determine if they are valid.
16919func (s *UpdateNumberOfDomainControllersInput) Validate() error {
16920	invalidParams := request.ErrInvalidParams{Context: "UpdateNumberOfDomainControllersInput"}
16921	if s.DesiredNumber == nil {
16922		invalidParams.Add(request.NewErrParamRequired("DesiredNumber"))
16923	}
16924	if s.DesiredNumber != nil && *s.DesiredNumber < 2 {
16925		invalidParams.Add(request.NewErrParamMinValue("DesiredNumber", 2))
16926	}
16927	if s.DirectoryId == nil {
16928		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
16929	}
16930
16931	if invalidParams.Len() > 0 {
16932		return invalidParams
16933	}
16934	return nil
16935}
16936
16937// SetDesiredNumber sets the DesiredNumber field's value.
16938func (s *UpdateNumberOfDomainControllersInput) SetDesiredNumber(v int64) *UpdateNumberOfDomainControllersInput {
16939	s.DesiredNumber = &v
16940	return s
16941}
16942
16943// SetDirectoryId sets the DirectoryId field's value.
16944func (s *UpdateNumberOfDomainControllersInput) SetDirectoryId(v string) *UpdateNumberOfDomainControllersInput {
16945	s.DirectoryId = &v
16946	return s
16947}
16948
16949type UpdateNumberOfDomainControllersOutput struct {
16950	_ struct{} `type:"structure"`
16951}
16952
16953// String returns the string representation.
16954//
16955// API parameter values that are decorated as "sensitive" in the API will not
16956// be included in the string output. The member name will be present, but the
16957// value will be replaced with "sensitive".
16958func (s UpdateNumberOfDomainControllersOutput) String() string {
16959	return awsutil.Prettify(s)
16960}
16961
16962// GoString returns the string representation.
16963//
16964// API parameter values that are decorated as "sensitive" in the API will not
16965// be included in the string output. The member name will be present, but the
16966// value will be replaced with "sensitive".
16967func (s UpdateNumberOfDomainControllersOutput) GoString() string {
16968	return s.String()
16969}
16970
16971// Contains the inputs for the UpdateRadius operation.
16972type UpdateRadiusInput struct {
16973	_ struct{} `type:"structure"`
16974
16975	// The identifier of the directory for which to update the RADIUS server information.
16976	//
16977	// DirectoryId is a required field
16978	DirectoryId *string `type:"string" required:"true"`
16979
16980	// A RadiusSettings object that contains information about the RADIUS server.
16981	//
16982	// RadiusSettings is a required field
16983	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
16984}
16985
16986// String returns the string representation.
16987//
16988// API parameter values that are decorated as "sensitive" in the API will not
16989// be included in the string output. The member name will be present, but the
16990// value will be replaced with "sensitive".
16991func (s UpdateRadiusInput) String() string {
16992	return awsutil.Prettify(s)
16993}
16994
16995// GoString returns the string representation.
16996//
16997// API parameter values that are decorated as "sensitive" in the API will not
16998// be included in the string output. The member name will be present, but the
16999// value will be replaced with "sensitive".
17000func (s UpdateRadiusInput) GoString() string {
17001	return s.String()
17002}
17003
17004// Validate inspects the fields of the type to determine if they are valid.
17005func (s *UpdateRadiusInput) Validate() error {
17006	invalidParams := request.ErrInvalidParams{Context: "UpdateRadiusInput"}
17007	if s.DirectoryId == nil {
17008		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
17009	}
17010	if s.RadiusSettings == nil {
17011		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
17012	}
17013	if s.RadiusSettings != nil {
17014		if err := s.RadiusSettings.Validate(); err != nil {
17015			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
17016		}
17017	}
17018
17019	if invalidParams.Len() > 0 {
17020		return invalidParams
17021	}
17022	return nil
17023}
17024
17025// SetDirectoryId sets the DirectoryId field's value.
17026func (s *UpdateRadiusInput) SetDirectoryId(v string) *UpdateRadiusInput {
17027	s.DirectoryId = &v
17028	return s
17029}
17030
17031// SetRadiusSettings sets the RadiusSettings field's value.
17032func (s *UpdateRadiusInput) SetRadiusSettings(v *RadiusSettings) *UpdateRadiusInput {
17033	s.RadiusSettings = v
17034	return s
17035}
17036
17037// Contains the results of the UpdateRadius operation.
17038type UpdateRadiusOutput struct {
17039	_ struct{} `type:"structure"`
17040}
17041
17042// String returns the string representation.
17043//
17044// API parameter values that are decorated as "sensitive" in the API will not
17045// be included in the string output. The member name will be present, but the
17046// value will be replaced with "sensitive".
17047func (s UpdateRadiusOutput) String() string {
17048	return awsutil.Prettify(s)
17049}
17050
17051// GoString returns the string representation.
17052//
17053// API parameter values that are decorated as "sensitive" in the API will not
17054// be included in the string output. The member name will be present, but the
17055// value will be replaced with "sensitive".
17056func (s UpdateRadiusOutput) GoString() string {
17057	return s.String()
17058}
17059
17060type UpdateTrustInput struct {
17061	_ struct{} `type:"structure"`
17062
17063	// Updates selective authentication for the trust.
17064	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
17065
17066	// Identifier of the trust relationship.
17067	//
17068	// TrustId is a required field
17069	TrustId *string `type:"string" required:"true"`
17070}
17071
17072// String returns the string representation.
17073//
17074// API parameter values that are decorated as "sensitive" in the API will not
17075// be included in the string output. The member name will be present, but the
17076// value will be replaced with "sensitive".
17077func (s UpdateTrustInput) String() string {
17078	return awsutil.Prettify(s)
17079}
17080
17081// GoString returns the string representation.
17082//
17083// API parameter values that are decorated as "sensitive" in the API will not
17084// be included in the string output. The member name will be present, but the
17085// value will be replaced with "sensitive".
17086func (s UpdateTrustInput) GoString() string {
17087	return s.String()
17088}
17089
17090// Validate inspects the fields of the type to determine if they are valid.
17091func (s *UpdateTrustInput) Validate() error {
17092	invalidParams := request.ErrInvalidParams{Context: "UpdateTrustInput"}
17093	if s.TrustId == nil {
17094		invalidParams.Add(request.NewErrParamRequired("TrustId"))
17095	}
17096
17097	if invalidParams.Len() > 0 {
17098		return invalidParams
17099	}
17100	return nil
17101}
17102
17103// SetSelectiveAuth sets the SelectiveAuth field's value.
17104func (s *UpdateTrustInput) SetSelectiveAuth(v string) *UpdateTrustInput {
17105	s.SelectiveAuth = &v
17106	return s
17107}
17108
17109// SetTrustId sets the TrustId field's value.
17110func (s *UpdateTrustInput) SetTrustId(v string) *UpdateTrustInput {
17111	s.TrustId = &v
17112	return s
17113}
17114
17115type UpdateTrustOutput struct {
17116	_ struct{} `type:"structure"`
17117
17118	// The Amazon Web Services request identifier.
17119	RequestId *string `type:"string"`
17120
17121	// Identifier of the trust relationship.
17122	TrustId *string `type:"string"`
17123}
17124
17125// String returns the string representation.
17126//
17127// API parameter values that are decorated as "sensitive" in the API will not
17128// be included in the string output. The member name will be present, but the
17129// value will be replaced with "sensitive".
17130func (s UpdateTrustOutput) String() string {
17131	return awsutil.Prettify(s)
17132}
17133
17134// GoString returns the string representation.
17135//
17136// API parameter values that are decorated as "sensitive" in the API will not
17137// be included in the string output. The member name will be present, but the
17138// value will be replaced with "sensitive".
17139func (s UpdateTrustOutput) GoString() string {
17140	return s.String()
17141}
17142
17143// SetRequestId sets the RequestId field's value.
17144func (s *UpdateTrustOutput) SetRequestId(v string) *UpdateTrustOutput {
17145	s.RequestId = &v
17146	return s
17147}
17148
17149// SetTrustId sets the TrustId field's value.
17150func (s *UpdateTrustOutput) SetTrustId(v string) *UpdateTrustOutput {
17151	s.TrustId = &v
17152	return s
17153}
17154
17155// The user provided a username that does not exist in your directory.
17156type UserDoesNotExistException struct {
17157	_            struct{}                  `type:"structure"`
17158	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17159
17160	// The descriptive message for the exception.
17161	Message_ *string `locationName:"Message" type:"string"`
17162
17163	// The Amazon Web Services request identifier.
17164	RequestId *string `type:"string"`
17165}
17166
17167// String returns the string representation.
17168//
17169// API parameter values that are decorated as "sensitive" in the API will not
17170// be included in the string output. The member name will be present, but the
17171// value will be replaced with "sensitive".
17172func (s UserDoesNotExistException) String() string {
17173	return awsutil.Prettify(s)
17174}
17175
17176// GoString returns the string representation.
17177//
17178// API parameter values that are decorated as "sensitive" in the API will not
17179// be included in the string output. The member name will be present, but the
17180// value will be replaced with "sensitive".
17181func (s UserDoesNotExistException) GoString() string {
17182	return s.String()
17183}
17184
17185func newErrorUserDoesNotExistException(v protocol.ResponseMetadata) error {
17186	return &UserDoesNotExistException{
17187		RespMetadata: v,
17188	}
17189}
17190
17191// Code returns the exception type name.
17192func (s *UserDoesNotExistException) Code() string {
17193	return "UserDoesNotExistException"
17194}
17195
17196// Message returns the exception's message.
17197func (s *UserDoesNotExistException) Message() string {
17198	if s.Message_ != nil {
17199		return *s.Message_
17200	}
17201	return ""
17202}
17203
17204// OrigErr always returns nil, satisfies awserr.Error interface.
17205func (s *UserDoesNotExistException) OrigErr() error {
17206	return nil
17207}
17208
17209func (s *UserDoesNotExistException) Error() string {
17210	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
17211}
17212
17213// Status code returns the HTTP status code for the request's response error.
17214func (s *UserDoesNotExistException) StatusCode() int {
17215	return s.RespMetadata.StatusCode
17216}
17217
17218// RequestID returns the service's response RequestID for request.
17219func (s *UserDoesNotExistException) RequestID() string {
17220	return s.RespMetadata.RequestID
17221}
17222
17223// Initiates the verification of an existing trust relationship between an Managed
17224// Microsoft AD directory and an external domain.
17225type VerifyTrustInput struct {
17226	_ struct{} `type:"structure"`
17227
17228	// The unique Trust ID of the trust relationship to verify.
17229	//
17230	// TrustId is a required field
17231	TrustId *string `type:"string" required:"true"`
17232}
17233
17234// String returns the string representation.
17235//
17236// API parameter values that are decorated as "sensitive" in the API will not
17237// be included in the string output. The member name will be present, but the
17238// value will be replaced with "sensitive".
17239func (s VerifyTrustInput) String() string {
17240	return awsutil.Prettify(s)
17241}
17242
17243// GoString returns the string representation.
17244//
17245// API parameter values that are decorated as "sensitive" in the API will not
17246// be included in the string output. The member name will be present, but the
17247// value will be replaced with "sensitive".
17248func (s VerifyTrustInput) GoString() string {
17249	return s.String()
17250}
17251
17252// Validate inspects the fields of the type to determine if they are valid.
17253func (s *VerifyTrustInput) Validate() error {
17254	invalidParams := request.ErrInvalidParams{Context: "VerifyTrustInput"}
17255	if s.TrustId == nil {
17256		invalidParams.Add(request.NewErrParamRequired("TrustId"))
17257	}
17258
17259	if invalidParams.Len() > 0 {
17260		return invalidParams
17261	}
17262	return nil
17263}
17264
17265// SetTrustId sets the TrustId field's value.
17266func (s *VerifyTrustInput) SetTrustId(v string) *VerifyTrustInput {
17267	s.TrustId = &v
17268	return s
17269}
17270
17271// Result of a VerifyTrust request.
17272type VerifyTrustOutput struct {
17273	_ struct{} `type:"structure"`
17274
17275	// The unique Trust ID of the trust relationship that was verified.
17276	TrustId *string `type:"string"`
17277}
17278
17279// String returns the string representation.
17280//
17281// API parameter values that are decorated as "sensitive" in the API will not
17282// be included in the string output. The member name will be present, but the
17283// value will be replaced with "sensitive".
17284func (s VerifyTrustOutput) String() string {
17285	return awsutil.Prettify(s)
17286}
17287
17288// GoString returns the string representation.
17289//
17290// API parameter values that are decorated as "sensitive" in the API will not
17291// be included in the string output. The member name will be present, but the
17292// value will be replaced with "sensitive".
17293func (s VerifyTrustOutput) GoString() string {
17294	return s.String()
17295}
17296
17297// SetTrustId sets the TrustId field's value.
17298func (s *VerifyTrustOutput) SetTrustId(v string) *VerifyTrustOutput {
17299	s.TrustId = &v
17300	return s
17301}
17302
17303const (
17304	// CertificateStateRegistering is a CertificateState enum value
17305	CertificateStateRegistering = "Registering"
17306
17307	// CertificateStateRegistered is a CertificateState enum value
17308	CertificateStateRegistered = "Registered"
17309
17310	// CertificateStateRegisterFailed is a CertificateState enum value
17311	CertificateStateRegisterFailed = "RegisterFailed"
17312
17313	// CertificateStateDeregistering is a CertificateState enum value
17314	CertificateStateDeregistering = "Deregistering"
17315
17316	// CertificateStateDeregistered is a CertificateState enum value
17317	CertificateStateDeregistered = "Deregistered"
17318
17319	// CertificateStateDeregisterFailed is a CertificateState enum value
17320	CertificateStateDeregisterFailed = "DeregisterFailed"
17321)
17322
17323// CertificateState_Values returns all elements of the CertificateState enum
17324func CertificateState_Values() []string {
17325	return []string{
17326		CertificateStateRegistering,
17327		CertificateStateRegistered,
17328		CertificateStateRegisterFailed,
17329		CertificateStateDeregistering,
17330		CertificateStateDeregistered,
17331		CertificateStateDeregisterFailed,
17332	}
17333}
17334
17335const (
17336	// CertificateTypeClientCertAuth is a CertificateType enum value
17337	CertificateTypeClientCertAuth = "ClientCertAuth"
17338
17339	// CertificateTypeClientLdaps is a CertificateType enum value
17340	CertificateTypeClientLdaps = "ClientLDAPS"
17341)
17342
17343// CertificateType_Values returns all elements of the CertificateType enum
17344func CertificateType_Values() []string {
17345	return []string{
17346		CertificateTypeClientCertAuth,
17347		CertificateTypeClientLdaps,
17348	}
17349}
17350
17351const (
17352	// ClientAuthenticationStatusEnabled is a ClientAuthenticationStatus enum value
17353	ClientAuthenticationStatusEnabled = "Enabled"
17354
17355	// ClientAuthenticationStatusDisabled is a ClientAuthenticationStatus enum value
17356	ClientAuthenticationStatusDisabled = "Disabled"
17357)
17358
17359// ClientAuthenticationStatus_Values returns all elements of the ClientAuthenticationStatus enum
17360func ClientAuthenticationStatus_Values() []string {
17361	return []string{
17362		ClientAuthenticationStatusEnabled,
17363		ClientAuthenticationStatusDisabled,
17364	}
17365}
17366
17367const (
17368	// ClientAuthenticationTypeSmartCard is a ClientAuthenticationType enum value
17369	ClientAuthenticationTypeSmartCard = "SmartCard"
17370)
17371
17372// ClientAuthenticationType_Values returns all elements of the ClientAuthenticationType enum
17373func ClientAuthenticationType_Values() []string {
17374	return []string{
17375		ClientAuthenticationTypeSmartCard,
17376	}
17377}
17378
17379const (
17380	// DirectoryEditionEnterprise is a DirectoryEdition enum value
17381	DirectoryEditionEnterprise = "Enterprise"
17382
17383	// DirectoryEditionStandard is a DirectoryEdition enum value
17384	DirectoryEditionStandard = "Standard"
17385)
17386
17387// DirectoryEdition_Values returns all elements of the DirectoryEdition enum
17388func DirectoryEdition_Values() []string {
17389	return []string{
17390		DirectoryEditionEnterprise,
17391		DirectoryEditionStandard,
17392	}
17393}
17394
17395const (
17396	// DirectorySizeSmall is a DirectorySize enum value
17397	DirectorySizeSmall = "Small"
17398
17399	// DirectorySizeLarge is a DirectorySize enum value
17400	DirectorySizeLarge = "Large"
17401)
17402
17403// DirectorySize_Values returns all elements of the DirectorySize enum
17404func DirectorySize_Values() []string {
17405	return []string{
17406		DirectorySizeSmall,
17407		DirectorySizeLarge,
17408	}
17409}
17410
17411const (
17412	// DirectoryStageRequested is a DirectoryStage enum value
17413	DirectoryStageRequested = "Requested"
17414
17415	// DirectoryStageCreating is a DirectoryStage enum value
17416	DirectoryStageCreating = "Creating"
17417
17418	// DirectoryStageCreated is a DirectoryStage enum value
17419	DirectoryStageCreated = "Created"
17420
17421	// DirectoryStageActive is a DirectoryStage enum value
17422	DirectoryStageActive = "Active"
17423
17424	// DirectoryStageInoperable is a DirectoryStage enum value
17425	DirectoryStageInoperable = "Inoperable"
17426
17427	// DirectoryStageImpaired is a DirectoryStage enum value
17428	DirectoryStageImpaired = "Impaired"
17429
17430	// DirectoryStageRestoring is a DirectoryStage enum value
17431	DirectoryStageRestoring = "Restoring"
17432
17433	// DirectoryStageRestoreFailed is a DirectoryStage enum value
17434	DirectoryStageRestoreFailed = "RestoreFailed"
17435
17436	// DirectoryStageDeleting is a DirectoryStage enum value
17437	DirectoryStageDeleting = "Deleting"
17438
17439	// DirectoryStageDeleted is a DirectoryStage enum value
17440	DirectoryStageDeleted = "Deleted"
17441
17442	// DirectoryStageFailed is a DirectoryStage enum value
17443	DirectoryStageFailed = "Failed"
17444)
17445
17446// DirectoryStage_Values returns all elements of the DirectoryStage enum
17447func DirectoryStage_Values() []string {
17448	return []string{
17449		DirectoryStageRequested,
17450		DirectoryStageCreating,
17451		DirectoryStageCreated,
17452		DirectoryStageActive,
17453		DirectoryStageInoperable,
17454		DirectoryStageImpaired,
17455		DirectoryStageRestoring,
17456		DirectoryStageRestoreFailed,
17457		DirectoryStageDeleting,
17458		DirectoryStageDeleted,
17459		DirectoryStageFailed,
17460	}
17461}
17462
17463const (
17464	// DirectoryTypeSimpleAd is a DirectoryType enum value
17465	DirectoryTypeSimpleAd = "SimpleAD"
17466
17467	// DirectoryTypeAdconnector is a DirectoryType enum value
17468	DirectoryTypeAdconnector = "ADConnector"
17469
17470	// DirectoryTypeMicrosoftAd is a DirectoryType enum value
17471	DirectoryTypeMicrosoftAd = "MicrosoftAD"
17472
17473	// DirectoryTypeSharedMicrosoftAd is a DirectoryType enum value
17474	DirectoryTypeSharedMicrosoftAd = "SharedMicrosoftAD"
17475)
17476
17477// DirectoryType_Values returns all elements of the DirectoryType enum
17478func DirectoryType_Values() []string {
17479	return []string{
17480		DirectoryTypeSimpleAd,
17481		DirectoryTypeAdconnector,
17482		DirectoryTypeMicrosoftAd,
17483		DirectoryTypeSharedMicrosoftAd,
17484	}
17485}
17486
17487const (
17488	// DomainControllerStatusCreating is a DomainControllerStatus enum value
17489	DomainControllerStatusCreating = "Creating"
17490
17491	// DomainControllerStatusActive is a DomainControllerStatus enum value
17492	DomainControllerStatusActive = "Active"
17493
17494	// DomainControllerStatusImpaired is a DomainControllerStatus enum value
17495	DomainControllerStatusImpaired = "Impaired"
17496
17497	// DomainControllerStatusRestoring is a DomainControllerStatus enum value
17498	DomainControllerStatusRestoring = "Restoring"
17499
17500	// DomainControllerStatusDeleting is a DomainControllerStatus enum value
17501	DomainControllerStatusDeleting = "Deleting"
17502
17503	// DomainControllerStatusDeleted is a DomainControllerStatus enum value
17504	DomainControllerStatusDeleted = "Deleted"
17505
17506	// DomainControllerStatusFailed is a DomainControllerStatus enum value
17507	DomainControllerStatusFailed = "Failed"
17508)
17509
17510// DomainControllerStatus_Values returns all elements of the DomainControllerStatus enum
17511func DomainControllerStatus_Values() []string {
17512	return []string{
17513		DomainControllerStatusCreating,
17514		DomainControllerStatusActive,
17515		DomainControllerStatusImpaired,
17516		DomainControllerStatusRestoring,
17517		DomainControllerStatusDeleting,
17518		DomainControllerStatusDeleted,
17519		DomainControllerStatusFailed,
17520	}
17521}
17522
17523const (
17524	// IpRouteStatusMsgAdding is a IpRouteStatusMsg enum value
17525	IpRouteStatusMsgAdding = "Adding"
17526
17527	// IpRouteStatusMsgAdded is a IpRouteStatusMsg enum value
17528	IpRouteStatusMsgAdded = "Added"
17529
17530	// IpRouteStatusMsgRemoving is a IpRouteStatusMsg enum value
17531	IpRouteStatusMsgRemoving = "Removing"
17532
17533	// IpRouteStatusMsgRemoved is a IpRouteStatusMsg enum value
17534	IpRouteStatusMsgRemoved = "Removed"
17535
17536	// IpRouteStatusMsgAddFailed is a IpRouteStatusMsg enum value
17537	IpRouteStatusMsgAddFailed = "AddFailed"
17538
17539	// IpRouteStatusMsgRemoveFailed is a IpRouteStatusMsg enum value
17540	IpRouteStatusMsgRemoveFailed = "RemoveFailed"
17541)
17542
17543// IpRouteStatusMsg_Values returns all elements of the IpRouteStatusMsg enum
17544func IpRouteStatusMsg_Values() []string {
17545	return []string{
17546		IpRouteStatusMsgAdding,
17547		IpRouteStatusMsgAdded,
17548		IpRouteStatusMsgRemoving,
17549		IpRouteStatusMsgRemoved,
17550		IpRouteStatusMsgAddFailed,
17551		IpRouteStatusMsgRemoveFailed,
17552	}
17553}
17554
17555const (
17556	// LDAPSStatusEnabling is a LDAPSStatus enum value
17557	LDAPSStatusEnabling = "Enabling"
17558
17559	// LDAPSStatusEnabled is a LDAPSStatus enum value
17560	LDAPSStatusEnabled = "Enabled"
17561
17562	// LDAPSStatusEnableFailed is a LDAPSStatus enum value
17563	LDAPSStatusEnableFailed = "EnableFailed"
17564
17565	// LDAPSStatusDisabled is a LDAPSStatus enum value
17566	LDAPSStatusDisabled = "Disabled"
17567)
17568
17569// LDAPSStatus_Values returns all elements of the LDAPSStatus enum
17570func LDAPSStatus_Values() []string {
17571	return []string{
17572		LDAPSStatusEnabling,
17573		LDAPSStatusEnabled,
17574		LDAPSStatusEnableFailed,
17575		LDAPSStatusDisabled,
17576	}
17577}
17578
17579const (
17580	// LDAPSTypeClient is a LDAPSType enum value
17581	LDAPSTypeClient = "Client"
17582)
17583
17584// LDAPSType_Values returns all elements of the LDAPSType enum
17585func LDAPSType_Values() []string {
17586	return []string{
17587		LDAPSTypeClient,
17588	}
17589}
17590
17591const (
17592	// RadiusAuthenticationProtocolPap is a RadiusAuthenticationProtocol enum value
17593	RadiusAuthenticationProtocolPap = "PAP"
17594
17595	// RadiusAuthenticationProtocolChap is a RadiusAuthenticationProtocol enum value
17596	RadiusAuthenticationProtocolChap = "CHAP"
17597
17598	// RadiusAuthenticationProtocolMsChapv1 is a RadiusAuthenticationProtocol enum value
17599	RadiusAuthenticationProtocolMsChapv1 = "MS-CHAPv1"
17600
17601	// RadiusAuthenticationProtocolMsChapv2 is a RadiusAuthenticationProtocol enum value
17602	RadiusAuthenticationProtocolMsChapv2 = "MS-CHAPv2"
17603)
17604
17605// RadiusAuthenticationProtocol_Values returns all elements of the RadiusAuthenticationProtocol enum
17606func RadiusAuthenticationProtocol_Values() []string {
17607	return []string{
17608		RadiusAuthenticationProtocolPap,
17609		RadiusAuthenticationProtocolChap,
17610		RadiusAuthenticationProtocolMsChapv1,
17611		RadiusAuthenticationProtocolMsChapv2,
17612	}
17613}
17614
17615const (
17616	// RadiusStatusCreating is a RadiusStatus enum value
17617	RadiusStatusCreating = "Creating"
17618
17619	// RadiusStatusCompleted is a RadiusStatus enum value
17620	RadiusStatusCompleted = "Completed"
17621
17622	// RadiusStatusFailed is a RadiusStatus enum value
17623	RadiusStatusFailed = "Failed"
17624)
17625
17626// RadiusStatus_Values returns all elements of the RadiusStatus enum
17627func RadiusStatus_Values() []string {
17628	return []string{
17629		RadiusStatusCreating,
17630		RadiusStatusCompleted,
17631		RadiusStatusFailed,
17632	}
17633}
17634
17635const (
17636	// RegionTypePrimary is a RegionType enum value
17637	RegionTypePrimary = "Primary"
17638
17639	// RegionTypeAdditional is a RegionType enum value
17640	RegionTypeAdditional = "Additional"
17641)
17642
17643// RegionType_Values returns all elements of the RegionType enum
17644func RegionType_Values() []string {
17645	return []string{
17646		RegionTypePrimary,
17647		RegionTypeAdditional,
17648	}
17649}
17650
17651const (
17652	// ReplicationScopeDomain is a ReplicationScope enum value
17653	ReplicationScopeDomain = "Domain"
17654)
17655
17656// ReplicationScope_Values returns all elements of the ReplicationScope enum
17657func ReplicationScope_Values() []string {
17658	return []string{
17659		ReplicationScopeDomain,
17660	}
17661}
17662
17663const (
17664	// SchemaExtensionStatusInitializing is a SchemaExtensionStatus enum value
17665	SchemaExtensionStatusInitializing = "Initializing"
17666
17667	// SchemaExtensionStatusCreatingSnapshot is a SchemaExtensionStatus enum value
17668	SchemaExtensionStatusCreatingSnapshot = "CreatingSnapshot"
17669
17670	// SchemaExtensionStatusUpdatingSchema is a SchemaExtensionStatus enum value
17671	SchemaExtensionStatusUpdatingSchema = "UpdatingSchema"
17672
17673	// SchemaExtensionStatusReplicating is a SchemaExtensionStatus enum value
17674	SchemaExtensionStatusReplicating = "Replicating"
17675
17676	// SchemaExtensionStatusCancelInProgress is a SchemaExtensionStatus enum value
17677	SchemaExtensionStatusCancelInProgress = "CancelInProgress"
17678
17679	// SchemaExtensionStatusRollbackInProgress is a SchemaExtensionStatus enum value
17680	SchemaExtensionStatusRollbackInProgress = "RollbackInProgress"
17681
17682	// SchemaExtensionStatusCancelled is a SchemaExtensionStatus enum value
17683	SchemaExtensionStatusCancelled = "Cancelled"
17684
17685	// SchemaExtensionStatusFailed is a SchemaExtensionStatus enum value
17686	SchemaExtensionStatusFailed = "Failed"
17687
17688	// SchemaExtensionStatusCompleted is a SchemaExtensionStatus enum value
17689	SchemaExtensionStatusCompleted = "Completed"
17690)
17691
17692// SchemaExtensionStatus_Values returns all elements of the SchemaExtensionStatus enum
17693func SchemaExtensionStatus_Values() []string {
17694	return []string{
17695		SchemaExtensionStatusInitializing,
17696		SchemaExtensionStatusCreatingSnapshot,
17697		SchemaExtensionStatusUpdatingSchema,
17698		SchemaExtensionStatusReplicating,
17699		SchemaExtensionStatusCancelInProgress,
17700		SchemaExtensionStatusRollbackInProgress,
17701		SchemaExtensionStatusCancelled,
17702		SchemaExtensionStatusFailed,
17703		SchemaExtensionStatusCompleted,
17704	}
17705}
17706
17707const (
17708	// SelectiveAuthEnabled is a SelectiveAuth enum value
17709	SelectiveAuthEnabled = "Enabled"
17710
17711	// SelectiveAuthDisabled is a SelectiveAuth enum value
17712	SelectiveAuthDisabled = "Disabled"
17713)
17714
17715// SelectiveAuth_Values returns all elements of the SelectiveAuth enum
17716func SelectiveAuth_Values() []string {
17717	return []string{
17718		SelectiveAuthEnabled,
17719		SelectiveAuthDisabled,
17720	}
17721}
17722
17723const (
17724	// ShareMethodOrganizations is a ShareMethod enum value
17725	ShareMethodOrganizations = "ORGANIZATIONS"
17726
17727	// ShareMethodHandshake is a ShareMethod enum value
17728	ShareMethodHandshake = "HANDSHAKE"
17729)
17730
17731// ShareMethod_Values returns all elements of the ShareMethod enum
17732func ShareMethod_Values() []string {
17733	return []string{
17734		ShareMethodOrganizations,
17735		ShareMethodHandshake,
17736	}
17737}
17738
17739const (
17740	// ShareStatusShared is a ShareStatus enum value
17741	ShareStatusShared = "Shared"
17742
17743	// ShareStatusPendingAcceptance is a ShareStatus enum value
17744	ShareStatusPendingAcceptance = "PendingAcceptance"
17745
17746	// ShareStatusRejected is a ShareStatus enum value
17747	ShareStatusRejected = "Rejected"
17748
17749	// ShareStatusRejecting is a ShareStatus enum value
17750	ShareStatusRejecting = "Rejecting"
17751
17752	// ShareStatusRejectFailed is a ShareStatus enum value
17753	ShareStatusRejectFailed = "RejectFailed"
17754
17755	// ShareStatusSharing is a ShareStatus enum value
17756	ShareStatusSharing = "Sharing"
17757
17758	// ShareStatusShareFailed is a ShareStatus enum value
17759	ShareStatusShareFailed = "ShareFailed"
17760
17761	// ShareStatusDeleted is a ShareStatus enum value
17762	ShareStatusDeleted = "Deleted"
17763
17764	// ShareStatusDeleting is a ShareStatus enum value
17765	ShareStatusDeleting = "Deleting"
17766)
17767
17768// ShareStatus_Values returns all elements of the ShareStatus enum
17769func ShareStatus_Values() []string {
17770	return []string{
17771		ShareStatusShared,
17772		ShareStatusPendingAcceptance,
17773		ShareStatusRejected,
17774		ShareStatusRejecting,
17775		ShareStatusRejectFailed,
17776		ShareStatusSharing,
17777		ShareStatusShareFailed,
17778		ShareStatusDeleted,
17779		ShareStatusDeleting,
17780	}
17781}
17782
17783const (
17784	// SnapshotStatusCreating is a SnapshotStatus enum value
17785	SnapshotStatusCreating = "Creating"
17786
17787	// SnapshotStatusCompleted is a SnapshotStatus enum value
17788	SnapshotStatusCompleted = "Completed"
17789
17790	// SnapshotStatusFailed is a SnapshotStatus enum value
17791	SnapshotStatusFailed = "Failed"
17792)
17793
17794// SnapshotStatus_Values returns all elements of the SnapshotStatus enum
17795func SnapshotStatus_Values() []string {
17796	return []string{
17797		SnapshotStatusCreating,
17798		SnapshotStatusCompleted,
17799		SnapshotStatusFailed,
17800	}
17801}
17802
17803const (
17804	// SnapshotTypeAuto is a SnapshotType enum value
17805	SnapshotTypeAuto = "Auto"
17806
17807	// SnapshotTypeManual is a SnapshotType enum value
17808	SnapshotTypeManual = "Manual"
17809)
17810
17811// SnapshotType_Values returns all elements of the SnapshotType enum
17812func SnapshotType_Values() []string {
17813	return []string{
17814		SnapshotTypeAuto,
17815		SnapshotTypeManual,
17816	}
17817}
17818
17819const (
17820	// TargetTypeAccount is a TargetType enum value
17821	TargetTypeAccount = "ACCOUNT"
17822)
17823
17824// TargetType_Values returns all elements of the TargetType enum
17825func TargetType_Values() []string {
17826	return []string{
17827		TargetTypeAccount,
17828	}
17829}
17830
17831const (
17832	// TopicStatusRegistered is a TopicStatus enum value
17833	TopicStatusRegistered = "Registered"
17834
17835	// TopicStatusTopicnotfound is a TopicStatus enum value
17836	TopicStatusTopicnotfound = "Topic not found"
17837
17838	// TopicStatusFailed is a TopicStatus enum value
17839	TopicStatusFailed = "Failed"
17840
17841	// TopicStatusDeleted is a TopicStatus enum value
17842	TopicStatusDeleted = "Deleted"
17843)
17844
17845// TopicStatus_Values returns all elements of the TopicStatus enum
17846func TopicStatus_Values() []string {
17847	return []string{
17848		TopicStatusRegistered,
17849		TopicStatusTopicnotfound,
17850		TopicStatusFailed,
17851		TopicStatusDeleted,
17852	}
17853}
17854
17855const (
17856	// TrustDirectionOneWayOutgoing is a TrustDirection enum value
17857	TrustDirectionOneWayOutgoing = "One-Way: Outgoing"
17858
17859	// TrustDirectionOneWayIncoming is a TrustDirection enum value
17860	TrustDirectionOneWayIncoming = "One-Way: Incoming"
17861
17862	// TrustDirectionTwoWay is a TrustDirection enum value
17863	TrustDirectionTwoWay = "Two-Way"
17864)
17865
17866// TrustDirection_Values returns all elements of the TrustDirection enum
17867func TrustDirection_Values() []string {
17868	return []string{
17869		TrustDirectionOneWayOutgoing,
17870		TrustDirectionOneWayIncoming,
17871		TrustDirectionTwoWay,
17872	}
17873}
17874
17875const (
17876	// TrustStateCreating is a TrustState enum value
17877	TrustStateCreating = "Creating"
17878
17879	// TrustStateCreated is a TrustState enum value
17880	TrustStateCreated = "Created"
17881
17882	// TrustStateVerifying is a TrustState enum value
17883	TrustStateVerifying = "Verifying"
17884
17885	// TrustStateVerifyFailed is a TrustState enum value
17886	TrustStateVerifyFailed = "VerifyFailed"
17887
17888	// TrustStateVerified is a TrustState enum value
17889	TrustStateVerified = "Verified"
17890
17891	// TrustStateUpdating is a TrustState enum value
17892	TrustStateUpdating = "Updating"
17893
17894	// TrustStateUpdateFailed is a TrustState enum value
17895	TrustStateUpdateFailed = "UpdateFailed"
17896
17897	// TrustStateUpdated is a TrustState enum value
17898	TrustStateUpdated = "Updated"
17899
17900	// TrustStateDeleting is a TrustState enum value
17901	TrustStateDeleting = "Deleting"
17902
17903	// TrustStateDeleted is a TrustState enum value
17904	TrustStateDeleted = "Deleted"
17905
17906	// TrustStateFailed is a TrustState enum value
17907	TrustStateFailed = "Failed"
17908)
17909
17910// TrustState_Values returns all elements of the TrustState enum
17911func TrustState_Values() []string {
17912	return []string{
17913		TrustStateCreating,
17914		TrustStateCreated,
17915		TrustStateVerifying,
17916		TrustStateVerifyFailed,
17917		TrustStateVerified,
17918		TrustStateUpdating,
17919		TrustStateUpdateFailed,
17920		TrustStateUpdated,
17921		TrustStateDeleting,
17922		TrustStateDeleted,
17923		TrustStateFailed,
17924	}
17925}
17926
17927const (
17928	// TrustTypeForest is a TrustType enum value
17929	TrustTypeForest = "Forest"
17930
17931	// TrustTypeExternal is a TrustType enum value
17932	TrustTypeExternal = "External"
17933)
17934
17935// TrustType_Values returns all elements of the TrustType enum
17936func TrustType_Values() []string {
17937	return []string{
17938		TrustTypeForest,
17939		TrustTypeExternal,
17940	}
17941}
17942