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 Codes:
71//   * ErrCodeInvalidParameterException "InvalidParameterException"
72//   One or more parameters are not valid.
73//
74//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
75//   The specified entity could not be found.
76//
77//   * ErrCodeDirectoryAlreadySharedException "DirectoryAlreadySharedException"
78//   The specified directory has already been shared with this AWS account.
79//
80//   * ErrCodeClientException "ClientException"
81//   A client exception has occurred.
82//
83//   * ErrCodeServiceException "ServiceException"
84//   An exception has occurred in AWS Directory Service.
85//
86// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AcceptSharedDirectory
87func (c *DirectoryService) AcceptSharedDirectory(input *AcceptSharedDirectoryInput) (*AcceptSharedDirectoryOutput, error) {
88	req, out := c.AcceptSharedDirectoryRequest(input)
89	return out, req.Send()
90}
91
92// AcceptSharedDirectoryWithContext is the same as AcceptSharedDirectory with the addition of
93// the ability to pass a context and additional request options.
94//
95// See AcceptSharedDirectory for details on how to use this API operation.
96//
97// The context must be non-nil and will be used for request cancellation. If
98// the context is nil a panic will occur. In the future the SDK may create
99// sub-contexts for http.Requests. See https://golang.org/pkg/context/
100// for more information on using Contexts.
101func (c *DirectoryService) AcceptSharedDirectoryWithContext(ctx aws.Context, input *AcceptSharedDirectoryInput, opts ...request.Option) (*AcceptSharedDirectoryOutput, error) {
102	req, out := c.AcceptSharedDirectoryRequest(input)
103	req.SetContext(ctx)
104	req.ApplyOptions(opts...)
105	return out, req.Send()
106}
107
108const opAddIpRoutes = "AddIpRoutes"
109
110// AddIpRoutesRequest generates a "aws/request.Request" representing the
111// client's request for the AddIpRoutes operation. The "output" return
112// value will be populated with the request's response once the request completes
113// successfully.
114//
115// Use "Send" method on the returned Request to send the API call to the service.
116// the "output" return value is not valid until after Send returns without error.
117//
118// See AddIpRoutes for more information on using the AddIpRoutes
119// API call, and error handling.
120//
121// This method is useful when you want to inject custom logic or configuration
122// into the SDK's request lifecycle. Such as custom headers, or retry logic.
123//
124//
125//    // Example sending a request using the AddIpRoutesRequest method.
126//    req, resp := client.AddIpRoutesRequest(params)
127//
128//    err := req.Send()
129//    if err == nil { // resp is now filled
130//        fmt.Println(resp)
131//    }
132//
133// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutes
134func (c *DirectoryService) AddIpRoutesRequest(input *AddIpRoutesInput) (req *request.Request, output *AddIpRoutesOutput) {
135	op := &request.Operation{
136		Name:       opAddIpRoutes,
137		HTTPMethod: "POST",
138		HTTPPath:   "/",
139	}
140
141	if input == nil {
142		input = &AddIpRoutesInput{}
143	}
144
145	output = &AddIpRoutesOutput{}
146	req = c.newRequest(op, input, output)
147	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
148	return
149}
150
151// AddIpRoutes API operation for AWS Directory Service.
152//
153// If the DNS server for your on-premises domain uses a publicly addressable
154// IP address, you must add a CIDR address block to correctly route traffic
155// to and from your Microsoft AD on Amazon Web Services. AddIpRoutes adds this
156// address block. You can also use AddIpRoutes to facilitate routing traffic
157// that uses public IP ranges from your Microsoft AD on AWS to a peer VPC.
158//
159// Before you call AddIpRoutes, ensure that all of the required permissions
160// have been explicitly granted through a policy. For details about what permissions
161// are required to run the AddIpRoutes operation, see AWS Directory Service
162// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
163//
164// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
165// with awserr.Error's Code and Message methods to get detailed information about
166// the error.
167//
168// See the AWS API reference guide for AWS Directory Service's
169// API operation AddIpRoutes for usage and error information.
170//
171// Returned Error Codes:
172//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
173//   The specified entity could not be found.
174//
175//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
176//   The specified entity already exists.
177//
178//   * ErrCodeInvalidParameterException "InvalidParameterException"
179//   One or more parameters are not valid.
180//
181//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
182//   The specified directory is unavailable or could not be found.
183//
184//   * ErrCodeIpRouteLimitExceededException "IpRouteLimitExceededException"
185//   The maximum allowed number of IP addresses was exceeded. The default limit
186//   is 100 IP address blocks.
187//
188//   * ErrCodeClientException "ClientException"
189//   A client exception has occurred.
190//
191//   * ErrCodeServiceException "ServiceException"
192//   An exception has occurred in AWS Directory Service.
193//
194// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutes
195func (c *DirectoryService) AddIpRoutes(input *AddIpRoutesInput) (*AddIpRoutesOutput, error) {
196	req, out := c.AddIpRoutesRequest(input)
197	return out, req.Send()
198}
199
200// AddIpRoutesWithContext is the same as AddIpRoutes with the addition of
201// the ability to pass a context and additional request options.
202//
203// See AddIpRoutes for details on how to use this API operation.
204//
205// The context must be non-nil and will be used for request cancellation. If
206// the context is nil a panic will occur. In the future the SDK may create
207// sub-contexts for http.Requests. See https://golang.org/pkg/context/
208// for more information on using Contexts.
209func (c *DirectoryService) AddIpRoutesWithContext(ctx aws.Context, input *AddIpRoutesInput, opts ...request.Option) (*AddIpRoutesOutput, error) {
210	req, out := c.AddIpRoutesRequest(input)
211	req.SetContext(ctx)
212	req.ApplyOptions(opts...)
213	return out, req.Send()
214}
215
216const opAddTagsToResource = "AddTagsToResource"
217
218// AddTagsToResourceRequest generates a "aws/request.Request" representing the
219// client's request for the AddTagsToResource operation. The "output" return
220// value will be populated with the request's response once the request completes
221// successfully.
222//
223// Use "Send" method on the returned Request to send the API call to the service.
224// the "output" return value is not valid until after Send returns without error.
225//
226// See AddTagsToResource for more information on using the AddTagsToResource
227// API call, and error handling.
228//
229// This method is useful when you want to inject custom logic or configuration
230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
231//
232//
233//    // Example sending a request using the AddTagsToResourceRequest method.
234//    req, resp := client.AddTagsToResourceRequest(params)
235//
236//    err := req.Send()
237//    if err == nil { // resp is now filled
238//        fmt.Println(resp)
239//    }
240//
241// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResource
242func (c *DirectoryService) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) {
243	op := &request.Operation{
244		Name:       opAddTagsToResource,
245		HTTPMethod: "POST",
246		HTTPPath:   "/",
247	}
248
249	if input == nil {
250		input = &AddTagsToResourceInput{}
251	}
252
253	output = &AddTagsToResourceOutput{}
254	req = c.newRequest(op, input, output)
255	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
256	return
257}
258
259// AddTagsToResource API operation for AWS Directory Service.
260//
261// Adds or overwrites one or more tags for the specified directory. Each directory
262// can have a maximum of 50 tags. Each tag consists of a key and optional value.
263// Tag keys must be unique to each resource.
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 AddTagsToResource for usage and error information.
271//
272// Returned Error Codes:
273//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
274//   The specified entity could not be found.
275//
276//   * ErrCodeInvalidParameterException "InvalidParameterException"
277//   One or more parameters are not valid.
278//
279//   * ErrCodeTagLimitExceededException "TagLimitExceededException"
280//   The maximum allowed number of tags was exceeded.
281//
282//   * ErrCodeClientException "ClientException"
283//   A client exception has occurred.
284//
285//   * ErrCodeServiceException "ServiceException"
286//   An exception has occurred in AWS Directory Service.
287//
288// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResource
289func (c *DirectoryService) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) {
290	req, out := c.AddTagsToResourceRequest(input)
291	return out, req.Send()
292}
293
294// AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of
295// the ability to pass a context and additional request options.
296//
297// See AddTagsToResource for details on how to use this API operation.
298//
299// The context must be non-nil and will be used for request cancellation. If
300// the context is nil a panic will occur. In the future the SDK may create
301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
302// for more information on using Contexts.
303func (c *DirectoryService) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) {
304	req, out := c.AddTagsToResourceRequest(input)
305	req.SetContext(ctx)
306	req.ApplyOptions(opts...)
307	return out, req.Send()
308}
309
310const opCancelSchemaExtension = "CancelSchemaExtension"
311
312// CancelSchemaExtensionRequest generates a "aws/request.Request" representing the
313// client's request for the CancelSchemaExtension operation. The "output" return
314// value will be populated with the request's response once the request completes
315// successfully.
316//
317// Use "Send" method on the returned Request to send the API call to the service.
318// the "output" return value is not valid until after Send returns without error.
319//
320// See CancelSchemaExtension for more information on using the CancelSchemaExtension
321// API call, and error handling.
322//
323// This method is useful when you want to inject custom logic or configuration
324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
325//
326//
327//    // Example sending a request using the CancelSchemaExtensionRequest method.
328//    req, resp := client.CancelSchemaExtensionRequest(params)
329//
330//    err := req.Send()
331//    if err == nil { // resp is now filled
332//        fmt.Println(resp)
333//    }
334//
335// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtension
336func (c *DirectoryService) CancelSchemaExtensionRequest(input *CancelSchemaExtensionInput) (req *request.Request, output *CancelSchemaExtensionOutput) {
337	op := &request.Operation{
338		Name:       opCancelSchemaExtension,
339		HTTPMethod: "POST",
340		HTTPPath:   "/",
341	}
342
343	if input == nil {
344		input = &CancelSchemaExtensionInput{}
345	}
346
347	output = &CancelSchemaExtensionOutput{}
348	req = c.newRequest(op, input, output)
349	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
350	return
351}
352
353// CancelSchemaExtension API operation for AWS Directory Service.
354//
355// Cancels an in-progress schema extension to a Microsoft AD directory. Once
356// a schema extension has started replicating to all domain controllers, the
357// task can no longer be canceled. A schema extension can be canceled during
358// any of the following states; Initializing, CreatingSnapshot, and UpdatingSchema.
359//
360// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
361// with awserr.Error's Code and Message methods to get detailed information about
362// the error.
363//
364// See the AWS API reference guide for AWS Directory Service's
365// API operation CancelSchemaExtension for usage and error information.
366//
367// Returned Error Codes:
368//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
369//   The specified entity could not be found.
370//
371//   * ErrCodeClientException "ClientException"
372//   A client exception has occurred.
373//
374//   * ErrCodeServiceException "ServiceException"
375//   An exception has occurred in AWS Directory Service.
376//
377// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtension
378func (c *DirectoryService) CancelSchemaExtension(input *CancelSchemaExtensionInput) (*CancelSchemaExtensionOutput, error) {
379	req, out := c.CancelSchemaExtensionRequest(input)
380	return out, req.Send()
381}
382
383// CancelSchemaExtensionWithContext is the same as CancelSchemaExtension with the addition of
384// the ability to pass a context and additional request options.
385//
386// See CancelSchemaExtension for details on how to use this API operation.
387//
388// The context must be non-nil and will be used for request cancellation. If
389// the context is nil a panic will occur. In the future the SDK may create
390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
391// for more information on using Contexts.
392func (c *DirectoryService) CancelSchemaExtensionWithContext(ctx aws.Context, input *CancelSchemaExtensionInput, opts ...request.Option) (*CancelSchemaExtensionOutput, error) {
393	req, out := c.CancelSchemaExtensionRequest(input)
394	req.SetContext(ctx)
395	req.ApplyOptions(opts...)
396	return out, req.Send()
397}
398
399const opConnectDirectory = "ConnectDirectory"
400
401// ConnectDirectoryRequest generates a "aws/request.Request" representing the
402// client's request for the ConnectDirectory operation. The "output" return
403// value will be populated with the request's response once the request completes
404// successfully.
405//
406// Use "Send" method on the returned Request to send the API call to the service.
407// the "output" return value is not valid until after Send returns without error.
408//
409// See ConnectDirectory for more information on using the ConnectDirectory
410// API call, and error handling.
411//
412// This method is useful when you want to inject custom logic or configuration
413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
414//
415//
416//    // Example sending a request using the ConnectDirectoryRequest method.
417//    req, resp := client.ConnectDirectoryRequest(params)
418//
419//    err := req.Send()
420//    if err == nil { // resp is now filled
421//        fmt.Println(resp)
422//    }
423//
424// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectory
425func (c *DirectoryService) ConnectDirectoryRequest(input *ConnectDirectoryInput) (req *request.Request, output *ConnectDirectoryOutput) {
426	op := &request.Operation{
427		Name:       opConnectDirectory,
428		HTTPMethod: "POST",
429		HTTPPath:   "/",
430	}
431
432	if input == nil {
433		input = &ConnectDirectoryInput{}
434	}
435
436	output = &ConnectDirectoryOutput{}
437	req = c.newRequest(op, input, output)
438	return
439}
440
441// ConnectDirectory API operation for AWS Directory Service.
442//
443// Creates an AD Connector to connect to an on-premises directory.
444//
445// Before you call ConnectDirectory, ensure that all of the required permissions
446// have been explicitly granted through a policy. For details about what permissions
447// are required to run the ConnectDirectory operation, see AWS Directory Service
448// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
449//
450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
451// with awserr.Error's Code and Message methods to get detailed information about
452// the error.
453//
454// See the AWS API reference guide for AWS Directory Service's
455// API operation ConnectDirectory for usage and error information.
456//
457// Returned Error Codes:
458//   * ErrCodeDirectoryLimitExceededException "DirectoryLimitExceededException"
459//   The maximum number of directories in the region has been reached. You can
460//   use the GetDirectoryLimits operation to determine your directory limits in
461//   the region.
462//
463//   * ErrCodeInvalidParameterException "InvalidParameterException"
464//   One or more parameters are not valid.
465//
466//   * ErrCodeClientException "ClientException"
467//   A client exception has occurred.
468//
469//   * ErrCodeServiceException "ServiceException"
470//   An exception has occurred in AWS Directory Service.
471//
472// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectory
473func (c *DirectoryService) ConnectDirectory(input *ConnectDirectoryInput) (*ConnectDirectoryOutput, error) {
474	req, out := c.ConnectDirectoryRequest(input)
475	return out, req.Send()
476}
477
478// ConnectDirectoryWithContext is the same as ConnectDirectory with the addition of
479// the ability to pass a context and additional request options.
480//
481// See ConnectDirectory for details on how to use this API operation.
482//
483// The context must be non-nil and will be used for request cancellation. If
484// the context is nil a panic will occur. In the future the SDK may create
485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
486// for more information on using Contexts.
487func (c *DirectoryService) ConnectDirectoryWithContext(ctx aws.Context, input *ConnectDirectoryInput, opts ...request.Option) (*ConnectDirectoryOutput, error) {
488	req, out := c.ConnectDirectoryRequest(input)
489	req.SetContext(ctx)
490	req.ApplyOptions(opts...)
491	return out, req.Send()
492}
493
494const opCreateAlias = "CreateAlias"
495
496// CreateAliasRequest generates a "aws/request.Request" representing the
497// client's request for the CreateAlias operation. The "output" return
498// value will be populated with the request's response once the request completes
499// successfully.
500//
501// Use "Send" method on the returned Request to send the API call to the service.
502// the "output" return value is not valid until after Send returns without error.
503//
504// See CreateAlias for more information on using the CreateAlias
505// API call, and error handling.
506//
507// This method is useful when you want to inject custom logic or configuration
508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
509//
510//
511//    // Example sending a request using the CreateAliasRequest method.
512//    req, resp := client.CreateAliasRequest(params)
513//
514//    err := req.Send()
515//    if err == nil { // resp is now filled
516//        fmt.Println(resp)
517//    }
518//
519// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAlias
520func (c *DirectoryService) CreateAliasRequest(input *CreateAliasInput) (req *request.Request, output *CreateAliasOutput) {
521	op := &request.Operation{
522		Name:       opCreateAlias,
523		HTTPMethod: "POST",
524		HTTPPath:   "/",
525	}
526
527	if input == nil {
528		input = &CreateAliasInput{}
529	}
530
531	output = &CreateAliasOutput{}
532	req = c.newRequest(op, input, output)
533	return
534}
535
536// CreateAlias API operation for AWS Directory Service.
537//
538// Creates an alias for a directory and assigns the alias to the directory.
539// The alias is used to construct the access URL for the directory, such as
540// http://<alias>.awsapps.com.
541//
542// After an alias has been created, it cannot be deleted or reused, so this
543// operation should only be used when absolutely necessary.
544//
545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
546// with awserr.Error's Code and Message methods to get detailed information about
547// the error.
548//
549// See the AWS API reference guide for AWS Directory Service's
550// API operation CreateAlias for usage and error information.
551//
552// Returned Error Codes:
553//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
554//   The specified entity already exists.
555//
556//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
557//   The specified entity could not be found.
558//
559//   * ErrCodeInvalidParameterException "InvalidParameterException"
560//   One or more parameters are not valid.
561//
562//   * ErrCodeClientException "ClientException"
563//   A client exception has occurred.
564//
565//   * ErrCodeServiceException "ServiceException"
566//   An exception has occurred in AWS Directory Service.
567//
568// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAlias
569func (c *DirectoryService) CreateAlias(input *CreateAliasInput) (*CreateAliasOutput, error) {
570	req, out := c.CreateAliasRequest(input)
571	return out, req.Send()
572}
573
574// CreateAliasWithContext is the same as CreateAlias with the addition of
575// the ability to pass a context and additional request options.
576//
577// See CreateAlias for details on how to use this API operation.
578//
579// The context must be non-nil and will be used for request cancellation. If
580// the context is nil a panic will occur. In the future the SDK may create
581// sub-contexts for http.Requests. See https://golang.org/pkg/context/
582// for more information on using Contexts.
583func (c *DirectoryService) CreateAliasWithContext(ctx aws.Context, input *CreateAliasInput, opts ...request.Option) (*CreateAliasOutput, error) {
584	req, out := c.CreateAliasRequest(input)
585	req.SetContext(ctx)
586	req.ApplyOptions(opts...)
587	return out, req.Send()
588}
589
590const opCreateComputer = "CreateComputer"
591
592// CreateComputerRequest generates a "aws/request.Request" representing the
593// client's request for the CreateComputer operation. The "output" return
594// value will be populated with the request's response once the request completes
595// successfully.
596//
597// Use "Send" method on the returned Request to send the API call to the service.
598// the "output" return value is not valid until after Send returns without error.
599//
600// See CreateComputer for more information on using the CreateComputer
601// API call, and error handling.
602//
603// This method is useful when you want to inject custom logic or configuration
604// into the SDK's request lifecycle. Such as custom headers, or retry logic.
605//
606//
607//    // Example sending a request using the CreateComputerRequest method.
608//    req, resp := client.CreateComputerRequest(params)
609//
610//    err := req.Send()
611//    if err == nil { // resp is now filled
612//        fmt.Println(resp)
613//    }
614//
615// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputer
616func (c *DirectoryService) CreateComputerRequest(input *CreateComputerInput) (req *request.Request, output *CreateComputerOutput) {
617	op := &request.Operation{
618		Name:       opCreateComputer,
619		HTTPMethod: "POST",
620		HTTPPath:   "/",
621	}
622
623	if input == nil {
624		input = &CreateComputerInput{}
625	}
626
627	output = &CreateComputerOutput{}
628	req = c.newRequest(op, input, output)
629	return
630}
631
632// CreateComputer API operation for AWS Directory Service.
633//
634// Creates a computer account in the specified directory, and joins the computer
635// to the directory.
636//
637// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
638// with awserr.Error's Code and Message methods to get detailed information about
639// the error.
640//
641// See the AWS API reference guide for AWS Directory Service's
642// API operation CreateComputer for usage and error information.
643//
644// Returned Error Codes:
645//   * ErrCodeAuthenticationFailedException "AuthenticationFailedException"
646//   An authentication error occurred.
647//
648//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
649//   The specified directory is unavailable or could not be found.
650//
651//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
652//   The specified entity already exists.
653//
654//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
655//   The specified entity could not be found.
656//
657//   * ErrCodeInvalidParameterException "InvalidParameterException"
658//   One or more parameters are not valid.
659//
660//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
661//   The operation is not supported.
662//
663//   * ErrCodeClientException "ClientException"
664//   A client exception has occurred.
665//
666//   * ErrCodeServiceException "ServiceException"
667//   An exception has occurred in AWS Directory Service.
668//
669// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputer
670func (c *DirectoryService) CreateComputer(input *CreateComputerInput) (*CreateComputerOutput, error) {
671	req, out := c.CreateComputerRequest(input)
672	return out, req.Send()
673}
674
675// CreateComputerWithContext is the same as CreateComputer with the addition of
676// the ability to pass a context and additional request options.
677//
678// See CreateComputer for details on how to use this API operation.
679//
680// The context must be non-nil and will be used for request cancellation. If
681// the context is nil a panic will occur. In the future the SDK may create
682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
683// for more information on using Contexts.
684func (c *DirectoryService) CreateComputerWithContext(ctx aws.Context, input *CreateComputerInput, opts ...request.Option) (*CreateComputerOutput, error) {
685	req, out := c.CreateComputerRequest(input)
686	req.SetContext(ctx)
687	req.ApplyOptions(opts...)
688	return out, req.Send()
689}
690
691const opCreateConditionalForwarder = "CreateConditionalForwarder"
692
693// CreateConditionalForwarderRequest generates a "aws/request.Request" representing the
694// client's request for the CreateConditionalForwarder operation. The "output" return
695// value will be populated with the request's response once the request completes
696// successfully.
697//
698// Use "Send" method on the returned Request to send the API call to the service.
699// the "output" return value is not valid until after Send returns without error.
700//
701// See CreateConditionalForwarder for more information on using the CreateConditionalForwarder
702// API call, and error handling.
703//
704// This method is useful when you want to inject custom logic or configuration
705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
706//
707//
708//    // Example sending a request using the CreateConditionalForwarderRequest method.
709//    req, resp := client.CreateConditionalForwarderRequest(params)
710//
711//    err := req.Send()
712//    if err == nil { // resp is now filled
713//        fmt.Println(resp)
714//    }
715//
716// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarder
717func (c *DirectoryService) CreateConditionalForwarderRequest(input *CreateConditionalForwarderInput) (req *request.Request, output *CreateConditionalForwarderOutput) {
718	op := &request.Operation{
719		Name:       opCreateConditionalForwarder,
720		HTTPMethod: "POST",
721		HTTPPath:   "/",
722	}
723
724	if input == nil {
725		input = &CreateConditionalForwarderInput{}
726	}
727
728	output = &CreateConditionalForwarderOutput{}
729	req = c.newRequest(op, input, output)
730	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
731	return
732}
733
734// CreateConditionalForwarder API operation for AWS Directory Service.
735//
736// Creates a conditional forwarder associated with your AWS directory. Conditional
737// forwarders are required in order to set up a trust relationship with another
738// domain. The conditional forwarder points to the trusted domain.
739//
740// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
741// with awserr.Error's Code and Message methods to get detailed information about
742// the error.
743//
744// See the AWS API reference guide for AWS Directory Service's
745// API operation CreateConditionalForwarder for usage and error information.
746//
747// Returned Error Codes:
748//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
749//   The specified entity already exists.
750//
751//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
752//   The specified entity could not be found.
753//
754//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
755//   The specified directory is unavailable or could not be found.
756//
757//   * ErrCodeInvalidParameterException "InvalidParameterException"
758//   One or more parameters are not valid.
759//
760//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
761//   The operation is not supported.
762//
763//   * ErrCodeClientException "ClientException"
764//   A client exception has occurred.
765//
766//   * ErrCodeServiceException "ServiceException"
767//   An exception has occurred in AWS Directory Service.
768//
769// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarder
770func (c *DirectoryService) CreateConditionalForwarder(input *CreateConditionalForwarderInput) (*CreateConditionalForwarderOutput, error) {
771	req, out := c.CreateConditionalForwarderRequest(input)
772	return out, req.Send()
773}
774
775// CreateConditionalForwarderWithContext is the same as CreateConditionalForwarder with the addition of
776// the ability to pass a context and additional request options.
777//
778// See CreateConditionalForwarder for details on how to use this API operation.
779//
780// The context must be non-nil and will be used for request cancellation. If
781// the context is nil a panic will occur. In the future the SDK may create
782// sub-contexts for http.Requests. See https://golang.org/pkg/context/
783// for more information on using Contexts.
784func (c *DirectoryService) CreateConditionalForwarderWithContext(ctx aws.Context, input *CreateConditionalForwarderInput, opts ...request.Option) (*CreateConditionalForwarderOutput, error) {
785	req, out := c.CreateConditionalForwarderRequest(input)
786	req.SetContext(ctx)
787	req.ApplyOptions(opts...)
788	return out, req.Send()
789}
790
791const opCreateDirectory = "CreateDirectory"
792
793// CreateDirectoryRequest generates a "aws/request.Request" representing the
794// client's request for the CreateDirectory operation. The "output" return
795// value will be populated with the request's response once the request completes
796// successfully.
797//
798// Use "Send" method on the returned Request to send the API call to the service.
799// the "output" return value is not valid until after Send returns without error.
800//
801// See CreateDirectory for more information on using the CreateDirectory
802// API call, and error handling.
803//
804// This method is useful when you want to inject custom logic or configuration
805// into the SDK's request lifecycle. Such as custom headers, or retry logic.
806//
807//
808//    // Example sending a request using the CreateDirectoryRequest method.
809//    req, resp := client.CreateDirectoryRequest(params)
810//
811//    err := req.Send()
812//    if err == nil { // resp is now filled
813//        fmt.Println(resp)
814//    }
815//
816// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory
817func (c *DirectoryService) CreateDirectoryRequest(input *CreateDirectoryInput) (req *request.Request, output *CreateDirectoryOutput) {
818	op := &request.Operation{
819		Name:       opCreateDirectory,
820		HTTPMethod: "POST",
821		HTTPPath:   "/",
822	}
823
824	if input == nil {
825		input = &CreateDirectoryInput{}
826	}
827
828	output = &CreateDirectoryOutput{}
829	req = c.newRequest(op, input, output)
830	return
831}
832
833// CreateDirectory API operation for AWS Directory Service.
834//
835// Creates a Simple AD directory. For more information, see Simple Active Directory
836// (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_simple_ad.html)
837// in the AWS Directory Service Admin Guide.
838//
839// Before you call CreateDirectory, ensure that all of the required permissions
840// have been explicitly granted through a policy. For details about what permissions
841// are required to run the CreateDirectory operation, see AWS Directory Service
842// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
843//
844// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
845// with awserr.Error's Code and Message methods to get detailed information about
846// the error.
847//
848// See the AWS API reference guide for AWS Directory Service's
849// API operation CreateDirectory for usage and error information.
850//
851// Returned Error Codes:
852//   * ErrCodeDirectoryLimitExceededException "DirectoryLimitExceededException"
853//   The maximum number of directories in the region has been reached. You can
854//   use the GetDirectoryLimits operation to determine your directory limits in
855//   the region.
856//
857//   * ErrCodeInvalidParameterException "InvalidParameterException"
858//   One or more parameters are not valid.
859//
860//   * ErrCodeClientException "ClientException"
861//   A client exception has occurred.
862//
863//   * ErrCodeServiceException "ServiceException"
864//   An exception has occurred in AWS Directory Service.
865//
866// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory
867func (c *DirectoryService) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
868	req, out := c.CreateDirectoryRequest(input)
869	return out, req.Send()
870}
871
872// CreateDirectoryWithContext is the same as CreateDirectory with the addition of
873// the ability to pass a context and additional request options.
874//
875// See CreateDirectory for details on how to use this API operation.
876//
877// The context must be non-nil and will be used for request cancellation. If
878// the context is nil a panic will occur. In the future the SDK may create
879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
880// for more information on using Contexts.
881func (c *DirectoryService) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
882	req, out := c.CreateDirectoryRequest(input)
883	req.SetContext(ctx)
884	req.ApplyOptions(opts...)
885	return out, req.Send()
886}
887
888const opCreateLogSubscription = "CreateLogSubscription"
889
890// CreateLogSubscriptionRequest generates a "aws/request.Request" representing the
891// client's request for the CreateLogSubscription operation. The "output" return
892// value will be populated with the request's response once the request completes
893// successfully.
894//
895// Use "Send" method on the returned Request to send the API call to the service.
896// the "output" return value is not valid until after Send returns without error.
897//
898// See CreateLogSubscription for more information on using the CreateLogSubscription
899// API call, and error handling.
900//
901// This method is useful when you want to inject custom logic or configuration
902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
903//
904//
905//    // Example sending a request using the CreateLogSubscriptionRequest method.
906//    req, resp := client.CreateLogSubscriptionRequest(params)
907//
908//    err := req.Send()
909//    if err == nil { // resp is now filled
910//        fmt.Println(resp)
911//    }
912//
913// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
914func (c *DirectoryService) CreateLogSubscriptionRequest(input *CreateLogSubscriptionInput) (req *request.Request, output *CreateLogSubscriptionOutput) {
915	op := &request.Operation{
916		Name:       opCreateLogSubscription,
917		HTTPMethod: "POST",
918		HTTPPath:   "/",
919	}
920
921	if input == nil {
922		input = &CreateLogSubscriptionInput{}
923	}
924
925	output = &CreateLogSubscriptionOutput{}
926	req = c.newRequest(op, input, output)
927	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
928	return
929}
930
931// CreateLogSubscription API operation for AWS Directory Service.
932//
933// Creates a subscription to forward real-time Directory Service domain controller
934// security logs to the specified Amazon CloudWatch log group in your AWS account.
935//
936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
937// with awserr.Error's Code and Message methods to get detailed information about
938// the error.
939//
940// See the AWS API reference guide for AWS Directory Service's
941// API operation CreateLogSubscription for usage and error information.
942//
943// Returned Error Codes:
944//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
945//   The specified entity already exists.
946//
947//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
948//   The specified entity could not be found.
949//
950//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
951//   The operation is not supported.
952//
953//   * ErrCodeInsufficientPermissionsException "InsufficientPermissionsException"
954//   The account does not have sufficient permission to perform the operation.
955//
956//   * ErrCodeClientException "ClientException"
957//   A client exception has occurred.
958//
959//   * ErrCodeServiceException "ServiceException"
960//   An exception has occurred in AWS Directory Service.
961//
962// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
963func (c *DirectoryService) CreateLogSubscription(input *CreateLogSubscriptionInput) (*CreateLogSubscriptionOutput, error) {
964	req, out := c.CreateLogSubscriptionRequest(input)
965	return out, req.Send()
966}
967
968// CreateLogSubscriptionWithContext is the same as CreateLogSubscription with the addition of
969// the ability to pass a context and additional request options.
970//
971// See CreateLogSubscription for details on how to use this API operation.
972//
973// The context must be non-nil and will be used for request cancellation. If
974// the context is nil a panic will occur. In the future the SDK may create
975// sub-contexts for http.Requests. See https://golang.org/pkg/context/
976// for more information on using Contexts.
977func (c *DirectoryService) CreateLogSubscriptionWithContext(ctx aws.Context, input *CreateLogSubscriptionInput, opts ...request.Option) (*CreateLogSubscriptionOutput, error) {
978	req, out := c.CreateLogSubscriptionRequest(input)
979	req.SetContext(ctx)
980	req.ApplyOptions(opts...)
981	return out, req.Send()
982}
983
984const opCreateMicrosoftAD = "CreateMicrosoftAD"
985
986// CreateMicrosoftADRequest generates a "aws/request.Request" representing the
987// client's request for the CreateMicrosoftAD operation. The "output" return
988// value will be populated with the request's response once the request completes
989// successfully.
990//
991// Use "Send" method on the returned Request to send the API call to the service.
992// the "output" return value is not valid until after Send returns without error.
993//
994// See CreateMicrosoftAD for more information on using the CreateMicrosoftAD
995// API call, and error handling.
996//
997// This method is useful when you want to inject custom logic or configuration
998// into the SDK's request lifecycle. Such as custom headers, or retry logic.
999//
1000//
1001//    // Example sending a request using the CreateMicrosoftADRequest method.
1002//    req, resp := client.CreateMicrosoftADRequest(params)
1003//
1004//    err := req.Send()
1005//    if err == nil { // resp is now filled
1006//        fmt.Println(resp)
1007//    }
1008//
1009// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1010func (c *DirectoryService) CreateMicrosoftADRequest(input *CreateMicrosoftADInput) (req *request.Request, output *CreateMicrosoftADOutput) {
1011	op := &request.Operation{
1012		Name:       opCreateMicrosoftAD,
1013		HTTPMethod: "POST",
1014		HTTPPath:   "/",
1015	}
1016
1017	if input == nil {
1018		input = &CreateMicrosoftADInput{}
1019	}
1020
1021	output = &CreateMicrosoftADOutput{}
1022	req = c.newRequest(op, input, output)
1023	return
1024}
1025
1026// CreateMicrosoftAD API operation for AWS Directory Service.
1027//
1028// Creates a Microsoft AD directory in the AWS Cloud. For more information,
1029// see AWS Managed Microsoft AD (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html)
1030// in the AWS Directory Service Admin Guide.
1031//
1032// Before you call CreateMicrosoftAD, ensure that all of the required permissions
1033// have been explicitly granted through a policy. For details about what permissions
1034// are required to run the CreateMicrosoftAD operation, see AWS Directory Service
1035// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1036//
1037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1038// with awserr.Error's Code and Message methods to get detailed information about
1039// the error.
1040//
1041// See the AWS API reference guide for AWS Directory Service's
1042// API operation CreateMicrosoftAD for usage and error information.
1043//
1044// Returned Error Codes:
1045//   * ErrCodeDirectoryLimitExceededException "DirectoryLimitExceededException"
1046//   The maximum number of directories in the region has been reached. You can
1047//   use the GetDirectoryLimits operation to determine your directory limits in
1048//   the region.
1049//
1050//   * ErrCodeInvalidParameterException "InvalidParameterException"
1051//   One or more parameters are not valid.
1052//
1053//   * ErrCodeClientException "ClientException"
1054//   A client exception has occurred.
1055//
1056//   * ErrCodeServiceException "ServiceException"
1057//   An exception has occurred in AWS Directory Service.
1058//
1059//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1060//   The operation is not supported.
1061//
1062// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1063func (c *DirectoryService) CreateMicrosoftAD(input *CreateMicrosoftADInput) (*CreateMicrosoftADOutput, error) {
1064	req, out := c.CreateMicrosoftADRequest(input)
1065	return out, req.Send()
1066}
1067
1068// CreateMicrosoftADWithContext is the same as CreateMicrosoftAD with the addition of
1069// the ability to pass a context and additional request options.
1070//
1071// See CreateMicrosoftAD for details on how to use this API operation.
1072//
1073// The context must be non-nil and will be used for request cancellation. If
1074// the context is nil a panic will occur. In the future the SDK may create
1075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1076// for more information on using Contexts.
1077func (c *DirectoryService) CreateMicrosoftADWithContext(ctx aws.Context, input *CreateMicrosoftADInput, opts ...request.Option) (*CreateMicrosoftADOutput, error) {
1078	req, out := c.CreateMicrosoftADRequest(input)
1079	req.SetContext(ctx)
1080	req.ApplyOptions(opts...)
1081	return out, req.Send()
1082}
1083
1084const opCreateSnapshot = "CreateSnapshot"
1085
1086// CreateSnapshotRequest generates a "aws/request.Request" representing the
1087// client's request for the CreateSnapshot operation. The "output" return
1088// value will be populated with the request's response once the request completes
1089// successfully.
1090//
1091// Use "Send" method on the returned Request to send the API call to the service.
1092// the "output" return value is not valid until after Send returns without error.
1093//
1094// See CreateSnapshot for more information on using the CreateSnapshot
1095// API call, and error handling.
1096//
1097// This method is useful when you want to inject custom logic or configuration
1098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1099//
1100//
1101//    // Example sending a request using the CreateSnapshotRequest method.
1102//    req, resp := client.CreateSnapshotRequest(params)
1103//
1104//    err := req.Send()
1105//    if err == nil { // resp is now filled
1106//        fmt.Println(resp)
1107//    }
1108//
1109// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1110func (c *DirectoryService) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
1111	op := &request.Operation{
1112		Name:       opCreateSnapshot,
1113		HTTPMethod: "POST",
1114		HTTPPath:   "/",
1115	}
1116
1117	if input == nil {
1118		input = &CreateSnapshotInput{}
1119	}
1120
1121	output = &CreateSnapshotOutput{}
1122	req = c.newRequest(op, input, output)
1123	return
1124}
1125
1126// CreateSnapshot API operation for AWS Directory Service.
1127//
1128// Creates a snapshot of a Simple AD or Microsoft AD directory in the AWS cloud.
1129//
1130// You cannot take snapshots of AD Connector directories.
1131//
1132// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1133// with awserr.Error's Code and Message methods to get detailed information about
1134// the error.
1135//
1136// See the AWS API reference guide for AWS Directory Service's
1137// API operation CreateSnapshot for usage and error information.
1138//
1139// Returned Error Codes:
1140//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1141//   The specified entity could not be found.
1142//
1143//   * ErrCodeInvalidParameterException "InvalidParameterException"
1144//   One or more parameters are not valid.
1145//
1146//   * ErrCodeSnapshotLimitExceededException "SnapshotLimitExceededException"
1147//   The maximum number of manual snapshots for the directory has been reached.
1148//   You can use the GetSnapshotLimits operation to determine the snapshot limits
1149//   for a directory.
1150//
1151//   * ErrCodeClientException "ClientException"
1152//   A client exception has occurred.
1153//
1154//   * ErrCodeServiceException "ServiceException"
1155//   An exception has occurred in AWS Directory Service.
1156//
1157// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1158func (c *DirectoryService) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
1159	req, out := c.CreateSnapshotRequest(input)
1160	return out, req.Send()
1161}
1162
1163// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
1164// the ability to pass a context and additional request options.
1165//
1166// See CreateSnapshot for details on how to use this API operation.
1167//
1168// The context must be non-nil and will be used for request cancellation. If
1169// the context is nil a panic will occur. In the future the SDK may create
1170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1171// for more information on using Contexts.
1172func (c *DirectoryService) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
1173	req, out := c.CreateSnapshotRequest(input)
1174	req.SetContext(ctx)
1175	req.ApplyOptions(opts...)
1176	return out, req.Send()
1177}
1178
1179const opCreateTrust = "CreateTrust"
1180
1181// CreateTrustRequest generates a "aws/request.Request" representing the
1182// client's request for the CreateTrust operation. The "output" return
1183// value will be populated with the request's response once the request completes
1184// successfully.
1185//
1186// Use "Send" method on the returned Request to send the API call to the service.
1187// the "output" return value is not valid until after Send returns without error.
1188//
1189// See CreateTrust for more information on using the CreateTrust
1190// API call, and error handling.
1191//
1192// This method is useful when you want to inject custom logic or configuration
1193// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1194//
1195//
1196//    // Example sending a request using the CreateTrustRequest method.
1197//    req, resp := client.CreateTrustRequest(params)
1198//
1199//    err := req.Send()
1200//    if err == nil { // resp is now filled
1201//        fmt.Println(resp)
1202//    }
1203//
1204// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1205func (c *DirectoryService) CreateTrustRequest(input *CreateTrustInput) (req *request.Request, output *CreateTrustOutput) {
1206	op := &request.Operation{
1207		Name:       opCreateTrust,
1208		HTTPMethod: "POST",
1209		HTTPPath:   "/",
1210	}
1211
1212	if input == nil {
1213		input = &CreateTrustInput{}
1214	}
1215
1216	output = &CreateTrustOutput{}
1217	req = c.newRequest(op, input, output)
1218	return
1219}
1220
1221// CreateTrust API operation for AWS Directory Service.
1222//
1223// AWS Directory Service for Microsoft Active Directory allows you to configure
1224// trust relationships. For example, you can establish a trust between your
1225// AWS Managed Microsoft AD directory, and your existing on-premises Microsoft
1226// Active Directory. This would allow you to provide users and groups access
1227// to resources in either domain, with a single set of credentials.
1228//
1229// This action initiates the creation of the AWS side of a trust relationship
1230// between an AWS Managed Microsoft AD directory and an external domain. You
1231// can create either a forest trust or an external trust.
1232//
1233// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1234// with awserr.Error's Code and Message methods to get detailed information about
1235// the error.
1236//
1237// See the AWS API reference guide for AWS Directory Service's
1238// API operation CreateTrust for usage and error information.
1239//
1240// Returned Error Codes:
1241//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
1242//   The specified entity already exists.
1243//
1244//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1245//   The specified entity could not be found.
1246//
1247//   * ErrCodeInvalidParameterException "InvalidParameterException"
1248//   One or more parameters are not valid.
1249//
1250//   * ErrCodeClientException "ClientException"
1251//   A client exception has occurred.
1252//
1253//   * ErrCodeServiceException "ServiceException"
1254//   An exception has occurred in AWS Directory Service.
1255//
1256//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1257//   The operation is not supported.
1258//
1259// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1260func (c *DirectoryService) CreateTrust(input *CreateTrustInput) (*CreateTrustOutput, error) {
1261	req, out := c.CreateTrustRequest(input)
1262	return out, req.Send()
1263}
1264
1265// CreateTrustWithContext is the same as CreateTrust with the addition of
1266// the ability to pass a context and additional request options.
1267//
1268// See CreateTrust for details on how to use this API operation.
1269//
1270// The context must be non-nil and will be used for request cancellation. If
1271// the context is nil a panic will occur. In the future the SDK may create
1272// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1273// for more information on using Contexts.
1274func (c *DirectoryService) CreateTrustWithContext(ctx aws.Context, input *CreateTrustInput, opts ...request.Option) (*CreateTrustOutput, error) {
1275	req, out := c.CreateTrustRequest(input)
1276	req.SetContext(ctx)
1277	req.ApplyOptions(opts...)
1278	return out, req.Send()
1279}
1280
1281const opDeleteConditionalForwarder = "DeleteConditionalForwarder"
1282
1283// DeleteConditionalForwarderRequest generates a "aws/request.Request" representing the
1284// client's request for the DeleteConditionalForwarder operation. The "output" return
1285// value will be populated with the request's response once the request completes
1286// successfully.
1287//
1288// Use "Send" method on the returned Request to send the API call to the service.
1289// the "output" return value is not valid until after Send returns without error.
1290//
1291// See DeleteConditionalForwarder for more information on using the DeleteConditionalForwarder
1292// API call, and error handling.
1293//
1294// This method is useful when you want to inject custom logic or configuration
1295// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1296//
1297//
1298//    // Example sending a request using the DeleteConditionalForwarderRequest method.
1299//    req, resp := client.DeleteConditionalForwarderRequest(params)
1300//
1301//    err := req.Send()
1302//    if err == nil { // resp is now filled
1303//        fmt.Println(resp)
1304//    }
1305//
1306// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1307func (c *DirectoryService) DeleteConditionalForwarderRequest(input *DeleteConditionalForwarderInput) (req *request.Request, output *DeleteConditionalForwarderOutput) {
1308	op := &request.Operation{
1309		Name:       opDeleteConditionalForwarder,
1310		HTTPMethod: "POST",
1311		HTTPPath:   "/",
1312	}
1313
1314	if input == nil {
1315		input = &DeleteConditionalForwarderInput{}
1316	}
1317
1318	output = &DeleteConditionalForwarderOutput{}
1319	req = c.newRequest(op, input, output)
1320	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1321	return
1322}
1323
1324// DeleteConditionalForwarder API operation for AWS Directory Service.
1325//
1326// Deletes a conditional forwarder that has been set up for your AWS directory.
1327//
1328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1329// with awserr.Error's Code and Message methods to get detailed information about
1330// the error.
1331//
1332// See the AWS API reference guide for AWS Directory Service's
1333// API operation DeleteConditionalForwarder for usage and error information.
1334//
1335// Returned Error Codes:
1336//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1337//   The specified entity could not be found.
1338//
1339//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
1340//   The specified directory is unavailable or could not be found.
1341//
1342//   * ErrCodeInvalidParameterException "InvalidParameterException"
1343//   One or more parameters are not valid.
1344//
1345//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1346//   The operation is not supported.
1347//
1348//   * ErrCodeClientException "ClientException"
1349//   A client exception has occurred.
1350//
1351//   * ErrCodeServiceException "ServiceException"
1352//   An exception has occurred in AWS Directory Service.
1353//
1354// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1355func (c *DirectoryService) DeleteConditionalForwarder(input *DeleteConditionalForwarderInput) (*DeleteConditionalForwarderOutput, error) {
1356	req, out := c.DeleteConditionalForwarderRequest(input)
1357	return out, req.Send()
1358}
1359
1360// DeleteConditionalForwarderWithContext is the same as DeleteConditionalForwarder with the addition of
1361// the ability to pass a context and additional request options.
1362//
1363// See DeleteConditionalForwarder for details on how to use this API operation.
1364//
1365// The context must be non-nil and will be used for request cancellation. If
1366// the context is nil a panic will occur. In the future the SDK may create
1367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1368// for more information on using Contexts.
1369func (c *DirectoryService) DeleteConditionalForwarderWithContext(ctx aws.Context, input *DeleteConditionalForwarderInput, opts ...request.Option) (*DeleteConditionalForwarderOutput, error) {
1370	req, out := c.DeleteConditionalForwarderRequest(input)
1371	req.SetContext(ctx)
1372	req.ApplyOptions(opts...)
1373	return out, req.Send()
1374}
1375
1376const opDeleteDirectory = "DeleteDirectory"
1377
1378// DeleteDirectoryRequest generates a "aws/request.Request" representing the
1379// client's request for the DeleteDirectory operation. The "output" return
1380// value will be populated with the request's response once the request completes
1381// successfully.
1382//
1383// Use "Send" method on the returned Request to send the API call to the service.
1384// the "output" return value is not valid until after Send returns without error.
1385//
1386// See DeleteDirectory for more information on using the DeleteDirectory
1387// API call, and error handling.
1388//
1389// This method is useful when you want to inject custom logic or configuration
1390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1391//
1392//
1393//    // Example sending a request using the DeleteDirectoryRequest method.
1394//    req, resp := client.DeleteDirectoryRequest(params)
1395//
1396//    err := req.Send()
1397//    if err == nil { // resp is now filled
1398//        fmt.Println(resp)
1399//    }
1400//
1401// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1402func (c *DirectoryService) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
1403	op := &request.Operation{
1404		Name:       opDeleteDirectory,
1405		HTTPMethod: "POST",
1406		HTTPPath:   "/",
1407	}
1408
1409	if input == nil {
1410		input = &DeleteDirectoryInput{}
1411	}
1412
1413	output = &DeleteDirectoryOutput{}
1414	req = c.newRequest(op, input, output)
1415	return
1416}
1417
1418// DeleteDirectory API operation for AWS Directory Service.
1419//
1420// Deletes an AWS Directory Service directory.
1421//
1422// Before you call DeleteDirectory, ensure that all of the required permissions
1423// have been explicitly granted through a policy. For details about what permissions
1424// are required to run the DeleteDirectory operation, see AWS Directory Service
1425// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1426//
1427// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1428// with awserr.Error's Code and Message methods to get detailed information about
1429// the error.
1430//
1431// See the AWS API reference guide for AWS Directory Service's
1432// API operation DeleteDirectory for usage and error information.
1433//
1434// Returned Error Codes:
1435//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1436//   The specified entity could not be found.
1437//
1438//   * ErrCodeClientException "ClientException"
1439//   A client exception has occurred.
1440//
1441//   * ErrCodeServiceException "ServiceException"
1442//   An exception has occurred in AWS Directory Service.
1443//
1444// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1445func (c *DirectoryService) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
1446	req, out := c.DeleteDirectoryRequest(input)
1447	return out, req.Send()
1448}
1449
1450// DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
1451// the ability to pass a context and additional request options.
1452//
1453// See DeleteDirectory for details on how to use this API operation.
1454//
1455// The context must be non-nil and will be used for request cancellation. If
1456// the context is nil a panic will occur. In the future the SDK may create
1457// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1458// for more information on using Contexts.
1459func (c *DirectoryService) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
1460	req, out := c.DeleteDirectoryRequest(input)
1461	req.SetContext(ctx)
1462	req.ApplyOptions(opts...)
1463	return out, req.Send()
1464}
1465
1466const opDeleteLogSubscription = "DeleteLogSubscription"
1467
1468// DeleteLogSubscriptionRequest generates a "aws/request.Request" representing the
1469// client's request for the DeleteLogSubscription operation. The "output" return
1470// value will be populated with the request's response once the request completes
1471// successfully.
1472//
1473// Use "Send" method on the returned Request to send the API call to the service.
1474// the "output" return value is not valid until after Send returns without error.
1475//
1476// See DeleteLogSubscription for more information on using the DeleteLogSubscription
1477// API call, and error handling.
1478//
1479// This method is useful when you want to inject custom logic or configuration
1480// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1481//
1482//
1483//    // Example sending a request using the DeleteLogSubscriptionRequest method.
1484//    req, resp := client.DeleteLogSubscriptionRequest(params)
1485//
1486//    err := req.Send()
1487//    if err == nil { // resp is now filled
1488//        fmt.Println(resp)
1489//    }
1490//
1491// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1492func (c *DirectoryService) DeleteLogSubscriptionRequest(input *DeleteLogSubscriptionInput) (req *request.Request, output *DeleteLogSubscriptionOutput) {
1493	op := &request.Operation{
1494		Name:       opDeleteLogSubscription,
1495		HTTPMethod: "POST",
1496		HTTPPath:   "/",
1497	}
1498
1499	if input == nil {
1500		input = &DeleteLogSubscriptionInput{}
1501	}
1502
1503	output = &DeleteLogSubscriptionOutput{}
1504	req = c.newRequest(op, input, output)
1505	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1506	return
1507}
1508
1509// DeleteLogSubscription API operation for AWS Directory Service.
1510//
1511// Deletes the specified log subscription.
1512//
1513// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1514// with awserr.Error's Code and Message methods to get detailed information about
1515// the error.
1516//
1517// See the AWS API reference guide for AWS Directory Service's
1518// API operation DeleteLogSubscription for usage and error information.
1519//
1520// Returned Error Codes:
1521//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1522//   The specified entity could not be found.
1523//
1524//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1525//   The operation is not supported.
1526//
1527//   * ErrCodeClientException "ClientException"
1528//   A client exception has occurred.
1529//
1530//   * ErrCodeServiceException "ServiceException"
1531//   An exception has occurred in AWS Directory Service.
1532//
1533// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1534func (c *DirectoryService) DeleteLogSubscription(input *DeleteLogSubscriptionInput) (*DeleteLogSubscriptionOutput, error) {
1535	req, out := c.DeleteLogSubscriptionRequest(input)
1536	return out, req.Send()
1537}
1538
1539// DeleteLogSubscriptionWithContext is the same as DeleteLogSubscription with the addition of
1540// the ability to pass a context and additional request options.
1541//
1542// See DeleteLogSubscription for details on how to use this API operation.
1543//
1544// The context must be non-nil and will be used for request cancellation. If
1545// the context is nil a panic will occur. In the future the SDK may create
1546// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1547// for more information on using Contexts.
1548func (c *DirectoryService) DeleteLogSubscriptionWithContext(ctx aws.Context, input *DeleteLogSubscriptionInput, opts ...request.Option) (*DeleteLogSubscriptionOutput, error) {
1549	req, out := c.DeleteLogSubscriptionRequest(input)
1550	req.SetContext(ctx)
1551	req.ApplyOptions(opts...)
1552	return out, req.Send()
1553}
1554
1555const opDeleteSnapshot = "DeleteSnapshot"
1556
1557// DeleteSnapshotRequest generates a "aws/request.Request" representing the
1558// client's request for the DeleteSnapshot operation. The "output" return
1559// value will be populated with the request's response once the request completes
1560// successfully.
1561//
1562// Use "Send" method on the returned Request to send the API call to the service.
1563// the "output" return value is not valid until after Send returns without error.
1564//
1565// See DeleteSnapshot for more information on using the DeleteSnapshot
1566// API call, and error handling.
1567//
1568// This method is useful when you want to inject custom logic or configuration
1569// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1570//
1571//
1572//    // Example sending a request using the DeleteSnapshotRequest method.
1573//    req, resp := client.DeleteSnapshotRequest(params)
1574//
1575//    err := req.Send()
1576//    if err == nil { // resp is now filled
1577//        fmt.Println(resp)
1578//    }
1579//
1580// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1581func (c *DirectoryService) DeleteSnapshotRequest(input *DeleteSnapshotInput) (req *request.Request, output *DeleteSnapshotOutput) {
1582	op := &request.Operation{
1583		Name:       opDeleteSnapshot,
1584		HTTPMethod: "POST",
1585		HTTPPath:   "/",
1586	}
1587
1588	if input == nil {
1589		input = &DeleteSnapshotInput{}
1590	}
1591
1592	output = &DeleteSnapshotOutput{}
1593	req = c.newRequest(op, input, output)
1594	return
1595}
1596
1597// DeleteSnapshot API operation for AWS Directory Service.
1598//
1599// Deletes a directory snapshot.
1600//
1601// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1602// with awserr.Error's Code and Message methods to get detailed information about
1603// the error.
1604//
1605// See the AWS API reference guide for AWS Directory Service's
1606// API operation DeleteSnapshot for usage and error information.
1607//
1608// Returned Error Codes:
1609//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1610//   The specified entity could not be found.
1611//
1612//   * ErrCodeInvalidParameterException "InvalidParameterException"
1613//   One or more parameters are not valid.
1614//
1615//   * ErrCodeClientException "ClientException"
1616//   A client exception has occurred.
1617//
1618//   * ErrCodeServiceException "ServiceException"
1619//   An exception has occurred in AWS Directory Service.
1620//
1621// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1622func (c *DirectoryService) DeleteSnapshot(input *DeleteSnapshotInput) (*DeleteSnapshotOutput, error) {
1623	req, out := c.DeleteSnapshotRequest(input)
1624	return out, req.Send()
1625}
1626
1627// DeleteSnapshotWithContext is the same as DeleteSnapshot with the addition of
1628// the ability to pass a context and additional request options.
1629//
1630// See DeleteSnapshot for details on how to use this API operation.
1631//
1632// The context must be non-nil and will be used for request cancellation. If
1633// the context is nil a panic will occur. In the future the SDK may create
1634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1635// for more information on using Contexts.
1636func (c *DirectoryService) DeleteSnapshotWithContext(ctx aws.Context, input *DeleteSnapshotInput, opts ...request.Option) (*DeleteSnapshotOutput, error) {
1637	req, out := c.DeleteSnapshotRequest(input)
1638	req.SetContext(ctx)
1639	req.ApplyOptions(opts...)
1640	return out, req.Send()
1641}
1642
1643const opDeleteTrust = "DeleteTrust"
1644
1645// DeleteTrustRequest generates a "aws/request.Request" representing the
1646// client's request for the DeleteTrust operation. The "output" return
1647// value will be populated with the request's response once the request completes
1648// successfully.
1649//
1650// Use "Send" method on the returned Request to send the API call to the service.
1651// the "output" return value is not valid until after Send returns without error.
1652//
1653// See DeleteTrust for more information on using the DeleteTrust
1654// API call, and error handling.
1655//
1656// This method is useful when you want to inject custom logic or configuration
1657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1658//
1659//
1660//    // Example sending a request using the DeleteTrustRequest method.
1661//    req, resp := client.DeleteTrustRequest(params)
1662//
1663//    err := req.Send()
1664//    if err == nil { // resp is now filled
1665//        fmt.Println(resp)
1666//    }
1667//
1668// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1669func (c *DirectoryService) DeleteTrustRequest(input *DeleteTrustInput) (req *request.Request, output *DeleteTrustOutput) {
1670	op := &request.Operation{
1671		Name:       opDeleteTrust,
1672		HTTPMethod: "POST",
1673		HTTPPath:   "/",
1674	}
1675
1676	if input == nil {
1677		input = &DeleteTrustInput{}
1678	}
1679
1680	output = &DeleteTrustOutput{}
1681	req = c.newRequest(op, input, output)
1682	return
1683}
1684
1685// DeleteTrust API operation for AWS Directory Service.
1686//
1687// Deletes an existing trust relationship between your AWS Managed Microsoft
1688// AD directory and an external domain.
1689//
1690// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1691// with awserr.Error's Code and Message methods to get detailed information about
1692// the error.
1693//
1694// See the AWS API reference guide for AWS Directory Service's
1695// API operation DeleteTrust for usage and error information.
1696//
1697// Returned Error Codes:
1698//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1699//   The specified entity could not be found.
1700//
1701//   * ErrCodeInvalidParameterException "InvalidParameterException"
1702//   One or more parameters are not valid.
1703//
1704//   * ErrCodeClientException "ClientException"
1705//   A client exception has occurred.
1706//
1707//   * ErrCodeServiceException "ServiceException"
1708//   An exception has occurred in AWS Directory Service.
1709//
1710//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1711//   The operation is not supported.
1712//
1713// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1714func (c *DirectoryService) DeleteTrust(input *DeleteTrustInput) (*DeleteTrustOutput, error) {
1715	req, out := c.DeleteTrustRequest(input)
1716	return out, req.Send()
1717}
1718
1719// DeleteTrustWithContext is the same as DeleteTrust with the addition of
1720// the ability to pass a context and additional request options.
1721//
1722// See DeleteTrust for details on how to use this API operation.
1723//
1724// The context must be non-nil and will be used for request cancellation. If
1725// the context is nil a panic will occur. In the future the SDK may create
1726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1727// for more information on using Contexts.
1728func (c *DirectoryService) DeleteTrustWithContext(ctx aws.Context, input *DeleteTrustInput, opts ...request.Option) (*DeleteTrustOutput, error) {
1729	req, out := c.DeleteTrustRequest(input)
1730	req.SetContext(ctx)
1731	req.ApplyOptions(opts...)
1732	return out, req.Send()
1733}
1734
1735const opDeregisterCertificate = "DeregisterCertificate"
1736
1737// DeregisterCertificateRequest generates a "aws/request.Request" representing the
1738// client's request for the DeregisterCertificate operation. The "output" return
1739// value will be populated with the request's response once the request completes
1740// successfully.
1741//
1742// Use "Send" method on the returned Request to send the API call to the service.
1743// the "output" return value is not valid until after Send returns without error.
1744//
1745// See DeregisterCertificate for more information on using the DeregisterCertificate
1746// API call, and error handling.
1747//
1748// This method is useful when you want to inject custom logic or configuration
1749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1750//
1751//
1752//    // Example sending a request using the DeregisterCertificateRequest method.
1753//    req, resp := client.DeregisterCertificateRequest(params)
1754//
1755//    err := req.Send()
1756//    if err == nil { // resp is now filled
1757//        fmt.Println(resp)
1758//    }
1759//
1760// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterCertificate
1761func (c *DirectoryService) DeregisterCertificateRequest(input *DeregisterCertificateInput) (req *request.Request, output *DeregisterCertificateOutput) {
1762	op := &request.Operation{
1763		Name:       opDeregisterCertificate,
1764		HTTPMethod: "POST",
1765		HTTPPath:   "/",
1766	}
1767
1768	if input == nil {
1769		input = &DeregisterCertificateInput{}
1770	}
1771
1772	output = &DeregisterCertificateOutput{}
1773	req = c.newRequest(op, input, output)
1774	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1775	return
1776}
1777
1778// DeregisterCertificate API operation for AWS Directory Service.
1779//
1780// Deletes from the system the certificate that was registered for a secured
1781// LDAP connection.
1782//
1783// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1784// with awserr.Error's Code and Message methods to get detailed information about
1785// the error.
1786//
1787// See the AWS API reference guide for AWS Directory Service's
1788// API operation DeregisterCertificate for usage and error information.
1789//
1790// Returned Error Codes:
1791//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
1792//   The specified directory is unavailable or could not be found.
1793//
1794//   * ErrCodeDirectoryDoesNotExistException "DirectoryDoesNotExistException"
1795//   The specified directory does not exist in the system.
1796//
1797//   * ErrCodeCertificateDoesNotExistException "CertificateDoesNotExistException"
1798//   The certificate is not present in the system for describe or deregister activities.
1799//
1800//   * ErrCodeCertificateInUseException "CertificateInUseException"
1801//   The certificate is being used for the LDAP security connection and cannot
1802//   be removed without disabling LDAP security.
1803//
1804//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1805//   The operation is not supported.
1806//
1807//   * ErrCodeInvalidParameterException "InvalidParameterException"
1808//   One or more parameters are not valid.
1809//
1810//   * ErrCodeClientException "ClientException"
1811//   A client exception has occurred.
1812//
1813//   * ErrCodeServiceException "ServiceException"
1814//   An exception has occurred in AWS Directory Service.
1815//
1816// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterCertificate
1817func (c *DirectoryService) DeregisterCertificate(input *DeregisterCertificateInput) (*DeregisterCertificateOutput, error) {
1818	req, out := c.DeregisterCertificateRequest(input)
1819	return out, req.Send()
1820}
1821
1822// DeregisterCertificateWithContext is the same as DeregisterCertificate with the addition of
1823// the ability to pass a context and additional request options.
1824//
1825// See DeregisterCertificate for details on how to use this API operation.
1826//
1827// The context must be non-nil and will be used for request cancellation. If
1828// the context is nil a panic will occur. In the future the SDK may create
1829// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1830// for more information on using Contexts.
1831func (c *DirectoryService) DeregisterCertificateWithContext(ctx aws.Context, input *DeregisterCertificateInput, opts ...request.Option) (*DeregisterCertificateOutput, error) {
1832	req, out := c.DeregisterCertificateRequest(input)
1833	req.SetContext(ctx)
1834	req.ApplyOptions(opts...)
1835	return out, req.Send()
1836}
1837
1838const opDeregisterEventTopic = "DeregisterEventTopic"
1839
1840// DeregisterEventTopicRequest generates a "aws/request.Request" representing the
1841// client's request for the DeregisterEventTopic operation. The "output" return
1842// value will be populated with the request's response once the request completes
1843// successfully.
1844//
1845// Use "Send" method on the returned Request to send the API call to the service.
1846// the "output" return value is not valid until after Send returns without error.
1847//
1848// See DeregisterEventTopic for more information on using the DeregisterEventTopic
1849// API call, and error handling.
1850//
1851// This method is useful when you want to inject custom logic or configuration
1852// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1853//
1854//
1855//    // Example sending a request using the DeregisterEventTopicRequest method.
1856//    req, resp := client.DeregisterEventTopicRequest(params)
1857//
1858//    err := req.Send()
1859//    if err == nil { // resp is now filled
1860//        fmt.Println(resp)
1861//    }
1862//
1863// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
1864func (c *DirectoryService) DeregisterEventTopicRequest(input *DeregisterEventTopicInput) (req *request.Request, output *DeregisterEventTopicOutput) {
1865	op := &request.Operation{
1866		Name:       opDeregisterEventTopic,
1867		HTTPMethod: "POST",
1868		HTTPPath:   "/",
1869	}
1870
1871	if input == nil {
1872		input = &DeregisterEventTopicInput{}
1873	}
1874
1875	output = &DeregisterEventTopicOutput{}
1876	req = c.newRequest(op, input, output)
1877	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1878	return
1879}
1880
1881// DeregisterEventTopic API operation for AWS Directory Service.
1882//
1883// Removes the specified directory as a publisher to the specified SNS topic.
1884//
1885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1886// with awserr.Error's Code and Message methods to get detailed information about
1887// the error.
1888//
1889// See the AWS API reference guide for AWS Directory Service's
1890// API operation DeregisterEventTopic for usage and error information.
1891//
1892// Returned Error Codes:
1893//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1894//   The specified entity could not be found.
1895//
1896//   * ErrCodeInvalidParameterException "InvalidParameterException"
1897//   One or more parameters are not valid.
1898//
1899//   * ErrCodeClientException "ClientException"
1900//   A client exception has occurred.
1901//
1902//   * ErrCodeServiceException "ServiceException"
1903//   An exception has occurred in AWS Directory Service.
1904//
1905// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
1906func (c *DirectoryService) DeregisterEventTopic(input *DeregisterEventTopicInput) (*DeregisterEventTopicOutput, error) {
1907	req, out := c.DeregisterEventTopicRequest(input)
1908	return out, req.Send()
1909}
1910
1911// DeregisterEventTopicWithContext is the same as DeregisterEventTopic with the addition of
1912// the ability to pass a context and additional request options.
1913//
1914// See DeregisterEventTopic for details on how to use this API operation.
1915//
1916// The context must be non-nil and will be used for request cancellation. If
1917// the context is nil a panic will occur. In the future the SDK may create
1918// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1919// for more information on using Contexts.
1920func (c *DirectoryService) DeregisterEventTopicWithContext(ctx aws.Context, input *DeregisterEventTopicInput, opts ...request.Option) (*DeregisterEventTopicOutput, error) {
1921	req, out := c.DeregisterEventTopicRequest(input)
1922	req.SetContext(ctx)
1923	req.ApplyOptions(opts...)
1924	return out, req.Send()
1925}
1926
1927const opDescribeCertificate = "DescribeCertificate"
1928
1929// DescribeCertificateRequest generates a "aws/request.Request" representing the
1930// client's request for the DescribeCertificate operation. The "output" return
1931// value will be populated with the request's response once the request completes
1932// successfully.
1933//
1934// Use "Send" method on the returned Request to send the API call to the service.
1935// the "output" return value is not valid until after Send returns without error.
1936//
1937// See DescribeCertificate for more information on using the DescribeCertificate
1938// API call, and error handling.
1939//
1940// This method is useful when you want to inject custom logic or configuration
1941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1942//
1943//
1944//    // Example sending a request using the DescribeCertificateRequest method.
1945//    req, resp := client.DescribeCertificateRequest(params)
1946//
1947//    err := req.Send()
1948//    if err == nil { // resp is now filled
1949//        fmt.Println(resp)
1950//    }
1951//
1952// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeCertificate
1953func (c *DirectoryService) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
1954	op := &request.Operation{
1955		Name:       opDescribeCertificate,
1956		HTTPMethod: "POST",
1957		HTTPPath:   "/",
1958	}
1959
1960	if input == nil {
1961		input = &DescribeCertificateInput{}
1962	}
1963
1964	output = &DescribeCertificateOutput{}
1965	req = c.newRequest(op, input, output)
1966	return
1967}
1968
1969// DescribeCertificate API operation for AWS Directory Service.
1970//
1971// Displays information about the certificate registered for a secured LDAP
1972// connection.
1973//
1974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1975// with awserr.Error's Code and Message methods to get detailed information about
1976// the error.
1977//
1978// See the AWS API reference guide for AWS Directory Service's
1979// API operation DescribeCertificate for usage and error information.
1980//
1981// Returned Error Codes:
1982//   * ErrCodeDirectoryDoesNotExistException "DirectoryDoesNotExistException"
1983//   The specified directory does not exist in the system.
1984//
1985//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1986//   The operation is not supported.
1987//
1988//   * ErrCodeCertificateDoesNotExistException "CertificateDoesNotExistException"
1989//   The certificate is not present in the system for describe or deregister activities.
1990//
1991//   * ErrCodeInvalidParameterException "InvalidParameterException"
1992//   One or more parameters are not valid.
1993//
1994//   * ErrCodeClientException "ClientException"
1995//   A client exception has occurred.
1996//
1997//   * ErrCodeServiceException "ServiceException"
1998//   An exception has occurred in AWS Directory Service.
1999//
2000// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeCertificate
2001func (c *DirectoryService) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
2002	req, out := c.DescribeCertificateRequest(input)
2003	return out, req.Send()
2004}
2005
2006// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
2007// the ability to pass a context and additional request options.
2008//
2009// See DescribeCertificate for details on how to use this API operation.
2010//
2011// The context must be non-nil and will be used for request cancellation. If
2012// the context is nil a panic will occur. In the future the SDK may create
2013// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2014// for more information on using Contexts.
2015func (c *DirectoryService) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
2016	req, out := c.DescribeCertificateRequest(input)
2017	req.SetContext(ctx)
2018	req.ApplyOptions(opts...)
2019	return out, req.Send()
2020}
2021
2022const opDescribeConditionalForwarders = "DescribeConditionalForwarders"
2023
2024// DescribeConditionalForwardersRequest generates a "aws/request.Request" representing the
2025// client's request for the DescribeConditionalForwarders operation. The "output" return
2026// value will be populated with the request's response once the request completes
2027// successfully.
2028//
2029// Use "Send" method on the returned Request to send the API call to the service.
2030// the "output" return value is not valid until after Send returns without error.
2031//
2032// See DescribeConditionalForwarders for more information on using the DescribeConditionalForwarders
2033// API call, and error handling.
2034//
2035// This method is useful when you want to inject custom logic or configuration
2036// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2037//
2038//
2039//    // Example sending a request using the DescribeConditionalForwardersRequest method.
2040//    req, resp := client.DescribeConditionalForwardersRequest(params)
2041//
2042//    err := req.Send()
2043//    if err == nil { // resp is now filled
2044//        fmt.Println(resp)
2045//    }
2046//
2047// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
2048func (c *DirectoryService) DescribeConditionalForwardersRequest(input *DescribeConditionalForwardersInput) (req *request.Request, output *DescribeConditionalForwardersOutput) {
2049	op := &request.Operation{
2050		Name:       opDescribeConditionalForwarders,
2051		HTTPMethod: "POST",
2052		HTTPPath:   "/",
2053	}
2054
2055	if input == nil {
2056		input = &DescribeConditionalForwardersInput{}
2057	}
2058
2059	output = &DescribeConditionalForwardersOutput{}
2060	req = c.newRequest(op, input, output)
2061	return
2062}
2063
2064// DescribeConditionalForwarders API operation for AWS Directory Service.
2065//
2066// Obtains information about the conditional forwarders for this account.
2067//
2068// If no input parameters are provided for RemoteDomainNames, this request describes
2069// all conditional forwarders for the specified directory ID.
2070//
2071// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2072// with awserr.Error's Code and Message methods to get detailed information about
2073// the error.
2074//
2075// See the AWS API reference guide for AWS Directory Service's
2076// API operation DescribeConditionalForwarders for usage and error information.
2077//
2078// Returned Error Codes:
2079//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2080//   The specified entity could not be found.
2081//
2082//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
2083//   The specified directory is unavailable or could not be found.
2084//
2085//   * ErrCodeInvalidParameterException "InvalidParameterException"
2086//   One or more parameters are not valid.
2087//
2088//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2089//   The operation is not supported.
2090//
2091//   * ErrCodeClientException "ClientException"
2092//   A client exception has occurred.
2093//
2094//   * ErrCodeServiceException "ServiceException"
2095//   An exception has occurred in AWS Directory Service.
2096//
2097// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
2098func (c *DirectoryService) DescribeConditionalForwarders(input *DescribeConditionalForwardersInput) (*DescribeConditionalForwardersOutput, error) {
2099	req, out := c.DescribeConditionalForwardersRequest(input)
2100	return out, req.Send()
2101}
2102
2103// DescribeConditionalForwardersWithContext is the same as DescribeConditionalForwarders with the addition of
2104// the ability to pass a context and additional request options.
2105//
2106// See DescribeConditionalForwarders for details on how to use this API operation.
2107//
2108// The context must be non-nil and will be used for request cancellation. If
2109// the context is nil a panic will occur. In the future the SDK may create
2110// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2111// for more information on using Contexts.
2112func (c *DirectoryService) DescribeConditionalForwardersWithContext(ctx aws.Context, input *DescribeConditionalForwardersInput, opts ...request.Option) (*DescribeConditionalForwardersOutput, error) {
2113	req, out := c.DescribeConditionalForwardersRequest(input)
2114	req.SetContext(ctx)
2115	req.ApplyOptions(opts...)
2116	return out, req.Send()
2117}
2118
2119const opDescribeDirectories = "DescribeDirectories"
2120
2121// DescribeDirectoriesRequest generates a "aws/request.Request" representing the
2122// client's request for the DescribeDirectories operation. The "output" return
2123// value will be populated with the request's response once the request completes
2124// successfully.
2125//
2126// Use "Send" method on the returned Request to send the API call to the service.
2127// the "output" return value is not valid until after Send returns without error.
2128//
2129// See DescribeDirectories for more information on using the DescribeDirectories
2130// API call, and error handling.
2131//
2132// This method is useful when you want to inject custom logic or configuration
2133// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2134//
2135//
2136//    // Example sending a request using the DescribeDirectoriesRequest method.
2137//    req, resp := client.DescribeDirectoriesRequest(params)
2138//
2139//    err := req.Send()
2140//    if err == nil { // resp is now filled
2141//        fmt.Println(resp)
2142//    }
2143//
2144// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
2145func (c *DirectoryService) DescribeDirectoriesRequest(input *DescribeDirectoriesInput) (req *request.Request, output *DescribeDirectoriesOutput) {
2146	op := &request.Operation{
2147		Name:       opDescribeDirectories,
2148		HTTPMethod: "POST",
2149		HTTPPath:   "/",
2150	}
2151
2152	if input == nil {
2153		input = &DescribeDirectoriesInput{}
2154	}
2155
2156	output = &DescribeDirectoriesOutput{}
2157	req = c.newRequest(op, input, output)
2158	return
2159}
2160
2161// DescribeDirectories API operation for AWS Directory Service.
2162//
2163// Obtains information about the directories that belong to this account.
2164//
2165// You can retrieve information about specific directories by passing the directory
2166// identifiers in the DirectoryIds parameter. Otherwise, all directories that
2167// belong to the current account are returned.
2168//
2169// This operation supports pagination with the use of the NextToken request
2170// and response parameters. If more results are available, the DescribeDirectoriesResult.NextToken
2171// member contains a token that you pass in the next call to DescribeDirectories
2172// to retrieve the next set of items.
2173//
2174// You can also specify a maximum number of return results with the Limit parameter.
2175//
2176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2177// with awserr.Error's Code and Message methods to get detailed information about
2178// the error.
2179//
2180// See the AWS API reference guide for AWS Directory Service's
2181// API operation DescribeDirectories for usage and error information.
2182//
2183// Returned Error Codes:
2184//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2185//   The specified entity could not be found.
2186//
2187//   * ErrCodeInvalidParameterException "InvalidParameterException"
2188//   One or more parameters are not valid.
2189//
2190//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2191//   The NextToken value is not valid.
2192//
2193//   * ErrCodeClientException "ClientException"
2194//   A client exception has occurred.
2195//
2196//   * ErrCodeServiceException "ServiceException"
2197//   An exception has occurred in AWS Directory Service.
2198//
2199// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
2200func (c *DirectoryService) DescribeDirectories(input *DescribeDirectoriesInput) (*DescribeDirectoriesOutput, error) {
2201	req, out := c.DescribeDirectoriesRequest(input)
2202	return out, req.Send()
2203}
2204
2205// DescribeDirectoriesWithContext is the same as DescribeDirectories with the addition of
2206// the ability to pass a context and additional request options.
2207//
2208// See DescribeDirectories for details on how to use this API operation.
2209//
2210// The context must be non-nil and will be used for request cancellation. If
2211// the context is nil a panic will occur. In the future the SDK may create
2212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2213// for more information on using Contexts.
2214func (c *DirectoryService) DescribeDirectoriesWithContext(ctx aws.Context, input *DescribeDirectoriesInput, opts ...request.Option) (*DescribeDirectoriesOutput, error) {
2215	req, out := c.DescribeDirectoriesRequest(input)
2216	req.SetContext(ctx)
2217	req.ApplyOptions(opts...)
2218	return out, req.Send()
2219}
2220
2221const opDescribeDomainControllers = "DescribeDomainControllers"
2222
2223// DescribeDomainControllersRequest generates a "aws/request.Request" representing the
2224// client's request for the DescribeDomainControllers operation. The "output" return
2225// value will be populated with the request's response once the request completes
2226// successfully.
2227//
2228// Use "Send" method on the returned Request to send the API call to the service.
2229// the "output" return value is not valid until after Send returns without error.
2230//
2231// See DescribeDomainControllers for more information on using the DescribeDomainControllers
2232// API call, and error handling.
2233//
2234// This method is useful when you want to inject custom logic or configuration
2235// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2236//
2237//
2238//    // Example sending a request using the DescribeDomainControllersRequest method.
2239//    req, resp := client.DescribeDomainControllersRequest(params)
2240//
2241//    err := req.Send()
2242//    if err == nil { // resp is now filled
2243//        fmt.Println(resp)
2244//    }
2245//
2246// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2247func (c *DirectoryService) DescribeDomainControllersRequest(input *DescribeDomainControllersInput) (req *request.Request, output *DescribeDomainControllersOutput) {
2248	op := &request.Operation{
2249		Name:       opDescribeDomainControllers,
2250		HTTPMethod: "POST",
2251		HTTPPath:   "/",
2252		Paginator: &request.Paginator{
2253			InputTokens:     []string{"NextToken"},
2254			OutputTokens:    []string{"NextToken"},
2255			LimitToken:      "Limit",
2256			TruncationToken: "",
2257		},
2258	}
2259
2260	if input == nil {
2261		input = &DescribeDomainControllersInput{}
2262	}
2263
2264	output = &DescribeDomainControllersOutput{}
2265	req = c.newRequest(op, input, output)
2266	return
2267}
2268
2269// DescribeDomainControllers API operation for AWS Directory Service.
2270//
2271// Provides information about any domain controllers in your directory.
2272//
2273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2274// with awserr.Error's Code and Message methods to get detailed information about
2275// the error.
2276//
2277// See the AWS API reference guide for AWS Directory Service's
2278// API operation DescribeDomainControllers for usage and error information.
2279//
2280// Returned Error Codes:
2281//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2282//   The specified entity could not be found.
2283//
2284//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2285//   The NextToken value is not valid.
2286//
2287//   * ErrCodeInvalidParameterException "InvalidParameterException"
2288//   One or more parameters are not valid.
2289//
2290//   * ErrCodeClientException "ClientException"
2291//   A client exception has occurred.
2292//
2293//   * ErrCodeServiceException "ServiceException"
2294//   An exception has occurred in AWS Directory Service.
2295//
2296//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2297//   The operation is not supported.
2298//
2299// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2300func (c *DirectoryService) DescribeDomainControllers(input *DescribeDomainControllersInput) (*DescribeDomainControllersOutput, error) {
2301	req, out := c.DescribeDomainControllersRequest(input)
2302	return out, req.Send()
2303}
2304
2305// DescribeDomainControllersWithContext is the same as DescribeDomainControllers with the addition of
2306// the ability to pass a context and additional request options.
2307//
2308// See DescribeDomainControllers for details on how to use this API operation.
2309//
2310// The context must be non-nil and will be used for request cancellation. If
2311// the context is nil a panic will occur. In the future the SDK may create
2312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2313// for more information on using Contexts.
2314func (c *DirectoryService) DescribeDomainControllersWithContext(ctx aws.Context, input *DescribeDomainControllersInput, opts ...request.Option) (*DescribeDomainControllersOutput, error) {
2315	req, out := c.DescribeDomainControllersRequest(input)
2316	req.SetContext(ctx)
2317	req.ApplyOptions(opts...)
2318	return out, req.Send()
2319}
2320
2321// DescribeDomainControllersPages iterates over the pages of a DescribeDomainControllers operation,
2322// calling the "fn" function with the response data for each page. To stop
2323// iterating, return false from the fn function.
2324//
2325// See DescribeDomainControllers method for more information on how to use this operation.
2326//
2327// Note: This operation can generate multiple requests to a service.
2328//
2329//    // Example iterating over at most 3 pages of a DescribeDomainControllers operation.
2330//    pageNum := 0
2331//    err := client.DescribeDomainControllersPages(params,
2332//        func(page *directoryservice.DescribeDomainControllersOutput, lastPage bool) bool {
2333//            pageNum++
2334//            fmt.Println(page)
2335//            return pageNum <= 3
2336//        })
2337//
2338func (c *DirectoryService) DescribeDomainControllersPages(input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool) error {
2339	return c.DescribeDomainControllersPagesWithContext(aws.BackgroundContext(), input, fn)
2340}
2341
2342// DescribeDomainControllersPagesWithContext same as DescribeDomainControllersPages except
2343// it takes a Context and allows setting request options on the pages.
2344//
2345// The context must be non-nil and will be used for request cancellation. If
2346// the context is nil a panic will occur. In the future the SDK may create
2347// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2348// for more information on using Contexts.
2349func (c *DirectoryService) DescribeDomainControllersPagesWithContext(ctx aws.Context, input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool, opts ...request.Option) error {
2350	p := request.Pagination{
2351		NewRequest: func() (*request.Request, error) {
2352			var inCpy *DescribeDomainControllersInput
2353			if input != nil {
2354				tmp := *input
2355				inCpy = &tmp
2356			}
2357			req, _ := c.DescribeDomainControllersRequest(inCpy)
2358			req.SetContext(ctx)
2359			req.ApplyOptions(opts...)
2360			return req, nil
2361		},
2362	}
2363
2364	for p.Next() {
2365		if !fn(p.Page().(*DescribeDomainControllersOutput), !p.HasNextPage()) {
2366			break
2367		}
2368	}
2369
2370	return p.Err()
2371}
2372
2373const opDescribeEventTopics = "DescribeEventTopics"
2374
2375// DescribeEventTopicsRequest generates a "aws/request.Request" representing the
2376// client's request for the DescribeEventTopics operation. The "output" return
2377// value will be populated with the request's response once the request completes
2378// successfully.
2379//
2380// Use "Send" method on the returned Request to send the API call to the service.
2381// the "output" return value is not valid until after Send returns without error.
2382//
2383// See DescribeEventTopics for more information on using the DescribeEventTopics
2384// API call, and error handling.
2385//
2386// This method is useful when you want to inject custom logic or configuration
2387// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2388//
2389//
2390//    // Example sending a request using the DescribeEventTopicsRequest method.
2391//    req, resp := client.DescribeEventTopicsRequest(params)
2392//
2393//    err := req.Send()
2394//    if err == nil { // resp is now filled
2395//        fmt.Println(resp)
2396//    }
2397//
2398// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2399func (c *DirectoryService) DescribeEventTopicsRequest(input *DescribeEventTopicsInput) (req *request.Request, output *DescribeEventTopicsOutput) {
2400	op := &request.Operation{
2401		Name:       opDescribeEventTopics,
2402		HTTPMethod: "POST",
2403		HTTPPath:   "/",
2404	}
2405
2406	if input == nil {
2407		input = &DescribeEventTopicsInput{}
2408	}
2409
2410	output = &DescribeEventTopicsOutput{}
2411	req = c.newRequest(op, input, output)
2412	return
2413}
2414
2415// DescribeEventTopics API operation for AWS Directory Service.
2416//
2417// Obtains information about which SNS topics receive status messages from the
2418// specified directory.
2419//
2420// If no input parameters are provided, such as DirectoryId or TopicName, this
2421// request describes all of the associations in the account.
2422//
2423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2424// with awserr.Error's Code and Message methods to get detailed information about
2425// the error.
2426//
2427// See the AWS API reference guide for AWS Directory Service's
2428// API operation DescribeEventTopics for usage and error information.
2429//
2430// Returned Error Codes:
2431//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2432//   The specified entity could not be found.
2433//
2434//   * ErrCodeInvalidParameterException "InvalidParameterException"
2435//   One or more parameters are not valid.
2436//
2437//   * ErrCodeClientException "ClientException"
2438//   A client exception has occurred.
2439//
2440//   * ErrCodeServiceException "ServiceException"
2441//   An exception has occurred in AWS Directory Service.
2442//
2443// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2444func (c *DirectoryService) DescribeEventTopics(input *DescribeEventTopicsInput) (*DescribeEventTopicsOutput, error) {
2445	req, out := c.DescribeEventTopicsRequest(input)
2446	return out, req.Send()
2447}
2448
2449// DescribeEventTopicsWithContext is the same as DescribeEventTopics with the addition of
2450// the ability to pass a context and additional request options.
2451//
2452// See DescribeEventTopics for details on how to use this API operation.
2453//
2454// The context must be non-nil and will be used for request cancellation. If
2455// the context is nil a panic will occur. In the future the SDK may create
2456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2457// for more information on using Contexts.
2458func (c *DirectoryService) DescribeEventTopicsWithContext(ctx aws.Context, input *DescribeEventTopicsInput, opts ...request.Option) (*DescribeEventTopicsOutput, error) {
2459	req, out := c.DescribeEventTopicsRequest(input)
2460	req.SetContext(ctx)
2461	req.ApplyOptions(opts...)
2462	return out, req.Send()
2463}
2464
2465const opDescribeLDAPSSettings = "DescribeLDAPSSettings"
2466
2467// DescribeLDAPSSettingsRequest generates a "aws/request.Request" representing the
2468// client's request for the DescribeLDAPSSettings operation. The "output" return
2469// value will be populated with the request's response once the request completes
2470// successfully.
2471//
2472// Use "Send" method on the returned Request to send the API call to the service.
2473// the "output" return value is not valid until after Send returns without error.
2474//
2475// See DescribeLDAPSSettings for more information on using the DescribeLDAPSSettings
2476// API call, and error handling.
2477//
2478// This method is useful when you want to inject custom logic or configuration
2479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2480//
2481//
2482//    // Example sending a request using the DescribeLDAPSSettingsRequest method.
2483//    req, resp := client.DescribeLDAPSSettingsRequest(params)
2484//
2485//    err := req.Send()
2486//    if err == nil { // resp is now filled
2487//        fmt.Println(resp)
2488//    }
2489//
2490// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeLDAPSSettings
2491func (c *DirectoryService) DescribeLDAPSSettingsRequest(input *DescribeLDAPSSettingsInput) (req *request.Request, output *DescribeLDAPSSettingsOutput) {
2492	op := &request.Operation{
2493		Name:       opDescribeLDAPSSettings,
2494		HTTPMethod: "POST",
2495		HTTPPath:   "/",
2496	}
2497
2498	if input == nil {
2499		input = &DescribeLDAPSSettingsInput{}
2500	}
2501
2502	output = &DescribeLDAPSSettingsOutput{}
2503	req = c.newRequest(op, input, output)
2504	return
2505}
2506
2507// DescribeLDAPSSettings API operation for AWS Directory Service.
2508//
2509// Describes the status of LDAP security for the specified directory.
2510//
2511// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2512// with awserr.Error's Code and Message methods to get detailed information about
2513// the error.
2514//
2515// See the AWS API reference guide for AWS Directory Service's
2516// API operation DescribeLDAPSSettings for usage and error information.
2517//
2518// Returned Error Codes:
2519//   * ErrCodeDirectoryDoesNotExistException "DirectoryDoesNotExistException"
2520//   The specified directory does not exist in the system.
2521//
2522//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2523//   The operation is not supported.
2524//
2525//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2526//   The NextToken value is not valid.
2527//
2528//   * ErrCodeInvalidParameterException "InvalidParameterException"
2529//   One or more parameters are not valid.
2530//
2531//   * ErrCodeClientException "ClientException"
2532//   A client exception has occurred.
2533//
2534//   * ErrCodeServiceException "ServiceException"
2535//   An exception has occurred in AWS Directory Service.
2536//
2537// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeLDAPSSettings
2538func (c *DirectoryService) DescribeLDAPSSettings(input *DescribeLDAPSSettingsInput) (*DescribeLDAPSSettingsOutput, error) {
2539	req, out := c.DescribeLDAPSSettingsRequest(input)
2540	return out, req.Send()
2541}
2542
2543// DescribeLDAPSSettingsWithContext is the same as DescribeLDAPSSettings with the addition of
2544// the ability to pass a context and additional request options.
2545//
2546// See DescribeLDAPSSettings for details on how to use this API operation.
2547//
2548// The context must be non-nil and will be used for request cancellation. If
2549// the context is nil a panic will occur. In the future the SDK may create
2550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2551// for more information on using Contexts.
2552func (c *DirectoryService) DescribeLDAPSSettingsWithContext(ctx aws.Context, input *DescribeLDAPSSettingsInput, opts ...request.Option) (*DescribeLDAPSSettingsOutput, error) {
2553	req, out := c.DescribeLDAPSSettingsRequest(input)
2554	req.SetContext(ctx)
2555	req.ApplyOptions(opts...)
2556	return out, req.Send()
2557}
2558
2559const opDescribeSharedDirectories = "DescribeSharedDirectories"
2560
2561// DescribeSharedDirectoriesRequest generates a "aws/request.Request" representing the
2562// client's request for the DescribeSharedDirectories operation. The "output" return
2563// value will be populated with the request's response once the request completes
2564// successfully.
2565//
2566// Use "Send" method on the returned Request to send the API call to the service.
2567// the "output" return value is not valid until after Send returns without error.
2568//
2569// See DescribeSharedDirectories for more information on using the DescribeSharedDirectories
2570// API call, and error handling.
2571//
2572// This method is useful when you want to inject custom logic or configuration
2573// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2574//
2575//
2576//    // Example sending a request using the DescribeSharedDirectoriesRequest method.
2577//    req, resp := client.DescribeSharedDirectoriesRequest(params)
2578//
2579//    err := req.Send()
2580//    if err == nil { // resp is now filled
2581//        fmt.Println(resp)
2582//    }
2583//
2584// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2585func (c *DirectoryService) DescribeSharedDirectoriesRequest(input *DescribeSharedDirectoriesInput) (req *request.Request, output *DescribeSharedDirectoriesOutput) {
2586	op := &request.Operation{
2587		Name:       opDescribeSharedDirectories,
2588		HTTPMethod: "POST",
2589		HTTPPath:   "/",
2590	}
2591
2592	if input == nil {
2593		input = &DescribeSharedDirectoriesInput{}
2594	}
2595
2596	output = &DescribeSharedDirectoriesOutput{}
2597	req = c.newRequest(op, input, output)
2598	return
2599}
2600
2601// DescribeSharedDirectories API operation for AWS Directory Service.
2602//
2603// Returns the shared directories in your account.
2604//
2605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2606// with awserr.Error's Code and Message methods to get detailed information about
2607// the error.
2608//
2609// See the AWS API reference guide for AWS Directory Service's
2610// API operation DescribeSharedDirectories for usage and error information.
2611//
2612// Returned Error Codes:
2613//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2614//   The specified entity could not be found.
2615//
2616//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2617//   The NextToken value is not valid.
2618//
2619//   * ErrCodeInvalidParameterException "InvalidParameterException"
2620//   One or more parameters are not valid.
2621//
2622//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2623//   The operation is not supported.
2624//
2625//   * ErrCodeClientException "ClientException"
2626//   A client exception has occurred.
2627//
2628//   * ErrCodeServiceException "ServiceException"
2629//   An exception has occurred in AWS Directory Service.
2630//
2631// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2632func (c *DirectoryService) DescribeSharedDirectories(input *DescribeSharedDirectoriesInput) (*DescribeSharedDirectoriesOutput, error) {
2633	req, out := c.DescribeSharedDirectoriesRequest(input)
2634	return out, req.Send()
2635}
2636
2637// DescribeSharedDirectoriesWithContext is the same as DescribeSharedDirectories with the addition of
2638// the ability to pass a context and additional request options.
2639//
2640// See DescribeSharedDirectories for details on how to use this API operation.
2641//
2642// The context must be non-nil and will be used for request cancellation. If
2643// the context is nil a panic will occur. In the future the SDK may create
2644// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2645// for more information on using Contexts.
2646func (c *DirectoryService) DescribeSharedDirectoriesWithContext(ctx aws.Context, input *DescribeSharedDirectoriesInput, opts ...request.Option) (*DescribeSharedDirectoriesOutput, error) {
2647	req, out := c.DescribeSharedDirectoriesRequest(input)
2648	req.SetContext(ctx)
2649	req.ApplyOptions(opts...)
2650	return out, req.Send()
2651}
2652
2653const opDescribeSnapshots = "DescribeSnapshots"
2654
2655// DescribeSnapshotsRequest generates a "aws/request.Request" representing the
2656// client's request for the DescribeSnapshots operation. The "output" return
2657// value will be populated with the request's response once the request completes
2658// successfully.
2659//
2660// Use "Send" method on the returned Request to send the API call to the service.
2661// the "output" return value is not valid until after Send returns without error.
2662//
2663// See DescribeSnapshots for more information on using the DescribeSnapshots
2664// API call, and error handling.
2665//
2666// This method is useful when you want to inject custom logic or configuration
2667// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2668//
2669//
2670//    // Example sending a request using the DescribeSnapshotsRequest method.
2671//    req, resp := client.DescribeSnapshotsRequest(params)
2672//
2673//    err := req.Send()
2674//    if err == nil { // resp is now filled
2675//        fmt.Println(resp)
2676//    }
2677//
2678// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
2679func (c *DirectoryService) DescribeSnapshotsRequest(input *DescribeSnapshotsInput) (req *request.Request, output *DescribeSnapshotsOutput) {
2680	op := &request.Operation{
2681		Name:       opDescribeSnapshots,
2682		HTTPMethod: "POST",
2683		HTTPPath:   "/",
2684	}
2685
2686	if input == nil {
2687		input = &DescribeSnapshotsInput{}
2688	}
2689
2690	output = &DescribeSnapshotsOutput{}
2691	req = c.newRequest(op, input, output)
2692	return
2693}
2694
2695// DescribeSnapshots API operation for AWS Directory Service.
2696//
2697// Obtains information about the directory snapshots that belong to this account.
2698//
2699// This operation supports pagination with the use of the NextToken request
2700// and response parameters. If more results are available, the DescribeSnapshots.NextToken
2701// member contains a token that you pass in the next call to DescribeSnapshots
2702// to retrieve the next set of items.
2703//
2704// You can also specify a maximum number of return results with the Limit parameter.
2705//
2706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2707// with awserr.Error's Code and Message methods to get detailed information about
2708// the error.
2709//
2710// See the AWS API reference guide for AWS Directory Service's
2711// API operation DescribeSnapshots for usage and error information.
2712//
2713// Returned Error Codes:
2714//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2715//   The specified entity could not be found.
2716//
2717//   * ErrCodeInvalidParameterException "InvalidParameterException"
2718//   One or more parameters are not valid.
2719//
2720//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2721//   The NextToken value is not valid.
2722//
2723//   * ErrCodeClientException "ClientException"
2724//   A client exception has occurred.
2725//
2726//   * ErrCodeServiceException "ServiceException"
2727//   An exception has occurred in AWS Directory Service.
2728//
2729// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
2730func (c *DirectoryService) DescribeSnapshots(input *DescribeSnapshotsInput) (*DescribeSnapshotsOutput, error) {
2731	req, out := c.DescribeSnapshotsRequest(input)
2732	return out, req.Send()
2733}
2734
2735// DescribeSnapshotsWithContext is the same as DescribeSnapshots with the addition of
2736// the ability to pass a context and additional request options.
2737//
2738// See DescribeSnapshots for details on how to use this API operation.
2739//
2740// The context must be non-nil and will be used for request cancellation. If
2741// the context is nil a panic will occur. In the future the SDK may create
2742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2743// for more information on using Contexts.
2744func (c *DirectoryService) DescribeSnapshotsWithContext(ctx aws.Context, input *DescribeSnapshotsInput, opts ...request.Option) (*DescribeSnapshotsOutput, error) {
2745	req, out := c.DescribeSnapshotsRequest(input)
2746	req.SetContext(ctx)
2747	req.ApplyOptions(opts...)
2748	return out, req.Send()
2749}
2750
2751const opDescribeTrusts = "DescribeTrusts"
2752
2753// DescribeTrustsRequest generates a "aws/request.Request" representing the
2754// client's request for the DescribeTrusts operation. The "output" return
2755// value will be populated with the request's response once the request completes
2756// successfully.
2757//
2758// Use "Send" method on the returned Request to send the API call to the service.
2759// the "output" return value is not valid until after Send returns without error.
2760//
2761// See DescribeTrusts for more information on using the DescribeTrusts
2762// API call, and error handling.
2763//
2764// This method is useful when you want to inject custom logic or configuration
2765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2766//
2767//
2768//    // Example sending a request using the DescribeTrustsRequest method.
2769//    req, resp := client.DescribeTrustsRequest(params)
2770//
2771//    err := req.Send()
2772//    if err == nil { // resp is now filled
2773//        fmt.Println(resp)
2774//    }
2775//
2776// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
2777func (c *DirectoryService) DescribeTrustsRequest(input *DescribeTrustsInput) (req *request.Request, output *DescribeTrustsOutput) {
2778	op := &request.Operation{
2779		Name:       opDescribeTrusts,
2780		HTTPMethod: "POST",
2781		HTTPPath:   "/",
2782	}
2783
2784	if input == nil {
2785		input = &DescribeTrustsInput{}
2786	}
2787
2788	output = &DescribeTrustsOutput{}
2789	req = c.newRequest(op, input, output)
2790	return
2791}
2792
2793// DescribeTrusts API operation for AWS Directory Service.
2794//
2795// Obtains information about the trust relationships for this account.
2796//
2797// If no input parameters are provided, such as DirectoryId or TrustIds, this
2798// request describes all the trust relationships belonging to the account.
2799//
2800// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2801// with awserr.Error's Code and Message methods to get detailed information about
2802// the error.
2803//
2804// See the AWS API reference guide for AWS Directory Service's
2805// API operation DescribeTrusts for usage and error information.
2806//
2807// Returned Error Codes:
2808//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2809//   The specified entity could not be found.
2810//
2811//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2812//   The NextToken value is not valid.
2813//
2814//   * ErrCodeInvalidParameterException "InvalidParameterException"
2815//   One or more parameters are not valid.
2816//
2817//   * ErrCodeClientException "ClientException"
2818//   A client exception has occurred.
2819//
2820//   * ErrCodeServiceException "ServiceException"
2821//   An exception has occurred in AWS Directory Service.
2822//
2823//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2824//   The operation is not supported.
2825//
2826// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
2827func (c *DirectoryService) DescribeTrusts(input *DescribeTrustsInput) (*DescribeTrustsOutput, error) {
2828	req, out := c.DescribeTrustsRequest(input)
2829	return out, req.Send()
2830}
2831
2832// DescribeTrustsWithContext is the same as DescribeTrusts with the addition of
2833// the ability to pass a context and additional request options.
2834//
2835// See DescribeTrusts for details on how to use this API operation.
2836//
2837// The context must be non-nil and will be used for request cancellation. If
2838// the context is nil a panic will occur. In the future the SDK may create
2839// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2840// for more information on using Contexts.
2841func (c *DirectoryService) DescribeTrustsWithContext(ctx aws.Context, input *DescribeTrustsInput, opts ...request.Option) (*DescribeTrustsOutput, error) {
2842	req, out := c.DescribeTrustsRequest(input)
2843	req.SetContext(ctx)
2844	req.ApplyOptions(opts...)
2845	return out, req.Send()
2846}
2847
2848const opDisableLDAPS = "DisableLDAPS"
2849
2850// DisableLDAPSRequest generates a "aws/request.Request" representing the
2851// client's request for the DisableLDAPS operation. The "output" return
2852// value will be populated with the request's response once the request completes
2853// successfully.
2854//
2855// Use "Send" method on the returned Request to send the API call to the service.
2856// the "output" return value is not valid until after Send returns without error.
2857//
2858// See DisableLDAPS for more information on using the DisableLDAPS
2859// API call, and error handling.
2860//
2861// This method is useful when you want to inject custom logic or configuration
2862// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2863//
2864//
2865//    // Example sending a request using the DisableLDAPSRequest method.
2866//    req, resp := client.DisableLDAPSRequest(params)
2867//
2868//    err := req.Send()
2869//    if err == nil { // resp is now filled
2870//        fmt.Println(resp)
2871//    }
2872//
2873// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableLDAPS
2874func (c *DirectoryService) DisableLDAPSRequest(input *DisableLDAPSInput) (req *request.Request, output *DisableLDAPSOutput) {
2875	op := &request.Operation{
2876		Name:       opDisableLDAPS,
2877		HTTPMethod: "POST",
2878		HTTPPath:   "/",
2879	}
2880
2881	if input == nil {
2882		input = &DisableLDAPSInput{}
2883	}
2884
2885	output = &DisableLDAPSOutput{}
2886	req = c.newRequest(op, input, output)
2887	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2888	return
2889}
2890
2891// DisableLDAPS API operation for AWS Directory Service.
2892//
2893// Deactivates LDAP secure calls for the specified directory.
2894//
2895// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2896// with awserr.Error's Code and Message methods to get detailed information about
2897// the error.
2898//
2899// See the AWS API reference guide for AWS Directory Service's
2900// API operation DisableLDAPS for usage and error information.
2901//
2902// Returned Error Codes:
2903//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
2904//   The specified directory is unavailable or could not be found.
2905//
2906//   * ErrCodeDirectoryDoesNotExistException "DirectoryDoesNotExistException"
2907//   The specified directory does not exist in the system.
2908//
2909//   * ErrCodeInvalidLDAPSStatusException "InvalidLDAPSStatusException"
2910//   The LDAP activities could not be performed because they are limited by the
2911//   LDAPS status.
2912//
2913//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2914//   The operation is not supported.
2915//
2916//   * ErrCodeInvalidParameterException "InvalidParameterException"
2917//   One or more parameters are not valid.
2918//
2919//   * ErrCodeClientException "ClientException"
2920//   A client exception has occurred.
2921//
2922//   * ErrCodeServiceException "ServiceException"
2923//   An exception has occurred in AWS Directory Service.
2924//
2925// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableLDAPS
2926func (c *DirectoryService) DisableLDAPS(input *DisableLDAPSInput) (*DisableLDAPSOutput, error) {
2927	req, out := c.DisableLDAPSRequest(input)
2928	return out, req.Send()
2929}
2930
2931// DisableLDAPSWithContext is the same as DisableLDAPS with the addition of
2932// the ability to pass a context and additional request options.
2933//
2934// See DisableLDAPS for details on how to use this API operation.
2935//
2936// The context must be non-nil and will be used for request cancellation. If
2937// the context is nil a panic will occur. In the future the SDK may create
2938// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2939// for more information on using Contexts.
2940func (c *DirectoryService) DisableLDAPSWithContext(ctx aws.Context, input *DisableLDAPSInput, opts ...request.Option) (*DisableLDAPSOutput, error) {
2941	req, out := c.DisableLDAPSRequest(input)
2942	req.SetContext(ctx)
2943	req.ApplyOptions(opts...)
2944	return out, req.Send()
2945}
2946
2947const opDisableRadius = "DisableRadius"
2948
2949// DisableRadiusRequest generates a "aws/request.Request" representing the
2950// client's request for the DisableRadius operation. The "output" return
2951// value will be populated with the request's response once the request completes
2952// successfully.
2953//
2954// Use "Send" method on the returned Request to send the API call to the service.
2955// the "output" return value is not valid until after Send returns without error.
2956//
2957// See DisableRadius for more information on using the DisableRadius
2958// API call, and error handling.
2959//
2960// This method is useful when you want to inject custom logic or configuration
2961// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2962//
2963//
2964//    // Example sending a request using the DisableRadiusRequest method.
2965//    req, resp := client.DisableRadiusRequest(params)
2966//
2967//    err := req.Send()
2968//    if err == nil { // resp is now filled
2969//        fmt.Println(resp)
2970//    }
2971//
2972// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
2973func (c *DirectoryService) DisableRadiusRequest(input *DisableRadiusInput) (req *request.Request, output *DisableRadiusOutput) {
2974	op := &request.Operation{
2975		Name:       opDisableRadius,
2976		HTTPMethod: "POST",
2977		HTTPPath:   "/",
2978	}
2979
2980	if input == nil {
2981		input = &DisableRadiusInput{}
2982	}
2983
2984	output = &DisableRadiusOutput{}
2985	req = c.newRequest(op, input, output)
2986	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2987	return
2988}
2989
2990// DisableRadius API operation for AWS Directory Service.
2991//
2992// Disables multi-factor authentication (MFA) with the Remote Authentication
2993// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
2994// directory.
2995//
2996// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2997// with awserr.Error's Code and Message methods to get detailed information about
2998// the error.
2999//
3000// See the AWS API reference guide for AWS Directory Service's
3001// API operation DisableRadius for usage and error information.
3002//
3003// Returned Error Codes:
3004//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3005//   The specified entity could not be found.
3006//
3007//   * ErrCodeClientException "ClientException"
3008//   A client exception has occurred.
3009//
3010//   * ErrCodeServiceException "ServiceException"
3011//   An exception has occurred in AWS Directory Service.
3012//
3013// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
3014func (c *DirectoryService) DisableRadius(input *DisableRadiusInput) (*DisableRadiusOutput, error) {
3015	req, out := c.DisableRadiusRequest(input)
3016	return out, req.Send()
3017}
3018
3019// DisableRadiusWithContext is the same as DisableRadius with the addition of
3020// the ability to pass a context and additional request options.
3021//
3022// See DisableRadius for details on how to use this API operation.
3023//
3024// The context must be non-nil and will be used for request cancellation. If
3025// the context is nil a panic will occur. In the future the SDK may create
3026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3027// for more information on using Contexts.
3028func (c *DirectoryService) DisableRadiusWithContext(ctx aws.Context, input *DisableRadiusInput, opts ...request.Option) (*DisableRadiusOutput, error) {
3029	req, out := c.DisableRadiusRequest(input)
3030	req.SetContext(ctx)
3031	req.ApplyOptions(opts...)
3032	return out, req.Send()
3033}
3034
3035const opDisableSso = "DisableSso"
3036
3037// DisableSsoRequest generates a "aws/request.Request" representing the
3038// client's request for the DisableSso operation. The "output" return
3039// value will be populated with the request's response once the request completes
3040// successfully.
3041//
3042// Use "Send" method on the returned Request to send the API call to the service.
3043// the "output" return value is not valid until after Send returns without error.
3044//
3045// See DisableSso for more information on using the DisableSso
3046// API call, and error handling.
3047//
3048// This method is useful when you want to inject custom logic or configuration
3049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3050//
3051//
3052//    // Example sending a request using the DisableSsoRequest method.
3053//    req, resp := client.DisableSsoRequest(params)
3054//
3055//    err := req.Send()
3056//    if err == nil { // resp is now filled
3057//        fmt.Println(resp)
3058//    }
3059//
3060// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
3061func (c *DirectoryService) DisableSsoRequest(input *DisableSsoInput) (req *request.Request, output *DisableSsoOutput) {
3062	op := &request.Operation{
3063		Name:       opDisableSso,
3064		HTTPMethod: "POST",
3065		HTTPPath:   "/",
3066	}
3067
3068	if input == nil {
3069		input = &DisableSsoInput{}
3070	}
3071
3072	output = &DisableSsoOutput{}
3073	req = c.newRequest(op, input, output)
3074	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3075	return
3076}
3077
3078// DisableSso API operation for AWS Directory Service.
3079//
3080// Disables single-sign on for a directory.
3081//
3082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3083// with awserr.Error's Code and Message methods to get detailed information about
3084// the error.
3085//
3086// See the AWS API reference guide for AWS Directory Service's
3087// API operation DisableSso for usage and error information.
3088//
3089// Returned Error Codes:
3090//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3091//   The specified entity could not be found.
3092//
3093//   * ErrCodeInsufficientPermissionsException "InsufficientPermissionsException"
3094//   The account does not have sufficient permission to perform the operation.
3095//
3096//   * ErrCodeAuthenticationFailedException "AuthenticationFailedException"
3097//   An authentication error occurred.
3098//
3099//   * ErrCodeClientException "ClientException"
3100//   A client exception has occurred.
3101//
3102//   * ErrCodeServiceException "ServiceException"
3103//   An exception has occurred in AWS Directory Service.
3104//
3105// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
3106func (c *DirectoryService) DisableSso(input *DisableSsoInput) (*DisableSsoOutput, error) {
3107	req, out := c.DisableSsoRequest(input)
3108	return out, req.Send()
3109}
3110
3111// DisableSsoWithContext is the same as DisableSso with the addition of
3112// the ability to pass a context and additional request options.
3113//
3114// See DisableSso for details on how to use this API operation.
3115//
3116// The context must be non-nil and will be used for request cancellation. If
3117// the context is nil a panic will occur. In the future the SDK may create
3118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3119// for more information on using Contexts.
3120func (c *DirectoryService) DisableSsoWithContext(ctx aws.Context, input *DisableSsoInput, opts ...request.Option) (*DisableSsoOutput, error) {
3121	req, out := c.DisableSsoRequest(input)
3122	req.SetContext(ctx)
3123	req.ApplyOptions(opts...)
3124	return out, req.Send()
3125}
3126
3127const opEnableLDAPS = "EnableLDAPS"
3128
3129// EnableLDAPSRequest generates a "aws/request.Request" representing the
3130// client's request for the EnableLDAPS operation. The "output" return
3131// value will be populated with the request's response once the request completes
3132// successfully.
3133//
3134// Use "Send" method on the returned Request to send the API call to the service.
3135// the "output" return value is not valid until after Send returns without error.
3136//
3137// See EnableLDAPS for more information on using the EnableLDAPS
3138// API call, and error handling.
3139//
3140// This method is useful when you want to inject custom logic or configuration
3141// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3142//
3143//
3144//    // Example sending a request using the EnableLDAPSRequest method.
3145//    req, resp := client.EnableLDAPSRequest(params)
3146//
3147//    err := req.Send()
3148//    if err == nil { // resp is now filled
3149//        fmt.Println(resp)
3150//    }
3151//
3152// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableLDAPS
3153func (c *DirectoryService) EnableLDAPSRequest(input *EnableLDAPSInput) (req *request.Request, output *EnableLDAPSOutput) {
3154	op := &request.Operation{
3155		Name:       opEnableLDAPS,
3156		HTTPMethod: "POST",
3157		HTTPPath:   "/",
3158	}
3159
3160	if input == nil {
3161		input = &EnableLDAPSInput{}
3162	}
3163
3164	output = &EnableLDAPSOutput{}
3165	req = c.newRequest(op, input, output)
3166	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3167	return
3168}
3169
3170// EnableLDAPS API operation for AWS Directory Service.
3171//
3172// Activates the switch for the specific directory to always use LDAP secure
3173// calls.
3174//
3175// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3176// with awserr.Error's Code and Message methods to get detailed information about
3177// the error.
3178//
3179// See the AWS API reference guide for AWS Directory Service's
3180// API operation EnableLDAPS for usage and error information.
3181//
3182// Returned Error Codes:
3183//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
3184//   The specified directory is unavailable or could not be found.
3185//
3186//   * ErrCodeDirectoryDoesNotExistException "DirectoryDoesNotExistException"
3187//   The specified directory does not exist in the system.
3188//
3189//   * ErrCodeNoAvailableCertificateException "NoAvailableCertificateException"
3190//   The LDAP activities could not be performed because at least one valid certificate
3191//   must be registered with the system.
3192//
3193//   * ErrCodeInvalidLDAPSStatusException "InvalidLDAPSStatusException"
3194//   The LDAP activities could not be performed because they are limited by the
3195//   LDAPS status.
3196//
3197//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
3198//   The operation is not supported.
3199//
3200//   * ErrCodeInvalidParameterException "InvalidParameterException"
3201//   One or more parameters are not valid.
3202//
3203//   * ErrCodeClientException "ClientException"
3204//   A client exception has occurred.
3205//
3206//   * ErrCodeServiceException "ServiceException"
3207//   An exception has occurred in AWS Directory Service.
3208//
3209// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableLDAPS
3210func (c *DirectoryService) EnableLDAPS(input *EnableLDAPSInput) (*EnableLDAPSOutput, error) {
3211	req, out := c.EnableLDAPSRequest(input)
3212	return out, req.Send()
3213}
3214
3215// EnableLDAPSWithContext is the same as EnableLDAPS with the addition of
3216// the ability to pass a context and additional request options.
3217//
3218// See EnableLDAPS for details on how to use this API operation.
3219//
3220// The context must be non-nil and will be used for request cancellation. If
3221// the context is nil a panic will occur. In the future the SDK may create
3222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3223// for more information on using Contexts.
3224func (c *DirectoryService) EnableLDAPSWithContext(ctx aws.Context, input *EnableLDAPSInput, opts ...request.Option) (*EnableLDAPSOutput, error) {
3225	req, out := c.EnableLDAPSRequest(input)
3226	req.SetContext(ctx)
3227	req.ApplyOptions(opts...)
3228	return out, req.Send()
3229}
3230
3231const opEnableRadius = "EnableRadius"
3232
3233// EnableRadiusRequest generates a "aws/request.Request" representing the
3234// client's request for the EnableRadius operation. The "output" return
3235// value will be populated with the request's response once the request completes
3236// successfully.
3237//
3238// Use "Send" method on the returned Request to send the API call to the service.
3239// the "output" return value is not valid until after Send returns without error.
3240//
3241// See EnableRadius for more information on using the EnableRadius
3242// API call, and error handling.
3243//
3244// This method is useful when you want to inject custom logic or configuration
3245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3246//
3247//
3248//    // Example sending a request using the EnableRadiusRequest method.
3249//    req, resp := client.EnableRadiusRequest(params)
3250//
3251//    err := req.Send()
3252//    if err == nil { // resp is now filled
3253//        fmt.Println(resp)
3254//    }
3255//
3256// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
3257func (c *DirectoryService) EnableRadiusRequest(input *EnableRadiusInput) (req *request.Request, output *EnableRadiusOutput) {
3258	op := &request.Operation{
3259		Name:       opEnableRadius,
3260		HTTPMethod: "POST",
3261		HTTPPath:   "/",
3262	}
3263
3264	if input == nil {
3265		input = &EnableRadiusInput{}
3266	}
3267
3268	output = &EnableRadiusOutput{}
3269	req = c.newRequest(op, input, output)
3270	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3271	return
3272}
3273
3274// EnableRadius API operation for AWS Directory Service.
3275//
3276// Enables multi-factor authentication (MFA) with the Remote Authentication
3277// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
3278// directory.
3279//
3280// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3281// with awserr.Error's Code and Message methods to get detailed information about
3282// the error.
3283//
3284// See the AWS API reference guide for AWS Directory Service's
3285// API operation EnableRadius for usage and error information.
3286//
3287// Returned Error Codes:
3288//   * ErrCodeInvalidParameterException "InvalidParameterException"
3289//   One or more parameters are not valid.
3290//
3291//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
3292//   The specified entity already exists.
3293//
3294//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3295//   The specified entity could not be found.
3296//
3297//   * ErrCodeClientException "ClientException"
3298//   A client exception has occurred.
3299//
3300//   * ErrCodeServiceException "ServiceException"
3301//   An exception has occurred in AWS Directory Service.
3302//
3303// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
3304func (c *DirectoryService) EnableRadius(input *EnableRadiusInput) (*EnableRadiusOutput, error) {
3305	req, out := c.EnableRadiusRequest(input)
3306	return out, req.Send()
3307}
3308
3309// EnableRadiusWithContext is the same as EnableRadius with the addition of
3310// the ability to pass a context and additional request options.
3311//
3312// See EnableRadius for details on how to use this API operation.
3313//
3314// The context must be non-nil and will be used for request cancellation. If
3315// the context is nil a panic will occur. In the future the SDK may create
3316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3317// for more information on using Contexts.
3318func (c *DirectoryService) EnableRadiusWithContext(ctx aws.Context, input *EnableRadiusInput, opts ...request.Option) (*EnableRadiusOutput, error) {
3319	req, out := c.EnableRadiusRequest(input)
3320	req.SetContext(ctx)
3321	req.ApplyOptions(opts...)
3322	return out, req.Send()
3323}
3324
3325const opEnableSso = "EnableSso"
3326
3327// EnableSsoRequest generates a "aws/request.Request" representing the
3328// client's request for the EnableSso operation. The "output" return
3329// value will be populated with the request's response once the request completes
3330// successfully.
3331//
3332// Use "Send" method on the returned Request to send the API call to the service.
3333// the "output" return value is not valid until after Send returns without error.
3334//
3335// See EnableSso for more information on using the EnableSso
3336// API call, and error handling.
3337//
3338// This method is useful when you want to inject custom logic or configuration
3339// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3340//
3341//
3342//    // Example sending a request using the EnableSsoRequest method.
3343//    req, resp := client.EnableSsoRequest(params)
3344//
3345//    err := req.Send()
3346//    if err == nil { // resp is now filled
3347//        fmt.Println(resp)
3348//    }
3349//
3350// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
3351func (c *DirectoryService) EnableSsoRequest(input *EnableSsoInput) (req *request.Request, output *EnableSsoOutput) {
3352	op := &request.Operation{
3353		Name:       opEnableSso,
3354		HTTPMethod: "POST",
3355		HTTPPath:   "/",
3356	}
3357
3358	if input == nil {
3359		input = &EnableSsoInput{}
3360	}
3361
3362	output = &EnableSsoOutput{}
3363	req = c.newRequest(op, input, output)
3364	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3365	return
3366}
3367
3368// EnableSso API operation for AWS Directory Service.
3369//
3370// Enables single sign-on for a directory. Single sign-on allows users in your
3371// directory to access certain AWS services from a computer joined to the directory
3372// without having to enter their credentials separately.
3373//
3374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3375// with awserr.Error's Code and Message methods to get detailed information about
3376// the error.
3377//
3378// See the AWS API reference guide for AWS Directory Service's
3379// API operation EnableSso for usage and error information.
3380//
3381// Returned Error Codes:
3382//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3383//   The specified entity could not be found.
3384//
3385//   * ErrCodeInsufficientPermissionsException "InsufficientPermissionsException"
3386//   The account does not have sufficient permission to perform the operation.
3387//
3388//   * ErrCodeAuthenticationFailedException "AuthenticationFailedException"
3389//   An authentication error occurred.
3390//
3391//   * ErrCodeClientException "ClientException"
3392//   A client exception has occurred.
3393//
3394//   * ErrCodeServiceException "ServiceException"
3395//   An exception has occurred in AWS Directory Service.
3396//
3397// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
3398func (c *DirectoryService) EnableSso(input *EnableSsoInput) (*EnableSsoOutput, error) {
3399	req, out := c.EnableSsoRequest(input)
3400	return out, req.Send()
3401}
3402
3403// EnableSsoWithContext is the same as EnableSso with the addition of
3404// the ability to pass a context and additional request options.
3405//
3406// See EnableSso for details on how to use this API operation.
3407//
3408// The context must be non-nil and will be used for request cancellation. If
3409// the context is nil a panic will occur. In the future the SDK may create
3410// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3411// for more information on using Contexts.
3412func (c *DirectoryService) EnableSsoWithContext(ctx aws.Context, input *EnableSsoInput, opts ...request.Option) (*EnableSsoOutput, error) {
3413	req, out := c.EnableSsoRequest(input)
3414	req.SetContext(ctx)
3415	req.ApplyOptions(opts...)
3416	return out, req.Send()
3417}
3418
3419const opGetDirectoryLimits = "GetDirectoryLimits"
3420
3421// GetDirectoryLimitsRequest generates a "aws/request.Request" representing the
3422// client's request for the GetDirectoryLimits operation. The "output" return
3423// value will be populated with the request's response once the request completes
3424// successfully.
3425//
3426// Use "Send" method on the returned Request to send the API call to the service.
3427// the "output" return value is not valid until after Send returns without error.
3428//
3429// See GetDirectoryLimits for more information on using the GetDirectoryLimits
3430// API call, and error handling.
3431//
3432// This method is useful when you want to inject custom logic or configuration
3433// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3434//
3435//
3436//    // Example sending a request using the GetDirectoryLimitsRequest method.
3437//    req, resp := client.GetDirectoryLimitsRequest(params)
3438//
3439//    err := req.Send()
3440//    if err == nil { // resp is now filled
3441//        fmt.Println(resp)
3442//    }
3443//
3444// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
3445func (c *DirectoryService) GetDirectoryLimitsRequest(input *GetDirectoryLimitsInput) (req *request.Request, output *GetDirectoryLimitsOutput) {
3446	op := &request.Operation{
3447		Name:       opGetDirectoryLimits,
3448		HTTPMethod: "POST",
3449		HTTPPath:   "/",
3450	}
3451
3452	if input == nil {
3453		input = &GetDirectoryLimitsInput{}
3454	}
3455
3456	output = &GetDirectoryLimitsOutput{}
3457	req = c.newRequest(op, input, output)
3458	return
3459}
3460
3461// GetDirectoryLimits API operation for AWS Directory Service.
3462//
3463// Obtains directory limit information for the current Region.
3464//
3465// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3466// with awserr.Error's Code and Message methods to get detailed information about
3467// the error.
3468//
3469// See the AWS API reference guide for AWS Directory Service's
3470// API operation GetDirectoryLimits for usage and error information.
3471//
3472// Returned Error Codes:
3473//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3474//   The specified entity could not be found.
3475//
3476//   * ErrCodeClientException "ClientException"
3477//   A client exception has occurred.
3478//
3479//   * ErrCodeServiceException "ServiceException"
3480//   An exception has occurred in AWS Directory Service.
3481//
3482// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
3483func (c *DirectoryService) GetDirectoryLimits(input *GetDirectoryLimitsInput) (*GetDirectoryLimitsOutput, error) {
3484	req, out := c.GetDirectoryLimitsRequest(input)
3485	return out, req.Send()
3486}
3487
3488// GetDirectoryLimitsWithContext is the same as GetDirectoryLimits with the addition of
3489// the ability to pass a context and additional request options.
3490//
3491// See GetDirectoryLimits for details on how to use this API operation.
3492//
3493// The context must be non-nil and will be used for request cancellation. If
3494// the context is nil a panic will occur. In the future the SDK may create
3495// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3496// for more information on using Contexts.
3497func (c *DirectoryService) GetDirectoryLimitsWithContext(ctx aws.Context, input *GetDirectoryLimitsInput, opts ...request.Option) (*GetDirectoryLimitsOutput, error) {
3498	req, out := c.GetDirectoryLimitsRequest(input)
3499	req.SetContext(ctx)
3500	req.ApplyOptions(opts...)
3501	return out, req.Send()
3502}
3503
3504const opGetSnapshotLimits = "GetSnapshotLimits"
3505
3506// GetSnapshotLimitsRequest generates a "aws/request.Request" representing the
3507// client's request for the GetSnapshotLimits operation. The "output" return
3508// value will be populated with the request's response once the request completes
3509// successfully.
3510//
3511// Use "Send" method on the returned Request to send the API call to the service.
3512// the "output" return value is not valid until after Send returns without error.
3513//
3514// See GetSnapshotLimits for more information on using the GetSnapshotLimits
3515// API call, and error handling.
3516//
3517// This method is useful when you want to inject custom logic or configuration
3518// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3519//
3520//
3521//    // Example sending a request using the GetSnapshotLimitsRequest method.
3522//    req, resp := client.GetSnapshotLimitsRequest(params)
3523//
3524//    err := req.Send()
3525//    if err == nil { // resp is now filled
3526//        fmt.Println(resp)
3527//    }
3528//
3529// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
3530func (c *DirectoryService) GetSnapshotLimitsRequest(input *GetSnapshotLimitsInput) (req *request.Request, output *GetSnapshotLimitsOutput) {
3531	op := &request.Operation{
3532		Name:       opGetSnapshotLimits,
3533		HTTPMethod: "POST",
3534		HTTPPath:   "/",
3535	}
3536
3537	if input == nil {
3538		input = &GetSnapshotLimitsInput{}
3539	}
3540
3541	output = &GetSnapshotLimitsOutput{}
3542	req = c.newRequest(op, input, output)
3543	return
3544}
3545
3546// GetSnapshotLimits API operation for AWS Directory Service.
3547//
3548// Obtains the manual snapshot limits for a directory.
3549//
3550// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3551// with awserr.Error's Code and Message methods to get detailed information about
3552// the error.
3553//
3554// See the AWS API reference guide for AWS Directory Service's
3555// API operation GetSnapshotLimits for usage and error information.
3556//
3557// Returned Error Codes:
3558//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3559//   The specified entity could not be found.
3560//
3561//   * ErrCodeClientException "ClientException"
3562//   A client exception has occurred.
3563//
3564//   * ErrCodeServiceException "ServiceException"
3565//   An exception has occurred in AWS Directory Service.
3566//
3567// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
3568func (c *DirectoryService) GetSnapshotLimits(input *GetSnapshotLimitsInput) (*GetSnapshotLimitsOutput, error) {
3569	req, out := c.GetSnapshotLimitsRequest(input)
3570	return out, req.Send()
3571}
3572
3573// GetSnapshotLimitsWithContext is the same as GetSnapshotLimits with the addition of
3574// the ability to pass a context and additional request options.
3575//
3576// See GetSnapshotLimits for details on how to use this API operation.
3577//
3578// The context must be non-nil and will be used for request cancellation. If
3579// the context is nil a panic will occur. In the future the SDK may create
3580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3581// for more information on using Contexts.
3582func (c *DirectoryService) GetSnapshotLimitsWithContext(ctx aws.Context, input *GetSnapshotLimitsInput, opts ...request.Option) (*GetSnapshotLimitsOutput, error) {
3583	req, out := c.GetSnapshotLimitsRequest(input)
3584	req.SetContext(ctx)
3585	req.ApplyOptions(opts...)
3586	return out, req.Send()
3587}
3588
3589const opListCertificates = "ListCertificates"
3590
3591// ListCertificatesRequest generates a "aws/request.Request" representing the
3592// client's request for the ListCertificates operation. The "output" return
3593// value will be populated with the request's response once the request completes
3594// successfully.
3595//
3596// Use "Send" method on the returned Request to send the API call to the service.
3597// the "output" return value is not valid until after Send returns without error.
3598//
3599// See ListCertificates for more information on using the ListCertificates
3600// API call, and error handling.
3601//
3602// This method is useful when you want to inject custom logic or configuration
3603// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3604//
3605//
3606//    // Example sending a request using the ListCertificatesRequest method.
3607//    req, resp := client.ListCertificatesRequest(params)
3608//
3609//    err := req.Send()
3610//    if err == nil { // resp is now filled
3611//        fmt.Println(resp)
3612//    }
3613//
3614// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListCertificates
3615func (c *DirectoryService) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
3616	op := &request.Operation{
3617		Name:       opListCertificates,
3618		HTTPMethod: "POST",
3619		HTTPPath:   "/",
3620	}
3621
3622	if input == nil {
3623		input = &ListCertificatesInput{}
3624	}
3625
3626	output = &ListCertificatesOutput{}
3627	req = c.newRequest(op, input, output)
3628	return
3629}
3630
3631// ListCertificates API operation for AWS Directory Service.
3632//
3633// For the specified directory, lists all the certificates registered for a
3634// secured LDAP connection.
3635//
3636// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3637// with awserr.Error's Code and Message methods to get detailed information about
3638// the error.
3639//
3640// See the AWS API reference guide for AWS Directory Service's
3641// API operation ListCertificates for usage and error information.
3642//
3643// Returned Error Codes:
3644//   * ErrCodeDirectoryDoesNotExistException "DirectoryDoesNotExistException"
3645//   The specified directory does not exist in the system.
3646//
3647//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
3648//   The operation is not supported.
3649//
3650//   * ErrCodeInvalidParameterException "InvalidParameterException"
3651//   One or more parameters are not valid.
3652//
3653//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3654//   The NextToken value is not valid.
3655//
3656//   * ErrCodeClientException "ClientException"
3657//   A client exception has occurred.
3658//
3659//   * ErrCodeServiceException "ServiceException"
3660//   An exception has occurred in AWS Directory Service.
3661//
3662// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListCertificates
3663func (c *DirectoryService) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
3664	req, out := c.ListCertificatesRequest(input)
3665	return out, req.Send()
3666}
3667
3668// ListCertificatesWithContext is the same as ListCertificates with the addition of
3669// the ability to pass a context and additional request options.
3670//
3671// See ListCertificates for details on how to use this API operation.
3672//
3673// The context must be non-nil and will be used for request cancellation. If
3674// the context is nil a panic will occur. In the future the SDK may create
3675// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3676// for more information on using Contexts.
3677func (c *DirectoryService) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
3678	req, out := c.ListCertificatesRequest(input)
3679	req.SetContext(ctx)
3680	req.ApplyOptions(opts...)
3681	return out, req.Send()
3682}
3683
3684const opListIpRoutes = "ListIpRoutes"
3685
3686// ListIpRoutesRequest generates a "aws/request.Request" representing the
3687// client's request for the ListIpRoutes operation. The "output" return
3688// value will be populated with the request's response once the request completes
3689// successfully.
3690//
3691// Use "Send" method on the returned Request to send the API call to the service.
3692// the "output" return value is not valid until after Send returns without error.
3693//
3694// See ListIpRoutes for more information on using the ListIpRoutes
3695// API call, and error handling.
3696//
3697// This method is useful when you want to inject custom logic or configuration
3698// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3699//
3700//
3701//    // Example sending a request using the ListIpRoutesRequest method.
3702//    req, resp := client.ListIpRoutesRequest(params)
3703//
3704//    err := req.Send()
3705//    if err == nil { // resp is now filled
3706//        fmt.Println(resp)
3707//    }
3708//
3709// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
3710func (c *DirectoryService) ListIpRoutesRequest(input *ListIpRoutesInput) (req *request.Request, output *ListIpRoutesOutput) {
3711	op := &request.Operation{
3712		Name:       opListIpRoutes,
3713		HTTPMethod: "POST",
3714		HTTPPath:   "/",
3715	}
3716
3717	if input == nil {
3718		input = &ListIpRoutesInput{}
3719	}
3720
3721	output = &ListIpRoutesOutput{}
3722	req = c.newRequest(op, input, output)
3723	return
3724}
3725
3726// ListIpRoutes API operation for AWS Directory Service.
3727//
3728// Lists the address blocks that you have added to a directory.
3729//
3730// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3731// with awserr.Error's Code and Message methods to get detailed information about
3732// the error.
3733//
3734// See the AWS API reference guide for AWS Directory Service's
3735// API operation ListIpRoutes for usage and error information.
3736//
3737// Returned Error Codes:
3738//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3739//   The specified entity could not be found.
3740//
3741//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3742//   The NextToken value is not valid.
3743//
3744//   * ErrCodeInvalidParameterException "InvalidParameterException"
3745//   One or more parameters are not valid.
3746//
3747//   * ErrCodeClientException "ClientException"
3748//   A client exception has occurred.
3749//
3750//   * ErrCodeServiceException "ServiceException"
3751//   An exception has occurred in AWS Directory Service.
3752//
3753// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
3754func (c *DirectoryService) ListIpRoutes(input *ListIpRoutesInput) (*ListIpRoutesOutput, error) {
3755	req, out := c.ListIpRoutesRequest(input)
3756	return out, req.Send()
3757}
3758
3759// ListIpRoutesWithContext is the same as ListIpRoutes with the addition of
3760// the ability to pass a context and additional request options.
3761//
3762// See ListIpRoutes for details on how to use this API operation.
3763//
3764// The context must be non-nil and will be used for request cancellation. If
3765// the context is nil a panic will occur. In the future the SDK may create
3766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3767// for more information on using Contexts.
3768func (c *DirectoryService) ListIpRoutesWithContext(ctx aws.Context, input *ListIpRoutesInput, opts ...request.Option) (*ListIpRoutesOutput, error) {
3769	req, out := c.ListIpRoutesRequest(input)
3770	req.SetContext(ctx)
3771	req.ApplyOptions(opts...)
3772	return out, req.Send()
3773}
3774
3775const opListLogSubscriptions = "ListLogSubscriptions"
3776
3777// ListLogSubscriptionsRequest generates a "aws/request.Request" representing the
3778// client's request for the ListLogSubscriptions operation. The "output" return
3779// value will be populated with the request's response once the request completes
3780// successfully.
3781//
3782// Use "Send" method on the returned Request to send the API call to the service.
3783// the "output" return value is not valid until after Send returns without error.
3784//
3785// See ListLogSubscriptions for more information on using the ListLogSubscriptions
3786// API call, and error handling.
3787//
3788// This method is useful when you want to inject custom logic or configuration
3789// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3790//
3791//
3792//    // Example sending a request using the ListLogSubscriptionsRequest method.
3793//    req, resp := client.ListLogSubscriptionsRequest(params)
3794//
3795//    err := req.Send()
3796//    if err == nil { // resp is now filled
3797//        fmt.Println(resp)
3798//    }
3799//
3800// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
3801func (c *DirectoryService) ListLogSubscriptionsRequest(input *ListLogSubscriptionsInput) (req *request.Request, output *ListLogSubscriptionsOutput) {
3802	op := &request.Operation{
3803		Name:       opListLogSubscriptions,
3804		HTTPMethod: "POST",
3805		HTTPPath:   "/",
3806	}
3807
3808	if input == nil {
3809		input = &ListLogSubscriptionsInput{}
3810	}
3811
3812	output = &ListLogSubscriptionsOutput{}
3813	req = c.newRequest(op, input, output)
3814	return
3815}
3816
3817// ListLogSubscriptions API operation for AWS Directory Service.
3818//
3819// Lists the active log subscriptions for the AWS account.
3820//
3821// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3822// with awserr.Error's Code and Message methods to get detailed information about
3823// the error.
3824//
3825// See the AWS API reference guide for AWS Directory Service's
3826// API operation ListLogSubscriptions for usage and error information.
3827//
3828// Returned Error Codes:
3829//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3830//   The specified entity could not be found.
3831//
3832//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3833//   The NextToken value is not valid.
3834//
3835//   * ErrCodeClientException "ClientException"
3836//   A client exception has occurred.
3837//
3838//   * ErrCodeServiceException "ServiceException"
3839//   An exception has occurred in AWS Directory Service.
3840//
3841// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
3842func (c *DirectoryService) ListLogSubscriptions(input *ListLogSubscriptionsInput) (*ListLogSubscriptionsOutput, error) {
3843	req, out := c.ListLogSubscriptionsRequest(input)
3844	return out, req.Send()
3845}
3846
3847// ListLogSubscriptionsWithContext is the same as ListLogSubscriptions with the addition of
3848// the ability to pass a context and additional request options.
3849//
3850// See ListLogSubscriptions for details on how to use this API operation.
3851//
3852// The context must be non-nil and will be used for request cancellation. If
3853// the context is nil a panic will occur. In the future the SDK may create
3854// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3855// for more information on using Contexts.
3856func (c *DirectoryService) ListLogSubscriptionsWithContext(ctx aws.Context, input *ListLogSubscriptionsInput, opts ...request.Option) (*ListLogSubscriptionsOutput, error) {
3857	req, out := c.ListLogSubscriptionsRequest(input)
3858	req.SetContext(ctx)
3859	req.ApplyOptions(opts...)
3860	return out, req.Send()
3861}
3862
3863const opListSchemaExtensions = "ListSchemaExtensions"
3864
3865// ListSchemaExtensionsRequest generates a "aws/request.Request" representing the
3866// client's request for the ListSchemaExtensions operation. The "output" return
3867// value will be populated with the request's response once the request completes
3868// successfully.
3869//
3870// Use "Send" method on the returned Request to send the API call to the service.
3871// the "output" return value is not valid until after Send returns without error.
3872//
3873// See ListSchemaExtensions for more information on using the ListSchemaExtensions
3874// API call, and error handling.
3875//
3876// This method is useful when you want to inject custom logic or configuration
3877// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3878//
3879//
3880//    // Example sending a request using the ListSchemaExtensionsRequest method.
3881//    req, resp := client.ListSchemaExtensionsRequest(params)
3882//
3883//    err := req.Send()
3884//    if err == nil { // resp is now filled
3885//        fmt.Println(resp)
3886//    }
3887//
3888// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
3889func (c *DirectoryService) ListSchemaExtensionsRequest(input *ListSchemaExtensionsInput) (req *request.Request, output *ListSchemaExtensionsOutput) {
3890	op := &request.Operation{
3891		Name:       opListSchemaExtensions,
3892		HTTPMethod: "POST",
3893		HTTPPath:   "/",
3894	}
3895
3896	if input == nil {
3897		input = &ListSchemaExtensionsInput{}
3898	}
3899
3900	output = &ListSchemaExtensionsOutput{}
3901	req = c.newRequest(op, input, output)
3902	return
3903}
3904
3905// ListSchemaExtensions API operation for AWS Directory Service.
3906//
3907// Lists all schema extensions applied to a Microsoft AD Directory.
3908//
3909// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3910// with awserr.Error's Code and Message methods to get detailed information about
3911// the error.
3912//
3913// See the AWS API reference guide for AWS Directory Service's
3914// API operation ListSchemaExtensions for usage and error information.
3915//
3916// Returned Error Codes:
3917//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3918//   The NextToken value is not valid.
3919//
3920//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3921//   The specified entity could not be found.
3922//
3923//   * ErrCodeClientException "ClientException"
3924//   A client exception has occurred.
3925//
3926//   * ErrCodeServiceException "ServiceException"
3927//   An exception has occurred in AWS Directory Service.
3928//
3929// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
3930func (c *DirectoryService) ListSchemaExtensions(input *ListSchemaExtensionsInput) (*ListSchemaExtensionsOutput, error) {
3931	req, out := c.ListSchemaExtensionsRequest(input)
3932	return out, req.Send()
3933}
3934
3935// ListSchemaExtensionsWithContext is the same as ListSchemaExtensions with the addition of
3936// the ability to pass a context and additional request options.
3937//
3938// See ListSchemaExtensions for details on how to use this API operation.
3939//
3940// The context must be non-nil and will be used for request cancellation. If
3941// the context is nil a panic will occur. In the future the SDK may create
3942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3943// for more information on using Contexts.
3944func (c *DirectoryService) ListSchemaExtensionsWithContext(ctx aws.Context, input *ListSchemaExtensionsInput, opts ...request.Option) (*ListSchemaExtensionsOutput, error) {
3945	req, out := c.ListSchemaExtensionsRequest(input)
3946	req.SetContext(ctx)
3947	req.ApplyOptions(opts...)
3948	return out, req.Send()
3949}
3950
3951const opListTagsForResource = "ListTagsForResource"
3952
3953// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3954// client's request for the ListTagsForResource operation. The "output" return
3955// value will be populated with the request's response once the request completes
3956// successfully.
3957//
3958// Use "Send" method on the returned Request to send the API call to the service.
3959// the "output" return value is not valid until after Send returns without error.
3960//
3961// See ListTagsForResource for more information on using the ListTagsForResource
3962// API call, and error handling.
3963//
3964// This method is useful when you want to inject custom logic or configuration
3965// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3966//
3967//
3968//    // Example sending a request using the ListTagsForResourceRequest method.
3969//    req, resp := client.ListTagsForResourceRequest(params)
3970//
3971//    err := req.Send()
3972//    if err == nil { // resp is now filled
3973//        fmt.Println(resp)
3974//    }
3975//
3976// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
3977func (c *DirectoryService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3978	op := &request.Operation{
3979		Name:       opListTagsForResource,
3980		HTTPMethod: "POST",
3981		HTTPPath:   "/",
3982	}
3983
3984	if input == nil {
3985		input = &ListTagsForResourceInput{}
3986	}
3987
3988	output = &ListTagsForResourceOutput{}
3989	req = c.newRequest(op, input, output)
3990	return
3991}
3992
3993// ListTagsForResource API operation for AWS Directory Service.
3994//
3995// Lists all tags on a directory.
3996//
3997// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3998// with awserr.Error's Code and Message methods to get detailed information about
3999// the error.
4000//
4001// See the AWS API reference guide for AWS Directory Service's
4002// API operation ListTagsForResource for usage and error information.
4003//
4004// Returned Error Codes:
4005//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4006//   The specified entity could not be found.
4007//
4008//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
4009//   The NextToken value is not valid.
4010//
4011//   * ErrCodeInvalidParameterException "InvalidParameterException"
4012//   One or more parameters are not valid.
4013//
4014//   * ErrCodeClientException "ClientException"
4015//   A client exception has occurred.
4016//
4017//   * ErrCodeServiceException "ServiceException"
4018//   An exception has occurred in AWS Directory Service.
4019//
4020// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
4021func (c *DirectoryService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4022	req, out := c.ListTagsForResourceRequest(input)
4023	return out, req.Send()
4024}
4025
4026// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4027// the ability to pass a context and additional request options.
4028//
4029// See ListTagsForResource for details on how to use this API operation.
4030//
4031// The context must be non-nil and will be used for request cancellation. If
4032// the context is nil a panic will occur. In the future the SDK may create
4033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4034// for more information on using Contexts.
4035func (c *DirectoryService) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4036	req, out := c.ListTagsForResourceRequest(input)
4037	req.SetContext(ctx)
4038	req.ApplyOptions(opts...)
4039	return out, req.Send()
4040}
4041
4042const opRegisterCertificate = "RegisterCertificate"
4043
4044// RegisterCertificateRequest generates a "aws/request.Request" representing the
4045// client's request for the RegisterCertificate operation. The "output" return
4046// value will be populated with the request's response once the request completes
4047// successfully.
4048//
4049// Use "Send" method on the returned Request to send the API call to the service.
4050// the "output" return value is not valid until after Send returns without error.
4051//
4052// See RegisterCertificate for more information on using the RegisterCertificate
4053// API call, and error handling.
4054//
4055// This method is useful when you want to inject custom logic or configuration
4056// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4057//
4058//
4059//    // Example sending a request using the RegisterCertificateRequest method.
4060//    req, resp := client.RegisterCertificateRequest(params)
4061//
4062//    err := req.Send()
4063//    if err == nil { // resp is now filled
4064//        fmt.Println(resp)
4065//    }
4066//
4067// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterCertificate
4068func (c *DirectoryService) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
4069	op := &request.Operation{
4070		Name:       opRegisterCertificate,
4071		HTTPMethod: "POST",
4072		HTTPPath:   "/",
4073	}
4074
4075	if input == nil {
4076		input = &RegisterCertificateInput{}
4077	}
4078
4079	output = &RegisterCertificateOutput{}
4080	req = c.newRequest(op, input, output)
4081	return
4082}
4083
4084// RegisterCertificate API operation for AWS Directory Service.
4085//
4086// Registers a certificate for secured LDAP connection.
4087//
4088// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4089// with awserr.Error's Code and Message methods to get detailed information about
4090// the error.
4091//
4092// See the AWS API reference guide for AWS Directory Service's
4093// API operation RegisterCertificate for usage and error information.
4094//
4095// Returned Error Codes:
4096//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
4097//   The specified directory is unavailable or could not be found.
4098//
4099//   * ErrCodeDirectoryDoesNotExistException "DirectoryDoesNotExistException"
4100//   The specified directory does not exist in the system.
4101//
4102//   * ErrCodeInvalidCertificateException "InvalidCertificateException"
4103//   The certificate PEM that was provided has incorrect encoding.
4104//
4105//   * ErrCodeCertificateLimitExceededException "CertificateLimitExceededException"
4106//   The certificate could not be added because the certificate limit has been
4107//   reached.
4108//
4109//   * ErrCodeCertificateAlreadyExistsException "CertificateAlreadyExistsException"
4110//   The certificate has already been registered into the system.
4111//
4112//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
4113//   The operation is not supported.
4114//
4115//   * ErrCodeInvalidParameterException "InvalidParameterException"
4116//   One or more parameters are not valid.
4117//
4118//   * ErrCodeClientException "ClientException"
4119//   A client exception has occurred.
4120//
4121//   * ErrCodeServiceException "ServiceException"
4122//   An exception has occurred in AWS Directory Service.
4123//
4124// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterCertificate
4125func (c *DirectoryService) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
4126	req, out := c.RegisterCertificateRequest(input)
4127	return out, req.Send()
4128}
4129
4130// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
4131// the ability to pass a context and additional request options.
4132//
4133// See RegisterCertificate for details on how to use this API operation.
4134//
4135// The context must be non-nil and will be used for request cancellation. If
4136// the context is nil a panic will occur. In the future the SDK may create
4137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4138// for more information on using Contexts.
4139func (c *DirectoryService) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
4140	req, out := c.RegisterCertificateRequest(input)
4141	req.SetContext(ctx)
4142	req.ApplyOptions(opts...)
4143	return out, req.Send()
4144}
4145
4146const opRegisterEventTopic = "RegisterEventTopic"
4147
4148// RegisterEventTopicRequest generates a "aws/request.Request" representing the
4149// client's request for the RegisterEventTopic operation. The "output" return
4150// value will be populated with the request's response once the request completes
4151// successfully.
4152//
4153// Use "Send" method on the returned Request to send the API call to the service.
4154// the "output" return value is not valid until after Send returns without error.
4155//
4156// See RegisterEventTopic for more information on using the RegisterEventTopic
4157// API call, and error handling.
4158//
4159// This method is useful when you want to inject custom logic or configuration
4160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4161//
4162//
4163//    // Example sending a request using the RegisterEventTopicRequest method.
4164//    req, resp := client.RegisterEventTopicRequest(params)
4165//
4166//    err := req.Send()
4167//    if err == nil { // resp is now filled
4168//        fmt.Println(resp)
4169//    }
4170//
4171// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
4172func (c *DirectoryService) RegisterEventTopicRequest(input *RegisterEventTopicInput) (req *request.Request, output *RegisterEventTopicOutput) {
4173	op := &request.Operation{
4174		Name:       opRegisterEventTopic,
4175		HTTPMethod: "POST",
4176		HTTPPath:   "/",
4177	}
4178
4179	if input == nil {
4180		input = &RegisterEventTopicInput{}
4181	}
4182
4183	output = &RegisterEventTopicOutput{}
4184	req = c.newRequest(op, input, output)
4185	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4186	return
4187}
4188
4189// RegisterEventTopic API operation for AWS Directory Service.
4190//
4191// Associates a directory with an SNS topic. This establishes the directory
4192// as a publisher to the specified SNS topic. You can then receive email or
4193// text (SMS) messages when the status of your directory changes. You get notified
4194// if your directory goes from an Active status to an Impaired or Inoperable
4195// status. You also receive a notification when the directory returns to an
4196// Active status.
4197//
4198// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4199// with awserr.Error's Code and Message methods to get detailed information about
4200// the error.
4201//
4202// See the AWS API reference guide for AWS Directory Service's
4203// API operation RegisterEventTopic for usage and error information.
4204//
4205// Returned Error Codes:
4206//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4207//   The specified entity could not be found.
4208//
4209//   * ErrCodeInvalidParameterException "InvalidParameterException"
4210//   One or more parameters are not valid.
4211//
4212//   * ErrCodeClientException "ClientException"
4213//   A client exception has occurred.
4214//
4215//   * ErrCodeServiceException "ServiceException"
4216//   An exception has occurred in AWS Directory Service.
4217//
4218// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
4219func (c *DirectoryService) RegisterEventTopic(input *RegisterEventTopicInput) (*RegisterEventTopicOutput, error) {
4220	req, out := c.RegisterEventTopicRequest(input)
4221	return out, req.Send()
4222}
4223
4224// RegisterEventTopicWithContext is the same as RegisterEventTopic with the addition of
4225// the ability to pass a context and additional request options.
4226//
4227// See RegisterEventTopic for details on how to use this API operation.
4228//
4229// The context must be non-nil and will be used for request cancellation. If
4230// the context is nil a panic will occur. In the future the SDK may create
4231// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4232// for more information on using Contexts.
4233func (c *DirectoryService) RegisterEventTopicWithContext(ctx aws.Context, input *RegisterEventTopicInput, opts ...request.Option) (*RegisterEventTopicOutput, error) {
4234	req, out := c.RegisterEventTopicRequest(input)
4235	req.SetContext(ctx)
4236	req.ApplyOptions(opts...)
4237	return out, req.Send()
4238}
4239
4240const opRejectSharedDirectory = "RejectSharedDirectory"
4241
4242// RejectSharedDirectoryRequest generates a "aws/request.Request" representing the
4243// client's request for the RejectSharedDirectory operation. The "output" return
4244// value will be populated with the request's response once the request completes
4245// successfully.
4246//
4247// Use "Send" method on the returned Request to send the API call to the service.
4248// the "output" return value is not valid until after Send returns without error.
4249//
4250// See RejectSharedDirectory for more information on using the RejectSharedDirectory
4251// API call, and error handling.
4252//
4253// This method is useful when you want to inject custom logic or configuration
4254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4255//
4256//
4257//    // Example sending a request using the RejectSharedDirectoryRequest method.
4258//    req, resp := client.RejectSharedDirectoryRequest(params)
4259//
4260//    err := req.Send()
4261//    if err == nil { // resp is now filled
4262//        fmt.Println(resp)
4263//    }
4264//
4265// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
4266func (c *DirectoryService) RejectSharedDirectoryRequest(input *RejectSharedDirectoryInput) (req *request.Request, output *RejectSharedDirectoryOutput) {
4267	op := &request.Operation{
4268		Name:       opRejectSharedDirectory,
4269		HTTPMethod: "POST",
4270		HTTPPath:   "/",
4271	}
4272
4273	if input == nil {
4274		input = &RejectSharedDirectoryInput{}
4275	}
4276
4277	output = &RejectSharedDirectoryOutput{}
4278	req = c.newRequest(op, input, output)
4279	return
4280}
4281
4282// RejectSharedDirectory API operation for AWS Directory Service.
4283//
4284// Rejects a directory sharing request that was sent from the directory owner
4285// account.
4286//
4287// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4288// with awserr.Error's Code and Message methods to get detailed information about
4289// the error.
4290//
4291// See the AWS API reference guide for AWS Directory Service's
4292// API operation RejectSharedDirectory for usage and error information.
4293//
4294// Returned Error Codes:
4295//   * ErrCodeInvalidParameterException "InvalidParameterException"
4296//   One or more parameters are not valid.
4297//
4298//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4299//   The specified entity could not be found.
4300//
4301//   * ErrCodeDirectoryAlreadySharedException "DirectoryAlreadySharedException"
4302//   The specified directory has already been shared with this AWS account.
4303//
4304//   * ErrCodeClientException "ClientException"
4305//   A client exception has occurred.
4306//
4307//   * ErrCodeServiceException "ServiceException"
4308//   An exception has occurred in AWS Directory Service.
4309//
4310// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
4311func (c *DirectoryService) RejectSharedDirectory(input *RejectSharedDirectoryInput) (*RejectSharedDirectoryOutput, error) {
4312	req, out := c.RejectSharedDirectoryRequest(input)
4313	return out, req.Send()
4314}
4315
4316// RejectSharedDirectoryWithContext is the same as RejectSharedDirectory with the addition of
4317// the ability to pass a context and additional request options.
4318//
4319// See RejectSharedDirectory for details on how to use this API operation.
4320//
4321// The context must be non-nil and will be used for request cancellation. If
4322// the context is nil a panic will occur. In the future the SDK may create
4323// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4324// for more information on using Contexts.
4325func (c *DirectoryService) RejectSharedDirectoryWithContext(ctx aws.Context, input *RejectSharedDirectoryInput, opts ...request.Option) (*RejectSharedDirectoryOutput, error) {
4326	req, out := c.RejectSharedDirectoryRequest(input)
4327	req.SetContext(ctx)
4328	req.ApplyOptions(opts...)
4329	return out, req.Send()
4330}
4331
4332const opRemoveIpRoutes = "RemoveIpRoutes"
4333
4334// RemoveIpRoutesRequest generates a "aws/request.Request" representing the
4335// client's request for the RemoveIpRoutes operation. The "output" return
4336// value will be populated with the request's response once the request completes
4337// successfully.
4338//
4339// Use "Send" method on the returned Request to send the API call to the service.
4340// the "output" return value is not valid until after Send returns without error.
4341//
4342// See RemoveIpRoutes for more information on using the RemoveIpRoutes
4343// API call, and error handling.
4344//
4345// This method is useful when you want to inject custom logic or configuration
4346// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4347//
4348//
4349//    // Example sending a request using the RemoveIpRoutesRequest method.
4350//    req, resp := client.RemoveIpRoutesRequest(params)
4351//
4352//    err := req.Send()
4353//    if err == nil { // resp is now filled
4354//        fmt.Println(resp)
4355//    }
4356//
4357// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
4358func (c *DirectoryService) RemoveIpRoutesRequest(input *RemoveIpRoutesInput) (req *request.Request, output *RemoveIpRoutesOutput) {
4359	op := &request.Operation{
4360		Name:       opRemoveIpRoutes,
4361		HTTPMethod: "POST",
4362		HTTPPath:   "/",
4363	}
4364
4365	if input == nil {
4366		input = &RemoveIpRoutesInput{}
4367	}
4368
4369	output = &RemoveIpRoutesOutput{}
4370	req = c.newRequest(op, input, output)
4371	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4372	return
4373}
4374
4375// RemoveIpRoutes API operation for AWS Directory Service.
4376//
4377// Removes IP address blocks from a directory.
4378//
4379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4380// with awserr.Error's Code and Message methods to get detailed information about
4381// the error.
4382//
4383// See the AWS API reference guide for AWS Directory Service's
4384// API operation RemoveIpRoutes for usage and error information.
4385//
4386// Returned Error Codes:
4387//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4388//   The specified entity could not be found.
4389//
4390//   * ErrCodeInvalidParameterException "InvalidParameterException"
4391//   One or more parameters are not valid.
4392//
4393//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
4394//   The specified directory is unavailable or could not be found.
4395//
4396//   * ErrCodeClientException "ClientException"
4397//   A client exception has occurred.
4398//
4399//   * ErrCodeServiceException "ServiceException"
4400//   An exception has occurred in AWS Directory Service.
4401//
4402// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
4403func (c *DirectoryService) RemoveIpRoutes(input *RemoveIpRoutesInput) (*RemoveIpRoutesOutput, error) {
4404	req, out := c.RemoveIpRoutesRequest(input)
4405	return out, req.Send()
4406}
4407
4408// RemoveIpRoutesWithContext is the same as RemoveIpRoutes with the addition of
4409// the ability to pass a context and additional request options.
4410//
4411// See RemoveIpRoutes for details on how to use this API operation.
4412//
4413// The context must be non-nil and will be used for request cancellation. If
4414// the context is nil a panic will occur. In the future the SDK may create
4415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4416// for more information on using Contexts.
4417func (c *DirectoryService) RemoveIpRoutesWithContext(ctx aws.Context, input *RemoveIpRoutesInput, opts ...request.Option) (*RemoveIpRoutesOutput, error) {
4418	req, out := c.RemoveIpRoutesRequest(input)
4419	req.SetContext(ctx)
4420	req.ApplyOptions(opts...)
4421	return out, req.Send()
4422}
4423
4424const opRemoveTagsFromResource = "RemoveTagsFromResource"
4425
4426// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
4427// client's request for the RemoveTagsFromResource operation. The "output" return
4428// value will be populated with the request's response once the request completes
4429// successfully.
4430//
4431// Use "Send" method on the returned Request to send the API call to the service.
4432// the "output" return value is not valid until after Send returns without error.
4433//
4434// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
4435// API call, and error handling.
4436//
4437// This method is useful when you want to inject custom logic or configuration
4438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4439//
4440//
4441//    // Example sending a request using the RemoveTagsFromResourceRequest method.
4442//    req, resp := client.RemoveTagsFromResourceRequest(params)
4443//
4444//    err := req.Send()
4445//    if err == nil { // resp is now filled
4446//        fmt.Println(resp)
4447//    }
4448//
4449// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
4450func (c *DirectoryService) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
4451	op := &request.Operation{
4452		Name:       opRemoveTagsFromResource,
4453		HTTPMethod: "POST",
4454		HTTPPath:   "/",
4455	}
4456
4457	if input == nil {
4458		input = &RemoveTagsFromResourceInput{}
4459	}
4460
4461	output = &RemoveTagsFromResourceOutput{}
4462	req = c.newRequest(op, input, output)
4463	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4464	return
4465}
4466
4467// RemoveTagsFromResource API operation for AWS Directory Service.
4468//
4469// Removes tags from a directory.
4470//
4471// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4472// with awserr.Error's Code and Message methods to get detailed information about
4473// the error.
4474//
4475// See the AWS API reference guide for AWS Directory Service's
4476// API operation RemoveTagsFromResource for usage and error information.
4477//
4478// Returned Error Codes:
4479//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4480//   The specified entity could not be found.
4481//
4482//   * ErrCodeInvalidParameterException "InvalidParameterException"
4483//   One or more parameters are not valid.
4484//
4485//   * ErrCodeClientException "ClientException"
4486//   A client exception has occurred.
4487//
4488//   * ErrCodeServiceException "ServiceException"
4489//   An exception has occurred in AWS Directory Service.
4490//
4491// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
4492func (c *DirectoryService) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
4493	req, out := c.RemoveTagsFromResourceRequest(input)
4494	return out, req.Send()
4495}
4496
4497// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
4498// the ability to pass a context and additional request options.
4499//
4500// See RemoveTagsFromResource for details on how to use this API operation.
4501//
4502// The context must be non-nil and will be used for request cancellation. If
4503// the context is nil a panic will occur. In the future the SDK may create
4504// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4505// for more information on using Contexts.
4506func (c *DirectoryService) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
4507	req, out := c.RemoveTagsFromResourceRequest(input)
4508	req.SetContext(ctx)
4509	req.ApplyOptions(opts...)
4510	return out, req.Send()
4511}
4512
4513const opResetUserPassword = "ResetUserPassword"
4514
4515// ResetUserPasswordRequest generates a "aws/request.Request" representing the
4516// client's request for the ResetUserPassword operation. The "output" return
4517// value will be populated with the request's response once the request completes
4518// successfully.
4519//
4520// Use "Send" method on the returned Request to send the API call to the service.
4521// the "output" return value is not valid until after Send returns without error.
4522//
4523// See ResetUserPassword for more information on using the ResetUserPassword
4524// API call, and error handling.
4525//
4526// This method is useful when you want to inject custom logic or configuration
4527// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4528//
4529//
4530//    // Example sending a request using the ResetUserPasswordRequest method.
4531//    req, resp := client.ResetUserPasswordRequest(params)
4532//
4533//    err := req.Send()
4534//    if err == nil { // resp is now filled
4535//        fmt.Println(resp)
4536//    }
4537//
4538// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ResetUserPassword
4539func (c *DirectoryService) ResetUserPasswordRequest(input *ResetUserPasswordInput) (req *request.Request, output *ResetUserPasswordOutput) {
4540	op := &request.Operation{
4541		Name:       opResetUserPassword,
4542		HTTPMethod: "POST",
4543		HTTPPath:   "/",
4544	}
4545
4546	if input == nil {
4547		input = &ResetUserPasswordInput{}
4548	}
4549
4550	output = &ResetUserPasswordOutput{}
4551	req = c.newRequest(op, input, output)
4552	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4553	return
4554}
4555
4556// ResetUserPassword API operation for AWS Directory Service.
4557//
4558// Resets the password for any user in your AWS Managed Microsoft AD or Simple
4559// AD directory.
4560//
4561// You can reset the password for any user in your directory with the following
4562// exceptions:
4563//
4564//    * For Simple AD, you cannot reset the password for any user that is a
4565//    member of either the Domain Admins or Enterprise Admins group except for
4566//    the administrator user.
4567//
4568//    * For AWS Managed Microsoft AD, you can only reset the password for a
4569//    user that is in an OU based off of the NetBIOS name that you typed when
4570//    you created your directory. For example, you cannot reset the password
4571//    for a user in the AWS Reserved OU. For more information about the OU structure
4572//    for an AWS Managed Microsoft AD directory, see What Gets Created (https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started_what_gets_created.html)
4573//    in the AWS Directory Service Administration Guide.
4574//
4575// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4576// with awserr.Error's Code and Message methods to get detailed information about
4577// the error.
4578//
4579// See the AWS API reference guide for AWS Directory Service's
4580// API operation ResetUserPassword for usage and error information.
4581//
4582// Returned Error Codes:
4583//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
4584//   The specified directory is unavailable or could not be found.
4585//
4586//   * ErrCodeUserDoesNotExistException "UserDoesNotExistException"
4587//   The user provided a username that does not exist in your directory.
4588//
4589//   * ErrCodeInvalidPasswordException "InvalidPasswordException"
4590//   The new password provided by the user does not meet the password complexity
4591//   requirements defined in your directory.
4592//
4593//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
4594//   The operation is not supported.
4595//
4596//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4597//   The specified entity could not be found.
4598//
4599//   * ErrCodeClientException "ClientException"
4600//   A client exception has occurred.
4601//
4602//   * ErrCodeServiceException "ServiceException"
4603//   An exception has occurred in AWS Directory Service.
4604//
4605// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ResetUserPassword
4606func (c *DirectoryService) ResetUserPassword(input *ResetUserPasswordInput) (*ResetUserPasswordOutput, error) {
4607	req, out := c.ResetUserPasswordRequest(input)
4608	return out, req.Send()
4609}
4610
4611// ResetUserPasswordWithContext is the same as ResetUserPassword with the addition of
4612// the ability to pass a context and additional request options.
4613//
4614// See ResetUserPassword for details on how to use this API operation.
4615//
4616// The context must be non-nil and will be used for request cancellation. If
4617// the context is nil a panic will occur. In the future the SDK may create
4618// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4619// for more information on using Contexts.
4620func (c *DirectoryService) ResetUserPasswordWithContext(ctx aws.Context, input *ResetUserPasswordInput, opts ...request.Option) (*ResetUserPasswordOutput, error) {
4621	req, out := c.ResetUserPasswordRequest(input)
4622	req.SetContext(ctx)
4623	req.ApplyOptions(opts...)
4624	return out, req.Send()
4625}
4626
4627const opRestoreFromSnapshot = "RestoreFromSnapshot"
4628
4629// RestoreFromSnapshotRequest generates a "aws/request.Request" representing the
4630// client's request for the RestoreFromSnapshot operation. The "output" return
4631// value will be populated with the request's response once the request completes
4632// successfully.
4633//
4634// Use "Send" method on the returned Request to send the API call to the service.
4635// the "output" return value is not valid until after Send returns without error.
4636//
4637// See RestoreFromSnapshot for more information on using the RestoreFromSnapshot
4638// API call, and error handling.
4639//
4640// This method is useful when you want to inject custom logic or configuration
4641// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4642//
4643//
4644//    // Example sending a request using the RestoreFromSnapshotRequest method.
4645//    req, resp := client.RestoreFromSnapshotRequest(params)
4646//
4647//    err := req.Send()
4648//    if err == nil { // resp is now filled
4649//        fmt.Println(resp)
4650//    }
4651//
4652// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
4653func (c *DirectoryService) RestoreFromSnapshotRequest(input *RestoreFromSnapshotInput) (req *request.Request, output *RestoreFromSnapshotOutput) {
4654	op := &request.Operation{
4655		Name:       opRestoreFromSnapshot,
4656		HTTPMethod: "POST",
4657		HTTPPath:   "/",
4658	}
4659
4660	if input == nil {
4661		input = &RestoreFromSnapshotInput{}
4662	}
4663
4664	output = &RestoreFromSnapshotOutput{}
4665	req = c.newRequest(op, input, output)
4666	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4667	return
4668}
4669
4670// RestoreFromSnapshot API operation for AWS Directory Service.
4671//
4672// Restores a directory using an existing directory snapshot.
4673//
4674// When you restore a directory from a snapshot, any changes made to the directory
4675// after the snapshot date are overwritten.
4676//
4677// This action returns as soon as the restore operation is initiated. You can
4678// monitor the progress of the restore operation by calling the DescribeDirectories
4679// operation with the directory identifier. When the DirectoryDescription.Stage
4680// value changes to Active, the restore operation is complete.
4681//
4682// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4683// with awserr.Error's Code and Message methods to get detailed information about
4684// the error.
4685//
4686// See the AWS API reference guide for AWS Directory Service's
4687// API operation RestoreFromSnapshot for usage and error information.
4688//
4689// Returned Error Codes:
4690//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4691//   The specified entity could not be found.
4692//
4693//   * ErrCodeInvalidParameterException "InvalidParameterException"
4694//   One or more parameters are not valid.
4695//
4696//   * ErrCodeClientException "ClientException"
4697//   A client exception has occurred.
4698//
4699//   * ErrCodeServiceException "ServiceException"
4700//   An exception has occurred in AWS Directory Service.
4701//
4702// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
4703func (c *DirectoryService) RestoreFromSnapshot(input *RestoreFromSnapshotInput) (*RestoreFromSnapshotOutput, error) {
4704	req, out := c.RestoreFromSnapshotRequest(input)
4705	return out, req.Send()
4706}
4707
4708// RestoreFromSnapshotWithContext is the same as RestoreFromSnapshot with the addition of
4709// the ability to pass a context and additional request options.
4710//
4711// See RestoreFromSnapshot for details on how to use this API operation.
4712//
4713// The context must be non-nil and will be used for request cancellation. If
4714// the context is nil a panic will occur. In the future the SDK may create
4715// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4716// for more information on using Contexts.
4717func (c *DirectoryService) RestoreFromSnapshotWithContext(ctx aws.Context, input *RestoreFromSnapshotInput, opts ...request.Option) (*RestoreFromSnapshotOutput, error) {
4718	req, out := c.RestoreFromSnapshotRequest(input)
4719	req.SetContext(ctx)
4720	req.ApplyOptions(opts...)
4721	return out, req.Send()
4722}
4723
4724const opShareDirectory = "ShareDirectory"
4725
4726// ShareDirectoryRequest generates a "aws/request.Request" representing the
4727// client's request for the ShareDirectory operation. The "output" return
4728// value will be populated with the request's response once the request completes
4729// successfully.
4730//
4731// Use "Send" method on the returned Request to send the API call to the service.
4732// the "output" return value is not valid until after Send returns without error.
4733//
4734// See ShareDirectory for more information on using the ShareDirectory
4735// API call, and error handling.
4736//
4737// This method is useful when you want to inject custom logic or configuration
4738// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4739//
4740//
4741//    // Example sending a request using the ShareDirectoryRequest method.
4742//    req, resp := client.ShareDirectoryRequest(params)
4743//
4744//    err := req.Send()
4745//    if err == nil { // resp is now filled
4746//        fmt.Println(resp)
4747//    }
4748//
4749// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
4750func (c *DirectoryService) ShareDirectoryRequest(input *ShareDirectoryInput) (req *request.Request, output *ShareDirectoryOutput) {
4751	op := &request.Operation{
4752		Name:       opShareDirectory,
4753		HTTPMethod: "POST",
4754		HTTPPath:   "/",
4755	}
4756
4757	if input == nil {
4758		input = &ShareDirectoryInput{}
4759	}
4760
4761	output = &ShareDirectoryOutput{}
4762	req = c.newRequest(op, input, output)
4763	return
4764}
4765
4766// ShareDirectory API operation for AWS Directory Service.
4767//
4768// Shares a specified directory (DirectoryId) in your AWS account (directory
4769// owner) with another AWS account (directory consumer). With this operation
4770// you can use your directory from any AWS account and from any Amazon VPC within
4771// an AWS Region.
4772//
4773// When you share your AWS Managed Microsoft AD directory, AWS Directory Service
4774// creates a shared directory in the directory consumer account. This shared
4775// directory contains the metadata to provide access to the directory within
4776// the directory owner account. The shared directory is visible in all VPCs
4777// in the directory consumer account.
4778//
4779// The ShareMethod parameter determines whether the specified directory can
4780// be shared between AWS accounts inside the same AWS organization (ORGANIZATIONS).
4781// It also determines whether you can share the directory with any other AWS
4782// account either inside or outside of the organization (HANDSHAKE).
4783//
4784// The ShareNotes parameter is only used when HANDSHAKE is called, which sends
4785// a directory sharing request to the directory consumer.
4786//
4787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4788// with awserr.Error's Code and Message methods to get detailed information about
4789// the error.
4790//
4791// See the AWS API reference guide for AWS Directory Service's
4792// API operation ShareDirectory for usage and error information.
4793//
4794// Returned Error Codes:
4795//   * ErrCodeDirectoryAlreadySharedException "DirectoryAlreadySharedException"
4796//   The specified directory has already been shared with this AWS account.
4797//
4798//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4799//   The specified entity could not be found.
4800//
4801//   * ErrCodeInvalidTargetException "InvalidTargetException"
4802//   The specified shared target is not valid.
4803//
4804//   * ErrCodeInvalidParameterException "InvalidParameterException"
4805//   One or more parameters are not valid.
4806//
4807//   * ErrCodeClientException "ClientException"
4808//   A client exception has occurred.
4809//
4810//   * ErrCodeShareLimitExceededException "ShareLimitExceededException"
4811//   The maximum number of AWS accounts that you can share with this directory
4812//   has been reached.
4813//
4814//   * ErrCodeOrganizationsException "OrganizationsException"
4815//   Exception encountered while trying to access your AWS organization.
4816//
4817//   * ErrCodeAccessDeniedException "AccessDeniedException"
4818//   You do not have sufficient access to perform this action.
4819//
4820//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
4821//   The operation is not supported.
4822//
4823//   * ErrCodeServiceException "ServiceException"
4824//   An exception has occurred in AWS Directory Service.
4825//
4826// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
4827func (c *DirectoryService) ShareDirectory(input *ShareDirectoryInput) (*ShareDirectoryOutput, error) {
4828	req, out := c.ShareDirectoryRequest(input)
4829	return out, req.Send()
4830}
4831
4832// ShareDirectoryWithContext is the same as ShareDirectory with the addition of
4833// the ability to pass a context and additional request options.
4834//
4835// See ShareDirectory for details on how to use this API operation.
4836//
4837// The context must be non-nil and will be used for request cancellation. If
4838// the context is nil a panic will occur. In the future the SDK may create
4839// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4840// for more information on using Contexts.
4841func (c *DirectoryService) ShareDirectoryWithContext(ctx aws.Context, input *ShareDirectoryInput, opts ...request.Option) (*ShareDirectoryOutput, error) {
4842	req, out := c.ShareDirectoryRequest(input)
4843	req.SetContext(ctx)
4844	req.ApplyOptions(opts...)
4845	return out, req.Send()
4846}
4847
4848const opStartSchemaExtension = "StartSchemaExtension"
4849
4850// StartSchemaExtensionRequest generates a "aws/request.Request" representing the
4851// client's request for the StartSchemaExtension operation. The "output" return
4852// value will be populated with the request's response once the request completes
4853// successfully.
4854//
4855// Use "Send" method on the returned Request to send the API call to the service.
4856// the "output" return value is not valid until after Send returns without error.
4857//
4858// See StartSchemaExtension for more information on using the StartSchemaExtension
4859// API call, and error handling.
4860//
4861// This method is useful when you want to inject custom logic or configuration
4862// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4863//
4864//
4865//    // Example sending a request using the StartSchemaExtensionRequest method.
4866//    req, resp := client.StartSchemaExtensionRequest(params)
4867//
4868//    err := req.Send()
4869//    if err == nil { // resp is now filled
4870//        fmt.Println(resp)
4871//    }
4872//
4873// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
4874func (c *DirectoryService) StartSchemaExtensionRequest(input *StartSchemaExtensionInput) (req *request.Request, output *StartSchemaExtensionOutput) {
4875	op := &request.Operation{
4876		Name:       opStartSchemaExtension,
4877		HTTPMethod: "POST",
4878		HTTPPath:   "/",
4879	}
4880
4881	if input == nil {
4882		input = &StartSchemaExtensionInput{}
4883	}
4884
4885	output = &StartSchemaExtensionOutput{}
4886	req = c.newRequest(op, input, output)
4887	return
4888}
4889
4890// StartSchemaExtension API operation for AWS Directory Service.
4891//
4892// Applies a schema extension to a Microsoft AD directory.
4893//
4894// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4895// with awserr.Error's Code and Message methods to get detailed information about
4896// the error.
4897//
4898// See the AWS API reference guide for AWS Directory Service's
4899// API operation StartSchemaExtension for usage and error information.
4900//
4901// Returned Error Codes:
4902//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
4903//   The specified directory is unavailable or could not be found.
4904//
4905//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4906//   The specified entity could not be found.
4907//
4908//   * ErrCodeInvalidParameterException "InvalidParameterException"
4909//   One or more parameters are not valid.
4910//
4911//   * ErrCodeSnapshotLimitExceededException "SnapshotLimitExceededException"
4912//   The maximum number of manual snapshots for the directory has been reached.
4913//   You can use the GetSnapshotLimits operation to determine the snapshot limits
4914//   for a directory.
4915//
4916//   * ErrCodeClientException "ClientException"
4917//   A client exception has occurred.
4918//
4919//   * ErrCodeServiceException "ServiceException"
4920//   An exception has occurred in AWS Directory Service.
4921//
4922// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
4923func (c *DirectoryService) StartSchemaExtension(input *StartSchemaExtensionInput) (*StartSchemaExtensionOutput, error) {
4924	req, out := c.StartSchemaExtensionRequest(input)
4925	return out, req.Send()
4926}
4927
4928// StartSchemaExtensionWithContext is the same as StartSchemaExtension with the addition of
4929// the ability to pass a context and additional request options.
4930//
4931// See StartSchemaExtension for details on how to use this API operation.
4932//
4933// The context must be non-nil and will be used for request cancellation. If
4934// the context is nil a panic will occur. In the future the SDK may create
4935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4936// for more information on using Contexts.
4937func (c *DirectoryService) StartSchemaExtensionWithContext(ctx aws.Context, input *StartSchemaExtensionInput, opts ...request.Option) (*StartSchemaExtensionOutput, error) {
4938	req, out := c.StartSchemaExtensionRequest(input)
4939	req.SetContext(ctx)
4940	req.ApplyOptions(opts...)
4941	return out, req.Send()
4942}
4943
4944const opUnshareDirectory = "UnshareDirectory"
4945
4946// UnshareDirectoryRequest generates a "aws/request.Request" representing the
4947// client's request for the UnshareDirectory operation. The "output" return
4948// value will be populated with the request's response once the request completes
4949// successfully.
4950//
4951// Use "Send" method on the returned Request to send the API call to the service.
4952// the "output" return value is not valid until after Send returns without error.
4953//
4954// See UnshareDirectory for more information on using the UnshareDirectory
4955// API call, and error handling.
4956//
4957// This method is useful when you want to inject custom logic or configuration
4958// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4959//
4960//
4961//    // Example sending a request using the UnshareDirectoryRequest method.
4962//    req, resp := client.UnshareDirectoryRequest(params)
4963//
4964//    err := req.Send()
4965//    if err == nil { // resp is now filled
4966//        fmt.Println(resp)
4967//    }
4968//
4969// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
4970func (c *DirectoryService) UnshareDirectoryRequest(input *UnshareDirectoryInput) (req *request.Request, output *UnshareDirectoryOutput) {
4971	op := &request.Operation{
4972		Name:       opUnshareDirectory,
4973		HTTPMethod: "POST",
4974		HTTPPath:   "/",
4975	}
4976
4977	if input == nil {
4978		input = &UnshareDirectoryInput{}
4979	}
4980
4981	output = &UnshareDirectoryOutput{}
4982	req = c.newRequest(op, input, output)
4983	return
4984}
4985
4986// UnshareDirectory API operation for AWS Directory Service.
4987//
4988// Stops the directory sharing between the directory owner and consumer accounts.
4989//
4990// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4991// with awserr.Error's Code and Message methods to get detailed information about
4992// the error.
4993//
4994// See the AWS API reference guide for AWS Directory Service's
4995// API operation UnshareDirectory for usage and error information.
4996//
4997// Returned Error Codes:
4998//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4999//   The specified entity could not be found.
5000//
5001//   * ErrCodeInvalidTargetException "InvalidTargetException"
5002//   The specified shared target is not valid.
5003//
5004//   * ErrCodeDirectoryNotSharedException "DirectoryNotSharedException"
5005//   The specified directory has not been shared with this AWS account.
5006//
5007//   * ErrCodeClientException "ClientException"
5008//   A client exception has occurred.
5009//
5010//   * ErrCodeServiceException "ServiceException"
5011//   An exception has occurred in AWS Directory Service.
5012//
5013// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
5014func (c *DirectoryService) UnshareDirectory(input *UnshareDirectoryInput) (*UnshareDirectoryOutput, error) {
5015	req, out := c.UnshareDirectoryRequest(input)
5016	return out, req.Send()
5017}
5018
5019// UnshareDirectoryWithContext is the same as UnshareDirectory with the addition of
5020// the ability to pass a context and additional request options.
5021//
5022// See UnshareDirectory for details on how to use this API operation.
5023//
5024// The context must be non-nil and will be used for request cancellation. If
5025// the context is nil a panic will occur. In the future the SDK may create
5026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5027// for more information on using Contexts.
5028func (c *DirectoryService) UnshareDirectoryWithContext(ctx aws.Context, input *UnshareDirectoryInput, opts ...request.Option) (*UnshareDirectoryOutput, error) {
5029	req, out := c.UnshareDirectoryRequest(input)
5030	req.SetContext(ctx)
5031	req.ApplyOptions(opts...)
5032	return out, req.Send()
5033}
5034
5035const opUpdateConditionalForwarder = "UpdateConditionalForwarder"
5036
5037// UpdateConditionalForwarderRequest generates a "aws/request.Request" representing the
5038// client's request for the UpdateConditionalForwarder operation. The "output" return
5039// value will be populated with the request's response once the request completes
5040// successfully.
5041//
5042// Use "Send" method on the returned Request to send the API call to the service.
5043// the "output" return value is not valid until after Send returns without error.
5044//
5045// See UpdateConditionalForwarder for more information on using the UpdateConditionalForwarder
5046// API call, and error handling.
5047//
5048// This method is useful when you want to inject custom logic or configuration
5049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5050//
5051//
5052//    // Example sending a request using the UpdateConditionalForwarderRequest method.
5053//    req, resp := client.UpdateConditionalForwarderRequest(params)
5054//
5055//    err := req.Send()
5056//    if err == nil { // resp is now filled
5057//        fmt.Println(resp)
5058//    }
5059//
5060// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
5061func (c *DirectoryService) UpdateConditionalForwarderRequest(input *UpdateConditionalForwarderInput) (req *request.Request, output *UpdateConditionalForwarderOutput) {
5062	op := &request.Operation{
5063		Name:       opUpdateConditionalForwarder,
5064		HTTPMethod: "POST",
5065		HTTPPath:   "/",
5066	}
5067
5068	if input == nil {
5069		input = &UpdateConditionalForwarderInput{}
5070	}
5071
5072	output = &UpdateConditionalForwarderOutput{}
5073	req = c.newRequest(op, input, output)
5074	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5075	return
5076}
5077
5078// UpdateConditionalForwarder API operation for AWS Directory Service.
5079//
5080// Updates a conditional forwarder that has been set up for your AWS directory.
5081//
5082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5083// with awserr.Error's Code and Message methods to get detailed information about
5084// the error.
5085//
5086// See the AWS API reference guide for AWS Directory Service's
5087// API operation UpdateConditionalForwarder for usage and error information.
5088//
5089// Returned Error Codes:
5090//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
5091//   The specified entity could not be found.
5092//
5093//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
5094//   The specified directory is unavailable or could not be found.
5095//
5096//   * ErrCodeInvalidParameterException "InvalidParameterException"
5097//   One or more parameters are not valid.
5098//
5099//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
5100//   The operation is not supported.
5101//
5102//   * ErrCodeClientException "ClientException"
5103//   A client exception has occurred.
5104//
5105//   * ErrCodeServiceException "ServiceException"
5106//   An exception has occurred in AWS Directory Service.
5107//
5108// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
5109func (c *DirectoryService) UpdateConditionalForwarder(input *UpdateConditionalForwarderInput) (*UpdateConditionalForwarderOutput, error) {
5110	req, out := c.UpdateConditionalForwarderRequest(input)
5111	return out, req.Send()
5112}
5113
5114// UpdateConditionalForwarderWithContext is the same as UpdateConditionalForwarder with the addition of
5115// the ability to pass a context and additional request options.
5116//
5117// See UpdateConditionalForwarder for details on how to use this API operation.
5118//
5119// The context must be non-nil and will be used for request cancellation. If
5120// the context is nil a panic will occur. In the future the SDK may create
5121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5122// for more information on using Contexts.
5123func (c *DirectoryService) UpdateConditionalForwarderWithContext(ctx aws.Context, input *UpdateConditionalForwarderInput, opts ...request.Option) (*UpdateConditionalForwarderOutput, error) {
5124	req, out := c.UpdateConditionalForwarderRequest(input)
5125	req.SetContext(ctx)
5126	req.ApplyOptions(opts...)
5127	return out, req.Send()
5128}
5129
5130const opUpdateNumberOfDomainControllers = "UpdateNumberOfDomainControllers"
5131
5132// UpdateNumberOfDomainControllersRequest generates a "aws/request.Request" representing the
5133// client's request for the UpdateNumberOfDomainControllers operation. The "output" return
5134// value will be populated with the request's response once the request completes
5135// successfully.
5136//
5137// Use "Send" method on the returned Request to send the API call to the service.
5138// the "output" return value is not valid until after Send returns without error.
5139//
5140// See UpdateNumberOfDomainControllers for more information on using the UpdateNumberOfDomainControllers
5141// API call, and error handling.
5142//
5143// This method is useful when you want to inject custom logic or configuration
5144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5145//
5146//
5147//    // Example sending a request using the UpdateNumberOfDomainControllersRequest method.
5148//    req, resp := client.UpdateNumberOfDomainControllersRequest(params)
5149//
5150//    err := req.Send()
5151//    if err == nil { // resp is now filled
5152//        fmt.Println(resp)
5153//    }
5154//
5155// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
5156func (c *DirectoryService) UpdateNumberOfDomainControllersRequest(input *UpdateNumberOfDomainControllersInput) (req *request.Request, output *UpdateNumberOfDomainControllersOutput) {
5157	op := &request.Operation{
5158		Name:       opUpdateNumberOfDomainControllers,
5159		HTTPMethod: "POST",
5160		HTTPPath:   "/",
5161	}
5162
5163	if input == nil {
5164		input = &UpdateNumberOfDomainControllersInput{}
5165	}
5166
5167	output = &UpdateNumberOfDomainControllersOutput{}
5168	req = c.newRequest(op, input, output)
5169	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5170	return
5171}
5172
5173// UpdateNumberOfDomainControllers API operation for AWS Directory Service.
5174//
5175// Adds or removes domain controllers to or from the directory. Based on the
5176// difference between current value and new value (provided through this API
5177// call), domain controllers will be added or removed. It may take up to 45
5178// minutes for any new domain controllers to become fully active once the requested
5179// number of domain controllers is updated. During this time, you cannot make
5180// another update request.
5181//
5182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5183// with awserr.Error's Code and Message methods to get detailed information about
5184// the error.
5185//
5186// See the AWS API reference guide for AWS Directory Service's
5187// API operation UpdateNumberOfDomainControllers for usage and error information.
5188//
5189// Returned Error Codes:
5190//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
5191//   The specified entity could not be found.
5192//
5193//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
5194//   The specified directory is unavailable or could not be found.
5195//
5196//   * ErrCodeDomainControllerLimitExceededException "DomainControllerLimitExceededException"
5197//   The maximum allowed number of domain controllers per directory was exceeded.
5198//   The default limit per directory is 20 domain controllers.
5199//
5200//   * ErrCodeInvalidParameterException "InvalidParameterException"
5201//   One or more parameters are not valid.
5202//
5203//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
5204//   The operation is not supported.
5205//
5206//   * ErrCodeClientException "ClientException"
5207//   A client exception has occurred.
5208//
5209//   * ErrCodeServiceException "ServiceException"
5210//   An exception has occurred in AWS Directory Service.
5211//
5212// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
5213func (c *DirectoryService) UpdateNumberOfDomainControllers(input *UpdateNumberOfDomainControllersInput) (*UpdateNumberOfDomainControllersOutput, error) {
5214	req, out := c.UpdateNumberOfDomainControllersRequest(input)
5215	return out, req.Send()
5216}
5217
5218// UpdateNumberOfDomainControllersWithContext is the same as UpdateNumberOfDomainControllers with the addition of
5219// the ability to pass a context and additional request options.
5220//
5221// See UpdateNumberOfDomainControllers for details on how to use this API operation.
5222//
5223// The context must be non-nil and will be used for request cancellation. If
5224// the context is nil a panic will occur. In the future the SDK may create
5225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5226// for more information on using Contexts.
5227func (c *DirectoryService) UpdateNumberOfDomainControllersWithContext(ctx aws.Context, input *UpdateNumberOfDomainControllersInput, opts ...request.Option) (*UpdateNumberOfDomainControllersOutput, error) {
5228	req, out := c.UpdateNumberOfDomainControllersRequest(input)
5229	req.SetContext(ctx)
5230	req.ApplyOptions(opts...)
5231	return out, req.Send()
5232}
5233
5234const opUpdateRadius = "UpdateRadius"
5235
5236// UpdateRadiusRequest generates a "aws/request.Request" representing the
5237// client's request for the UpdateRadius operation. The "output" return
5238// value will be populated with the request's response once the request completes
5239// successfully.
5240//
5241// Use "Send" method on the returned Request to send the API call to the service.
5242// the "output" return value is not valid until after Send returns without error.
5243//
5244// See UpdateRadius for more information on using the UpdateRadius
5245// API call, and error handling.
5246//
5247// This method is useful when you want to inject custom logic or configuration
5248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5249//
5250//
5251//    // Example sending a request using the UpdateRadiusRequest method.
5252//    req, resp := client.UpdateRadiusRequest(params)
5253//
5254//    err := req.Send()
5255//    if err == nil { // resp is now filled
5256//        fmt.Println(resp)
5257//    }
5258//
5259// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
5260func (c *DirectoryService) UpdateRadiusRequest(input *UpdateRadiusInput) (req *request.Request, output *UpdateRadiusOutput) {
5261	op := &request.Operation{
5262		Name:       opUpdateRadius,
5263		HTTPMethod: "POST",
5264		HTTPPath:   "/",
5265	}
5266
5267	if input == nil {
5268		input = &UpdateRadiusInput{}
5269	}
5270
5271	output = &UpdateRadiusOutput{}
5272	req = c.newRequest(op, input, output)
5273	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5274	return
5275}
5276
5277// UpdateRadius API operation for AWS Directory Service.
5278//
5279// Updates the Remote Authentication Dial In User Service (RADIUS) server information
5280// for an AD Connector or Microsoft AD directory.
5281//
5282// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5283// with awserr.Error's Code and Message methods to get detailed information about
5284// the error.
5285//
5286// See the AWS API reference guide for AWS Directory Service's
5287// API operation UpdateRadius for usage and error information.
5288//
5289// Returned Error Codes:
5290//   * ErrCodeInvalidParameterException "InvalidParameterException"
5291//   One or more parameters are not valid.
5292//
5293//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
5294//   The specified entity could not be found.
5295//
5296//   * ErrCodeClientException "ClientException"
5297//   A client exception has occurred.
5298//
5299//   * ErrCodeServiceException "ServiceException"
5300//   An exception has occurred in AWS Directory Service.
5301//
5302// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
5303func (c *DirectoryService) UpdateRadius(input *UpdateRadiusInput) (*UpdateRadiusOutput, error) {
5304	req, out := c.UpdateRadiusRequest(input)
5305	return out, req.Send()
5306}
5307
5308// UpdateRadiusWithContext is the same as UpdateRadius with the addition of
5309// the ability to pass a context and additional request options.
5310//
5311// See UpdateRadius for details on how to use this API operation.
5312//
5313// The context must be non-nil and will be used for request cancellation. If
5314// the context is nil a panic will occur. In the future the SDK may create
5315// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5316// for more information on using Contexts.
5317func (c *DirectoryService) UpdateRadiusWithContext(ctx aws.Context, input *UpdateRadiusInput, opts ...request.Option) (*UpdateRadiusOutput, error) {
5318	req, out := c.UpdateRadiusRequest(input)
5319	req.SetContext(ctx)
5320	req.ApplyOptions(opts...)
5321	return out, req.Send()
5322}
5323
5324const opUpdateTrust = "UpdateTrust"
5325
5326// UpdateTrustRequest generates a "aws/request.Request" representing the
5327// client's request for the UpdateTrust operation. The "output" return
5328// value will be populated with the request's response once the request completes
5329// successfully.
5330//
5331// Use "Send" method on the returned Request to send the API call to the service.
5332// the "output" return value is not valid until after Send returns without error.
5333//
5334// See UpdateTrust for more information on using the UpdateTrust
5335// API call, and error handling.
5336//
5337// This method is useful when you want to inject custom logic or configuration
5338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5339//
5340//
5341//    // Example sending a request using the UpdateTrustRequest method.
5342//    req, resp := client.UpdateTrustRequest(params)
5343//
5344//    err := req.Send()
5345//    if err == nil { // resp is now filled
5346//        fmt.Println(resp)
5347//    }
5348//
5349// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
5350func (c *DirectoryService) UpdateTrustRequest(input *UpdateTrustInput) (req *request.Request, output *UpdateTrustOutput) {
5351	op := &request.Operation{
5352		Name:       opUpdateTrust,
5353		HTTPMethod: "POST",
5354		HTTPPath:   "/",
5355	}
5356
5357	if input == nil {
5358		input = &UpdateTrustInput{}
5359	}
5360
5361	output = &UpdateTrustOutput{}
5362	req = c.newRequest(op, input, output)
5363	return
5364}
5365
5366// UpdateTrust API operation for AWS Directory Service.
5367//
5368// Updates the trust that has been set up between your AWS Managed Microsoft
5369// AD directory and an on-premises Active Directory.
5370//
5371// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5372// with awserr.Error's Code and Message methods to get detailed information about
5373// the error.
5374//
5375// See the AWS API reference guide for AWS Directory Service's
5376// API operation UpdateTrust for usage and error information.
5377//
5378// Returned Error Codes:
5379//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
5380//   The specified entity could not be found.
5381//
5382//   * ErrCodeInvalidParameterException "InvalidParameterException"
5383//   One or more parameters are not valid.
5384//
5385//   * ErrCodeClientException "ClientException"
5386//   A client exception has occurred.
5387//
5388//   * ErrCodeServiceException "ServiceException"
5389//   An exception has occurred in AWS Directory Service.
5390//
5391// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
5392func (c *DirectoryService) UpdateTrust(input *UpdateTrustInput) (*UpdateTrustOutput, error) {
5393	req, out := c.UpdateTrustRequest(input)
5394	return out, req.Send()
5395}
5396
5397// UpdateTrustWithContext is the same as UpdateTrust with the addition of
5398// the ability to pass a context and additional request options.
5399//
5400// See UpdateTrust for details on how to use this API operation.
5401//
5402// The context must be non-nil and will be used for request cancellation. If
5403// the context is nil a panic will occur. In the future the SDK may create
5404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5405// for more information on using Contexts.
5406func (c *DirectoryService) UpdateTrustWithContext(ctx aws.Context, input *UpdateTrustInput, opts ...request.Option) (*UpdateTrustOutput, error) {
5407	req, out := c.UpdateTrustRequest(input)
5408	req.SetContext(ctx)
5409	req.ApplyOptions(opts...)
5410	return out, req.Send()
5411}
5412
5413const opVerifyTrust = "VerifyTrust"
5414
5415// VerifyTrustRequest generates a "aws/request.Request" representing the
5416// client's request for the VerifyTrust operation. The "output" return
5417// value will be populated with the request's response once the request completes
5418// successfully.
5419//
5420// Use "Send" method on the returned Request to send the API call to the service.
5421// the "output" return value is not valid until after Send returns without error.
5422//
5423// See VerifyTrust for more information on using the VerifyTrust
5424// API call, and error handling.
5425//
5426// This method is useful when you want to inject custom logic or configuration
5427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5428//
5429//
5430//    // Example sending a request using the VerifyTrustRequest method.
5431//    req, resp := client.VerifyTrustRequest(params)
5432//
5433//    err := req.Send()
5434//    if err == nil { // resp is now filled
5435//        fmt.Println(resp)
5436//    }
5437//
5438// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
5439func (c *DirectoryService) VerifyTrustRequest(input *VerifyTrustInput) (req *request.Request, output *VerifyTrustOutput) {
5440	op := &request.Operation{
5441		Name:       opVerifyTrust,
5442		HTTPMethod: "POST",
5443		HTTPPath:   "/",
5444	}
5445
5446	if input == nil {
5447		input = &VerifyTrustInput{}
5448	}
5449
5450	output = &VerifyTrustOutput{}
5451	req = c.newRequest(op, input, output)
5452	return
5453}
5454
5455// VerifyTrust API operation for AWS Directory Service.
5456//
5457// AWS Directory Service for Microsoft Active Directory allows you to configure
5458// and verify trust relationships.
5459//
5460// This action verifies a trust relationship between your AWS Managed Microsoft
5461// AD directory and an external domain.
5462//
5463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5464// with awserr.Error's Code and Message methods to get detailed information about
5465// the error.
5466//
5467// See the AWS API reference guide for AWS Directory Service's
5468// API operation VerifyTrust for usage and error information.
5469//
5470// Returned Error Codes:
5471//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
5472//   The specified entity could not be found.
5473//
5474//   * ErrCodeInvalidParameterException "InvalidParameterException"
5475//   One or more parameters are not valid.
5476//
5477//   * ErrCodeClientException "ClientException"
5478//   A client exception has occurred.
5479//
5480//   * ErrCodeServiceException "ServiceException"
5481//   An exception has occurred in AWS Directory Service.
5482//
5483//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
5484//   The operation is not supported.
5485//
5486// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
5487func (c *DirectoryService) VerifyTrust(input *VerifyTrustInput) (*VerifyTrustOutput, error) {
5488	req, out := c.VerifyTrustRequest(input)
5489	return out, req.Send()
5490}
5491
5492// VerifyTrustWithContext is the same as VerifyTrust with the addition of
5493// the ability to pass a context and additional request options.
5494//
5495// See VerifyTrust for details on how to use this API operation.
5496//
5497// The context must be non-nil and will be used for request cancellation. If
5498// the context is nil a panic will occur. In the future the SDK may create
5499// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5500// for more information on using Contexts.
5501func (c *DirectoryService) VerifyTrustWithContext(ctx aws.Context, input *VerifyTrustInput, opts ...request.Option) (*VerifyTrustOutput, error) {
5502	req, out := c.VerifyTrustRequest(input)
5503	req.SetContext(ctx)
5504	req.ApplyOptions(opts...)
5505	return out, req.Send()
5506}
5507
5508type AcceptSharedDirectoryInput struct {
5509	_ struct{} `type:"structure"`
5510
5511	// Identifier of the shared directory in the directory consumer account. This
5512	// identifier is different for each directory owner account.
5513	//
5514	// SharedDirectoryId is a required field
5515	SharedDirectoryId *string `type:"string" required:"true"`
5516}
5517
5518// String returns the string representation
5519func (s AcceptSharedDirectoryInput) String() string {
5520	return awsutil.Prettify(s)
5521}
5522
5523// GoString returns the string representation
5524func (s AcceptSharedDirectoryInput) GoString() string {
5525	return s.String()
5526}
5527
5528// Validate inspects the fields of the type to determine if they are valid.
5529func (s *AcceptSharedDirectoryInput) Validate() error {
5530	invalidParams := request.ErrInvalidParams{Context: "AcceptSharedDirectoryInput"}
5531	if s.SharedDirectoryId == nil {
5532		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
5533	}
5534
5535	if invalidParams.Len() > 0 {
5536		return invalidParams
5537	}
5538	return nil
5539}
5540
5541// SetSharedDirectoryId sets the SharedDirectoryId field's value.
5542func (s *AcceptSharedDirectoryInput) SetSharedDirectoryId(v string) *AcceptSharedDirectoryInput {
5543	s.SharedDirectoryId = &v
5544	return s
5545}
5546
5547type AcceptSharedDirectoryOutput struct {
5548	_ struct{} `type:"structure"`
5549
5550	// The shared directory in the directory consumer account.
5551	SharedDirectory *SharedDirectory `type:"structure"`
5552}
5553
5554// String returns the string representation
5555func (s AcceptSharedDirectoryOutput) String() string {
5556	return awsutil.Prettify(s)
5557}
5558
5559// GoString returns the string representation
5560func (s AcceptSharedDirectoryOutput) GoString() string {
5561	return s.String()
5562}
5563
5564// SetSharedDirectory sets the SharedDirectory field's value.
5565func (s *AcceptSharedDirectoryOutput) SetSharedDirectory(v *SharedDirectory) *AcceptSharedDirectoryOutput {
5566	s.SharedDirectory = v
5567	return s
5568}
5569
5570type AddIpRoutesInput struct {
5571	_ struct{} `type:"structure"`
5572
5573	// Identifier (ID) of the directory to which to add the address block.
5574	//
5575	// DirectoryId is a required field
5576	DirectoryId *string `type:"string" required:"true"`
5577
5578	// IP address blocks, using CIDR format, of the traffic to route. This is often
5579	// the IP address block of the DNS server used for your on-premises domain.
5580	//
5581	// IpRoutes is a required field
5582	IpRoutes []*IpRoute `type:"list" required:"true"`
5583
5584	// If set to true, updates the inbound and outbound rules of the security group
5585	// that has the description: "AWS created security group for directory ID directory
5586	// controllers." Following are the new rules:
5587	//
5588	// Inbound:
5589	//
5590	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 88, Source: 0.0.0.0/0
5591	//
5592	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 123, Source: 0.0.0.0/0
5593	//
5594	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 138, Source: 0.0.0.0/0
5595	//
5596	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 389, Source: 0.0.0.0/0
5597	//
5598	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 464, Source: 0.0.0.0/0
5599	//
5600	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 445, Source: 0.0.0.0/0
5601	//
5602	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 88, Source: 0.0.0.0/0
5603	//
5604	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 135, Source: 0.0.0.0/0
5605	//
5606	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 445, Source: 0.0.0.0/0
5607	//
5608	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0/0
5609	//
5610	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 636, Source: 0.0.0.0/0
5611	//
5612	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 1024-65535, Source: 0.0.0.0/0
5613	//
5614	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 3268-33269, Source: 0.0.0.0/0
5615	//
5616	//    * Type: DNS (UDP), Protocol: UDP, Range: 53, Source: 0.0.0.0/0
5617	//
5618	//    * Type: DNS (TCP), Protocol: TCP, Range: 53, Source: 0.0.0.0/0
5619	//
5620	//    * Type: LDAP, Protocol: TCP, Range: 389, Source: 0.0.0.0/0
5621	//
5622	//    * Type: All ICMP, Protocol: All, Range: N/A, Source: 0.0.0.0/0
5623	//
5624	// Outbound:
5625	//
5626	//    * Type: All traffic, Protocol: All, Range: All, Destination: 0.0.0.0/0
5627	//
5628	// These security rules impact an internal network interface that is not exposed
5629	// publicly.
5630	UpdateSecurityGroupForDirectoryControllers *bool `type:"boolean"`
5631}
5632
5633// String returns the string representation
5634func (s AddIpRoutesInput) String() string {
5635	return awsutil.Prettify(s)
5636}
5637
5638// GoString returns the string representation
5639func (s AddIpRoutesInput) GoString() string {
5640	return s.String()
5641}
5642
5643// Validate inspects the fields of the type to determine if they are valid.
5644func (s *AddIpRoutesInput) Validate() error {
5645	invalidParams := request.ErrInvalidParams{Context: "AddIpRoutesInput"}
5646	if s.DirectoryId == nil {
5647		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5648	}
5649	if s.IpRoutes == nil {
5650		invalidParams.Add(request.NewErrParamRequired("IpRoutes"))
5651	}
5652
5653	if invalidParams.Len() > 0 {
5654		return invalidParams
5655	}
5656	return nil
5657}
5658
5659// SetDirectoryId sets the DirectoryId field's value.
5660func (s *AddIpRoutesInput) SetDirectoryId(v string) *AddIpRoutesInput {
5661	s.DirectoryId = &v
5662	return s
5663}
5664
5665// SetIpRoutes sets the IpRoutes field's value.
5666func (s *AddIpRoutesInput) SetIpRoutes(v []*IpRoute) *AddIpRoutesInput {
5667	s.IpRoutes = v
5668	return s
5669}
5670
5671// SetUpdateSecurityGroupForDirectoryControllers sets the UpdateSecurityGroupForDirectoryControllers field's value.
5672func (s *AddIpRoutesInput) SetUpdateSecurityGroupForDirectoryControllers(v bool) *AddIpRoutesInput {
5673	s.UpdateSecurityGroupForDirectoryControllers = &v
5674	return s
5675}
5676
5677type AddIpRoutesOutput struct {
5678	_ struct{} `type:"structure"`
5679}
5680
5681// String returns the string representation
5682func (s AddIpRoutesOutput) String() string {
5683	return awsutil.Prettify(s)
5684}
5685
5686// GoString returns the string representation
5687func (s AddIpRoutesOutput) GoString() string {
5688	return s.String()
5689}
5690
5691type AddTagsToResourceInput struct {
5692	_ struct{} `type:"structure"`
5693
5694	// Identifier (ID) for the directory to which to add the tag.
5695	//
5696	// ResourceId is a required field
5697	ResourceId *string `type:"string" required:"true"`
5698
5699	// The tags to be assigned to the directory.
5700	//
5701	// Tags is a required field
5702	Tags []*Tag `type:"list" required:"true"`
5703}
5704
5705// String returns the string representation
5706func (s AddTagsToResourceInput) String() string {
5707	return awsutil.Prettify(s)
5708}
5709
5710// GoString returns the string representation
5711func (s AddTagsToResourceInput) GoString() string {
5712	return s.String()
5713}
5714
5715// Validate inspects the fields of the type to determine if they are valid.
5716func (s *AddTagsToResourceInput) Validate() error {
5717	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
5718	if s.ResourceId == nil {
5719		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5720	}
5721	if s.Tags == nil {
5722		invalidParams.Add(request.NewErrParamRequired("Tags"))
5723	}
5724	if s.Tags != nil {
5725		for i, v := range s.Tags {
5726			if v == nil {
5727				continue
5728			}
5729			if err := v.Validate(); err != nil {
5730				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5731			}
5732		}
5733	}
5734
5735	if invalidParams.Len() > 0 {
5736		return invalidParams
5737	}
5738	return nil
5739}
5740
5741// SetResourceId sets the ResourceId field's value.
5742func (s *AddTagsToResourceInput) SetResourceId(v string) *AddTagsToResourceInput {
5743	s.ResourceId = &v
5744	return s
5745}
5746
5747// SetTags sets the Tags field's value.
5748func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
5749	s.Tags = v
5750	return s
5751}
5752
5753type AddTagsToResourceOutput struct {
5754	_ struct{} `type:"structure"`
5755}
5756
5757// String returns the string representation
5758func (s AddTagsToResourceOutput) String() string {
5759	return awsutil.Prettify(s)
5760}
5761
5762// GoString returns the string representation
5763func (s AddTagsToResourceOutput) GoString() string {
5764	return s.String()
5765}
5766
5767// Represents a named directory attribute.
5768type Attribute struct {
5769	_ struct{} `type:"structure"`
5770
5771	// The name of the attribute.
5772	Name *string `min:"1" type:"string"`
5773
5774	// The value of the attribute.
5775	Value *string `type:"string"`
5776}
5777
5778// String returns the string representation
5779func (s Attribute) String() string {
5780	return awsutil.Prettify(s)
5781}
5782
5783// GoString returns the string representation
5784func (s Attribute) GoString() string {
5785	return s.String()
5786}
5787
5788// Validate inspects the fields of the type to determine if they are valid.
5789func (s *Attribute) Validate() error {
5790	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5791	if s.Name != nil && len(*s.Name) < 1 {
5792		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5793	}
5794
5795	if invalidParams.Len() > 0 {
5796		return invalidParams
5797	}
5798	return nil
5799}
5800
5801// SetName sets the Name field's value.
5802func (s *Attribute) SetName(v string) *Attribute {
5803	s.Name = &v
5804	return s
5805}
5806
5807// SetValue sets the Value field's value.
5808func (s *Attribute) SetValue(v string) *Attribute {
5809	s.Value = &v
5810	return s
5811}
5812
5813type CancelSchemaExtensionInput struct {
5814	_ struct{} `type:"structure"`
5815
5816	// The identifier of the directory whose schema extension will be canceled.
5817	//
5818	// DirectoryId is a required field
5819	DirectoryId *string `type:"string" required:"true"`
5820
5821	// The identifier of the schema extension that will be canceled.
5822	//
5823	// SchemaExtensionId is a required field
5824	SchemaExtensionId *string `type:"string" required:"true"`
5825}
5826
5827// String returns the string representation
5828func (s CancelSchemaExtensionInput) String() string {
5829	return awsutil.Prettify(s)
5830}
5831
5832// GoString returns the string representation
5833func (s CancelSchemaExtensionInput) GoString() string {
5834	return s.String()
5835}
5836
5837// Validate inspects the fields of the type to determine if they are valid.
5838func (s *CancelSchemaExtensionInput) Validate() error {
5839	invalidParams := request.ErrInvalidParams{Context: "CancelSchemaExtensionInput"}
5840	if s.DirectoryId == nil {
5841		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5842	}
5843	if s.SchemaExtensionId == nil {
5844		invalidParams.Add(request.NewErrParamRequired("SchemaExtensionId"))
5845	}
5846
5847	if invalidParams.Len() > 0 {
5848		return invalidParams
5849	}
5850	return nil
5851}
5852
5853// SetDirectoryId sets the DirectoryId field's value.
5854func (s *CancelSchemaExtensionInput) SetDirectoryId(v string) *CancelSchemaExtensionInput {
5855	s.DirectoryId = &v
5856	return s
5857}
5858
5859// SetSchemaExtensionId sets the SchemaExtensionId field's value.
5860func (s *CancelSchemaExtensionInput) SetSchemaExtensionId(v string) *CancelSchemaExtensionInput {
5861	s.SchemaExtensionId = &v
5862	return s
5863}
5864
5865type CancelSchemaExtensionOutput struct {
5866	_ struct{} `type:"structure"`
5867}
5868
5869// String returns the string representation
5870func (s CancelSchemaExtensionOutput) String() string {
5871	return awsutil.Prettify(s)
5872}
5873
5874// GoString returns the string representation
5875func (s CancelSchemaExtensionOutput) GoString() string {
5876	return s.String()
5877}
5878
5879// Information about the certificate.
5880type Certificate struct {
5881	_ struct{} `type:"structure"`
5882
5883	// The identifier of the certificate.
5884	CertificateId *string `type:"string"`
5885
5886	// The common name for the certificate.
5887	CommonName *string `type:"string"`
5888
5889	// The date and time when the certificate will expire.
5890	ExpiryDateTime *time.Time `type:"timestamp"`
5891
5892	// The date and time that the certificate was registered.
5893	RegisteredDateTime *time.Time `type:"timestamp"`
5894
5895	// The state of the certificate.
5896	State *string `type:"string" enum:"CertificateState"`
5897
5898	// Describes a state change for the certificate.
5899	StateReason *string `type:"string"`
5900}
5901
5902// String returns the string representation
5903func (s Certificate) String() string {
5904	return awsutil.Prettify(s)
5905}
5906
5907// GoString returns the string representation
5908func (s Certificate) GoString() string {
5909	return s.String()
5910}
5911
5912// SetCertificateId sets the CertificateId field's value.
5913func (s *Certificate) SetCertificateId(v string) *Certificate {
5914	s.CertificateId = &v
5915	return s
5916}
5917
5918// SetCommonName sets the CommonName field's value.
5919func (s *Certificate) SetCommonName(v string) *Certificate {
5920	s.CommonName = &v
5921	return s
5922}
5923
5924// SetExpiryDateTime sets the ExpiryDateTime field's value.
5925func (s *Certificate) SetExpiryDateTime(v time.Time) *Certificate {
5926	s.ExpiryDateTime = &v
5927	return s
5928}
5929
5930// SetRegisteredDateTime sets the RegisteredDateTime field's value.
5931func (s *Certificate) SetRegisteredDateTime(v time.Time) *Certificate {
5932	s.RegisteredDateTime = &v
5933	return s
5934}
5935
5936// SetState sets the State field's value.
5937func (s *Certificate) SetState(v string) *Certificate {
5938	s.State = &v
5939	return s
5940}
5941
5942// SetStateReason sets the StateReason field's value.
5943func (s *Certificate) SetStateReason(v string) *Certificate {
5944	s.StateReason = &v
5945	return s
5946}
5947
5948// Contains general information about a certificate.
5949type CertificateInfo struct {
5950	_ struct{} `type:"structure"`
5951
5952	// The identifier of the certificate.
5953	CertificateId *string `type:"string"`
5954
5955	// The common name for the certificate.
5956	CommonName *string `type:"string"`
5957
5958	// The state of the certificate.
5959	State *string `type:"string" enum:"CertificateState"`
5960}
5961
5962// String returns the string representation
5963func (s CertificateInfo) String() string {
5964	return awsutil.Prettify(s)
5965}
5966
5967// GoString returns the string representation
5968func (s CertificateInfo) GoString() string {
5969	return s.String()
5970}
5971
5972// SetCertificateId sets the CertificateId field's value.
5973func (s *CertificateInfo) SetCertificateId(v string) *CertificateInfo {
5974	s.CertificateId = &v
5975	return s
5976}
5977
5978// SetCommonName sets the CommonName field's value.
5979func (s *CertificateInfo) SetCommonName(v string) *CertificateInfo {
5980	s.CommonName = &v
5981	return s
5982}
5983
5984// SetState sets the State field's value.
5985func (s *CertificateInfo) SetState(v string) *CertificateInfo {
5986	s.State = &v
5987	return s
5988}
5989
5990// Contains information about a computer account in a directory.
5991type Computer struct {
5992	_ struct{} `type:"structure"`
5993
5994	// An array of Attribute objects containing the LDAP attributes that belong
5995	// to the computer account.
5996	ComputerAttributes []*Attribute `type:"list"`
5997
5998	// The identifier of the computer.
5999	ComputerId *string `min:"1" type:"string"`
6000
6001	// The computer name.
6002	ComputerName *string `min:"1" type:"string"`
6003}
6004
6005// String returns the string representation
6006func (s Computer) String() string {
6007	return awsutil.Prettify(s)
6008}
6009
6010// GoString returns the string representation
6011func (s Computer) GoString() string {
6012	return s.String()
6013}
6014
6015// SetComputerAttributes sets the ComputerAttributes field's value.
6016func (s *Computer) SetComputerAttributes(v []*Attribute) *Computer {
6017	s.ComputerAttributes = v
6018	return s
6019}
6020
6021// SetComputerId sets the ComputerId field's value.
6022func (s *Computer) SetComputerId(v string) *Computer {
6023	s.ComputerId = &v
6024	return s
6025}
6026
6027// SetComputerName sets the ComputerName field's value.
6028func (s *Computer) SetComputerName(v string) *Computer {
6029	s.ComputerName = &v
6030	return s
6031}
6032
6033// Points to a remote domain with which you are setting up a trust relationship.
6034// Conditional forwarders are required in order to set up a trust relationship
6035// with another domain.
6036type ConditionalForwarder struct {
6037	_ struct{} `type:"structure"`
6038
6039	// The IP addresses of the remote DNS server associated with RemoteDomainName.
6040	// This is the IP address of the DNS server that your conditional forwarder
6041	// points to.
6042	DnsIpAddrs []*string `type:"list"`
6043
6044	// The fully qualified domain name (FQDN) of the remote domains pointed to by
6045	// the conditional forwarder.
6046	RemoteDomainName *string `type:"string"`
6047
6048	// The replication scope of the conditional forwarder. The only allowed value
6049	// is Domain, which will replicate the conditional forwarder to all of the domain
6050	// controllers for your AWS directory.
6051	ReplicationScope *string `type:"string" enum:"ReplicationScope"`
6052}
6053
6054// String returns the string representation
6055func (s ConditionalForwarder) String() string {
6056	return awsutil.Prettify(s)
6057}
6058
6059// GoString returns the string representation
6060func (s ConditionalForwarder) GoString() string {
6061	return s.String()
6062}
6063
6064// SetDnsIpAddrs sets the DnsIpAddrs field's value.
6065func (s *ConditionalForwarder) SetDnsIpAddrs(v []*string) *ConditionalForwarder {
6066	s.DnsIpAddrs = v
6067	return s
6068}
6069
6070// SetRemoteDomainName sets the RemoteDomainName field's value.
6071func (s *ConditionalForwarder) SetRemoteDomainName(v string) *ConditionalForwarder {
6072	s.RemoteDomainName = &v
6073	return s
6074}
6075
6076// SetReplicationScope sets the ReplicationScope field's value.
6077func (s *ConditionalForwarder) SetReplicationScope(v string) *ConditionalForwarder {
6078	s.ReplicationScope = &v
6079	return s
6080}
6081
6082// Contains the inputs for the ConnectDirectory operation.
6083type ConnectDirectoryInput struct {
6084	_ struct{} `type:"structure"`
6085
6086	// A DirectoryConnectSettings object that contains additional information for
6087	// the operation.
6088	//
6089	// ConnectSettings is a required field
6090	ConnectSettings *DirectoryConnectSettings `type:"structure" required:"true"`
6091
6092	// A description for the directory.
6093	Description *string `type:"string"`
6094
6095	// The fully qualified name of the on-premises directory, such as corp.example.com.
6096	//
6097	// Name is a required field
6098	Name *string `type:"string" required:"true"`
6099
6100	// The password for the on-premises user account.
6101	//
6102	// Password is a required field
6103	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
6104
6105	// The NetBIOS name of the on-premises directory, such as CORP.
6106	ShortName *string `type:"string"`
6107
6108	// The size of the directory.
6109	//
6110	// Size is a required field
6111	Size *string `type:"string" required:"true" enum:"DirectorySize"`
6112
6113	// The tags to be assigned to AD Connector.
6114	Tags []*Tag `type:"list"`
6115}
6116
6117// String returns the string representation
6118func (s ConnectDirectoryInput) String() string {
6119	return awsutil.Prettify(s)
6120}
6121
6122// GoString returns the string representation
6123func (s ConnectDirectoryInput) GoString() string {
6124	return s.String()
6125}
6126
6127// Validate inspects the fields of the type to determine if they are valid.
6128func (s *ConnectDirectoryInput) Validate() error {
6129	invalidParams := request.ErrInvalidParams{Context: "ConnectDirectoryInput"}
6130	if s.ConnectSettings == nil {
6131		invalidParams.Add(request.NewErrParamRequired("ConnectSettings"))
6132	}
6133	if s.Name == nil {
6134		invalidParams.Add(request.NewErrParamRequired("Name"))
6135	}
6136	if s.Password == nil {
6137		invalidParams.Add(request.NewErrParamRequired("Password"))
6138	}
6139	if s.Password != nil && len(*s.Password) < 1 {
6140		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
6141	}
6142	if s.Size == nil {
6143		invalidParams.Add(request.NewErrParamRequired("Size"))
6144	}
6145	if s.ConnectSettings != nil {
6146		if err := s.ConnectSettings.Validate(); err != nil {
6147			invalidParams.AddNested("ConnectSettings", err.(request.ErrInvalidParams))
6148		}
6149	}
6150	if s.Tags != nil {
6151		for i, v := range s.Tags {
6152			if v == nil {
6153				continue
6154			}
6155			if err := v.Validate(); err != nil {
6156				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6157			}
6158		}
6159	}
6160
6161	if invalidParams.Len() > 0 {
6162		return invalidParams
6163	}
6164	return nil
6165}
6166
6167// SetConnectSettings sets the ConnectSettings field's value.
6168func (s *ConnectDirectoryInput) SetConnectSettings(v *DirectoryConnectSettings) *ConnectDirectoryInput {
6169	s.ConnectSettings = v
6170	return s
6171}
6172
6173// SetDescription sets the Description field's value.
6174func (s *ConnectDirectoryInput) SetDescription(v string) *ConnectDirectoryInput {
6175	s.Description = &v
6176	return s
6177}
6178
6179// SetName sets the Name field's value.
6180func (s *ConnectDirectoryInput) SetName(v string) *ConnectDirectoryInput {
6181	s.Name = &v
6182	return s
6183}
6184
6185// SetPassword sets the Password field's value.
6186func (s *ConnectDirectoryInput) SetPassword(v string) *ConnectDirectoryInput {
6187	s.Password = &v
6188	return s
6189}
6190
6191// SetShortName sets the ShortName field's value.
6192func (s *ConnectDirectoryInput) SetShortName(v string) *ConnectDirectoryInput {
6193	s.ShortName = &v
6194	return s
6195}
6196
6197// SetSize sets the Size field's value.
6198func (s *ConnectDirectoryInput) SetSize(v string) *ConnectDirectoryInput {
6199	s.Size = &v
6200	return s
6201}
6202
6203// SetTags sets the Tags field's value.
6204func (s *ConnectDirectoryInput) SetTags(v []*Tag) *ConnectDirectoryInput {
6205	s.Tags = v
6206	return s
6207}
6208
6209// Contains the results of the ConnectDirectory operation.
6210type ConnectDirectoryOutput struct {
6211	_ struct{} `type:"structure"`
6212
6213	// The identifier of the new directory.
6214	DirectoryId *string `type:"string"`
6215}
6216
6217// String returns the string representation
6218func (s ConnectDirectoryOutput) String() string {
6219	return awsutil.Prettify(s)
6220}
6221
6222// GoString returns the string representation
6223func (s ConnectDirectoryOutput) GoString() string {
6224	return s.String()
6225}
6226
6227// SetDirectoryId sets the DirectoryId field's value.
6228func (s *ConnectDirectoryOutput) SetDirectoryId(v string) *ConnectDirectoryOutput {
6229	s.DirectoryId = &v
6230	return s
6231}
6232
6233// Contains the inputs for the CreateAlias operation.
6234type CreateAliasInput struct {
6235	_ struct{} `type:"structure"`
6236
6237	// The requested alias.
6238	//
6239	// The alias must be unique amongst all aliases in AWS. This operation throws
6240	// an EntityAlreadyExistsException error if the alias already exists.
6241	//
6242	// Alias is a required field
6243	Alias *string `min:"1" type:"string" required:"true"`
6244
6245	// The identifier of the directory for which to create the alias.
6246	//
6247	// DirectoryId is a required field
6248	DirectoryId *string `type:"string" required:"true"`
6249}
6250
6251// String returns the string representation
6252func (s CreateAliasInput) String() string {
6253	return awsutil.Prettify(s)
6254}
6255
6256// GoString returns the string representation
6257func (s CreateAliasInput) GoString() string {
6258	return s.String()
6259}
6260
6261// Validate inspects the fields of the type to determine if they are valid.
6262func (s *CreateAliasInput) Validate() error {
6263	invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"}
6264	if s.Alias == nil {
6265		invalidParams.Add(request.NewErrParamRequired("Alias"))
6266	}
6267	if s.Alias != nil && len(*s.Alias) < 1 {
6268		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
6269	}
6270	if s.DirectoryId == nil {
6271		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6272	}
6273
6274	if invalidParams.Len() > 0 {
6275		return invalidParams
6276	}
6277	return nil
6278}
6279
6280// SetAlias sets the Alias field's value.
6281func (s *CreateAliasInput) SetAlias(v string) *CreateAliasInput {
6282	s.Alias = &v
6283	return s
6284}
6285
6286// SetDirectoryId sets the DirectoryId field's value.
6287func (s *CreateAliasInput) SetDirectoryId(v string) *CreateAliasInput {
6288	s.DirectoryId = &v
6289	return s
6290}
6291
6292// Contains the results of the CreateAlias operation.
6293type CreateAliasOutput struct {
6294	_ struct{} `type:"structure"`
6295
6296	// The alias for the directory.
6297	Alias *string `min:"1" type:"string"`
6298
6299	// The identifier of the directory.
6300	DirectoryId *string `type:"string"`
6301}
6302
6303// String returns the string representation
6304func (s CreateAliasOutput) String() string {
6305	return awsutil.Prettify(s)
6306}
6307
6308// GoString returns the string representation
6309func (s CreateAliasOutput) GoString() string {
6310	return s.String()
6311}
6312
6313// SetAlias sets the Alias field's value.
6314func (s *CreateAliasOutput) SetAlias(v string) *CreateAliasOutput {
6315	s.Alias = &v
6316	return s
6317}
6318
6319// SetDirectoryId sets the DirectoryId field's value.
6320func (s *CreateAliasOutput) SetDirectoryId(v string) *CreateAliasOutput {
6321	s.DirectoryId = &v
6322	return s
6323}
6324
6325// Contains the inputs for the CreateComputer operation.
6326type CreateComputerInput struct {
6327	_ struct{} `type:"structure"`
6328
6329	// An array of Attribute objects that contain any LDAP attributes to apply to
6330	// the computer account.
6331	ComputerAttributes []*Attribute `type:"list"`
6332
6333	// The name of the computer account.
6334	//
6335	// ComputerName is a required field
6336	ComputerName *string `min:"1" type:"string" required:"true"`
6337
6338	// The identifier of the directory in which to create the computer account.
6339	//
6340	// DirectoryId is a required field
6341	DirectoryId *string `type:"string" required:"true"`
6342
6343	// The fully-qualified distinguished name of the organizational unit to place
6344	// the computer account in.
6345	OrganizationalUnitDistinguishedName *string `min:"1" type:"string"`
6346
6347	// A one-time password that is used to join the computer to the directory. You
6348	// should generate a random, strong password to use for this parameter.
6349	//
6350	// Password is a required field
6351	Password *string `min:"8" type:"string" required:"true" sensitive:"true"`
6352}
6353
6354// String returns the string representation
6355func (s CreateComputerInput) String() string {
6356	return awsutil.Prettify(s)
6357}
6358
6359// GoString returns the string representation
6360func (s CreateComputerInput) GoString() string {
6361	return s.String()
6362}
6363
6364// Validate inspects the fields of the type to determine if they are valid.
6365func (s *CreateComputerInput) Validate() error {
6366	invalidParams := request.ErrInvalidParams{Context: "CreateComputerInput"}
6367	if s.ComputerName == nil {
6368		invalidParams.Add(request.NewErrParamRequired("ComputerName"))
6369	}
6370	if s.ComputerName != nil && len(*s.ComputerName) < 1 {
6371		invalidParams.Add(request.NewErrParamMinLen("ComputerName", 1))
6372	}
6373	if s.DirectoryId == nil {
6374		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6375	}
6376	if s.OrganizationalUnitDistinguishedName != nil && len(*s.OrganizationalUnitDistinguishedName) < 1 {
6377		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnitDistinguishedName", 1))
6378	}
6379	if s.Password == nil {
6380		invalidParams.Add(request.NewErrParamRequired("Password"))
6381	}
6382	if s.Password != nil && len(*s.Password) < 8 {
6383		invalidParams.Add(request.NewErrParamMinLen("Password", 8))
6384	}
6385	if s.ComputerAttributes != nil {
6386		for i, v := range s.ComputerAttributes {
6387			if v == nil {
6388				continue
6389			}
6390			if err := v.Validate(); err != nil {
6391				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputerAttributes", i), err.(request.ErrInvalidParams))
6392			}
6393		}
6394	}
6395
6396	if invalidParams.Len() > 0 {
6397		return invalidParams
6398	}
6399	return nil
6400}
6401
6402// SetComputerAttributes sets the ComputerAttributes field's value.
6403func (s *CreateComputerInput) SetComputerAttributes(v []*Attribute) *CreateComputerInput {
6404	s.ComputerAttributes = v
6405	return s
6406}
6407
6408// SetComputerName sets the ComputerName field's value.
6409func (s *CreateComputerInput) SetComputerName(v string) *CreateComputerInput {
6410	s.ComputerName = &v
6411	return s
6412}
6413
6414// SetDirectoryId sets the DirectoryId field's value.
6415func (s *CreateComputerInput) SetDirectoryId(v string) *CreateComputerInput {
6416	s.DirectoryId = &v
6417	return s
6418}
6419
6420// SetOrganizationalUnitDistinguishedName sets the OrganizationalUnitDistinguishedName field's value.
6421func (s *CreateComputerInput) SetOrganizationalUnitDistinguishedName(v string) *CreateComputerInput {
6422	s.OrganizationalUnitDistinguishedName = &v
6423	return s
6424}
6425
6426// SetPassword sets the Password field's value.
6427func (s *CreateComputerInput) SetPassword(v string) *CreateComputerInput {
6428	s.Password = &v
6429	return s
6430}
6431
6432// Contains the results for the CreateComputer operation.
6433type CreateComputerOutput struct {
6434	_ struct{} `type:"structure"`
6435
6436	// A Computer object that represents the computer account.
6437	Computer *Computer `type:"structure"`
6438}
6439
6440// String returns the string representation
6441func (s CreateComputerOutput) String() string {
6442	return awsutil.Prettify(s)
6443}
6444
6445// GoString returns the string representation
6446func (s CreateComputerOutput) GoString() string {
6447	return s.String()
6448}
6449
6450// SetComputer sets the Computer field's value.
6451func (s *CreateComputerOutput) SetComputer(v *Computer) *CreateComputerOutput {
6452	s.Computer = v
6453	return s
6454}
6455
6456// Initiates the creation of a conditional forwarder for your AWS Directory
6457// Service for Microsoft Active Directory. Conditional forwarders are required
6458// in order to set up a trust relationship with another domain.
6459type CreateConditionalForwarderInput struct {
6460	_ struct{} `type:"structure"`
6461
6462	// The directory ID of the AWS directory for which you are creating the conditional
6463	// forwarder.
6464	//
6465	// DirectoryId is a required field
6466	DirectoryId *string `type:"string" required:"true"`
6467
6468	// The IP addresses of the remote DNS server associated with RemoteDomainName.
6469	//
6470	// DnsIpAddrs is a required field
6471	DnsIpAddrs []*string `type:"list" required:"true"`
6472
6473	// The fully qualified domain name (FQDN) of the remote domain with which you
6474	// will set up a trust relationship.
6475	//
6476	// RemoteDomainName is a required field
6477	RemoteDomainName *string `type:"string" required:"true"`
6478}
6479
6480// String returns the string representation
6481func (s CreateConditionalForwarderInput) String() string {
6482	return awsutil.Prettify(s)
6483}
6484
6485// GoString returns the string representation
6486func (s CreateConditionalForwarderInput) GoString() string {
6487	return s.String()
6488}
6489
6490// Validate inspects the fields of the type to determine if they are valid.
6491func (s *CreateConditionalForwarderInput) Validate() error {
6492	invalidParams := request.ErrInvalidParams{Context: "CreateConditionalForwarderInput"}
6493	if s.DirectoryId == nil {
6494		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6495	}
6496	if s.DnsIpAddrs == nil {
6497		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
6498	}
6499	if s.RemoteDomainName == nil {
6500		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
6501	}
6502
6503	if invalidParams.Len() > 0 {
6504		return invalidParams
6505	}
6506	return nil
6507}
6508
6509// SetDirectoryId sets the DirectoryId field's value.
6510func (s *CreateConditionalForwarderInput) SetDirectoryId(v string) *CreateConditionalForwarderInput {
6511	s.DirectoryId = &v
6512	return s
6513}
6514
6515// SetDnsIpAddrs sets the DnsIpAddrs field's value.
6516func (s *CreateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *CreateConditionalForwarderInput {
6517	s.DnsIpAddrs = v
6518	return s
6519}
6520
6521// SetRemoteDomainName sets the RemoteDomainName field's value.
6522func (s *CreateConditionalForwarderInput) SetRemoteDomainName(v string) *CreateConditionalForwarderInput {
6523	s.RemoteDomainName = &v
6524	return s
6525}
6526
6527// The result of a CreateConditinalForwarder request.
6528type CreateConditionalForwarderOutput struct {
6529	_ struct{} `type:"structure"`
6530}
6531
6532// String returns the string representation
6533func (s CreateConditionalForwarderOutput) String() string {
6534	return awsutil.Prettify(s)
6535}
6536
6537// GoString returns the string representation
6538func (s CreateConditionalForwarderOutput) GoString() string {
6539	return s.String()
6540}
6541
6542// Contains the inputs for the CreateDirectory operation.
6543type CreateDirectoryInput struct {
6544	_ struct{} `type:"structure"`
6545
6546	// A description for the directory.
6547	Description *string `type:"string"`
6548
6549	// The fully qualified name for the directory, such as corp.example.com.
6550	//
6551	// Name is a required field
6552	Name *string `type:"string" required:"true"`
6553
6554	// The password for the directory administrator. The directory creation process
6555	// creates a directory administrator account with the user name Administrator
6556	// and this password.
6557	//
6558	// If you need to change the password for the administrator account, you can
6559	// use the ResetUserPassword API call.
6560	//
6561	// Password is a required field
6562	Password *string `type:"string" required:"true" sensitive:"true"`
6563
6564	// The NetBIOS name of the directory, such as CORP.
6565	ShortName *string `type:"string"`
6566
6567	// The size of the directory.
6568	//
6569	// Size is a required field
6570	Size *string `type:"string" required:"true" enum:"DirectorySize"`
6571
6572	// The tags to be assigned to the Simple AD directory.
6573	Tags []*Tag `type:"list"`
6574
6575	// A DirectoryVpcSettings object that contains additional information for the
6576	// operation.
6577	VpcSettings *DirectoryVpcSettings `type:"structure"`
6578}
6579
6580// String returns the string representation
6581func (s CreateDirectoryInput) String() string {
6582	return awsutil.Prettify(s)
6583}
6584
6585// GoString returns the string representation
6586func (s CreateDirectoryInput) GoString() string {
6587	return s.String()
6588}
6589
6590// Validate inspects the fields of the type to determine if they are valid.
6591func (s *CreateDirectoryInput) Validate() error {
6592	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
6593	if s.Name == nil {
6594		invalidParams.Add(request.NewErrParamRequired("Name"))
6595	}
6596	if s.Password == nil {
6597		invalidParams.Add(request.NewErrParamRequired("Password"))
6598	}
6599	if s.Size == nil {
6600		invalidParams.Add(request.NewErrParamRequired("Size"))
6601	}
6602	if s.Tags != nil {
6603		for i, v := range s.Tags {
6604			if v == nil {
6605				continue
6606			}
6607			if err := v.Validate(); err != nil {
6608				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6609			}
6610		}
6611	}
6612	if s.VpcSettings != nil {
6613		if err := s.VpcSettings.Validate(); err != nil {
6614			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
6615		}
6616	}
6617
6618	if invalidParams.Len() > 0 {
6619		return invalidParams
6620	}
6621	return nil
6622}
6623
6624// SetDescription sets the Description field's value.
6625func (s *CreateDirectoryInput) SetDescription(v string) *CreateDirectoryInput {
6626	s.Description = &v
6627	return s
6628}
6629
6630// SetName sets the Name field's value.
6631func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
6632	s.Name = &v
6633	return s
6634}
6635
6636// SetPassword sets the Password field's value.
6637func (s *CreateDirectoryInput) SetPassword(v string) *CreateDirectoryInput {
6638	s.Password = &v
6639	return s
6640}
6641
6642// SetShortName sets the ShortName field's value.
6643func (s *CreateDirectoryInput) SetShortName(v string) *CreateDirectoryInput {
6644	s.ShortName = &v
6645	return s
6646}
6647
6648// SetSize sets the Size field's value.
6649func (s *CreateDirectoryInput) SetSize(v string) *CreateDirectoryInput {
6650	s.Size = &v
6651	return s
6652}
6653
6654// SetTags sets the Tags field's value.
6655func (s *CreateDirectoryInput) SetTags(v []*Tag) *CreateDirectoryInput {
6656	s.Tags = v
6657	return s
6658}
6659
6660// SetVpcSettings sets the VpcSettings field's value.
6661func (s *CreateDirectoryInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateDirectoryInput {
6662	s.VpcSettings = v
6663	return s
6664}
6665
6666// Contains the results of the CreateDirectory operation.
6667type CreateDirectoryOutput struct {
6668	_ struct{} `type:"structure"`
6669
6670	// The identifier of the directory that was created.
6671	DirectoryId *string `type:"string"`
6672}
6673
6674// String returns the string representation
6675func (s CreateDirectoryOutput) String() string {
6676	return awsutil.Prettify(s)
6677}
6678
6679// GoString returns the string representation
6680func (s CreateDirectoryOutput) GoString() string {
6681	return s.String()
6682}
6683
6684// SetDirectoryId sets the DirectoryId field's value.
6685func (s *CreateDirectoryOutput) SetDirectoryId(v string) *CreateDirectoryOutput {
6686	s.DirectoryId = &v
6687	return s
6688}
6689
6690type CreateLogSubscriptionInput struct {
6691	_ struct{} `type:"structure"`
6692
6693	// Identifier of the directory to which you want to subscribe and receive real-time
6694	// logs to your specified CloudWatch log group.
6695	//
6696	// DirectoryId is a required field
6697	DirectoryId *string `type:"string" required:"true"`
6698
6699	// The name of the CloudWatch log group where the real-time domain controller
6700	// logs are forwarded.
6701	//
6702	// LogGroupName is a required field
6703	LogGroupName *string `min:"1" type:"string" required:"true"`
6704}
6705
6706// String returns the string representation
6707func (s CreateLogSubscriptionInput) String() string {
6708	return awsutil.Prettify(s)
6709}
6710
6711// GoString returns the string representation
6712func (s CreateLogSubscriptionInput) GoString() string {
6713	return s.String()
6714}
6715
6716// Validate inspects the fields of the type to determine if they are valid.
6717func (s *CreateLogSubscriptionInput) Validate() error {
6718	invalidParams := request.ErrInvalidParams{Context: "CreateLogSubscriptionInput"}
6719	if s.DirectoryId == nil {
6720		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6721	}
6722	if s.LogGroupName == nil {
6723		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
6724	}
6725	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
6726		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
6727	}
6728
6729	if invalidParams.Len() > 0 {
6730		return invalidParams
6731	}
6732	return nil
6733}
6734
6735// SetDirectoryId sets the DirectoryId field's value.
6736func (s *CreateLogSubscriptionInput) SetDirectoryId(v string) *CreateLogSubscriptionInput {
6737	s.DirectoryId = &v
6738	return s
6739}
6740
6741// SetLogGroupName sets the LogGroupName field's value.
6742func (s *CreateLogSubscriptionInput) SetLogGroupName(v string) *CreateLogSubscriptionInput {
6743	s.LogGroupName = &v
6744	return s
6745}
6746
6747type CreateLogSubscriptionOutput struct {
6748	_ struct{} `type:"structure"`
6749}
6750
6751// String returns the string representation
6752func (s CreateLogSubscriptionOutput) String() string {
6753	return awsutil.Prettify(s)
6754}
6755
6756// GoString returns the string representation
6757func (s CreateLogSubscriptionOutput) GoString() string {
6758	return s.String()
6759}
6760
6761// Creates an AWS Managed Microsoft AD directory.
6762type CreateMicrosoftADInput struct {
6763	_ struct{} `type:"structure"`
6764
6765	// A description for the directory. This label will appear on the AWS console
6766	// Directory Details page after the directory is created.
6767	Description *string `type:"string"`
6768
6769	// AWS Managed Microsoft AD is available in two editions: Standard and Enterprise.
6770	// Enterprise is the default.
6771	Edition *string `type:"string" enum:"DirectoryEdition"`
6772
6773	// The fully qualified domain name for the AWS Managed Microsoft AD directory,
6774	// such as corp.example.com. This name will resolve inside your VPC only. It
6775	// does not need to be publicly resolvable.
6776	//
6777	// Name is a required field
6778	Name *string `type:"string" required:"true"`
6779
6780	// The password for the default administrative user named Admin.
6781	//
6782	// If you need to change the password for the administrator account, you can
6783	// use the ResetUserPassword API call.
6784	//
6785	// Password is a required field
6786	Password *string `type:"string" required:"true" sensitive:"true"`
6787
6788	// The NetBIOS name for your domain, such as CORP. If you don't specify a NetBIOS
6789	// name, it will default to the first part of your directory DNS. For example,
6790	// CORP for the directory DNS corp.example.com.
6791	ShortName *string `type:"string"`
6792
6793	// The tags to be assigned to the AWS Managed Microsoft AD directory.
6794	Tags []*Tag `type:"list"`
6795
6796	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
6797	//
6798	// VpcSettings is a required field
6799	VpcSettings *DirectoryVpcSettings `type:"structure" required:"true"`
6800}
6801
6802// String returns the string representation
6803func (s CreateMicrosoftADInput) String() string {
6804	return awsutil.Prettify(s)
6805}
6806
6807// GoString returns the string representation
6808func (s CreateMicrosoftADInput) GoString() string {
6809	return s.String()
6810}
6811
6812// Validate inspects the fields of the type to determine if they are valid.
6813func (s *CreateMicrosoftADInput) Validate() error {
6814	invalidParams := request.ErrInvalidParams{Context: "CreateMicrosoftADInput"}
6815	if s.Name == nil {
6816		invalidParams.Add(request.NewErrParamRequired("Name"))
6817	}
6818	if s.Password == nil {
6819		invalidParams.Add(request.NewErrParamRequired("Password"))
6820	}
6821	if s.VpcSettings == nil {
6822		invalidParams.Add(request.NewErrParamRequired("VpcSettings"))
6823	}
6824	if s.Tags != nil {
6825		for i, v := range s.Tags {
6826			if v == nil {
6827				continue
6828			}
6829			if err := v.Validate(); err != nil {
6830				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6831			}
6832		}
6833	}
6834	if s.VpcSettings != nil {
6835		if err := s.VpcSettings.Validate(); err != nil {
6836			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
6837		}
6838	}
6839
6840	if invalidParams.Len() > 0 {
6841		return invalidParams
6842	}
6843	return nil
6844}
6845
6846// SetDescription sets the Description field's value.
6847func (s *CreateMicrosoftADInput) SetDescription(v string) *CreateMicrosoftADInput {
6848	s.Description = &v
6849	return s
6850}
6851
6852// SetEdition sets the Edition field's value.
6853func (s *CreateMicrosoftADInput) SetEdition(v string) *CreateMicrosoftADInput {
6854	s.Edition = &v
6855	return s
6856}
6857
6858// SetName sets the Name field's value.
6859func (s *CreateMicrosoftADInput) SetName(v string) *CreateMicrosoftADInput {
6860	s.Name = &v
6861	return s
6862}
6863
6864// SetPassword sets the Password field's value.
6865func (s *CreateMicrosoftADInput) SetPassword(v string) *CreateMicrosoftADInput {
6866	s.Password = &v
6867	return s
6868}
6869
6870// SetShortName sets the ShortName field's value.
6871func (s *CreateMicrosoftADInput) SetShortName(v string) *CreateMicrosoftADInput {
6872	s.ShortName = &v
6873	return s
6874}
6875
6876// SetTags sets the Tags field's value.
6877func (s *CreateMicrosoftADInput) SetTags(v []*Tag) *CreateMicrosoftADInput {
6878	s.Tags = v
6879	return s
6880}
6881
6882// SetVpcSettings sets the VpcSettings field's value.
6883func (s *CreateMicrosoftADInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateMicrosoftADInput {
6884	s.VpcSettings = v
6885	return s
6886}
6887
6888// Result of a CreateMicrosoftAD request.
6889type CreateMicrosoftADOutput struct {
6890	_ struct{} `type:"structure"`
6891
6892	// The identifier of the directory that was created.
6893	DirectoryId *string `type:"string"`
6894}
6895
6896// String returns the string representation
6897func (s CreateMicrosoftADOutput) String() string {
6898	return awsutil.Prettify(s)
6899}
6900
6901// GoString returns the string representation
6902func (s CreateMicrosoftADOutput) GoString() string {
6903	return s.String()
6904}
6905
6906// SetDirectoryId sets the DirectoryId field's value.
6907func (s *CreateMicrosoftADOutput) SetDirectoryId(v string) *CreateMicrosoftADOutput {
6908	s.DirectoryId = &v
6909	return s
6910}
6911
6912// Contains the inputs for the CreateSnapshot operation.
6913type CreateSnapshotInput struct {
6914	_ struct{} `type:"structure"`
6915
6916	// The identifier of the directory of which to take a snapshot.
6917	//
6918	// DirectoryId is a required field
6919	DirectoryId *string `type:"string" required:"true"`
6920
6921	// The descriptive name to apply to the snapshot.
6922	Name *string `type:"string"`
6923}
6924
6925// String returns the string representation
6926func (s CreateSnapshotInput) String() string {
6927	return awsutil.Prettify(s)
6928}
6929
6930// GoString returns the string representation
6931func (s CreateSnapshotInput) GoString() string {
6932	return s.String()
6933}
6934
6935// Validate inspects the fields of the type to determine if they are valid.
6936func (s *CreateSnapshotInput) Validate() error {
6937	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
6938	if s.DirectoryId == nil {
6939		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6940	}
6941
6942	if invalidParams.Len() > 0 {
6943		return invalidParams
6944	}
6945	return nil
6946}
6947
6948// SetDirectoryId sets the DirectoryId field's value.
6949func (s *CreateSnapshotInput) SetDirectoryId(v string) *CreateSnapshotInput {
6950	s.DirectoryId = &v
6951	return s
6952}
6953
6954// SetName sets the Name field's value.
6955func (s *CreateSnapshotInput) SetName(v string) *CreateSnapshotInput {
6956	s.Name = &v
6957	return s
6958}
6959
6960// Contains the results of the CreateSnapshot operation.
6961type CreateSnapshotOutput struct {
6962	_ struct{} `type:"structure"`
6963
6964	// The identifier of the snapshot that was created.
6965	SnapshotId *string `type:"string"`
6966}
6967
6968// String returns the string representation
6969func (s CreateSnapshotOutput) String() string {
6970	return awsutil.Prettify(s)
6971}
6972
6973// GoString returns the string representation
6974func (s CreateSnapshotOutput) GoString() string {
6975	return s.String()
6976}
6977
6978// SetSnapshotId sets the SnapshotId field's value.
6979func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
6980	s.SnapshotId = &v
6981	return s
6982}
6983
6984// AWS Directory Service for Microsoft Active Directory allows you to configure
6985// trust relationships. For example, you can establish a trust between your
6986// AWS Managed Microsoft AD directory, and your existing on-premises Microsoft
6987// Active Directory. This would allow you to provide users and groups access
6988// to resources in either domain, with a single set of credentials.
6989//
6990// This action initiates the creation of the AWS side of a trust relationship
6991// between an AWS Managed Microsoft AD directory and an external domain.
6992type CreateTrustInput struct {
6993	_ struct{} `type:"structure"`
6994
6995	// The IP addresses of the remote DNS server associated with RemoteDomainName.
6996	ConditionalForwarderIpAddrs []*string `type:"list"`
6997
6998	// The Directory ID of the AWS Managed Microsoft AD directory for which to establish
6999	// the trust relationship.
7000	//
7001	// DirectoryId is a required field
7002	DirectoryId *string `type:"string" required:"true"`
7003
7004	// The Fully Qualified Domain Name (FQDN) of the external domain for which to
7005	// create the trust relationship.
7006	//
7007	// RemoteDomainName is a required field
7008	RemoteDomainName *string `type:"string" required:"true"`
7009
7010	// Optional parameter to enable selective authentication for the trust.
7011	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
7012
7013	// The direction of the trust relationship.
7014	//
7015	// TrustDirection is a required field
7016	TrustDirection *string `type:"string" required:"true" enum:"TrustDirection"`
7017
7018	// The trust password. The must be the same password that was used when creating
7019	// the trust relationship on the external domain.
7020	//
7021	// TrustPassword is a required field
7022	TrustPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
7023
7024	// The trust relationship type. Forest is the default.
7025	TrustType *string `type:"string" enum:"TrustType"`
7026}
7027
7028// String returns the string representation
7029func (s CreateTrustInput) String() string {
7030	return awsutil.Prettify(s)
7031}
7032
7033// GoString returns the string representation
7034func (s CreateTrustInput) GoString() string {
7035	return s.String()
7036}
7037
7038// Validate inspects the fields of the type to determine if they are valid.
7039func (s *CreateTrustInput) Validate() error {
7040	invalidParams := request.ErrInvalidParams{Context: "CreateTrustInput"}
7041	if s.DirectoryId == nil {
7042		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7043	}
7044	if s.RemoteDomainName == nil {
7045		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
7046	}
7047	if s.TrustDirection == nil {
7048		invalidParams.Add(request.NewErrParamRequired("TrustDirection"))
7049	}
7050	if s.TrustPassword == nil {
7051		invalidParams.Add(request.NewErrParamRequired("TrustPassword"))
7052	}
7053	if s.TrustPassword != nil && len(*s.TrustPassword) < 1 {
7054		invalidParams.Add(request.NewErrParamMinLen("TrustPassword", 1))
7055	}
7056
7057	if invalidParams.Len() > 0 {
7058		return invalidParams
7059	}
7060	return nil
7061}
7062
7063// SetConditionalForwarderIpAddrs sets the ConditionalForwarderIpAddrs field's value.
7064func (s *CreateTrustInput) SetConditionalForwarderIpAddrs(v []*string) *CreateTrustInput {
7065	s.ConditionalForwarderIpAddrs = v
7066	return s
7067}
7068
7069// SetDirectoryId sets the DirectoryId field's value.
7070func (s *CreateTrustInput) SetDirectoryId(v string) *CreateTrustInput {
7071	s.DirectoryId = &v
7072	return s
7073}
7074
7075// SetRemoteDomainName sets the RemoteDomainName field's value.
7076func (s *CreateTrustInput) SetRemoteDomainName(v string) *CreateTrustInput {
7077	s.RemoteDomainName = &v
7078	return s
7079}
7080
7081// SetSelectiveAuth sets the SelectiveAuth field's value.
7082func (s *CreateTrustInput) SetSelectiveAuth(v string) *CreateTrustInput {
7083	s.SelectiveAuth = &v
7084	return s
7085}
7086
7087// SetTrustDirection sets the TrustDirection field's value.
7088func (s *CreateTrustInput) SetTrustDirection(v string) *CreateTrustInput {
7089	s.TrustDirection = &v
7090	return s
7091}
7092
7093// SetTrustPassword sets the TrustPassword field's value.
7094func (s *CreateTrustInput) SetTrustPassword(v string) *CreateTrustInput {
7095	s.TrustPassword = &v
7096	return s
7097}
7098
7099// SetTrustType sets the TrustType field's value.
7100func (s *CreateTrustInput) SetTrustType(v string) *CreateTrustInput {
7101	s.TrustType = &v
7102	return s
7103}
7104
7105// The result of a CreateTrust request.
7106type CreateTrustOutput struct {
7107	_ struct{} `type:"structure"`
7108
7109	// A unique identifier for the trust relationship that was created.
7110	TrustId *string `type:"string"`
7111}
7112
7113// String returns the string representation
7114func (s CreateTrustOutput) String() string {
7115	return awsutil.Prettify(s)
7116}
7117
7118// GoString returns the string representation
7119func (s CreateTrustOutput) GoString() string {
7120	return s.String()
7121}
7122
7123// SetTrustId sets the TrustId field's value.
7124func (s *CreateTrustOutput) SetTrustId(v string) *CreateTrustOutput {
7125	s.TrustId = &v
7126	return s
7127}
7128
7129// Deletes a conditional forwarder.
7130type DeleteConditionalForwarderInput struct {
7131	_ struct{} `type:"structure"`
7132
7133	// The directory ID for which you are deleting the conditional forwarder.
7134	//
7135	// DirectoryId is a required field
7136	DirectoryId *string `type:"string" required:"true"`
7137
7138	// The fully qualified domain name (FQDN) of the remote domain with which you
7139	// are deleting the conditional forwarder.
7140	//
7141	// RemoteDomainName is a required field
7142	RemoteDomainName *string `type:"string" required:"true"`
7143}
7144
7145// String returns the string representation
7146func (s DeleteConditionalForwarderInput) String() string {
7147	return awsutil.Prettify(s)
7148}
7149
7150// GoString returns the string representation
7151func (s DeleteConditionalForwarderInput) GoString() string {
7152	return s.String()
7153}
7154
7155// Validate inspects the fields of the type to determine if they are valid.
7156func (s *DeleteConditionalForwarderInput) Validate() error {
7157	invalidParams := request.ErrInvalidParams{Context: "DeleteConditionalForwarderInput"}
7158	if s.DirectoryId == nil {
7159		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7160	}
7161	if s.RemoteDomainName == nil {
7162		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
7163	}
7164
7165	if invalidParams.Len() > 0 {
7166		return invalidParams
7167	}
7168	return nil
7169}
7170
7171// SetDirectoryId sets the DirectoryId field's value.
7172func (s *DeleteConditionalForwarderInput) SetDirectoryId(v string) *DeleteConditionalForwarderInput {
7173	s.DirectoryId = &v
7174	return s
7175}
7176
7177// SetRemoteDomainName sets the RemoteDomainName field's value.
7178func (s *DeleteConditionalForwarderInput) SetRemoteDomainName(v string) *DeleteConditionalForwarderInput {
7179	s.RemoteDomainName = &v
7180	return s
7181}
7182
7183// The result of a DeleteConditionalForwarder request.
7184type DeleteConditionalForwarderOutput struct {
7185	_ struct{} `type:"structure"`
7186}
7187
7188// String returns the string representation
7189func (s DeleteConditionalForwarderOutput) String() string {
7190	return awsutil.Prettify(s)
7191}
7192
7193// GoString returns the string representation
7194func (s DeleteConditionalForwarderOutput) GoString() string {
7195	return s.String()
7196}
7197
7198// Contains the inputs for the DeleteDirectory operation.
7199type DeleteDirectoryInput struct {
7200	_ struct{} `type:"structure"`
7201
7202	// The identifier of the directory to delete.
7203	//
7204	// DirectoryId is a required field
7205	DirectoryId *string `type:"string" required:"true"`
7206}
7207
7208// String returns the string representation
7209func (s DeleteDirectoryInput) String() string {
7210	return awsutil.Prettify(s)
7211}
7212
7213// GoString returns the string representation
7214func (s DeleteDirectoryInput) GoString() string {
7215	return s.String()
7216}
7217
7218// Validate inspects the fields of the type to determine if they are valid.
7219func (s *DeleteDirectoryInput) Validate() error {
7220	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
7221	if s.DirectoryId == nil {
7222		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7223	}
7224
7225	if invalidParams.Len() > 0 {
7226		return invalidParams
7227	}
7228	return nil
7229}
7230
7231// SetDirectoryId sets the DirectoryId field's value.
7232func (s *DeleteDirectoryInput) SetDirectoryId(v string) *DeleteDirectoryInput {
7233	s.DirectoryId = &v
7234	return s
7235}
7236
7237// Contains the results of the DeleteDirectory operation.
7238type DeleteDirectoryOutput struct {
7239	_ struct{} `type:"structure"`
7240
7241	// The directory identifier.
7242	DirectoryId *string `type:"string"`
7243}
7244
7245// String returns the string representation
7246func (s DeleteDirectoryOutput) String() string {
7247	return awsutil.Prettify(s)
7248}
7249
7250// GoString returns the string representation
7251func (s DeleteDirectoryOutput) GoString() string {
7252	return s.String()
7253}
7254
7255// SetDirectoryId sets the DirectoryId field's value.
7256func (s *DeleteDirectoryOutput) SetDirectoryId(v string) *DeleteDirectoryOutput {
7257	s.DirectoryId = &v
7258	return s
7259}
7260
7261type DeleteLogSubscriptionInput struct {
7262	_ struct{} `type:"structure"`
7263
7264	// Identifier of the directory whose log subscription you want to delete.
7265	//
7266	// DirectoryId is a required field
7267	DirectoryId *string `type:"string" required:"true"`
7268}
7269
7270// String returns the string representation
7271func (s DeleteLogSubscriptionInput) String() string {
7272	return awsutil.Prettify(s)
7273}
7274
7275// GoString returns the string representation
7276func (s DeleteLogSubscriptionInput) GoString() string {
7277	return s.String()
7278}
7279
7280// Validate inspects the fields of the type to determine if they are valid.
7281func (s *DeleteLogSubscriptionInput) Validate() error {
7282	invalidParams := request.ErrInvalidParams{Context: "DeleteLogSubscriptionInput"}
7283	if s.DirectoryId == nil {
7284		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7285	}
7286
7287	if invalidParams.Len() > 0 {
7288		return invalidParams
7289	}
7290	return nil
7291}
7292
7293// SetDirectoryId sets the DirectoryId field's value.
7294func (s *DeleteLogSubscriptionInput) SetDirectoryId(v string) *DeleteLogSubscriptionInput {
7295	s.DirectoryId = &v
7296	return s
7297}
7298
7299type DeleteLogSubscriptionOutput struct {
7300	_ struct{} `type:"structure"`
7301}
7302
7303// String returns the string representation
7304func (s DeleteLogSubscriptionOutput) String() string {
7305	return awsutil.Prettify(s)
7306}
7307
7308// GoString returns the string representation
7309func (s DeleteLogSubscriptionOutput) GoString() string {
7310	return s.String()
7311}
7312
7313// Contains the inputs for the DeleteSnapshot operation.
7314type DeleteSnapshotInput struct {
7315	_ struct{} `type:"structure"`
7316
7317	// The identifier of the directory snapshot to be deleted.
7318	//
7319	// SnapshotId is a required field
7320	SnapshotId *string `type:"string" required:"true"`
7321}
7322
7323// String returns the string representation
7324func (s DeleteSnapshotInput) String() string {
7325	return awsutil.Prettify(s)
7326}
7327
7328// GoString returns the string representation
7329func (s DeleteSnapshotInput) GoString() string {
7330	return s.String()
7331}
7332
7333// Validate inspects the fields of the type to determine if they are valid.
7334func (s *DeleteSnapshotInput) Validate() error {
7335	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotInput"}
7336	if s.SnapshotId == nil {
7337		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
7338	}
7339
7340	if invalidParams.Len() > 0 {
7341		return invalidParams
7342	}
7343	return nil
7344}
7345
7346// SetSnapshotId sets the SnapshotId field's value.
7347func (s *DeleteSnapshotInput) SetSnapshotId(v string) *DeleteSnapshotInput {
7348	s.SnapshotId = &v
7349	return s
7350}
7351
7352// Contains the results of the DeleteSnapshot operation.
7353type DeleteSnapshotOutput struct {
7354	_ struct{} `type:"structure"`
7355
7356	// The identifier of the directory snapshot that was deleted.
7357	SnapshotId *string `type:"string"`
7358}
7359
7360// String returns the string representation
7361func (s DeleteSnapshotOutput) String() string {
7362	return awsutil.Prettify(s)
7363}
7364
7365// GoString returns the string representation
7366func (s DeleteSnapshotOutput) GoString() string {
7367	return s.String()
7368}
7369
7370// SetSnapshotId sets the SnapshotId field's value.
7371func (s *DeleteSnapshotOutput) SetSnapshotId(v string) *DeleteSnapshotOutput {
7372	s.SnapshotId = &v
7373	return s
7374}
7375
7376// Deletes the local side of an existing trust relationship between the AWS
7377// Managed Microsoft AD directory and the external domain.
7378type DeleteTrustInput struct {
7379	_ struct{} `type:"structure"`
7380
7381	// Delete a conditional forwarder as part of a DeleteTrustRequest.
7382	DeleteAssociatedConditionalForwarder *bool `type:"boolean"`
7383
7384	// The Trust ID of the trust relationship to be deleted.
7385	//
7386	// TrustId is a required field
7387	TrustId *string `type:"string" required:"true"`
7388}
7389
7390// String returns the string representation
7391func (s DeleteTrustInput) String() string {
7392	return awsutil.Prettify(s)
7393}
7394
7395// GoString returns the string representation
7396func (s DeleteTrustInput) GoString() string {
7397	return s.String()
7398}
7399
7400// Validate inspects the fields of the type to determine if they are valid.
7401func (s *DeleteTrustInput) Validate() error {
7402	invalidParams := request.ErrInvalidParams{Context: "DeleteTrustInput"}
7403	if s.TrustId == nil {
7404		invalidParams.Add(request.NewErrParamRequired("TrustId"))
7405	}
7406
7407	if invalidParams.Len() > 0 {
7408		return invalidParams
7409	}
7410	return nil
7411}
7412
7413// SetDeleteAssociatedConditionalForwarder sets the DeleteAssociatedConditionalForwarder field's value.
7414func (s *DeleteTrustInput) SetDeleteAssociatedConditionalForwarder(v bool) *DeleteTrustInput {
7415	s.DeleteAssociatedConditionalForwarder = &v
7416	return s
7417}
7418
7419// SetTrustId sets the TrustId field's value.
7420func (s *DeleteTrustInput) SetTrustId(v string) *DeleteTrustInput {
7421	s.TrustId = &v
7422	return s
7423}
7424
7425// The result of a DeleteTrust request.
7426type DeleteTrustOutput struct {
7427	_ struct{} `type:"structure"`
7428
7429	// The Trust ID of the trust relationship that was deleted.
7430	TrustId *string `type:"string"`
7431}
7432
7433// String returns the string representation
7434func (s DeleteTrustOutput) String() string {
7435	return awsutil.Prettify(s)
7436}
7437
7438// GoString returns the string representation
7439func (s DeleteTrustOutput) GoString() string {
7440	return s.String()
7441}
7442
7443// SetTrustId sets the TrustId field's value.
7444func (s *DeleteTrustOutput) SetTrustId(v string) *DeleteTrustOutput {
7445	s.TrustId = &v
7446	return s
7447}
7448
7449type DeregisterCertificateInput struct {
7450	_ struct{} `type:"structure"`
7451
7452	// The identifier of the certificate.
7453	//
7454	// CertificateId is a required field
7455	CertificateId *string `type:"string" required:"true"`
7456
7457	// The identifier of the directory.
7458	//
7459	// DirectoryId is a required field
7460	DirectoryId *string `type:"string" required:"true"`
7461}
7462
7463// String returns the string representation
7464func (s DeregisterCertificateInput) String() string {
7465	return awsutil.Prettify(s)
7466}
7467
7468// GoString returns the string representation
7469func (s DeregisterCertificateInput) GoString() string {
7470	return s.String()
7471}
7472
7473// Validate inspects the fields of the type to determine if they are valid.
7474func (s *DeregisterCertificateInput) Validate() error {
7475	invalidParams := request.ErrInvalidParams{Context: "DeregisterCertificateInput"}
7476	if s.CertificateId == nil {
7477		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
7478	}
7479	if s.DirectoryId == nil {
7480		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7481	}
7482
7483	if invalidParams.Len() > 0 {
7484		return invalidParams
7485	}
7486	return nil
7487}
7488
7489// SetCertificateId sets the CertificateId field's value.
7490func (s *DeregisterCertificateInput) SetCertificateId(v string) *DeregisterCertificateInput {
7491	s.CertificateId = &v
7492	return s
7493}
7494
7495// SetDirectoryId sets the DirectoryId field's value.
7496func (s *DeregisterCertificateInput) SetDirectoryId(v string) *DeregisterCertificateInput {
7497	s.DirectoryId = &v
7498	return s
7499}
7500
7501type DeregisterCertificateOutput struct {
7502	_ struct{} `type:"structure"`
7503}
7504
7505// String returns the string representation
7506func (s DeregisterCertificateOutput) String() string {
7507	return awsutil.Prettify(s)
7508}
7509
7510// GoString returns the string representation
7511func (s DeregisterCertificateOutput) GoString() string {
7512	return s.String()
7513}
7514
7515// Removes the specified directory as a publisher to the specified SNS topic.
7516type DeregisterEventTopicInput struct {
7517	_ struct{} `type:"structure"`
7518
7519	// The Directory ID to remove as a publisher. This directory will no longer
7520	// send messages to the specified SNS topic.
7521	//
7522	// DirectoryId is a required field
7523	DirectoryId *string `type:"string" required:"true"`
7524
7525	// The name of the SNS topic from which to remove the directory as a publisher.
7526	//
7527	// TopicName is a required field
7528	TopicName *string `min:"1" type:"string" required:"true"`
7529}
7530
7531// String returns the string representation
7532func (s DeregisterEventTopicInput) String() string {
7533	return awsutil.Prettify(s)
7534}
7535
7536// GoString returns the string representation
7537func (s DeregisterEventTopicInput) GoString() string {
7538	return s.String()
7539}
7540
7541// Validate inspects the fields of the type to determine if they are valid.
7542func (s *DeregisterEventTopicInput) Validate() error {
7543	invalidParams := request.ErrInvalidParams{Context: "DeregisterEventTopicInput"}
7544	if s.DirectoryId == nil {
7545		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7546	}
7547	if s.TopicName == nil {
7548		invalidParams.Add(request.NewErrParamRequired("TopicName"))
7549	}
7550	if s.TopicName != nil && len(*s.TopicName) < 1 {
7551		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
7552	}
7553
7554	if invalidParams.Len() > 0 {
7555		return invalidParams
7556	}
7557	return nil
7558}
7559
7560// SetDirectoryId sets the DirectoryId field's value.
7561func (s *DeregisterEventTopicInput) SetDirectoryId(v string) *DeregisterEventTopicInput {
7562	s.DirectoryId = &v
7563	return s
7564}
7565
7566// SetTopicName sets the TopicName field's value.
7567func (s *DeregisterEventTopicInput) SetTopicName(v string) *DeregisterEventTopicInput {
7568	s.TopicName = &v
7569	return s
7570}
7571
7572// The result of a DeregisterEventTopic request.
7573type DeregisterEventTopicOutput struct {
7574	_ struct{} `type:"structure"`
7575}
7576
7577// String returns the string representation
7578func (s DeregisterEventTopicOutput) String() string {
7579	return awsutil.Prettify(s)
7580}
7581
7582// GoString returns the string representation
7583func (s DeregisterEventTopicOutput) GoString() string {
7584	return s.String()
7585}
7586
7587type DescribeCertificateInput struct {
7588	_ struct{} `type:"structure"`
7589
7590	// The identifier of the certificate.
7591	//
7592	// CertificateId is a required field
7593	CertificateId *string `type:"string" required:"true"`
7594
7595	// The identifier of the directory.
7596	//
7597	// DirectoryId is a required field
7598	DirectoryId *string `type:"string" required:"true"`
7599}
7600
7601// String returns the string representation
7602func (s DescribeCertificateInput) String() string {
7603	return awsutil.Prettify(s)
7604}
7605
7606// GoString returns the string representation
7607func (s DescribeCertificateInput) GoString() string {
7608	return s.String()
7609}
7610
7611// Validate inspects the fields of the type to determine if they are valid.
7612func (s *DescribeCertificateInput) Validate() error {
7613	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
7614	if s.CertificateId == nil {
7615		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
7616	}
7617	if s.DirectoryId == nil {
7618		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7619	}
7620
7621	if invalidParams.Len() > 0 {
7622		return invalidParams
7623	}
7624	return nil
7625}
7626
7627// SetCertificateId sets the CertificateId field's value.
7628func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
7629	s.CertificateId = &v
7630	return s
7631}
7632
7633// SetDirectoryId sets the DirectoryId field's value.
7634func (s *DescribeCertificateInput) SetDirectoryId(v string) *DescribeCertificateInput {
7635	s.DirectoryId = &v
7636	return s
7637}
7638
7639type DescribeCertificateOutput struct {
7640	_ struct{} `type:"structure"`
7641
7642	// Information about the certificate, including registered date time, certificate
7643	// state, the reason for the state, expiration date time, and certificate common
7644	// name.
7645	Certificate *Certificate `type:"structure"`
7646}
7647
7648// String returns the string representation
7649func (s DescribeCertificateOutput) String() string {
7650	return awsutil.Prettify(s)
7651}
7652
7653// GoString returns the string representation
7654func (s DescribeCertificateOutput) GoString() string {
7655	return s.String()
7656}
7657
7658// SetCertificate sets the Certificate field's value.
7659func (s *DescribeCertificateOutput) SetCertificate(v *Certificate) *DescribeCertificateOutput {
7660	s.Certificate = v
7661	return s
7662}
7663
7664// Describes a conditional forwarder.
7665type DescribeConditionalForwardersInput struct {
7666	_ struct{} `type:"structure"`
7667
7668	// The directory ID for which to get the list of associated conditional forwarders.
7669	//
7670	// DirectoryId is a required field
7671	DirectoryId *string `type:"string" required:"true"`
7672
7673	// The fully qualified domain names (FQDN) of the remote domains for which to
7674	// get the list of associated conditional forwarders. If this member is null,
7675	// all conditional forwarders are returned.
7676	RemoteDomainNames []*string `type:"list"`
7677}
7678
7679// String returns the string representation
7680func (s DescribeConditionalForwardersInput) String() string {
7681	return awsutil.Prettify(s)
7682}
7683
7684// GoString returns the string representation
7685func (s DescribeConditionalForwardersInput) GoString() string {
7686	return s.String()
7687}
7688
7689// Validate inspects the fields of the type to determine if they are valid.
7690func (s *DescribeConditionalForwardersInput) Validate() error {
7691	invalidParams := request.ErrInvalidParams{Context: "DescribeConditionalForwardersInput"}
7692	if s.DirectoryId == nil {
7693		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7694	}
7695
7696	if invalidParams.Len() > 0 {
7697		return invalidParams
7698	}
7699	return nil
7700}
7701
7702// SetDirectoryId sets the DirectoryId field's value.
7703func (s *DescribeConditionalForwardersInput) SetDirectoryId(v string) *DescribeConditionalForwardersInput {
7704	s.DirectoryId = &v
7705	return s
7706}
7707
7708// SetRemoteDomainNames sets the RemoteDomainNames field's value.
7709func (s *DescribeConditionalForwardersInput) SetRemoteDomainNames(v []*string) *DescribeConditionalForwardersInput {
7710	s.RemoteDomainNames = v
7711	return s
7712}
7713
7714// The result of a DescribeConditionalForwarder request.
7715type DescribeConditionalForwardersOutput struct {
7716	_ struct{} `type:"structure"`
7717
7718	// The list of conditional forwarders that have been created.
7719	ConditionalForwarders []*ConditionalForwarder `type:"list"`
7720}
7721
7722// String returns the string representation
7723func (s DescribeConditionalForwardersOutput) String() string {
7724	return awsutil.Prettify(s)
7725}
7726
7727// GoString returns the string representation
7728func (s DescribeConditionalForwardersOutput) GoString() string {
7729	return s.String()
7730}
7731
7732// SetConditionalForwarders sets the ConditionalForwarders field's value.
7733func (s *DescribeConditionalForwardersOutput) SetConditionalForwarders(v []*ConditionalForwarder) *DescribeConditionalForwardersOutput {
7734	s.ConditionalForwarders = v
7735	return s
7736}
7737
7738// Contains the inputs for the DescribeDirectories operation.
7739type DescribeDirectoriesInput struct {
7740	_ struct{} `type:"structure"`
7741
7742	// A list of identifiers of the directories for which to obtain the information.
7743	// If this member is null, all directories that belong to the current account
7744	// are returned.
7745	//
7746	// An empty list results in an InvalidParameterException being thrown.
7747	DirectoryIds []*string `type:"list"`
7748
7749	// The maximum number of items to return. If this value is zero, the maximum
7750	// number of items is specified by the limitations of the operation.
7751	Limit *int64 `type:"integer"`
7752
7753	// The DescribeDirectoriesResult.NextToken value from a previous call to DescribeDirectories.
7754	// Pass null if this is the first call.
7755	NextToken *string `type:"string"`
7756}
7757
7758// String returns the string representation
7759func (s DescribeDirectoriesInput) String() string {
7760	return awsutil.Prettify(s)
7761}
7762
7763// GoString returns the string representation
7764func (s DescribeDirectoriesInput) GoString() string {
7765	return s.String()
7766}
7767
7768// SetDirectoryIds sets the DirectoryIds field's value.
7769func (s *DescribeDirectoriesInput) SetDirectoryIds(v []*string) *DescribeDirectoriesInput {
7770	s.DirectoryIds = v
7771	return s
7772}
7773
7774// SetLimit sets the Limit field's value.
7775func (s *DescribeDirectoriesInput) SetLimit(v int64) *DescribeDirectoriesInput {
7776	s.Limit = &v
7777	return s
7778}
7779
7780// SetNextToken sets the NextToken field's value.
7781func (s *DescribeDirectoriesInput) SetNextToken(v string) *DescribeDirectoriesInput {
7782	s.NextToken = &v
7783	return s
7784}
7785
7786// Contains the results of the DescribeDirectories operation.
7787type DescribeDirectoriesOutput struct {
7788	_ struct{} `type:"structure"`
7789
7790	// The list of DirectoryDescription objects that were retrieved.
7791	//
7792	// It is possible that this list contains less than the number of items specified
7793	// in the Limit member of the request. This occurs if there are less than the
7794	// requested number of items left to retrieve, or if the limitations of the
7795	// operation have been exceeded.
7796	DirectoryDescriptions []*DirectoryDescription `type:"list"`
7797
7798	// If not null, more results are available. Pass this value for the NextToken
7799	// parameter in a subsequent call to DescribeDirectories to retrieve the next
7800	// set of items.
7801	NextToken *string `type:"string"`
7802}
7803
7804// String returns the string representation
7805func (s DescribeDirectoriesOutput) String() string {
7806	return awsutil.Prettify(s)
7807}
7808
7809// GoString returns the string representation
7810func (s DescribeDirectoriesOutput) GoString() string {
7811	return s.String()
7812}
7813
7814// SetDirectoryDescriptions sets the DirectoryDescriptions field's value.
7815func (s *DescribeDirectoriesOutput) SetDirectoryDescriptions(v []*DirectoryDescription) *DescribeDirectoriesOutput {
7816	s.DirectoryDescriptions = v
7817	return s
7818}
7819
7820// SetNextToken sets the NextToken field's value.
7821func (s *DescribeDirectoriesOutput) SetNextToken(v string) *DescribeDirectoriesOutput {
7822	s.NextToken = &v
7823	return s
7824}
7825
7826type DescribeDomainControllersInput struct {
7827	_ struct{} `type:"structure"`
7828
7829	// Identifier of the directory for which to retrieve the domain controller information.
7830	//
7831	// DirectoryId is a required field
7832	DirectoryId *string `type:"string" required:"true"`
7833
7834	// A list of identifiers for the domain controllers whose information will be
7835	// provided.
7836	DomainControllerIds []*string `type:"list"`
7837
7838	// The maximum number of items to return.
7839	Limit *int64 `type:"integer"`
7840
7841	// The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers.
7842	// Pass null if this is the first call.
7843	NextToken *string `type:"string"`
7844}
7845
7846// String returns the string representation
7847func (s DescribeDomainControllersInput) String() string {
7848	return awsutil.Prettify(s)
7849}
7850
7851// GoString returns the string representation
7852func (s DescribeDomainControllersInput) GoString() string {
7853	return s.String()
7854}
7855
7856// Validate inspects the fields of the type to determine if they are valid.
7857func (s *DescribeDomainControllersInput) Validate() error {
7858	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainControllersInput"}
7859	if s.DirectoryId == nil {
7860		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7861	}
7862
7863	if invalidParams.Len() > 0 {
7864		return invalidParams
7865	}
7866	return nil
7867}
7868
7869// SetDirectoryId sets the DirectoryId field's value.
7870func (s *DescribeDomainControllersInput) SetDirectoryId(v string) *DescribeDomainControllersInput {
7871	s.DirectoryId = &v
7872	return s
7873}
7874
7875// SetDomainControllerIds sets the DomainControllerIds field's value.
7876func (s *DescribeDomainControllersInput) SetDomainControllerIds(v []*string) *DescribeDomainControllersInput {
7877	s.DomainControllerIds = v
7878	return s
7879}
7880
7881// SetLimit sets the Limit field's value.
7882func (s *DescribeDomainControllersInput) SetLimit(v int64) *DescribeDomainControllersInput {
7883	s.Limit = &v
7884	return s
7885}
7886
7887// SetNextToken sets the NextToken field's value.
7888func (s *DescribeDomainControllersInput) SetNextToken(v string) *DescribeDomainControllersInput {
7889	s.NextToken = &v
7890	return s
7891}
7892
7893type DescribeDomainControllersOutput struct {
7894	_ struct{} `type:"structure"`
7895
7896	// List of the DomainController objects that were retrieved.
7897	DomainControllers []*DomainController `type:"list"`
7898
7899	// If not null, more results are available. Pass this value for the NextToken
7900	// parameter in a subsequent call to DescribeDomainControllers retrieve the
7901	// next set of items.
7902	NextToken *string `type:"string"`
7903}
7904
7905// String returns the string representation
7906func (s DescribeDomainControllersOutput) String() string {
7907	return awsutil.Prettify(s)
7908}
7909
7910// GoString returns the string representation
7911func (s DescribeDomainControllersOutput) GoString() string {
7912	return s.String()
7913}
7914
7915// SetDomainControllers sets the DomainControllers field's value.
7916func (s *DescribeDomainControllersOutput) SetDomainControllers(v []*DomainController) *DescribeDomainControllersOutput {
7917	s.DomainControllers = v
7918	return s
7919}
7920
7921// SetNextToken sets the NextToken field's value.
7922func (s *DescribeDomainControllersOutput) SetNextToken(v string) *DescribeDomainControllersOutput {
7923	s.NextToken = &v
7924	return s
7925}
7926
7927// Describes event topics.
7928type DescribeEventTopicsInput struct {
7929	_ struct{} `type:"structure"`
7930
7931	// The Directory ID for which to get the list of associated SNS topics. If this
7932	// member is null, associations for all Directory IDs are returned.
7933	DirectoryId *string `type:"string"`
7934
7935	// A list of SNS topic names for which to obtain the information. If this member
7936	// is null, all associations for the specified Directory ID are returned.
7937	//
7938	// An empty list results in an InvalidParameterException being thrown.
7939	TopicNames []*string `type:"list"`
7940}
7941
7942// String returns the string representation
7943func (s DescribeEventTopicsInput) String() string {
7944	return awsutil.Prettify(s)
7945}
7946
7947// GoString returns the string representation
7948func (s DescribeEventTopicsInput) GoString() string {
7949	return s.String()
7950}
7951
7952// SetDirectoryId sets the DirectoryId field's value.
7953func (s *DescribeEventTopicsInput) SetDirectoryId(v string) *DescribeEventTopicsInput {
7954	s.DirectoryId = &v
7955	return s
7956}
7957
7958// SetTopicNames sets the TopicNames field's value.
7959func (s *DescribeEventTopicsInput) SetTopicNames(v []*string) *DescribeEventTopicsInput {
7960	s.TopicNames = v
7961	return s
7962}
7963
7964// The result of a DescribeEventTopic request.
7965type DescribeEventTopicsOutput struct {
7966	_ struct{} `type:"structure"`
7967
7968	// A list of SNS topic names that receive status messages from the specified
7969	// Directory ID.
7970	EventTopics []*EventTopic `type:"list"`
7971}
7972
7973// String returns the string representation
7974func (s DescribeEventTopicsOutput) String() string {
7975	return awsutil.Prettify(s)
7976}
7977
7978// GoString returns the string representation
7979func (s DescribeEventTopicsOutput) GoString() string {
7980	return s.String()
7981}
7982
7983// SetEventTopics sets the EventTopics field's value.
7984func (s *DescribeEventTopicsOutput) SetEventTopics(v []*EventTopic) *DescribeEventTopicsOutput {
7985	s.EventTopics = v
7986	return s
7987}
7988
7989type DescribeLDAPSSettingsInput struct {
7990	_ struct{} `type:"structure"`
7991
7992	// The identifier of the directory.
7993	//
7994	// DirectoryId is a required field
7995	DirectoryId *string `type:"string" required:"true"`
7996
7997	// Specifies the number of items that should be displayed on one page.
7998	Limit *int64 `min:"1" type:"integer"`
7999
8000	// The type of next token used for pagination.
8001	NextToken *string `type:"string"`
8002
8003	// The type of LDAP security the customer wants to enable, either server or
8004	// client. Currently supports only Client, (the default).
8005	Type *string `type:"string" enum:"LDAPSType"`
8006}
8007
8008// String returns the string representation
8009func (s DescribeLDAPSSettingsInput) String() string {
8010	return awsutil.Prettify(s)
8011}
8012
8013// GoString returns the string representation
8014func (s DescribeLDAPSSettingsInput) GoString() string {
8015	return s.String()
8016}
8017
8018// Validate inspects the fields of the type to determine if they are valid.
8019func (s *DescribeLDAPSSettingsInput) Validate() error {
8020	invalidParams := request.ErrInvalidParams{Context: "DescribeLDAPSSettingsInput"}
8021	if s.DirectoryId == nil {
8022		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8023	}
8024	if s.Limit != nil && *s.Limit < 1 {
8025		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
8026	}
8027
8028	if invalidParams.Len() > 0 {
8029		return invalidParams
8030	}
8031	return nil
8032}
8033
8034// SetDirectoryId sets the DirectoryId field's value.
8035func (s *DescribeLDAPSSettingsInput) SetDirectoryId(v string) *DescribeLDAPSSettingsInput {
8036	s.DirectoryId = &v
8037	return s
8038}
8039
8040// SetLimit sets the Limit field's value.
8041func (s *DescribeLDAPSSettingsInput) SetLimit(v int64) *DescribeLDAPSSettingsInput {
8042	s.Limit = &v
8043	return s
8044}
8045
8046// SetNextToken sets the NextToken field's value.
8047func (s *DescribeLDAPSSettingsInput) SetNextToken(v string) *DescribeLDAPSSettingsInput {
8048	s.NextToken = &v
8049	return s
8050}
8051
8052// SetType sets the Type field's value.
8053func (s *DescribeLDAPSSettingsInput) SetType(v string) *DescribeLDAPSSettingsInput {
8054	s.Type = &v
8055	return s
8056}
8057
8058type DescribeLDAPSSettingsOutput struct {
8059	_ struct{} `type:"structure"`
8060
8061	// Information about LDAP security for the specified directory, including status
8062	// of enablement, state last updated date time, and the reason for the state.
8063	LDAPSSettingsInfo []*LDAPSSettingInfo `type:"list"`
8064
8065	// The next token used to retrieve the LDAPS settings if the number of setting
8066	// types exceeds page limit and there is another page.
8067	NextToken *string `type:"string"`
8068}
8069
8070// String returns the string representation
8071func (s DescribeLDAPSSettingsOutput) String() string {
8072	return awsutil.Prettify(s)
8073}
8074
8075// GoString returns the string representation
8076func (s DescribeLDAPSSettingsOutput) GoString() string {
8077	return s.String()
8078}
8079
8080// SetLDAPSSettingsInfo sets the LDAPSSettingsInfo field's value.
8081func (s *DescribeLDAPSSettingsOutput) SetLDAPSSettingsInfo(v []*LDAPSSettingInfo) *DescribeLDAPSSettingsOutput {
8082	s.LDAPSSettingsInfo = v
8083	return s
8084}
8085
8086// SetNextToken sets the NextToken field's value.
8087func (s *DescribeLDAPSSettingsOutput) SetNextToken(v string) *DescribeLDAPSSettingsOutput {
8088	s.NextToken = &v
8089	return s
8090}
8091
8092type DescribeSharedDirectoriesInput struct {
8093	_ struct{} `type:"structure"`
8094
8095	// The number of shared directories to return in the response object.
8096	Limit *int64 `type:"integer"`
8097
8098	// The DescribeSharedDirectoriesResult.NextToken value from a previous call
8099	// to DescribeSharedDirectories. Pass null if this is the first call.
8100	NextToken *string `type:"string"`
8101
8102	// Returns the identifier of the directory in the directory owner account.
8103	//
8104	// OwnerDirectoryId is a required field
8105	OwnerDirectoryId *string `type:"string" required:"true"`
8106
8107	// A list of identifiers of all shared directories in your account.
8108	SharedDirectoryIds []*string `type:"list"`
8109}
8110
8111// String returns the string representation
8112func (s DescribeSharedDirectoriesInput) String() string {
8113	return awsutil.Prettify(s)
8114}
8115
8116// GoString returns the string representation
8117func (s DescribeSharedDirectoriesInput) GoString() string {
8118	return s.String()
8119}
8120
8121// Validate inspects the fields of the type to determine if they are valid.
8122func (s *DescribeSharedDirectoriesInput) Validate() error {
8123	invalidParams := request.ErrInvalidParams{Context: "DescribeSharedDirectoriesInput"}
8124	if s.OwnerDirectoryId == nil {
8125		invalidParams.Add(request.NewErrParamRequired("OwnerDirectoryId"))
8126	}
8127
8128	if invalidParams.Len() > 0 {
8129		return invalidParams
8130	}
8131	return nil
8132}
8133
8134// SetLimit sets the Limit field's value.
8135func (s *DescribeSharedDirectoriesInput) SetLimit(v int64) *DescribeSharedDirectoriesInput {
8136	s.Limit = &v
8137	return s
8138}
8139
8140// SetNextToken sets the NextToken field's value.
8141func (s *DescribeSharedDirectoriesInput) SetNextToken(v string) *DescribeSharedDirectoriesInput {
8142	s.NextToken = &v
8143	return s
8144}
8145
8146// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
8147func (s *DescribeSharedDirectoriesInput) SetOwnerDirectoryId(v string) *DescribeSharedDirectoriesInput {
8148	s.OwnerDirectoryId = &v
8149	return s
8150}
8151
8152// SetSharedDirectoryIds sets the SharedDirectoryIds field's value.
8153func (s *DescribeSharedDirectoriesInput) SetSharedDirectoryIds(v []*string) *DescribeSharedDirectoriesInput {
8154	s.SharedDirectoryIds = v
8155	return s
8156}
8157
8158type DescribeSharedDirectoriesOutput struct {
8159	_ struct{} `type:"structure"`
8160
8161	// If not null, token that indicates that more results are available. Pass this
8162	// value for the NextToken parameter in a subsequent call to DescribeSharedDirectories
8163	// to retrieve the next set of items.
8164	NextToken *string `type:"string"`
8165
8166	// A list of all shared directories in your account.
8167	SharedDirectories []*SharedDirectory `type:"list"`
8168}
8169
8170// String returns the string representation
8171func (s DescribeSharedDirectoriesOutput) String() string {
8172	return awsutil.Prettify(s)
8173}
8174
8175// GoString returns the string representation
8176func (s DescribeSharedDirectoriesOutput) GoString() string {
8177	return s.String()
8178}
8179
8180// SetNextToken sets the NextToken field's value.
8181func (s *DescribeSharedDirectoriesOutput) SetNextToken(v string) *DescribeSharedDirectoriesOutput {
8182	s.NextToken = &v
8183	return s
8184}
8185
8186// SetSharedDirectories sets the SharedDirectories field's value.
8187func (s *DescribeSharedDirectoriesOutput) SetSharedDirectories(v []*SharedDirectory) *DescribeSharedDirectoriesOutput {
8188	s.SharedDirectories = v
8189	return s
8190}
8191
8192// Contains the inputs for the DescribeSnapshots operation.
8193type DescribeSnapshotsInput struct {
8194	_ struct{} `type:"structure"`
8195
8196	// The identifier of the directory for which to retrieve snapshot information.
8197	DirectoryId *string `type:"string"`
8198
8199	// The maximum number of objects to return.
8200	Limit *int64 `type:"integer"`
8201
8202	// The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots.
8203	// Pass null if this is the first call.
8204	NextToken *string `type:"string"`
8205
8206	// A list of identifiers of the snapshots to obtain the information for. If
8207	// this member is null or empty, all snapshots are returned using the Limit
8208	// and NextToken members.
8209	SnapshotIds []*string `type:"list"`
8210}
8211
8212// String returns the string representation
8213func (s DescribeSnapshotsInput) String() string {
8214	return awsutil.Prettify(s)
8215}
8216
8217// GoString returns the string representation
8218func (s DescribeSnapshotsInput) GoString() string {
8219	return s.String()
8220}
8221
8222// SetDirectoryId sets the DirectoryId field's value.
8223func (s *DescribeSnapshotsInput) SetDirectoryId(v string) *DescribeSnapshotsInput {
8224	s.DirectoryId = &v
8225	return s
8226}
8227
8228// SetLimit sets the Limit field's value.
8229func (s *DescribeSnapshotsInput) SetLimit(v int64) *DescribeSnapshotsInput {
8230	s.Limit = &v
8231	return s
8232}
8233
8234// SetNextToken sets the NextToken field's value.
8235func (s *DescribeSnapshotsInput) SetNextToken(v string) *DescribeSnapshotsInput {
8236	s.NextToken = &v
8237	return s
8238}
8239
8240// SetSnapshotIds sets the SnapshotIds field's value.
8241func (s *DescribeSnapshotsInput) SetSnapshotIds(v []*string) *DescribeSnapshotsInput {
8242	s.SnapshotIds = v
8243	return s
8244}
8245
8246// Contains the results of the DescribeSnapshots operation.
8247type DescribeSnapshotsOutput struct {
8248	_ struct{} `type:"structure"`
8249
8250	// If not null, more results are available. Pass this value in the NextToken
8251	// member of a subsequent call to DescribeSnapshots.
8252	NextToken *string `type:"string"`
8253
8254	// The list of Snapshot objects that were retrieved.
8255	//
8256	// It is possible that this list contains less than the number of items specified
8257	// in the Limit member of the request. This occurs if there are less than the
8258	// requested number of items left to retrieve, or if the limitations of the
8259	// operation have been exceeded.
8260	Snapshots []*Snapshot `type:"list"`
8261}
8262
8263// String returns the string representation
8264func (s DescribeSnapshotsOutput) String() string {
8265	return awsutil.Prettify(s)
8266}
8267
8268// GoString returns the string representation
8269func (s DescribeSnapshotsOutput) GoString() string {
8270	return s.String()
8271}
8272
8273// SetNextToken sets the NextToken field's value.
8274func (s *DescribeSnapshotsOutput) SetNextToken(v string) *DescribeSnapshotsOutput {
8275	s.NextToken = &v
8276	return s
8277}
8278
8279// SetSnapshots sets the Snapshots field's value.
8280func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshotsOutput {
8281	s.Snapshots = v
8282	return s
8283}
8284
8285// Describes the trust relationships for a particular AWS Managed Microsoft
8286// AD directory. If no input parameters are are provided, such as directory
8287// ID or trust ID, this request describes all the trust relationships.
8288type DescribeTrustsInput struct {
8289	_ struct{} `type:"structure"`
8290
8291	// The Directory ID of the AWS directory that is a part of the requested trust
8292	// relationship.
8293	DirectoryId *string `type:"string"`
8294
8295	// The maximum number of objects to return.
8296	Limit *int64 `type:"integer"`
8297
8298	// The DescribeTrustsResult.NextToken value from a previous call to DescribeTrusts.
8299	// Pass null if this is the first call.
8300	NextToken *string `type:"string"`
8301
8302	// A list of identifiers of the trust relationships for which to obtain the
8303	// information. If this member is null, all trust relationships that belong
8304	// to the current account are returned.
8305	//
8306	// An empty list results in an InvalidParameterException being thrown.
8307	TrustIds []*string `type:"list"`
8308}
8309
8310// String returns the string representation
8311func (s DescribeTrustsInput) String() string {
8312	return awsutil.Prettify(s)
8313}
8314
8315// GoString returns the string representation
8316func (s DescribeTrustsInput) GoString() string {
8317	return s.String()
8318}
8319
8320// SetDirectoryId sets the DirectoryId field's value.
8321func (s *DescribeTrustsInput) SetDirectoryId(v string) *DescribeTrustsInput {
8322	s.DirectoryId = &v
8323	return s
8324}
8325
8326// SetLimit sets the Limit field's value.
8327func (s *DescribeTrustsInput) SetLimit(v int64) *DescribeTrustsInput {
8328	s.Limit = &v
8329	return s
8330}
8331
8332// SetNextToken sets the NextToken field's value.
8333func (s *DescribeTrustsInput) SetNextToken(v string) *DescribeTrustsInput {
8334	s.NextToken = &v
8335	return s
8336}
8337
8338// SetTrustIds sets the TrustIds field's value.
8339func (s *DescribeTrustsInput) SetTrustIds(v []*string) *DescribeTrustsInput {
8340	s.TrustIds = v
8341	return s
8342}
8343
8344// The result of a DescribeTrust request.
8345type DescribeTrustsOutput struct {
8346	_ struct{} `type:"structure"`
8347
8348	// If not null, more results are available. Pass this value for the NextToken
8349	// parameter in a subsequent call to DescribeTrusts to retrieve the next set
8350	// of items.
8351	NextToken *string `type:"string"`
8352
8353	// The list of Trust objects that were retrieved.
8354	//
8355	// It is possible that this list contains less than the number of items specified
8356	// in the Limit member of the request. This occurs if there are less than the
8357	// requested number of items left to retrieve, or if the limitations of the
8358	// operation have been exceeded.
8359	Trusts []*Trust `type:"list"`
8360}
8361
8362// String returns the string representation
8363func (s DescribeTrustsOutput) String() string {
8364	return awsutil.Prettify(s)
8365}
8366
8367// GoString returns the string representation
8368func (s DescribeTrustsOutput) GoString() string {
8369	return s.String()
8370}
8371
8372// SetNextToken sets the NextToken field's value.
8373func (s *DescribeTrustsOutput) SetNextToken(v string) *DescribeTrustsOutput {
8374	s.NextToken = &v
8375	return s
8376}
8377
8378// SetTrusts sets the Trusts field's value.
8379func (s *DescribeTrustsOutput) SetTrusts(v []*Trust) *DescribeTrustsOutput {
8380	s.Trusts = v
8381	return s
8382}
8383
8384// Contains information for the ConnectDirectory operation when an AD Connector
8385// directory is being created.
8386type DirectoryConnectSettings struct {
8387	_ struct{} `type:"structure"`
8388
8389	// A list of one or more IP addresses of DNS servers or domain controllers in
8390	// the on-premises directory.
8391	//
8392	// CustomerDnsIps is a required field
8393	CustomerDnsIps []*string `type:"list" required:"true"`
8394
8395	// The user name of an account in the on-premises directory that is used to
8396	// connect to the directory. This account must have the following permissions:
8397	//
8398	//    * Read users and groups
8399	//
8400	//    * Create computer objects
8401	//
8402	//    * Join computers to the domain
8403	//
8404	// CustomerUserName is a required field
8405	CustomerUserName *string `min:"1" type:"string" required:"true"`
8406
8407	// A list of subnet identifiers in the VPC in which the AD Connector is created.
8408	//
8409	// SubnetIds is a required field
8410	SubnetIds []*string `type:"list" required:"true"`
8411
8412	// The identifier of the VPC in which the AD Connector is created.
8413	//
8414	// VpcId is a required field
8415	VpcId *string `type:"string" required:"true"`
8416}
8417
8418// String returns the string representation
8419func (s DirectoryConnectSettings) String() string {
8420	return awsutil.Prettify(s)
8421}
8422
8423// GoString returns the string representation
8424func (s DirectoryConnectSettings) GoString() string {
8425	return s.String()
8426}
8427
8428// Validate inspects the fields of the type to determine if they are valid.
8429func (s *DirectoryConnectSettings) Validate() error {
8430	invalidParams := request.ErrInvalidParams{Context: "DirectoryConnectSettings"}
8431	if s.CustomerDnsIps == nil {
8432		invalidParams.Add(request.NewErrParamRequired("CustomerDnsIps"))
8433	}
8434	if s.CustomerUserName == nil {
8435		invalidParams.Add(request.NewErrParamRequired("CustomerUserName"))
8436	}
8437	if s.CustomerUserName != nil && len(*s.CustomerUserName) < 1 {
8438		invalidParams.Add(request.NewErrParamMinLen("CustomerUserName", 1))
8439	}
8440	if s.SubnetIds == nil {
8441		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
8442	}
8443	if s.VpcId == nil {
8444		invalidParams.Add(request.NewErrParamRequired("VpcId"))
8445	}
8446
8447	if invalidParams.Len() > 0 {
8448		return invalidParams
8449	}
8450	return nil
8451}
8452
8453// SetCustomerDnsIps sets the CustomerDnsIps field's value.
8454func (s *DirectoryConnectSettings) SetCustomerDnsIps(v []*string) *DirectoryConnectSettings {
8455	s.CustomerDnsIps = v
8456	return s
8457}
8458
8459// SetCustomerUserName sets the CustomerUserName field's value.
8460func (s *DirectoryConnectSettings) SetCustomerUserName(v string) *DirectoryConnectSettings {
8461	s.CustomerUserName = &v
8462	return s
8463}
8464
8465// SetSubnetIds sets the SubnetIds field's value.
8466func (s *DirectoryConnectSettings) SetSubnetIds(v []*string) *DirectoryConnectSettings {
8467	s.SubnetIds = v
8468	return s
8469}
8470
8471// SetVpcId sets the VpcId field's value.
8472func (s *DirectoryConnectSettings) SetVpcId(v string) *DirectoryConnectSettings {
8473	s.VpcId = &v
8474	return s
8475}
8476
8477// Contains information about an AD Connector directory.
8478type DirectoryConnectSettingsDescription struct {
8479	_ struct{} `type:"structure"`
8480
8481	// A list of the Availability Zones that the directory is in.
8482	AvailabilityZones []*string `type:"list"`
8483
8484	// The IP addresses of the AD Connector servers.
8485	ConnectIps []*string `type:"list"`
8486
8487	// The user name of the service account in the on-premises directory.
8488	CustomerUserName *string `min:"1" type:"string"`
8489
8490	// The security group identifier for the AD Connector directory.
8491	SecurityGroupId *string `type:"string"`
8492
8493	// A list of subnet identifiers in the VPC that the AD Connector is in.
8494	SubnetIds []*string `type:"list"`
8495
8496	// The identifier of the VPC that the AD Connector is in.
8497	VpcId *string `type:"string"`
8498}
8499
8500// String returns the string representation
8501func (s DirectoryConnectSettingsDescription) String() string {
8502	return awsutil.Prettify(s)
8503}
8504
8505// GoString returns the string representation
8506func (s DirectoryConnectSettingsDescription) GoString() string {
8507	return s.String()
8508}
8509
8510// SetAvailabilityZones sets the AvailabilityZones field's value.
8511func (s *DirectoryConnectSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryConnectSettingsDescription {
8512	s.AvailabilityZones = v
8513	return s
8514}
8515
8516// SetConnectIps sets the ConnectIps field's value.
8517func (s *DirectoryConnectSettingsDescription) SetConnectIps(v []*string) *DirectoryConnectSettingsDescription {
8518	s.ConnectIps = v
8519	return s
8520}
8521
8522// SetCustomerUserName sets the CustomerUserName field's value.
8523func (s *DirectoryConnectSettingsDescription) SetCustomerUserName(v string) *DirectoryConnectSettingsDescription {
8524	s.CustomerUserName = &v
8525	return s
8526}
8527
8528// SetSecurityGroupId sets the SecurityGroupId field's value.
8529func (s *DirectoryConnectSettingsDescription) SetSecurityGroupId(v string) *DirectoryConnectSettingsDescription {
8530	s.SecurityGroupId = &v
8531	return s
8532}
8533
8534// SetSubnetIds sets the SubnetIds field's value.
8535func (s *DirectoryConnectSettingsDescription) SetSubnetIds(v []*string) *DirectoryConnectSettingsDescription {
8536	s.SubnetIds = v
8537	return s
8538}
8539
8540// SetVpcId sets the VpcId field's value.
8541func (s *DirectoryConnectSettingsDescription) SetVpcId(v string) *DirectoryConnectSettingsDescription {
8542	s.VpcId = &v
8543	return s
8544}
8545
8546// Contains information about an AWS Directory Service directory.
8547type DirectoryDescription struct {
8548	_ struct{} `type:"structure"`
8549
8550	// The access URL for the directory, such as http://<alias>.awsapps.com. If
8551	// no alias has been created for the directory, <alias> is the directory identifier,
8552	// such as d-XXXXXXXXXX.
8553	AccessUrl *string `min:"1" type:"string"`
8554
8555	// The alias for the directory. If no alias has been created for the directory,
8556	// the alias is the directory identifier, such as d-XXXXXXXXXX.
8557	Alias *string `min:"1" type:"string"`
8558
8559	// A DirectoryConnectSettingsDescription object that contains additional information
8560	// about an AD Connector directory. This member is only present if the directory
8561	// is an AD Connector directory.
8562	ConnectSettings *DirectoryConnectSettingsDescription `type:"structure"`
8563
8564	// The description for the directory.
8565	Description *string `type:"string"`
8566
8567	// The desired number of domain controllers in the directory if the directory
8568	// is Microsoft AD.
8569	DesiredNumberOfDomainControllers *int64 `min:"2" type:"integer"`
8570
8571	// The directory identifier.
8572	DirectoryId *string `type:"string"`
8573
8574	// The IP addresses of the DNS servers for the directory. For a Simple AD or
8575	// Microsoft AD directory, these are the IP addresses of the Simple AD or Microsoft
8576	// AD directory servers. For an AD Connector directory, these are the IP addresses
8577	// of the DNS servers or domain controllers in the on-premises directory to
8578	// which the AD Connector is connected.
8579	DnsIpAddrs []*string `type:"list"`
8580
8581	// The edition associated with this directory.
8582	Edition *string `type:"string" enum:"DirectoryEdition"`
8583
8584	// Specifies when the directory was created.
8585	LaunchTime *time.Time `type:"timestamp"`
8586
8587	// The fully qualified name of the directory.
8588	Name *string `type:"string"`
8589
8590	// Describes the AWS Managed Microsoft AD directory in the directory owner account.
8591	OwnerDirectoryDescription *OwnerDirectoryDescription `type:"structure"`
8592
8593	// A RadiusSettings object that contains information about the RADIUS server
8594	// configured for this directory.
8595	RadiusSettings *RadiusSettings `type:"structure"`
8596
8597	// The status of the RADIUS MFA server connection.
8598	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
8599
8600	// The method used when sharing a directory to determine whether the directory
8601	// should be shared within your AWS organization (ORGANIZATIONS) or with any
8602	// AWS account by sending a shared directory request (HANDSHAKE).
8603	ShareMethod *string `type:"string" enum:"ShareMethod"`
8604
8605	// A directory share request that is sent by the directory owner to the directory
8606	// consumer. The request includes a typed message to help the directory consumer
8607	// administrator determine whether to approve or reject the share invitation.
8608	ShareNotes *string `type:"string" sensitive:"true"`
8609
8610	// Current directory status of the shared AWS Managed Microsoft AD directory.
8611	ShareStatus *string `type:"string" enum:"ShareStatus"`
8612
8613	// The short name of the directory.
8614	ShortName *string `type:"string"`
8615
8616	// The directory size.
8617	Size *string `type:"string" enum:"DirectorySize"`
8618
8619	// Indicates if single sign-on is enabled for the directory. For more information,
8620	// see EnableSso and DisableSso.
8621	SsoEnabled *bool `type:"boolean"`
8622
8623	// The current stage of the directory.
8624	Stage *string `type:"string" enum:"DirectoryStage"`
8625
8626	// The date and time that the stage was last updated.
8627	StageLastUpdatedDateTime *time.Time `type:"timestamp"`
8628
8629	// Additional information about the directory stage.
8630	StageReason *string `type:"string"`
8631
8632	// The directory size.
8633	Type *string `type:"string" enum:"DirectoryType"`
8634
8635	// A DirectoryVpcSettingsDescription object that contains additional information
8636	// about a directory. This member is only present if the directory is a Simple
8637	// AD or Managed AD directory.
8638	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
8639}
8640
8641// String returns the string representation
8642func (s DirectoryDescription) String() string {
8643	return awsutil.Prettify(s)
8644}
8645
8646// GoString returns the string representation
8647func (s DirectoryDescription) GoString() string {
8648	return s.String()
8649}
8650
8651// SetAccessUrl sets the AccessUrl field's value.
8652func (s *DirectoryDescription) SetAccessUrl(v string) *DirectoryDescription {
8653	s.AccessUrl = &v
8654	return s
8655}
8656
8657// SetAlias sets the Alias field's value.
8658func (s *DirectoryDescription) SetAlias(v string) *DirectoryDescription {
8659	s.Alias = &v
8660	return s
8661}
8662
8663// SetConnectSettings sets the ConnectSettings field's value.
8664func (s *DirectoryDescription) SetConnectSettings(v *DirectoryConnectSettingsDescription) *DirectoryDescription {
8665	s.ConnectSettings = v
8666	return s
8667}
8668
8669// SetDescription sets the Description field's value.
8670func (s *DirectoryDescription) SetDescription(v string) *DirectoryDescription {
8671	s.Description = &v
8672	return s
8673}
8674
8675// SetDesiredNumberOfDomainControllers sets the DesiredNumberOfDomainControllers field's value.
8676func (s *DirectoryDescription) SetDesiredNumberOfDomainControllers(v int64) *DirectoryDescription {
8677	s.DesiredNumberOfDomainControllers = &v
8678	return s
8679}
8680
8681// SetDirectoryId sets the DirectoryId field's value.
8682func (s *DirectoryDescription) SetDirectoryId(v string) *DirectoryDescription {
8683	s.DirectoryId = &v
8684	return s
8685}
8686
8687// SetDnsIpAddrs sets the DnsIpAddrs field's value.
8688func (s *DirectoryDescription) SetDnsIpAddrs(v []*string) *DirectoryDescription {
8689	s.DnsIpAddrs = v
8690	return s
8691}
8692
8693// SetEdition sets the Edition field's value.
8694func (s *DirectoryDescription) SetEdition(v string) *DirectoryDescription {
8695	s.Edition = &v
8696	return s
8697}
8698
8699// SetLaunchTime sets the LaunchTime field's value.
8700func (s *DirectoryDescription) SetLaunchTime(v time.Time) *DirectoryDescription {
8701	s.LaunchTime = &v
8702	return s
8703}
8704
8705// SetName sets the Name field's value.
8706func (s *DirectoryDescription) SetName(v string) *DirectoryDescription {
8707	s.Name = &v
8708	return s
8709}
8710
8711// SetOwnerDirectoryDescription sets the OwnerDirectoryDescription field's value.
8712func (s *DirectoryDescription) SetOwnerDirectoryDescription(v *OwnerDirectoryDescription) *DirectoryDescription {
8713	s.OwnerDirectoryDescription = v
8714	return s
8715}
8716
8717// SetRadiusSettings sets the RadiusSettings field's value.
8718func (s *DirectoryDescription) SetRadiusSettings(v *RadiusSettings) *DirectoryDescription {
8719	s.RadiusSettings = v
8720	return s
8721}
8722
8723// SetRadiusStatus sets the RadiusStatus field's value.
8724func (s *DirectoryDescription) SetRadiusStatus(v string) *DirectoryDescription {
8725	s.RadiusStatus = &v
8726	return s
8727}
8728
8729// SetShareMethod sets the ShareMethod field's value.
8730func (s *DirectoryDescription) SetShareMethod(v string) *DirectoryDescription {
8731	s.ShareMethod = &v
8732	return s
8733}
8734
8735// SetShareNotes sets the ShareNotes field's value.
8736func (s *DirectoryDescription) SetShareNotes(v string) *DirectoryDescription {
8737	s.ShareNotes = &v
8738	return s
8739}
8740
8741// SetShareStatus sets the ShareStatus field's value.
8742func (s *DirectoryDescription) SetShareStatus(v string) *DirectoryDescription {
8743	s.ShareStatus = &v
8744	return s
8745}
8746
8747// SetShortName sets the ShortName field's value.
8748func (s *DirectoryDescription) SetShortName(v string) *DirectoryDescription {
8749	s.ShortName = &v
8750	return s
8751}
8752
8753// SetSize sets the Size field's value.
8754func (s *DirectoryDescription) SetSize(v string) *DirectoryDescription {
8755	s.Size = &v
8756	return s
8757}
8758
8759// SetSsoEnabled sets the SsoEnabled field's value.
8760func (s *DirectoryDescription) SetSsoEnabled(v bool) *DirectoryDescription {
8761	s.SsoEnabled = &v
8762	return s
8763}
8764
8765// SetStage sets the Stage field's value.
8766func (s *DirectoryDescription) SetStage(v string) *DirectoryDescription {
8767	s.Stage = &v
8768	return s
8769}
8770
8771// SetStageLastUpdatedDateTime sets the StageLastUpdatedDateTime field's value.
8772func (s *DirectoryDescription) SetStageLastUpdatedDateTime(v time.Time) *DirectoryDescription {
8773	s.StageLastUpdatedDateTime = &v
8774	return s
8775}
8776
8777// SetStageReason sets the StageReason field's value.
8778func (s *DirectoryDescription) SetStageReason(v string) *DirectoryDescription {
8779	s.StageReason = &v
8780	return s
8781}
8782
8783// SetType sets the Type field's value.
8784func (s *DirectoryDescription) SetType(v string) *DirectoryDescription {
8785	s.Type = &v
8786	return s
8787}
8788
8789// SetVpcSettings sets the VpcSettings field's value.
8790func (s *DirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *DirectoryDescription {
8791	s.VpcSettings = v
8792	return s
8793}
8794
8795// Contains directory limit information for a Region.
8796type DirectoryLimits struct {
8797	_ struct{} `type:"structure"`
8798
8799	// The current number of cloud directories in the Region.
8800	CloudOnlyDirectoriesCurrentCount *int64 `type:"integer"`
8801
8802	// The maximum number of cloud directories allowed in the Region.
8803	CloudOnlyDirectoriesLimit *int64 `type:"integer"`
8804
8805	// Indicates if the cloud directory limit has been reached.
8806	CloudOnlyDirectoriesLimitReached *bool `type:"boolean"`
8807
8808	// The current number of AWS Managed Microsoft AD directories in the region.
8809	CloudOnlyMicrosoftADCurrentCount *int64 `type:"integer"`
8810
8811	// The maximum number of AWS Managed Microsoft AD directories allowed in the
8812	// region.
8813	CloudOnlyMicrosoftADLimit *int64 `type:"integer"`
8814
8815	// Indicates if the AWS Managed Microsoft AD directory limit has been reached.
8816	CloudOnlyMicrosoftADLimitReached *bool `type:"boolean"`
8817
8818	// The current number of connected directories in the Region.
8819	ConnectedDirectoriesCurrentCount *int64 `type:"integer"`
8820
8821	// The maximum number of connected directories allowed in the Region.
8822	ConnectedDirectoriesLimit *int64 `type:"integer"`
8823
8824	// Indicates if the connected directory limit has been reached.
8825	ConnectedDirectoriesLimitReached *bool `type:"boolean"`
8826}
8827
8828// String returns the string representation
8829func (s DirectoryLimits) String() string {
8830	return awsutil.Prettify(s)
8831}
8832
8833// GoString returns the string representation
8834func (s DirectoryLimits) GoString() string {
8835	return s.String()
8836}
8837
8838// SetCloudOnlyDirectoriesCurrentCount sets the CloudOnlyDirectoriesCurrentCount field's value.
8839func (s *DirectoryLimits) SetCloudOnlyDirectoriesCurrentCount(v int64) *DirectoryLimits {
8840	s.CloudOnlyDirectoriesCurrentCount = &v
8841	return s
8842}
8843
8844// SetCloudOnlyDirectoriesLimit sets the CloudOnlyDirectoriesLimit field's value.
8845func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimit(v int64) *DirectoryLimits {
8846	s.CloudOnlyDirectoriesLimit = &v
8847	return s
8848}
8849
8850// SetCloudOnlyDirectoriesLimitReached sets the CloudOnlyDirectoriesLimitReached field's value.
8851func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimitReached(v bool) *DirectoryLimits {
8852	s.CloudOnlyDirectoriesLimitReached = &v
8853	return s
8854}
8855
8856// SetCloudOnlyMicrosoftADCurrentCount sets the CloudOnlyMicrosoftADCurrentCount field's value.
8857func (s *DirectoryLimits) SetCloudOnlyMicrosoftADCurrentCount(v int64) *DirectoryLimits {
8858	s.CloudOnlyMicrosoftADCurrentCount = &v
8859	return s
8860}
8861
8862// SetCloudOnlyMicrosoftADLimit sets the CloudOnlyMicrosoftADLimit field's value.
8863func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimit(v int64) *DirectoryLimits {
8864	s.CloudOnlyMicrosoftADLimit = &v
8865	return s
8866}
8867
8868// SetCloudOnlyMicrosoftADLimitReached sets the CloudOnlyMicrosoftADLimitReached field's value.
8869func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimitReached(v bool) *DirectoryLimits {
8870	s.CloudOnlyMicrosoftADLimitReached = &v
8871	return s
8872}
8873
8874// SetConnectedDirectoriesCurrentCount sets the ConnectedDirectoriesCurrentCount field's value.
8875func (s *DirectoryLimits) SetConnectedDirectoriesCurrentCount(v int64) *DirectoryLimits {
8876	s.ConnectedDirectoriesCurrentCount = &v
8877	return s
8878}
8879
8880// SetConnectedDirectoriesLimit sets the ConnectedDirectoriesLimit field's value.
8881func (s *DirectoryLimits) SetConnectedDirectoriesLimit(v int64) *DirectoryLimits {
8882	s.ConnectedDirectoriesLimit = &v
8883	return s
8884}
8885
8886// SetConnectedDirectoriesLimitReached sets the ConnectedDirectoriesLimitReached field's value.
8887func (s *DirectoryLimits) SetConnectedDirectoriesLimitReached(v bool) *DirectoryLimits {
8888	s.ConnectedDirectoriesLimitReached = &v
8889	return s
8890}
8891
8892// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
8893type DirectoryVpcSettings struct {
8894	_ struct{} `type:"structure"`
8895
8896	// The identifiers of the subnets for the directory servers. The two subnets
8897	// must be in different Availability Zones. AWS Directory Service creates a
8898	// directory server and a DNS server in each of these subnets.
8899	//
8900	// SubnetIds is a required field
8901	SubnetIds []*string `type:"list" required:"true"`
8902
8903	// The identifier of the VPC in which to create the directory.
8904	//
8905	// VpcId is a required field
8906	VpcId *string `type:"string" required:"true"`
8907}
8908
8909// String returns the string representation
8910func (s DirectoryVpcSettings) String() string {
8911	return awsutil.Prettify(s)
8912}
8913
8914// GoString returns the string representation
8915func (s DirectoryVpcSettings) GoString() string {
8916	return s.String()
8917}
8918
8919// Validate inspects the fields of the type to determine if they are valid.
8920func (s *DirectoryVpcSettings) Validate() error {
8921	invalidParams := request.ErrInvalidParams{Context: "DirectoryVpcSettings"}
8922	if s.SubnetIds == nil {
8923		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
8924	}
8925	if s.VpcId == nil {
8926		invalidParams.Add(request.NewErrParamRequired("VpcId"))
8927	}
8928
8929	if invalidParams.Len() > 0 {
8930		return invalidParams
8931	}
8932	return nil
8933}
8934
8935// SetSubnetIds sets the SubnetIds field's value.
8936func (s *DirectoryVpcSettings) SetSubnetIds(v []*string) *DirectoryVpcSettings {
8937	s.SubnetIds = v
8938	return s
8939}
8940
8941// SetVpcId sets the VpcId field's value.
8942func (s *DirectoryVpcSettings) SetVpcId(v string) *DirectoryVpcSettings {
8943	s.VpcId = &v
8944	return s
8945}
8946
8947// Contains information about the directory.
8948type DirectoryVpcSettingsDescription struct {
8949	_ struct{} `type:"structure"`
8950
8951	// The list of Availability Zones that the directory is in.
8952	AvailabilityZones []*string `type:"list"`
8953
8954	// The domain controller security group identifier for the directory.
8955	SecurityGroupId *string `type:"string"`
8956
8957	// The identifiers of the subnets for the directory servers.
8958	SubnetIds []*string `type:"list"`
8959
8960	// The identifier of the VPC that the directory is in.
8961	VpcId *string `type:"string"`
8962}
8963
8964// String returns the string representation
8965func (s DirectoryVpcSettingsDescription) String() string {
8966	return awsutil.Prettify(s)
8967}
8968
8969// GoString returns the string representation
8970func (s DirectoryVpcSettingsDescription) GoString() string {
8971	return s.String()
8972}
8973
8974// SetAvailabilityZones sets the AvailabilityZones field's value.
8975func (s *DirectoryVpcSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryVpcSettingsDescription {
8976	s.AvailabilityZones = v
8977	return s
8978}
8979
8980// SetSecurityGroupId sets the SecurityGroupId field's value.
8981func (s *DirectoryVpcSettingsDescription) SetSecurityGroupId(v string) *DirectoryVpcSettingsDescription {
8982	s.SecurityGroupId = &v
8983	return s
8984}
8985
8986// SetSubnetIds sets the SubnetIds field's value.
8987func (s *DirectoryVpcSettingsDescription) SetSubnetIds(v []*string) *DirectoryVpcSettingsDescription {
8988	s.SubnetIds = v
8989	return s
8990}
8991
8992// SetVpcId sets the VpcId field's value.
8993func (s *DirectoryVpcSettingsDescription) SetVpcId(v string) *DirectoryVpcSettingsDescription {
8994	s.VpcId = &v
8995	return s
8996}
8997
8998type DisableLDAPSInput struct {
8999	_ struct{} `type:"structure"`
9000
9001	// The identifier of the directory.
9002	//
9003	// DirectoryId is a required field
9004	DirectoryId *string `type:"string" required:"true"`
9005
9006	// The type of LDAP security that the customer wants to enable. The security
9007	// can be either server or client, but currently only the default Client is
9008	// supported.
9009	Type *string `type:"string" enum:"LDAPSType"`
9010}
9011
9012// String returns the string representation
9013func (s DisableLDAPSInput) String() string {
9014	return awsutil.Prettify(s)
9015}
9016
9017// GoString returns the string representation
9018func (s DisableLDAPSInput) GoString() string {
9019	return s.String()
9020}
9021
9022// Validate inspects the fields of the type to determine if they are valid.
9023func (s *DisableLDAPSInput) Validate() error {
9024	invalidParams := request.ErrInvalidParams{Context: "DisableLDAPSInput"}
9025	if s.DirectoryId == nil {
9026		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9027	}
9028
9029	if invalidParams.Len() > 0 {
9030		return invalidParams
9031	}
9032	return nil
9033}
9034
9035// SetDirectoryId sets the DirectoryId field's value.
9036func (s *DisableLDAPSInput) SetDirectoryId(v string) *DisableLDAPSInput {
9037	s.DirectoryId = &v
9038	return s
9039}
9040
9041// SetType sets the Type field's value.
9042func (s *DisableLDAPSInput) SetType(v string) *DisableLDAPSInput {
9043	s.Type = &v
9044	return s
9045}
9046
9047type DisableLDAPSOutput struct {
9048	_ struct{} `type:"structure"`
9049}
9050
9051// String returns the string representation
9052func (s DisableLDAPSOutput) String() string {
9053	return awsutil.Prettify(s)
9054}
9055
9056// GoString returns the string representation
9057func (s DisableLDAPSOutput) GoString() string {
9058	return s.String()
9059}
9060
9061// Contains the inputs for the DisableRadius operation.
9062type DisableRadiusInput struct {
9063	_ struct{} `type:"structure"`
9064
9065	// The identifier of the directory for which to disable MFA.
9066	//
9067	// DirectoryId is a required field
9068	DirectoryId *string `type:"string" required:"true"`
9069}
9070
9071// String returns the string representation
9072func (s DisableRadiusInput) String() string {
9073	return awsutil.Prettify(s)
9074}
9075
9076// GoString returns the string representation
9077func (s DisableRadiusInput) GoString() string {
9078	return s.String()
9079}
9080
9081// Validate inspects the fields of the type to determine if they are valid.
9082func (s *DisableRadiusInput) Validate() error {
9083	invalidParams := request.ErrInvalidParams{Context: "DisableRadiusInput"}
9084	if s.DirectoryId == nil {
9085		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9086	}
9087
9088	if invalidParams.Len() > 0 {
9089		return invalidParams
9090	}
9091	return nil
9092}
9093
9094// SetDirectoryId sets the DirectoryId field's value.
9095func (s *DisableRadiusInput) SetDirectoryId(v string) *DisableRadiusInput {
9096	s.DirectoryId = &v
9097	return s
9098}
9099
9100// Contains the results of the DisableRadius operation.
9101type DisableRadiusOutput struct {
9102	_ struct{} `type:"structure"`
9103}
9104
9105// String returns the string representation
9106func (s DisableRadiusOutput) String() string {
9107	return awsutil.Prettify(s)
9108}
9109
9110// GoString returns the string representation
9111func (s DisableRadiusOutput) GoString() string {
9112	return s.String()
9113}
9114
9115// Contains the inputs for the DisableSso operation.
9116type DisableSsoInput struct {
9117	_ struct{} `type:"structure"`
9118
9119	// The identifier of the directory for which to disable single-sign on.
9120	//
9121	// DirectoryId is a required field
9122	DirectoryId *string `type:"string" required:"true"`
9123
9124	// The password of an alternate account to use to disable single-sign on. This
9125	// is only used for AD Connector directories. For more information, see the
9126	// UserName parameter.
9127	Password *string `min:"1" type:"string" sensitive:"true"`
9128
9129	// The username of an alternate account to use to disable single-sign on. This
9130	// is only used for AD Connector directories. This account must have privileges
9131	// to remove a service principal name.
9132	//
9133	// If the AD Connector service account does not have privileges to remove a
9134	// service principal name, you can specify an alternate account with the UserName
9135	// and Password parameters. These credentials are only used to disable single
9136	// sign-on and are not stored by the service. The AD Connector service account
9137	// is not changed.
9138	UserName *string `min:"1" type:"string"`
9139}
9140
9141// String returns the string representation
9142func (s DisableSsoInput) String() string {
9143	return awsutil.Prettify(s)
9144}
9145
9146// GoString returns the string representation
9147func (s DisableSsoInput) GoString() string {
9148	return s.String()
9149}
9150
9151// Validate inspects the fields of the type to determine if they are valid.
9152func (s *DisableSsoInput) Validate() error {
9153	invalidParams := request.ErrInvalidParams{Context: "DisableSsoInput"}
9154	if s.DirectoryId == nil {
9155		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9156	}
9157	if s.Password != nil && len(*s.Password) < 1 {
9158		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
9159	}
9160	if s.UserName != nil && len(*s.UserName) < 1 {
9161		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
9162	}
9163
9164	if invalidParams.Len() > 0 {
9165		return invalidParams
9166	}
9167	return nil
9168}
9169
9170// SetDirectoryId sets the DirectoryId field's value.
9171func (s *DisableSsoInput) SetDirectoryId(v string) *DisableSsoInput {
9172	s.DirectoryId = &v
9173	return s
9174}
9175
9176// SetPassword sets the Password field's value.
9177func (s *DisableSsoInput) SetPassword(v string) *DisableSsoInput {
9178	s.Password = &v
9179	return s
9180}
9181
9182// SetUserName sets the UserName field's value.
9183func (s *DisableSsoInput) SetUserName(v string) *DisableSsoInput {
9184	s.UserName = &v
9185	return s
9186}
9187
9188// Contains the results of the DisableSso operation.
9189type DisableSsoOutput struct {
9190	_ struct{} `type:"structure"`
9191}
9192
9193// String returns the string representation
9194func (s DisableSsoOutput) String() string {
9195	return awsutil.Prettify(s)
9196}
9197
9198// GoString returns the string representation
9199func (s DisableSsoOutput) GoString() string {
9200	return s.String()
9201}
9202
9203// Contains information about the domain controllers for a specified directory.
9204type DomainController struct {
9205	_ struct{} `type:"structure"`
9206
9207	// The Availability Zone where the domain controller is located.
9208	AvailabilityZone *string `type:"string"`
9209
9210	// Identifier of the directory where the domain controller resides.
9211	DirectoryId *string `type:"string"`
9212
9213	// The IP address of the domain controller.
9214	DnsIpAddr *string `type:"string"`
9215
9216	// Identifies a specific domain controller in the directory.
9217	DomainControllerId *string `type:"string"`
9218
9219	// Specifies when the domain controller was created.
9220	LaunchTime *time.Time `type:"timestamp"`
9221
9222	// The status of the domain controller.
9223	Status *string `type:"string" enum:"DomainControllerStatus"`
9224
9225	// The date and time that the status was last updated.
9226	StatusLastUpdatedDateTime *time.Time `type:"timestamp"`
9227
9228	// A description of the domain controller state.
9229	StatusReason *string `type:"string"`
9230
9231	// Identifier of the subnet in the VPC that contains the domain controller.
9232	SubnetId *string `type:"string"`
9233
9234	// The identifier of the VPC that contains the domain controller.
9235	VpcId *string `type:"string"`
9236}
9237
9238// String returns the string representation
9239func (s DomainController) String() string {
9240	return awsutil.Prettify(s)
9241}
9242
9243// GoString returns the string representation
9244func (s DomainController) GoString() string {
9245	return s.String()
9246}
9247
9248// SetAvailabilityZone sets the AvailabilityZone field's value.
9249func (s *DomainController) SetAvailabilityZone(v string) *DomainController {
9250	s.AvailabilityZone = &v
9251	return s
9252}
9253
9254// SetDirectoryId sets the DirectoryId field's value.
9255func (s *DomainController) SetDirectoryId(v string) *DomainController {
9256	s.DirectoryId = &v
9257	return s
9258}
9259
9260// SetDnsIpAddr sets the DnsIpAddr field's value.
9261func (s *DomainController) SetDnsIpAddr(v string) *DomainController {
9262	s.DnsIpAddr = &v
9263	return s
9264}
9265
9266// SetDomainControllerId sets the DomainControllerId field's value.
9267func (s *DomainController) SetDomainControllerId(v string) *DomainController {
9268	s.DomainControllerId = &v
9269	return s
9270}
9271
9272// SetLaunchTime sets the LaunchTime field's value.
9273func (s *DomainController) SetLaunchTime(v time.Time) *DomainController {
9274	s.LaunchTime = &v
9275	return s
9276}
9277
9278// SetStatus sets the Status field's value.
9279func (s *DomainController) SetStatus(v string) *DomainController {
9280	s.Status = &v
9281	return s
9282}
9283
9284// SetStatusLastUpdatedDateTime sets the StatusLastUpdatedDateTime field's value.
9285func (s *DomainController) SetStatusLastUpdatedDateTime(v time.Time) *DomainController {
9286	s.StatusLastUpdatedDateTime = &v
9287	return s
9288}
9289
9290// SetStatusReason sets the StatusReason field's value.
9291func (s *DomainController) SetStatusReason(v string) *DomainController {
9292	s.StatusReason = &v
9293	return s
9294}
9295
9296// SetSubnetId sets the SubnetId field's value.
9297func (s *DomainController) SetSubnetId(v string) *DomainController {
9298	s.SubnetId = &v
9299	return s
9300}
9301
9302// SetVpcId sets the VpcId field's value.
9303func (s *DomainController) SetVpcId(v string) *DomainController {
9304	s.VpcId = &v
9305	return s
9306}
9307
9308type EnableLDAPSInput struct {
9309	_ struct{} `type:"structure"`
9310
9311	// The identifier of the directory.
9312	//
9313	// DirectoryId is a required field
9314	DirectoryId *string `type:"string" required:"true"`
9315
9316	// The type of LDAP security the customer wants to enable. The security can
9317	// be either server or client, but currently only the default Client is supported.
9318	Type *string `type:"string" enum:"LDAPSType"`
9319}
9320
9321// String returns the string representation
9322func (s EnableLDAPSInput) String() string {
9323	return awsutil.Prettify(s)
9324}
9325
9326// GoString returns the string representation
9327func (s EnableLDAPSInput) GoString() string {
9328	return s.String()
9329}
9330
9331// Validate inspects the fields of the type to determine if they are valid.
9332func (s *EnableLDAPSInput) Validate() error {
9333	invalidParams := request.ErrInvalidParams{Context: "EnableLDAPSInput"}
9334	if s.DirectoryId == nil {
9335		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9336	}
9337
9338	if invalidParams.Len() > 0 {
9339		return invalidParams
9340	}
9341	return nil
9342}
9343
9344// SetDirectoryId sets the DirectoryId field's value.
9345func (s *EnableLDAPSInput) SetDirectoryId(v string) *EnableLDAPSInput {
9346	s.DirectoryId = &v
9347	return s
9348}
9349
9350// SetType sets the Type field's value.
9351func (s *EnableLDAPSInput) SetType(v string) *EnableLDAPSInput {
9352	s.Type = &v
9353	return s
9354}
9355
9356type EnableLDAPSOutput struct {
9357	_ struct{} `type:"structure"`
9358}
9359
9360// String returns the string representation
9361func (s EnableLDAPSOutput) String() string {
9362	return awsutil.Prettify(s)
9363}
9364
9365// GoString returns the string representation
9366func (s EnableLDAPSOutput) GoString() string {
9367	return s.String()
9368}
9369
9370// Contains the inputs for the EnableRadius operation.
9371type EnableRadiusInput struct {
9372	_ struct{} `type:"structure"`
9373
9374	// The identifier of the directory for which to enable MFA.
9375	//
9376	// DirectoryId is a required field
9377	DirectoryId *string `type:"string" required:"true"`
9378
9379	// A RadiusSettings object that contains information about the RADIUS server.
9380	//
9381	// RadiusSettings is a required field
9382	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
9383}
9384
9385// String returns the string representation
9386func (s EnableRadiusInput) String() string {
9387	return awsutil.Prettify(s)
9388}
9389
9390// GoString returns the string representation
9391func (s EnableRadiusInput) GoString() string {
9392	return s.String()
9393}
9394
9395// Validate inspects the fields of the type to determine if they are valid.
9396func (s *EnableRadiusInput) Validate() error {
9397	invalidParams := request.ErrInvalidParams{Context: "EnableRadiusInput"}
9398	if s.DirectoryId == nil {
9399		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9400	}
9401	if s.RadiusSettings == nil {
9402		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
9403	}
9404	if s.RadiusSettings != nil {
9405		if err := s.RadiusSettings.Validate(); err != nil {
9406			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
9407		}
9408	}
9409
9410	if invalidParams.Len() > 0 {
9411		return invalidParams
9412	}
9413	return nil
9414}
9415
9416// SetDirectoryId sets the DirectoryId field's value.
9417func (s *EnableRadiusInput) SetDirectoryId(v string) *EnableRadiusInput {
9418	s.DirectoryId = &v
9419	return s
9420}
9421
9422// SetRadiusSettings sets the RadiusSettings field's value.
9423func (s *EnableRadiusInput) SetRadiusSettings(v *RadiusSettings) *EnableRadiusInput {
9424	s.RadiusSettings = v
9425	return s
9426}
9427
9428// Contains the results of the EnableRadius operation.
9429type EnableRadiusOutput struct {
9430	_ struct{} `type:"structure"`
9431}
9432
9433// String returns the string representation
9434func (s EnableRadiusOutput) String() string {
9435	return awsutil.Prettify(s)
9436}
9437
9438// GoString returns the string representation
9439func (s EnableRadiusOutput) GoString() string {
9440	return s.String()
9441}
9442
9443// Contains the inputs for the EnableSso operation.
9444type EnableSsoInput struct {
9445	_ struct{} `type:"structure"`
9446
9447	// The identifier of the directory for which to enable single-sign on.
9448	//
9449	// DirectoryId is a required field
9450	DirectoryId *string `type:"string" required:"true"`
9451
9452	// The password of an alternate account to use to enable single-sign on. This
9453	// is only used for AD Connector directories. For more information, see the
9454	// UserName parameter.
9455	Password *string `min:"1" type:"string" sensitive:"true"`
9456
9457	// The username of an alternate account to use to enable single-sign on. This
9458	// is only used for AD Connector directories. This account must have privileges
9459	// to add a service principal name.
9460	//
9461	// If the AD Connector service account does not have privileges to add a service
9462	// principal name, you can specify an alternate account with the UserName and
9463	// Password parameters. These credentials are only used to enable single sign-on
9464	// and are not stored by the service. The AD Connector service account is not
9465	// changed.
9466	UserName *string `min:"1" type:"string"`
9467}
9468
9469// String returns the string representation
9470func (s EnableSsoInput) String() string {
9471	return awsutil.Prettify(s)
9472}
9473
9474// GoString returns the string representation
9475func (s EnableSsoInput) GoString() string {
9476	return s.String()
9477}
9478
9479// Validate inspects the fields of the type to determine if they are valid.
9480func (s *EnableSsoInput) Validate() error {
9481	invalidParams := request.ErrInvalidParams{Context: "EnableSsoInput"}
9482	if s.DirectoryId == nil {
9483		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9484	}
9485	if s.Password != nil && len(*s.Password) < 1 {
9486		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
9487	}
9488	if s.UserName != nil && len(*s.UserName) < 1 {
9489		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
9490	}
9491
9492	if invalidParams.Len() > 0 {
9493		return invalidParams
9494	}
9495	return nil
9496}
9497
9498// SetDirectoryId sets the DirectoryId field's value.
9499func (s *EnableSsoInput) SetDirectoryId(v string) *EnableSsoInput {
9500	s.DirectoryId = &v
9501	return s
9502}
9503
9504// SetPassword sets the Password field's value.
9505func (s *EnableSsoInput) SetPassword(v string) *EnableSsoInput {
9506	s.Password = &v
9507	return s
9508}
9509
9510// SetUserName sets the UserName field's value.
9511func (s *EnableSsoInput) SetUserName(v string) *EnableSsoInput {
9512	s.UserName = &v
9513	return s
9514}
9515
9516// Contains the results of the EnableSso operation.
9517type EnableSsoOutput struct {
9518	_ struct{} `type:"structure"`
9519}
9520
9521// String returns the string representation
9522func (s EnableSsoOutput) String() string {
9523	return awsutil.Prettify(s)
9524}
9525
9526// GoString returns the string representation
9527func (s EnableSsoOutput) GoString() string {
9528	return s.String()
9529}
9530
9531// Information about SNS topic and AWS Directory Service directory associations.
9532type EventTopic struct {
9533	_ struct{} `type:"structure"`
9534
9535	// The date and time of when you associated your directory with the SNS topic.
9536	CreatedDateTime *time.Time `type:"timestamp"`
9537
9538	// The Directory ID of an AWS Directory Service directory that will publish
9539	// status messages to an SNS topic.
9540	DirectoryId *string `type:"string"`
9541
9542	// The topic registration status.
9543	Status *string `type:"string" enum:"TopicStatus"`
9544
9545	// The SNS topic ARN (Amazon Resource Name).
9546	TopicArn *string `type:"string"`
9547
9548	// The name of an AWS SNS topic the receives status messages from the directory.
9549	TopicName *string `min:"1" type:"string"`
9550}
9551
9552// String returns the string representation
9553func (s EventTopic) String() string {
9554	return awsutil.Prettify(s)
9555}
9556
9557// GoString returns the string representation
9558func (s EventTopic) GoString() string {
9559	return s.String()
9560}
9561
9562// SetCreatedDateTime sets the CreatedDateTime field's value.
9563func (s *EventTopic) SetCreatedDateTime(v time.Time) *EventTopic {
9564	s.CreatedDateTime = &v
9565	return s
9566}
9567
9568// SetDirectoryId sets the DirectoryId field's value.
9569func (s *EventTopic) SetDirectoryId(v string) *EventTopic {
9570	s.DirectoryId = &v
9571	return s
9572}
9573
9574// SetStatus sets the Status field's value.
9575func (s *EventTopic) SetStatus(v string) *EventTopic {
9576	s.Status = &v
9577	return s
9578}
9579
9580// SetTopicArn sets the TopicArn field's value.
9581func (s *EventTopic) SetTopicArn(v string) *EventTopic {
9582	s.TopicArn = &v
9583	return s
9584}
9585
9586// SetTopicName sets the TopicName field's value.
9587func (s *EventTopic) SetTopicName(v string) *EventTopic {
9588	s.TopicName = &v
9589	return s
9590}
9591
9592// Contains the inputs for the GetDirectoryLimits operation.
9593type GetDirectoryLimitsInput struct {
9594	_ struct{} `type:"structure"`
9595}
9596
9597// String returns the string representation
9598func (s GetDirectoryLimitsInput) String() string {
9599	return awsutil.Prettify(s)
9600}
9601
9602// GoString returns the string representation
9603func (s GetDirectoryLimitsInput) GoString() string {
9604	return s.String()
9605}
9606
9607// Contains the results of the GetDirectoryLimits operation.
9608type GetDirectoryLimitsOutput struct {
9609	_ struct{} `type:"structure"`
9610
9611	// A DirectoryLimits object that contains the directory limits for the current
9612	// rRegion.
9613	DirectoryLimits *DirectoryLimits `type:"structure"`
9614}
9615
9616// String returns the string representation
9617func (s GetDirectoryLimitsOutput) String() string {
9618	return awsutil.Prettify(s)
9619}
9620
9621// GoString returns the string representation
9622func (s GetDirectoryLimitsOutput) GoString() string {
9623	return s.String()
9624}
9625
9626// SetDirectoryLimits sets the DirectoryLimits field's value.
9627func (s *GetDirectoryLimitsOutput) SetDirectoryLimits(v *DirectoryLimits) *GetDirectoryLimitsOutput {
9628	s.DirectoryLimits = v
9629	return s
9630}
9631
9632// Contains the inputs for the GetSnapshotLimits operation.
9633type GetSnapshotLimitsInput struct {
9634	_ struct{} `type:"structure"`
9635
9636	// Contains the identifier of the directory to obtain the limits for.
9637	//
9638	// DirectoryId is a required field
9639	DirectoryId *string `type:"string" required:"true"`
9640}
9641
9642// String returns the string representation
9643func (s GetSnapshotLimitsInput) String() string {
9644	return awsutil.Prettify(s)
9645}
9646
9647// GoString returns the string representation
9648func (s GetSnapshotLimitsInput) GoString() string {
9649	return s.String()
9650}
9651
9652// Validate inspects the fields of the type to determine if they are valid.
9653func (s *GetSnapshotLimitsInput) Validate() error {
9654	invalidParams := request.ErrInvalidParams{Context: "GetSnapshotLimitsInput"}
9655	if s.DirectoryId == nil {
9656		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9657	}
9658
9659	if invalidParams.Len() > 0 {
9660		return invalidParams
9661	}
9662	return nil
9663}
9664
9665// SetDirectoryId sets the DirectoryId field's value.
9666func (s *GetSnapshotLimitsInput) SetDirectoryId(v string) *GetSnapshotLimitsInput {
9667	s.DirectoryId = &v
9668	return s
9669}
9670
9671// Contains the results of the GetSnapshotLimits operation.
9672type GetSnapshotLimitsOutput struct {
9673	_ struct{} `type:"structure"`
9674
9675	// A SnapshotLimits object that contains the manual snapshot limits for the
9676	// specified directory.
9677	SnapshotLimits *SnapshotLimits `type:"structure"`
9678}
9679
9680// String returns the string representation
9681func (s GetSnapshotLimitsOutput) String() string {
9682	return awsutil.Prettify(s)
9683}
9684
9685// GoString returns the string representation
9686func (s GetSnapshotLimitsOutput) GoString() string {
9687	return s.String()
9688}
9689
9690// SetSnapshotLimits sets the SnapshotLimits field's value.
9691func (s *GetSnapshotLimitsOutput) SetSnapshotLimits(v *SnapshotLimits) *GetSnapshotLimitsOutput {
9692	s.SnapshotLimits = v
9693	return s
9694}
9695
9696// IP address block. This is often the address block of the DNS server used
9697// for your on-premises domain.
9698type IpRoute struct {
9699	_ struct{} `type:"structure"`
9700
9701	// IP address block using CIDR format, for example 10.0.0.0/24. This is often
9702	// the address block of the DNS server used for your on-premises domain. For
9703	// a single IP address use a CIDR address block with /32. For example 10.0.0.0/32.
9704	CidrIp *string `type:"string"`
9705
9706	// Description of the address block.
9707	Description *string `type:"string"`
9708}
9709
9710// String returns the string representation
9711func (s IpRoute) String() string {
9712	return awsutil.Prettify(s)
9713}
9714
9715// GoString returns the string representation
9716func (s IpRoute) GoString() string {
9717	return s.String()
9718}
9719
9720// SetCidrIp sets the CidrIp field's value.
9721func (s *IpRoute) SetCidrIp(v string) *IpRoute {
9722	s.CidrIp = &v
9723	return s
9724}
9725
9726// SetDescription sets the Description field's value.
9727func (s *IpRoute) SetDescription(v string) *IpRoute {
9728	s.Description = &v
9729	return s
9730}
9731
9732// Information about one or more IP address blocks.
9733type IpRouteInfo struct {
9734	_ struct{} `type:"structure"`
9735
9736	// The date and time the address block was added to the directory.
9737	AddedDateTime *time.Time `type:"timestamp"`
9738
9739	// IP address block in the IpRoute.
9740	CidrIp *string `type:"string"`
9741
9742	// Description of the IpRouteInfo.
9743	Description *string `type:"string"`
9744
9745	// Identifier (ID) of the directory associated with the IP addresses.
9746	DirectoryId *string `type:"string"`
9747
9748	// The status of the IP address block.
9749	IpRouteStatusMsg *string `type:"string" enum:"IpRouteStatusMsg"`
9750
9751	// The reason for the IpRouteStatusMsg.
9752	IpRouteStatusReason *string `type:"string"`
9753}
9754
9755// String returns the string representation
9756func (s IpRouteInfo) String() string {
9757	return awsutil.Prettify(s)
9758}
9759
9760// GoString returns the string representation
9761func (s IpRouteInfo) GoString() string {
9762	return s.String()
9763}
9764
9765// SetAddedDateTime sets the AddedDateTime field's value.
9766func (s *IpRouteInfo) SetAddedDateTime(v time.Time) *IpRouteInfo {
9767	s.AddedDateTime = &v
9768	return s
9769}
9770
9771// SetCidrIp sets the CidrIp field's value.
9772func (s *IpRouteInfo) SetCidrIp(v string) *IpRouteInfo {
9773	s.CidrIp = &v
9774	return s
9775}
9776
9777// SetDescription sets the Description field's value.
9778func (s *IpRouteInfo) SetDescription(v string) *IpRouteInfo {
9779	s.Description = &v
9780	return s
9781}
9782
9783// SetDirectoryId sets the DirectoryId field's value.
9784func (s *IpRouteInfo) SetDirectoryId(v string) *IpRouteInfo {
9785	s.DirectoryId = &v
9786	return s
9787}
9788
9789// SetIpRouteStatusMsg sets the IpRouteStatusMsg field's value.
9790func (s *IpRouteInfo) SetIpRouteStatusMsg(v string) *IpRouteInfo {
9791	s.IpRouteStatusMsg = &v
9792	return s
9793}
9794
9795// SetIpRouteStatusReason sets the IpRouteStatusReason field's value.
9796func (s *IpRouteInfo) SetIpRouteStatusReason(v string) *IpRouteInfo {
9797	s.IpRouteStatusReason = &v
9798	return s
9799}
9800
9801// Contains general information about the LDAPS settings.
9802type LDAPSSettingInfo struct {
9803	_ struct{} `type:"structure"`
9804
9805	// The state of the LDAPS settings.
9806	LDAPSStatus *string `type:"string" enum:"LDAPSStatus"`
9807
9808	// Describes a state change for LDAPS.
9809	LDAPSStatusReason *string `type:"string"`
9810
9811	// The date and time when the LDAPS settings were last updated.
9812	LastUpdatedDateTime *time.Time `type:"timestamp"`
9813}
9814
9815// String returns the string representation
9816func (s LDAPSSettingInfo) String() string {
9817	return awsutil.Prettify(s)
9818}
9819
9820// GoString returns the string representation
9821func (s LDAPSSettingInfo) GoString() string {
9822	return s.String()
9823}
9824
9825// SetLDAPSStatus sets the LDAPSStatus field's value.
9826func (s *LDAPSSettingInfo) SetLDAPSStatus(v string) *LDAPSSettingInfo {
9827	s.LDAPSStatus = &v
9828	return s
9829}
9830
9831// SetLDAPSStatusReason sets the LDAPSStatusReason field's value.
9832func (s *LDAPSSettingInfo) SetLDAPSStatusReason(v string) *LDAPSSettingInfo {
9833	s.LDAPSStatusReason = &v
9834	return s
9835}
9836
9837// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
9838func (s *LDAPSSettingInfo) SetLastUpdatedDateTime(v time.Time) *LDAPSSettingInfo {
9839	s.LastUpdatedDateTime = &v
9840	return s
9841}
9842
9843type ListCertificatesInput struct {
9844	_ struct{} `type:"structure"`
9845
9846	// The identifier of the directory.
9847	//
9848	// DirectoryId is a required field
9849	DirectoryId *string `type:"string" required:"true"`
9850
9851	// The number of items that should show up on one page
9852	Limit *int64 `min:"1" type:"integer"`
9853
9854	// A token for requesting another page of certificates if the NextToken response
9855	// element indicates that more certificates are available. Use the value of
9856	// the returned NextToken element in your request until the token comes back
9857	// as null. Pass null if this is the first call.
9858	NextToken *string `type:"string"`
9859}
9860
9861// String returns the string representation
9862func (s ListCertificatesInput) String() string {
9863	return awsutil.Prettify(s)
9864}
9865
9866// GoString returns the string representation
9867func (s ListCertificatesInput) GoString() string {
9868	return s.String()
9869}
9870
9871// Validate inspects the fields of the type to determine if they are valid.
9872func (s *ListCertificatesInput) Validate() error {
9873	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
9874	if s.DirectoryId == nil {
9875		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9876	}
9877	if s.Limit != nil && *s.Limit < 1 {
9878		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
9879	}
9880
9881	if invalidParams.Len() > 0 {
9882		return invalidParams
9883	}
9884	return nil
9885}
9886
9887// SetDirectoryId sets the DirectoryId field's value.
9888func (s *ListCertificatesInput) SetDirectoryId(v string) *ListCertificatesInput {
9889	s.DirectoryId = &v
9890	return s
9891}
9892
9893// SetLimit sets the Limit field's value.
9894func (s *ListCertificatesInput) SetLimit(v int64) *ListCertificatesInput {
9895	s.Limit = &v
9896	return s
9897}
9898
9899// SetNextToken sets the NextToken field's value.
9900func (s *ListCertificatesInput) SetNextToken(v string) *ListCertificatesInput {
9901	s.NextToken = &v
9902	return s
9903}
9904
9905type ListCertificatesOutput struct {
9906	_ struct{} `type:"structure"`
9907
9908	// A list of certificates with basic details including certificate ID, certificate
9909	// common name, certificate state.
9910	CertificatesInfo []*CertificateInfo `type:"list"`
9911
9912	// Indicates whether another page of certificates is available when the number
9913	// of available certificates exceeds the page limit.
9914	NextToken *string `type:"string"`
9915}
9916
9917// String returns the string representation
9918func (s ListCertificatesOutput) String() string {
9919	return awsutil.Prettify(s)
9920}
9921
9922// GoString returns the string representation
9923func (s ListCertificatesOutput) GoString() string {
9924	return s.String()
9925}
9926
9927// SetCertificatesInfo sets the CertificatesInfo field's value.
9928func (s *ListCertificatesOutput) SetCertificatesInfo(v []*CertificateInfo) *ListCertificatesOutput {
9929	s.CertificatesInfo = v
9930	return s
9931}
9932
9933// SetNextToken sets the NextToken field's value.
9934func (s *ListCertificatesOutput) SetNextToken(v string) *ListCertificatesOutput {
9935	s.NextToken = &v
9936	return s
9937}
9938
9939type ListIpRoutesInput struct {
9940	_ struct{} `type:"structure"`
9941
9942	// Identifier (ID) of the directory for which you want to retrieve the IP addresses.
9943	//
9944	// DirectoryId is a required field
9945	DirectoryId *string `type:"string" required:"true"`
9946
9947	// Maximum number of items to return. If this value is zero, the maximum number
9948	// of items is specified by the limitations of the operation.
9949	Limit *int64 `type:"integer"`
9950
9951	// The ListIpRoutes.NextToken value from a previous call to ListIpRoutes. Pass
9952	// null if this is the first call.
9953	NextToken *string `type:"string"`
9954}
9955
9956// String returns the string representation
9957func (s ListIpRoutesInput) String() string {
9958	return awsutil.Prettify(s)
9959}
9960
9961// GoString returns the string representation
9962func (s ListIpRoutesInput) GoString() string {
9963	return s.String()
9964}
9965
9966// Validate inspects the fields of the type to determine if they are valid.
9967func (s *ListIpRoutesInput) Validate() error {
9968	invalidParams := request.ErrInvalidParams{Context: "ListIpRoutesInput"}
9969	if s.DirectoryId == nil {
9970		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
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 *ListIpRoutesInput) SetDirectoryId(v string) *ListIpRoutesInput {
9981	s.DirectoryId = &v
9982	return s
9983}
9984
9985// SetLimit sets the Limit field's value.
9986func (s *ListIpRoutesInput) SetLimit(v int64) *ListIpRoutesInput {
9987	s.Limit = &v
9988	return s
9989}
9990
9991// SetNextToken sets the NextToken field's value.
9992func (s *ListIpRoutesInput) SetNextToken(v string) *ListIpRoutesInput {
9993	s.NextToken = &v
9994	return s
9995}
9996
9997type ListIpRoutesOutput struct {
9998	_ struct{} `type:"structure"`
9999
10000	// A list of IpRoutes.
10001	IpRoutesInfo []*IpRouteInfo `type:"list"`
10002
10003	// If not null, more results are available. Pass this value for the NextToken
10004	// parameter in a subsequent call to ListIpRoutes to retrieve the next set of
10005	// items.
10006	NextToken *string `type:"string"`
10007}
10008
10009// String returns the string representation
10010func (s ListIpRoutesOutput) String() string {
10011	return awsutil.Prettify(s)
10012}
10013
10014// GoString returns the string representation
10015func (s ListIpRoutesOutput) GoString() string {
10016	return s.String()
10017}
10018
10019// SetIpRoutesInfo sets the IpRoutesInfo field's value.
10020func (s *ListIpRoutesOutput) SetIpRoutesInfo(v []*IpRouteInfo) *ListIpRoutesOutput {
10021	s.IpRoutesInfo = v
10022	return s
10023}
10024
10025// SetNextToken sets the NextToken field's value.
10026func (s *ListIpRoutesOutput) SetNextToken(v string) *ListIpRoutesOutput {
10027	s.NextToken = &v
10028	return s
10029}
10030
10031type ListLogSubscriptionsInput struct {
10032	_ struct{} `type:"structure"`
10033
10034	// If a DirectoryID is provided, lists only the log subscription associated
10035	// with that directory. If no DirectoryId is provided, lists all log subscriptions
10036	// associated with your AWS account. If there are no log subscriptions for the
10037	// AWS account or the directory, an empty list will be returned.
10038	DirectoryId *string `type:"string"`
10039
10040	// The maximum number of items returned.
10041	Limit *int64 `type:"integer"`
10042
10043	// The token for the next set of items to return.
10044	NextToken *string `type:"string"`
10045}
10046
10047// String returns the string representation
10048func (s ListLogSubscriptionsInput) String() string {
10049	return awsutil.Prettify(s)
10050}
10051
10052// GoString returns the string representation
10053func (s ListLogSubscriptionsInput) GoString() string {
10054	return s.String()
10055}
10056
10057// SetDirectoryId sets the DirectoryId field's value.
10058func (s *ListLogSubscriptionsInput) SetDirectoryId(v string) *ListLogSubscriptionsInput {
10059	s.DirectoryId = &v
10060	return s
10061}
10062
10063// SetLimit sets the Limit field's value.
10064func (s *ListLogSubscriptionsInput) SetLimit(v int64) *ListLogSubscriptionsInput {
10065	s.Limit = &v
10066	return s
10067}
10068
10069// SetNextToken sets the NextToken field's value.
10070func (s *ListLogSubscriptionsInput) SetNextToken(v string) *ListLogSubscriptionsInput {
10071	s.NextToken = &v
10072	return s
10073}
10074
10075type ListLogSubscriptionsOutput struct {
10076	_ struct{} `type:"structure"`
10077
10078	// A list of active LogSubscription objects for calling the AWS account.
10079	LogSubscriptions []*LogSubscription `type:"list"`
10080
10081	// The token for the next set of items to return.
10082	NextToken *string `type:"string"`
10083}
10084
10085// String returns the string representation
10086func (s ListLogSubscriptionsOutput) String() string {
10087	return awsutil.Prettify(s)
10088}
10089
10090// GoString returns the string representation
10091func (s ListLogSubscriptionsOutput) GoString() string {
10092	return s.String()
10093}
10094
10095// SetLogSubscriptions sets the LogSubscriptions field's value.
10096func (s *ListLogSubscriptionsOutput) SetLogSubscriptions(v []*LogSubscription) *ListLogSubscriptionsOutput {
10097	s.LogSubscriptions = v
10098	return s
10099}
10100
10101// SetNextToken sets the NextToken field's value.
10102func (s *ListLogSubscriptionsOutput) SetNextToken(v string) *ListLogSubscriptionsOutput {
10103	s.NextToken = &v
10104	return s
10105}
10106
10107type ListSchemaExtensionsInput struct {
10108	_ struct{} `type:"structure"`
10109
10110	// The identifier of the directory from which to retrieve the schema extension
10111	// information.
10112	//
10113	// DirectoryId is a required field
10114	DirectoryId *string `type:"string" required:"true"`
10115
10116	// The maximum number of items to return.
10117	Limit *int64 `type:"integer"`
10118
10119	// The ListSchemaExtensions.NextToken value from a previous call to ListSchemaExtensions.
10120	// Pass null if this is the first call.
10121	NextToken *string `type:"string"`
10122}
10123
10124// String returns the string representation
10125func (s ListSchemaExtensionsInput) String() string {
10126	return awsutil.Prettify(s)
10127}
10128
10129// GoString returns the string representation
10130func (s ListSchemaExtensionsInput) GoString() string {
10131	return s.String()
10132}
10133
10134// Validate inspects the fields of the type to determine if they are valid.
10135func (s *ListSchemaExtensionsInput) Validate() error {
10136	invalidParams := request.ErrInvalidParams{Context: "ListSchemaExtensionsInput"}
10137	if s.DirectoryId == nil {
10138		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10139	}
10140
10141	if invalidParams.Len() > 0 {
10142		return invalidParams
10143	}
10144	return nil
10145}
10146
10147// SetDirectoryId sets the DirectoryId field's value.
10148func (s *ListSchemaExtensionsInput) SetDirectoryId(v string) *ListSchemaExtensionsInput {
10149	s.DirectoryId = &v
10150	return s
10151}
10152
10153// SetLimit sets the Limit field's value.
10154func (s *ListSchemaExtensionsInput) SetLimit(v int64) *ListSchemaExtensionsInput {
10155	s.Limit = &v
10156	return s
10157}
10158
10159// SetNextToken sets the NextToken field's value.
10160func (s *ListSchemaExtensionsInput) SetNextToken(v string) *ListSchemaExtensionsInput {
10161	s.NextToken = &v
10162	return s
10163}
10164
10165type ListSchemaExtensionsOutput struct {
10166	_ struct{} `type:"structure"`
10167
10168	// If not null, more results are available. Pass this value for the NextToken
10169	// parameter in a subsequent call to ListSchemaExtensions to retrieve the next
10170	// set of items.
10171	NextToken *string `type:"string"`
10172
10173	// Information about the schema extensions applied to the directory.
10174	SchemaExtensionsInfo []*SchemaExtensionInfo `type:"list"`
10175}
10176
10177// String returns the string representation
10178func (s ListSchemaExtensionsOutput) String() string {
10179	return awsutil.Prettify(s)
10180}
10181
10182// GoString returns the string representation
10183func (s ListSchemaExtensionsOutput) GoString() string {
10184	return s.String()
10185}
10186
10187// SetNextToken sets the NextToken field's value.
10188func (s *ListSchemaExtensionsOutput) SetNextToken(v string) *ListSchemaExtensionsOutput {
10189	s.NextToken = &v
10190	return s
10191}
10192
10193// SetSchemaExtensionsInfo sets the SchemaExtensionsInfo field's value.
10194func (s *ListSchemaExtensionsOutput) SetSchemaExtensionsInfo(v []*SchemaExtensionInfo) *ListSchemaExtensionsOutput {
10195	s.SchemaExtensionsInfo = v
10196	return s
10197}
10198
10199type ListTagsForResourceInput struct {
10200	_ struct{} `type:"structure"`
10201
10202	// Reserved for future use.
10203	Limit *int64 `type:"integer"`
10204
10205	// Reserved for future use.
10206	NextToken *string `type:"string"`
10207
10208	// Identifier (ID) of the directory for which you want to retrieve tags.
10209	//
10210	// ResourceId is a required field
10211	ResourceId *string `type:"string" required:"true"`
10212}
10213
10214// String returns the string representation
10215func (s ListTagsForResourceInput) String() string {
10216	return awsutil.Prettify(s)
10217}
10218
10219// GoString returns the string representation
10220func (s ListTagsForResourceInput) GoString() string {
10221	return s.String()
10222}
10223
10224// Validate inspects the fields of the type to determine if they are valid.
10225func (s *ListTagsForResourceInput) Validate() error {
10226	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
10227	if s.ResourceId == nil {
10228		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
10229	}
10230
10231	if invalidParams.Len() > 0 {
10232		return invalidParams
10233	}
10234	return nil
10235}
10236
10237// SetLimit sets the Limit field's value.
10238func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
10239	s.Limit = &v
10240	return s
10241}
10242
10243// SetNextToken sets the NextToken field's value.
10244func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
10245	s.NextToken = &v
10246	return s
10247}
10248
10249// SetResourceId sets the ResourceId field's value.
10250func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput {
10251	s.ResourceId = &v
10252	return s
10253}
10254
10255type ListTagsForResourceOutput struct {
10256	_ struct{} `type:"structure"`
10257
10258	// Reserved for future use.
10259	NextToken *string `type:"string"`
10260
10261	// List of tags returned by the ListTagsForResource operation.
10262	Tags []*Tag `type:"list"`
10263}
10264
10265// String returns the string representation
10266func (s ListTagsForResourceOutput) String() string {
10267	return awsutil.Prettify(s)
10268}
10269
10270// GoString returns the string representation
10271func (s ListTagsForResourceOutput) GoString() string {
10272	return s.String()
10273}
10274
10275// SetNextToken sets the NextToken field's value.
10276func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
10277	s.NextToken = &v
10278	return s
10279}
10280
10281// SetTags sets the Tags field's value.
10282func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
10283	s.Tags = v
10284	return s
10285}
10286
10287// Represents a log subscription, which tracks real-time data from a chosen
10288// log group to a specified destination.
10289type LogSubscription struct {
10290	_ struct{} `type:"structure"`
10291
10292	// Identifier (ID) of the directory that you want to associate with the log
10293	// subscription.
10294	DirectoryId *string `type:"string"`
10295
10296	// The name of the log group.
10297	LogGroupName *string `min:"1" type:"string"`
10298
10299	// The date and time that the log subscription was created.
10300	SubscriptionCreatedDateTime *time.Time `type:"timestamp"`
10301}
10302
10303// String returns the string representation
10304func (s LogSubscription) String() string {
10305	return awsutil.Prettify(s)
10306}
10307
10308// GoString returns the string representation
10309func (s LogSubscription) GoString() string {
10310	return s.String()
10311}
10312
10313// SetDirectoryId sets the DirectoryId field's value.
10314func (s *LogSubscription) SetDirectoryId(v string) *LogSubscription {
10315	s.DirectoryId = &v
10316	return s
10317}
10318
10319// SetLogGroupName sets the LogGroupName field's value.
10320func (s *LogSubscription) SetLogGroupName(v string) *LogSubscription {
10321	s.LogGroupName = &v
10322	return s
10323}
10324
10325// SetSubscriptionCreatedDateTime sets the SubscriptionCreatedDateTime field's value.
10326func (s *LogSubscription) SetSubscriptionCreatedDateTime(v time.Time) *LogSubscription {
10327	s.SubscriptionCreatedDateTime = &v
10328	return s
10329}
10330
10331// Describes the directory owner account details that have been shared to the
10332// directory consumer account.
10333type OwnerDirectoryDescription struct {
10334	_ struct{} `type:"structure"`
10335
10336	// Identifier of the directory owner account.
10337	AccountId *string `type:"string"`
10338
10339	// Identifier of the AWS Managed Microsoft AD directory in the directory owner
10340	// account.
10341	DirectoryId *string `type:"string"`
10342
10343	// IP address of the directory’s domain controllers.
10344	DnsIpAddrs []*string `type:"list"`
10345
10346	// A RadiusSettings object that contains information about the RADIUS server.
10347	RadiusSettings *RadiusSettings `type:"structure"`
10348
10349	// Information about the status of the RADIUS server.
10350	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
10351
10352	// Information about the VPC settings for the directory.
10353	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
10354}
10355
10356// String returns the string representation
10357func (s OwnerDirectoryDescription) String() string {
10358	return awsutil.Prettify(s)
10359}
10360
10361// GoString returns the string representation
10362func (s OwnerDirectoryDescription) GoString() string {
10363	return s.String()
10364}
10365
10366// SetAccountId sets the AccountId field's value.
10367func (s *OwnerDirectoryDescription) SetAccountId(v string) *OwnerDirectoryDescription {
10368	s.AccountId = &v
10369	return s
10370}
10371
10372// SetDirectoryId sets the DirectoryId field's value.
10373func (s *OwnerDirectoryDescription) SetDirectoryId(v string) *OwnerDirectoryDescription {
10374	s.DirectoryId = &v
10375	return s
10376}
10377
10378// SetDnsIpAddrs sets the DnsIpAddrs field's value.
10379func (s *OwnerDirectoryDescription) SetDnsIpAddrs(v []*string) *OwnerDirectoryDescription {
10380	s.DnsIpAddrs = v
10381	return s
10382}
10383
10384// SetRadiusSettings sets the RadiusSettings field's value.
10385func (s *OwnerDirectoryDescription) SetRadiusSettings(v *RadiusSettings) *OwnerDirectoryDescription {
10386	s.RadiusSettings = v
10387	return s
10388}
10389
10390// SetRadiusStatus sets the RadiusStatus field's value.
10391func (s *OwnerDirectoryDescription) SetRadiusStatus(v string) *OwnerDirectoryDescription {
10392	s.RadiusStatus = &v
10393	return s
10394}
10395
10396// SetVpcSettings sets the VpcSettings field's value.
10397func (s *OwnerDirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *OwnerDirectoryDescription {
10398	s.VpcSettings = v
10399	return s
10400}
10401
10402// Contains information about a Remote Authentication Dial In User Service (RADIUS)
10403// server.
10404type RadiusSettings struct {
10405	_ struct{} `type:"structure"`
10406
10407	// The protocol specified for your RADIUS endpoints.
10408	AuthenticationProtocol *string `type:"string" enum:"RadiusAuthenticationProtocol"`
10409
10410	// Not currently used.
10411	DisplayLabel *string `min:"1" type:"string"`
10412
10413	// The port that your RADIUS server is using for communications. Your on-premises
10414	// network must allow inbound traffic over this port from the AWS Directory
10415	// Service servers.
10416	RadiusPort *int64 `min:"1025" type:"integer"`
10417
10418	// The maximum number of times that communication with the RADIUS server is
10419	// attempted.
10420	RadiusRetries *int64 `type:"integer"`
10421
10422	// An array of strings that contains the IP addresses of the RADIUS server endpoints,
10423	// or the IP addresses of your RADIUS server load balancer.
10424	RadiusServers []*string `type:"list"`
10425
10426	// The amount of time, in seconds, to wait for the RADIUS server to respond.
10427	RadiusTimeout *int64 `min:"1" type:"integer"`
10428
10429	// Required for enabling RADIUS on the directory.
10430	SharedSecret *string `min:"8" type:"string" sensitive:"true"`
10431
10432	// Not currently used.
10433	UseSameUsername *bool `type:"boolean"`
10434}
10435
10436// String returns the string representation
10437func (s RadiusSettings) String() string {
10438	return awsutil.Prettify(s)
10439}
10440
10441// GoString returns the string representation
10442func (s RadiusSettings) GoString() string {
10443	return s.String()
10444}
10445
10446// Validate inspects the fields of the type to determine if they are valid.
10447func (s *RadiusSettings) Validate() error {
10448	invalidParams := request.ErrInvalidParams{Context: "RadiusSettings"}
10449	if s.DisplayLabel != nil && len(*s.DisplayLabel) < 1 {
10450		invalidParams.Add(request.NewErrParamMinLen("DisplayLabel", 1))
10451	}
10452	if s.RadiusPort != nil && *s.RadiusPort < 1025 {
10453		invalidParams.Add(request.NewErrParamMinValue("RadiusPort", 1025))
10454	}
10455	if s.RadiusTimeout != nil && *s.RadiusTimeout < 1 {
10456		invalidParams.Add(request.NewErrParamMinValue("RadiusTimeout", 1))
10457	}
10458	if s.SharedSecret != nil && len(*s.SharedSecret) < 8 {
10459		invalidParams.Add(request.NewErrParamMinLen("SharedSecret", 8))
10460	}
10461
10462	if invalidParams.Len() > 0 {
10463		return invalidParams
10464	}
10465	return nil
10466}
10467
10468// SetAuthenticationProtocol sets the AuthenticationProtocol field's value.
10469func (s *RadiusSettings) SetAuthenticationProtocol(v string) *RadiusSettings {
10470	s.AuthenticationProtocol = &v
10471	return s
10472}
10473
10474// SetDisplayLabel sets the DisplayLabel field's value.
10475func (s *RadiusSettings) SetDisplayLabel(v string) *RadiusSettings {
10476	s.DisplayLabel = &v
10477	return s
10478}
10479
10480// SetRadiusPort sets the RadiusPort field's value.
10481func (s *RadiusSettings) SetRadiusPort(v int64) *RadiusSettings {
10482	s.RadiusPort = &v
10483	return s
10484}
10485
10486// SetRadiusRetries sets the RadiusRetries field's value.
10487func (s *RadiusSettings) SetRadiusRetries(v int64) *RadiusSettings {
10488	s.RadiusRetries = &v
10489	return s
10490}
10491
10492// SetRadiusServers sets the RadiusServers field's value.
10493func (s *RadiusSettings) SetRadiusServers(v []*string) *RadiusSettings {
10494	s.RadiusServers = v
10495	return s
10496}
10497
10498// SetRadiusTimeout sets the RadiusTimeout field's value.
10499func (s *RadiusSettings) SetRadiusTimeout(v int64) *RadiusSettings {
10500	s.RadiusTimeout = &v
10501	return s
10502}
10503
10504// SetSharedSecret sets the SharedSecret field's value.
10505func (s *RadiusSettings) SetSharedSecret(v string) *RadiusSettings {
10506	s.SharedSecret = &v
10507	return s
10508}
10509
10510// SetUseSameUsername sets the UseSameUsername field's value.
10511func (s *RadiusSettings) SetUseSameUsername(v bool) *RadiusSettings {
10512	s.UseSameUsername = &v
10513	return s
10514}
10515
10516type RegisterCertificateInput struct {
10517	_ struct{} `type:"structure"`
10518
10519	// The certificate PEM string that needs to be registered.
10520	//
10521	// CertificateData is a required field
10522	CertificateData *string `min:"1" type:"string" required:"true"`
10523
10524	// The identifier of the directory.
10525	//
10526	// DirectoryId is a required field
10527	DirectoryId *string `type:"string" required:"true"`
10528}
10529
10530// String returns the string representation
10531func (s RegisterCertificateInput) String() string {
10532	return awsutil.Prettify(s)
10533}
10534
10535// GoString returns the string representation
10536func (s RegisterCertificateInput) GoString() string {
10537	return s.String()
10538}
10539
10540// Validate inspects the fields of the type to determine if they are valid.
10541func (s *RegisterCertificateInput) Validate() error {
10542	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
10543	if s.CertificateData == nil {
10544		invalidParams.Add(request.NewErrParamRequired("CertificateData"))
10545	}
10546	if s.CertificateData != nil && len(*s.CertificateData) < 1 {
10547		invalidParams.Add(request.NewErrParamMinLen("CertificateData", 1))
10548	}
10549	if s.DirectoryId == nil {
10550		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10551	}
10552
10553	if invalidParams.Len() > 0 {
10554		return invalidParams
10555	}
10556	return nil
10557}
10558
10559// SetCertificateData sets the CertificateData field's value.
10560func (s *RegisterCertificateInput) SetCertificateData(v string) *RegisterCertificateInput {
10561	s.CertificateData = &v
10562	return s
10563}
10564
10565// SetDirectoryId sets the DirectoryId field's value.
10566func (s *RegisterCertificateInput) SetDirectoryId(v string) *RegisterCertificateInput {
10567	s.DirectoryId = &v
10568	return s
10569}
10570
10571type RegisterCertificateOutput struct {
10572	_ struct{} `type:"structure"`
10573
10574	// The identifier of the certificate.
10575	CertificateId *string `type:"string"`
10576}
10577
10578// String returns the string representation
10579func (s RegisterCertificateOutput) String() string {
10580	return awsutil.Prettify(s)
10581}
10582
10583// GoString returns the string representation
10584func (s RegisterCertificateOutput) GoString() string {
10585	return s.String()
10586}
10587
10588// SetCertificateId sets the CertificateId field's value.
10589func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
10590	s.CertificateId = &v
10591	return s
10592}
10593
10594// Registers a new event topic.
10595type RegisterEventTopicInput struct {
10596	_ struct{} `type:"structure"`
10597
10598	// The Directory ID that will publish status messages to the SNS topic.
10599	//
10600	// DirectoryId is a required field
10601	DirectoryId *string `type:"string" required:"true"`
10602
10603	// The SNS topic name to which the directory will publish status messages. This
10604	// SNS topic must be in the same region as the specified Directory ID.
10605	//
10606	// TopicName is a required field
10607	TopicName *string `min:"1" type:"string" required:"true"`
10608}
10609
10610// String returns the string representation
10611func (s RegisterEventTopicInput) String() string {
10612	return awsutil.Prettify(s)
10613}
10614
10615// GoString returns the string representation
10616func (s RegisterEventTopicInput) GoString() string {
10617	return s.String()
10618}
10619
10620// Validate inspects the fields of the type to determine if they are valid.
10621func (s *RegisterEventTopicInput) Validate() error {
10622	invalidParams := request.ErrInvalidParams{Context: "RegisterEventTopicInput"}
10623	if s.DirectoryId == nil {
10624		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10625	}
10626	if s.TopicName == nil {
10627		invalidParams.Add(request.NewErrParamRequired("TopicName"))
10628	}
10629	if s.TopicName != nil && len(*s.TopicName) < 1 {
10630		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
10631	}
10632
10633	if invalidParams.Len() > 0 {
10634		return invalidParams
10635	}
10636	return nil
10637}
10638
10639// SetDirectoryId sets the DirectoryId field's value.
10640func (s *RegisterEventTopicInput) SetDirectoryId(v string) *RegisterEventTopicInput {
10641	s.DirectoryId = &v
10642	return s
10643}
10644
10645// SetTopicName sets the TopicName field's value.
10646func (s *RegisterEventTopicInput) SetTopicName(v string) *RegisterEventTopicInput {
10647	s.TopicName = &v
10648	return s
10649}
10650
10651// The result of a RegisterEventTopic request.
10652type RegisterEventTopicOutput struct {
10653	_ struct{} `type:"structure"`
10654}
10655
10656// String returns the string representation
10657func (s RegisterEventTopicOutput) String() string {
10658	return awsutil.Prettify(s)
10659}
10660
10661// GoString returns the string representation
10662func (s RegisterEventTopicOutput) GoString() string {
10663	return s.String()
10664}
10665
10666type RejectSharedDirectoryInput struct {
10667	_ struct{} `type:"structure"`
10668
10669	// Identifier of the shared directory in the directory consumer account. This
10670	// identifier is different for each directory owner account.
10671	//
10672	// SharedDirectoryId is a required field
10673	SharedDirectoryId *string `type:"string" required:"true"`
10674}
10675
10676// String returns the string representation
10677func (s RejectSharedDirectoryInput) String() string {
10678	return awsutil.Prettify(s)
10679}
10680
10681// GoString returns the string representation
10682func (s RejectSharedDirectoryInput) GoString() string {
10683	return s.String()
10684}
10685
10686// Validate inspects the fields of the type to determine if they are valid.
10687func (s *RejectSharedDirectoryInput) Validate() error {
10688	invalidParams := request.ErrInvalidParams{Context: "RejectSharedDirectoryInput"}
10689	if s.SharedDirectoryId == nil {
10690		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
10691	}
10692
10693	if invalidParams.Len() > 0 {
10694		return invalidParams
10695	}
10696	return nil
10697}
10698
10699// SetSharedDirectoryId sets the SharedDirectoryId field's value.
10700func (s *RejectSharedDirectoryInput) SetSharedDirectoryId(v string) *RejectSharedDirectoryInput {
10701	s.SharedDirectoryId = &v
10702	return s
10703}
10704
10705type RejectSharedDirectoryOutput struct {
10706	_ struct{} `type:"structure"`
10707
10708	// Identifier of the shared directory in the directory consumer account.
10709	SharedDirectoryId *string `type:"string"`
10710}
10711
10712// String returns the string representation
10713func (s RejectSharedDirectoryOutput) String() string {
10714	return awsutil.Prettify(s)
10715}
10716
10717// GoString returns the string representation
10718func (s RejectSharedDirectoryOutput) GoString() string {
10719	return s.String()
10720}
10721
10722// SetSharedDirectoryId sets the SharedDirectoryId field's value.
10723func (s *RejectSharedDirectoryOutput) SetSharedDirectoryId(v string) *RejectSharedDirectoryOutput {
10724	s.SharedDirectoryId = &v
10725	return s
10726}
10727
10728type RemoveIpRoutesInput struct {
10729	_ struct{} `type:"structure"`
10730
10731	// IP address blocks that you want to remove.
10732	//
10733	// CidrIps is a required field
10734	CidrIps []*string `type:"list" required:"true"`
10735
10736	// Identifier (ID) of the directory from which you want to remove the IP addresses.
10737	//
10738	// DirectoryId is a required field
10739	DirectoryId *string `type:"string" required:"true"`
10740}
10741
10742// String returns the string representation
10743func (s RemoveIpRoutesInput) String() string {
10744	return awsutil.Prettify(s)
10745}
10746
10747// GoString returns the string representation
10748func (s RemoveIpRoutesInput) GoString() string {
10749	return s.String()
10750}
10751
10752// Validate inspects the fields of the type to determine if they are valid.
10753func (s *RemoveIpRoutesInput) Validate() error {
10754	invalidParams := request.ErrInvalidParams{Context: "RemoveIpRoutesInput"}
10755	if s.CidrIps == nil {
10756		invalidParams.Add(request.NewErrParamRequired("CidrIps"))
10757	}
10758	if s.DirectoryId == nil {
10759		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10760	}
10761
10762	if invalidParams.Len() > 0 {
10763		return invalidParams
10764	}
10765	return nil
10766}
10767
10768// SetCidrIps sets the CidrIps field's value.
10769func (s *RemoveIpRoutesInput) SetCidrIps(v []*string) *RemoveIpRoutesInput {
10770	s.CidrIps = v
10771	return s
10772}
10773
10774// SetDirectoryId sets the DirectoryId field's value.
10775func (s *RemoveIpRoutesInput) SetDirectoryId(v string) *RemoveIpRoutesInput {
10776	s.DirectoryId = &v
10777	return s
10778}
10779
10780type RemoveIpRoutesOutput struct {
10781	_ struct{} `type:"structure"`
10782}
10783
10784// String returns the string representation
10785func (s RemoveIpRoutesOutput) String() string {
10786	return awsutil.Prettify(s)
10787}
10788
10789// GoString returns the string representation
10790func (s RemoveIpRoutesOutput) GoString() string {
10791	return s.String()
10792}
10793
10794type RemoveTagsFromResourceInput struct {
10795	_ struct{} `type:"structure"`
10796
10797	// Identifier (ID) of the directory from which to remove the tag.
10798	//
10799	// ResourceId is a required field
10800	ResourceId *string `type:"string" required:"true"`
10801
10802	// The tag key (name) of the tag to be removed.
10803	//
10804	// TagKeys is a required field
10805	TagKeys []*string `type:"list" required:"true"`
10806}
10807
10808// String returns the string representation
10809func (s RemoveTagsFromResourceInput) String() string {
10810	return awsutil.Prettify(s)
10811}
10812
10813// GoString returns the string representation
10814func (s RemoveTagsFromResourceInput) GoString() string {
10815	return s.String()
10816}
10817
10818// Validate inspects the fields of the type to determine if they are valid.
10819func (s *RemoveTagsFromResourceInput) Validate() error {
10820	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
10821	if s.ResourceId == nil {
10822		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
10823	}
10824	if s.TagKeys == nil {
10825		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
10826	}
10827
10828	if invalidParams.Len() > 0 {
10829		return invalidParams
10830	}
10831	return nil
10832}
10833
10834// SetResourceId sets the ResourceId field's value.
10835func (s *RemoveTagsFromResourceInput) SetResourceId(v string) *RemoveTagsFromResourceInput {
10836	s.ResourceId = &v
10837	return s
10838}
10839
10840// SetTagKeys sets the TagKeys field's value.
10841func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
10842	s.TagKeys = v
10843	return s
10844}
10845
10846type RemoveTagsFromResourceOutput struct {
10847	_ struct{} `type:"structure"`
10848}
10849
10850// String returns the string representation
10851func (s RemoveTagsFromResourceOutput) String() string {
10852	return awsutil.Prettify(s)
10853}
10854
10855// GoString returns the string representation
10856func (s RemoveTagsFromResourceOutput) GoString() string {
10857	return s.String()
10858}
10859
10860type ResetUserPasswordInput struct {
10861	_ struct{} `type:"structure"`
10862
10863	// Identifier of the AWS Managed Microsoft AD or Simple AD directory in which
10864	// the user resides.
10865	//
10866	// DirectoryId is a required field
10867	DirectoryId *string `type:"string" required:"true"`
10868
10869	// The new password that will be reset.
10870	//
10871	// NewPassword is a required field
10872	NewPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
10873
10874	// The user name of the user whose password will be reset.
10875	//
10876	// UserName is a required field
10877	UserName *string `min:"1" type:"string" required:"true"`
10878}
10879
10880// String returns the string representation
10881func (s ResetUserPasswordInput) String() string {
10882	return awsutil.Prettify(s)
10883}
10884
10885// GoString returns the string representation
10886func (s ResetUserPasswordInput) GoString() string {
10887	return s.String()
10888}
10889
10890// Validate inspects the fields of the type to determine if they are valid.
10891func (s *ResetUserPasswordInput) Validate() error {
10892	invalidParams := request.ErrInvalidParams{Context: "ResetUserPasswordInput"}
10893	if s.DirectoryId == nil {
10894		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10895	}
10896	if s.NewPassword == nil {
10897		invalidParams.Add(request.NewErrParamRequired("NewPassword"))
10898	}
10899	if s.NewPassword != nil && len(*s.NewPassword) < 1 {
10900		invalidParams.Add(request.NewErrParamMinLen("NewPassword", 1))
10901	}
10902	if s.UserName == nil {
10903		invalidParams.Add(request.NewErrParamRequired("UserName"))
10904	}
10905	if s.UserName != nil && len(*s.UserName) < 1 {
10906		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
10907	}
10908
10909	if invalidParams.Len() > 0 {
10910		return invalidParams
10911	}
10912	return nil
10913}
10914
10915// SetDirectoryId sets the DirectoryId field's value.
10916func (s *ResetUserPasswordInput) SetDirectoryId(v string) *ResetUserPasswordInput {
10917	s.DirectoryId = &v
10918	return s
10919}
10920
10921// SetNewPassword sets the NewPassword field's value.
10922func (s *ResetUserPasswordInput) SetNewPassword(v string) *ResetUserPasswordInput {
10923	s.NewPassword = &v
10924	return s
10925}
10926
10927// SetUserName sets the UserName field's value.
10928func (s *ResetUserPasswordInput) SetUserName(v string) *ResetUserPasswordInput {
10929	s.UserName = &v
10930	return s
10931}
10932
10933type ResetUserPasswordOutput struct {
10934	_ struct{} `type:"structure"`
10935}
10936
10937// String returns the string representation
10938func (s ResetUserPasswordOutput) String() string {
10939	return awsutil.Prettify(s)
10940}
10941
10942// GoString returns the string representation
10943func (s ResetUserPasswordOutput) GoString() string {
10944	return s.String()
10945}
10946
10947// An object representing the inputs for the RestoreFromSnapshot operation.
10948type RestoreFromSnapshotInput struct {
10949	_ struct{} `type:"structure"`
10950
10951	// The identifier of the snapshot to restore from.
10952	//
10953	// SnapshotId is a required field
10954	SnapshotId *string `type:"string" required:"true"`
10955}
10956
10957// String returns the string representation
10958func (s RestoreFromSnapshotInput) String() string {
10959	return awsutil.Prettify(s)
10960}
10961
10962// GoString returns the string representation
10963func (s RestoreFromSnapshotInput) GoString() string {
10964	return s.String()
10965}
10966
10967// Validate inspects the fields of the type to determine if they are valid.
10968func (s *RestoreFromSnapshotInput) Validate() error {
10969	invalidParams := request.ErrInvalidParams{Context: "RestoreFromSnapshotInput"}
10970	if s.SnapshotId == nil {
10971		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
10972	}
10973
10974	if invalidParams.Len() > 0 {
10975		return invalidParams
10976	}
10977	return nil
10978}
10979
10980// SetSnapshotId sets the SnapshotId field's value.
10981func (s *RestoreFromSnapshotInput) SetSnapshotId(v string) *RestoreFromSnapshotInput {
10982	s.SnapshotId = &v
10983	return s
10984}
10985
10986// Contains the results of the RestoreFromSnapshot operation.
10987type RestoreFromSnapshotOutput struct {
10988	_ struct{} `type:"structure"`
10989}
10990
10991// String returns the string representation
10992func (s RestoreFromSnapshotOutput) String() string {
10993	return awsutil.Prettify(s)
10994}
10995
10996// GoString returns the string representation
10997func (s RestoreFromSnapshotOutput) GoString() string {
10998	return s.String()
10999}
11000
11001// Information about a schema extension.
11002type SchemaExtensionInfo struct {
11003	_ struct{} `type:"structure"`
11004
11005	// A description of the schema extension.
11006	Description *string `type:"string"`
11007
11008	// The identifier of the directory to which the schema extension is applied.
11009	DirectoryId *string `type:"string"`
11010
11011	// The date and time that the schema extension was completed.
11012	EndDateTime *time.Time `type:"timestamp"`
11013
11014	// The identifier of the schema extension.
11015	SchemaExtensionId *string `type:"string"`
11016
11017	// The current status of the schema extension.
11018	SchemaExtensionStatus *string `type:"string" enum:"SchemaExtensionStatus"`
11019
11020	// The reason for the SchemaExtensionStatus.
11021	SchemaExtensionStatusReason *string `type:"string"`
11022
11023	// The date and time that the schema extension started being applied to the
11024	// directory.
11025	StartDateTime *time.Time `type:"timestamp"`
11026}
11027
11028// String returns the string representation
11029func (s SchemaExtensionInfo) String() string {
11030	return awsutil.Prettify(s)
11031}
11032
11033// GoString returns the string representation
11034func (s SchemaExtensionInfo) GoString() string {
11035	return s.String()
11036}
11037
11038// SetDescription sets the Description field's value.
11039func (s *SchemaExtensionInfo) SetDescription(v string) *SchemaExtensionInfo {
11040	s.Description = &v
11041	return s
11042}
11043
11044// SetDirectoryId sets the DirectoryId field's value.
11045func (s *SchemaExtensionInfo) SetDirectoryId(v string) *SchemaExtensionInfo {
11046	s.DirectoryId = &v
11047	return s
11048}
11049
11050// SetEndDateTime sets the EndDateTime field's value.
11051func (s *SchemaExtensionInfo) SetEndDateTime(v time.Time) *SchemaExtensionInfo {
11052	s.EndDateTime = &v
11053	return s
11054}
11055
11056// SetSchemaExtensionId sets the SchemaExtensionId field's value.
11057func (s *SchemaExtensionInfo) SetSchemaExtensionId(v string) *SchemaExtensionInfo {
11058	s.SchemaExtensionId = &v
11059	return s
11060}
11061
11062// SetSchemaExtensionStatus sets the SchemaExtensionStatus field's value.
11063func (s *SchemaExtensionInfo) SetSchemaExtensionStatus(v string) *SchemaExtensionInfo {
11064	s.SchemaExtensionStatus = &v
11065	return s
11066}
11067
11068// SetSchemaExtensionStatusReason sets the SchemaExtensionStatusReason field's value.
11069func (s *SchemaExtensionInfo) SetSchemaExtensionStatusReason(v string) *SchemaExtensionInfo {
11070	s.SchemaExtensionStatusReason = &v
11071	return s
11072}
11073
11074// SetStartDateTime sets the StartDateTime field's value.
11075func (s *SchemaExtensionInfo) SetStartDateTime(v time.Time) *SchemaExtensionInfo {
11076	s.StartDateTime = &v
11077	return s
11078}
11079
11080type ShareDirectoryInput struct {
11081	_ struct{} `type:"structure"`
11082
11083	// Identifier of the AWS Managed Microsoft AD directory that you want to share
11084	// with other AWS accounts.
11085	//
11086	// DirectoryId is a required field
11087	DirectoryId *string `type:"string" required:"true"`
11088
11089	// The method used when sharing a directory to determine whether the directory
11090	// should be shared within your AWS organization (ORGANIZATIONS) or with any
11091	// AWS account by sending a directory sharing request (HANDSHAKE).
11092	//
11093	// ShareMethod is a required field
11094	ShareMethod *string `type:"string" required:"true" enum:"ShareMethod"`
11095
11096	// A directory share request that is sent by the directory owner to the directory
11097	// consumer. The request includes a typed message to help the directory consumer
11098	// administrator determine whether to approve or reject the share invitation.
11099	ShareNotes *string `type:"string" sensitive:"true"`
11100
11101	// Identifier for the directory consumer account with whom the directory is
11102	// to be shared.
11103	//
11104	// ShareTarget is a required field
11105	ShareTarget *ShareTarget `type:"structure" required:"true"`
11106}
11107
11108// String returns the string representation
11109func (s ShareDirectoryInput) String() string {
11110	return awsutil.Prettify(s)
11111}
11112
11113// GoString returns the string representation
11114func (s ShareDirectoryInput) GoString() string {
11115	return s.String()
11116}
11117
11118// Validate inspects the fields of the type to determine if they are valid.
11119func (s *ShareDirectoryInput) Validate() error {
11120	invalidParams := request.ErrInvalidParams{Context: "ShareDirectoryInput"}
11121	if s.DirectoryId == nil {
11122		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11123	}
11124	if s.ShareMethod == nil {
11125		invalidParams.Add(request.NewErrParamRequired("ShareMethod"))
11126	}
11127	if s.ShareTarget == nil {
11128		invalidParams.Add(request.NewErrParamRequired("ShareTarget"))
11129	}
11130	if s.ShareTarget != nil {
11131		if err := s.ShareTarget.Validate(); err != nil {
11132			invalidParams.AddNested("ShareTarget", err.(request.ErrInvalidParams))
11133		}
11134	}
11135
11136	if invalidParams.Len() > 0 {
11137		return invalidParams
11138	}
11139	return nil
11140}
11141
11142// SetDirectoryId sets the DirectoryId field's value.
11143func (s *ShareDirectoryInput) SetDirectoryId(v string) *ShareDirectoryInput {
11144	s.DirectoryId = &v
11145	return s
11146}
11147
11148// SetShareMethod sets the ShareMethod field's value.
11149func (s *ShareDirectoryInput) SetShareMethod(v string) *ShareDirectoryInput {
11150	s.ShareMethod = &v
11151	return s
11152}
11153
11154// SetShareNotes sets the ShareNotes field's value.
11155func (s *ShareDirectoryInput) SetShareNotes(v string) *ShareDirectoryInput {
11156	s.ShareNotes = &v
11157	return s
11158}
11159
11160// SetShareTarget sets the ShareTarget field's value.
11161func (s *ShareDirectoryInput) SetShareTarget(v *ShareTarget) *ShareDirectoryInput {
11162	s.ShareTarget = v
11163	return s
11164}
11165
11166type ShareDirectoryOutput struct {
11167	_ struct{} `type:"structure"`
11168
11169	// Identifier of the directory that is stored in the directory consumer account
11170	// that is shared from the specified directory (DirectoryId).
11171	SharedDirectoryId *string `type:"string"`
11172}
11173
11174// String returns the string representation
11175func (s ShareDirectoryOutput) String() string {
11176	return awsutil.Prettify(s)
11177}
11178
11179// GoString returns the string representation
11180func (s ShareDirectoryOutput) GoString() string {
11181	return s.String()
11182}
11183
11184// SetSharedDirectoryId sets the SharedDirectoryId field's value.
11185func (s *ShareDirectoryOutput) SetSharedDirectoryId(v string) *ShareDirectoryOutput {
11186	s.SharedDirectoryId = &v
11187	return s
11188}
11189
11190// Identifier that contains details about the directory consumer account.
11191type ShareTarget struct {
11192	_ struct{} `type:"structure"`
11193
11194	// Identifier of the directory consumer account.
11195	//
11196	// Id is a required field
11197	Id *string `min:"1" type:"string" required:"true"`
11198
11199	// Type of identifier to be used in the Id field.
11200	//
11201	// Type is a required field
11202	Type *string `type:"string" required:"true" enum:"TargetType"`
11203}
11204
11205// String returns the string representation
11206func (s ShareTarget) String() string {
11207	return awsutil.Prettify(s)
11208}
11209
11210// GoString returns the string representation
11211func (s ShareTarget) GoString() string {
11212	return s.String()
11213}
11214
11215// Validate inspects the fields of the type to determine if they are valid.
11216func (s *ShareTarget) Validate() error {
11217	invalidParams := request.ErrInvalidParams{Context: "ShareTarget"}
11218	if s.Id == nil {
11219		invalidParams.Add(request.NewErrParamRequired("Id"))
11220	}
11221	if s.Id != nil && len(*s.Id) < 1 {
11222		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
11223	}
11224	if s.Type == nil {
11225		invalidParams.Add(request.NewErrParamRequired("Type"))
11226	}
11227
11228	if invalidParams.Len() > 0 {
11229		return invalidParams
11230	}
11231	return nil
11232}
11233
11234// SetId sets the Id field's value.
11235func (s *ShareTarget) SetId(v string) *ShareTarget {
11236	s.Id = &v
11237	return s
11238}
11239
11240// SetType sets the Type field's value.
11241func (s *ShareTarget) SetType(v string) *ShareTarget {
11242	s.Type = &v
11243	return s
11244}
11245
11246// Details about the shared directory in the directory owner account for which
11247// the share request in the directory consumer account has been accepted.
11248type SharedDirectory struct {
11249	_ struct{} `type:"structure"`
11250
11251	// The date and time that the shared directory was created.
11252	CreatedDateTime *time.Time `type:"timestamp"`
11253
11254	// The date and time that the shared directory was last updated.
11255	LastUpdatedDateTime *time.Time `type:"timestamp"`
11256
11257	// Identifier of the directory owner account, which contains the directory that
11258	// has been shared to the consumer account.
11259	OwnerAccountId *string `type:"string"`
11260
11261	// Identifier of the directory in the directory owner account.
11262	OwnerDirectoryId *string `type:"string"`
11263
11264	// The method used when sharing a directory to determine whether the directory
11265	// should be shared within your AWS organization (ORGANIZATIONS) or with any
11266	// AWS account by sending a shared directory request (HANDSHAKE).
11267	ShareMethod *string `type:"string" enum:"ShareMethod"`
11268
11269	// A directory share request that is sent by the directory owner to the directory
11270	// consumer. The request includes a typed message to help the directory consumer
11271	// administrator determine whether to approve or reject the share invitation.
11272	ShareNotes *string `type:"string" sensitive:"true"`
11273
11274	// Current directory status of the shared AWS Managed Microsoft AD directory.
11275	ShareStatus *string `type:"string" enum:"ShareStatus"`
11276
11277	// Identifier of the directory consumer account that has access to the shared
11278	// directory (OwnerDirectoryId) in the directory owner account.
11279	SharedAccountId *string `type:"string"`
11280
11281	// Identifier of the shared directory in the directory consumer account. This
11282	// identifier is different for each directory owner account.
11283	SharedDirectoryId *string `type:"string"`
11284}
11285
11286// String returns the string representation
11287func (s SharedDirectory) String() string {
11288	return awsutil.Prettify(s)
11289}
11290
11291// GoString returns the string representation
11292func (s SharedDirectory) GoString() string {
11293	return s.String()
11294}
11295
11296// SetCreatedDateTime sets the CreatedDateTime field's value.
11297func (s *SharedDirectory) SetCreatedDateTime(v time.Time) *SharedDirectory {
11298	s.CreatedDateTime = &v
11299	return s
11300}
11301
11302// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
11303func (s *SharedDirectory) SetLastUpdatedDateTime(v time.Time) *SharedDirectory {
11304	s.LastUpdatedDateTime = &v
11305	return s
11306}
11307
11308// SetOwnerAccountId sets the OwnerAccountId field's value.
11309func (s *SharedDirectory) SetOwnerAccountId(v string) *SharedDirectory {
11310	s.OwnerAccountId = &v
11311	return s
11312}
11313
11314// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
11315func (s *SharedDirectory) SetOwnerDirectoryId(v string) *SharedDirectory {
11316	s.OwnerDirectoryId = &v
11317	return s
11318}
11319
11320// SetShareMethod sets the ShareMethod field's value.
11321func (s *SharedDirectory) SetShareMethod(v string) *SharedDirectory {
11322	s.ShareMethod = &v
11323	return s
11324}
11325
11326// SetShareNotes sets the ShareNotes field's value.
11327func (s *SharedDirectory) SetShareNotes(v string) *SharedDirectory {
11328	s.ShareNotes = &v
11329	return s
11330}
11331
11332// SetShareStatus sets the ShareStatus field's value.
11333func (s *SharedDirectory) SetShareStatus(v string) *SharedDirectory {
11334	s.ShareStatus = &v
11335	return s
11336}
11337
11338// SetSharedAccountId sets the SharedAccountId field's value.
11339func (s *SharedDirectory) SetSharedAccountId(v string) *SharedDirectory {
11340	s.SharedAccountId = &v
11341	return s
11342}
11343
11344// SetSharedDirectoryId sets the SharedDirectoryId field's value.
11345func (s *SharedDirectory) SetSharedDirectoryId(v string) *SharedDirectory {
11346	s.SharedDirectoryId = &v
11347	return s
11348}
11349
11350// Describes a directory snapshot.
11351type Snapshot struct {
11352	_ struct{} `type:"structure"`
11353
11354	// The directory identifier.
11355	DirectoryId *string `type:"string"`
11356
11357	// The descriptive name of the snapshot.
11358	Name *string `type:"string"`
11359
11360	// The snapshot identifier.
11361	SnapshotId *string `type:"string"`
11362
11363	// The date and time that the snapshot was taken.
11364	StartTime *time.Time `type:"timestamp"`
11365
11366	// The snapshot status.
11367	Status *string `type:"string" enum:"SnapshotStatus"`
11368
11369	// The snapshot type.
11370	Type *string `type:"string" enum:"SnapshotType"`
11371}
11372
11373// String returns the string representation
11374func (s Snapshot) String() string {
11375	return awsutil.Prettify(s)
11376}
11377
11378// GoString returns the string representation
11379func (s Snapshot) GoString() string {
11380	return s.String()
11381}
11382
11383// SetDirectoryId sets the DirectoryId field's value.
11384func (s *Snapshot) SetDirectoryId(v string) *Snapshot {
11385	s.DirectoryId = &v
11386	return s
11387}
11388
11389// SetName sets the Name field's value.
11390func (s *Snapshot) SetName(v string) *Snapshot {
11391	s.Name = &v
11392	return s
11393}
11394
11395// SetSnapshotId sets the SnapshotId field's value.
11396func (s *Snapshot) SetSnapshotId(v string) *Snapshot {
11397	s.SnapshotId = &v
11398	return s
11399}
11400
11401// SetStartTime sets the StartTime field's value.
11402func (s *Snapshot) SetStartTime(v time.Time) *Snapshot {
11403	s.StartTime = &v
11404	return s
11405}
11406
11407// SetStatus sets the Status field's value.
11408func (s *Snapshot) SetStatus(v string) *Snapshot {
11409	s.Status = &v
11410	return s
11411}
11412
11413// SetType sets the Type field's value.
11414func (s *Snapshot) SetType(v string) *Snapshot {
11415	s.Type = &v
11416	return s
11417}
11418
11419// Contains manual snapshot limit information for a directory.
11420type SnapshotLimits struct {
11421	_ struct{} `type:"structure"`
11422
11423	// The current number of manual snapshots of the directory.
11424	ManualSnapshotsCurrentCount *int64 `type:"integer"`
11425
11426	// The maximum number of manual snapshots allowed.
11427	ManualSnapshotsLimit *int64 `type:"integer"`
11428
11429	// Indicates if the manual snapshot limit has been reached.
11430	ManualSnapshotsLimitReached *bool `type:"boolean"`
11431}
11432
11433// String returns the string representation
11434func (s SnapshotLimits) String() string {
11435	return awsutil.Prettify(s)
11436}
11437
11438// GoString returns the string representation
11439func (s SnapshotLimits) GoString() string {
11440	return s.String()
11441}
11442
11443// SetManualSnapshotsCurrentCount sets the ManualSnapshotsCurrentCount field's value.
11444func (s *SnapshotLimits) SetManualSnapshotsCurrentCount(v int64) *SnapshotLimits {
11445	s.ManualSnapshotsCurrentCount = &v
11446	return s
11447}
11448
11449// SetManualSnapshotsLimit sets the ManualSnapshotsLimit field's value.
11450func (s *SnapshotLimits) SetManualSnapshotsLimit(v int64) *SnapshotLimits {
11451	s.ManualSnapshotsLimit = &v
11452	return s
11453}
11454
11455// SetManualSnapshotsLimitReached sets the ManualSnapshotsLimitReached field's value.
11456func (s *SnapshotLimits) SetManualSnapshotsLimitReached(v bool) *SnapshotLimits {
11457	s.ManualSnapshotsLimitReached = &v
11458	return s
11459}
11460
11461type StartSchemaExtensionInput struct {
11462	_ struct{} `type:"structure"`
11463
11464	// If true, creates a snapshot of the directory before applying the schema extension.
11465	//
11466	// CreateSnapshotBeforeSchemaExtension is a required field
11467	CreateSnapshotBeforeSchemaExtension *bool `type:"boolean" required:"true"`
11468
11469	// A description of the schema extension.
11470	//
11471	// Description is a required field
11472	Description *string `type:"string" required:"true"`
11473
11474	// The identifier of the directory for which the schema extension will be applied
11475	// to.
11476	//
11477	// DirectoryId is a required field
11478	DirectoryId *string `type:"string" required:"true"`
11479
11480	// The LDIF file represented as a string. To construct the LdifContent string,
11481	// precede each line as it would be formatted in an ldif file with \n. See the
11482	// example request below for more details. The file size can be no larger than
11483	// 1MB.
11484	//
11485	// LdifContent is a required field
11486	LdifContent *string `min:"1" type:"string" required:"true"`
11487}
11488
11489// String returns the string representation
11490func (s StartSchemaExtensionInput) String() string {
11491	return awsutil.Prettify(s)
11492}
11493
11494// GoString returns the string representation
11495func (s StartSchemaExtensionInput) GoString() string {
11496	return s.String()
11497}
11498
11499// Validate inspects the fields of the type to determine if they are valid.
11500func (s *StartSchemaExtensionInput) Validate() error {
11501	invalidParams := request.ErrInvalidParams{Context: "StartSchemaExtensionInput"}
11502	if s.CreateSnapshotBeforeSchemaExtension == nil {
11503		invalidParams.Add(request.NewErrParamRequired("CreateSnapshotBeforeSchemaExtension"))
11504	}
11505	if s.Description == nil {
11506		invalidParams.Add(request.NewErrParamRequired("Description"))
11507	}
11508	if s.DirectoryId == nil {
11509		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11510	}
11511	if s.LdifContent == nil {
11512		invalidParams.Add(request.NewErrParamRequired("LdifContent"))
11513	}
11514	if s.LdifContent != nil && len(*s.LdifContent) < 1 {
11515		invalidParams.Add(request.NewErrParamMinLen("LdifContent", 1))
11516	}
11517
11518	if invalidParams.Len() > 0 {
11519		return invalidParams
11520	}
11521	return nil
11522}
11523
11524// SetCreateSnapshotBeforeSchemaExtension sets the CreateSnapshotBeforeSchemaExtension field's value.
11525func (s *StartSchemaExtensionInput) SetCreateSnapshotBeforeSchemaExtension(v bool) *StartSchemaExtensionInput {
11526	s.CreateSnapshotBeforeSchemaExtension = &v
11527	return s
11528}
11529
11530// SetDescription sets the Description field's value.
11531func (s *StartSchemaExtensionInput) SetDescription(v string) *StartSchemaExtensionInput {
11532	s.Description = &v
11533	return s
11534}
11535
11536// SetDirectoryId sets the DirectoryId field's value.
11537func (s *StartSchemaExtensionInput) SetDirectoryId(v string) *StartSchemaExtensionInput {
11538	s.DirectoryId = &v
11539	return s
11540}
11541
11542// SetLdifContent sets the LdifContent field's value.
11543func (s *StartSchemaExtensionInput) SetLdifContent(v string) *StartSchemaExtensionInput {
11544	s.LdifContent = &v
11545	return s
11546}
11547
11548type StartSchemaExtensionOutput struct {
11549	_ struct{} `type:"structure"`
11550
11551	// The identifier of the schema extension that will be applied.
11552	SchemaExtensionId *string `type:"string"`
11553}
11554
11555// String returns the string representation
11556func (s StartSchemaExtensionOutput) String() string {
11557	return awsutil.Prettify(s)
11558}
11559
11560// GoString returns the string representation
11561func (s StartSchemaExtensionOutput) GoString() string {
11562	return s.String()
11563}
11564
11565// SetSchemaExtensionId sets the SchemaExtensionId field's value.
11566func (s *StartSchemaExtensionOutput) SetSchemaExtensionId(v string) *StartSchemaExtensionOutput {
11567	s.SchemaExtensionId = &v
11568	return s
11569}
11570
11571// Metadata assigned to a directory consisting of a key-value pair.
11572type Tag struct {
11573	_ struct{} `type:"structure"`
11574
11575	// Required name of the tag. The string value can be Unicode characters and
11576	// cannot be prefixed with "aws:". The string can contain only the set of Unicode
11577	// letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
11578	//
11579	// Key is a required field
11580	Key *string `min:"1" type:"string" required:"true"`
11581
11582	// The optional value of the tag. The string value can be Unicode characters.
11583	// The string can contain only the set of Unicode letters, digits, white-space,
11584	// '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
11585	//
11586	// Value is a required field
11587	Value *string `type:"string" required:"true"`
11588}
11589
11590// String returns the string representation
11591func (s Tag) String() string {
11592	return awsutil.Prettify(s)
11593}
11594
11595// GoString returns the string representation
11596func (s Tag) GoString() string {
11597	return s.String()
11598}
11599
11600// Validate inspects the fields of the type to determine if they are valid.
11601func (s *Tag) Validate() error {
11602	invalidParams := request.ErrInvalidParams{Context: "Tag"}
11603	if s.Key == nil {
11604		invalidParams.Add(request.NewErrParamRequired("Key"))
11605	}
11606	if s.Key != nil && len(*s.Key) < 1 {
11607		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
11608	}
11609	if s.Value == nil {
11610		invalidParams.Add(request.NewErrParamRequired("Value"))
11611	}
11612
11613	if invalidParams.Len() > 0 {
11614		return invalidParams
11615	}
11616	return nil
11617}
11618
11619// SetKey sets the Key field's value.
11620func (s *Tag) SetKey(v string) *Tag {
11621	s.Key = &v
11622	return s
11623}
11624
11625// SetValue sets the Value field's value.
11626func (s *Tag) SetValue(v string) *Tag {
11627	s.Value = &v
11628	return s
11629}
11630
11631// Describes a trust relationship between an AWS Managed Microsoft AD directory
11632// and an external domain.
11633type Trust struct {
11634	_ struct{} `type:"structure"`
11635
11636	// The date and time that the trust relationship was created.
11637	CreatedDateTime *time.Time `type:"timestamp"`
11638
11639	// The Directory ID of the AWS directory involved in the trust relationship.
11640	DirectoryId *string `type:"string"`
11641
11642	// The date and time that the trust relationship was last updated.
11643	LastUpdatedDateTime *time.Time `type:"timestamp"`
11644
11645	// The Fully Qualified Domain Name (FQDN) of the external domain involved in
11646	// the trust relationship.
11647	RemoteDomainName *string `type:"string"`
11648
11649	// Current state of selective authentication for the trust.
11650	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
11651
11652	// The date and time that the TrustState was last updated.
11653	StateLastUpdatedDateTime *time.Time `type:"timestamp"`
11654
11655	// The trust relationship direction.
11656	TrustDirection *string `type:"string" enum:"TrustDirection"`
11657
11658	// The unique ID of the trust relationship.
11659	TrustId *string `type:"string"`
11660
11661	// The trust relationship state.
11662	TrustState *string `type:"string" enum:"TrustState"`
11663
11664	// The reason for the TrustState.
11665	TrustStateReason *string `type:"string"`
11666
11667	// The trust relationship type. Forest is the default.
11668	TrustType *string `type:"string" enum:"TrustType"`
11669}
11670
11671// String returns the string representation
11672func (s Trust) String() string {
11673	return awsutil.Prettify(s)
11674}
11675
11676// GoString returns the string representation
11677func (s Trust) GoString() string {
11678	return s.String()
11679}
11680
11681// SetCreatedDateTime sets the CreatedDateTime field's value.
11682func (s *Trust) SetCreatedDateTime(v time.Time) *Trust {
11683	s.CreatedDateTime = &v
11684	return s
11685}
11686
11687// SetDirectoryId sets the DirectoryId field's value.
11688func (s *Trust) SetDirectoryId(v string) *Trust {
11689	s.DirectoryId = &v
11690	return s
11691}
11692
11693// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
11694func (s *Trust) SetLastUpdatedDateTime(v time.Time) *Trust {
11695	s.LastUpdatedDateTime = &v
11696	return s
11697}
11698
11699// SetRemoteDomainName sets the RemoteDomainName field's value.
11700func (s *Trust) SetRemoteDomainName(v string) *Trust {
11701	s.RemoteDomainName = &v
11702	return s
11703}
11704
11705// SetSelectiveAuth sets the SelectiveAuth field's value.
11706func (s *Trust) SetSelectiveAuth(v string) *Trust {
11707	s.SelectiveAuth = &v
11708	return s
11709}
11710
11711// SetStateLastUpdatedDateTime sets the StateLastUpdatedDateTime field's value.
11712func (s *Trust) SetStateLastUpdatedDateTime(v time.Time) *Trust {
11713	s.StateLastUpdatedDateTime = &v
11714	return s
11715}
11716
11717// SetTrustDirection sets the TrustDirection field's value.
11718func (s *Trust) SetTrustDirection(v string) *Trust {
11719	s.TrustDirection = &v
11720	return s
11721}
11722
11723// SetTrustId sets the TrustId field's value.
11724func (s *Trust) SetTrustId(v string) *Trust {
11725	s.TrustId = &v
11726	return s
11727}
11728
11729// SetTrustState sets the TrustState field's value.
11730func (s *Trust) SetTrustState(v string) *Trust {
11731	s.TrustState = &v
11732	return s
11733}
11734
11735// SetTrustStateReason sets the TrustStateReason field's value.
11736func (s *Trust) SetTrustStateReason(v string) *Trust {
11737	s.TrustStateReason = &v
11738	return s
11739}
11740
11741// SetTrustType sets the TrustType field's value.
11742func (s *Trust) SetTrustType(v string) *Trust {
11743	s.TrustType = &v
11744	return s
11745}
11746
11747type UnshareDirectoryInput struct {
11748	_ struct{} `type:"structure"`
11749
11750	// The identifier of the AWS Managed Microsoft AD directory that you want to
11751	// stop sharing.
11752	//
11753	// DirectoryId is a required field
11754	DirectoryId *string `type:"string" required:"true"`
11755
11756	// Identifier for the directory consumer account with whom the directory has
11757	// to be unshared.
11758	//
11759	// UnshareTarget is a required field
11760	UnshareTarget *UnshareTarget `type:"structure" required:"true"`
11761}
11762
11763// String returns the string representation
11764func (s UnshareDirectoryInput) String() string {
11765	return awsutil.Prettify(s)
11766}
11767
11768// GoString returns the string representation
11769func (s UnshareDirectoryInput) GoString() string {
11770	return s.String()
11771}
11772
11773// Validate inspects the fields of the type to determine if they are valid.
11774func (s *UnshareDirectoryInput) Validate() error {
11775	invalidParams := request.ErrInvalidParams{Context: "UnshareDirectoryInput"}
11776	if s.DirectoryId == nil {
11777		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11778	}
11779	if s.UnshareTarget == nil {
11780		invalidParams.Add(request.NewErrParamRequired("UnshareTarget"))
11781	}
11782	if s.UnshareTarget != nil {
11783		if err := s.UnshareTarget.Validate(); err != nil {
11784			invalidParams.AddNested("UnshareTarget", err.(request.ErrInvalidParams))
11785		}
11786	}
11787
11788	if invalidParams.Len() > 0 {
11789		return invalidParams
11790	}
11791	return nil
11792}
11793
11794// SetDirectoryId sets the DirectoryId field's value.
11795func (s *UnshareDirectoryInput) SetDirectoryId(v string) *UnshareDirectoryInput {
11796	s.DirectoryId = &v
11797	return s
11798}
11799
11800// SetUnshareTarget sets the UnshareTarget field's value.
11801func (s *UnshareDirectoryInput) SetUnshareTarget(v *UnshareTarget) *UnshareDirectoryInput {
11802	s.UnshareTarget = v
11803	return s
11804}
11805
11806type UnshareDirectoryOutput struct {
11807	_ struct{} `type:"structure"`
11808
11809	// Identifier of the directory stored in the directory consumer account that
11810	// is to be unshared from the specified directory (DirectoryId).
11811	SharedDirectoryId *string `type:"string"`
11812}
11813
11814// String returns the string representation
11815func (s UnshareDirectoryOutput) String() string {
11816	return awsutil.Prettify(s)
11817}
11818
11819// GoString returns the string representation
11820func (s UnshareDirectoryOutput) GoString() string {
11821	return s.String()
11822}
11823
11824// SetSharedDirectoryId sets the SharedDirectoryId field's value.
11825func (s *UnshareDirectoryOutput) SetSharedDirectoryId(v string) *UnshareDirectoryOutput {
11826	s.SharedDirectoryId = &v
11827	return s
11828}
11829
11830// Identifier that contains details about the directory consumer account with
11831// whom the directory is being unshared.
11832type UnshareTarget struct {
11833	_ struct{} `type:"structure"`
11834
11835	// Identifier of the directory consumer account.
11836	//
11837	// Id is a required field
11838	Id *string `min:"1" type:"string" required:"true"`
11839
11840	// Type of identifier to be used in the Id field.
11841	//
11842	// Type is a required field
11843	Type *string `type:"string" required:"true" enum:"TargetType"`
11844}
11845
11846// String returns the string representation
11847func (s UnshareTarget) String() string {
11848	return awsutil.Prettify(s)
11849}
11850
11851// GoString returns the string representation
11852func (s UnshareTarget) GoString() string {
11853	return s.String()
11854}
11855
11856// Validate inspects the fields of the type to determine if they are valid.
11857func (s *UnshareTarget) Validate() error {
11858	invalidParams := request.ErrInvalidParams{Context: "UnshareTarget"}
11859	if s.Id == nil {
11860		invalidParams.Add(request.NewErrParamRequired("Id"))
11861	}
11862	if s.Id != nil && len(*s.Id) < 1 {
11863		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
11864	}
11865	if s.Type == nil {
11866		invalidParams.Add(request.NewErrParamRequired("Type"))
11867	}
11868
11869	if invalidParams.Len() > 0 {
11870		return invalidParams
11871	}
11872	return nil
11873}
11874
11875// SetId sets the Id field's value.
11876func (s *UnshareTarget) SetId(v string) *UnshareTarget {
11877	s.Id = &v
11878	return s
11879}
11880
11881// SetType sets the Type field's value.
11882func (s *UnshareTarget) SetType(v string) *UnshareTarget {
11883	s.Type = &v
11884	return s
11885}
11886
11887// Updates a conditional forwarder.
11888type UpdateConditionalForwarderInput struct {
11889	_ struct{} `type:"structure"`
11890
11891	// The directory ID of the AWS directory for which to update the conditional
11892	// forwarder.
11893	//
11894	// DirectoryId is a required field
11895	DirectoryId *string `type:"string" required:"true"`
11896
11897	// The updated IP addresses of the remote DNS server associated with the conditional
11898	// forwarder.
11899	//
11900	// DnsIpAddrs is a required field
11901	DnsIpAddrs []*string `type:"list" required:"true"`
11902
11903	// The fully qualified domain name (FQDN) of the remote domain with which you
11904	// will set up a trust relationship.
11905	//
11906	// RemoteDomainName is a required field
11907	RemoteDomainName *string `type:"string" required:"true"`
11908}
11909
11910// String returns the string representation
11911func (s UpdateConditionalForwarderInput) String() string {
11912	return awsutil.Prettify(s)
11913}
11914
11915// GoString returns the string representation
11916func (s UpdateConditionalForwarderInput) GoString() string {
11917	return s.String()
11918}
11919
11920// Validate inspects the fields of the type to determine if they are valid.
11921func (s *UpdateConditionalForwarderInput) Validate() error {
11922	invalidParams := request.ErrInvalidParams{Context: "UpdateConditionalForwarderInput"}
11923	if s.DirectoryId == nil {
11924		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11925	}
11926	if s.DnsIpAddrs == nil {
11927		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
11928	}
11929	if s.RemoteDomainName == nil {
11930		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
11931	}
11932
11933	if invalidParams.Len() > 0 {
11934		return invalidParams
11935	}
11936	return nil
11937}
11938
11939// SetDirectoryId sets the DirectoryId field's value.
11940func (s *UpdateConditionalForwarderInput) SetDirectoryId(v string) *UpdateConditionalForwarderInput {
11941	s.DirectoryId = &v
11942	return s
11943}
11944
11945// SetDnsIpAddrs sets the DnsIpAddrs field's value.
11946func (s *UpdateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *UpdateConditionalForwarderInput {
11947	s.DnsIpAddrs = v
11948	return s
11949}
11950
11951// SetRemoteDomainName sets the RemoteDomainName field's value.
11952func (s *UpdateConditionalForwarderInput) SetRemoteDomainName(v string) *UpdateConditionalForwarderInput {
11953	s.RemoteDomainName = &v
11954	return s
11955}
11956
11957// The result of an UpdateConditionalForwarder request.
11958type UpdateConditionalForwarderOutput struct {
11959	_ struct{} `type:"structure"`
11960}
11961
11962// String returns the string representation
11963func (s UpdateConditionalForwarderOutput) String() string {
11964	return awsutil.Prettify(s)
11965}
11966
11967// GoString returns the string representation
11968func (s UpdateConditionalForwarderOutput) GoString() string {
11969	return s.String()
11970}
11971
11972type UpdateNumberOfDomainControllersInput struct {
11973	_ struct{} `type:"structure"`
11974
11975	// The number of domain controllers desired in the directory.
11976	//
11977	// DesiredNumber is a required field
11978	DesiredNumber *int64 `min:"2" type:"integer" required:"true"`
11979
11980	// Identifier of the directory to which the domain controllers will be added
11981	// or removed.
11982	//
11983	// DirectoryId is a required field
11984	DirectoryId *string `type:"string" required:"true"`
11985}
11986
11987// String returns the string representation
11988func (s UpdateNumberOfDomainControllersInput) String() string {
11989	return awsutil.Prettify(s)
11990}
11991
11992// GoString returns the string representation
11993func (s UpdateNumberOfDomainControllersInput) GoString() string {
11994	return s.String()
11995}
11996
11997// Validate inspects the fields of the type to determine if they are valid.
11998func (s *UpdateNumberOfDomainControllersInput) Validate() error {
11999	invalidParams := request.ErrInvalidParams{Context: "UpdateNumberOfDomainControllersInput"}
12000	if s.DesiredNumber == nil {
12001		invalidParams.Add(request.NewErrParamRequired("DesiredNumber"))
12002	}
12003	if s.DesiredNumber != nil && *s.DesiredNumber < 2 {
12004		invalidParams.Add(request.NewErrParamMinValue("DesiredNumber", 2))
12005	}
12006	if s.DirectoryId == nil {
12007		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12008	}
12009
12010	if invalidParams.Len() > 0 {
12011		return invalidParams
12012	}
12013	return nil
12014}
12015
12016// SetDesiredNumber sets the DesiredNumber field's value.
12017func (s *UpdateNumberOfDomainControllersInput) SetDesiredNumber(v int64) *UpdateNumberOfDomainControllersInput {
12018	s.DesiredNumber = &v
12019	return s
12020}
12021
12022// SetDirectoryId sets the DirectoryId field's value.
12023func (s *UpdateNumberOfDomainControllersInput) SetDirectoryId(v string) *UpdateNumberOfDomainControllersInput {
12024	s.DirectoryId = &v
12025	return s
12026}
12027
12028type UpdateNumberOfDomainControllersOutput struct {
12029	_ struct{} `type:"structure"`
12030}
12031
12032// String returns the string representation
12033func (s UpdateNumberOfDomainControllersOutput) String() string {
12034	return awsutil.Prettify(s)
12035}
12036
12037// GoString returns the string representation
12038func (s UpdateNumberOfDomainControllersOutput) GoString() string {
12039	return s.String()
12040}
12041
12042// Contains the inputs for the UpdateRadius operation.
12043type UpdateRadiusInput struct {
12044	_ struct{} `type:"structure"`
12045
12046	// The identifier of the directory for which to update the RADIUS server information.
12047	//
12048	// DirectoryId is a required field
12049	DirectoryId *string `type:"string" required:"true"`
12050
12051	// A RadiusSettings object that contains information about the RADIUS server.
12052	//
12053	// RadiusSettings is a required field
12054	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
12055}
12056
12057// String returns the string representation
12058func (s UpdateRadiusInput) String() string {
12059	return awsutil.Prettify(s)
12060}
12061
12062// GoString returns the string representation
12063func (s UpdateRadiusInput) GoString() string {
12064	return s.String()
12065}
12066
12067// Validate inspects the fields of the type to determine if they are valid.
12068func (s *UpdateRadiusInput) Validate() error {
12069	invalidParams := request.ErrInvalidParams{Context: "UpdateRadiusInput"}
12070	if s.DirectoryId == nil {
12071		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
12072	}
12073	if s.RadiusSettings == nil {
12074		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
12075	}
12076	if s.RadiusSettings != nil {
12077		if err := s.RadiusSettings.Validate(); err != nil {
12078			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
12079		}
12080	}
12081
12082	if invalidParams.Len() > 0 {
12083		return invalidParams
12084	}
12085	return nil
12086}
12087
12088// SetDirectoryId sets the DirectoryId field's value.
12089func (s *UpdateRadiusInput) SetDirectoryId(v string) *UpdateRadiusInput {
12090	s.DirectoryId = &v
12091	return s
12092}
12093
12094// SetRadiusSettings sets the RadiusSettings field's value.
12095func (s *UpdateRadiusInput) SetRadiusSettings(v *RadiusSettings) *UpdateRadiusInput {
12096	s.RadiusSettings = v
12097	return s
12098}
12099
12100// Contains the results of the UpdateRadius operation.
12101type UpdateRadiusOutput struct {
12102	_ struct{} `type:"structure"`
12103}
12104
12105// String returns the string representation
12106func (s UpdateRadiusOutput) String() string {
12107	return awsutil.Prettify(s)
12108}
12109
12110// GoString returns the string representation
12111func (s UpdateRadiusOutput) GoString() string {
12112	return s.String()
12113}
12114
12115type UpdateTrustInput struct {
12116	_ struct{} `type:"structure"`
12117
12118	// Updates selective authentication for the trust.
12119	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
12120
12121	// Identifier of the trust relationship.
12122	//
12123	// TrustId is a required field
12124	TrustId *string `type:"string" required:"true"`
12125}
12126
12127// String returns the string representation
12128func (s UpdateTrustInput) String() string {
12129	return awsutil.Prettify(s)
12130}
12131
12132// GoString returns the string representation
12133func (s UpdateTrustInput) GoString() string {
12134	return s.String()
12135}
12136
12137// Validate inspects the fields of the type to determine if they are valid.
12138func (s *UpdateTrustInput) Validate() error {
12139	invalidParams := request.ErrInvalidParams{Context: "UpdateTrustInput"}
12140	if s.TrustId == nil {
12141		invalidParams.Add(request.NewErrParamRequired("TrustId"))
12142	}
12143
12144	if invalidParams.Len() > 0 {
12145		return invalidParams
12146	}
12147	return nil
12148}
12149
12150// SetSelectiveAuth sets the SelectiveAuth field's value.
12151func (s *UpdateTrustInput) SetSelectiveAuth(v string) *UpdateTrustInput {
12152	s.SelectiveAuth = &v
12153	return s
12154}
12155
12156// SetTrustId sets the TrustId field's value.
12157func (s *UpdateTrustInput) SetTrustId(v string) *UpdateTrustInput {
12158	s.TrustId = &v
12159	return s
12160}
12161
12162type UpdateTrustOutput struct {
12163	_ struct{} `type:"structure"`
12164
12165	// The AWS request identifier.
12166	RequestId *string `type:"string"`
12167
12168	// Identifier of the trust relationship.
12169	TrustId *string `type:"string"`
12170}
12171
12172// String returns the string representation
12173func (s UpdateTrustOutput) String() string {
12174	return awsutil.Prettify(s)
12175}
12176
12177// GoString returns the string representation
12178func (s UpdateTrustOutput) GoString() string {
12179	return s.String()
12180}
12181
12182// SetRequestId sets the RequestId field's value.
12183func (s *UpdateTrustOutput) SetRequestId(v string) *UpdateTrustOutput {
12184	s.RequestId = &v
12185	return s
12186}
12187
12188// SetTrustId sets the TrustId field's value.
12189func (s *UpdateTrustOutput) SetTrustId(v string) *UpdateTrustOutput {
12190	s.TrustId = &v
12191	return s
12192}
12193
12194// Initiates the verification of an existing trust relationship between an AWS
12195// Managed Microsoft AD directory and an external domain.
12196type VerifyTrustInput struct {
12197	_ struct{} `type:"structure"`
12198
12199	// The unique Trust ID of the trust relationship to verify.
12200	//
12201	// TrustId is a required field
12202	TrustId *string `type:"string" required:"true"`
12203}
12204
12205// String returns the string representation
12206func (s VerifyTrustInput) String() string {
12207	return awsutil.Prettify(s)
12208}
12209
12210// GoString returns the string representation
12211func (s VerifyTrustInput) GoString() string {
12212	return s.String()
12213}
12214
12215// Validate inspects the fields of the type to determine if they are valid.
12216func (s *VerifyTrustInput) Validate() error {
12217	invalidParams := request.ErrInvalidParams{Context: "VerifyTrustInput"}
12218	if s.TrustId == nil {
12219		invalidParams.Add(request.NewErrParamRequired("TrustId"))
12220	}
12221
12222	if invalidParams.Len() > 0 {
12223		return invalidParams
12224	}
12225	return nil
12226}
12227
12228// SetTrustId sets the TrustId field's value.
12229func (s *VerifyTrustInput) SetTrustId(v string) *VerifyTrustInput {
12230	s.TrustId = &v
12231	return s
12232}
12233
12234// Result of a VerifyTrust request.
12235type VerifyTrustOutput struct {
12236	_ struct{} `type:"structure"`
12237
12238	// The unique Trust ID of the trust relationship that was verified.
12239	TrustId *string `type:"string"`
12240}
12241
12242// String returns the string representation
12243func (s VerifyTrustOutput) String() string {
12244	return awsutil.Prettify(s)
12245}
12246
12247// GoString returns the string representation
12248func (s VerifyTrustOutput) GoString() string {
12249	return s.String()
12250}
12251
12252// SetTrustId sets the TrustId field's value.
12253func (s *VerifyTrustOutput) SetTrustId(v string) *VerifyTrustOutput {
12254	s.TrustId = &v
12255	return s
12256}
12257
12258const (
12259	// CertificateStateRegistering is a CertificateState enum value
12260	CertificateStateRegistering = "Registering"
12261
12262	// CertificateStateRegistered is a CertificateState enum value
12263	CertificateStateRegistered = "Registered"
12264
12265	// CertificateStateRegisterFailed is a CertificateState enum value
12266	CertificateStateRegisterFailed = "RegisterFailed"
12267
12268	// CertificateStateDeregistering is a CertificateState enum value
12269	CertificateStateDeregistering = "Deregistering"
12270
12271	// CertificateStateDeregistered is a CertificateState enum value
12272	CertificateStateDeregistered = "Deregistered"
12273
12274	// CertificateStateDeregisterFailed is a CertificateState enum value
12275	CertificateStateDeregisterFailed = "DeregisterFailed"
12276)
12277
12278const (
12279	// DirectoryEditionEnterprise is a DirectoryEdition enum value
12280	DirectoryEditionEnterprise = "Enterprise"
12281
12282	// DirectoryEditionStandard is a DirectoryEdition enum value
12283	DirectoryEditionStandard = "Standard"
12284)
12285
12286const (
12287	// DirectorySizeSmall is a DirectorySize enum value
12288	DirectorySizeSmall = "Small"
12289
12290	// DirectorySizeLarge is a DirectorySize enum value
12291	DirectorySizeLarge = "Large"
12292)
12293
12294const (
12295	// DirectoryStageRequested is a DirectoryStage enum value
12296	DirectoryStageRequested = "Requested"
12297
12298	// DirectoryStageCreating is a DirectoryStage enum value
12299	DirectoryStageCreating = "Creating"
12300
12301	// DirectoryStageCreated is a DirectoryStage enum value
12302	DirectoryStageCreated = "Created"
12303
12304	// DirectoryStageActive is a DirectoryStage enum value
12305	DirectoryStageActive = "Active"
12306
12307	// DirectoryStageInoperable is a DirectoryStage enum value
12308	DirectoryStageInoperable = "Inoperable"
12309
12310	// DirectoryStageImpaired is a DirectoryStage enum value
12311	DirectoryStageImpaired = "Impaired"
12312
12313	// DirectoryStageRestoring is a DirectoryStage enum value
12314	DirectoryStageRestoring = "Restoring"
12315
12316	// DirectoryStageRestoreFailed is a DirectoryStage enum value
12317	DirectoryStageRestoreFailed = "RestoreFailed"
12318
12319	// DirectoryStageDeleting is a DirectoryStage enum value
12320	DirectoryStageDeleting = "Deleting"
12321
12322	// DirectoryStageDeleted is a DirectoryStage enum value
12323	DirectoryStageDeleted = "Deleted"
12324
12325	// DirectoryStageFailed is a DirectoryStage enum value
12326	DirectoryStageFailed = "Failed"
12327)
12328
12329const (
12330	// DirectoryTypeSimpleAd is a DirectoryType enum value
12331	DirectoryTypeSimpleAd = "SimpleAD"
12332
12333	// DirectoryTypeAdconnector is a DirectoryType enum value
12334	DirectoryTypeAdconnector = "ADConnector"
12335
12336	// DirectoryTypeMicrosoftAd is a DirectoryType enum value
12337	DirectoryTypeMicrosoftAd = "MicrosoftAD"
12338
12339	// DirectoryTypeSharedMicrosoftAd is a DirectoryType enum value
12340	DirectoryTypeSharedMicrosoftAd = "SharedMicrosoftAD"
12341)
12342
12343const (
12344	// DomainControllerStatusCreating is a DomainControllerStatus enum value
12345	DomainControllerStatusCreating = "Creating"
12346
12347	// DomainControllerStatusActive is a DomainControllerStatus enum value
12348	DomainControllerStatusActive = "Active"
12349
12350	// DomainControllerStatusImpaired is a DomainControllerStatus enum value
12351	DomainControllerStatusImpaired = "Impaired"
12352
12353	// DomainControllerStatusRestoring is a DomainControllerStatus enum value
12354	DomainControllerStatusRestoring = "Restoring"
12355
12356	// DomainControllerStatusDeleting is a DomainControllerStatus enum value
12357	DomainControllerStatusDeleting = "Deleting"
12358
12359	// DomainControllerStatusDeleted is a DomainControllerStatus enum value
12360	DomainControllerStatusDeleted = "Deleted"
12361
12362	// DomainControllerStatusFailed is a DomainControllerStatus enum value
12363	DomainControllerStatusFailed = "Failed"
12364)
12365
12366const (
12367	// IpRouteStatusMsgAdding is a IpRouteStatusMsg enum value
12368	IpRouteStatusMsgAdding = "Adding"
12369
12370	// IpRouteStatusMsgAdded is a IpRouteStatusMsg enum value
12371	IpRouteStatusMsgAdded = "Added"
12372
12373	// IpRouteStatusMsgRemoving is a IpRouteStatusMsg enum value
12374	IpRouteStatusMsgRemoving = "Removing"
12375
12376	// IpRouteStatusMsgRemoved is a IpRouteStatusMsg enum value
12377	IpRouteStatusMsgRemoved = "Removed"
12378
12379	// IpRouteStatusMsgAddFailed is a IpRouteStatusMsg enum value
12380	IpRouteStatusMsgAddFailed = "AddFailed"
12381
12382	// IpRouteStatusMsgRemoveFailed is a IpRouteStatusMsg enum value
12383	IpRouteStatusMsgRemoveFailed = "RemoveFailed"
12384)
12385
12386const (
12387	// LDAPSStatusEnabling is a LDAPSStatus enum value
12388	LDAPSStatusEnabling = "Enabling"
12389
12390	// LDAPSStatusEnabled is a LDAPSStatus enum value
12391	LDAPSStatusEnabled = "Enabled"
12392
12393	// LDAPSStatusEnableFailed is a LDAPSStatus enum value
12394	LDAPSStatusEnableFailed = "EnableFailed"
12395
12396	// LDAPSStatusDisabled is a LDAPSStatus enum value
12397	LDAPSStatusDisabled = "Disabled"
12398)
12399
12400const (
12401	// LDAPSTypeClient is a LDAPSType enum value
12402	LDAPSTypeClient = "Client"
12403)
12404
12405const (
12406	// RadiusAuthenticationProtocolPap is a RadiusAuthenticationProtocol enum value
12407	RadiusAuthenticationProtocolPap = "PAP"
12408
12409	// RadiusAuthenticationProtocolChap is a RadiusAuthenticationProtocol enum value
12410	RadiusAuthenticationProtocolChap = "CHAP"
12411
12412	// RadiusAuthenticationProtocolMsChapv1 is a RadiusAuthenticationProtocol enum value
12413	RadiusAuthenticationProtocolMsChapv1 = "MS-CHAPv1"
12414
12415	// RadiusAuthenticationProtocolMsChapv2 is a RadiusAuthenticationProtocol enum value
12416	RadiusAuthenticationProtocolMsChapv2 = "MS-CHAPv2"
12417)
12418
12419const (
12420	// RadiusStatusCreating is a RadiusStatus enum value
12421	RadiusStatusCreating = "Creating"
12422
12423	// RadiusStatusCompleted is a RadiusStatus enum value
12424	RadiusStatusCompleted = "Completed"
12425
12426	// RadiusStatusFailed is a RadiusStatus enum value
12427	RadiusStatusFailed = "Failed"
12428)
12429
12430const (
12431	// ReplicationScopeDomain is a ReplicationScope enum value
12432	ReplicationScopeDomain = "Domain"
12433)
12434
12435const (
12436	// SchemaExtensionStatusInitializing is a SchemaExtensionStatus enum value
12437	SchemaExtensionStatusInitializing = "Initializing"
12438
12439	// SchemaExtensionStatusCreatingSnapshot is a SchemaExtensionStatus enum value
12440	SchemaExtensionStatusCreatingSnapshot = "CreatingSnapshot"
12441
12442	// SchemaExtensionStatusUpdatingSchema is a SchemaExtensionStatus enum value
12443	SchemaExtensionStatusUpdatingSchema = "UpdatingSchema"
12444
12445	// SchemaExtensionStatusReplicating is a SchemaExtensionStatus enum value
12446	SchemaExtensionStatusReplicating = "Replicating"
12447
12448	// SchemaExtensionStatusCancelInProgress is a SchemaExtensionStatus enum value
12449	SchemaExtensionStatusCancelInProgress = "CancelInProgress"
12450
12451	// SchemaExtensionStatusRollbackInProgress is a SchemaExtensionStatus enum value
12452	SchemaExtensionStatusRollbackInProgress = "RollbackInProgress"
12453
12454	// SchemaExtensionStatusCancelled is a SchemaExtensionStatus enum value
12455	SchemaExtensionStatusCancelled = "Cancelled"
12456
12457	// SchemaExtensionStatusFailed is a SchemaExtensionStatus enum value
12458	SchemaExtensionStatusFailed = "Failed"
12459
12460	// SchemaExtensionStatusCompleted is a SchemaExtensionStatus enum value
12461	SchemaExtensionStatusCompleted = "Completed"
12462)
12463
12464const (
12465	// SelectiveAuthEnabled is a SelectiveAuth enum value
12466	SelectiveAuthEnabled = "Enabled"
12467
12468	// SelectiveAuthDisabled is a SelectiveAuth enum value
12469	SelectiveAuthDisabled = "Disabled"
12470)
12471
12472const (
12473	// ShareMethodOrganizations is a ShareMethod enum value
12474	ShareMethodOrganizations = "ORGANIZATIONS"
12475
12476	// ShareMethodHandshake is a ShareMethod enum value
12477	ShareMethodHandshake = "HANDSHAKE"
12478)
12479
12480const (
12481	// ShareStatusShared is a ShareStatus enum value
12482	ShareStatusShared = "Shared"
12483
12484	// ShareStatusPendingAcceptance is a ShareStatus enum value
12485	ShareStatusPendingAcceptance = "PendingAcceptance"
12486
12487	// ShareStatusRejected is a ShareStatus enum value
12488	ShareStatusRejected = "Rejected"
12489
12490	// ShareStatusRejecting is a ShareStatus enum value
12491	ShareStatusRejecting = "Rejecting"
12492
12493	// ShareStatusRejectFailed is a ShareStatus enum value
12494	ShareStatusRejectFailed = "RejectFailed"
12495
12496	// ShareStatusSharing is a ShareStatus enum value
12497	ShareStatusSharing = "Sharing"
12498
12499	// ShareStatusShareFailed is a ShareStatus enum value
12500	ShareStatusShareFailed = "ShareFailed"
12501
12502	// ShareStatusDeleted is a ShareStatus enum value
12503	ShareStatusDeleted = "Deleted"
12504
12505	// ShareStatusDeleting is a ShareStatus enum value
12506	ShareStatusDeleting = "Deleting"
12507)
12508
12509const (
12510	// SnapshotStatusCreating is a SnapshotStatus enum value
12511	SnapshotStatusCreating = "Creating"
12512
12513	// SnapshotStatusCompleted is a SnapshotStatus enum value
12514	SnapshotStatusCompleted = "Completed"
12515
12516	// SnapshotStatusFailed is a SnapshotStatus enum value
12517	SnapshotStatusFailed = "Failed"
12518)
12519
12520const (
12521	// SnapshotTypeAuto is a SnapshotType enum value
12522	SnapshotTypeAuto = "Auto"
12523
12524	// SnapshotTypeManual is a SnapshotType enum value
12525	SnapshotTypeManual = "Manual"
12526)
12527
12528const (
12529	// TargetTypeAccount is a TargetType enum value
12530	TargetTypeAccount = "ACCOUNT"
12531)
12532
12533const (
12534	// TopicStatusRegistered is a TopicStatus enum value
12535	TopicStatusRegistered = "Registered"
12536
12537	// TopicStatusTopicnotfound is a TopicStatus enum value
12538	TopicStatusTopicnotfound = "Topic not found"
12539
12540	// TopicStatusFailed is a TopicStatus enum value
12541	TopicStatusFailed = "Failed"
12542
12543	// TopicStatusDeleted is a TopicStatus enum value
12544	TopicStatusDeleted = "Deleted"
12545)
12546
12547const (
12548	// TrustDirectionOneWayOutgoing is a TrustDirection enum value
12549	TrustDirectionOneWayOutgoing = "One-Way: Outgoing"
12550
12551	// TrustDirectionOneWayIncoming is a TrustDirection enum value
12552	TrustDirectionOneWayIncoming = "One-Way: Incoming"
12553
12554	// TrustDirectionTwoWay is a TrustDirection enum value
12555	TrustDirectionTwoWay = "Two-Way"
12556)
12557
12558const (
12559	// TrustStateCreating is a TrustState enum value
12560	TrustStateCreating = "Creating"
12561
12562	// TrustStateCreated is a TrustState enum value
12563	TrustStateCreated = "Created"
12564
12565	// TrustStateVerifying is a TrustState enum value
12566	TrustStateVerifying = "Verifying"
12567
12568	// TrustStateVerifyFailed is a TrustState enum value
12569	TrustStateVerifyFailed = "VerifyFailed"
12570
12571	// TrustStateVerified is a TrustState enum value
12572	TrustStateVerified = "Verified"
12573
12574	// TrustStateUpdating is a TrustState enum value
12575	TrustStateUpdating = "Updating"
12576
12577	// TrustStateUpdateFailed is a TrustState enum value
12578	TrustStateUpdateFailed = "UpdateFailed"
12579
12580	// TrustStateUpdated is a TrustState enum value
12581	TrustStateUpdated = "Updated"
12582
12583	// TrustStateDeleting is a TrustState enum value
12584	TrustStateDeleting = "Deleting"
12585
12586	// TrustStateDeleted is a TrustState enum value
12587	TrustStateDeleted = "Deleted"
12588
12589	// TrustStateFailed is a TrustState enum value
12590	TrustStateFailed = "Failed"
12591)
12592
12593const (
12594	// TrustTypeForest is a TrustType enum value
12595	TrustTypeForest = "Forest"
12596
12597	// TrustTypeExternal is a TrustType enum value
12598	TrustTypeExternal = "External"
12599)
12600