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.
836//
837// Before you call CreateDirectory, ensure that all of the required permissions
838// have been explicitly granted through a policy. For details about what permissions
839// are required to run the CreateDirectory operation, see AWS Directory Service
840// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
841//
842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
843// with awserr.Error's Code and Message methods to get detailed information about
844// the error.
845//
846// See the AWS API reference guide for AWS Directory Service's
847// API operation CreateDirectory for usage and error information.
848//
849// Returned Error Codes:
850//   * ErrCodeDirectoryLimitExceededException "DirectoryLimitExceededException"
851//   The maximum number of directories in the region has been reached. You can
852//   use the GetDirectoryLimits operation to determine your directory limits in
853//   the region.
854//
855//   * ErrCodeInvalidParameterException "InvalidParameterException"
856//   One or more parameters are not valid.
857//
858//   * ErrCodeClientException "ClientException"
859//   A client exception has occurred.
860//
861//   * ErrCodeServiceException "ServiceException"
862//   An exception has occurred in AWS Directory Service.
863//
864// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectory
865func (c *DirectoryService) CreateDirectory(input *CreateDirectoryInput) (*CreateDirectoryOutput, error) {
866	req, out := c.CreateDirectoryRequest(input)
867	return out, req.Send()
868}
869
870// CreateDirectoryWithContext is the same as CreateDirectory with the addition of
871// the ability to pass a context and additional request options.
872//
873// See CreateDirectory for details on how to use this API operation.
874//
875// The context must be non-nil and will be used for request cancellation. If
876// the context is nil a panic will occur. In the future the SDK may create
877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
878// for more information on using Contexts.
879func (c *DirectoryService) CreateDirectoryWithContext(ctx aws.Context, input *CreateDirectoryInput, opts ...request.Option) (*CreateDirectoryOutput, error) {
880	req, out := c.CreateDirectoryRequest(input)
881	req.SetContext(ctx)
882	req.ApplyOptions(opts...)
883	return out, req.Send()
884}
885
886const opCreateLogSubscription = "CreateLogSubscription"
887
888// CreateLogSubscriptionRequest generates a "aws/request.Request" representing the
889// client's request for the CreateLogSubscription operation. The "output" return
890// value will be populated with the request's response once the request completes
891// successfully.
892//
893// Use "Send" method on the returned Request to send the API call to the service.
894// the "output" return value is not valid until after Send returns without error.
895//
896// See CreateLogSubscription for more information on using the CreateLogSubscription
897// API call, and error handling.
898//
899// This method is useful when you want to inject custom logic or configuration
900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
901//
902//
903//    // Example sending a request using the CreateLogSubscriptionRequest method.
904//    req, resp := client.CreateLogSubscriptionRequest(params)
905//
906//    err := req.Send()
907//    if err == nil { // resp is now filled
908//        fmt.Println(resp)
909//    }
910//
911// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
912func (c *DirectoryService) CreateLogSubscriptionRequest(input *CreateLogSubscriptionInput) (req *request.Request, output *CreateLogSubscriptionOutput) {
913	op := &request.Operation{
914		Name:       opCreateLogSubscription,
915		HTTPMethod: "POST",
916		HTTPPath:   "/",
917	}
918
919	if input == nil {
920		input = &CreateLogSubscriptionInput{}
921	}
922
923	output = &CreateLogSubscriptionOutput{}
924	req = c.newRequest(op, input, output)
925	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
926	return
927}
928
929// CreateLogSubscription API operation for AWS Directory Service.
930//
931// Creates a subscription to forward real time Directory Service domain controller
932// security logs to the specified CloudWatch log group in your AWS account.
933//
934// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
935// with awserr.Error's Code and Message methods to get detailed information about
936// the error.
937//
938// See the AWS API reference guide for AWS Directory Service's
939// API operation CreateLogSubscription for usage and error information.
940//
941// Returned Error Codes:
942//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
943//   The specified entity already exists.
944//
945//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
946//   The specified entity could not be found.
947//
948//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
949//   The operation is not supported.
950//
951//   * ErrCodeInsufficientPermissionsException "InsufficientPermissionsException"
952//   The account does not have sufficient permission to perform the operation.
953//
954//   * ErrCodeClientException "ClientException"
955//   A client exception has occurred.
956//
957//   * ErrCodeServiceException "ServiceException"
958//   An exception has occurred in AWS Directory Service.
959//
960// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateLogSubscription
961func (c *DirectoryService) CreateLogSubscription(input *CreateLogSubscriptionInput) (*CreateLogSubscriptionOutput, error) {
962	req, out := c.CreateLogSubscriptionRequest(input)
963	return out, req.Send()
964}
965
966// CreateLogSubscriptionWithContext is the same as CreateLogSubscription with the addition of
967// the ability to pass a context and additional request options.
968//
969// See CreateLogSubscription for details on how to use this API operation.
970//
971// The context must be non-nil and will be used for request cancellation. If
972// the context is nil a panic will occur. In the future the SDK may create
973// sub-contexts for http.Requests. See https://golang.org/pkg/context/
974// for more information on using Contexts.
975func (c *DirectoryService) CreateLogSubscriptionWithContext(ctx aws.Context, input *CreateLogSubscriptionInput, opts ...request.Option) (*CreateLogSubscriptionOutput, error) {
976	req, out := c.CreateLogSubscriptionRequest(input)
977	req.SetContext(ctx)
978	req.ApplyOptions(opts...)
979	return out, req.Send()
980}
981
982const opCreateMicrosoftAD = "CreateMicrosoftAD"
983
984// CreateMicrosoftADRequest generates a "aws/request.Request" representing the
985// client's request for the CreateMicrosoftAD operation. The "output" return
986// value will be populated with the request's response once the request completes
987// successfully.
988//
989// Use "Send" method on the returned Request to send the API call to the service.
990// the "output" return value is not valid until after Send returns without error.
991//
992// See CreateMicrosoftAD for more information on using the CreateMicrosoftAD
993// API call, and error handling.
994//
995// This method is useful when you want to inject custom logic or configuration
996// into the SDK's request lifecycle. Such as custom headers, or retry logic.
997//
998//
999//    // Example sending a request using the CreateMicrosoftADRequest method.
1000//    req, resp := client.CreateMicrosoftADRequest(params)
1001//
1002//    err := req.Send()
1003//    if err == nil { // resp is now filled
1004//        fmt.Println(resp)
1005//    }
1006//
1007// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1008func (c *DirectoryService) CreateMicrosoftADRequest(input *CreateMicrosoftADInput) (req *request.Request, output *CreateMicrosoftADOutput) {
1009	op := &request.Operation{
1010		Name:       opCreateMicrosoftAD,
1011		HTTPMethod: "POST",
1012		HTTPPath:   "/",
1013	}
1014
1015	if input == nil {
1016		input = &CreateMicrosoftADInput{}
1017	}
1018
1019	output = &CreateMicrosoftADOutput{}
1020	req = c.newRequest(op, input, output)
1021	return
1022}
1023
1024// CreateMicrosoftAD API operation for AWS Directory Service.
1025//
1026// Creates an AWS Managed Microsoft AD directory.
1027//
1028// Before you call CreateMicrosoftAD, ensure that all of the required permissions
1029// have been explicitly granted through a policy. For details about what permissions
1030// are required to run the CreateMicrosoftAD operation, see AWS Directory Service
1031// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1032//
1033// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1034// with awserr.Error's Code and Message methods to get detailed information about
1035// the error.
1036//
1037// See the AWS API reference guide for AWS Directory Service's
1038// API operation CreateMicrosoftAD for usage and error information.
1039//
1040// Returned Error Codes:
1041//   * ErrCodeDirectoryLimitExceededException "DirectoryLimitExceededException"
1042//   The maximum number of directories in the region has been reached. You can
1043//   use the GetDirectoryLimits operation to determine your directory limits in
1044//   the region.
1045//
1046//   * ErrCodeInvalidParameterException "InvalidParameterException"
1047//   One or more parameters are not valid.
1048//
1049//   * ErrCodeClientException "ClientException"
1050//   A client exception has occurred.
1051//
1052//   * ErrCodeServiceException "ServiceException"
1053//   An exception has occurred in AWS Directory Service.
1054//
1055//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1056//   The operation is not supported.
1057//
1058// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftAD
1059func (c *DirectoryService) CreateMicrosoftAD(input *CreateMicrosoftADInput) (*CreateMicrosoftADOutput, error) {
1060	req, out := c.CreateMicrosoftADRequest(input)
1061	return out, req.Send()
1062}
1063
1064// CreateMicrosoftADWithContext is the same as CreateMicrosoftAD with the addition of
1065// the ability to pass a context and additional request options.
1066//
1067// See CreateMicrosoftAD for details on how to use this API operation.
1068//
1069// The context must be non-nil and will be used for request cancellation. If
1070// the context is nil a panic will occur. In the future the SDK may create
1071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1072// for more information on using Contexts.
1073func (c *DirectoryService) CreateMicrosoftADWithContext(ctx aws.Context, input *CreateMicrosoftADInput, opts ...request.Option) (*CreateMicrosoftADOutput, error) {
1074	req, out := c.CreateMicrosoftADRequest(input)
1075	req.SetContext(ctx)
1076	req.ApplyOptions(opts...)
1077	return out, req.Send()
1078}
1079
1080const opCreateSnapshot = "CreateSnapshot"
1081
1082// CreateSnapshotRequest generates a "aws/request.Request" representing the
1083// client's request for the CreateSnapshot operation. The "output" return
1084// value will be populated with the request's response once the request completes
1085// successfully.
1086//
1087// Use "Send" method on the returned Request to send the API call to the service.
1088// the "output" return value is not valid until after Send returns without error.
1089//
1090// See CreateSnapshot for more information on using the CreateSnapshot
1091// API call, and error handling.
1092//
1093// This method is useful when you want to inject custom logic or configuration
1094// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1095//
1096//
1097//    // Example sending a request using the CreateSnapshotRequest method.
1098//    req, resp := client.CreateSnapshotRequest(params)
1099//
1100//    err := req.Send()
1101//    if err == nil { // resp is now filled
1102//        fmt.Println(resp)
1103//    }
1104//
1105// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1106func (c *DirectoryService) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
1107	op := &request.Operation{
1108		Name:       opCreateSnapshot,
1109		HTTPMethod: "POST",
1110		HTTPPath:   "/",
1111	}
1112
1113	if input == nil {
1114		input = &CreateSnapshotInput{}
1115	}
1116
1117	output = &CreateSnapshotOutput{}
1118	req = c.newRequest(op, input, output)
1119	return
1120}
1121
1122// CreateSnapshot API operation for AWS Directory Service.
1123//
1124// Creates a snapshot of a Simple AD or Microsoft AD directory in the AWS cloud.
1125//
1126// You cannot take snapshots of AD Connector directories.
1127//
1128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1129// with awserr.Error's Code and Message methods to get detailed information about
1130// the error.
1131//
1132// See the AWS API reference guide for AWS Directory Service's
1133// API operation CreateSnapshot for usage and error information.
1134//
1135// Returned Error Codes:
1136//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1137//   The specified entity could not be found.
1138//
1139//   * ErrCodeInvalidParameterException "InvalidParameterException"
1140//   One or more parameters are not valid.
1141//
1142//   * ErrCodeSnapshotLimitExceededException "SnapshotLimitExceededException"
1143//   The maximum number of manual snapshots for the directory has been reached.
1144//   You can use the GetSnapshotLimits operation to determine the snapshot limits
1145//   for a directory.
1146//
1147//   * ErrCodeClientException "ClientException"
1148//   A client exception has occurred.
1149//
1150//   * ErrCodeServiceException "ServiceException"
1151//   An exception has occurred in AWS Directory Service.
1152//
1153// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshot
1154func (c *DirectoryService) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
1155	req, out := c.CreateSnapshotRequest(input)
1156	return out, req.Send()
1157}
1158
1159// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
1160// the ability to pass a context and additional request options.
1161//
1162// See CreateSnapshot for details on how to use this API operation.
1163//
1164// The context must be non-nil and will be used for request cancellation. If
1165// the context is nil a panic will occur. In the future the SDK may create
1166// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1167// for more information on using Contexts.
1168func (c *DirectoryService) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
1169	req, out := c.CreateSnapshotRequest(input)
1170	req.SetContext(ctx)
1171	req.ApplyOptions(opts...)
1172	return out, req.Send()
1173}
1174
1175const opCreateTrust = "CreateTrust"
1176
1177// CreateTrustRequest generates a "aws/request.Request" representing the
1178// client's request for the CreateTrust operation. The "output" return
1179// value will be populated with the request's response once the request completes
1180// successfully.
1181//
1182// Use "Send" method on the returned Request to send the API call to the service.
1183// the "output" return value is not valid until after Send returns without error.
1184//
1185// See CreateTrust for more information on using the CreateTrust
1186// API call, and error handling.
1187//
1188// This method is useful when you want to inject custom logic or configuration
1189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1190//
1191//
1192//    // Example sending a request using the CreateTrustRequest method.
1193//    req, resp := client.CreateTrustRequest(params)
1194//
1195//    err := req.Send()
1196//    if err == nil { // resp is now filled
1197//        fmt.Println(resp)
1198//    }
1199//
1200// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1201func (c *DirectoryService) CreateTrustRequest(input *CreateTrustInput) (req *request.Request, output *CreateTrustOutput) {
1202	op := &request.Operation{
1203		Name:       opCreateTrust,
1204		HTTPMethod: "POST",
1205		HTTPPath:   "/",
1206	}
1207
1208	if input == nil {
1209		input = &CreateTrustInput{}
1210	}
1211
1212	output = &CreateTrustOutput{}
1213	req = c.newRequest(op, input, output)
1214	return
1215}
1216
1217// CreateTrust API operation for AWS Directory Service.
1218//
1219// AWS Directory Service for Microsoft Active Directory allows you to configure
1220// trust relationships. For example, you can establish a trust between your
1221// AWS Managed Microsoft AD directory, and your existing on-premises Microsoft
1222// Active Directory. This would allow you to provide users and groups access
1223// to resources in either domain, with a single set of credentials.
1224//
1225// This action initiates the creation of the AWS side of a trust relationship
1226// between an AWS Managed Microsoft AD directory and an external domain. You
1227// can create either a forest trust or an external trust.
1228//
1229// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1230// with awserr.Error's Code and Message methods to get detailed information about
1231// the error.
1232//
1233// See the AWS API reference guide for AWS Directory Service's
1234// API operation CreateTrust for usage and error information.
1235//
1236// Returned Error Codes:
1237//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
1238//   The specified entity already exists.
1239//
1240//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1241//   The specified entity could not be found.
1242//
1243//   * ErrCodeInvalidParameterException "InvalidParameterException"
1244//   One or more parameters are not valid.
1245//
1246//   * ErrCodeClientException "ClientException"
1247//   A client exception has occurred.
1248//
1249//   * ErrCodeServiceException "ServiceException"
1250//   An exception has occurred in AWS Directory Service.
1251//
1252//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1253//   The operation is not supported.
1254//
1255// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrust
1256func (c *DirectoryService) CreateTrust(input *CreateTrustInput) (*CreateTrustOutput, error) {
1257	req, out := c.CreateTrustRequest(input)
1258	return out, req.Send()
1259}
1260
1261// CreateTrustWithContext is the same as CreateTrust with the addition of
1262// the ability to pass a context and additional request options.
1263//
1264// See CreateTrust for details on how to use this API operation.
1265//
1266// The context must be non-nil and will be used for request cancellation. If
1267// the context is nil a panic will occur. In the future the SDK may create
1268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1269// for more information on using Contexts.
1270func (c *DirectoryService) CreateTrustWithContext(ctx aws.Context, input *CreateTrustInput, opts ...request.Option) (*CreateTrustOutput, error) {
1271	req, out := c.CreateTrustRequest(input)
1272	req.SetContext(ctx)
1273	req.ApplyOptions(opts...)
1274	return out, req.Send()
1275}
1276
1277const opDeleteConditionalForwarder = "DeleteConditionalForwarder"
1278
1279// DeleteConditionalForwarderRequest generates a "aws/request.Request" representing the
1280// client's request for the DeleteConditionalForwarder operation. The "output" return
1281// value will be populated with the request's response once the request completes
1282// successfully.
1283//
1284// Use "Send" method on the returned Request to send the API call to the service.
1285// the "output" return value is not valid until after Send returns without error.
1286//
1287// See DeleteConditionalForwarder for more information on using the DeleteConditionalForwarder
1288// API call, and error handling.
1289//
1290// This method is useful when you want to inject custom logic or configuration
1291// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1292//
1293//
1294//    // Example sending a request using the DeleteConditionalForwarderRequest method.
1295//    req, resp := client.DeleteConditionalForwarderRequest(params)
1296//
1297//    err := req.Send()
1298//    if err == nil { // resp is now filled
1299//        fmt.Println(resp)
1300//    }
1301//
1302// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1303func (c *DirectoryService) DeleteConditionalForwarderRequest(input *DeleteConditionalForwarderInput) (req *request.Request, output *DeleteConditionalForwarderOutput) {
1304	op := &request.Operation{
1305		Name:       opDeleteConditionalForwarder,
1306		HTTPMethod: "POST",
1307		HTTPPath:   "/",
1308	}
1309
1310	if input == nil {
1311		input = &DeleteConditionalForwarderInput{}
1312	}
1313
1314	output = &DeleteConditionalForwarderOutput{}
1315	req = c.newRequest(op, input, output)
1316	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1317	return
1318}
1319
1320// DeleteConditionalForwarder API operation for AWS Directory Service.
1321//
1322// Deletes a conditional forwarder that has been set up for your AWS directory.
1323//
1324// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1325// with awserr.Error's Code and Message methods to get detailed information about
1326// the error.
1327//
1328// See the AWS API reference guide for AWS Directory Service's
1329// API operation DeleteConditionalForwarder for usage and error information.
1330//
1331// Returned Error Codes:
1332//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1333//   The specified entity could not be found.
1334//
1335//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
1336//   The specified directory is unavailable or could not be found.
1337//
1338//   * ErrCodeInvalidParameterException "InvalidParameterException"
1339//   One or more parameters are not valid.
1340//
1341//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1342//   The operation is not supported.
1343//
1344//   * ErrCodeClientException "ClientException"
1345//   A client exception has occurred.
1346//
1347//   * ErrCodeServiceException "ServiceException"
1348//   An exception has occurred in AWS Directory Service.
1349//
1350// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarder
1351func (c *DirectoryService) DeleteConditionalForwarder(input *DeleteConditionalForwarderInput) (*DeleteConditionalForwarderOutput, error) {
1352	req, out := c.DeleteConditionalForwarderRequest(input)
1353	return out, req.Send()
1354}
1355
1356// DeleteConditionalForwarderWithContext is the same as DeleteConditionalForwarder with the addition of
1357// the ability to pass a context and additional request options.
1358//
1359// See DeleteConditionalForwarder for details on how to use this API operation.
1360//
1361// The context must be non-nil and will be used for request cancellation. If
1362// the context is nil a panic will occur. In the future the SDK may create
1363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1364// for more information on using Contexts.
1365func (c *DirectoryService) DeleteConditionalForwarderWithContext(ctx aws.Context, input *DeleteConditionalForwarderInput, opts ...request.Option) (*DeleteConditionalForwarderOutput, error) {
1366	req, out := c.DeleteConditionalForwarderRequest(input)
1367	req.SetContext(ctx)
1368	req.ApplyOptions(opts...)
1369	return out, req.Send()
1370}
1371
1372const opDeleteDirectory = "DeleteDirectory"
1373
1374// DeleteDirectoryRequest generates a "aws/request.Request" representing the
1375// client's request for the DeleteDirectory operation. The "output" return
1376// value will be populated with the request's response once the request completes
1377// successfully.
1378//
1379// Use "Send" method on the returned Request to send the API call to the service.
1380// the "output" return value is not valid until after Send returns without error.
1381//
1382// See DeleteDirectory for more information on using the DeleteDirectory
1383// API call, and error handling.
1384//
1385// This method is useful when you want to inject custom logic or configuration
1386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1387//
1388//
1389//    // Example sending a request using the DeleteDirectoryRequest method.
1390//    req, resp := client.DeleteDirectoryRequest(params)
1391//
1392//    err := req.Send()
1393//    if err == nil { // resp is now filled
1394//        fmt.Println(resp)
1395//    }
1396//
1397// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1398func (c *DirectoryService) DeleteDirectoryRequest(input *DeleteDirectoryInput) (req *request.Request, output *DeleteDirectoryOutput) {
1399	op := &request.Operation{
1400		Name:       opDeleteDirectory,
1401		HTTPMethod: "POST",
1402		HTTPPath:   "/",
1403	}
1404
1405	if input == nil {
1406		input = &DeleteDirectoryInput{}
1407	}
1408
1409	output = &DeleteDirectoryOutput{}
1410	req = c.newRequest(op, input, output)
1411	return
1412}
1413
1414// DeleteDirectory API operation for AWS Directory Service.
1415//
1416// Deletes an AWS Directory Service directory.
1417//
1418// Before you call DeleteDirectory, ensure that all of the required permissions
1419// have been explicitly granted through a policy. For details about what permissions
1420// are required to run the DeleteDirectory operation, see AWS Directory Service
1421// API Permissions: Actions, Resources, and Conditions Reference (http://docs.aws.amazon.com/directoryservice/latest/admin-guide/UsingWithDS_IAM_ResourcePermissions.html).
1422//
1423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1424// with awserr.Error's Code and Message methods to get detailed information about
1425// the error.
1426//
1427// See the AWS API reference guide for AWS Directory Service's
1428// API operation DeleteDirectory for usage and error information.
1429//
1430// Returned Error Codes:
1431//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1432//   The specified entity could not be found.
1433//
1434//   * ErrCodeClientException "ClientException"
1435//   A client exception has occurred.
1436//
1437//   * ErrCodeServiceException "ServiceException"
1438//   An exception has occurred in AWS Directory Service.
1439//
1440// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectory
1441func (c *DirectoryService) DeleteDirectory(input *DeleteDirectoryInput) (*DeleteDirectoryOutput, error) {
1442	req, out := c.DeleteDirectoryRequest(input)
1443	return out, req.Send()
1444}
1445
1446// DeleteDirectoryWithContext is the same as DeleteDirectory with the addition of
1447// the ability to pass a context and additional request options.
1448//
1449// See DeleteDirectory for details on how to use this API operation.
1450//
1451// The context must be non-nil and will be used for request cancellation. If
1452// the context is nil a panic will occur. In the future the SDK may create
1453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1454// for more information on using Contexts.
1455func (c *DirectoryService) DeleteDirectoryWithContext(ctx aws.Context, input *DeleteDirectoryInput, opts ...request.Option) (*DeleteDirectoryOutput, error) {
1456	req, out := c.DeleteDirectoryRequest(input)
1457	req.SetContext(ctx)
1458	req.ApplyOptions(opts...)
1459	return out, req.Send()
1460}
1461
1462const opDeleteLogSubscription = "DeleteLogSubscription"
1463
1464// DeleteLogSubscriptionRequest generates a "aws/request.Request" representing the
1465// client's request for the DeleteLogSubscription operation. The "output" return
1466// value will be populated with the request's response once the request completes
1467// successfully.
1468//
1469// Use "Send" method on the returned Request to send the API call to the service.
1470// the "output" return value is not valid until after Send returns without error.
1471//
1472// See DeleteLogSubscription for more information on using the DeleteLogSubscription
1473// API call, and error handling.
1474//
1475// This method is useful when you want to inject custom logic or configuration
1476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1477//
1478//
1479//    // Example sending a request using the DeleteLogSubscriptionRequest method.
1480//    req, resp := client.DeleteLogSubscriptionRequest(params)
1481//
1482//    err := req.Send()
1483//    if err == nil { // resp is now filled
1484//        fmt.Println(resp)
1485//    }
1486//
1487// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1488func (c *DirectoryService) DeleteLogSubscriptionRequest(input *DeleteLogSubscriptionInput) (req *request.Request, output *DeleteLogSubscriptionOutput) {
1489	op := &request.Operation{
1490		Name:       opDeleteLogSubscription,
1491		HTTPMethod: "POST",
1492		HTTPPath:   "/",
1493	}
1494
1495	if input == nil {
1496		input = &DeleteLogSubscriptionInput{}
1497	}
1498
1499	output = &DeleteLogSubscriptionOutput{}
1500	req = c.newRequest(op, input, output)
1501	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1502	return
1503}
1504
1505// DeleteLogSubscription API operation for AWS Directory Service.
1506//
1507// Deletes the specified log subscription.
1508//
1509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1510// with awserr.Error's Code and Message methods to get detailed information about
1511// the error.
1512//
1513// See the AWS API reference guide for AWS Directory Service's
1514// API operation DeleteLogSubscription for usage and error information.
1515//
1516// Returned Error Codes:
1517//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1518//   The specified entity could not be found.
1519//
1520//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1521//   The operation is not supported.
1522//
1523//   * ErrCodeClientException "ClientException"
1524//   A client exception has occurred.
1525//
1526//   * ErrCodeServiceException "ServiceException"
1527//   An exception has occurred in AWS Directory Service.
1528//
1529// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteLogSubscription
1530func (c *DirectoryService) DeleteLogSubscription(input *DeleteLogSubscriptionInput) (*DeleteLogSubscriptionOutput, error) {
1531	req, out := c.DeleteLogSubscriptionRequest(input)
1532	return out, req.Send()
1533}
1534
1535// DeleteLogSubscriptionWithContext is the same as DeleteLogSubscription with the addition of
1536// the ability to pass a context and additional request options.
1537//
1538// See DeleteLogSubscription for details on how to use this API operation.
1539//
1540// The context must be non-nil and will be used for request cancellation. If
1541// the context is nil a panic will occur. In the future the SDK may create
1542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1543// for more information on using Contexts.
1544func (c *DirectoryService) DeleteLogSubscriptionWithContext(ctx aws.Context, input *DeleteLogSubscriptionInput, opts ...request.Option) (*DeleteLogSubscriptionOutput, error) {
1545	req, out := c.DeleteLogSubscriptionRequest(input)
1546	req.SetContext(ctx)
1547	req.ApplyOptions(opts...)
1548	return out, req.Send()
1549}
1550
1551const opDeleteSnapshot = "DeleteSnapshot"
1552
1553// DeleteSnapshotRequest generates a "aws/request.Request" representing the
1554// client's request for the DeleteSnapshot operation. The "output" return
1555// value will be populated with the request's response once the request completes
1556// successfully.
1557//
1558// Use "Send" method on the returned Request to send the API call to the service.
1559// the "output" return value is not valid until after Send returns without error.
1560//
1561// See DeleteSnapshot for more information on using the DeleteSnapshot
1562// API call, and error handling.
1563//
1564// This method is useful when you want to inject custom logic or configuration
1565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1566//
1567//
1568//    // Example sending a request using the DeleteSnapshotRequest method.
1569//    req, resp := client.DeleteSnapshotRequest(params)
1570//
1571//    err := req.Send()
1572//    if err == nil { // resp is now filled
1573//        fmt.Println(resp)
1574//    }
1575//
1576// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1577func (c *DirectoryService) DeleteSnapshotRequest(input *DeleteSnapshotInput) (req *request.Request, output *DeleteSnapshotOutput) {
1578	op := &request.Operation{
1579		Name:       opDeleteSnapshot,
1580		HTTPMethod: "POST",
1581		HTTPPath:   "/",
1582	}
1583
1584	if input == nil {
1585		input = &DeleteSnapshotInput{}
1586	}
1587
1588	output = &DeleteSnapshotOutput{}
1589	req = c.newRequest(op, input, output)
1590	return
1591}
1592
1593// DeleteSnapshot API operation for AWS Directory Service.
1594//
1595// Deletes a directory snapshot.
1596//
1597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1598// with awserr.Error's Code and Message methods to get detailed information about
1599// the error.
1600//
1601// See the AWS API reference guide for AWS Directory Service's
1602// API operation DeleteSnapshot for usage and error information.
1603//
1604// Returned Error Codes:
1605//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1606//   The specified entity could not be found.
1607//
1608//   * ErrCodeInvalidParameterException "InvalidParameterException"
1609//   One or more parameters are not valid.
1610//
1611//   * ErrCodeClientException "ClientException"
1612//   A client exception has occurred.
1613//
1614//   * ErrCodeServiceException "ServiceException"
1615//   An exception has occurred in AWS Directory Service.
1616//
1617// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshot
1618func (c *DirectoryService) DeleteSnapshot(input *DeleteSnapshotInput) (*DeleteSnapshotOutput, error) {
1619	req, out := c.DeleteSnapshotRequest(input)
1620	return out, req.Send()
1621}
1622
1623// DeleteSnapshotWithContext is the same as DeleteSnapshot with the addition of
1624// the ability to pass a context and additional request options.
1625//
1626// See DeleteSnapshot for details on how to use this API operation.
1627//
1628// The context must be non-nil and will be used for request cancellation. If
1629// the context is nil a panic will occur. In the future the SDK may create
1630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1631// for more information on using Contexts.
1632func (c *DirectoryService) DeleteSnapshotWithContext(ctx aws.Context, input *DeleteSnapshotInput, opts ...request.Option) (*DeleteSnapshotOutput, error) {
1633	req, out := c.DeleteSnapshotRequest(input)
1634	req.SetContext(ctx)
1635	req.ApplyOptions(opts...)
1636	return out, req.Send()
1637}
1638
1639const opDeleteTrust = "DeleteTrust"
1640
1641// DeleteTrustRequest generates a "aws/request.Request" representing the
1642// client's request for the DeleteTrust operation. The "output" return
1643// value will be populated with the request's response once the request completes
1644// successfully.
1645//
1646// Use "Send" method on the returned Request to send the API call to the service.
1647// the "output" return value is not valid until after Send returns without error.
1648//
1649// See DeleteTrust for more information on using the DeleteTrust
1650// API call, and error handling.
1651//
1652// This method is useful when you want to inject custom logic or configuration
1653// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1654//
1655//
1656//    // Example sending a request using the DeleteTrustRequest method.
1657//    req, resp := client.DeleteTrustRequest(params)
1658//
1659//    err := req.Send()
1660//    if err == nil { // resp is now filled
1661//        fmt.Println(resp)
1662//    }
1663//
1664// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1665func (c *DirectoryService) DeleteTrustRequest(input *DeleteTrustInput) (req *request.Request, output *DeleteTrustOutput) {
1666	op := &request.Operation{
1667		Name:       opDeleteTrust,
1668		HTTPMethod: "POST",
1669		HTTPPath:   "/",
1670	}
1671
1672	if input == nil {
1673		input = &DeleteTrustInput{}
1674	}
1675
1676	output = &DeleteTrustOutput{}
1677	req = c.newRequest(op, input, output)
1678	return
1679}
1680
1681// DeleteTrust API operation for AWS Directory Service.
1682//
1683// Deletes an existing trust relationship between your AWS Managed Microsoft
1684// AD directory and an external domain.
1685//
1686// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1687// with awserr.Error's Code and Message methods to get detailed information about
1688// the error.
1689//
1690// See the AWS API reference guide for AWS Directory Service's
1691// API operation DeleteTrust for usage and error information.
1692//
1693// Returned Error Codes:
1694//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1695//   The specified entity could not be found.
1696//
1697//   * ErrCodeInvalidParameterException "InvalidParameterException"
1698//   One or more parameters are not valid.
1699//
1700//   * ErrCodeClientException "ClientException"
1701//   A client exception has occurred.
1702//
1703//   * ErrCodeServiceException "ServiceException"
1704//   An exception has occurred in AWS Directory Service.
1705//
1706//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1707//   The operation is not supported.
1708//
1709// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrust
1710func (c *DirectoryService) DeleteTrust(input *DeleteTrustInput) (*DeleteTrustOutput, error) {
1711	req, out := c.DeleteTrustRequest(input)
1712	return out, req.Send()
1713}
1714
1715// DeleteTrustWithContext is the same as DeleteTrust with the addition of
1716// the ability to pass a context and additional request options.
1717//
1718// See DeleteTrust for details on how to use this API operation.
1719//
1720// The context must be non-nil and will be used for request cancellation. If
1721// the context is nil a panic will occur. In the future the SDK may create
1722// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1723// for more information on using Contexts.
1724func (c *DirectoryService) DeleteTrustWithContext(ctx aws.Context, input *DeleteTrustInput, opts ...request.Option) (*DeleteTrustOutput, error) {
1725	req, out := c.DeleteTrustRequest(input)
1726	req.SetContext(ctx)
1727	req.ApplyOptions(opts...)
1728	return out, req.Send()
1729}
1730
1731const opDeregisterEventTopic = "DeregisterEventTopic"
1732
1733// DeregisterEventTopicRequest generates a "aws/request.Request" representing the
1734// client's request for the DeregisterEventTopic operation. The "output" return
1735// value will be populated with the request's response once the request completes
1736// successfully.
1737//
1738// Use "Send" method on the returned Request to send the API call to the service.
1739// the "output" return value is not valid until after Send returns without error.
1740//
1741// See DeregisterEventTopic for more information on using the DeregisterEventTopic
1742// API call, and error handling.
1743//
1744// This method is useful when you want to inject custom logic or configuration
1745// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1746//
1747//
1748//    // Example sending a request using the DeregisterEventTopicRequest method.
1749//    req, resp := client.DeregisterEventTopicRequest(params)
1750//
1751//    err := req.Send()
1752//    if err == nil { // resp is now filled
1753//        fmt.Println(resp)
1754//    }
1755//
1756// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
1757func (c *DirectoryService) DeregisterEventTopicRequest(input *DeregisterEventTopicInput) (req *request.Request, output *DeregisterEventTopicOutput) {
1758	op := &request.Operation{
1759		Name:       opDeregisterEventTopic,
1760		HTTPMethod: "POST",
1761		HTTPPath:   "/",
1762	}
1763
1764	if input == nil {
1765		input = &DeregisterEventTopicInput{}
1766	}
1767
1768	output = &DeregisterEventTopicOutput{}
1769	req = c.newRequest(op, input, output)
1770	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1771	return
1772}
1773
1774// DeregisterEventTopic API operation for AWS Directory Service.
1775//
1776// Removes the specified directory as a publisher to the specified SNS topic.
1777//
1778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1779// with awserr.Error's Code and Message methods to get detailed information about
1780// the error.
1781//
1782// See the AWS API reference guide for AWS Directory Service's
1783// API operation DeregisterEventTopic for usage and error information.
1784//
1785// Returned Error Codes:
1786//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1787//   The specified entity could not be found.
1788//
1789//   * ErrCodeInvalidParameterException "InvalidParameterException"
1790//   One or more parameters are not valid.
1791//
1792//   * ErrCodeClientException "ClientException"
1793//   A client exception has occurred.
1794//
1795//   * ErrCodeServiceException "ServiceException"
1796//   An exception has occurred in AWS Directory Service.
1797//
1798// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopic
1799func (c *DirectoryService) DeregisterEventTopic(input *DeregisterEventTopicInput) (*DeregisterEventTopicOutput, error) {
1800	req, out := c.DeregisterEventTopicRequest(input)
1801	return out, req.Send()
1802}
1803
1804// DeregisterEventTopicWithContext is the same as DeregisterEventTopic with the addition of
1805// the ability to pass a context and additional request options.
1806//
1807// See DeregisterEventTopic for details on how to use this API operation.
1808//
1809// The context must be non-nil and will be used for request cancellation. If
1810// the context is nil a panic will occur. In the future the SDK may create
1811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1812// for more information on using Contexts.
1813func (c *DirectoryService) DeregisterEventTopicWithContext(ctx aws.Context, input *DeregisterEventTopicInput, opts ...request.Option) (*DeregisterEventTopicOutput, error) {
1814	req, out := c.DeregisterEventTopicRequest(input)
1815	req.SetContext(ctx)
1816	req.ApplyOptions(opts...)
1817	return out, req.Send()
1818}
1819
1820const opDescribeConditionalForwarders = "DescribeConditionalForwarders"
1821
1822// DescribeConditionalForwardersRequest generates a "aws/request.Request" representing the
1823// client's request for the DescribeConditionalForwarders operation. The "output" return
1824// value will be populated with the request's response once the request completes
1825// successfully.
1826//
1827// Use "Send" method on the returned Request to send the API call to the service.
1828// the "output" return value is not valid until after Send returns without error.
1829//
1830// See DescribeConditionalForwarders for more information on using the DescribeConditionalForwarders
1831// API call, and error handling.
1832//
1833// This method is useful when you want to inject custom logic or configuration
1834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1835//
1836//
1837//    // Example sending a request using the DescribeConditionalForwardersRequest method.
1838//    req, resp := client.DescribeConditionalForwardersRequest(params)
1839//
1840//    err := req.Send()
1841//    if err == nil { // resp is now filled
1842//        fmt.Println(resp)
1843//    }
1844//
1845// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
1846func (c *DirectoryService) DescribeConditionalForwardersRequest(input *DescribeConditionalForwardersInput) (req *request.Request, output *DescribeConditionalForwardersOutput) {
1847	op := &request.Operation{
1848		Name:       opDescribeConditionalForwarders,
1849		HTTPMethod: "POST",
1850		HTTPPath:   "/",
1851	}
1852
1853	if input == nil {
1854		input = &DescribeConditionalForwardersInput{}
1855	}
1856
1857	output = &DescribeConditionalForwardersOutput{}
1858	req = c.newRequest(op, input, output)
1859	return
1860}
1861
1862// DescribeConditionalForwarders API operation for AWS Directory Service.
1863//
1864// Obtains information about the conditional forwarders for this account.
1865//
1866// If no input parameters are provided for RemoteDomainNames, this request describes
1867// all conditional forwarders for the specified directory ID.
1868//
1869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1870// with awserr.Error's Code and Message methods to get detailed information about
1871// the error.
1872//
1873// See the AWS API reference guide for AWS Directory Service's
1874// API operation DescribeConditionalForwarders for usage and error information.
1875//
1876// Returned Error Codes:
1877//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1878//   The specified entity could not be found.
1879//
1880//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
1881//   The specified directory is unavailable or could not be found.
1882//
1883//   * ErrCodeInvalidParameterException "InvalidParameterException"
1884//   One or more parameters are not valid.
1885//
1886//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1887//   The operation is not supported.
1888//
1889//   * ErrCodeClientException "ClientException"
1890//   A client exception has occurred.
1891//
1892//   * ErrCodeServiceException "ServiceException"
1893//   An exception has occurred in AWS Directory Service.
1894//
1895// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwarders
1896func (c *DirectoryService) DescribeConditionalForwarders(input *DescribeConditionalForwardersInput) (*DescribeConditionalForwardersOutput, error) {
1897	req, out := c.DescribeConditionalForwardersRequest(input)
1898	return out, req.Send()
1899}
1900
1901// DescribeConditionalForwardersWithContext is the same as DescribeConditionalForwarders with the addition of
1902// the ability to pass a context and additional request options.
1903//
1904// See DescribeConditionalForwarders for details on how to use this API operation.
1905//
1906// The context must be non-nil and will be used for request cancellation. If
1907// the context is nil a panic will occur. In the future the SDK may create
1908// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1909// for more information on using Contexts.
1910func (c *DirectoryService) DescribeConditionalForwardersWithContext(ctx aws.Context, input *DescribeConditionalForwardersInput, opts ...request.Option) (*DescribeConditionalForwardersOutput, error) {
1911	req, out := c.DescribeConditionalForwardersRequest(input)
1912	req.SetContext(ctx)
1913	req.ApplyOptions(opts...)
1914	return out, req.Send()
1915}
1916
1917const opDescribeDirectories = "DescribeDirectories"
1918
1919// DescribeDirectoriesRequest generates a "aws/request.Request" representing the
1920// client's request for the DescribeDirectories operation. The "output" return
1921// value will be populated with the request's response once the request completes
1922// successfully.
1923//
1924// Use "Send" method on the returned Request to send the API call to the service.
1925// the "output" return value is not valid until after Send returns without error.
1926//
1927// See DescribeDirectories for more information on using the DescribeDirectories
1928// API call, and error handling.
1929//
1930// This method is useful when you want to inject custom logic or configuration
1931// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1932//
1933//
1934//    // Example sending a request using the DescribeDirectoriesRequest method.
1935//    req, resp := client.DescribeDirectoriesRequest(params)
1936//
1937//    err := req.Send()
1938//    if err == nil { // resp is now filled
1939//        fmt.Println(resp)
1940//    }
1941//
1942// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
1943func (c *DirectoryService) DescribeDirectoriesRequest(input *DescribeDirectoriesInput) (req *request.Request, output *DescribeDirectoriesOutput) {
1944	op := &request.Operation{
1945		Name:       opDescribeDirectories,
1946		HTTPMethod: "POST",
1947		HTTPPath:   "/",
1948	}
1949
1950	if input == nil {
1951		input = &DescribeDirectoriesInput{}
1952	}
1953
1954	output = &DescribeDirectoriesOutput{}
1955	req = c.newRequest(op, input, output)
1956	return
1957}
1958
1959// DescribeDirectories API operation for AWS Directory Service.
1960//
1961// Obtains information about the directories that belong to this account.
1962//
1963// You can retrieve information about specific directories by passing the directory
1964// identifiers in the DirectoryIds parameter. Otherwise, all directories that
1965// belong to the current account are returned.
1966//
1967// This operation supports pagination with the use of the NextToken request
1968// and response parameters. If more results are available, the DescribeDirectoriesResult.NextToken
1969// member contains a token that you pass in the next call to DescribeDirectories
1970// to retrieve the next set of items.
1971//
1972// You can also specify a maximum number of return results with the Limit parameter.
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 DescribeDirectories for usage and error information.
1980//
1981// Returned Error Codes:
1982//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
1983//   The specified entity could not be found.
1984//
1985//   * ErrCodeInvalidParameterException "InvalidParameterException"
1986//   One or more parameters are not valid.
1987//
1988//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
1989//   The NextToken value is not valid.
1990//
1991//   * ErrCodeClientException "ClientException"
1992//   A client exception has occurred.
1993//
1994//   * ErrCodeServiceException "ServiceException"
1995//   An exception has occurred in AWS Directory Service.
1996//
1997// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectories
1998func (c *DirectoryService) DescribeDirectories(input *DescribeDirectoriesInput) (*DescribeDirectoriesOutput, error) {
1999	req, out := c.DescribeDirectoriesRequest(input)
2000	return out, req.Send()
2001}
2002
2003// DescribeDirectoriesWithContext is the same as DescribeDirectories with the addition of
2004// the ability to pass a context and additional request options.
2005//
2006// See DescribeDirectories for details on how to use this API operation.
2007//
2008// The context must be non-nil and will be used for request cancellation. If
2009// the context is nil a panic will occur. In the future the SDK may create
2010// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2011// for more information on using Contexts.
2012func (c *DirectoryService) DescribeDirectoriesWithContext(ctx aws.Context, input *DescribeDirectoriesInput, opts ...request.Option) (*DescribeDirectoriesOutput, error) {
2013	req, out := c.DescribeDirectoriesRequest(input)
2014	req.SetContext(ctx)
2015	req.ApplyOptions(opts...)
2016	return out, req.Send()
2017}
2018
2019const opDescribeDomainControllers = "DescribeDomainControllers"
2020
2021// DescribeDomainControllersRequest generates a "aws/request.Request" representing the
2022// client's request for the DescribeDomainControllers operation. The "output" return
2023// value will be populated with the request's response once the request completes
2024// successfully.
2025//
2026// Use "Send" method on the returned Request to send the API call to the service.
2027// the "output" return value is not valid until after Send returns without error.
2028//
2029// See DescribeDomainControllers for more information on using the DescribeDomainControllers
2030// API call, and error handling.
2031//
2032// This method is useful when you want to inject custom logic or configuration
2033// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2034//
2035//
2036//    // Example sending a request using the DescribeDomainControllersRequest method.
2037//    req, resp := client.DescribeDomainControllersRequest(params)
2038//
2039//    err := req.Send()
2040//    if err == nil { // resp is now filled
2041//        fmt.Println(resp)
2042//    }
2043//
2044// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2045func (c *DirectoryService) DescribeDomainControllersRequest(input *DescribeDomainControllersInput) (req *request.Request, output *DescribeDomainControllersOutput) {
2046	op := &request.Operation{
2047		Name:       opDescribeDomainControllers,
2048		HTTPMethod: "POST",
2049		HTTPPath:   "/",
2050		Paginator: &request.Paginator{
2051			InputTokens:     []string{"NextToken"},
2052			OutputTokens:    []string{"NextToken"},
2053			LimitToken:      "Limit",
2054			TruncationToken: "",
2055		},
2056	}
2057
2058	if input == nil {
2059		input = &DescribeDomainControllersInput{}
2060	}
2061
2062	output = &DescribeDomainControllersOutput{}
2063	req = c.newRequest(op, input, output)
2064	return
2065}
2066
2067// DescribeDomainControllers API operation for AWS Directory Service.
2068//
2069// Provides information about any domain controllers in your directory.
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 DescribeDomainControllers for usage and error information.
2077//
2078// Returned Error Codes:
2079//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2080//   The specified entity could not be found.
2081//
2082//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2083//   The NextToken value is not valid.
2084//
2085//   * ErrCodeInvalidParameterException "InvalidParameterException"
2086//   One or more parameters are not valid.
2087//
2088//   * ErrCodeClientException "ClientException"
2089//   A client exception has occurred.
2090//
2091//   * ErrCodeServiceException "ServiceException"
2092//   An exception has occurred in AWS Directory Service.
2093//
2094//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2095//   The operation is not supported.
2096//
2097// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllers
2098func (c *DirectoryService) DescribeDomainControllers(input *DescribeDomainControllersInput) (*DescribeDomainControllersOutput, error) {
2099	req, out := c.DescribeDomainControllersRequest(input)
2100	return out, req.Send()
2101}
2102
2103// DescribeDomainControllersWithContext is the same as DescribeDomainControllers with the addition of
2104// the ability to pass a context and additional request options.
2105//
2106// See DescribeDomainControllers 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) DescribeDomainControllersWithContext(ctx aws.Context, input *DescribeDomainControllersInput, opts ...request.Option) (*DescribeDomainControllersOutput, error) {
2113	req, out := c.DescribeDomainControllersRequest(input)
2114	req.SetContext(ctx)
2115	req.ApplyOptions(opts...)
2116	return out, req.Send()
2117}
2118
2119// DescribeDomainControllersPages iterates over the pages of a DescribeDomainControllers operation,
2120// calling the "fn" function with the response data for each page. To stop
2121// iterating, return false from the fn function.
2122//
2123// See DescribeDomainControllers method for more information on how to use this operation.
2124//
2125// Note: This operation can generate multiple requests to a service.
2126//
2127//    // Example iterating over at most 3 pages of a DescribeDomainControllers operation.
2128//    pageNum := 0
2129//    err := client.DescribeDomainControllersPages(params,
2130//        func(page *directoryservice.DescribeDomainControllersOutput, lastPage bool) bool {
2131//            pageNum++
2132//            fmt.Println(page)
2133//            return pageNum <= 3
2134//        })
2135//
2136func (c *DirectoryService) DescribeDomainControllersPages(input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool) error {
2137	return c.DescribeDomainControllersPagesWithContext(aws.BackgroundContext(), input, fn)
2138}
2139
2140// DescribeDomainControllersPagesWithContext same as DescribeDomainControllersPages except
2141// it takes a Context and allows setting request options on the pages.
2142//
2143// The context must be non-nil and will be used for request cancellation. If
2144// the context is nil a panic will occur. In the future the SDK may create
2145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2146// for more information on using Contexts.
2147func (c *DirectoryService) DescribeDomainControllersPagesWithContext(ctx aws.Context, input *DescribeDomainControllersInput, fn func(*DescribeDomainControllersOutput, bool) bool, opts ...request.Option) error {
2148	p := request.Pagination{
2149		NewRequest: func() (*request.Request, error) {
2150			var inCpy *DescribeDomainControllersInput
2151			if input != nil {
2152				tmp := *input
2153				inCpy = &tmp
2154			}
2155			req, _ := c.DescribeDomainControllersRequest(inCpy)
2156			req.SetContext(ctx)
2157			req.ApplyOptions(opts...)
2158			return req, nil
2159		},
2160	}
2161
2162	cont := true
2163	for p.Next() && cont {
2164		cont = fn(p.Page().(*DescribeDomainControllersOutput), !p.HasNextPage())
2165	}
2166	return p.Err()
2167}
2168
2169const opDescribeEventTopics = "DescribeEventTopics"
2170
2171// DescribeEventTopicsRequest generates a "aws/request.Request" representing the
2172// client's request for the DescribeEventTopics operation. The "output" return
2173// value will be populated with the request's response once the request completes
2174// successfully.
2175//
2176// Use "Send" method on the returned Request to send the API call to the service.
2177// the "output" return value is not valid until after Send returns without error.
2178//
2179// See DescribeEventTopics for more information on using the DescribeEventTopics
2180// API call, and error handling.
2181//
2182// This method is useful when you want to inject custom logic or configuration
2183// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2184//
2185//
2186//    // Example sending a request using the DescribeEventTopicsRequest method.
2187//    req, resp := client.DescribeEventTopicsRequest(params)
2188//
2189//    err := req.Send()
2190//    if err == nil { // resp is now filled
2191//        fmt.Println(resp)
2192//    }
2193//
2194// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2195func (c *DirectoryService) DescribeEventTopicsRequest(input *DescribeEventTopicsInput) (req *request.Request, output *DescribeEventTopicsOutput) {
2196	op := &request.Operation{
2197		Name:       opDescribeEventTopics,
2198		HTTPMethod: "POST",
2199		HTTPPath:   "/",
2200	}
2201
2202	if input == nil {
2203		input = &DescribeEventTopicsInput{}
2204	}
2205
2206	output = &DescribeEventTopicsOutput{}
2207	req = c.newRequest(op, input, output)
2208	return
2209}
2210
2211// DescribeEventTopics API operation for AWS Directory Service.
2212//
2213// Obtains information about which SNS topics receive status messages from the
2214// specified directory.
2215//
2216// If no input parameters are provided, such as DirectoryId or TopicName, this
2217// request describes all of the associations in the account.
2218//
2219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2220// with awserr.Error's Code and Message methods to get detailed information about
2221// the error.
2222//
2223// See the AWS API reference guide for AWS Directory Service's
2224// API operation DescribeEventTopics for usage and error information.
2225//
2226// Returned Error Codes:
2227//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2228//   The specified entity could not be found.
2229//
2230//   * ErrCodeInvalidParameterException "InvalidParameterException"
2231//   One or more parameters are not valid.
2232//
2233//   * ErrCodeClientException "ClientException"
2234//   A client exception has occurred.
2235//
2236//   * ErrCodeServiceException "ServiceException"
2237//   An exception has occurred in AWS Directory Service.
2238//
2239// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopics
2240func (c *DirectoryService) DescribeEventTopics(input *DescribeEventTopicsInput) (*DescribeEventTopicsOutput, error) {
2241	req, out := c.DescribeEventTopicsRequest(input)
2242	return out, req.Send()
2243}
2244
2245// DescribeEventTopicsWithContext is the same as DescribeEventTopics with the addition of
2246// the ability to pass a context and additional request options.
2247//
2248// See DescribeEventTopics for details on how to use this API operation.
2249//
2250// The context must be non-nil and will be used for request cancellation. If
2251// the context is nil a panic will occur. In the future the SDK may create
2252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2253// for more information on using Contexts.
2254func (c *DirectoryService) DescribeEventTopicsWithContext(ctx aws.Context, input *DescribeEventTopicsInput, opts ...request.Option) (*DescribeEventTopicsOutput, error) {
2255	req, out := c.DescribeEventTopicsRequest(input)
2256	req.SetContext(ctx)
2257	req.ApplyOptions(opts...)
2258	return out, req.Send()
2259}
2260
2261const opDescribeSharedDirectories = "DescribeSharedDirectories"
2262
2263// DescribeSharedDirectoriesRequest generates a "aws/request.Request" representing the
2264// client's request for the DescribeSharedDirectories operation. The "output" return
2265// value will be populated with the request's response once the request completes
2266// successfully.
2267//
2268// Use "Send" method on the returned Request to send the API call to the service.
2269// the "output" return value is not valid until after Send returns without error.
2270//
2271// See DescribeSharedDirectories for more information on using the DescribeSharedDirectories
2272// API call, and error handling.
2273//
2274// This method is useful when you want to inject custom logic or configuration
2275// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2276//
2277//
2278//    // Example sending a request using the DescribeSharedDirectoriesRequest method.
2279//    req, resp := client.DescribeSharedDirectoriesRequest(params)
2280//
2281//    err := req.Send()
2282//    if err == nil { // resp is now filled
2283//        fmt.Println(resp)
2284//    }
2285//
2286// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2287func (c *DirectoryService) DescribeSharedDirectoriesRequest(input *DescribeSharedDirectoriesInput) (req *request.Request, output *DescribeSharedDirectoriesOutput) {
2288	op := &request.Operation{
2289		Name:       opDescribeSharedDirectories,
2290		HTTPMethod: "POST",
2291		HTTPPath:   "/",
2292	}
2293
2294	if input == nil {
2295		input = &DescribeSharedDirectoriesInput{}
2296	}
2297
2298	output = &DescribeSharedDirectoriesOutput{}
2299	req = c.newRequest(op, input, output)
2300	return
2301}
2302
2303// DescribeSharedDirectories API operation for AWS Directory Service.
2304//
2305// Returns the shared directories in your account.
2306//
2307// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2308// with awserr.Error's Code and Message methods to get detailed information about
2309// the error.
2310//
2311// See the AWS API reference guide for AWS Directory Service's
2312// API operation DescribeSharedDirectories for usage and error information.
2313//
2314// Returned Error Codes:
2315//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2316//   The specified entity could not be found.
2317//
2318//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2319//   The NextToken value is not valid.
2320//
2321//   * ErrCodeInvalidParameterException "InvalidParameterException"
2322//   One or more parameters are not valid.
2323//
2324//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2325//   The operation is not supported.
2326//
2327//   * ErrCodeClientException "ClientException"
2328//   A client exception has occurred.
2329//
2330//   * ErrCodeServiceException "ServiceException"
2331//   An exception has occurred in AWS Directory Service.
2332//
2333// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSharedDirectories
2334func (c *DirectoryService) DescribeSharedDirectories(input *DescribeSharedDirectoriesInput) (*DescribeSharedDirectoriesOutput, error) {
2335	req, out := c.DescribeSharedDirectoriesRequest(input)
2336	return out, req.Send()
2337}
2338
2339// DescribeSharedDirectoriesWithContext is the same as DescribeSharedDirectories with the addition of
2340// the ability to pass a context and additional request options.
2341//
2342// See DescribeSharedDirectories for details on how to use this API operation.
2343//
2344// The context must be non-nil and will be used for request cancellation. If
2345// the context is nil a panic will occur. In the future the SDK may create
2346// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2347// for more information on using Contexts.
2348func (c *DirectoryService) DescribeSharedDirectoriesWithContext(ctx aws.Context, input *DescribeSharedDirectoriesInput, opts ...request.Option) (*DescribeSharedDirectoriesOutput, error) {
2349	req, out := c.DescribeSharedDirectoriesRequest(input)
2350	req.SetContext(ctx)
2351	req.ApplyOptions(opts...)
2352	return out, req.Send()
2353}
2354
2355const opDescribeSnapshots = "DescribeSnapshots"
2356
2357// DescribeSnapshotsRequest generates a "aws/request.Request" representing the
2358// client's request for the DescribeSnapshots operation. The "output" return
2359// value will be populated with the request's response once the request completes
2360// successfully.
2361//
2362// Use "Send" method on the returned Request to send the API call to the service.
2363// the "output" return value is not valid until after Send returns without error.
2364//
2365// See DescribeSnapshots for more information on using the DescribeSnapshots
2366// API call, and error handling.
2367//
2368// This method is useful when you want to inject custom logic or configuration
2369// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2370//
2371//
2372//    // Example sending a request using the DescribeSnapshotsRequest method.
2373//    req, resp := client.DescribeSnapshotsRequest(params)
2374//
2375//    err := req.Send()
2376//    if err == nil { // resp is now filled
2377//        fmt.Println(resp)
2378//    }
2379//
2380// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
2381func (c *DirectoryService) DescribeSnapshotsRequest(input *DescribeSnapshotsInput) (req *request.Request, output *DescribeSnapshotsOutput) {
2382	op := &request.Operation{
2383		Name:       opDescribeSnapshots,
2384		HTTPMethod: "POST",
2385		HTTPPath:   "/",
2386	}
2387
2388	if input == nil {
2389		input = &DescribeSnapshotsInput{}
2390	}
2391
2392	output = &DescribeSnapshotsOutput{}
2393	req = c.newRequest(op, input, output)
2394	return
2395}
2396
2397// DescribeSnapshots API operation for AWS Directory Service.
2398//
2399// Obtains information about the directory snapshots that belong to this account.
2400//
2401// This operation supports pagination with the use of the NextToken request
2402// and response parameters. If more results are available, the DescribeSnapshots.NextToken
2403// member contains a token that you pass in the next call to DescribeSnapshots
2404// to retrieve the next set of items.
2405//
2406// You can also specify a maximum number of return results with the Limit parameter.
2407//
2408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2409// with awserr.Error's Code and Message methods to get detailed information about
2410// the error.
2411//
2412// See the AWS API reference guide for AWS Directory Service's
2413// API operation DescribeSnapshots for usage and error information.
2414//
2415// Returned Error Codes:
2416//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2417//   The specified entity could not be found.
2418//
2419//   * ErrCodeInvalidParameterException "InvalidParameterException"
2420//   One or more parameters are not valid.
2421//
2422//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2423//   The NextToken value is not valid.
2424//
2425//   * ErrCodeClientException "ClientException"
2426//   A client exception has occurred.
2427//
2428//   * ErrCodeServiceException "ServiceException"
2429//   An exception has occurred in AWS Directory Service.
2430//
2431// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshots
2432func (c *DirectoryService) DescribeSnapshots(input *DescribeSnapshotsInput) (*DescribeSnapshotsOutput, error) {
2433	req, out := c.DescribeSnapshotsRequest(input)
2434	return out, req.Send()
2435}
2436
2437// DescribeSnapshotsWithContext is the same as DescribeSnapshots with the addition of
2438// the ability to pass a context and additional request options.
2439//
2440// See DescribeSnapshots for details on how to use this API operation.
2441//
2442// The context must be non-nil and will be used for request cancellation. If
2443// the context is nil a panic will occur. In the future the SDK may create
2444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2445// for more information on using Contexts.
2446func (c *DirectoryService) DescribeSnapshotsWithContext(ctx aws.Context, input *DescribeSnapshotsInput, opts ...request.Option) (*DescribeSnapshotsOutput, error) {
2447	req, out := c.DescribeSnapshotsRequest(input)
2448	req.SetContext(ctx)
2449	req.ApplyOptions(opts...)
2450	return out, req.Send()
2451}
2452
2453const opDescribeTrusts = "DescribeTrusts"
2454
2455// DescribeTrustsRequest generates a "aws/request.Request" representing the
2456// client's request for the DescribeTrusts operation. The "output" return
2457// value will be populated with the request's response once the request completes
2458// successfully.
2459//
2460// Use "Send" method on the returned Request to send the API call to the service.
2461// the "output" return value is not valid until after Send returns without error.
2462//
2463// See DescribeTrusts for more information on using the DescribeTrusts
2464// API call, and error handling.
2465//
2466// This method is useful when you want to inject custom logic or configuration
2467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2468//
2469//
2470//    // Example sending a request using the DescribeTrustsRequest method.
2471//    req, resp := client.DescribeTrustsRequest(params)
2472//
2473//    err := req.Send()
2474//    if err == nil { // resp is now filled
2475//        fmt.Println(resp)
2476//    }
2477//
2478// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
2479func (c *DirectoryService) DescribeTrustsRequest(input *DescribeTrustsInput) (req *request.Request, output *DescribeTrustsOutput) {
2480	op := &request.Operation{
2481		Name:       opDescribeTrusts,
2482		HTTPMethod: "POST",
2483		HTTPPath:   "/",
2484	}
2485
2486	if input == nil {
2487		input = &DescribeTrustsInput{}
2488	}
2489
2490	output = &DescribeTrustsOutput{}
2491	req = c.newRequest(op, input, output)
2492	return
2493}
2494
2495// DescribeTrusts API operation for AWS Directory Service.
2496//
2497// Obtains information about the trust relationships for this account.
2498//
2499// If no input parameters are provided, such as DirectoryId or TrustIds, this
2500// request describes all the trust relationships belonging to the account.
2501//
2502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2503// with awserr.Error's Code and Message methods to get detailed information about
2504// the error.
2505//
2506// See the AWS API reference guide for AWS Directory Service's
2507// API operation DescribeTrusts for usage and error information.
2508//
2509// Returned Error Codes:
2510//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2511//   The specified entity could not be found.
2512//
2513//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
2514//   The NextToken value is not valid.
2515//
2516//   * ErrCodeInvalidParameterException "InvalidParameterException"
2517//   One or more parameters are not valid.
2518//
2519//   * ErrCodeClientException "ClientException"
2520//   A client exception has occurred.
2521//
2522//   * ErrCodeServiceException "ServiceException"
2523//   An exception has occurred in AWS Directory Service.
2524//
2525//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2526//   The operation is not supported.
2527//
2528// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrusts
2529func (c *DirectoryService) DescribeTrusts(input *DescribeTrustsInput) (*DescribeTrustsOutput, error) {
2530	req, out := c.DescribeTrustsRequest(input)
2531	return out, req.Send()
2532}
2533
2534// DescribeTrustsWithContext is the same as DescribeTrusts with the addition of
2535// the ability to pass a context and additional request options.
2536//
2537// See DescribeTrusts for details on how to use this API operation.
2538//
2539// The context must be non-nil and will be used for request cancellation. If
2540// the context is nil a panic will occur. In the future the SDK may create
2541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2542// for more information on using Contexts.
2543func (c *DirectoryService) DescribeTrustsWithContext(ctx aws.Context, input *DescribeTrustsInput, opts ...request.Option) (*DescribeTrustsOutput, error) {
2544	req, out := c.DescribeTrustsRequest(input)
2545	req.SetContext(ctx)
2546	req.ApplyOptions(opts...)
2547	return out, req.Send()
2548}
2549
2550const opDisableRadius = "DisableRadius"
2551
2552// DisableRadiusRequest generates a "aws/request.Request" representing the
2553// client's request for the DisableRadius operation. The "output" return
2554// value will be populated with the request's response once the request completes
2555// successfully.
2556//
2557// Use "Send" method on the returned Request to send the API call to the service.
2558// the "output" return value is not valid until after Send returns without error.
2559//
2560// See DisableRadius for more information on using the DisableRadius
2561// API call, and error handling.
2562//
2563// This method is useful when you want to inject custom logic or configuration
2564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2565//
2566//
2567//    // Example sending a request using the DisableRadiusRequest method.
2568//    req, resp := client.DisableRadiusRequest(params)
2569//
2570//    err := req.Send()
2571//    if err == nil { // resp is now filled
2572//        fmt.Println(resp)
2573//    }
2574//
2575// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
2576func (c *DirectoryService) DisableRadiusRequest(input *DisableRadiusInput) (req *request.Request, output *DisableRadiusOutput) {
2577	op := &request.Operation{
2578		Name:       opDisableRadius,
2579		HTTPMethod: "POST",
2580		HTTPPath:   "/",
2581	}
2582
2583	if input == nil {
2584		input = &DisableRadiusInput{}
2585	}
2586
2587	output = &DisableRadiusOutput{}
2588	req = c.newRequest(op, input, output)
2589	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2590	return
2591}
2592
2593// DisableRadius API operation for AWS Directory Service.
2594//
2595// Disables multi-factor authentication (MFA) with the Remote Authentication
2596// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
2597// directory.
2598//
2599// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2600// with awserr.Error's Code and Message methods to get detailed information about
2601// the error.
2602//
2603// See the AWS API reference guide for AWS Directory Service's
2604// API operation DisableRadius for usage and error information.
2605//
2606// Returned Error Codes:
2607//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2608//   The specified entity could not be found.
2609//
2610//   * ErrCodeClientException "ClientException"
2611//   A client exception has occurred.
2612//
2613//   * ErrCodeServiceException "ServiceException"
2614//   An exception has occurred in AWS Directory Service.
2615//
2616// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadius
2617func (c *DirectoryService) DisableRadius(input *DisableRadiusInput) (*DisableRadiusOutput, error) {
2618	req, out := c.DisableRadiusRequest(input)
2619	return out, req.Send()
2620}
2621
2622// DisableRadiusWithContext is the same as DisableRadius with the addition of
2623// the ability to pass a context and additional request options.
2624//
2625// See DisableRadius for details on how to use this API operation.
2626//
2627// The context must be non-nil and will be used for request cancellation. If
2628// the context is nil a panic will occur. In the future the SDK may create
2629// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2630// for more information on using Contexts.
2631func (c *DirectoryService) DisableRadiusWithContext(ctx aws.Context, input *DisableRadiusInput, opts ...request.Option) (*DisableRadiusOutput, error) {
2632	req, out := c.DisableRadiusRequest(input)
2633	req.SetContext(ctx)
2634	req.ApplyOptions(opts...)
2635	return out, req.Send()
2636}
2637
2638const opDisableSso = "DisableSso"
2639
2640// DisableSsoRequest generates a "aws/request.Request" representing the
2641// client's request for the DisableSso operation. The "output" return
2642// value will be populated with the request's response once the request completes
2643// successfully.
2644//
2645// Use "Send" method on the returned Request to send the API call to the service.
2646// the "output" return value is not valid until after Send returns without error.
2647//
2648// See DisableSso for more information on using the DisableSso
2649// API call, and error handling.
2650//
2651// This method is useful when you want to inject custom logic or configuration
2652// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2653//
2654//
2655//    // Example sending a request using the DisableSsoRequest method.
2656//    req, resp := client.DisableSsoRequest(params)
2657//
2658//    err := req.Send()
2659//    if err == nil { // resp is now filled
2660//        fmt.Println(resp)
2661//    }
2662//
2663// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
2664func (c *DirectoryService) DisableSsoRequest(input *DisableSsoInput) (req *request.Request, output *DisableSsoOutput) {
2665	op := &request.Operation{
2666		Name:       opDisableSso,
2667		HTTPMethod: "POST",
2668		HTTPPath:   "/",
2669	}
2670
2671	if input == nil {
2672		input = &DisableSsoInput{}
2673	}
2674
2675	output = &DisableSsoOutput{}
2676	req = c.newRequest(op, input, output)
2677	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2678	return
2679}
2680
2681// DisableSso API operation for AWS Directory Service.
2682//
2683// Disables single-sign on for a directory.
2684//
2685// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2686// with awserr.Error's Code and Message methods to get detailed information about
2687// the error.
2688//
2689// See the AWS API reference guide for AWS Directory Service's
2690// API operation DisableSso for usage and error information.
2691//
2692// Returned Error Codes:
2693//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2694//   The specified entity could not be found.
2695//
2696//   * ErrCodeInsufficientPermissionsException "InsufficientPermissionsException"
2697//   The account does not have sufficient permission to perform the operation.
2698//
2699//   * ErrCodeAuthenticationFailedException "AuthenticationFailedException"
2700//   An authentication error occurred.
2701//
2702//   * ErrCodeClientException "ClientException"
2703//   A client exception has occurred.
2704//
2705//   * ErrCodeServiceException "ServiceException"
2706//   An exception has occurred in AWS Directory Service.
2707//
2708// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSso
2709func (c *DirectoryService) DisableSso(input *DisableSsoInput) (*DisableSsoOutput, error) {
2710	req, out := c.DisableSsoRequest(input)
2711	return out, req.Send()
2712}
2713
2714// DisableSsoWithContext is the same as DisableSso with the addition of
2715// the ability to pass a context and additional request options.
2716//
2717// See DisableSso for details on how to use this API operation.
2718//
2719// The context must be non-nil and will be used for request cancellation. If
2720// the context is nil a panic will occur. In the future the SDK may create
2721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2722// for more information on using Contexts.
2723func (c *DirectoryService) DisableSsoWithContext(ctx aws.Context, input *DisableSsoInput, opts ...request.Option) (*DisableSsoOutput, error) {
2724	req, out := c.DisableSsoRequest(input)
2725	req.SetContext(ctx)
2726	req.ApplyOptions(opts...)
2727	return out, req.Send()
2728}
2729
2730const opEnableRadius = "EnableRadius"
2731
2732// EnableRadiusRequest generates a "aws/request.Request" representing the
2733// client's request for the EnableRadius operation. The "output" return
2734// value will be populated with the request's response once the request completes
2735// successfully.
2736//
2737// Use "Send" method on the returned Request to send the API call to the service.
2738// the "output" return value is not valid until after Send returns without error.
2739//
2740// See EnableRadius for more information on using the EnableRadius
2741// API call, and error handling.
2742//
2743// This method is useful when you want to inject custom logic or configuration
2744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2745//
2746//
2747//    // Example sending a request using the EnableRadiusRequest method.
2748//    req, resp := client.EnableRadiusRequest(params)
2749//
2750//    err := req.Send()
2751//    if err == nil { // resp is now filled
2752//        fmt.Println(resp)
2753//    }
2754//
2755// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
2756func (c *DirectoryService) EnableRadiusRequest(input *EnableRadiusInput) (req *request.Request, output *EnableRadiusOutput) {
2757	op := &request.Operation{
2758		Name:       opEnableRadius,
2759		HTTPMethod: "POST",
2760		HTTPPath:   "/",
2761	}
2762
2763	if input == nil {
2764		input = &EnableRadiusInput{}
2765	}
2766
2767	output = &EnableRadiusOutput{}
2768	req = c.newRequest(op, input, output)
2769	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2770	return
2771}
2772
2773// EnableRadius API operation for AWS Directory Service.
2774//
2775// Enables multi-factor authentication (MFA) with the Remote Authentication
2776// Dial In User Service (RADIUS) server for an AD Connector or Microsoft AD
2777// directory.
2778//
2779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2780// with awserr.Error's Code and Message methods to get detailed information about
2781// the error.
2782//
2783// See the AWS API reference guide for AWS Directory Service's
2784// API operation EnableRadius for usage and error information.
2785//
2786// Returned Error Codes:
2787//   * ErrCodeInvalidParameterException "InvalidParameterException"
2788//   One or more parameters are not valid.
2789//
2790//   * ErrCodeEntityAlreadyExistsException "EntityAlreadyExistsException"
2791//   The specified entity already exists.
2792//
2793//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2794//   The specified entity could not be found.
2795//
2796//   * ErrCodeClientException "ClientException"
2797//   A client exception has occurred.
2798//
2799//   * ErrCodeServiceException "ServiceException"
2800//   An exception has occurred in AWS Directory Service.
2801//
2802// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadius
2803func (c *DirectoryService) EnableRadius(input *EnableRadiusInput) (*EnableRadiusOutput, error) {
2804	req, out := c.EnableRadiusRequest(input)
2805	return out, req.Send()
2806}
2807
2808// EnableRadiusWithContext is the same as EnableRadius with the addition of
2809// the ability to pass a context and additional request options.
2810//
2811// See EnableRadius for details on how to use this API operation.
2812//
2813// The context must be non-nil and will be used for request cancellation. If
2814// the context is nil a panic will occur. In the future the SDK may create
2815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2816// for more information on using Contexts.
2817func (c *DirectoryService) EnableRadiusWithContext(ctx aws.Context, input *EnableRadiusInput, opts ...request.Option) (*EnableRadiusOutput, error) {
2818	req, out := c.EnableRadiusRequest(input)
2819	req.SetContext(ctx)
2820	req.ApplyOptions(opts...)
2821	return out, req.Send()
2822}
2823
2824const opEnableSso = "EnableSso"
2825
2826// EnableSsoRequest generates a "aws/request.Request" representing the
2827// client's request for the EnableSso operation. The "output" return
2828// value will be populated with the request's response once the request completes
2829// successfully.
2830//
2831// Use "Send" method on the returned Request to send the API call to the service.
2832// the "output" return value is not valid until after Send returns without error.
2833//
2834// See EnableSso for more information on using the EnableSso
2835// API call, and error handling.
2836//
2837// This method is useful when you want to inject custom logic or configuration
2838// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2839//
2840//
2841//    // Example sending a request using the EnableSsoRequest method.
2842//    req, resp := client.EnableSsoRequest(params)
2843//
2844//    err := req.Send()
2845//    if err == nil { // resp is now filled
2846//        fmt.Println(resp)
2847//    }
2848//
2849// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
2850func (c *DirectoryService) EnableSsoRequest(input *EnableSsoInput) (req *request.Request, output *EnableSsoOutput) {
2851	op := &request.Operation{
2852		Name:       opEnableSso,
2853		HTTPMethod: "POST",
2854		HTTPPath:   "/",
2855	}
2856
2857	if input == nil {
2858		input = &EnableSsoInput{}
2859	}
2860
2861	output = &EnableSsoOutput{}
2862	req = c.newRequest(op, input, output)
2863	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2864	return
2865}
2866
2867// EnableSso API operation for AWS Directory Service.
2868//
2869// Enables single sign-on for a directory.
2870//
2871// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2872// with awserr.Error's Code and Message methods to get detailed information about
2873// the error.
2874//
2875// See the AWS API reference guide for AWS Directory Service's
2876// API operation EnableSso for usage and error information.
2877//
2878// Returned Error Codes:
2879//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2880//   The specified entity could not be found.
2881//
2882//   * ErrCodeInsufficientPermissionsException "InsufficientPermissionsException"
2883//   The account does not have sufficient permission to perform the operation.
2884//
2885//   * ErrCodeAuthenticationFailedException "AuthenticationFailedException"
2886//   An authentication error occurred.
2887//
2888//   * ErrCodeClientException "ClientException"
2889//   A client exception has occurred.
2890//
2891//   * ErrCodeServiceException "ServiceException"
2892//   An exception has occurred in AWS Directory Service.
2893//
2894// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSso
2895func (c *DirectoryService) EnableSso(input *EnableSsoInput) (*EnableSsoOutput, error) {
2896	req, out := c.EnableSsoRequest(input)
2897	return out, req.Send()
2898}
2899
2900// EnableSsoWithContext is the same as EnableSso with the addition of
2901// the ability to pass a context and additional request options.
2902//
2903// See EnableSso for details on how to use this API operation.
2904//
2905// The context must be non-nil and will be used for request cancellation. If
2906// the context is nil a panic will occur. In the future the SDK may create
2907// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2908// for more information on using Contexts.
2909func (c *DirectoryService) EnableSsoWithContext(ctx aws.Context, input *EnableSsoInput, opts ...request.Option) (*EnableSsoOutput, error) {
2910	req, out := c.EnableSsoRequest(input)
2911	req.SetContext(ctx)
2912	req.ApplyOptions(opts...)
2913	return out, req.Send()
2914}
2915
2916const opGetDirectoryLimits = "GetDirectoryLimits"
2917
2918// GetDirectoryLimitsRequest generates a "aws/request.Request" representing the
2919// client's request for the GetDirectoryLimits operation. The "output" return
2920// value will be populated with the request's response once the request completes
2921// successfully.
2922//
2923// Use "Send" method on the returned Request to send the API call to the service.
2924// the "output" return value is not valid until after Send returns without error.
2925//
2926// See GetDirectoryLimits for more information on using the GetDirectoryLimits
2927// API call, and error handling.
2928//
2929// This method is useful when you want to inject custom logic or configuration
2930// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2931//
2932//
2933//    // Example sending a request using the GetDirectoryLimitsRequest method.
2934//    req, resp := client.GetDirectoryLimitsRequest(params)
2935//
2936//    err := req.Send()
2937//    if err == nil { // resp is now filled
2938//        fmt.Println(resp)
2939//    }
2940//
2941// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
2942func (c *DirectoryService) GetDirectoryLimitsRequest(input *GetDirectoryLimitsInput) (req *request.Request, output *GetDirectoryLimitsOutput) {
2943	op := &request.Operation{
2944		Name:       opGetDirectoryLimits,
2945		HTTPMethod: "POST",
2946		HTTPPath:   "/",
2947	}
2948
2949	if input == nil {
2950		input = &GetDirectoryLimitsInput{}
2951	}
2952
2953	output = &GetDirectoryLimitsOutput{}
2954	req = c.newRequest(op, input, output)
2955	return
2956}
2957
2958// GetDirectoryLimits API operation for AWS Directory Service.
2959//
2960// Obtains directory limit information for the current region.
2961//
2962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2963// with awserr.Error's Code and Message methods to get detailed information about
2964// the error.
2965//
2966// See the AWS API reference guide for AWS Directory Service's
2967// API operation GetDirectoryLimits for usage and error information.
2968//
2969// Returned Error Codes:
2970//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
2971//   The specified entity could not be found.
2972//
2973//   * ErrCodeClientException "ClientException"
2974//   A client exception has occurred.
2975//
2976//   * ErrCodeServiceException "ServiceException"
2977//   An exception has occurred in AWS Directory Service.
2978//
2979// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimits
2980func (c *DirectoryService) GetDirectoryLimits(input *GetDirectoryLimitsInput) (*GetDirectoryLimitsOutput, error) {
2981	req, out := c.GetDirectoryLimitsRequest(input)
2982	return out, req.Send()
2983}
2984
2985// GetDirectoryLimitsWithContext is the same as GetDirectoryLimits with the addition of
2986// the ability to pass a context and additional request options.
2987//
2988// See GetDirectoryLimits for details on how to use this API operation.
2989//
2990// The context must be non-nil and will be used for request cancellation. If
2991// the context is nil a panic will occur. In the future the SDK may create
2992// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2993// for more information on using Contexts.
2994func (c *DirectoryService) GetDirectoryLimitsWithContext(ctx aws.Context, input *GetDirectoryLimitsInput, opts ...request.Option) (*GetDirectoryLimitsOutput, error) {
2995	req, out := c.GetDirectoryLimitsRequest(input)
2996	req.SetContext(ctx)
2997	req.ApplyOptions(opts...)
2998	return out, req.Send()
2999}
3000
3001const opGetSnapshotLimits = "GetSnapshotLimits"
3002
3003// GetSnapshotLimitsRequest generates a "aws/request.Request" representing the
3004// client's request for the GetSnapshotLimits operation. The "output" return
3005// value will be populated with the request's response once the request completes
3006// successfully.
3007//
3008// Use "Send" method on the returned Request to send the API call to the service.
3009// the "output" return value is not valid until after Send returns without error.
3010//
3011// See GetSnapshotLimits for more information on using the GetSnapshotLimits
3012// API call, and error handling.
3013//
3014// This method is useful when you want to inject custom logic or configuration
3015// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3016//
3017//
3018//    // Example sending a request using the GetSnapshotLimitsRequest method.
3019//    req, resp := client.GetSnapshotLimitsRequest(params)
3020//
3021//    err := req.Send()
3022//    if err == nil { // resp is now filled
3023//        fmt.Println(resp)
3024//    }
3025//
3026// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
3027func (c *DirectoryService) GetSnapshotLimitsRequest(input *GetSnapshotLimitsInput) (req *request.Request, output *GetSnapshotLimitsOutput) {
3028	op := &request.Operation{
3029		Name:       opGetSnapshotLimits,
3030		HTTPMethod: "POST",
3031		HTTPPath:   "/",
3032	}
3033
3034	if input == nil {
3035		input = &GetSnapshotLimitsInput{}
3036	}
3037
3038	output = &GetSnapshotLimitsOutput{}
3039	req = c.newRequest(op, input, output)
3040	return
3041}
3042
3043// GetSnapshotLimits API operation for AWS Directory Service.
3044//
3045// Obtains the manual snapshot limits for a directory.
3046//
3047// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3048// with awserr.Error's Code and Message methods to get detailed information about
3049// the error.
3050//
3051// See the AWS API reference guide for AWS Directory Service's
3052// API operation GetSnapshotLimits for usage and error information.
3053//
3054// Returned Error Codes:
3055//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3056//   The specified entity could not be found.
3057//
3058//   * ErrCodeClientException "ClientException"
3059//   A client exception has occurred.
3060//
3061//   * ErrCodeServiceException "ServiceException"
3062//   An exception has occurred in AWS Directory Service.
3063//
3064// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimits
3065func (c *DirectoryService) GetSnapshotLimits(input *GetSnapshotLimitsInput) (*GetSnapshotLimitsOutput, error) {
3066	req, out := c.GetSnapshotLimitsRequest(input)
3067	return out, req.Send()
3068}
3069
3070// GetSnapshotLimitsWithContext is the same as GetSnapshotLimits with the addition of
3071// the ability to pass a context and additional request options.
3072//
3073// See GetSnapshotLimits for details on how to use this API operation.
3074//
3075// The context must be non-nil and will be used for request cancellation. If
3076// the context is nil a panic will occur. In the future the SDK may create
3077// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3078// for more information on using Contexts.
3079func (c *DirectoryService) GetSnapshotLimitsWithContext(ctx aws.Context, input *GetSnapshotLimitsInput, opts ...request.Option) (*GetSnapshotLimitsOutput, error) {
3080	req, out := c.GetSnapshotLimitsRequest(input)
3081	req.SetContext(ctx)
3082	req.ApplyOptions(opts...)
3083	return out, req.Send()
3084}
3085
3086const opListIpRoutes = "ListIpRoutes"
3087
3088// ListIpRoutesRequest generates a "aws/request.Request" representing the
3089// client's request for the ListIpRoutes operation. The "output" return
3090// value will be populated with the request's response once the request completes
3091// successfully.
3092//
3093// Use "Send" method on the returned Request to send the API call to the service.
3094// the "output" return value is not valid until after Send returns without error.
3095//
3096// See ListIpRoutes for more information on using the ListIpRoutes
3097// API call, and error handling.
3098//
3099// This method is useful when you want to inject custom logic or configuration
3100// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3101//
3102//
3103//    // Example sending a request using the ListIpRoutesRequest method.
3104//    req, resp := client.ListIpRoutesRequest(params)
3105//
3106//    err := req.Send()
3107//    if err == nil { // resp is now filled
3108//        fmt.Println(resp)
3109//    }
3110//
3111// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
3112func (c *DirectoryService) ListIpRoutesRequest(input *ListIpRoutesInput) (req *request.Request, output *ListIpRoutesOutput) {
3113	op := &request.Operation{
3114		Name:       opListIpRoutes,
3115		HTTPMethod: "POST",
3116		HTTPPath:   "/",
3117	}
3118
3119	if input == nil {
3120		input = &ListIpRoutesInput{}
3121	}
3122
3123	output = &ListIpRoutesOutput{}
3124	req = c.newRequest(op, input, output)
3125	return
3126}
3127
3128// ListIpRoutes API operation for AWS Directory Service.
3129//
3130// Lists the address blocks that you have added to a directory.
3131//
3132// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3133// with awserr.Error's Code and Message methods to get detailed information about
3134// the error.
3135//
3136// See the AWS API reference guide for AWS Directory Service's
3137// API operation ListIpRoutes for usage and error information.
3138//
3139// Returned Error Codes:
3140//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3141//   The specified entity could not be found.
3142//
3143//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3144//   The NextToken value is not valid.
3145//
3146//   * ErrCodeInvalidParameterException "InvalidParameterException"
3147//   One or more parameters are not valid.
3148//
3149//   * ErrCodeClientException "ClientException"
3150//   A client exception has occurred.
3151//
3152//   * ErrCodeServiceException "ServiceException"
3153//   An exception has occurred in AWS Directory Service.
3154//
3155// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutes
3156func (c *DirectoryService) ListIpRoutes(input *ListIpRoutesInput) (*ListIpRoutesOutput, error) {
3157	req, out := c.ListIpRoutesRequest(input)
3158	return out, req.Send()
3159}
3160
3161// ListIpRoutesWithContext is the same as ListIpRoutes with the addition of
3162// the ability to pass a context and additional request options.
3163//
3164// See ListIpRoutes for details on how to use this API operation.
3165//
3166// The context must be non-nil and will be used for request cancellation. If
3167// the context is nil a panic will occur. In the future the SDK may create
3168// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3169// for more information on using Contexts.
3170func (c *DirectoryService) ListIpRoutesWithContext(ctx aws.Context, input *ListIpRoutesInput, opts ...request.Option) (*ListIpRoutesOutput, error) {
3171	req, out := c.ListIpRoutesRequest(input)
3172	req.SetContext(ctx)
3173	req.ApplyOptions(opts...)
3174	return out, req.Send()
3175}
3176
3177const opListLogSubscriptions = "ListLogSubscriptions"
3178
3179// ListLogSubscriptionsRequest generates a "aws/request.Request" representing the
3180// client's request for the ListLogSubscriptions operation. The "output" return
3181// value will be populated with the request's response once the request completes
3182// successfully.
3183//
3184// Use "Send" method on the returned Request to send the API call to the service.
3185// the "output" return value is not valid until after Send returns without error.
3186//
3187// See ListLogSubscriptions for more information on using the ListLogSubscriptions
3188// API call, and error handling.
3189//
3190// This method is useful when you want to inject custom logic or configuration
3191// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3192//
3193//
3194//    // Example sending a request using the ListLogSubscriptionsRequest method.
3195//    req, resp := client.ListLogSubscriptionsRequest(params)
3196//
3197//    err := req.Send()
3198//    if err == nil { // resp is now filled
3199//        fmt.Println(resp)
3200//    }
3201//
3202// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
3203func (c *DirectoryService) ListLogSubscriptionsRequest(input *ListLogSubscriptionsInput) (req *request.Request, output *ListLogSubscriptionsOutput) {
3204	op := &request.Operation{
3205		Name:       opListLogSubscriptions,
3206		HTTPMethod: "POST",
3207		HTTPPath:   "/",
3208	}
3209
3210	if input == nil {
3211		input = &ListLogSubscriptionsInput{}
3212	}
3213
3214	output = &ListLogSubscriptionsOutput{}
3215	req = c.newRequest(op, input, output)
3216	return
3217}
3218
3219// ListLogSubscriptions API operation for AWS Directory Service.
3220//
3221// Lists the active log subscriptions for the AWS account.
3222//
3223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3224// with awserr.Error's Code and Message methods to get detailed information about
3225// the error.
3226//
3227// See the AWS API reference guide for AWS Directory Service's
3228// API operation ListLogSubscriptions for usage and error information.
3229//
3230// Returned Error Codes:
3231//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3232//   The specified entity could not be found.
3233//
3234//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3235//   The NextToken value is not valid.
3236//
3237//   * ErrCodeClientException "ClientException"
3238//   A client exception has occurred.
3239//
3240//   * ErrCodeServiceException "ServiceException"
3241//   An exception has occurred in AWS Directory Service.
3242//
3243// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListLogSubscriptions
3244func (c *DirectoryService) ListLogSubscriptions(input *ListLogSubscriptionsInput) (*ListLogSubscriptionsOutput, error) {
3245	req, out := c.ListLogSubscriptionsRequest(input)
3246	return out, req.Send()
3247}
3248
3249// ListLogSubscriptionsWithContext is the same as ListLogSubscriptions with the addition of
3250// the ability to pass a context and additional request options.
3251//
3252// See ListLogSubscriptions for details on how to use this API operation.
3253//
3254// The context must be non-nil and will be used for request cancellation. If
3255// the context is nil a panic will occur. In the future the SDK may create
3256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3257// for more information on using Contexts.
3258func (c *DirectoryService) ListLogSubscriptionsWithContext(ctx aws.Context, input *ListLogSubscriptionsInput, opts ...request.Option) (*ListLogSubscriptionsOutput, error) {
3259	req, out := c.ListLogSubscriptionsRequest(input)
3260	req.SetContext(ctx)
3261	req.ApplyOptions(opts...)
3262	return out, req.Send()
3263}
3264
3265const opListSchemaExtensions = "ListSchemaExtensions"
3266
3267// ListSchemaExtensionsRequest generates a "aws/request.Request" representing the
3268// client's request for the ListSchemaExtensions operation. The "output" return
3269// value will be populated with the request's response once the request completes
3270// successfully.
3271//
3272// Use "Send" method on the returned Request to send the API call to the service.
3273// the "output" return value is not valid until after Send returns without error.
3274//
3275// See ListSchemaExtensions for more information on using the ListSchemaExtensions
3276// API call, and error handling.
3277//
3278// This method is useful when you want to inject custom logic or configuration
3279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3280//
3281//
3282//    // Example sending a request using the ListSchemaExtensionsRequest method.
3283//    req, resp := client.ListSchemaExtensionsRequest(params)
3284//
3285//    err := req.Send()
3286//    if err == nil { // resp is now filled
3287//        fmt.Println(resp)
3288//    }
3289//
3290// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
3291func (c *DirectoryService) ListSchemaExtensionsRequest(input *ListSchemaExtensionsInput) (req *request.Request, output *ListSchemaExtensionsOutput) {
3292	op := &request.Operation{
3293		Name:       opListSchemaExtensions,
3294		HTTPMethod: "POST",
3295		HTTPPath:   "/",
3296	}
3297
3298	if input == nil {
3299		input = &ListSchemaExtensionsInput{}
3300	}
3301
3302	output = &ListSchemaExtensionsOutput{}
3303	req = c.newRequest(op, input, output)
3304	return
3305}
3306
3307// ListSchemaExtensions API operation for AWS Directory Service.
3308//
3309// Lists all schema extensions applied to a Microsoft AD Directory.
3310//
3311// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3312// with awserr.Error's Code and Message methods to get detailed information about
3313// the error.
3314//
3315// See the AWS API reference guide for AWS Directory Service's
3316// API operation ListSchemaExtensions for usage and error information.
3317//
3318// Returned Error Codes:
3319//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3320//   The NextToken value is not valid.
3321//
3322//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3323//   The specified entity could not be found.
3324//
3325//   * ErrCodeClientException "ClientException"
3326//   A client exception has occurred.
3327//
3328//   * ErrCodeServiceException "ServiceException"
3329//   An exception has occurred in AWS Directory Service.
3330//
3331// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensions
3332func (c *DirectoryService) ListSchemaExtensions(input *ListSchemaExtensionsInput) (*ListSchemaExtensionsOutput, error) {
3333	req, out := c.ListSchemaExtensionsRequest(input)
3334	return out, req.Send()
3335}
3336
3337// ListSchemaExtensionsWithContext is the same as ListSchemaExtensions with the addition of
3338// the ability to pass a context and additional request options.
3339//
3340// See ListSchemaExtensions for details on how to use this API operation.
3341//
3342// The context must be non-nil and will be used for request cancellation. If
3343// the context is nil a panic will occur. In the future the SDK may create
3344// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3345// for more information on using Contexts.
3346func (c *DirectoryService) ListSchemaExtensionsWithContext(ctx aws.Context, input *ListSchemaExtensionsInput, opts ...request.Option) (*ListSchemaExtensionsOutput, error) {
3347	req, out := c.ListSchemaExtensionsRequest(input)
3348	req.SetContext(ctx)
3349	req.ApplyOptions(opts...)
3350	return out, req.Send()
3351}
3352
3353const opListTagsForResource = "ListTagsForResource"
3354
3355// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3356// client's request for the ListTagsForResource operation. The "output" return
3357// value will be populated with the request's response once the request completes
3358// successfully.
3359//
3360// Use "Send" method on the returned Request to send the API call to the service.
3361// the "output" return value is not valid until after Send returns without error.
3362//
3363// See ListTagsForResource for more information on using the ListTagsForResource
3364// API call, and error handling.
3365//
3366// This method is useful when you want to inject custom logic or configuration
3367// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3368//
3369//
3370//    // Example sending a request using the ListTagsForResourceRequest method.
3371//    req, resp := client.ListTagsForResourceRequest(params)
3372//
3373//    err := req.Send()
3374//    if err == nil { // resp is now filled
3375//        fmt.Println(resp)
3376//    }
3377//
3378// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
3379func (c *DirectoryService) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3380	op := &request.Operation{
3381		Name:       opListTagsForResource,
3382		HTTPMethod: "POST",
3383		HTTPPath:   "/",
3384	}
3385
3386	if input == nil {
3387		input = &ListTagsForResourceInput{}
3388	}
3389
3390	output = &ListTagsForResourceOutput{}
3391	req = c.newRequest(op, input, output)
3392	return
3393}
3394
3395// ListTagsForResource API operation for AWS Directory Service.
3396//
3397// Lists all tags on a directory.
3398//
3399// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3400// with awserr.Error's Code and Message methods to get detailed information about
3401// the error.
3402//
3403// See the AWS API reference guide for AWS Directory Service's
3404// API operation ListTagsForResource for usage and error information.
3405//
3406// Returned Error Codes:
3407//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3408//   The specified entity could not be found.
3409//
3410//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
3411//   The NextToken value is not valid.
3412//
3413//   * ErrCodeInvalidParameterException "InvalidParameterException"
3414//   One or more parameters are not valid.
3415//
3416//   * ErrCodeClientException "ClientException"
3417//   A client exception has occurred.
3418//
3419//   * ErrCodeServiceException "ServiceException"
3420//   An exception has occurred in AWS Directory Service.
3421//
3422// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResource
3423func (c *DirectoryService) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3424	req, out := c.ListTagsForResourceRequest(input)
3425	return out, req.Send()
3426}
3427
3428// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3429// the ability to pass a context and additional request options.
3430//
3431// See ListTagsForResource for details on how to use this API operation.
3432//
3433// The context must be non-nil and will be used for request cancellation. If
3434// the context is nil a panic will occur. In the future the SDK may create
3435// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3436// for more information on using Contexts.
3437func (c *DirectoryService) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3438	req, out := c.ListTagsForResourceRequest(input)
3439	req.SetContext(ctx)
3440	req.ApplyOptions(opts...)
3441	return out, req.Send()
3442}
3443
3444const opRegisterEventTopic = "RegisterEventTopic"
3445
3446// RegisterEventTopicRequest generates a "aws/request.Request" representing the
3447// client's request for the RegisterEventTopic operation. The "output" return
3448// value will be populated with the request's response once the request completes
3449// successfully.
3450//
3451// Use "Send" method on the returned Request to send the API call to the service.
3452// the "output" return value is not valid until after Send returns without error.
3453//
3454// See RegisterEventTopic for more information on using the RegisterEventTopic
3455// API call, and error handling.
3456//
3457// This method is useful when you want to inject custom logic or configuration
3458// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3459//
3460//
3461//    // Example sending a request using the RegisterEventTopicRequest method.
3462//    req, resp := client.RegisterEventTopicRequest(params)
3463//
3464//    err := req.Send()
3465//    if err == nil { // resp is now filled
3466//        fmt.Println(resp)
3467//    }
3468//
3469// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
3470func (c *DirectoryService) RegisterEventTopicRequest(input *RegisterEventTopicInput) (req *request.Request, output *RegisterEventTopicOutput) {
3471	op := &request.Operation{
3472		Name:       opRegisterEventTopic,
3473		HTTPMethod: "POST",
3474		HTTPPath:   "/",
3475	}
3476
3477	if input == nil {
3478		input = &RegisterEventTopicInput{}
3479	}
3480
3481	output = &RegisterEventTopicOutput{}
3482	req = c.newRequest(op, input, output)
3483	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3484	return
3485}
3486
3487// RegisterEventTopic API operation for AWS Directory Service.
3488//
3489// Associates a directory with an SNS topic. This establishes the directory
3490// as a publisher to the specified SNS topic. You can then receive email or
3491// text (SMS) messages when the status of your directory changes. You get notified
3492// if your directory goes from an Active status to an Impaired or Inoperable
3493// status. You also receive a notification when the directory returns to an
3494// Active status.
3495//
3496// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3497// with awserr.Error's Code and Message methods to get detailed information about
3498// the error.
3499//
3500// See the AWS API reference guide for AWS Directory Service's
3501// API operation RegisterEventTopic for usage and error information.
3502//
3503// Returned Error Codes:
3504//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3505//   The specified entity could not be found.
3506//
3507//   * ErrCodeInvalidParameterException "InvalidParameterException"
3508//   One or more parameters are not valid.
3509//
3510//   * ErrCodeClientException "ClientException"
3511//   A client exception has occurred.
3512//
3513//   * ErrCodeServiceException "ServiceException"
3514//   An exception has occurred in AWS Directory Service.
3515//
3516// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopic
3517func (c *DirectoryService) RegisterEventTopic(input *RegisterEventTopicInput) (*RegisterEventTopicOutput, error) {
3518	req, out := c.RegisterEventTopicRequest(input)
3519	return out, req.Send()
3520}
3521
3522// RegisterEventTopicWithContext is the same as RegisterEventTopic with the addition of
3523// the ability to pass a context and additional request options.
3524//
3525// See RegisterEventTopic for details on how to use this API operation.
3526//
3527// The context must be non-nil and will be used for request cancellation. If
3528// the context is nil a panic will occur. In the future the SDK may create
3529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3530// for more information on using Contexts.
3531func (c *DirectoryService) RegisterEventTopicWithContext(ctx aws.Context, input *RegisterEventTopicInput, opts ...request.Option) (*RegisterEventTopicOutput, error) {
3532	req, out := c.RegisterEventTopicRequest(input)
3533	req.SetContext(ctx)
3534	req.ApplyOptions(opts...)
3535	return out, req.Send()
3536}
3537
3538const opRejectSharedDirectory = "RejectSharedDirectory"
3539
3540// RejectSharedDirectoryRequest generates a "aws/request.Request" representing the
3541// client's request for the RejectSharedDirectory operation. The "output" return
3542// value will be populated with the request's response once the request completes
3543// successfully.
3544//
3545// Use "Send" method on the returned Request to send the API call to the service.
3546// the "output" return value is not valid until after Send returns without error.
3547//
3548// See RejectSharedDirectory for more information on using the RejectSharedDirectory
3549// API call, and error handling.
3550//
3551// This method is useful when you want to inject custom logic or configuration
3552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3553//
3554//
3555//    // Example sending a request using the RejectSharedDirectoryRequest method.
3556//    req, resp := client.RejectSharedDirectoryRequest(params)
3557//
3558//    err := req.Send()
3559//    if err == nil { // resp is now filled
3560//        fmt.Println(resp)
3561//    }
3562//
3563// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
3564func (c *DirectoryService) RejectSharedDirectoryRequest(input *RejectSharedDirectoryInput) (req *request.Request, output *RejectSharedDirectoryOutput) {
3565	op := &request.Operation{
3566		Name:       opRejectSharedDirectory,
3567		HTTPMethod: "POST",
3568		HTTPPath:   "/",
3569	}
3570
3571	if input == nil {
3572		input = &RejectSharedDirectoryInput{}
3573	}
3574
3575	output = &RejectSharedDirectoryOutput{}
3576	req = c.newRequest(op, input, output)
3577	return
3578}
3579
3580// RejectSharedDirectory API operation for AWS Directory Service.
3581//
3582// Rejects a directory sharing request that was sent from the directory owner
3583// account.
3584//
3585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3586// with awserr.Error's Code and Message methods to get detailed information about
3587// the error.
3588//
3589// See the AWS API reference guide for AWS Directory Service's
3590// API operation RejectSharedDirectory for usage and error information.
3591//
3592// Returned Error Codes:
3593//   * ErrCodeInvalidParameterException "InvalidParameterException"
3594//   One or more parameters are not valid.
3595//
3596//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3597//   The specified entity could not be found.
3598//
3599//   * ErrCodeDirectoryAlreadySharedException "DirectoryAlreadySharedException"
3600//   The specified directory has already been shared with this AWS account.
3601//
3602//   * ErrCodeClientException "ClientException"
3603//   A client exception has occurred.
3604//
3605//   * ErrCodeServiceException "ServiceException"
3606//   An exception has occurred in AWS Directory Service.
3607//
3608// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RejectSharedDirectory
3609func (c *DirectoryService) RejectSharedDirectory(input *RejectSharedDirectoryInput) (*RejectSharedDirectoryOutput, error) {
3610	req, out := c.RejectSharedDirectoryRequest(input)
3611	return out, req.Send()
3612}
3613
3614// RejectSharedDirectoryWithContext is the same as RejectSharedDirectory with the addition of
3615// the ability to pass a context and additional request options.
3616//
3617// See RejectSharedDirectory for details on how to use this API operation.
3618//
3619// The context must be non-nil and will be used for request cancellation. If
3620// the context is nil a panic will occur. In the future the SDK may create
3621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3622// for more information on using Contexts.
3623func (c *DirectoryService) RejectSharedDirectoryWithContext(ctx aws.Context, input *RejectSharedDirectoryInput, opts ...request.Option) (*RejectSharedDirectoryOutput, error) {
3624	req, out := c.RejectSharedDirectoryRequest(input)
3625	req.SetContext(ctx)
3626	req.ApplyOptions(opts...)
3627	return out, req.Send()
3628}
3629
3630const opRemoveIpRoutes = "RemoveIpRoutes"
3631
3632// RemoveIpRoutesRequest generates a "aws/request.Request" representing the
3633// client's request for the RemoveIpRoutes operation. The "output" return
3634// value will be populated with the request's response once the request completes
3635// successfully.
3636//
3637// Use "Send" method on the returned Request to send the API call to the service.
3638// the "output" return value is not valid until after Send returns without error.
3639//
3640// See RemoveIpRoutes for more information on using the RemoveIpRoutes
3641// API call, and error handling.
3642//
3643// This method is useful when you want to inject custom logic or configuration
3644// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3645//
3646//
3647//    // Example sending a request using the RemoveIpRoutesRequest method.
3648//    req, resp := client.RemoveIpRoutesRequest(params)
3649//
3650//    err := req.Send()
3651//    if err == nil { // resp is now filled
3652//        fmt.Println(resp)
3653//    }
3654//
3655// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
3656func (c *DirectoryService) RemoveIpRoutesRequest(input *RemoveIpRoutesInput) (req *request.Request, output *RemoveIpRoutesOutput) {
3657	op := &request.Operation{
3658		Name:       opRemoveIpRoutes,
3659		HTTPMethod: "POST",
3660		HTTPPath:   "/",
3661	}
3662
3663	if input == nil {
3664		input = &RemoveIpRoutesInput{}
3665	}
3666
3667	output = &RemoveIpRoutesOutput{}
3668	req = c.newRequest(op, input, output)
3669	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3670	return
3671}
3672
3673// RemoveIpRoutes API operation for AWS Directory Service.
3674//
3675// Removes IP address blocks from a directory.
3676//
3677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3678// with awserr.Error's Code and Message methods to get detailed information about
3679// the error.
3680//
3681// See the AWS API reference guide for AWS Directory Service's
3682// API operation RemoveIpRoutes for usage and error information.
3683//
3684// Returned Error Codes:
3685//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3686//   The specified entity could not be found.
3687//
3688//   * ErrCodeInvalidParameterException "InvalidParameterException"
3689//   One or more parameters are not valid.
3690//
3691//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
3692//   The specified directory is unavailable or could not be found.
3693//
3694//   * ErrCodeClientException "ClientException"
3695//   A client exception has occurred.
3696//
3697//   * ErrCodeServiceException "ServiceException"
3698//   An exception has occurred in AWS Directory Service.
3699//
3700// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutes
3701func (c *DirectoryService) RemoveIpRoutes(input *RemoveIpRoutesInput) (*RemoveIpRoutesOutput, error) {
3702	req, out := c.RemoveIpRoutesRequest(input)
3703	return out, req.Send()
3704}
3705
3706// RemoveIpRoutesWithContext is the same as RemoveIpRoutes with the addition of
3707// the ability to pass a context and additional request options.
3708//
3709// See RemoveIpRoutes for details on how to use this API operation.
3710//
3711// The context must be non-nil and will be used for request cancellation. If
3712// the context is nil a panic will occur. In the future the SDK may create
3713// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3714// for more information on using Contexts.
3715func (c *DirectoryService) RemoveIpRoutesWithContext(ctx aws.Context, input *RemoveIpRoutesInput, opts ...request.Option) (*RemoveIpRoutesOutput, error) {
3716	req, out := c.RemoveIpRoutesRequest(input)
3717	req.SetContext(ctx)
3718	req.ApplyOptions(opts...)
3719	return out, req.Send()
3720}
3721
3722const opRemoveTagsFromResource = "RemoveTagsFromResource"
3723
3724// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
3725// client's request for the RemoveTagsFromResource operation. The "output" return
3726// value will be populated with the request's response once the request completes
3727// successfully.
3728//
3729// Use "Send" method on the returned Request to send the API call to the service.
3730// the "output" return value is not valid until after Send returns without error.
3731//
3732// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
3733// API call, and error handling.
3734//
3735// This method is useful when you want to inject custom logic or configuration
3736// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3737//
3738//
3739//    // Example sending a request using the RemoveTagsFromResourceRequest method.
3740//    req, resp := client.RemoveTagsFromResourceRequest(params)
3741//
3742//    err := req.Send()
3743//    if err == nil { // resp is now filled
3744//        fmt.Println(resp)
3745//    }
3746//
3747// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
3748func (c *DirectoryService) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
3749	op := &request.Operation{
3750		Name:       opRemoveTagsFromResource,
3751		HTTPMethod: "POST",
3752		HTTPPath:   "/",
3753	}
3754
3755	if input == nil {
3756		input = &RemoveTagsFromResourceInput{}
3757	}
3758
3759	output = &RemoveTagsFromResourceOutput{}
3760	req = c.newRequest(op, input, output)
3761	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3762	return
3763}
3764
3765// RemoveTagsFromResource API operation for AWS Directory Service.
3766//
3767// Removes tags from a directory.
3768//
3769// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3770// with awserr.Error's Code and Message methods to get detailed information about
3771// the error.
3772//
3773// See the AWS API reference guide for AWS Directory Service's
3774// API operation RemoveTagsFromResource for usage and error information.
3775//
3776// Returned Error Codes:
3777//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3778//   The specified entity could not be found.
3779//
3780//   * ErrCodeInvalidParameterException "InvalidParameterException"
3781//   One or more parameters are not valid.
3782//
3783//   * ErrCodeClientException "ClientException"
3784//   A client exception has occurred.
3785//
3786//   * ErrCodeServiceException "ServiceException"
3787//   An exception has occurred in AWS Directory Service.
3788//
3789// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResource
3790func (c *DirectoryService) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
3791	req, out := c.RemoveTagsFromResourceRequest(input)
3792	return out, req.Send()
3793}
3794
3795// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
3796// the ability to pass a context and additional request options.
3797//
3798// See RemoveTagsFromResource for details on how to use this API operation.
3799//
3800// The context must be non-nil and will be used for request cancellation. If
3801// the context is nil a panic will occur. In the future the SDK may create
3802// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3803// for more information on using Contexts.
3804func (c *DirectoryService) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
3805	req, out := c.RemoveTagsFromResourceRequest(input)
3806	req.SetContext(ctx)
3807	req.ApplyOptions(opts...)
3808	return out, req.Send()
3809}
3810
3811const opResetUserPassword = "ResetUserPassword"
3812
3813// ResetUserPasswordRequest generates a "aws/request.Request" representing the
3814// client's request for the ResetUserPassword operation. The "output" return
3815// value will be populated with the request's response once the request completes
3816// successfully.
3817//
3818// Use "Send" method on the returned Request to send the API call to the service.
3819// the "output" return value is not valid until after Send returns without error.
3820//
3821// See ResetUserPassword for more information on using the ResetUserPassword
3822// API call, and error handling.
3823//
3824// This method is useful when you want to inject custom logic or configuration
3825// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3826//
3827//
3828//    // Example sending a request using the ResetUserPasswordRequest method.
3829//    req, resp := client.ResetUserPasswordRequest(params)
3830//
3831//    err := req.Send()
3832//    if err == nil { // resp is now filled
3833//        fmt.Println(resp)
3834//    }
3835//
3836// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ResetUserPassword
3837func (c *DirectoryService) ResetUserPasswordRequest(input *ResetUserPasswordInput) (req *request.Request, output *ResetUserPasswordOutput) {
3838	op := &request.Operation{
3839		Name:       opResetUserPassword,
3840		HTTPMethod: "POST",
3841		HTTPPath:   "/",
3842	}
3843
3844	if input == nil {
3845		input = &ResetUserPasswordInput{}
3846	}
3847
3848	output = &ResetUserPasswordOutput{}
3849	req = c.newRequest(op, input, output)
3850	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3851	return
3852}
3853
3854// ResetUserPassword API operation for AWS Directory Service.
3855//
3856// Resets the password for any user in your AWS Managed Microsoft AD or Simple
3857// AD directory.
3858//
3859// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3860// with awserr.Error's Code and Message methods to get detailed information about
3861// the error.
3862//
3863// See the AWS API reference guide for AWS Directory Service's
3864// API operation ResetUserPassword for usage and error information.
3865//
3866// Returned Error Codes:
3867//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
3868//   The specified directory is unavailable or could not be found.
3869//
3870//   * ErrCodeUserDoesNotExistException "UserDoesNotExistException"
3871//   The user provided a username that does not exist in your directory.
3872//
3873//   * ErrCodeInvalidPasswordException "InvalidPasswordException"
3874//   The new password provided by the user does not meet the password complexity
3875//   requirements defined in your directory.
3876//
3877//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
3878//   The operation is not supported.
3879//
3880//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3881//   The specified entity could not be found.
3882//
3883//   * ErrCodeClientException "ClientException"
3884//   A client exception has occurred.
3885//
3886//   * ErrCodeServiceException "ServiceException"
3887//   An exception has occurred in AWS Directory Service.
3888//
3889// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ResetUserPassword
3890func (c *DirectoryService) ResetUserPassword(input *ResetUserPasswordInput) (*ResetUserPasswordOutput, error) {
3891	req, out := c.ResetUserPasswordRequest(input)
3892	return out, req.Send()
3893}
3894
3895// ResetUserPasswordWithContext is the same as ResetUserPassword with the addition of
3896// the ability to pass a context and additional request options.
3897//
3898// See ResetUserPassword for details on how to use this API operation.
3899//
3900// The context must be non-nil and will be used for request cancellation. If
3901// the context is nil a panic will occur. In the future the SDK may create
3902// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3903// for more information on using Contexts.
3904func (c *DirectoryService) ResetUserPasswordWithContext(ctx aws.Context, input *ResetUserPasswordInput, opts ...request.Option) (*ResetUserPasswordOutput, error) {
3905	req, out := c.ResetUserPasswordRequest(input)
3906	req.SetContext(ctx)
3907	req.ApplyOptions(opts...)
3908	return out, req.Send()
3909}
3910
3911const opRestoreFromSnapshot = "RestoreFromSnapshot"
3912
3913// RestoreFromSnapshotRequest generates a "aws/request.Request" representing the
3914// client's request for the RestoreFromSnapshot operation. The "output" return
3915// value will be populated with the request's response once the request completes
3916// successfully.
3917//
3918// Use "Send" method on the returned Request to send the API call to the service.
3919// the "output" return value is not valid until after Send returns without error.
3920//
3921// See RestoreFromSnapshot for more information on using the RestoreFromSnapshot
3922// API call, and error handling.
3923//
3924// This method is useful when you want to inject custom logic or configuration
3925// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3926//
3927//
3928//    // Example sending a request using the RestoreFromSnapshotRequest method.
3929//    req, resp := client.RestoreFromSnapshotRequest(params)
3930//
3931//    err := req.Send()
3932//    if err == nil { // resp is now filled
3933//        fmt.Println(resp)
3934//    }
3935//
3936// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
3937func (c *DirectoryService) RestoreFromSnapshotRequest(input *RestoreFromSnapshotInput) (req *request.Request, output *RestoreFromSnapshotOutput) {
3938	op := &request.Operation{
3939		Name:       opRestoreFromSnapshot,
3940		HTTPMethod: "POST",
3941		HTTPPath:   "/",
3942	}
3943
3944	if input == nil {
3945		input = &RestoreFromSnapshotInput{}
3946	}
3947
3948	output = &RestoreFromSnapshotOutput{}
3949	req = c.newRequest(op, input, output)
3950	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3951	return
3952}
3953
3954// RestoreFromSnapshot API operation for AWS Directory Service.
3955//
3956// Restores a directory using an existing directory snapshot.
3957//
3958// When you restore a directory from a snapshot, any changes made to the directory
3959// after the snapshot date are overwritten.
3960//
3961// This action returns as soon as the restore operation is initiated. You can
3962// monitor the progress of the restore operation by calling the DescribeDirectories
3963// operation with the directory identifier. When the DirectoryDescription.Stage
3964// value changes to Active, the restore operation is complete.
3965//
3966// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3967// with awserr.Error's Code and Message methods to get detailed information about
3968// the error.
3969//
3970// See the AWS API reference guide for AWS Directory Service's
3971// API operation RestoreFromSnapshot for usage and error information.
3972//
3973// Returned Error Codes:
3974//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
3975//   The specified entity could not be found.
3976//
3977//   * ErrCodeInvalidParameterException "InvalidParameterException"
3978//   One or more parameters are not valid.
3979//
3980//   * ErrCodeClientException "ClientException"
3981//   A client exception has occurred.
3982//
3983//   * ErrCodeServiceException "ServiceException"
3984//   An exception has occurred in AWS Directory Service.
3985//
3986// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshot
3987func (c *DirectoryService) RestoreFromSnapshot(input *RestoreFromSnapshotInput) (*RestoreFromSnapshotOutput, error) {
3988	req, out := c.RestoreFromSnapshotRequest(input)
3989	return out, req.Send()
3990}
3991
3992// RestoreFromSnapshotWithContext is the same as RestoreFromSnapshot with the addition of
3993// the ability to pass a context and additional request options.
3994//
3995// See RestoreFromSnapshot for details on how to use this API operation.
3996//
3997// The context must be non-nil and will be used for request cancellation. If
3998// the context is nil a panic will occur. In the future the SDK may create
3999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4000// for more information on using Contexts.
4001func (c *DirectoryService) RestoreFromSnapshotWithContext(ctx aws.Context, input *RestoreFromSnapshotInput, opts ...request.Option) (*RestoreFromSnapshotOutput, error) {
4002	req, out := c.RestoreFromSnapshotRequest(input)
4003	req.SetContext(ctx)
4004	req.ApplyOptions(opts...)
4005	return out, req.Send()
4006}
4007
4008const opShareDirectory = "ShareDirectory"
4009
4010// ShareDirectoryRequest generates a "aws/request.Request" representing the
4011// client's request for the ShareDirectory operation. The "output" return
4012// value will be populated with the request's response once the request completes
4013// successfully.
4014//
4015// Use "Send" method on the returned Request to send the API call to the service.
4016// the "output" return value is not valid until after Send returns without error.
4017//
4018// See ShareDirectory for more information on using the ShareDirectory
4019// API call, and error handling.
4020//
4021// This method is useful when you want to inject custom logic or configuration
4022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4023//
4024//
4025//    // Example sending a request using the ShareDirectoryRequest method.
4026//    req, resp := client.ShareDirectoryRequest(params)
4027//
4028//    err := req.Send()
4029//    if err == nil { // resp is now filled
4030//        fmt.Println(resp)
4031//    }
4032//
4033// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
4034func (c *DirectoryService) ShareDirectoryRequest(input *ShareDirectoryInput) (req *request.Request, output *ShareDirectoryOutput) {
4035	op := &request.Operation{
4036		Name:       opShareDirectory,
4037		HTTPMethod: "POST",
4038		HTTPPath:   "/",
4039	}
4040
4041	if input == nil {
4042		input = &ShareDirectoryInput{}
4043	}
4044
4045	output = &ShareDirectoryOutput{}
4046	req = c.newRequest(op, input, output)
4047	return
4048}
4049
4050// ShareDirectory API operation for AWS Directory Service.
4051//
4052// Shares a specified directory (DirectoryId) in your AWS account (directory
4053// owner) with another AWS account (directory consumer). With this operation
4054// you can use your directory from any AWS account and from any Amazon VPC within
4055// an AWS Region.
4056//
4057// When you share your AWS Managed Microsoft AD directory, AWS Directory Service
4058// creates a shared directory in the directory consumer account. This shared
4059// directory contains the metadata to provide access to the directory within
4060// the directory owner account. The shared directory is visible in all VPCs
4061// in the directory consumer account.
4062//
4063// The ShareMethod parameter determines whether the specified directory can
4064// be shared between AWS accounts inside the same AWS organization (ORGANIZATIONS).
4065// It also determines whether you can share the directory with any other AWS
4066// account either inside or outside of the organization (HANDSHAKE).
4067//
4068// The ShareNotes parameter is only used when HANDSHAKE is called, which sends
4069// a directory sharing request to the directory consumer.
4070//
4071// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4072// with awserr.Error's Code and Message methods to get detailed information about
4073// the error.
4074//
4075// See the AWS API reference guide for AWS Directory Service's
4076// API operation ShareDirectory for usage and error information.
4077//
4078// Returned Error Codes:
4079//   * ErrCodeDirectoryAlreadySharedException "DirectoryAlreadySharedException"
4080//   The specified directory has already been shared with this AWS account.
4081//
4082//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4083//   The specified entity could not be found.
4084//
4085//   * ErrCodeInvalidTargetException "InvalidTargetException"
4086//   The specified shared target is not valid.
4087//
4088//   * ErrCodeInvalidParameterException "InvalidParameterException"
4089//   One or more parameters are not valid.
4090//
4091//   * ErrCodeClientException "ClientException"
4092//   A client exception has occurred.
4093//
4094//   * ErrCodeShareLimitExceededException "ShareLimitExceededException"
4095//   The maximum number of AWS accounts that you can share with this directory
4096//   has been reached.
4097//
4098//   * ErrCodeOrganizationsException "OrganizationsException"
4099//   Exception encountered while trying to access your AWS organization.
4100//
4101//   * ErrCodeAccessDeniedException "AccessDeniedException"
4102//   You do not have sufficient access to perform this action.
4103//
4104//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
4105//   The operation is not supported.
4106//
4107//   * ErrCodeServiceException "ServiceException"
4108//   An exception has occurred in AWS Directory Service.
4109//
4110// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ShareDirectory
4111func (c *DirectoryService) ShareDirectory(input *ShareDirectoryInput) (*ShareDirectoryOutput, error) {
4112	req, out := c.ShareDirectoryRequest(input)
4113	return out, req.Send()
4114}
4115
4116// ShareDirectoryWithContext is the same as ShareDirectory with the addition of
4117// the ability to pass a context and additional request options.
4118//
4119// See ShareDirectory for details on how to use this API operation.
4120//
4121// The context must be non-nil and will be used for request cancellation. If
4122// the context is nil a panic will occur. In the future the SDK may create
4123// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4124// for more information on using Contexts.
4125func (c *DirectoryService) ShareDirectoryWithContext(ctx aws.Context, input *ShareDirectoryInput, opts ...request.Option) (*ShareDirectoryOutput, error) {
4126	req, out := c.ShareDirectoryRequest(input)
4127	req.SetContext(ctx)
4128	req.ApplyOptions(opts...)
4129	return out, req.Send()
4130}
4131
4132const opStartSchemaExtension = "StartSchemaExtension"
4133
4134// StartSchemaExtensionRequest generates a "aws/request.Request" representing the
4135// client's request for the StartSchemaExtension operation. The "output" return
4136// value will be populated with the request's response once the request completes
4137// successfully.
4138//
4139// Use "Send" method on the returned Request to send the API call to the service.
4140// the "output" return value is not valid until after Send returns without error.
4141//
4142// See StartSchemaExtension for more information on using the StartSchemaExtension
4143// API call, and error handling.
4144//
4145// This method is useful when you want to inject custom logic or configuration
4146// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4147//
4148//
4149//    // Example sending a request using the StartSchemaExtensionRequest method.
4150//    req, resp := client.StartSchemaExtensionRequest(params)
4151//
4152//    err := req.Send()
4153//    if err == nil { // resp is now filled
4154//        fmt.Println(resp)
4155//    }
4156//
4157// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
4158func (c *DirectoryService) StartSchemaExtensionRequest(input *StartSchemaExtensionInput) (req *request.Request, output *StartSchemaExtensionOutput) {
4159	op := &request.Operation{
4160		Name:       opStartSchemaExtension,
4161		HTTPMethod: "POST",
4162		HTTPPath:   "/",
4163	}
4164
4165	if input == nil {
4166		input = &StartSchemaExtensionInput{}
4167	}
4168
4169	output = &StartSchemaExtensionOutput{}
4170	req = c.newRequest(op, input, output)
4171	return
4172}
4173
4174// StartSchemaExtension API operation for AWS Directory Service.
4175//
4176// Applies a schema extension to a Microsoft AD directory.
4177//
4178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4179// with awserr.Error's Code and Message methods to get detailed information about
4180// the error.
4181//
4182// See the AWS API reference guide for AWS Directory Service's
4183// API operation StartSchemaExtension for usage and error information.
4184//
4185// Returned Error Codes:
4186//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
4187//   The specified directory is unavailable or could not be found.
4188//
4189//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4190//   The specified entity could not be found.
4191//
4192//   * ErrCodeInvalidParameterException "InvalidParameterException"
4193//   One or more parameters are not valid.
4194//
4195//   * ErrCodeSnapshotLimitExceededException "SnapshotLimitExceededException"
4196//   The maximum number of manual snapshots for the directory has been reached.
4197//   You can use the GetSnapshotLimits operation to determine the snapshot limits
4198//   for a directory.
4199//
4200//   * ErrCodeClientException "ClientException"
4201//   A client exception has occurred.
4202//
4203//   * ErrCodeServiceException "ServiceException"
4204//   An exception has occurred in AWS Directory Service.
4205//
4206// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtension
4207func (c *DirectoryService) StartSchemaExtension(input *StartSchemaExtensionInput) (*StartSchemaExtensionOutput, error) {
4208	req, out := c.StartSchemaExtensionRequest(input)
4209	return out, req.Send()
4210}
4211
4212// StartSchemaExtensionWithContext is the same as StartSchemaExtension with the addition of
4213// the ability to pass a context and additional request options.
4214//
4215// See StartSchemaExtension for details on how to use this API operation.
4216//
4217// The context must be non-nil and will be used for request cancellation. If
4218// the context is nil a panic will occur. In the future the SDK may create
4219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4220// for more information on using Contexts.
4221func (c *DirectoryService) StartSchemaExtensionWithContext(ctx aws.Context, input *StartSchemaExtensionInput, opts ...request.Option) (*StartSchemaExtensionOutput, error) {
4222	req, out := c.StartSchemaExtensionRequest(input)
4223	req.SetContext(ctx)
4224	req.ApplyOptions(opts...)
4225	return out, req.Send()
4226}
4227
4228const opUnshareDirectory = "UnshareDirectory"
4229
4230// UnshareDirectoryRequest generates a "aws/request.Request" representing the
4231// client's request for the UnshareDirectory operation. The "output" return
4232// value will be populated with the request's response once the request completes
4233// successfully.
4234//
4235// Use "Send" method on the returned Request to send the API call to the service.
4236// the "output" return value is not valid until after Send returns without error.
4237//
4238// See UnshareDirectory for more information on using the UnshareDirectory
4239// API call, and error handling.
4240//
4241// This method is useful when you want to inject custom logic or configuration
4242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4243//
4244//
4245//    // Example sending a request using the UnshareDirectoryRequest method.
4246//    req, resp := client.UnshareDirectoryRequest(params)
4247//
4248//    err := req.Send()
4249//    if err == nil { // resp is now filled
4250//        fmt.Println(resp)
4251//    }
4252//
4253// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
4254func (c *DirectoryService) UnshareDirectoryRequest(input *UnshareDirectoryInput) (req *request.Request, output *UnshareDirectoryOutput) {
4255	op := &request.Operation{
4256		Name:       opUnshareDirectory,
4257		HTTPMethod: "POST",
4258		HTTPPath:   "/",
4259	}
4260
4261	if input == nil {
4262		input = &UnshareDirectoryInput{}
4263	}
4264
4265	output = &UnshareDirectoryOutput{}
4266	req = c.newRequest(op, input, output)
4267	return
4268}
4269
4270// UnshareDirectory API operation for AWS Directory Service.
4271//
4272// Stops the directory sharing between the directory owner and consumer accounts.
4273//
4274// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4275// with awserr.Error's Code and Message methods to get detailed information about
4276// the error.
4277//
4278// See the AWS API reference guide for AWS Directory Service's
4279// API operation UnshareDirectory for usage and error information.
4280//
4281// Returned Error Codes:
4282//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4283//   The specified entity could not be found.
4284//
4285//   * ErrCodeInvalidTargetException "InvalidTargetException"
4286//   The specified shared target is not valid.
4287//
4288//   * ErrCodeDirectoryNotSharedException "DirectoryNotSharedException"
4289//   The specified directory has not been shared with this AWS account.
4290//
4291//   * ErrCodeClientException "ClientException"
4292//   A client exception has occurred.
4293//
4294//   * ErrCodeServiceException "ServiceException"
4295//   An exception has occurred in AWS Directory Service.
4296//
4297// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UnshareDirectory
4298func (c *DirectoryService) UnshareDirectory(input *UnshareDirectoryInput) (*UnshareDirectoryOutput, error) {
4299	req, out := c.UnshareDirectoryRequest(input)
4300	return out, req.Send()
4301}
4302
4303// UnshareDirectoryWithContext is the same as UnshareDirectory with the addition of
4304// the ability to pass a context and additional request options.
4305//
4306// See UnshareDirectory for details on how to use this API operation.
4307//
4308// The context must be non-nil and will be used for request cancellation. If
4309// the context is nil a panic will occur. In the future the SDK may create
4310// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4311// for more information on using Contexts.
4312func (c *DirectoryService) UnshareDirectoryWithContext(ctx aws.Context, input *UnshareDirectoryInput, opts ...request.Option) (*UnshareDirectoryOutput, error) {
4313	req, out := c.UnshareDirectoryRequest(input)
4314	req.SetContext(ctx)
4315	req.ApplyOptions(opts...)
4316	return out, req.Send()
4317}
4318
4319const opUpdateConditionalForwarder = "UpdateConditionalForwarder"
4320
4321// UpdateConditionalForwarderRequest generates a "aws/request.Request" representing the
4322// client's request for the UpdateConditionalForwarder operation. The "output" return
4323// value will be populated with the request's response once the request completes
4324// successfully.
4325//
4326// Use "Send" method on the returned Request to send the API call to the service.
4327// the "output" return value is not valid until after Send returns without error.
4328//
4329// See UpdateConditionalForwarder for more information on using the UpdateConditionalForwarder
4330// API call, and error handling.
4331//
4332// This method is useful when you want to inject custom logic or configuration
4333// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4334//
4335//
4336//    // Example sending a request using the UpdateConditionalForwarderRequest method.
4337//    req, resp := client.UpdateConditionalForwarderRequest(params)
4338//
4339//    err := req.Send()
4340//    if err == nil { // resp is now filled
4341//        fmt.Println(resp)
4342//    }
4343//
4344// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
4345func (c *DirectoryService) UpdateConditionalForwarderRequest(input *UpdateConditionalForwarderInput) (req *request.Request, output *UpdateConditionalForwarderOutput) {
4346	op := &request.Operation{
4347		Name:       opUpdateConditionalForwarder,
4348		HTTPMethod: "POST",
4349		HTTPPath:   "/",
4350	}
4351
4352	if input == nil {
4353		input = &UpdateConditionalForwarderInput{}
4354	}
4355
4356	output = &UpdateConditionalForwarderOutput{}
4357	req = c.newRequest(op, input, output)
4358	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4359	return
4360}
4361
4362// UpdateConditionalForwarder API operation for AWS Directory Service.
4363//
4364// Updates a conditional forwarder that has been set up for your AWS directory.
4365//
4366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4367// with awserr.Error's Code and Message methods to get detailed information about
4368// the error.
4369//
4370// See the AWS API reference guide for AWS Directory Service's
4371// API operation UpdateConditionalForwarder for usage and error information.
4372//
4373// Returned Error Codes:
4374//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4375//   The specified entity could not be found.
4376//
4377//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
4378//   The specified directory is unavailable or could not be found.
4379//
4380//   * ErrCodeInvalidParameterException "InvalidParameterException"
4381//   One or more parameters are not valid.
4382//
4383//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
4384//   The operation is not supported.
4385//
4386//   * ErrCodeClientException "ClientException"
4387//   A client exception has occurred.
4388//
4389//   * ErrCodeServiceException "ServiceException"
4390//   An exception has occurred in AWS Directory Service.
4391//
4392// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarder
4393func (c *DirectoryService) UpdateConditionalForwarder(input *UpdateConditionalForwarderInput) (*UpdateConditionalForwarderOutput, error) {
4394	req, out := c.UpdateConditionalForwarderRequest(input)
4395	return out, req.Send()
4396}
4397
4398// UpdateConditionalForwarderWithContext is the same as UpdateConditionalForwarder with the addition of
4399// the ability to pass a context and additional request options.
4400//
4401// See UpdateConditionalForwarder for details on how to use this API operation.
4402//
4403// The context must be non-nil and will be used for request cancellation. If
4404// the context is nil a panic will occur. In the future the SDK may create
4405// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4406// for more information on using Contexts.
4407func (c *DirectoryService) UpdateConditionalForwarderWithContext(ctx aws.Context, input *UpdateConditionalForwarderInput, opts ...request.Option) (*UpdateConditionalForwarderOutput, error) {
4408	req, out := c.UpdateConditionalForwarderRequest(input)
4409	req.SetContext(ctx)
4410	req.ApplyOptions(opts...)
4411	return out, req.Send()
4412}
4413
4414const opUpdateNumberOfDomainControllers = "UpdateNumberOfDomainControllers"
4415
4416// UpdateNumberOfDomainControllersRequest generates a "aws/request.Request" representing the
4417// client's request for the UpdateNumberOfDomainControllers operation. The "output" return
4418// value will be populated with the request's response once the request completes
4419// successfully.
4420//
4421// Use "Send" method on the returned Request to send the API call to the service.
4422// the "output" return value is not valid until after Send returns without error.
4423//
4424// See UpdateNumberOfDomainControllers for more information on using the UpdateNumberOfDomainControllers
4425// API call, and error handling.
4426//
4427// This method is useful when you want to inject custom logic or configuration
4428// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4429//
4430//
4431//    // Example sending a request using the UpdateNumberOfDomainControllersRequest method.
4432//    req, resp := client.UpdateNumberOfDomainControllersRequest(params)
4433//
4434//    err := req.Send()
4435//    if err == nil { // resp is now filled
4436//        fmt.Println(resp)
4437//    }
4438//
4439// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
4440func (c *DirectoryService) UpdateNumberOfDomainControllersRequest(input *UpdateNumberOfDomainControllersInput) (req *request.Request, output *UpdateNumberOfDomainControllersOutput) {
4441	op := &request.Operation{
4442		Name:       opUpdateNumberOfDomainControllers,
4443		HTTPMethod: "POST",
4444		HTTPPath:   "/",
4445	}
4446
4447	if input == nil {
4448		input = &UpdateNumberOfDomainControllersInput{}
4449	}
4450
4451	output = &UpdateNumberOfDomainControllersOutput{}
4452	req = c.newRequest(op, input, output)
4453	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4454	return
4455}
4456
4457// UpdateNumberOfDomainControllers API operation for AWS Directory Service.
4458//
4459// Adds or removes domain controllers to or from the directory. Based on the
4460// difference between current value and new value (provided through this API
4461// call), domain controllers will be added or removed. It may take up to 45
4462// minutes for any new domain controllers to become fully active once the requested
4463// number of domain controllers is updated. During this time, you cannot make
4464// another update request.
4465//
4466// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4467// with awserr.Error's Code and Message methods to get detailed information about
4468// the error.
4469//
4470// See the AWS API reference guide for AWS Directory Service's
4471// API operation UpdateNumberOfDomainControllers for usage and error information.
4472//
4473// Returned Error Codes:
4474//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4475//   The specified entity could not be found.
4476//
4477//   * ErrCodeDirectoryUnavailableException "DirectoryUnavailableException"
4478//   The specified directory is unavailable or could not be found.
4479//
4480//   * ErrCodeDomainControllerLimitExceededException "DomainControllerLimitExceededException"
4481//   The maximum allowed number of domain controllers per directory was exceeded.
4482//   The default limit per directory is 20 domain controllers.
4483//
4484//   * ErrCodeInvalidParameterException "InvalidParameterException"
4485//   One or more parameters are not valid.
4486//
4487//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
4488//   The operation is not supported.
4489//
4490//   * ErrCodeClientException "ClientException"
4491//   A client exception has occurred.
4492//
4493//   * ErrCodeServiceException "ServiceException"
4494//   An exception has occurred in AWS Directory Service.
4495//
4496// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllers
4497func (c *DirectoryService) UpdateNumberOfDomainControllers(input *UpdateNumberOfDomainControllersInput) (*UpdateNumberOfDomainControllersOutput, error) {
4498	req, out := c.UpdateNumberOfDomainControllersRequest(input)
4499	return out, req.Send()
4500}
4501
4502// UpdateNumberOfDomainControllersWithContext is the same as UpdateNumberOfDomainControllers with the addition of
4503// the ability to pass a context and additional request options.
4504//
4505// See UpdateNumberOfDomainControllers for details on how to use this API operation.
4506//
4507// The context must be non-nil and will be used for request cancellation. If
4508// the context is nil a panic will occur. In the future the SDK may create
4509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4510// for more information on using Contexts.
4511func (c *DirectoryService) UpdateNumberOfDomainControllersWithContext(ctx aws.Context, input *UpdateNumberOfDomainControllersInput, opts ...request.Option) (*UpdateNumberOfDomainControllersOutput, error) {
4512	req, out := c.UpdateNumberOfDomainControllersRequest(input)
4513	req.SetContext(ctx)
4514	req.ApplyOptions(opts...)
4515	return out, req.Send()
4516}
4517
4518const opUpdateRadius = "UpdateRadius"
4519
4520// UpdateRadiusRequest generates a "aws/request.Request" representing the
4521// client's request for the UpdateRadius operation. The "output" return
4522// value will be populated with the request's response once the request completes
4523// successfully.
4524//
4525// Use "Send" method on the returned Request to send the API call to the service.
4526// the "output" return value is not valid until after Send returns without error.
4527//
4528// See UpdateRadius for more information on using the UpdateRadius
4529// API call, and error handling.
4530//
4531// This method is useful when you want to inject custom logic or configuration
4532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4533//
4534//
4535//    // Example sending a request using the UpdateRadiusRequest method.
4536//    req, resp := client.UpdateRadiusRequest(params)
4537//
4538//    err := req.Send()
4539//    if err == nil { // resp is now filled
4540//        fmt.Println(resp)
4541//    }
4542//
4543// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
4544func (c *DirectoryService) UpdateRadiusRequest(input *UpdateRadiusInput) (req *request.Request, output *UpdateRadiusOutput) {
4545	op := &request.Operation{
4546		Name:       opUpdateRadius,
4547		HTTPMethod: "POST",
4548		HTTPPath:   "/",
4549	}
4550
4551	if input == nil {
4552		input = &UpdateRadiusInput{}
4553	}
4554
4555	output = &UpdateRadiusOutput{}
4556	req = c.newRequest(op, input, output)
4557	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4558	return
4559}
4560
4561// UpdateRadius API operation for AWS Directory Service.
4562//
4563// Updates the Remote Authentication Dial In User Service (RADIUS) server information
4564// for an AD Connector or Microsoft AD directory.
4565//
4566// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4567// with awserr.Error's Code and Message methods to get detailed information about
4568// the error.
4569//
4570// See the AWS API reference guide for AWS Directory Service's
4571// API operation UpdateRadius for usage and error information.
4572//
4573// Returned Error Codes:
4574//   * ErrCodeInvalidParameterException "InvalidParameterException"
4575//   One or more parameters are not valid.
4576//
4577//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4578//   The specified entity could not be found.
4579//
4580//   * ErrCodeClientException "ClientException"
4581//   A client exception has occurred.
4582//
4583//   * ErrCodeServiceException "ServiceException"
4584//   An exception has occurred in AWS Directory Service.
4585//
4586// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadius
4587func (c *DirectoryService) UpdateRadius(input *UpdateRadiusInput) (*UpdateRadiusOutput, error) {
4588	req, out := c.UpdateRadiusRequest(input)
4589	return out, req.Send()
4590}
4591
4592// UpdateRadiusWithContext is the same as UpdateRadius with the addition of
4593// the ability to pass a context and additional request options.
4594//
4595// See UpdateRadius for details on how to use this API operation.
4596//
4597// The context must be non-nil and will be used for request cancellation. If
4598// the context is nil a panic will occur. In the future the SDK may create
4599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4600// for more information on using Contexts.
4601func (c *DirectoryService) UpdateRadiusWithContext(ctx aws.Context, input *UpdateRadiusInput, opts ...request.Option) (*UpdateRadiusOutput, error) {
4602	req, out := c.UpdateRadiusRequest(input)
4603	req.SetContext(ctx)
4604	req.ApplyOptions(opts...)
4605	return out, req.Send()
4606}
4607
4608const opUpdateTrust = "UpdateTrust"
4609
4610// UpdateTrustRequest generates a "aws/request.Request" representing the
4611// client's request for the UpdateTrust operation. The "output" return
4612// value will be populated with the request's response once the request completes
4613// successfully.
4614//
4615// Use "Send" method on the returned Request to send the API call to the service.
4616// the "output" return value is not valid until after Send returns without error.
4617//
4618// See UpdateTrust for more information on using the UpdateTrust
4619// API call, and error handling.
4620//
4621// This method is useful when you want to inject custom logic or configuration
4622// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4623//
4624//
4625//    // Example sending a request using the UpdateTrustRequest method.
4626//    req, resp := client.UpdateTrustRequest(params)
4627//
4628//    err := req.Send()
4629//    if err == nil { // resp is now filled
4630//        fmt.Println(resp)
4631//    }
4632//
4633// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
4634func (c *DirectoryService) UpdateTrustRequest(input *UpdateTrustInput) (req *request.Request, output *UpdateTrustOutput) {
4635	op := &request.Operation{
4636		Name:       opUpdateTrust,
4637		HTTPMethod: "POST",
4638		HTTPPath:   "/",
4639	}
4640
4641	if input == nil {
4642		input = &UpdateTrustInput{}
4643	}
4644
4645	output = &UpdateTrustOutput{}
4646	req = c.newRequest(op, input, output)
4647	return
4648}
4649
4650// UpdateTrust API operation for AWS Directory Service.
4651//
4652// Updates the trust that has been set up between your AWS Managed Microsoft
4653// AD directory and an on-premises Active Directory.
4654//
4655// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4656// with awserr.Error's Code and Message methods to get detailed information about
4657// the error.
4658//
4659// See the AWS API reference guide for AWS Directory Service's
4660// API operation UpdateTrust for usage and error information.
4661//
4662// Returned Error Codes:
4663//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4664//   The specified entity could not be found.
4665//
4666//   * ErrCodeInvalidParameterException "InvalidParameterException"
4667//   One or more parameters are not valid.
4668//
4669//   * ErrCodeClientException "ClientException"
4670//   A client exception has occurred.
4671//
4672//   * ErrCodeServiceException "ServiceException"
4673//   An exception has occurred in AWS Directory Service.
4674//
4675// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateTrust
4676func (c *DirectoryService) UpdateTrust(input *UpdateTrustInput) (*UpdateTrustOutput, error) {
4677	req, out := c.UpdateTrustRequest(input)
4678	return out, req.Send()
4679}
4680
4681// UpdateTrustWithContext is the same as UpdateTrust with the addition of
4682// the ability to pass a context and additional request options.
4683//
4684// See UpdateTrust for details on how to use this API operation.
4685//
4686// The context must be non-nil and will be used for request cancellation. If
4687// the context is nil a panic will occur. In the future the SDK may create
4688// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4689// for more information on using Contexts.
4690func (c *DirectoryService) UpdateTrustWithContext(ctx aws.Context, input *UpdateTrustInput, opts ...request.Option) (*UpdateTrustOutput, error) {
4691	req, out := c.UpdateTrustRequest(input)
4692	req.SetContext(ctx)
4693	req.ApplyOptions(opts...)
4694	return out, req.Send()
4695}
4696
4697const opVerifyTrust = "VerifyTrust"
4698
4699// VerifyTrustRequest generates a "aws/request.Request" representing the
4700// client's request for the VerifyTrust operation. The "output" return
4701// value will be populated with the request's response once the request completes
4702// successfully.
4703//
4704// Use "Send" method on the returned Request to send the API call to the service.
4705// the "output" return value is not valid until after Send returns without error.
4706//
4707// See VerifyTrust for more information on using the VerifyTrust
4708// API call, and error handling.
4709//
4710// This method is useful when you want to inject custom logic or configuration
4711// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4712//
4713//
4714//    // Example sending a request using the VerifyTrustRequest method.
4715//    req, resp := client.VerifyTrustRequest(params)
4716//
4717//    err := req.Send()
4718//    if err == nil { // resp is now filled
4719//        fmt.Println(resp)
4720//    }
4721//
4722// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
4723func (c *DirectoryService) VerifyTrustRequest(input *VerifyTrustInput) (req *request.Request, output *VerifyTrustOutput) {
4724	op := &request.Operation{
4725		Name:       opVerifyTrust,
4726		HTTPMethod: "POST",
4727		HTTPPath:   "/",
4728	}
4729
4730	if input == nil {
4731		input = &VerifyTrustInput{}
4732	}
4733
4734	output = &VerifyTrustOutput{}
4735	req = c.newRequest(op, input, output)
4736	return
4737}
4738
4739// VerifyTrust API operation for AWS Directory Service.
4740//
4741// AWS Directory Service for Microsoft Active Directory allows you to configure
4742// and verify trust relationships.
4743//
4744// This action verifies a trust relationship between your AWS Managed Microsoft
4745// AD directory and an external domain.
4746//
4747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4748// with awserr.Error's Code and Message methods to get detailed information about
4749// the error.
4750//
4751// See the AWS API reference guide for AWS Directory Service's
4752// API operation VerifyTrust for usage and error information.
4753//
4754// Returned Error Codes:
4755//   * ErrCodeEntityDoesNotExistException "EntityDoesNotExistException"
4756//   The specified entity could not be found.
4757//
4758//   * ErrCodeInvalidParameterException "InvalidParameterException"
4759//   One or more parameters are not valid.
4760//
4761//   * ErrCodeClientException "ClientException"
4762//   A client exception has occurred.
4763//
4764//   * ErrCodeServiceException "ServiceException"
4765//   An exception has occurred in AWS Directory Service.
4766//
4767//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
4768//   The operation is not supported.
4769//
4770// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrust
4771func (c *DirectoryService) VerifyTrust(input *VerifyTrustInput) (*VerifyTrustOutput, error) {
4772	req, out := c.VerifyTrustRequest(input)
4773	return out, req.Send()
4774}
4775
4776// VerifyTrustWithContext is the same as VerifyTrust with the addition of
4777// the ability to pass a context and additional request options.
4778//
4779// See VerifyTrust for details on how to use this API operation.
4780//
4781// The context must be non-nil and will be used for request cancellation. If
4782// the context is nil a panic will occur. In the future the SDK may create
4783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4784// for more information on using Contexts.
4785func (c *DirectoryService) VerifyTrustWithContext(ctx aws.Context, input *VerifyTrustInput, opts ...request.Option) (*VerifyTrustOutput, error) {
4786	req, out := c.VerifyTrustRequest(input)
4787	req.SetContext(ctx)
4788	req.ApplyOptions(opts...)
4789	return out, req.Send()
4790}
4791
4792type AcceptSharedDirectoryInput struct {
4793	_ struct{} `type:"structure"`
4794
4795	// Identifier of the shared directory in the directory consumer account. This
4796	// identifier is different for each directory owner account.
4797	//
4798	// SharedDirectoryId is a required field
4799	SharedDirectoryId *string `type:"string" required:"true"`
4800}
4801
4802// String returns the string representation
4803func (s AcceptSharedDirectoryInput) String() string {
4804	return awsutil.Prettify(s)
4805}
4806
4807// GoString returns the string representation
4808func (s AcceptSharedDirectoryInput) GoString() string {
4809	return s.String()
4810}
4811
4812// Validate inspects the fields of the type to determine if they are valid.
4813func (s *AcceptSharedDirectoryInput) Validate() error {
4814	invalidParams := request.ErrInvalidParams{Context: "AcceptSharedDirectoryInput"}
4815	if s.SharedDirectoryId == nil {
4816		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
4817	}
4818
4819	if invalidParams.Len() > 0 {
4820		return invalidParams
4821	}
4822	return nil
4823}
4824
4825// SetSharedDirectoryId sets the SharedDirectoryId field's value.
4826func (s *AcceptSharedDirectoryInput) SetSharedDirectoryId(v string) *AcceptSharedDirectoryInput {
4827	s.SharedDirectoryId = &v
4828	return s
4829}
4830
4831type AcceptSharedDirectoryOutput struct {
4832	_ struct{} `type:"structure"`
4833
4834	// The shared directory in the directory consumer account.
4835	SharedDirectory *SharedDirectory `type:"structure"`
4836}
4837
4838// String returns the string representation
4839func (s AcceptSharedDirectoryOutput) String() string {
4840	return awsutil.Prettify(s)
4841}
4842
4843// GoString returns the string representation
4844func (s AcceptSharedDirectoryOutput) GoString() string {
4845	return s.String()
4846}
4847
4848// SetSharedDirectory sets the SharedDirectory field's value.
4849func (s *AcceptSharedDirectoryOutput) SetSharedDirectory(v *SharedDirectory) *AcceptSharedDirectoryOutput {
4850	s.SharedDirectory = v
4851	return s
4852}
4853
4854type AddIpRoutesInput struct {
4855	_ struct{} `type:"structure"`
4856
4857	// Identifier (ID) of the directory to which to add the address block.
4858	//
4859	// DirectoryId is a required field
4860	DirectoryId *string `type:"string" required:"true"`
4861
4862	// IP address blocks, using CIDR format, of the traffic to route. This is often
4863	// the IP address block of the DNS server used for your on-premises domain.
4864	//
4865	// IpRoutes is a required field
4866	IpRoutes []*IpRoute `type:"list" required:"true"`
4867
4868	// If set to true, updates the inbound and outbound rules of the security group
4869	// that has the description: "AWS created security group for directory ID directory
4870	// controllers." Following are the new rules:
4871	//
4872	// Inbound:
4873	//
4874	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 88, Source: 0.0.0.0/0
4875	//
4876	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 123, Source: 0.0.0.0/0
4877	//
4878	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 138, Source: 0.0.0.0/0
4879	//
4880	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 389, Source: 0.0.0.0/0
4881	//
4882	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 464, Source: 0.0.0.0/0
4883	//
4884	//    * Type: Custom UDP Rule, Protocol: UDP, Range: 445, Source: 0.0.0.0/0
4885	//
4886	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 88, Source: 0.0.0.0/0
4887	//
4888	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 135, Source: 0.0.0.0/0
4889	//
4890	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 445, Source: 0.0.0.0/0
4891	//
4892	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 464, Source: 0.0.0.0/0
4893	//
4894	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 636, Source: 0.0.0.0/0
4895	//
4896	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 1024-65535, Source: 0.0.0.0/0
4897	//
4898	//    * Type: Custom TCP Rule, Protocol: TCP, Range: 3268-33269, Source: 0.0.0.0/0
4899	//
4900	//    * Type: DNS (UDP), Protocol: UDP, Range: 53, Source: 0.0.0.0/0
4901	//
4902	//    * Type: DNS (TCP), Protocol: TCP, Range: 53, Source: 0.0.0.0/0
4903	//
4904	//    * Type: LDAP, Protocol: TCP, Range: 389, Source: 0.0.0.0/0
4905	//
4906	//    * Type: All ICMP, Protocol: All, Range: N/A, Source: 0.0.0.0/0
4907	//
4908	// Outbound:
4909	//
4910	//    * Type: All traffic, Protocol: All, Range: All, Destination: 0.0.0.0/0
4911	//
4912	// These security rules impact an internal network interface that is not exposed
4913	// publicly.
4914	UpdateSecurityGroupForDirectoryControllers *bool `type:"boolean"`
4915}
4916
4917// String returns the string representation
4918func (s AddIpRoutesInput) String() string {
4919	return awsutil.Prettify(s)
4920}
4921
4922// GoString returns the string representation
4923func (s AddIpRoutesInput) GoString() string {
4924	return s.String()
4925}
4926
4927// Validate inspects the fields of the type to determine if they are valid.
4928func (s *AddIpRoutesInput) Validate() error {
4929	invalidParams := request.ErrInvalidParams{Context: "AddIpRoutesInput"}
4930	if s.DirectoryId == nil {
4931		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
4932	}
4933	if s.IpRoutes == nil {
4934		invalidParams.Add(request.NewErrParamRequired("IpRoutes"))
4935	}
4936
4937	if invalidParams.Len() > 0 {
4938		return invalidParams
4939	}
4940	return nil
4941}
4942
4943// SetDirectoryId sets the DirectoryId field's value.
4944func (s *AddIpRoutesInput) SetDirectoryId(v string) *AddIpRoutesInput {
4945	s.DirectoryId = &v
4946	return s
4947}
4948
4949// SetIpRoutes sets the IpRoutes field's value.
4950func (s *AddIpRoutesInput) SetIpRoutes(v []*IpRoute) *AddIpRoutesInput {
4951	s.IpRoutes = v
4952	return s
4953}
4954
4955// SetUpdateSecurityGroupForDirectoryControllers sets the UpdateSecurityGroupForDirectoryControllers field's value.
4956func (s *AddIpRoutesInput) SetUpdateSecurityGroupForDirectoryControllers(v bool) *AddIpRoutesInput {
4957	s.UpdateSecurityGroupForDirectoryControllers = &v
4958	return s
4959}
4960
4961type AddIpRoutesOutput struct {
4962	_ struct{} `type:"structure"`
4963}
4964
4965// String returns the string representation
4966func (s AddIpRoutesOutput) String() string {
4967	return awsutil.Prettify(s)
4968}
4969
4970// GoString returns the string representation
4971func (s AddIpRoutesOutput) GoString() string {
4972	return s.String()
4973}
4974
4975type AddTagsToResourceInput struct {
4976	_ struct{} `type:"structure"`
4977
4978	// Identifier (ID) for the directory to which to add the tag.
4979	//
4980	// ResourceId is a required field
4981	ResourceId *string `type:"string" required:"true"`
4982
4983	// The tags to be assigned to the directory.
4984	//
4985	// Tags is a required field
4986	Tags []*Tag `type:"list" required:"true"`
4987}
4988
4989// String returns the string representation
4990func (s AddTagsToResourceInput) String() string {
4991	return awsutil.Prettify(s)
4992}
4993
4994// GoString returns the string representation
4995func (s AddTagsToResourceInput) GoString() string {
4996	return s.String()
4997}
4998
4999// Validate inspects the fields of the type to determine if they are valid.
5000func (s *AddTagsToResourceInput) Validate() error {
5001	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
5002	if s.ResourceId == nil {
5003		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5004	}
5005	if s.Tags == nil {
5006		invalidParams.Add(request.NewErrParamRequired("Tags"))
5007	}
5008	if s.Tags != nil {
5009		for i, v := range s.Tags {
5010			if v == nil {
5011				continue
5012			}
5013			if err := v.Validate(); err != nil {
5014				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5015			}
5016		}
5017	}
5018
5019	if invalidParams.Len() > 0 {
5020		return invalidParams
5021	}
5022	return nil
5023}
5024
5025// SetResourceId sets the ResourceId field's value.
5026func (s *AddTagsToResourceInput) SetResourceId(v string) *AddTagsToResourceInput {
5027	s.ResourceId = &v
5028	return s
5029}
5030
5031// SetTags sets the Tags field's value.
5032func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
5033	s.Tags = v
5034	return s
5035}
5036
5037type AddTagsToResourceOutput struct {
5038	_ struct{} `type:"structure"`
5039}
5040
5041// String returns the string representation
5042func (s AddTagsToResourceOutput) String() string {
5043	return awsutil.Prettify(s)
5044}
5045
5046// GoString returns the string representation
5047func (s AddTagsToResourceOutput) GoString() string {
5048	return s.String()
5049}
5050
5051// Represents a named directory attribute.
5052type Attribute struct {
5053	_ struct{} `type:"structure"`
5054
5055	// The name of the attribute.
5056	Name *string `min:"1" type:"string"`
5057
5058	// The value of the attribute.
5059	Value *string `type:"string"`
5060}
5061
5062// String returns the string representation
5063func (s Attribute) String() string {
5064	return awsutil.Prettify(s)
5065}
5066
5067// GoString returns the string representation
5068func (s Attribute) GoString() string {
5069	return s.String()
5070}
5071
5072// Validate inspects the fields of the type to determine if they are valid.
5073func (s *Attribute) Validate() error {
5074	invalidParams := request.ErrInvalidParams{Context: "Attribute"}
5075	if s.Name != nil && len(*s.Name) < 1 {
5076		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5077	}
5078
5079	if invalidParams.Len() > 0 {
5080		return invalidParams
5081	}
5082	return nil
5083}
5084
5085// SetName sets the Name field's value.
5086func (s *Attribute) SetName(v string) *Attribute {
5087	s.Name = &v
5088	return s
5089}
5090
5091// SetValue sets the Value field's value.
5092func (s *Attribute) SetValue(v string) *Attribute {
5093	s.Value = &v
5094	return s
5095}
5096
5097type CancelSchemaExtensionInput struct {
5098	_ struct{} `type:"structure"`
5099
5100	// The identifier of the directory whose schema extension will be canceled.
5101	//
5102	// DirectoryId is a required field
5103	DirectoryId *string `type:"string" required:"true"`
5104
5105	// The identifier of the schema extension that will be canceled.
5106	//
5107	// SchemaExtensionId is a required field
5108	SchemaExtensionId *string `type:"string" required:"true"`
5109}
5110
5111// String returns the string representation
5112func (s CancelSchemaExtensionInput) String() string {
5113	return awsutil.Prettify(s)
5114}
5115
5116// GoString returns the string representation
5117func (s CancelSchemaExtensionInput) GoString() string {
5118	return s.String()
5119}
5120
5121// Validate inspects the fields of the type to determine if they are valid.
5122func (s *CancelSchemaExtensionInput) Validate() error {
5123	invalidParams := request.ErrInvalidParams{Context: "CancelSchemaExtensionInput"}
5124	if s.DirectoryId == nil {
5125		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5126	}
5127	if s.SchemaExtensionId == nil {
5128		invalidParams.Add(request.NewErrParamRequired("SchemaExtensionId"))
5129	}
5130
5131	if invalidParams.Len() > 0 {
5132		return invalidParams
5133	}
5134	return nil
5135}
5136
5137// SetDirectoryId sets the DirectoryId field's value.
5138func (s *CancelSchemaExtensionInput) SetDirectoryId(v string) *CancelSchemaExtensionInput {
5139	s.DirectoryId = &v
5140	return s
5141}
5142
5143// SetSchemaExtensionId sets the SchemaExtensionId field's value.
5144func (s *CancelSchemaExtensionInput) SetSchemaExtensionId(v string) *CancelSchemaExtensionInput {
5145	s.SchemaExtensionId = &v
5146	return s
5147}
5148
5149type CancelSchemaExtensionOutput struct {
5150	_ struct{} `type:"structure"`
5151}
5152
5153// String returns the string representation
5154func (s CancelSchemaExtensionOutput) String() string {
5155	return awsutil.Prettify(s)
5156}
5157
5158// GoString returns the string representation
5159func (s CancelSchemaExtensionOutput) GoString() string {
5160	return s.String()
5161}
5162
5163// Contains information about a computer account in a directory.
5164type Computer struct {
5165	_ struct{} `type:"structure"`
5166
5167	// An array of Attribute objects containing the LDAP attributes that belong
5168	// to the computer account.
5169	ComputerAttributes []*Attribute `type:"list"`
5170
5171	// The identifier of the computer.
5172	ComputerId *string `min:"1" type:"string"`
5173
5174	// The computer name.
5175	ComputerName *string `min:"1" type:"string"`
5176}
5177
5178// String returns the string representation
5179func (s Computer) String() string {
5180	return awsutil.Prettify(s)
5181}
5182
5183// GoString returns the string representation
5184func (s Computer) GoString() string {
5185	return s.String()
5186}
5187
5188// SetComputerAttributes sets the ComputerAttributes field's value.
5189func (s *Computer) SetComputerAttributes(v []*Attribute) *Computer {
5190	s.ComputerAttributes = v
5191	return s
5192}
5193
5194// SetComputerId sets the ComputerId field's value.
5195func (s *Computer) SetComputerId(v string) *Computer {
5196	s.ComputerId = &v
5197	return s
5198}
5199
5200// SetComputerName sets the ComputerName field's value.
5201func (s *Computer) SetComputerName(v string) *Computer {
5202	s.ComputerName = &v
5203	return s
5204}
5205
5206// Points to a remote domain with which you are setting up a trust relationship.
5207// Conditional forwarders are required in order to set up a trust relationship
5208// with another domain.
5209type ConditionalForwarder struct {
5210	_ struct{} `type:"structure"`
5211
5212	// The IP addresses of the remote DNS server associated with RemoteDomainName.
5213	// This is the IP address of the DNS server that your conditional forwarder
5214	// points to.
5215	DnsIpAddrs []*string `type:"list"`
5216
5217	// The fully qualified domain name (FQDN) of the remote domains pointed to by
5218	// the conditional forwarder.
5219	RemoteDomainName *string `type:"string"`
5220
5221	// The replication scope of the conditional forwarder. The only allowed value
5222	// is Domain, which will replicate the conditional forwarder to all of the domain
5223	// controllers for your AWS directory.
5224	ReplicationScope *string `type:"string" enum:"ReplicationScope"`
5225}
5226
5227// String returns the string representation
5228func (s ConditionalForwarder) String() string {
5229	return awsutil.Prettify(s)
5230}
5231
5232// GoString returns the string representation
5233func (s ConditionalForwarder) GoString() string {
5234	return s.String()
5235}
5236
5237// SetDnsIpAddrs sets the DnsIpAddrs field's value.
5238func (s *ConditionalForwarder) SetDnsIpAddrs(v []*string) *ConditionalForwarder {
5239	s.DnsIpAddrs = v
5240	return s
5241}
5242
5243// SetRemoteDomainName sets the RemoteDomainName field's value.
5244func (s *ConditionalForwarder) SetRemoteDomainName(v string) *ConditionalForwarder {
5245	s.RemoteDomainName = &v
5246	return s
5247}
5248
5249// SetReplicationScope sets the ReplicationScope field's value.
5250func (s *ConditionalForwarder) SetReplicationScope(v string) *ConditionalForwarder {
5251	s.ReplicationScope = &v
5252	return s
5253}
5254
5255// Contains the inputs for the ConnectDirectory operation.
5256type ConnectDirectoryInput struct {
5257	_ struct{} `type:"structure"`
5258
5259	// A DirectoryConnectSettings object that contains additional information for
5260	// the operation.
5261	//
5262	// ConnectSettings is a required field
5263	ConnectSettings *DirectoryConnectSettings `type:"structure" required:"true"`
5264
5265	// A textual description for the directory.
5266	Description *string `type:"string"`
5267
5268	// The fully qualified name of the on-premises directory, such as corp.example.com.
5269	//
5270	// Name is a required field
5271	Name *string `type:"string" required:"true"`
5272
5273	// The password for the on-premises user account.
5274	//
5275	// Password is a required field
5276	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
5277
5278	// The NetBIOS name of the on-premises directory, such as CORP.
5279	ShortName *string `type:"string"`
5280
5281	// The size of the directory.
5282	//
5283	// Size is a required field
5284	Size *string `type:"string" required:"true" enum:"DirectorySize"`
5285
5286	// The tags to be assigned to AD Connector.
5287	Tags []*Tag `type:"list"`
5288}
5289
5290// String returns the string representation
5291func (s ConnectDirectoryInput) String() string {
5292	return awsutil.Prettify(s)
5293}
5294
5295// GoString returns the string representation
5296func (s ConnectDirectoryInput) GoString() string {
5297	return s.String()
5298}
5299
5300// Validate inspects the fields of the type to determine if they are valid.
5301func (s *ConnectDirectoryInput) Validate() error {
5302	invalidParams := request.ErrInvalidParams{Context: "ConnectDirectoryInput"}
5303	if s.ConnectSettings == nil {
5304		invalidParams.Add(request.NewErrParamRequired("ConnectSettings"))
5305	}
5306	if s.Name == nil {
5307		invalidParams.Add(request.NewErrParamRequired("Name"))
5308	}
5309	if s.Password == nil {
5310		invalidParams.Add(request.NewErrParamRequired("Password"))
5311	}
5312	if s.Password != nil && len(*s.Password) < 1 {
5313		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
5314	}
5315	if s.Size == nil {
5316		invalidParams.Add(request.NewErrParamRequired("Size"))
5317	}
5318	if s.ConnectSettings != nil {
5319		if err := s.ConnectSettings.Validate(); err != nil {
5320			invalidParams.AddNested("ConnectSettings", err.(request.ErrInvalidParams))
5321		}
5322	}
5323	if s.Tags != nil {
5324		for i, v := range s.Tags {
5325			if v == nil {
5326				continue
5327			}
5328			if err := v.Validate(); err != nil {
5329				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5330			}
5331		}
5332	}
5333
5334	if invalidParams.Len() > 0 {
5335		return invalidParams
5336	}
5337	return nil
5338}
5339
5340// SetConnectSettings sets the ConnectSettings field's value.
5341func (s *ConnectDirectoryInput) SetConnectSettings(v *DirectoryConnectSettings) *ConnectDirectoryInput {
5342	s.ConnectSettings = v
5343	return s
5344}
5345
5346// SetDescription sets the Description field's value.
5347func (s *ConnectDirectoryInput) SetDescription(v string) *ConnectDirectoryInput {
5348	s.Description = &v
5349	return s
5350}
5351
5352// SetName sets the Name field's value.
5353func (s *ConnectDirectoryInput) SetName(v string) *ConnectDirectoryInput {
5354	s.Name = &v
5355	return s
5356}
5357
5358// SetPassword sets the Password field's value.
5359func (s *ConnectDirectoryInput) SetPassword(v string) *ConnectDirectoryInput {
5360	s.Password = &v
5361	return s
5362}
5363
5364// SetShortName sets the ShortName field's value.
5365func (s *ConnectDirectoryInput) SetShortName(v string) *ConnectDirectoryInput {
5366	s.ShortName = &v
5367	return s
5368}
5369
5370// SetSize sets the Size field's value.
5371func (s *ConnectDirectoryInput) SetSize(v string) *ConnectDirectoryInput {
5372	s.Size = &v
5373	return s
5374}
5375
5376// SetTags sets the Tags field's value.
5377func (s *ConnectDirectoryInput) SetTags(v []*Tag) *ConnectDirectoryInput {
5378	s.Tags = v
5379	return s
5380}
5381
5382// Contains the results of the ConnectDirectory operation.
5383type ConnectDirectoryOutput struct {
5384	_ struct{} `type:"structure"`
5385
5386	// The identifier of the new directory.
5387	DirectoryId *string `type:"string"`
5388}
5389
5390// String returns the string representation
5391func (s ConnectDirectoryOutput) String() string {
5392	return awsutil.Prettify(s)
5393}
5394
5395// GoString returns the string representation
5396func (s ConnectDirectoryOutput) GoString() string {
5397	return s.String()
5398}
5399
5400// SetDirectoryId sets the DirectoryId field's value.
5401func (s *ConnectDirectoryOutput) SetDirectoryId(v string) *ConnectDirectoryOutput {
5402	s.DirectoryId = &v
5403	return s
5404}
5405
5406// Contains the inputs for the CreateAlias operation.
5407type CreateAliasInput struct {
5408	_ struct{} `type:"structure"`
5409
5410	// The requested alias.
5411	//
5412	// The alias must be unique amongst all aliases in AWS. This operation throws
5413	// an EntityAlreadyExistsException error if the alias already exists.
5414	//
5415	// Alias is a required field
5416	Alias *string `min:"1" type:"string" required:"true"`
5417
5418	// The identifier of the directory for which to create the alias.
5419	//
5420	// DirectoryId is a required field
5421	DirectoryId *string `type:"string" required:"true"`
5422}
5423
5424// String returns the string representation
5425func (s CreateAliasInput) String() string {
5426	return awsutil.Prettify(s)
5427}
5428
5429// GoString returns the string representation
5430func (s CreateAliasInput) GoString() string {
5431	return s.String()
5432}
5433
5434// Validate inspects the fields of the type to determine if they are valid.
5435func (s *CreateAliasInput) Validate() error {
5436	invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"}
5437	if s.Alias == nil {
5438		invalidParams.Add(request.NewErrParamRequired("Alias"))
5439	}
5440	if s.Alias != nil && len(*s.Alias) < 1 {
5441		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
5442	}
5443	if s.DirectoryId == nil {
5444		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5445	}
5446
5447	if invalidParams.Len() > 0 {
5448		return invalidParams
5449	}
5450	return nil
5451}
5452
5453// SetAlias sets the Alias field's value.
5454func (s *CreateAliasInput) SetAlias(v string) *CreateAliasInput {
5455	s.Alias = &v
5456	return s
5457}
5458
5459// SetDirectoryId sets the DirectoryId field's value.
5460func (s *CreateAliasInput) SetDirectoryId(v string) *CreateAliasInput {
5461	s.DirectoryId = &v
5462	return s
5463}
5464
5465// Contains the results of the CreateAlias operation.
5466type CreateAliasOutput struct {
5467	_ struct{} `type:"structure"`
5468
5469	// The alias for the directory.
5470	Alias *string `min:"1" type:"string"`
5471
5472	// The identifier of the directory.
5473	DirectoryId *string `type:"string"`
5474}
5475
5476// String returns the string representation
5477func (s CreateAliasOutput) String() string {
5478	return awsutil.Prettify(s)
5479}
5480
5481// GoString returns the string representation
5482func (s CreateAliasOutput) GoString() string {
5483	return s.String()
5484}
5485
5486// SetAlias sets the Alias field's value.
5487func (s *CreateAliasOutput) SetAlias(v string) *CreateAliasOutput {
5488	s.Alias = &v
5489	return s
5490}
5491
5492// SetDirectoryId sets the DirectoryId field's value.
5493func (s *CreateAliasOutput) SetDirectoryId(v string) *CreateAliasOutput {
5494	s.DirectoryId = &v
5495	return s
5496}
5497
5498// Contains the inputs for the CreateComputer operation.
5499type CreateComputerInput struct {
5500	_ struct{} `type:"structure"`
5501
5502	// An array of Attribute objects that contain any LDAP attributes to apply to
5503	// the computer account.
5504	ComputerAttributes []*Attribute `type:"list"`
5505
5506	// The name of the computer account.
5507	//
5508	// ComputerName is a required field
5509	ComputerName *string `min:"1" type:"string" required:"true"`
5510
5511	// The identifier of the directory in which to create the computer account.
5512	//
5513	// DirectoryId is a required field
5514	DirectoryId *string `type:"string" required:"true"`
5515
5516	// The fully-qualified distinguished name of the organizational unit to place
5517	// the computer account in.
5518	OrganizationalUnitDistinguishedName *string `min:"1" type:"string"`
5519
5520	// A one-time password that is used to join the computer to the directory. You
5521	// should generate a random, strong password to use for this parameter.
5522	//
5523	// Password is a required field
5524	Password *string `min:"8" type:"string" required:"true" sensitive:"true"`
5525}
5526
5527// String returns the string representation
5528func (s CreateComputerInput) String() string {
5529	return awsutil.Prettify(s)
5530}
5531
5532// GoString returns the string representation
5533func (s CreateComputerInput) GoString() string {
5534	return s.String()
5535}
5536
5537// Validate inspects the fields of the type to determine if they are valid.
5538func (s *CreateComputerInput) Validate() error {
5539	invalidParams := request.ErrInvalidParams{Context: "CreateComputerInput"}
5540	if s.ComputerName == nil {
5541		invalidParams.Add(request.NewErrParamRequired("ComputerName"))
5542	}
5543	if s.ComputerName != nil && len(*s.ComputerName) < 1 {
5544		invalidParams.Add(request.NewErrParamMinLen("ComputerName", 1))
5545	}
5546	if s.DirectoryId == nil {
5547		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5548	}
5549	if s.OrganizationalUnitDistinguishedName != nil && len(*s.OrganizationalUnitDistinguishedName) < 1 {
5550		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnitDistinguishedName", 1))
5551	}
5552	if s.Password == nil {
5553		invalidParams.Add(request.NewErrParamRequired("Password"))
5554	}
5555	if s.Password != nil && len(*s.Password) < 8 {
5556		invalidParams.Add(request.NewErrParamMinLen("Password", 8))
5557	}
5558	if s.ComputerAttributes != nil {
5559		for i, v := range s.ComputerAttributes {
5560			if v == nil {
5561				continue
5562			}
5563			if err := v.Validate(); err != nil {
5564				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ComputerAttributes", i), err.(request.ErrInvalidParams))
5565			}
5566		}
5567	}
5568
5569	if invalidParams.Len() > 0 {
5570		return invalidParams
5571	}
5572	return nil
5573}
5574
5575// SetComputerAttributes sets the ComputerAttributes field's value.
5576func (s *CreateComputerInput) SetComputerAttributes(v []*Attribute) *CreateComputerInput {
5577	s.ComputerAttributes = v
5578	return s
5579}
5580
5581// SetComputerName sets the ComputerName field's value.
5582func (s *CreateComputerInput) SetComputerName(v string) *CreateComputerInput {
5583	s.ComputerName = &v
5584	return s
5585}
5586
5587// SetDirectoryId sets the DirectoryId field's value.
5588func (s *CreateComputerInput) SetDirectoryId(v string) *CreateComputerInput {
5589	s.DirectoryId = &v
5590	return s
5591}
5592
5593// SetOrganizationalUnitDistinguishedName sets the OrganizationalUnitDistinguishedName field's value.
5594func (s *CreateComputerInput) SetOrganizationalUnitDistinguishedName(v string) *CreateComputerInput {
5595	s.OrganizationalUnitDistinguishedName = &v
5596	return s
5597}
5598
5599// SetPassword sets the Password field's value.
5600func (s *CreateComputerInput) SetPassword(v string) *CreateComputerInput {
5601	s.Password = &v
5602	return s
5603}
5604
5605// Contains the results for the CreateComputer operation.
5606type CreateComputerOutput struct {
5607	_ struct{} `type:"structure"`
5608
5609	// A Computer object that represents the computer account.
5610	Computer *Computer `type:"structure"`
5611}
5612
5613// String returns the string representation
5614func (s CreateComputerOutput) String() string {
5615	return awsutil.Prettify(s)
5616}
5617
5618// GoString returns the string representation
5619func (s CreateComputerOutput) GoString() string {
5620	return s.String()
5621}
5622
5623// SetComputer sets the Computer field's value.
5624func (s *CreateComputerOutput) SetComputer(v *Computer) *CreateComputerOutput {
5625	s.Computer = v
5626	return s
5627}
5628
5629// Initiates the creation of a conditional forwarder for your AWS Directory
5630// Service for Microsoft Active Directory. Conditional forwarders are required
5631// in order to set up a trust relationship with another domain.
5632type CreateConditionalForwarderInput struct {
5633	_ struct{} `type:"structure"`
5634
5635	// The directory ID of the AWS directory for which you are creating the conditional
5636	// forwarder.
5637	//
5638	// DirectoryId is a required field
5639	DirectoryId *string `type:"string" required:"true"`
5640
5641	// The IP addresses of the remote DNS server associated with RemoteDomainName.
5642	//
5643	// DnsIpAddrs is a required field
5644	DnsIpAddrs []*string `type:"list" required:"true"`
5645
5646	// The fully qualified domain name (FQDN) of the remote domain with which you
5647	// will set up a trust relationship.
5648	//
5649	// RemoteDomainName is a required field
5650	RemoteDomainName *string `type:"string" required:"true"`
5651}
5652
5653// String returns the string representation
5654func (s CreateConditionalForwarderInput) String() string {
5655	return awsutil.Prettify(s)
5656}
5657
5658// GoString returns the string representation
5659func (s CreateConditionalForwarderInput) GoString() string {
5660	return s.String()
5661}
5662
5663// Validate inspects the fields of the type to determine if they are valid.
5664func (s *CreateConditionalForwarderInput) Validate() error {
5665	invalidParams := request.ErrInvalidParams{Context: "CreateConditionalForwarderInput"}
5666	if s.DirectoryId == nil {
5667		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5668	}
5669	if s.DnsIpAddrs == nil {
5670		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
5671	}
5672	if s.RemoteDomainName == nil {
5673		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
5674	}
5675
5676	if invalidParams.Len() > 0 {
5677		return invalidParams
5678	}
5679	return nil
5680}
5681
5682// SetDirectoryId sets the DirectoryId field's value.
5683func (s *CreateConditionalForwarderInput) SetDirectoryId(v string) *CreateConditionalForwarderInput {
5684	s.DirectoryId = &v
5685	return s
5686}
5687
5688// SetDnsIpAddrs sets the DnsIpAddrs field's value.
5689func (s *CreateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *CreateConditionalForwarderInput {
5690	s.DnsIpAddrs = v
5691	return s
5692}
5693
5694// SetRemoteDomainName sets the RemoteDomainName field's value.
5695func (s *CreateConditionalForwarderInput) SetRemoteDomainName(v string) *CreateConditionalForwarderInput {
5696	s.RemoteDomainName = &v
5697	return s
5698}
5699
5700// The result of a CreateConditinalForwarder request.
5701type CreateConditionalForwarderOutput struct {
5702	_ struct{} `type:"structure"`
5703}
5704
5705// String returns the string representation
5706func (s CreateConditionalForwarderOutput) String() string {
5707	return awsutil.Prettify(s)
5708}
5709
5710// GoString returns the string representation
5711func (s CreateConditionalForwarderOutput) GoString() string {
5712	return s.String()
5713}
5714
5715// Contains the inputs for the CreateDirectory operation.
5716type CreateDirectoryInput struct {
5717	_ struct{} `type:"structure"`
5718
5719	// A textual description for the directory.
5720	Description *string `type:"string"`
5721
5722	// The fully qualified name for the directory, such as corp.example.com.
5723	//
5724	// Name is a required field
5725	Name *string `type:"string" required:"true"`
5726
5727	// The password for the directory administrator. The directory creation process
5728	// creates a directory administrator account with the user name Administrator
5729	// and this password.
5730	//
5731	// Password is a required field
5732	Password *string `type:"string" required:"true" sensitive:"true"`
5733
5734	// The short name of the directory, such as CORP.
5735	ShortName *string `type:"string"`
5736
5737	// The size of the directory.
5738	//
5739	// Size is a required field
5740	Size *string `type:"string" required:"true" enum:"DirectorySize"`
5741
5742	// The tags to be assigned to the Simple AD directory.
5743	Tags []*Tag `type:"list"`
5744
5745	// A DirectoryVpcSettings object that contains additional information for the
5746	// operation.
5747	VpcSettings *DirectoryVpcSettings `type:"structure"`
5748}
5749
5750// String returns the string representation
5751func (s CreateDirectoryInput) String() string {
5752	return awsutil.Prettify(s)
5753}
5754
5755// GoString returns the string representation
5756func (s CreateDirectoryInput) GoString() string {
5757	return s.String()
5758}
5759
5760// Validate inspects the fields of the type to determine if they are valid.
5761func (s *CreateDirectoryInput) Validate() error {
5762	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryInput"}
5763	if s.Name == nil {
5764		invalidParams.Add(request.NewErrParamRequired("Name"))
5765	}
5766	if s.Password == nil {
5767		invalidParams.Add(request.NewErrParamRequired("Password"))
5768	}
5769	if s.Size == nil {
5770		invalidParams.Add(request.NewErrParamRequired("Size"))
5771	}
5772	if s.Tags != nil {
5773		for i, v := range s.Tags {
5774			if v == nil {
5775				continue
5776			}
5777			if err := v.Validate(); err != nil {
5778				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5779			}
5780		}
5781	}
5782	if s.VpcSettings != nil {
5783		if err := s.VpcSettings.Validate(); err != nil {
5784			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
5785		}
5786	}
5787
5788	if invalidParams.Len() > 0 {
5789		return invalidParams
5790	}
5791	return nil
5792}
5793
5794// SetDescription sets the Description field's value.
5795func (s *CreateDirectoryInput) SetDescription(v string) *CreateDirectoryInput {
5796	s.Description = &v
5797	return s
5798}
5799
5800// SetName sets the Name field's value.
5801func (s *CreateDirectoryInput) SetName(v string) *CreateDirectoryInput {
5802	s.Name = &v
5803	return s
5804}
5805
5806// SetPassword sets the Password field's value.
5807func (s *CreateDirectoryInput) SetPassword(v string) *CreateDirectoryInput {
5808	s.Password = &v
5809	return s
5810}
5811
5812// SetShortName sets the ShortName field's value.
5813func (s *CreateDirectoryInput) SetShortName(v string) *CreateDirectoryInput {
5814	s.ShortName = &v
5815	return s
5816}
5817
5818// SetSize sets the Size field's value.
5819func (s *CreateDirectoryInput) SetSize(v string) *CreateDirectoryInput {
5820	s.Size = &v
5821	return s
5822}
5823
5824// SetTags sets the Tags field's value.
5825func (s *CreateDirectoryInput) SetTags(v []*Tag) *CreateDirectoryInput {
5826	s.Tags = v
5827	return s
5828}
5829
5830// SetVpcSettings sets the VpcSettings field's value.
5831func (s *CreateDirectoryInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateDirectoryInput {
5832	s.VpcSettings = v
5833	return s
5834}
5835
5836// Contains the results of the CreateDirectory operation.
5837type CreateDirectoryOutput struct {
5838	_ struct{} `type:"structure"`
5839
5840	// The identifier of the directory that was created.
5841	DirectoryId *string `type:"string"`
5842}
5843
5844// String returns the string representation
5845func (s CreateDirectoryOutput) String() string {
5846	return awsutil.Prettify(s)
5847}
5848
5849// GoString returns the string representation
5850func (s CreateDirectoryOutput) GoString() string {
5851	return s.String()
5852}
5853
5854// SetDirectoryId sets the DirectoryId field's value.
5855func (s *CreateDirectoryOutput) SetDirectoryId(v string) *CreateDirectoryOutput {
5856	s.DirectoryId = &v
5857	return s
5858}
5859
5860type CreateLogSubscriptionInput struct {
5861	_ struct{} `type:"structure"`
5862
5863	// Identifier (ID) of the directory to which you want to subscribe and receive
5864	// real-time logs to your specified CloudWatch log group.
5865	//
5866	// DirectoryId is a required field
5867	DirectoryId *string `type:"string" required:"true"`
5868
5869	// The name of the CloudWatch log group where the real-time domain controller
5870	// logs are forwarded.
5871	//
5872	// LogGroupName is a required field
5873	LogGroupName *string `min:"1" type:"string" required:"true"`
5874}
5875
5876// String returns the string representation
5877func (s CreateLogSubscriptionInput) String() string {
5878	return awsutil.Prettify(s)
5879}
5880
5881// GoString returns the string representation
5882func (s CreateLogSubscriptionInput) GoString() string {
5883	return s.String()
5884}
5885
5886// Validate inspects the fields of the type to determine if they are valid.
5887func (s *CreateLogSubscriptionInput) Validate() error {
5888	invalidParams := request.ErrInvalidParams{Context: "CreateLogSubscriptionInput"}
5889	if s.DirectoryId == nil {
5890		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5891	}
5892	if s.LogGroupName == nil {
5893		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
5894	}
5895	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
5896		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
5897	}
5898
5899	if invalidParams.Len() > 0 {
5900		return invalidParams
5901	}
5902	return nil
5903}
5904
5905// SetDirectoryId sets the DirectoryId field's value.
5906func (s *CreateLogSubscriptionInput) SetDirectoryId(v string) *CreateLogSubscriptionInput {
5907	s.DirectoryId = &v
5908	return s
5909}
5910
5911// SetLogGroupName sets the LogGroupName field's value.
5912func (s *CreateLogSubscriptionInput) SetLogGroupName(v string) *CreateLogSubscriptionInput {
5913	s.LogGroupName = &v
5914	return s
5915}
5916
5917type CreateLogSubscriptionOutput struct {
5918	_ struct{} `type:"structure"`
5919}
5920
5921// String returns the string representation
5922func (s CreateLogSubscriptionOutput) String() string {
5923	return awsutil.Prettify(s)
5924}
5925
5926// GoString returns the string representation
5927func (s CreateLogSubscriptionOutput) GoString() string {
5928	return s.String()
5929}
5930
5931// Creates an AWS Managed Microsoft AD directory.
5932type CreateMicrosoftADInput struct {
5933	_ struct{} `type:"structure"`
5934
5935	// A textual description for the directory. This label will appear on the AWS
5936	// console Directory Details page after the directory is created.
5937	Description *string `type:"string"`
5938
5939	// AWS Managed Microsoft AD is available in two editions: Standard and Enterprise.
5940	// Enterprise is the default.
5941	Edition *string `type:"string" enum:"DirectoryEdition"`
5942
5943	// The fully qualified domain name for the directory, such as corp.example.com.
5944	// This name will resolve inside your VPC only. It does not need to be publicly
5945	// resolvable.
5946	//
5947	// Name is a required field
5948	Name *string `type:"string" required:"true"`
5949
5950	// The password for the default administrative user named Admin.
5951	//
5952	// Password is a required field
5953	Password *string `type:"string" required:"true" sensitive:"true"`
5954
5955	// The NetBIOS name for your domain. A short identifier for your domain, such
5956	// as CORP. If you don't specify a NetBIOS name, it will default to the first
5957	// part of your directory DNS. For example, CORP for the directory DNS corp.example.com.
5958	ShortName *string `type:"string"`
5959
5960	// The tags to be assigned to the AWS Managed Microsoft AD directory.
5961	Tags []*Tag `type:"list"`
5962
5963	// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
5964	//
5965	// VpcSettings is a required field
5966	VpcSettings *DirectoryVpcSettings `type:"structure" required:"true"`
5967}
5968
5969// String returns the string representation
5970func (s CreateMicrosoftADInput) String() string {
5971	return awsutil.Prettify(s)
5972}
5973
5974// GoString returns the string representation
5975func (s CreateMicrosoftADInput) GoString() string {
5976	return s.String()
5977}
5978
5979// Validate inspects the fields of the type to determine if they are valid.
5980func (s *CreateMicrosoftADInput) Validate() error {
5981	invalidParams := request.ErrInvalidParams{Context: "CreateMicrosoftADInput"}
5982	if s.Name == nil {
5983		invalidParams.Add(request.NewErrParamRequired("Name"))
5984	}
5985	if s.Password == nil {
5986		invalidParams.Add(request.NewErrParamRequired("Password"))
5987	}
5988	if s.VpcSettings == nil {
5989		invalidParams.Add(request.NewErrParamRequired("VpcSettings"))
5990	}
5991	if s.Tags != nil {
5992		for i, v := range s.Tags {
5993			if v == nil {
5994				continue
5995			}
5996			if err := v.Validate(); err != nil {
5997				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5998			}
5999		}
6000	}
6001	if s.VpcSettings != nil {
6002		if err := s.VpcSettings.Validate(); err != nil {
6003			invalidParams.AddNested("VpcSettings", err.(request.ErrInvalidParams))
6004		}
6005	}
6006
6007	if invalidParams.Len() > 0 {
6008		return invalidParams
6009	}
6010	return nil
6011}
6012
6013// SetDescription sets the Description field's value.
6014func (s *CreateMicrosoftADInput) SetDescription(v string) *CreateMicrosoftADInput {
6015	s.Description = &v
6016	return s
6017}
6018
6019// SetEdition sets the Edition field's value.
6020func (s *CreateMicrosoftADInput) SetEdition(v string) *CreateMicrosoftADInput {
6021	s.Edition = &v
6022	return s
6023}
6024
6025// SetName sets the Name field's value.
6026func (s *CreateMicrosoftADInput) SetName(v string) *CreateMicrosoftADInput {
6027	s.Name = &v
6028	return s
6029}
6030
6031// SetPassword sets the Password field's value.
6032func (s *CreateMicrosoftADInput) SetPassword(v string) *CreateMicrosoftADInput {
6033	s.Password = &v
6034	return s
6035}
6036
6037// SetShortName sets the ShortName field's value.
6038func (s *CreateMicrosoftADInput) SetShortName(v string) *CreateMicrosoftADInput {
6039	s.ShortName = &v
6040	return s
6041}
6042
6043// SetTags sets the Tags field's value.
6044func (s *CreateMicrosoftADInput) SetTags(v []*Tag) *CreateMicrosoftADInput {
6045	s.Tags = v
6046	return s
6047}
6048
6049// SetVpcSettings sets the VpcSettings field's value.
6050func (s *CreateMicrosoftADInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateMicrosoftADInput {
6051	s.VpcSettings = v
6052	return s
6053}
6054
6055// Result of a CreateMicrosoftAD request.
6056type CreateMicrosoftADOutput struct {
6057	_ struct{} `type:"structure"`
6058
6059	// The identifier of the directory that was created.
6060	DirectoryId *string `type:"string"`
6061}
6062
6063// String returns the string representation
6064func (s CreateMicrosoftADOutput) String() string {
6065	return awsutil.Prettify(s)
6066}
6067
6068// GoString returns the string representation
6069func (s CreateMicrosoftADOutput) GoString() string {
6070	return s.String()
6071}
6072
6073// SetDirectoryId sets the DirectoryId field's value.
6074func (s *CreateMicrosoftADOutput) SetDirectoryId(v string) *CreateMicrosoftADOutput {
6075	s.DirectoryId = &v
6076	return s
6077}
6078
6079// Contains the inputs for the CreateSnapshot operation.
6080type CreateSnapshotInput struct {
6081	_ struct{} `type:"structure"`
6082
6083	// The identifier of the directory of which to take a snapshot.
6084	//
6085	// DirectoryId is a required field
6086	DirectoryId *string `type:"string" required:"true"`
6087
6088	// The descriptive name to apply to the snapshot.
6089	Name *string `type:"string"`
6090}
6091
6092// String returns the string representation
6093func (s CreateSnapshotInput) String() string {
6094	return awsutil.Prettify(s)
6095}
6096
6097// GoString returns the string representation
6098func (s CreateSnapshotInput) GoString() string {
6099	return s.String()
6100}
6101
6102// Validate inspects the fields of the type to determine if they are valid.
6103func (s *CreateSnapshotInput) Validate() error {
6104	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
6105	if s.DirectoryId == nil {
6106		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6107	}
6108
6109	if invalidParams.Len() > 0 {
6110		return invalidParams
6111	}
6112	return nil
6113}
6114
6115// SetDirectoryId sets the DirectoryId field's value.
6116func (s *CreateSnapshotInput) SetDirectoryId(v string) *CreateSnapshotInput {
6117	s.DirectoryId = &v
6118	return s
6119}
6120
6121// SetName sets the Name field's value.
6122func (s *CreateSnapshotInput) SetName(v string) *CreateSnapshotInput {
6123	s.Name = &v
6124	return s
6125}
6126
6127// Contains the results of the CreateSnapshot operation.
6128type CreateSnapshotOutput struct {
6129	_ struct{} `type:"structure"`
6130
6131	// The identifier of the snapshot that was created.
6132	SnapshotId *string `type:"string"`
6133}
6134
6135// String returns the string representation
6136func (s CreateSnapshotOutput) String() string {
6137	return awsutil.Prettify(s)
6138}
6139
6140// GoString returns the string representation
6141func (s CreateSnapshotOutput) GoString() string {
6142	return s.String()
6143}
6144
6145// SetSnapshotId sets the SnapshotId field's value.
6146func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
6147	s.SnapshotId = &v
6148	return s
6149}
6150
6151// AWS Directory Service for Microsoft Active Directory allows you to configure
6152// trust relationships. For example, you can establish a trust between your
6153// AWS Managed Microsoft AD directory, and your existing on-premises Microsoft
6154// Active Directory. This would allow you to provide users and groups access
6155// to resources in either domain, with a single set of credentials.
6156//
6157// This action initiates the creation of the AWS side of a trust relationship
6158// between an AWS Managed Microsoft AD directory and an external domain.
6159type CreateTrustInput struct {
6160	_ struct{} `type:"structure"`
6161
6162	// The IP addresses of the remote DNS server associated with RemoteDomainName.
6163	ConditionalForwarderIpAddrs []*string `type:"list"`
6164
6165	// The Directory ID of the AWS Managed Microsoft AD directory for which to establish
6166	// the trust relationship.
6167	//
6168	// DirectoryId is a required field
6169	DirectoryId *string `type:"string" required:"true"`
6170
6171	// The Fully Qualified Domain Name (FQDN) of the external domain for which to
6172	// create the trust relationship.
6173	//
6174	// RemoteDomainName is a required field
6175	RemoteDomainName *string `type:"string" required:"true"`
6176
6177	// Optional parameter to enable selective authentication for the trust.
6178	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
6179
6180	// The direction of the trust relationship.
6181	//
6182	// TrustDirection is a required field
6183	TrustDirection *string `type:"string" required:"true" enum:"TrustDirection"`
6184
6185	// The trust password. The must be the same password that was used when creating
6186	// the trust relationship on the external domain.
6187	//
6188	// TrustPassword is a required field
6189	TrustPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
6190
6191	// The trust relationship type. Forest is the default.
6192	TrustType *string `type:"string" enum:"TrustType"`
6193}
6194
6195// String returns the string representation
6196func (s CreateTrustInput) String() string {
6197	return awsutil.Prettify(s)
6198}
6199
6200// GoString returns the string representation
6201func (s CreateTrustInput) GoString() string {
6202	return s.String()
6203}
6204
6205// Validate inspects the fields of the type to determine if they are valid.
6206func (s *CreateTrustInput) Validate() error {
6207	invalidParams := request.ErrInvalidParams{Context: "CreateTrustInput"}
6208	if s.DirectoryId == nil {
6209		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6210	}
6211	if s.RemoteDomainName == nil {
6212		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
6213	}
6214	if s.TrustDirection == nil {
6215		invalidParams.Add(request.NewErrParamRequired("TrustDirection"))
6216	}
6217	if s.TrustPassword == nil {
6218		invalidParams.Add(request.NewErrParamRequired("TrustPassword"))
6219	}
6220	if s.TrustPassword != nil && len(*s.TrustPassword) < 1 {
6221		invalidParams.Add(request.NewErrParamMinLen("TrustPassword", 1))
6222	}
6223
6224	if invalidParams.Len() > 0 {
6225		return invalidParams
6226	}
6227	return nil
6228}
6229
6230// SetConditionalForwarderIpAddrs sets the ConditionalForwarderIpAddrs field's value.
6231func (s *CreateTrustInput) SetConditionalForwarderIpAddrs(v []*string) *CreateTrustInput {
6232	s.ConditionalForwarderIpAddrs = v
6233	return s
6234}
6235
6236// SetDirectoryId sets the DirectoryId field's value.
6237func (s *CreateTrustInput) SetDirectoryId(v string) *CreateTrustInput {
6238	s.DirectoryId = &v
6239	return s
6240}
6241
6242// SetRemoteDomainName sets the RemoteDomainName field's value.
6243func (s *CreateTrustInput) SetRemoteDomainName(v string) *CreateTrustInput {
6244	s.RemoteDomainName = &v
6245	return s
6246}
6247
6248// SetSelectiveAuth sets the SelectiveAuth field's value.
6249func (s *CreateTrustInput) SetSelectiveAuth(v string) *CreateTrustInput {
6250	s.SelectiveAuth = &v
6251	return s
6252}
6253
6254// SetTrustDirection sets the TrustDirection field's value.
6255func (s *CreateTrustInput) SetTrustDirection(v string) *CreateTrustInput {
6256	s.TrustDirection = &v
6257	return s
6258}
6259
6260// SetTrustPassword sets the TrustPassword field's value.
6261func (s *CreateTrustInput) SetTrustPassword(v string) *CreateTrustInput {
6262	s.TrustPassword = &v
6263	return s
6264}
6265
6266// SetTrustType sets the TrustType field's value.
6267func (s *CreateTrustInput) SetTrustType(v string) *CreateTrustInput {
6268	s.TrustType = &v
6269	return s
6270}
6271
6272// The result of a CreateTrust request.
6273type CreateTrustOutput struct {
6274	_ struct{} `type:"structure"`
6275
6276	// A unique identifier for the trust relationship that was created.
6277	TrustId *string `type:"string"`
6278}
6279
6280// String returns the string representation
6281func (s CreateTrustOutput) String() string {
6282	return awsutil.Prettify(s)
6283}
6284
6285// GoString returns the string representation
6286func (s CreateTrustOutput) GoString() string {
6287	return s.String()
6288}
6289
6290// SetTrustId sets the TrustId field's value.
6291func (s *CreateTrustOutput) SetTrustId(v string) *CreateTrustOutput {
6292	s.TrustId = &v
6293	return s
6294}
6295
6296// Deletes a conditional forwarder.
6297type DeleteConditionalForwarderInput struct {
6298	_ struct{} `type:"structure"`
6299
6300	// The directory ID for which you are deleting the conditional forwarder.
6301	//
6302	// DirectoryId is a required field
6303	DirectoryId *string `type:"string" required:"true"`
6304
6305	// The fully qualified domain name (FQDN) of the remote domain with which you
6306	// are deleting the conditional forwarder.
6307	//
6308	// RemoteDomainName is a required field
6309	RemoteDomainName *string `type:"string" required:"true"`
6310}
6311
6312// String returns the string representation
6313func (s DeleteConditionalForwarderInput) String() string {
6314	return awsutil.Prettify(s)
6315}
6316
6317// GoString returns the string representation
6318func (s DeleteConditionalForwarderInput) GoString() string {
6319	return s.String()
6320}
6321
6322// Validate inspects the fields of the type to determine if they are valid.
6323func (s *DeleteConditionalForwarderInput) Validate() error {
6324	invalidParams := request.ErrInvalidParams{Context: "DeleteConditionalForwarderInput"}
6325	if s.DirectoryId == nil {
6326		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6327	}
6328	if s.RemoteDomainName == nil {
6329		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
6330	}
6331
6332	if invalidParams.Len() > 0 {
6333		return invalidParams
6334	}
6335	return nil
6336}
6337
6338// SetDirectoryId sets the DirectoryId field's value.
6339func (s *DeleteConditionalForwarderInput) SetDirectoryId(v string) *DeleteConditionalForwarderInput {
6340	s.DirectoryId = &v
6341	return s
6342}
6343
6344// SetRemoteDomainName sets the RemoteDomainName field's value.
6345func (s *DeleteConditionalForwarderInput) SetRemoteDomainName(v string) *DeleteConditionalForwarderInput {
6346	s.RemoteDomainName = &v
6347	return s
6348}
6349
6350// The result of a DeleteConditionalForwarder request.
6351type DeleteConditionalForwarderOutput struct {
6352	_ struct{} `type:"structure"`
6353}
6354
6355// String returns the string representation
6356func (s DeleteConditionalForwarderOutput) String() string {
6357	return awsutil.Prettify(s)
6358}
6359
6360// GoString returns the string representation
6361func (s DeleteConditionalForwarderOutput) GoString() string {
6362	return s.String()
6363}
6364
6365// Contains the inputs for the DeleteDirectory operation.
6366type DeleteDirectoryInput struct {
6367	_ struct{} `type:"structure"`
6368
6369	// The identifier of the directory to delete.
6370	//
6371	// DirectoryId is a required field
6372	DirectoryId *string `type:"string" required:"true"`
6373}
6374
6375// String returns the string representation
6376func (s DeleteDirectoryInput) String() string {
6377	return awsutil.Prettify(s)
6378}
6379
6380// GoString returns the string representation
6381func (s DeleteDirectoryInput) GoString() string {
6382	return s.String()
6383}
6384
6385// Validate inspects the fields of the type to determine if they are valid.
6386func (s *DeleteDirectoryInput) Validate() error {
6387	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryInput"}
6388	if s.DirectoryId == nil {
6389		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6390	}
6391
6392	if invalidParams.Len() > 0 {
6393		return invalidParams
6394	}
6395	return nil
6396}
6397
6398// SetDirectoryId sets the DirectoryId field's value.
6399func (s *DeleteDirectoryInput) SetDirectoryId(v string) *DeleteDirectoryInput {
6400	s.DirectoryId = &v
6401	return s
6402}
6403
6404// Contains the results of the DeleteDirectory operation.
6405type DeleteDirectoryOutput struct {
6406	_ struct{} `type:"structure"`
6407
6408	// The directory identifier.
6409	DirectoryId *string `type:"string"`
6410}
6411
6412// String returns the string representation
6413func (s DeleteDirectoryOutput) String() string {
6414	return awsutil.Prettify(s)
6415}
6416
6417// GoString returns the string representation
6418func (s DeleteDirectoryOutput) GoString() string {
6419	return s.String()
6420}
6421
6422// SetDirectoryId sets the DirectoryId field's value.
6423func (s *DeleteDirectoryOutput) SetDirectoryId(v string) *DeleteDirectoryOutput {
6424	s.DirectoryId = &v
6425	return s
6426}
6427
6428type DeleteLogSubscriptionInput struct {
6429	_ struct{} `type:"structure"`
6430
6431	// Identifier (ID) of the directory whose log subscription you want to delete.
6432	//
6433	// DirectoryId is a required field
6434	DirectoryId *string `type:"string" required:"true"`
6435}
6436
6437// String returns the string representation
6438func (s DeleteLogSubscriptionInput) String() string {
6439	return awsutil.Prettify(s)
6440}
6441
6442// GoString returns the string representation
6443func (s DeleteLogSubscriptionInput) GoString() string {
6444	return s.String()
6445}
6446
6447// Validate inspects the fields of the type to determine if they are valid.
6448func (s *DeleteLogSubscriptionInput) Validate() error {
6449	invalidParams := request.ErrInvalidParams{Context: "DeleteLogSubscriptionInput"}
6450	if s.DirectoryId == nil {
6451		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6452	}
6453
6454	if invalidParams.Len() > 0 {
6455		return invalidParams
6456	}
6457	return nil
6458}
6459
6460// SetDirectoryId sets the DirectoryId field's value.
6461func (s *DeleteLogSubscriptionInput) SetDirectoryId(v string) *DeleteLogSubscriptionInput {
6462	s.DirectoryId = &v
6463	return s
6464}
6465
6466type DeleteLogSubscriptionOutput struct {
6467	_ struct{} `type:"structure"`
6468}
6469
6470// String returns the string representation
6471func (s DeleteLogSubscriptionOutput) String() string {
6472	return awsutil.Prettify(s)
6473}
6474
6475// GoString returns the string representation
6476func (s DeleteLogSubscriptionOutput) GoString() string {
6477	return s.String()
6478}
6479
6480// Contains the inputs for the DeleteSnapshot operation.
6481type DeleteSnapshotInput struct {
6482	_ struct{} `type:"structure"`
6483
6484	// The identifier of the directory snapshot to be deleted.
6485	//
6486	// SnapshotId is a required field
6487	SnapshotId *string `type:"string" required:"true"`
6488}
6489
6490// String returns the string representation
6491func (s DeleteSnapshotInput) String() string {
6492	return awsutil.Prettify(s)
6493}
6494
6495// GoString returns the string representation
6496func (s DeleteSnapshotInput) GoString() string {
6497	return s.String()
6498}
6499
6500// Validate inspects the fields of the type to determine if they are valid.
6501func (s *DeleteSnapshotInput) Validate() error {
6502	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotInput"}
6503	if s.SnapshotId == nil {
6504		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
6505	}
6506
6507	if invalidParams.Len() > 0 {
6508		return invalidParams
6509	}
6510	return nil
6511}
6512
6513// SetSnapshotId sets the SnapshotId field's value.
6514func (s *DeleteSnapshotInput) SetSnapshotId(v string) *DeleteSnapshotInput {
6515	s.SnapshotId = &v
6516	return s
6517}
6518
6519// Contains the results of the DeleteSnapshot operation.
6520type DeleteSnapshotOutput struct {
6521	_ struct{} `type:"structure"`
6522
6523	// The identifier of the directory snapshot that was deleted.
6524	SnapshotId *string `type:"string"`
6525}
6526
6527// String returns the string representation
6528func (s DeleteSnapshotOutput) String() string {
6529	return awsutil.Prettify(s)
6530}
6531
6532// GoString returns the string representation
6533func (s DeleteSnapshotOutput) GoString() string {
6534	return s.String()
6535}
6536
6537// SetSnapshotId sets the SnapshotId field's value.
6538func (s *DeleteSnapshotOutput) SetSnapshotId(v string) *DeleteSnapshotOutput {
6539	s.SnapshotId = &v
6540	return s
6541}
6542
6543// Deletes the local side of an existing trust relationship between the AWS
6544// Managed Microsoft AD directory and the external domain.
6545type DeleteTrustInput struct {
6546	_ struct{} `type:"structure"`
6547
6548	// Delete a conditional forwarder as part of a DeleteTrustRequest.
6549	DeleteAssociatedConditionalForwarder *bool `type:"boolean"`
6550
6551	// The Trust ID of the trust relationship to be deleted.
6552	//
6553	// TrustId is a required field
6554	TrustId *string `type:"string" required:"true"`
6555}
6556
6557// String returns the string representation
6558func (s DeleteTrustInput) String() string {
6559	return awsutil.Prettify(s)
6560}
6561
6562// GoString returns the string representation
6563func (s DeleteTrustInput) GoString() string {
6564	return s.String()
6565}
6566
6567// Validate inspects the fields of the type to determine if they are valid.
6568func (s *DeleteTrustInput) Validate() error {
6569	invalidParams := request.ErrInvalidParams{Context: "DeleteTrustInput"}
6570	if s.TrustId == nil {
6571		invalidParams.Add(request.NewErrParamRequired("TrustId"))
6572	}
6573
6574	if invalidParams.Len() > 0 {
6575		return invalidParams
6576	}
6577	return nil
6578}
6579
6580// SetDeleteAssociatedConditionalForwarder sets the DeleteAssociatedConditionalForwarder field's value.
6581func (s *DeleteTrustInput) SetDeleteAssociatedConditionalForwarder(v bool) *DeleteTrustInput {
6582	s.DeleteAssociatedConditionalForwarder = &v
6583	return s
6584}
6585
6586// SetTrustId sets the TrustId field's value.
6587func (s *DeleteTrustInput) SetTrustId(v string) *DeleteTrustInput {
6588	s.TrustId = &v
6589	return s
6590}
6591
6592// The result of a DeleteTrust request.
6593type DeleteTrustOutput struct {
6594	_ struct{} `type:"structure"`
6595
6596	// The Trust ID of the trust relationship that was deleted.
6597	TrustId *string `type:"string"`
6598}
6599
6600// String returns the string representation
6601func (s DeleteTrustOutput) String() string {
6602	return awsutil.Prettify(s)
6603}
6604
6605// GoString returns the string representation
6606func (s DeleteTrustOutput) GoString() string {
6607	return s.String()
6608}
6609
6610// SetTrustId sets the TrustId field's value.
6611func (s *DeleteTrustOutput) SetTrustId(v string) *DeleteTrustOutput {
6612	s.TrustId = &v
6613	return s
6614}
6615
6616// Removes the specified directory as a publisher to the specified SNS topic.
6617type DeregisterEventTopicInput struct {
6618	_ struct{} `type:"structure"`
6619
6620	// The Directory ID to remove as a publisher. This directory will no longer
6621	// send messages to the specified SNS topic.
6622	//
6623	// DirectoryId is a required field
6624	DirectoryId *string `type:"string" required:"true"`
6625
6626	// The name of the SNS topic from which to remove the directory as a publisher.
6627	//
6628	// TopicName is a required field
6629	TopicName *string `min:"1" type:"string" required:"true"`
6630}
6631
6632// String returns the string representation
6633func (s DeregisterEventTopicInput) String() string {
6634	return awsutil.Prettify(s)
6635}
6636
6637// GoString returns the string representation
6638func (s DeregisterEventTopicInput) GoString() string {
6639	return s.String()
6640}
6641
6642// Validate inspects the fields of the type to determine if they are valid.
6643func (s *DeregisterEventTopicInput) Validate() error {
6644	invalidParams := request.ErrInvalidParams{Context: "DeregisterEventTopicInput"}
6645	if s.DirectoryId == nil {
6646		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6647	}
6648	if s.TopicName == nil {
6649		invalidParams.Add(request.NewErrParamRequired("TopicName"))
6650	}
6651	if s.TopicName != nil && len(*s.TopicName) < 1 {
6652		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
6653	}
6654
6655	if invalidParams.Len() > 0 {
6656		return invalidParams
6657	}
6658	return nil
6659}
6660
6661// SetDirectoryId sets the DirectoryId field's value.
6662func (s *DeregisterEventTopicInput) SetDirectoryId(v string) *DeregisterEventTopicInput {
6663	s.DirectoryId = &v
6664	return s
6665}
6666
6667// SetTopicName sets the TopicName field's value.
6668func (s *DeregisterEventTopicInput) SetTopicName(v string) *DeregisterEventTopicInput {
6669	s.TopicName = &v
6670	return s
6671}
6672
6673// The result of a DeregisterEventTopic request.
6674type DeregisterEventTopicOutput struct {
6675	_ struct{} `type:"structure"`
6676}
6677
6678// String returns the string representation
6679func (s DeregisterEventTopicOutput) String() string {
6680	return awsutil.Prettify(s)
6681}
6682
6683// GoString returns the string representation
6684func (s DeregisterEventTopicOutput) GoString() string {
6685	return s.String()
6686}
6687
6688// Describes a conditional forwarder.
6689type DescribeConditionalForwardersInput struct {
6690	_ struct{} `type:"structure"`
6691
6692	// The directory ID for which to get the list of associated conditional forwarders.
6693	//
6694	// DirectoryId is a required field
6695	DirectoryId *string `type:"string" required:"true"`
6696
6697	// The fully qualified domain names (FQDN) of the remote domains for which to
6698	// get the list of associated conditional forwarders. If this member is null,
6699	// all conditional forwarders are returned.
6700	RemoteDomainNames []*string `type:"list"`
6701}
6702
6703// String returns the string representation
6704func (s DescribeConditionalForwardersInput) String() string {
6705	return awsutil.Prettify(s)
6706}
6707
6708// GoString returns the string representation
6709func (s DescribeConditionalForwardersInput) GoString() string {
6710	return s.String()
6711}
6712
6713// Validate inspects the fields of the type to determine if they are valid.
6714func (s *DescribeConditionalForwardersInput) Validate() error {
6715	invalidParams := request.ErrInvalidParams{Context: "DescribeConditionalForwardersInput"}
6716	if s.DirectoryId == nil {
6717		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6718	}
6719
6720	if invalidParams.Len() > 0 {
6721		return invalidParams
6722	}
6723	return nil
6724}
6725
6726// SetDirectoryId sets the DirectoryId field's value.
6727func (s *DescribeConditionalForwardersInput) SetDirectoryId(v string) *DescribeConditionalForwardersInput {
6728	s.DirectoryId = &v
6729	return s
6730}
6731
6732// SetRemoteDomainNames sets the RemoteDomainNames field's value.
6733func (s *DescribeConditionalForwardersInput) SetRemoteDomainNames(v []*string) *DescribeConditionalForwardersInput {
6734	s.RemoteDomainNames = v
6735	return s
6736}
6737
6738// The result of a DescribeConditionalForwarder request.
6739type DescribeConditionalForwardersOutput struct {
6740	_ struct{} `type:"structure"`
6741
6742	// The list of conditional forwarders that have been created.
6743	ConditionalForwarders []*ConditionalForwarder `type:"list"`
6744}
6745
6746// String returns the string representation
6747func (s DescribeConditionalForwardersOutput) String() string {
6748	return awsutil.Prettify(s)
6749}
6750
6751// GoString returns the string representation
6752func (s DescribeConditionalForwardersOutput) GoString() string {
6753	return s.String()
6754}
6755
6756// SetConditionalForwarders sets the ConditionalForwarders field's value.
6757func (s *DescribeConditionalForwardersOutput) SetConditionalForwarders(v []*ConditionalForwarder) *DescribeConditionalForwardersOutput {
6758	s.ConditionalForwarders = v
6759	return s
6760}
6761
6762// Contains the inputs for the DescribeDirectories operation.
6763type DescribeDirectoriesInput struct {
6764	_ struct{} `type:"structure"`
6765
6766	// A list of identifiers of the directories for which to obtain the information.
6767	// If this member is null, all directories that belong to the current account
6768	// are returned.
6769	//
6770	// An empty list results in an InvalidParameterException being thrown.
6771	DirectoryIds []*string `type:"list"`
6772
6773	// The maximum number of items to return. If this value is zero, the maximum
6774	// number of items is specified by the limitations of the operation.
6775	Limit *int64 `type:"integer"`
6776
6777	// The DescribeDirectoriesResult.NextToken value from a previous call to DescribeDirectories.
6778	// Pass null if this is the first call.
6779	NextToken *string `type:"string"`
6780}
6781
6782// String returns the string representation
6783func (s DescribeDirectoriesInput) String() string {
6784	return awsutil.Prettify(s)
6785}
6786
6787// GoString returns the string representation
6788func (s DescribeDirectoriesInput) GoString() string {
6789	return s.String()
6790}
6791
6792// SetDirectoryIds sets the DirectoryIds field's value.
6793func (s *DescribeDirectoriesInput) SetDirectoryIds(v []*string) *DescribeDirectoriesInput {
6794	s.DirectoryIds = v
6795	return s
6796}
6797
6798// SetLimit sets the Limit field's value.
6799func (s *DescribeDirectoriesInput) SetLimit(v int64) *DescribeDirectoriesInput {
6800	s.Limit = &v
6801	return s
6802}
6803
6804// SetNextToken sets the NextToken field's value.
6805func (s *DescribeDirectoriesInput) SetNextToken(v string) *DescribeDirectoriesInput {
6806	s.NextToken = &v
6807	return s
6808}
6809
6810// Contains the results of the DescribeDirectories operation.
6811type DescribeDirectoriesOutput struct {
6812	_ struct{} `type:"structure"`
6813
6814	// The list of DirectoryDescription objects that were retrieved.
6815	//
6816	// It is possible that this list contains less than the number of items specified
6817	// in the Limit member of the request. This occurs if there are less than the
6818	// requested number of items left to retrieve, or if the limitations of the
6819	// operation have been exceeded.
6820	DirectoryDescriptions []*DirectoryDescription `type:"list"`
6821
6822	// If not null, more results are available. Pass this value for the NextToken
6823	// parameter in a subsequent call to DescribeDirectories to retrieve the next
6824	// set of items.
6825	NextToken *string `type:"string"`
6826}
6827
6828// String returns the string representation
6829func (s DescribeDirectoriesOutput) String() string {
6830	return awsutil.Prettify(s)
6831}
6832
6833// GoString returns the string representation
6834func (s DescribeDirectoriesOutput) GoString() string {
6835	return s.String()
6836}
6837
6838// SetDirectoryDescriptions sets the DirectoryDescriptions field's value.
6839func (s *DescribeDirectoriesOutput) SetDirectoryDescriptions(v []*DirectoryDescription) *DescribeDirectoriesOutput {
6840	s.DirectoryDescriptions = v
6841	return s
6842}
6843
6844// SetNextToken sets the NextToken field's value.
6845func (s *DescribeDirectoriesOutput) SetNextToken(v string) *DescribeDirectoriesOutput {
6846	s.NextToken = &v
6847	return s
6848}
6849
6850type DescribeDomainControllersInput struct {
6851	_ struct{} `type:"structure"`
6852
6853	// Identifier of the directory for which to retrieve the domain controller information.
6854	//
6855	// DirectoryId is a required field
6856	DirectoryId *string `type:"string" required:"true"`
6857
6858	// A list of identifiers for the domain controllers whose information will be
6859	// provided.
6860	DomainControllerIds []*string `type:"list"`
6861
6862	// The maximum number of items to return.
6863	Limit *int64 `type:"integer"`
6864
6865	// The DescribeDomainControllers.NextToken value from a previous call to DescribeDomainControllers.
6866	// Pass null if this is the first call.
6867	NextToken *string `type:"string"`
6868}
6869
6870// String returns the string representation
6871func (s DescribeDomainControllersInput) String() string {
6872	return awsutil.Prettify(s)
6873}
6874
6875// GoString returns the string representation
6876func (s DescribeDomainControllersInput) GoString() string {
6877	return s.String()
6878}
6879
6880// Validate inspects the fields of the type to determine if they are valid.
6881func (s *DescribeDomainControllersInput) Validate() error {
6882	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainControllersInput"}
6883	if s.DirectoryId == nil {
6884		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6885	}
6886
6887	if invalidParams.Len() > 0 {
6888		return invalidParams
6889	}
6890	return nil
6891}
6892
6893// SetDirectoryId sets the DirectoryId field's value.
6894func (s *DescribeDomainControllersInput) SetDirectoryId(v string) *DescribeDomainControllersInput {
6895	s.DirectoryId = &v
6896	return s
6897}
6898
6899// SetDomainControllerIds sets the DomainControllerIds field's value.
6900func (s *DescribeDomainControllersInput) SetDomainControllerIds(v []*string) *DescribeDomainControllersInput {
6901	s.DomainControllerIds = v
6902	return s
6903}
6904
6905// SetLimit sets the Limit field's value.
6906func (s *DescribeDomainControllersInput) SetLimit(v int64) *DescribeDomainControllersInput {
6907	s.Limit = &v
6908	return s
6909}
6910
6911// SetNextToken sets the NextToken field's value.
6912func (s *DescribeDomainControllersInput) SetNextToken(v string) *DescribeDomainControllersInput {
6913	s.NextToken = &v
6914	return s
6915}
6916
6917type DescribeDomainControllersOutput struct {
6918	_ struct{} `type:"structure"`
6919
6920	// List of the DomainController objects that were retrieved.
6921	DomainControllers []*DomainController `type:"list"`
6922
6923	// If not null, more results are available. Pass this value for the NextToken
6924	// parameter in a subsequent call to DescribeDomainControllers retrieve the
6925	// next set of items.
6926	NextToken *string `type:"string"`
6927}
6928
6929// String returns the string representation
6930func (s DescribeDomainControllersOutput) String() string {
6931	return awsutil.Prettify(s)
6932}
6933
6934// GoString returns the string representation
6935func (s DescribeDomainControllersOutput) GoString() string {
6936	return s.String()
6937}
6938
6939// SetDomainControllers sets the DomainControllers field's value.
6940func (s *DescribeDomainControllersOutput) SetDomainControllers(v []*DomainController) *DescribeDomainControllersOutput {
6941	s.DomainControllers = v
6942	return s
6943}
6944
6945// SetNextToken sets the NextToken field's value.
6946func (s *DescribeDomainControllersOutput) SetNextToken(v string) *DescribeDomainControllersOutput {
6947	s.NextToken = &v
6948	return s
6949}
6950
6951// Describes event topics.
6952type DescribeEventTopicsInput struct {
6953	_ struct{} `type:"structure"`
6954
6955	// The Directory ID for which to get the list of associated SNS topics. If this
6956	// member is null, associations for all Directory IDs are returned.
6957	DirectoryId *string `type:"string"`
6958
6959	// A list of SNS topic names for which to obtain the information. If this member
6960	// is null, all associations for the specified Directory ID are returned.
6961	//
6962	// An empty list results in an InvalidParameterException being thrown.
6963	TopicNames []*string `type:"list"`
6964}
6965
6966// String returns the string representation
6967func (s DescribeEventTopicsInput) String() string {
6968	return awsutil.Prettify(s)
6969}
6970
6971// GoString returns the string representation
6972func (s DescribeEventTopicsInput) GoString() string {
6973	return s.String()
6974}
6975
6976// SetDirectoryId sets the DirectoryId field's value.
6977func (s *DescribeEventTopicsInput) SetDirectoryId(v string) *DescribeEventTopicsInput {
6978	s.DirectoryId = &v
6979	return s
6980}
6981
6982// SetTopicNames sets the TopicNames field's value.
6983func (s *DescribeEventTopicsInput) SetTopicNames(v []*string) *DescribeEventTopicsInput {
6984	s.TopicNames = v
6985	return s
6986}
6987
6988// The result of a DescribeEventTopic request.
6989type DescribeEventTopicsOutput struct {
6990	_ struct{} `type:"structure"`
6991
6992	// A list of SNS topic names that receive status messages from the specified
6993	// Directory ID.
6994	EventTopics []*EventTopic `type:"list"`
6995}
6996
6997// String returns the string representation
6998func (s DescribeEventTopicsOutput) String() string {
6999	return awsutil.Prettify(s)
7000}
7001
7002// GoString returns the string representation
7003func (s DescribeEventTopicsOutput) GoString() string {
7004	return s.String()
7005}
7006
7007// SetEventTopics sets the EventTopics field's value.
7008func (s *DescribeEventTopicsOutput) SetEventTopics(v []*EventTopic) *DescribeEventTopicsOutput {
7009	s.EventTopics = v
7010	return s
7011}
7012
7013type DescribeSharedDirectoriesInput struct {
7014	_ struct{} `type:"structure"`
7015
7016	// The number of shared directories to return in the response object.
7017	Limit *int64 `type:"integer"`
7018
7019	// The DescribeSharedDirectoriesResult.NextToken value from a previous call
7020	// to DescribeSharedDirectories. Pass null if this is the first call.
7021	NextToken *string `type:"string"`
7022
7023	// Returns the identifier of the directory in the directory owner account.
7024	//
7025	// OwnerDirectoryId is a required field
7026	OwnerDirectoryId *string `type:"string" required:"true"`
7027
7028	// A list of identifiers of all shared directories in your account.
7029	SharedDirectoryIds []*string `type:"list"`
7030}
7031
7032// String returns the string representation
7033func (s DescribeSharedDirectoriesInput) String() string {
7034	return awsutil.Prettify(s)
7035}
7036
7037// GoString returns the string representation
7038func (s DescribeSharedDirectoriesInput) GoString() string {
7039	return s.String()
7040}
7041
7042// Validate inspects the fields of the type to determine if they are valid.
7043func (s *DescribeSharedDirectoriesInput) Validate() error {
7044	invalidParams := request.ErrInvalidParams{Context: "DescribeSharedDirectoriesInput"}
7045	if s.OwnerDirectoryId == nil {
7046		invalidParams.Add(request.NewErrParamRequired("OwnerDirectoryId"))
7047	}
7048
7049	if invalidParams.Len() > 0 {
7050		return invalidParams
7051	}
7052	return nil
7053}
7054
7055// SetLimit sets the Limit field's value.
7056func (s *DescribeSharedDirectoriesInput) SetLimit(v int64) *DescribeSharedDirectoriesInput {
7057	s.Limit = &v
7058	return s
7059}
7060
7061// SetNextToken sets the NextToken field's value.
7062func (s *DescribeSharedDirectoriesInput) SetNextToken(v string) *DescribeSharedDirectoriesInput {
7063	s.NextToken = &v
7064	return s
7065}
7066
7067// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
7068func (s *DescribeSharedDirectoriesInput) SetOwnerDirectoryId(v string) *DescribeSharedDirectoriesInput {
7069	s.OwnerDirectoryId = &v
7070	return s
7071}
7072
7073// SetSharedDirectoryIds sets the SharedDirectoryIds field's value.
7074func (s *DescribeSharedDirectoriesInput) SetSharedDirectoryIds(v []*string) *DescribeSharedDirectoriesInput {
7075	s.SharedDirectoryIds = v
7076	return s
7077}
7078
7079type DescribeSharedDirectoriesOutput struct {
7080	_ struct{} `type:"structure"`
7081
7082	// If not null, token that indicates that more results are available. Pass this
7083	// value for the NextToken parameter in a subsequent call to DescribeSharedDirectories
7084	// to retrieve the next set of items.
7085	NextToken *string `type:"string"`
7086
7087	// A list of all shared directories in your account.
7088	SharedDirectories []*SharedDirectory `type:"list"`
7089}
7090
7091// String returns the string representation
7092func (s DescribeSharedDirectoriesOutput) String() string {
7093	return awsutil.Prettify(s)
7094}
7095
7096// GoString returns the string representation
7097func (s DescribeSharedDirectoriesOutput) GoString() string {
7098	return s.String()
7099}
7100
7101// SetNextToken sets the NextToken field's value.
7102func (s *DescribeSharedDirectoriesOutput) SetNextToken(v string) *DescribeSharedDirectoriesOutput {
7103	s.NextToken = &v
7104	return s
7105}
7106
7107// SetSharedDirectories sets the SharedDirectories field's value.
7108func (s *DescribeSharedDirectoriesOutput) SetSharedDirectories(v []*SharedDirectory) *DescribeSharedDirectoriesOutput {
7109	s.SharedDirectories = v
7110	return s
7111}
7112
7113// Contains the inputs for the DescribeSnapshots operation.
7114type DescribeSnapshotsInput struct {
7115	_ struct{} `type:"structure"`
7116
7117	// The identifier of the directory for which to retrieve snapshot information.
7118	DirectoryId *string `type:"string"`
7119
7120	// The maximum number of objects to return.
7121	Limit *int64 `type:"integer"`
7122
7123	// The DescribeSnapshotsResult.NextToken value from a previous call to DescribeSnapshots.
7124	// Pass null if this is the first call.
7125	NextToken *string `type:"string"`
7126
7127	// A list of identifiers of the snapshots to obtain the information for. If
7128	// this member is null or empty, all snapshots are returned using the Limit
7129	// and NextToken members.
7130	SnapshotIds []*string `type:"list"`
7131}
7132
7133// String returns the string representation
7134func (s DescribeSnapshotsInput) String() string {
7135	return awsutil.Prettify(s)
7136}
7137
7138// GoString returns the string representation
7139func (s DescribeSnapshotsInput) GoString() string {
7140	return s.String()
7141}
7142
7143// SetDirectoryId sets the DirectoryId field's value.
7144func (s *DescribeSnapshotsInput) SetDirectoryId(v string) *DescribeSnapshotsInput {
7145	s.DirectoryId = &v
7146	return s
7147}
7148
7149// SetLimit sets the Limit field's value.
7150func (s *DescribeSnapshotsInput) SetLimit(v int64) *DescribeSnapshotsInput {
7151	s.Limit = &v
7152	return s
7153}
7154
7155// SetNextToken sets the NextToken field's value.
7156func (s *DescribeSnapshotsInput) SetNextToken(v string) *DescribeSnapshotsInput {
7157	s.NextToken = &v
7158	return s
7159}
7160
7161// SetSnapshotIds sets the SnapshotIds field's value.
7162func (s *DescribeSnapshotsInput) SetSnapshotIds(v []*string) *DescribeSnapshotsInput {
7163	s.SnapshotIds = v
7164	return s
7165}
7166
7167// Contains the results of the DescribeSnapshots operation.
7168type DescribeSnapshotsOutput struct {
7169	_ struct{} `type:"structure"`
7170
7171	// If not null, more results are available. Pass this value in the NextToken
7172	// member of a subsequent call to DescribeSnapshots.
7173	NextToken *string `type:"string"`
7174
7175	// The list of Snapshot objects that were retrieved.
7176	//
7177	// It is possible that this list contains less than the number of items specified
7178	// in the Limit member of the request. This occurs if there are less than the
7179	// requested number of items left to retrieve, or if the limitations of the
7180	// operation have been exceeded.
7181	Snapshots []*Snapshot `type:"list"`
7182}
7183
7184// String returns the string representation
7185func (s DescribeSnapshotsOutput) String() string {
7186	return awsutil.Prettify(s)
7187}
7188
7189// GoString returns the string representation
7190func (s DescribeSnapshotsOutput) GoString() string {
7191	return s.String()
7192}
7193
7194// SetNextToken sets the NextToken field's value.
7195func (s *DescribeSnapshotsOutput) SetNextToken(v string) *DescribeSnapshotsOutput {
7196	s.NextToken = &v
7197	return s
7198}
7199
7200// SetSnapshots sets the Snapshots field's value.
7201func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshotsOutput {
7202	s.Snapshots = v
7203	return s
7204}
7205
7206// Describes the trust relationships for a particular AWS Managed Microsoft
7207// AD directory. If no input parameters are are provided, such as directory
7208// ID or trust ID, this request describes all the trust relationships.
7209type DescribeTrustsInput struct {
7210	_ struct{} `type:"structure"`
7211
7212	// The Directory ID of the AWS directory that is a part of the requested trust
7213	// relationship.
7214	DirectoryId *string `type:"string"`
7215
7216	// The maximum number of objects to return.
7217	Limit *int64 `type:"integer"`
7218
7219	// The DescribeTrustsResult.NextToken value from a previous call to DescribeTrusts.
7220	// Pass null if this is the first call.
7221	NextToken *string `type:"string"`
7222
7223	// A list of identifiers of the trust relationships for which to obtain the
7224	// information. If this member is null, all trust relationships that belong
7225	// to the current account are returned.
7226	//
7227	// An empty list results in an InvalidParameterException being thrown.
7228	TrustIds []*string `type:"list"`
7229}
7230
7231// String returns the string representation
7232func (s DescribeTrustsInput) String() string {
7233	return awsutil.Prettify(s)
7234}
7235
7236// GoString returns the string representation
7237func (s DescribeTrustsInput) GoString() string {
7238	return s.String()
7239}
7240
7241// SetDirectoryId sets the DirectoryId field's value.
7242func (s *DescribeTrustsInput) SetDirectoryId(v string) *DescribeTrustsInput {
7243	s.DirectoryId = &v
7244	return s
7245}
7246
7247// SetLimit sets the Limit field's value.
7248func (s *DescribeTrustsInput) SetLimit(v int64) *DescribeTrustsInput {
7249	s.Limit = &v
7250	return s
7251}
7252
7253// SetNextToken sets the NextToken field's value.
7254func (s *DescribeTrustsInput) SetNextToken(v string) *DescribeTrustsInput {
7255	s.NextToken = &v
7256	return s
7257}
7258
7259// SetTrustIds sets the TrustIds field's value.
7260func (s *DescribeTrustsInput) SetTrustIds(v []*string) *DescribeTrustsInput {
7261	s.TrustIds = v
7262	return s
7263}
7264
7265// The result of a DescribeTrust request.
7266type DescribeTrustsOutput struct {
7267	_ struct{} `type:"structure"`
7268
7269	// If not null, more results are available. Pass this value for the NextToken
7270	// parameter in a subsequent call to DescribeTrusts to retrieve the next set
7271	// of items.
7272	NextToken *string `type:"string"`
7273
7274	// The list of Trust objects that were retrieved.
7275	//
7276	// It is possible that this list contains less than the number of items specified
7277	// in the Limit member of the request. This occurs if there are less than the
7278	// requested number of items left to retrieve, or if the limitations of the
7279	// operation have been exceeded.
7280	Trusts []*Trust `type:"list"`
7281}
7282
7283// String returns the string representation
7284func (s DescribeTrustsOutput) String() string {
7285	return awsutil.Prettify(s)
7286}
7287
7288// GoString returns the string representation
7289func (s DescribeTrustsOutput) GoString() string {
7290	return s.String()
7291}
7292
7293// SetNextToken sets the NextToken field's value.
7294func (s *DescribeTrustsOutput) SetNextToken(v string) *DescribeTrustsOutput {
7295	s.NextToken = &v
7296	return s
7297}
7298
7299// SetTrusts sets the Trusts field's value.
7300func (s *DescribeTrustsOutput) SetTrusts(v []*Trust) *DescribeTrustsOutput {
7301	s.Trusts = v
7302	return s
7303}
7304
7305// Contains information for the ConnectDirectory operation when an AD Connector
7306// directory is being created.
7307type DirectoryConnectSettings struct {
7308	_ struct{} `type:"structure"`
7309
7310	// A list of one or more IP addresses of DNS servers or domain controllers in
7311	// the on-premises directory.
7312	//
7313	// CustomerDnsIps is a required field
7314	CustomerDnsIps []*string `type:"list" required:"true"`
7315
7316	// The user name of an account in the on-premises directory that is used to
7317	// connect to the directory. This account must have the following permissions:
7318	//
7319	//    * Read users and groups
7320	//
7321	//    * Create computer objects
7322	//
7323	//    * Join computers to the domain
7324	//
7325	// CustomerUserName is a required field
7326	CustomerUserName *string `min:"1" type:"string" required:"true"`
7327
7328	// A list of subnet identifiers in the VPC in which the AD Connector is created.
7329	//
7330	// SubnetIds is a required field
7331	SubnetIds []*string `type:"list" required:"true"`
7332
7333	// The identifier of the VPC in which the AD Connector is created.
7334	//
7335	// VpcId is a required field
7336	VpcId *string `type:"string" required:"true"`
7337}
7338
7339// String returns the string representation
7340func (s DirectoryConnectSettings) String() string {
7341	return awsutil.Prettify(s)
7342}
7343
7344// GoString returns the string representation
7345func (s DirectoryConnectSettings) GoString() string {
7346	return s.String()
7347}
7348
7349// Validate inspects the fields of the type to determine if they are valid.
7350func (s *DirectoryConnectSettings) Validate() error {
7351	invalidParams := request.ErrInvalidParams{Context: "DirectoryConnectSettings"}
7352	if s.CustomerDnsIps == nil {
7353		invalidParams.Add(request.NewErrParamRequired("CustomerDnsIps"))
7354	}
7355	if s.CustomerUserName == nil {
7356		invalidParams.Add(request.NewErrParamRequired("CustomerUserName"))
7357	}
7358	if s.CustomerUserName != nil && len(*s.CustomerUserName) < 1 {
7359		invalidParams.Add(request.NewErrParamMinLen("CustomerUserName", 1))
7360	}
7361	if s.SubnetIds == nil {
7362		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
7363	}
7364	if s.VpcId == nil {
7365		invalidParams.Add(request.NewErrParamRequired("VpcId"))
7366	}
7367
7368	if invalidParams.Len() > 0 {
7369		return invalidParams
7370	}
7371	return nil
7372}
7373
7374// SetCustomerDnsIps sets the CustomerDnsIps field's value.
7375func (s *DirectoryConnectSettings) SetCustomerDnsIps(v []*string) *DirectoryConnectSettings {
7376	s.CustomerDnsIps = v
7377	return s
7378}
7379
7380// SetCustomerUserName sets the CustomerUserName field's value.
7381func (s *DirectoryConnectSettings) SetCustomerUserName(v string) *DirectoryConnectSettings {
7382	s.CustomerUserName = &v
7383	return s
7384}
7385
7386// SetSubnetIds sets the SubnetIds field's value.
7387func (s *DirectoryConnectSettings) SetSubnetIds(v []*string) *DirectoryConnectSettings {
7388	s.SubnetIds = v
7389	return s
7390}
7391
7392// SetVpcId sets the VpcId field's value.
7393func (s *DirectoryConnectSettings) SetVpcId(v string) *DirectoryConnectSettings {
7394	s.VpcId = &v
7395	return s
7396}
7397
7398// Contains information about an AD Connector directory.
7399type DirectoryConnectSettingsDescription struct {
7400	_ struct{} `type:"structure"`
7401
7402	// A list of the Availability Zones that the directory is in.
7403	AvailabilityZones []*string `type:"list"`
7404
7405	// The IP addresses of the AD Connector servers.
7406	ConnectIps []*string `type:"list"`
7407
7408	// The user name of the service account in the on-premises directory.
7409	CustomerUserName *string `min:"1" type:"string"`
7410
7411	// The security group identifier for the AD Connector directory.
7412	SecurityGroupId *string `type:"string"`
7413
7414	// A list of subnet identifiers in the VPC that the AD connector is in.
7415	SubnetIds []*string `type:"list"`
7416
7417	// The identifier of the VPC that the AD Connector is in.
7418	VpcId *string `type:"string"`
7419}
7420
7421// String returns the string representation
7422func (s DirectoryConnectSettingsDescription) String() string {
7423	return awsutil.Prettify(s)
7424}
7425
7426// GoString returns the string representation
7427func (s DirectoryConnectSettingsDescription) GoString() string {
7428	return s.String()
7429}
7430
7431// SetAvailabilityZones sets the AvailabilityZones field's value.
7432func (s *DirectoryConnectSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryConnectSettingsDescription {
7433	s.AvailabilityZones = v
7434	return s
7435}
7436
7437// SetConnectIps sets the ConnectIps field's value.
7438func (s *DirectoryConnectSettingsDescription) SetConnectIps(v []*string) *DirectoryConnectSettingsDescription {
7439	s.ConnectIps = v
7440	return s
7441}
7442
7443// SetCustomerUserName sets the CustomerUserName field's value.
7444func (s *DirectoryConnectSettingsDescription) SetCustomerUserName(v string) *DirectoryConnectSettingsDescription {
7445	s.CustomerUserName = &v
7446	return s
7447}
7448
7449// SetSecurityGroupId sets the SecurityGroupId field's value.
7450func (s *DirectoryConnectSettingsDescription) SetSecurityGroupId(v string) *DirectoryConnectSettingsDescription {
7451	s.SecurityGroupId = &v
7452	return s
7453}
7454
7455// SetSubnetIds sets the SubnetIds field's value.
7456func (s *DirectoryConnectSettingsDescription) SetSubnetIds(v []*string) *DirectoryConnectSettingsDescription {
7457	s.SubnetIds = v
7458	return s
7459}
7460
7461// SetVpcId sets the VpcId field's value.
7462func (s *DirectoryConnectSettingsDescription) SetVpcId(v string) *DirectoryConnectSettingsDescription {
7463	s.VpcId = &v
7464	return s
7465}
7466
7467// Contains information about an AWS Directory Service directory.
7468type DirectoryDescription struct {
7469	_ struct{} `type:"structure"`
7470
7471	// The access URL for the directory, such as http://<alias>.awsapps.com. If
7472	// no alias has been created for the directory, <alias> is the directory identifier,
7473	// such as d-XXXXXXXXXX.
7474	AccessUrl *string `min:"1" type:"string"`
7475
7476	// The alias for the directory. If no alias has been created for the directory,
7477	// the alias is the directory identifier, such as d-XXXXXXXXXX.
7478	Alias *string `min:"1" type:"string"`
7479
7480	// A DirectoryConnectSettingsDescription object that contains additional information
7481	// about an AD Connector directory. This member is only present if the directory
7482	// is an AD Connector directory.
7483	ConnectSettings *DirectoryConnectSettingsDescription `type:"structure"`
7484
7485	// The textual description for the directory.
7486	Description *string `type:"string"`
7487
7488	// The desired number of domain controllers in the directory if the directory
7489	// is Microsoft AD.
7490	DesiredNumberOfDomainControllers *int64 `min:"2" type:"integer"`
7491
7492	// The directory identifier.
7493	DirectoryId *string `type:"string"`
7494
7495	// The IP addresses of the DNS servers for the directory. For a Simple AD or
7496	// Microsoft AD directory, these are the IP addresses of the Simple AD or Microsoft
7497	// AD directory servers. For an AD Connector directory, these are the IP addresses
7498	// of the DNS servers or domain controllers in the on-premises directory to
7499	// which the AD Connector is connected.
7500	DnsIpAddrs []*string `type:"list"`
7501
7502	// The edition associated with this directory.
7503	Edition *string `type:"string" enum:"DirectoryEdition"`
7504
7505	// Specifies when the directory was created.
7506	LaunchTime *time.Time `type:"timestamp"`
7507
7508	// The fully qualified name of the directory.
7509	Name *string `type:"string"`
7510
7511	// Describes the AWS Managed Microsoft AD directory in the directory owner account.
7512	OwnerDirectoryDescription *OwnerDirectoryDescription `type:"structure"`
7513
7514	// A RadiusSettings object that contains information about the RADIUS server
7515	// configured for this directory.
7516	RadiusSettings *RadiusSettings `type:"structure"`
7517
7518	// The status of the RADIUS MFA server connection.
7519	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
7520
7521	// The method used when sharing a directory to determine whether the directory
7522	// should be shared within your AWS organization (ORGANIZATIONS) or with any
7523	// AWS account by sending a shared directory request (HANDSHAKE).
7524	ShareMethod *string `type:"string" enum:"ShareMethod"`
7525
7526	// A directory share request that is sent by the directory owner to the directory
7527	// consumer. The request includes a typed message to help the directory consumer
7528	// administrator determine whether to approve or reject the share invitation.
7529	ShareNotes *string `type:"string" sensitive:"true"`
7530
7531	// Current directory status of the shared AWS Managed Microsoft AD directory.
7532	ShareStatus *string `type:"string" enum:"ShareStatus"`
7533
7534	// The short name of the directory.
7535	ShortName *string `type:"string"`
7536
7537	// The directory size.
7538	Size *string `type:"string" enum:"DirectorySize"`
7539
7540	// Indicates if single sign-on is enabled for the directory. For more information,
7541	// see EnableSso and DisableSso.
7542	SsoEnabled *bool `type:"boolean"`
7543
7544	// The current stage of the directory.
7545	Stage *string `type:"string" enum:"DirectoryStage"`
7546
7547	// The date and time that the stage was last updated.
7548	StageLastUpdatedDateTime *time.Time `type:"timestamp"`
7549
7550	// Additional information about the directory stage.
7551	StageReason *string `type:"string"`
7552
7553	// The directory size.
7554	Type *string `type:"string" enum:"DirectoryType"`
7555
7556	// A DirectoryVpcSettingsDescription object that contains additional information
7557	// about a directory. This member is only present if the directory is a Simple
7558	// AD or Managed AD directory.
7559	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
7560}
7561
7562// String returns the string representation
7563func (s DirectoryDescription) String() string {
7564	return awsutil.Prettify(s)
7565}
7566
7567// GoString returns the string representation
7568func (s DirectoryDescription) GoString() string {
7569	return s.String()
7570}
7571
7572// SetAccessUrl sets the AccessUrl field's value.
7573func (s *DirectoryDescription) SetAccessUrl(v string) *DirectoryDescription {
7574	s.AccessUrl = &v
7575	return s
7576}
7577
7578// SetAlias sets the Alias field's value.
7579func (s *DirectoryDescription) SetAlias(v string) *DirectoryDescription {
7580	s.Alias = &v
7581	return s
7582}
7583
7584// SetConnectSettings sets the ConnectSettings field's value.
7585func (s *DirectoryDescription) SetConnectSettings(v *DirectoryConnectSettingsDescription) *DirectoryDescription {
7586	s.ConnectSettings = v
7587	return s
7588}
7589
7590// SetDescription sets the Description field's value.
7591func (s *DirectoryDescription) SetDescription(v string) *DirectoryDescription {
7592	s.Description = &v
7593	return s
7594}
7595
7596// SetDesiredNumberOfDomainControllers sets the DesiredNumberOfDomainControllers field's value.
7597func (s *DirectoryDescription) SetDesiredNumberOfDomainControllers(v int64) *DirectoryDescription {
7598	s.DesiredNumberOfDomainControllers = &v
7599	return s
7600}
7601
7602// SetDirectoryId sets the DirectoryId field's value.
7603func (s *DirectoryDescription) SetDirectoryId(v string) *DirectoryDescription {
7604	s.DirectoryId = &v
7605	return s
7606}
7607
7608// SetDnsIpAddrs sets the DnsIpAddrs field's value.
7609func (s *DirectoryDescription) SetDnsIpAddrs(v []*string) *DirectoryDescription {
7610	s.DnsIpAddrs = v
7611	return s
7612}
7613
7614// SetEdition sets the Edition field's value.
7615func (s *DirectoryDescription) SetEdition(v string) *DirectoryDescription {
7616	s.Edition = &v
7617	return s
7618}
7619
7620// SetLaunchTime sets the LaunchTime field's value.
7621func (s *DirectoryDescription) SetLaunchTime(v time.Time) *DirectoryDescription {
7622	s.LaunchTime = &v
7623	return s
7624}
7625
7626// SetName sets the Name field's value.
7627func (s *DirectoryDescription) SetName(v string) *DirectoryDescription {
7628	s.Name = &v
7629	return s
7630}
7631
7632// SetOwnerDirectoryDescription sets the OwnerDirectoryDescription field's value.
7633func (s *DirectoryDescription) SetOwnerDirectoryDescription(v *OwnerDirectoryDescription) *DirectoryDescription {
7634	s.OwnerDirectoryDescription = v
7635	return s
7636}
7637
7638// SetRadiusSettings sets the RadiusSettings field's value.
7639func (s *DirectoryDescription) SetRadiusSettings(v *RadiusSettings) *DirectoryDescription {
7640	s.RadiusSettings = v
7641	return s
7642}
7643
7644// SetRadiusStatus sets the RadiusStatus field's value.
7645func (s *DirectoryDescription) SetRadiusStatus(v string) *DirectoryDescription {
7646	s.RadiusStatus = &v
7647	return s
7648}
7649
7650// SetShareMethod sets the ShareMethod field's value.
7651func (s *DirectoryDescription) SetShareMethod(v string) *DirectoryDescription {
7652	s.ShareMethod = &v
7653	return s
7654}
7655
7656// SetShareNotes sets the ShareNotes field's value.
7657func (s *DirectoryDescription) SetShareNotes(v string) *DirectoryDescription {
7658	s.ShareNotes = &v
7659	return s
7660}
7661
7662// SetShareStatus sets the ShareStatus field's value.
7663func (s *DirectoryDescription) SetShareStatus(v string) *DirectoryDescription {
7664	s.ShareStatus = &v
7665	return s
7666}
7667
7668// SetShortName sets the ShortName field's value.
7669func (s *DirectoryDescription) SetShortName(v string) *DirectoryDescription {
7670	s.ShortName = &v
7671	return s
7672}
7673
7674// SetSize sets the Size field's value.
7675func (s *DirectoryDescription) SetSize(v string) *DirectoryDescription {
7676	s.Size = &v
7677	return s
7678}
7679
7680// SetSsoEnabled sets the SsoEnabled field's value.
7681func (s *DirectoryDescription) SetSsoEnabled(v bool) *DirectoryDescription {
7682	s.SsoEnabled = &v
7683	return s
7684}
7685
7686// SetStage sets the Stage field's value.
7687func (s *DirectoryDescription) SetStage(v string) *DirectoryDescription {
7688	s.Stage = &v
7689	return s
7690}
7691
7692// SetStageLastUpdatedDateTime sets the StageLastUpdatedDateTime field's value.
7693func (s *DirectoryDescription) SetStageLastUpdatedDateTime(v time.Time) *DirectoryDescription {
7694	s.StageLastUpdatedDateTime = &v
7695	return s
7696}
7697
7698// SetStageReason sets the StageReason field's value.
7699func (s *DirectoryDescription) SetStageReason(v string) *DirectoryDescription {
7700	s.StageReason = &v
7701	return s
7702}
7703
7704// SetType sets the Type field's value.
7705func (s *DirectoryDescription) SetType(v string) *DirectoryDescription {
7706	s.Type = &v
7707	return s
7708}
7709
7710// SetVpcSettings sets the VpcSettings field's value.
7711func (s *DirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *DirectoryDescription {
7712	s.VpcSettings = v
7713	return s
7714}
7715
7716// Contains directory limit information for a region.
7717type DirectoryLimits struct {
7718	_ struct{} `type:"structure"`
7719
7720	// The current number of cloud directories in the region.
7721	CloudOnlyDirectoriesCurrentCount *int64 `type:"integer"`
7722
7723	// The maximum number of cloud directories allowed in the region.
7724	CloudOnlyDirectoriesLimit *int64 `type:"integer"`
7725
7726	// Indicates if the cloud directory limit has been reached.
7727	CloudOnlyDirectoriesLimitReached *bool `type:"boolean"`
7728
7729	// The current number of AWS Managed Microsoft AD directories in the region.
7730	CloudOnlyMicrosoftADCurrentCount *int64 `type:"integer"`
7731
7732	// The maximum number of AWS Managed Microsoft AD directories allowed in the
7733	// region.
7734	CloudOnlyMicrosoftADLimit *int64 `type:"integer"`
7735
7736	// Indicates if the AWS Managed Microsoft AD directory limit has been reached.
7737	CloudOnlyMicrosoftADLimitReached *bool `type:"boolean"`
7738
7739	// The current number of connected directories in the region.
7740	ConnectedDirectoriesCurrentCount *int64 `type:"integer"`
7741
7742	// The maximum number of connected directories allowed in the region.
7743	ConnectedDirectoriesLimit *int64 `type:"integer"`
7744
7745	// Indicates if the connected directory limit has been reached.
7746	ConnectedDirectoriesLimitReached *bool `type:"boolean"`
7747}
7748
7749// String returns the string representation
7750func (s DirectoryLimits) String() string {
7751	return awsutil.Prettify(s)
7752}
7753
7754// GoString returns the string representation
7755func (s DirectoryLimits) GoString() string {
7756	return s.String()
7757}
7758
7759// SetCloudOnlyDirectoriesCurrentCount sets the CloudOnlyDirectoriesCurrentCount field's value.
7760func (s *DirectoryLimits) SetCloudOnlyDirectoriesCurrentCount(v int64) *DirectoryLimits {
7761	s.CloudOnlyDirectoriesCurrentCount = &v
7762	return s
7763}
7764
7765// SetCloudOnlyDirectoriesLimit sets the CloudOnlyDirectoriesLimit field's value.
7766func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimit(v int64) *DirectoryLimits {
7767	s.CloudOnlyDirectoriesLimit = &v
7768	return s
7769}
7770
7771// SetCloudOnlyDirectoriesLimitReached sets the CloudOnlyDirectoriesLimitReached field's value.
7772func (s *DirectoryLimits) SetCloudOnlyDirectoriesLimitReached(v bool) *DirectoryLimits {
7773	s.CloudOnlyDirectoriesLimitReached = &v
7774	return s
7775}
7776
7777// SetCloudOnlyMicrosoftADCurrentCount sets the CloudOnlyMicrosoftADCurrentCount field's value.
7778func (s *DirectoryLimits) SetCloudOnlyMicrosoftADCurrentCount(v int64) *DirectoryLimits {
7779	s.CloudOnlyMicrosoftADCurrentCount = &v
7780	return s
7781}
7782
7783// SetCloudOnlyMicrosoftADLimit sets the CloudOnlyMicrosoftADLimit field's value.
7784func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimit(v int64) *DirectoryLimits {
7785	s.CloudOnlyMicrosoftADLimit = &v
7786	return s
7787}
7788
7789// SetCloudOnlyMicrosoftADLimitReached sets the CloudOnlyMicrosoftADLimitReached field's value.
7790func (s *DirectoryLimits) SetCloudOnlyMicrosoftADLimitReached(v bool) *DirectoryLimits {
7791	s.CloudOnlyMicrosoftADLimitReached = &v
7792	return s
7793}
7794
7795// SetConnectedDirectoriesCurrentCount sets the ConnectedDirectoriesCurrentCount field's value.
7796func (s *DirectoryLimits) SetConnectedDirectoriesCurrentCount(v int64) *DirectoryLimits {
7797	s.ConnectedDirectoriesCurrentCount = &v
7798	return s
7799}
7800
7801// SetConnectedDirectoriesLimit sets the ConnectedDirectoriesLimit field's value.
7802func (s *DirectoryLimits) SetConnectedDirectoriesLimit(v int64) *DirectoryLimits {
7803	s.ConnectedDirectoriesLimit = &v
7804	return s
7805}
7806
7807// SetConnectedDirectoriesLimitReached sets the ConnectedDirectoriesLimitReached field's value.
7808func (s *DirectoryLimits) SetConnectedDirectoriesLimitReached(v bool) *DirectoryLimits {
7809	s.ConnectedDirectoriesLimitReached = &v
7810	return s
7811}
7812
7813// Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation.
7814type DirectoryVpcSettings struct {
7815	_ struct{} `type:"structure"`
7816
7817	// The identifiers of the subnets for the directory servers. The two subnets
7818	// must be in different Availability Zones. AWS Directory Service creates a
7819	// directory server and a DNS server in each of these subnets.
7820	//
7821	// SubnetIds is a required field
7822	SubnetIds []*string `type:"list" required:"true"`
7823
7824	// The identifier of the VPC in which to create the directory.
7825	//
7826	// VpcId is a required field
7827	VpcId *string `type:"string" required:"true"`
7828}
7829
7830// String returns the string representation
7831func (s DirectoryVpcSettings) String() string {
7832	return awsutil.Prettify(s)
7833}
7834
7835// GoString returns the string representation
7836func (s DirectoryVpcSettings) GoString() string {
7837	return s.String()
7838}
7839
7840// Validate inspects the fields of the type to determine if they are valid.
7841func (s *DirectoryVpcSettings) Validate() error {
7842	invalidParams := request.ErrInvalidParams{Context: "DirectoryVpcSettings"}
7843	if s.SubnetIds == nil {
7844		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
7845	}
7846	if s.VpcId == nil {
7847		invalidParams.Add(request.NewErrParamRequired("VpcId"))
7848	}
7849
7850	if invalidParams.Len() > 0 {
7851		return invalidParams
7852	}
7853	return nil
7854}
7855
7856// SetSubnetIds sets the SubnetIds field's value.
7857func (s *DirectoryVpcSettings) SetSubnetIds(v []*string) *DirectoryVpcSettings {
7858	s.SubnetIds = v
7859	return s
7860}
7861
7862// SetVpcId sets the VpcId field's value.
7863func (s *DirectoryVpcSettings) SetVpcId(v string) *DirectoryVpcSettings {
7864	s.VpcId = &v
7865	return s
7866}
7867
7868// Contains information about the directory.
7869type DirectoryVpcSettingsDescription struct {
7870	_ struct{} `type:"structure"`
7871
7872	// The list of Availability Zones that the directory is in.
7873	AvailabilityZones []*string `type:"list"`
7874
7875	// The domain controller security group identifier for the directory.
7876	SecurityGroupId *string `type:"string"`
7877
7878	// The identifiers of the subnets for the directory servers.
7879	SubnetIds []*string `type:"list"`
7880
7881	// The identifier of the VPC that the directory is in.
7882	VpcId *string `type:"string"`
7883}
7884
7885// String returns the string representation
7886func (s DirectoryVpcSettingsDescription) String() string {
7887	return awsutil.Prettify(s)
7888}
7889
7890// GoString returns the string representation
7891func (s DirectoryVpcSettingsDescription) GoString() string {
7892	return s.String()
7893}
7894
7895// SetAvailabilityZones sets the AvailabilityZones field's value.
7896func (s *DirectoryVpcSettingsDescription) SetAvailabilityZones(v []*string) *DirectoryVpcSettingsDescription {
7897	s.AvailabilityZones = v
7898	return s
7899}
7900
7901// SetSecurityGroupId sets the SecurityGroupId field's value.
7902func (s *DirectoryVpcSettingsDescription) SetSecurityGroupId(v string) *DirectoryVpcSettingsDescription {
7903	s.SecurityGroupId = &v
7904	return s
7905}
7906
7907// SetSubnetIds sets the SubnetIds field's value.
7908func (s *DirectoryVpcSettingsDescription) SetSubnetIds(v []*string) *DirectoryVpcSettingsDescription {
7909	s.SubnetIds = v
7910	return s
7911}
7912
7913// SetVpcId sets the VpcId field's value.
7914func (s *DirectoryVpcSettingsDescription) SetVpcId(v string) *DirectoryVpcSettingsDescription {
7915	s.VpcId = &v
7916	return s
7917}
7918
7919// Contains the inputs for the DisableRadius operation.
7920type DisableRadiusInput struct {
7921	_ struct{} `type:"structure"`
7922
7923	// The identifier of the directory for which to disable MFA.
7924	//
7925	// DirectoryId is a required field
7926	DirectoryId *string `type:"string" required:"true"`
7927}
7928
7929// String returns the string representation
7930func (s DisableRadiusInput) String() string {
7931	return awsutil.Prettify(s)
7932}
7933
7934// GoString returns the string representation
7935func (s DisableRadiusInput) GoString() string {
7936	return s.String()
7937}
7938
7939// Validate inspects the fields of the type to determine if they are valid.
7940func (s *DisableRadiusInput) Validate() error {
7941	invalidParams := request.ErrInvalidParams{Context: "DisableRadiusInput"}
7942	if s.DirectoryId == nil {
7943		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7944	}
7945
7946	if invalidParams.Len() > 0 {
7947		return invalidParams
7948	}
7949	return nil
7950}
7951
7952// SetDirectoryId sets the DirectoryId field's value.
7953func (s *DisableRadiusInput) SetDirectoryId(v string) *DisableRadiusInput {
7954	s.DirectoryId = &v
7955	return s
7956}
7957
7958// Contains the results of the DisableRadius operation.
7959type DisableRadiusOutput struct {
7960	_ struct{} `type:"structure"`
7961}
7962
7963// String returns the string representation
7964func (s DisableRadiusOutput) String() string {
7965	return awsutil.Prettify(s)
7966}
7967
7968// GoString returns the string representation
7969func (s DisableRadiusOutput) GoString() string {
7970	return s.String()
7971}
7972
7973// Contains the inputs for the DisableSso operation.
7974type DisableSsoInput struct {
7975	_ struct{} `type:"structure"`
7976
7977	// The identifier of the directory for which to disable single-sign on.
7978	//
7979	// DirectoryId is a required field
7980	DirectoryId *string `type:"string" required:"true"`
7981
7982	// The password of an alternate account to use to disable single-sign on. This
7983	// is only used for AD Connector directories. For more information, see the
7984	// UserName parameter.
7985	Password *string `min:"1" type:"string" sensitive:"true"`
7986
7987	// The username of an alternate account to use to disable single-sign on. This
7988	// is only used for AD Connector directories. This account must have privileges
7989	// to remove a service principal name.
7990	//
7991	// If the AD Connector service account does not have privileges to remove a
7992	// service principal name, you can specify an alternate account with the UserName
7993	// and Password parameters. These credentials are only used to disable single
7994	// sign-on and are not stored by the service. The AD Connector service account
7995	// is not changed.
7996	UserName *string `min:"1" type:"string"`
7997}
7998
7999// String returns the string representation
8000func (s DisableSsoInput) String() string {
8001	return awsutil.Prettify(s)
8002}
8003
8004// GoString returns the string representation
8005func (s DisableSsoInput) GoString() string {
8006	return s.String()
8007}
8008
8009// Validate inspects the fields of the type to determine if they are valid.
8010func (s *DisableSsoInput) Validate() error {
8011	invalidParams := request.ErrInvalidParams{Context: "DisableSsoInput"}
8012	if s.DirectoryId == nil {
8013		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8014	}
8015	if s.Password != nil && len(*s.Password) < 1 {
8016		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
8017	}
8018	if s.UserName != nil && len(*s.UserName) < 1 {
8019		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
8020	}
8021
8022	if invalidParams.Len() > 0 {
8023		return invalidParams
8024	}
8025	return nil
8026}
8027
8028// SetDirectoryId sets the DirectoryId field's value.
8029func (s *DisableSsoInput) SetDirectoryId(v string) *DisableSsoInput {
8030	s.DirectoryId = &v
8031	return s
8032}
8033
8034// SetPassword sets the Password field's value.
8035func (s *DisableSsoInput) SetPassword(v string) *DisableSsoInput {
8036	s.Password = &v
8037	return s
8038}
8039
8040// SetUserName sets the UserName field's value.
8041func (s *DisableSsoInput) SetUserName(v string) *DisableSsoInput {
8042	s.UserName = &v
8043	return s
8044}
8045
8046// Contains the results of the DisableSso operation.
8047type DisableSsoOutput struct {
8048	_ struct{} `type:"structure"`
8049}
8050
8051// String returns the string representation
8052func (s DisableSsoOutput) String() string {
8053	return awsutil.Prettify(s)
8054}
8055
8056// GoString returns the string representation
8057func (s DisableSsoOutput) GoString() string {
8058	return s.String()
8059}
8060
8061// Contains information about the domain controllers for a specified directory.
8062type DomainController struct {
8063	_ struct{} `type:"structure"`
8064
8065	// The Availability Zone where the domain controller is located.
8066	AvailabilityZone *string `type:"string"`
8067
8068	// Identifier of the directory where the domain controller resides.
8069	DirectoryId *string `type:"string"`
8070
8071	// The IP address of the domain controller.
8072	DnsIpAddr *string `type:"string"`
8073
8074	// Identifies a specific domain controller in the directory.
8075	DomainControllerId *string `type:"string"`
8076
8077	// Specifies when the domain controller was created.
8078	LaunchTime *time.Time `type:"timestamp"`
8079
8080	// The status of the domain controller.
8081	Status *string `type:"string" enum:"DomainControllerStatus"`
8082
8083	// The date and time that the status was last updated.
8084	StatusLastUpdatedDateTime *time.Time `type:"timestamp"`
8085
8086	// A description of the domain controller state.
8087	StatusReason *string `type:"string"`
8088
8089	// Identifier of the subnet in the VPC that contains the domain controller.
8090	SubnetId *string `type:"string"`
8091
8092	// The identifier of the VPC that contains the domain controller.
8093	VpcId *string `type:"string"`
8094}
8095
8096// String returns the string representation
8097func (s DomainController) String() string {
8098	return awsutil.Prettify(s)
8099}
8100
8101// GoString returns the string representation
8102func (s DomainController) GoString() string {
8103	return s.String()
8104}
8105
8106// SetAvailabilityZone sets the AvailabilityZone field's value.
8107func (s *DomainController) SetAvailabilityZone(v string) *DomainController {
8108	s.AvailabilityZone = &v
8109	return s
8110}
8111
8112// SetDirectoryId sets the DirectoryId field's value.
8113func (s *DomainController) SetDirectoryId(v string) *DomainController {
8114	s.DirectoryId = &v
8115	return s
8116}
8117
8118// SetDnsIpAddr sets the DnsIpAddr field's value.
8119func (s *DomainController) SetDnsIpAddr(v string) *DomainController {
8120	s.DnsIpAddr = &v
8121	return s
8122}
8123
8124// SetDomainControllerId sets the DomainControllerId field's value.
8125func (s *DomainController) SetDomainControllerId(v string) *DomainController {
8126	s.DomainControllerId = &v
8127	return s
8128}
8129
8130// SetLaunchTime sets the LaunchTime field's value.
8131func (s *DomainController) SetLaunchTime(v time.Time) *DomainController {
8132	s.LaunchTime = &v
8133	return s
8134}
8135
8136// SetStatus sets the Status field's value.
8137func (s *DomainController) SetStatus(v string) *DomainController {
8138	s.Status = &v
8139	return s
8140}
8141
8142// SetStatusLastUpdatedDateTime sets the StatusLastUpdatedDateTime field's value.
8143func (s *DomainController) SetStatusLastUpdatedDateTime(v time.Time) *DomainController {
8144	s.StatusLastUpdatedDateTime = &v
8145	return s
8146}
8147
8148// SetStatusReason sets the StatusReason field's value.
8149func (s *DomainController) SetStatusReason(v string) *DomainController {
8150	s.StatusReason = &v
8151	return s
8152}
8153
8154// SetSubnetId sets the SubnetId field's value.
8155func (s *DomainController) SetSubnetId(v string) *DomainController {
8156	s.SubnetId = &v
8157	return s
8158}
8159
8160// SetVpcId sets the VpcId field's value.
8161func (s *DomainController) SetVpcId(v string) *DomainController {
8162	s.VpcId = &v
8163	return s
8164}
8165
8166// Contains the inputs for the EnableRadius operation.
8167type EnableRadiusInput struct {
8168	_ struct{} `type:"structure"`
8169
8170	// The identifier of the directory for which to enable MFA.
8171	//
8172	// DirectoryId is a required field
8173	DirectoryId *string `type:"string" required:"true"`
8174
8175	// A RadiusSettings object that contains information about the RADIUS server.
8176	//
8177	// RadiusSettings is a required field
8178	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
8179}
8180
8181// String returns the string representation
8182func (s EnableRadiusInput) String() string {
8183	return awsutil.Prettify(s)
8184}
8185
8186// GoString returns the string representation
8187func (s EnableRadiusInput) GoString() string {
8188	return s.String()
8189}
8190
8191// Validate inspects the fields of the type to determine if they are valid.
8192func (s *EnableRadiusInput) Validate() error {
8193	invalidParams := request.ErrInvalidParams{Context: "EnableRadiusInput"}
8194	if s.DirectoryId == nil {
8195		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8196	}
8197	if s.RadiusSettings == nil {
8198		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
8199	}
8200	if s.RadiusSettings != nil {
8201		if err := s.RadiusSettings.Validate(); err != nil {
8202			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
8203		}
8204	}
8205
8206	if invalidParams.Len() > 0 {
8207		return invalidParams
8208	}
8209	return nil
8210}
8211
8212// SetDirectoryId sets the DirectoryId field's value.
8213func (s *EnableRadiusInput) SetDirectoryId(v string) *EnableRadiusInput {
8214	s.DirectoryId = &v
8215	return s
8216}
8217
8218// SetRadiusSettings sets the RadiusSettings field's value.
8219func (s *EnableRadiusInput) SetRadiusSettings(v *RadiusSettings) *EnableRadiusInput {
8220	s.RadiusSettings = v
8221	return s
8222}
8223
8224// Contains the results of the EnableRadius operation.
8225type EnableRadiusOutput struct {
8226	_ struct{} `type:"structure"`
8227}
8228
8229// String returns the string representation
8230func (s EnableRadiusOutput) String() string {
8231	return awsutil.Prettify(s)
8232}
8233
8234// GoString returns the string representation
8235func (s EnableRadiusOutput) GoString() string {
8236	return s.String()
8237}
8238
8239// Contains the inputs for the EnableSso operation.
8240type EnableSsoInput struct {
8241	_ struct{} `type:"structure"`
8242
8243	// The identifier of the directory for which to enable single-sign on.
8244	//
8245	// DirectoryId is a required field
8246	DirectoryId *string `type:"string" required:"true"`
8247
8248	// The password of an alternate account to use to enable single-sign on. This
8249	// is only used for AD Connector directories. For more information, see the
8250	// UserName parameter.
8251	Password *string `min:"1" type:"string" sensitive:"true"`
8252
8253	// The username of an alternate account to use to enable single-sign on. This
8254	// is only used for AD Connector directories. This account must have privileges
8255	// to add a service principal name.
8256	//
8257	// If the AD Connector service account does not have privileges to add a service
8258	// principal name, you can specify an alternate account with the UserName and
8259	// Password parameters. These credentials are only used to enable single sign-on
8260	// and are not stored by the service. The AD Connector service account is not
8261	// changed.
8262	UserName *string `min:"1" type:"string"`
8263}
8264
8265// String returns the string representation
8266func (s EnableSsoInput) String() string {
8267	return awsutil.Prettify(s)
8268}
8269
8270// GoString returns the string representation
8271func (s EnableSsoInput) GoString() string {
8272	return s.String()
8273}
8274
8275// Validate inspects the fields of the type to determine if they are valid.
8276func (s *EnableSsoInput) Validate() error {
8277	invalidParams := request.ErrInvalidParams{Context: "EnableSsoInput"}
8278	if s.DirectoryId == nil {
8279		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8280	}
8281	if s.Password != nil && len(*s.Password) < 1 {
8282		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
8283	}
8284	if s.UserName != nil && len(*s.UserName) < 1 {
8285		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
8286	}
8287
8288	if invalidParams.Len() > 0 {
8289		return invalidParams
8290	}
8291	return nil
8292}
8293
8294// SetDirectoryId sets the DirectoryId field's value.
8295func (s *EnableSsoInput) SetDirectoryId(v string) *EnableSsoInput {
8296	s.DirectoryId = &v
8297	return s
8298}
8299
8300// SetPassword sets the Password field's value.
8301func (s *EnableSsoInput) SetPassword(v string) *EnableSsoInput {
8302	s.Password = &v
8303	return s
8304}
8305
8306// SetUserName sets the UserName field's value.
8307func (s *EnableSsoInput) SetUserName(v string) *EnableSsoInput {
8308	s.UserName = &v
8309	return s
8310}
8311
8312// Contains the results of the EnableSso operation.
8313type EnableSsoOutput struct {
8314	_ struct{} `type:"structure"`
8315}
8316
8317// String returns the string representation
8318func (s EnableSsoOutput) String() string {
8319	return awsutil.Prettify(s)
8320}
8321
8322// GoString returns the string representation
8323func (s EnableSsoOutput) GoString() string {
8324	return s.String()
8325}
8326
8327// Information about SNS topic and AWS Directory Service directory associations.
8328type EventTopic struct {
8329	_ struct{} `type:"structure"`
8330
8331	// The date and time of when you associated your directory with the SNS topic.
8332	CreatedDateTime *time.Time `type:"timestamp"`
8333
8334	// The Directory ID of an AWS Directory Service directory that will publish
8335	// status messages to an SNS topic.
8336	DirectoryId *string `type:"string"`
8337
8338	// The topic registration status.
8339	Status *string `type:"string" enum:"TopicStatus"`
8340
8341	// The SNS topic ARN (Amazon Resource Name).
8342	TopicArn *string `type:"string"`
8343
8344	// The name of an AWS SNS topic the receives status messages from the directory.
8345	TopicName *string `min:"1" type:"string"`
8346}
8347
8348// String returns the string representation
8349func (s EventTopic) String() string {
8350	return awsutil.Prettify(s)
8351}
8352
8353// GoString returns the string representation
8354func (s EventTopic) GoString() string {
8355	return s.String()
8356}
8357
8358// SetCreatedDateTime sets the CreatedDateTime field's value.
8359func (s *EventTopic) SetCreatedDateTime(v time.Time) *EventTopic {
8360	s.CreatedDateTime = &v
8361	return s
8362}
8363
8364// SetDirectoryId sets the DirectoryId field's value.
8365func (s *EventTopic) SetDirectoryId(v string) *EventTopic {
8366	s.DirectoryId = &v
8367	return s
8368}
8369
8370// SetStatus sets the Status field's value.
8371func (s *EventTopic) SetStatus(v string) *EventTopic {
8372	s.Status = &v
8373	return s
8374}
8375
8376// SetTopicArn sets the TopicArn field's value.
8377func (s *EventTopic) SetTopicArn(v string) *EventTopic {
8378	s.TopicArn = &v
8379	return s
8380}
8381
8382// SetTopicName sets the TopicName field's value.
8383func (s *EventTopic) SetTopicName(v string) *EventTopic {
8384	s.TopicName = &v
8385	return s
8386}
8387
8388// Contains the inputs for the GetDirectoryLimits operation.
8389type GetDirectoryLimitsInput struct {
8390	_ struct{} `type:"structure"`
8391}
8392
8393// String returns the string representation
8394func (s GetDirectoryLimitsInput) String() string {
8395	return awsutil.Prettify(s)
8396}
8397
8398// GoString returns the string representation
8399func (s GetDirectoryLimitsInput) GoString() string {
8400	return s.String()
8401}
8402
8403// Contains the results of the GetDirectoryLimits operation.
8404type GetDirectoryLimitsOutput struct {
8405	_ struct{} `type:"structure"`
8406
8407	// A DirectoryLimits object that contains the directory limits for the current
8408	// region.
8409	DirectoryLimits *DirectoryLimits `type:"structure"`
8410}
8411
8412// String returns the string representation
8413func (s GetDirectoryLimitsOutput) String() string {
8414	return awsutil.Prettify(s)
8415}
8416
8417// GoString returns the string representation
8418func (s GetDirectoryLimitsOutput) GoString() string {
8419	return s.String()
8420}
8421
8422// SetDirectoryLimits sets the DirectoryLimits field's value.
8423func (s *GetDirectoryLimitsOutput) SetDirectoryLimits(v *DirectoryLimits) *GetDirectoryLimitsOutput {
8424	s.DirectoryLimits = v
8425	return s
8426}
8427
8428// Contains the inputs for the GetSnapshotLimits operation.
8429type GetSnapshotLimitsInput struct {
8430	_ struct{} `type:"structure"`
8431
8432	// Contains the identifier of the directory to obtain the limits for.
8433	//
8434	// DirectoryId is a required field
8435	DirectoryId *string `type:"string" required:"true"`
8436}
8437
8438// String returns the string representation
8439func (s GetSnapshotLimitsInput) String() string {
8440	return awsutil.Prettify(s)
8441}
8442
8443// GoString returns the string representation
8444func (s GetSnapshotLimitsInput) GoString() string {
8445	return s.String()
8446}
8447
8448// Validate inspects the fields of the type to determine if they are valid.
8449func (s *GetSnapshotLimitsInput) Validate() error {
8450	invalidParams := request.ErrInvalidParams{Context: "GetSnapshotLimitsInput"}
8451	if s.DirectoryId == nil {
8452		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8453	}
8454
8455	if invalidParams.Len() > 0 {
8456		return invalidParams
8457	}
8458	return nil
8459}
8460
8461// SetDirectoryId sets the DirectoryId field's value.
8462func (s *GetSnapshotLimitsInput) SetDirectoryId(v string) *GetSnapshotLimitsInput {
8463	s.DirectoryId = &v
8464	return s
8465}
8466
8467// Contains the results of the GetSnapshotLimits operation.
8468type GetSnapshotLimitsOutput struct {
8469	_ struct{} `type:"structure"`
8470
8471	// A SnapshotLimits object that contains the manual snapshot limits for the
8472	// specified directory.
8473	SnapshotLimits *SnapshotLimits `type:"structure"`
8474}
8475
8476// String returns the string representation
8477func (s GetSnapshotLimitsOutput) String() string {
8478	return awsutil.Prettify(s)
8479}
8480
8481// GoString returns the string representation
8482func (s GetSnapshotLimitsOutput) GoString() string {
8483	return s.String()
8484}
8485
8486// SetSnapshotLimits sets the SnapshotLimits field's value.
8487func (s *GetSnapshotLimitsOutput) SetSnapshotLimits(v *SnapshotLimits) *GetSnapshotLimitsOutput {
8488	s.SnapshotLimits = v
8489	return s
8490}
8491
8492// IP address block. This is often the address block of the DNS server used
8493// for your on-premises domain.
8494type IpRoute struct {
8495	_ struct{} `type:"structure"`
8496
8497	// IP address block using CIDR format, for example 10.0.0.0/24. This is often
8498	// the address block of the DNS server used for your on-premises domain. For
8499	// a single IP address use a CIDR address block with /32. For example 10.0.0.0/32.
8500	CidrIp *string `type:"string"`
8501
8502	// Description of the address block.
8503	Description *string `type:"string"`
8504}
8505
8506// String returns the string representation
8507func (s IpRoute) String() string {
8508	return awsutil.Prettify(s)
8509}
8510
8511// GoString returns the string representation
8512func (s IpRoute) GoString() string {
8513	return s.String()
8514}
8515
8516// SetCidrIp sets the CidrIp field's value.
8517func (s *IpRoute) SetCidrIp(v string) *IpRoute {
8518	s.CidrIp = &v
8519	return s
8520}
8521
8522// SetDescription sets the Description field's value.
8523func (s *IpRoute) SetDescription(v string) *IpRoute {
8524	s.Description = &v
8525	return s
8526}
8527
8528// Information about one or more IP address blocks.
8529type IpRouteInfo struct {
8530	_ struct{} `type:"structure"`
8531
8532	// The date and time the address block was added to the directory.
8533	AddedDateTime *time.Time `type:"timestamp"`
8534
8535	// IP address block in the IpRoute.
8536	CidrIp *string `type:"string"`
8537
8538	// Description of the IpRouteInfo.
8539	Description *string `type:"string"`
8540
8541	// Identifier (ID) of the directory associated with the IP addresses.
8542	DirectoryId *string `type:"string"`
8543
8544	// The status of the IP address block.
8545	IpRouteStatusMsg *string `type:"string" enum:"IpRouteStatusMsg"`
8546
8547	// The reason for the IpRouteStatusMsg.
8548	IpRouteStatusReason *string `type:"string"`
8549}
8550
8551// String returns the string representation
8552func (s IpRouteInfo) String() string {
8553	return awsutil.Prettify(s)
8554}
8555
8556// GoString returns the string representation
8557func (s IpRouteInfo) GoString() string {
8558	return s.String()
8559}
8560
8561// SetAddedDateTime sets the AddedDateTime field's value.
8562func (s *IpRouteInfo) SetAddedDateTime(v time.Time) *IpRouteInfo {
8563	s.AddedDateTime = &v
8564	return s
8565}
8566
8567// SetCidrIp sets the CidrIp field's value.
8568func (s *IpRouteInfo) SetCidrIp(v string) *IpRouteInfo {
8569	s.CidrIp = &v
8570	return s
8571}
8572
8573// SetDescription sets the Description field's value.
8574func (s *IpRouteInfo) SetDescription(v string) *IpRouteInfo {
8575	s.Description = &v
8576	return s
8577}
8578
8579// SetDirectoryId sets the DirectoryId field's value.
8580func (s *IpRouteInfo) SetDirectoryId(v string) *IpRouteInfo {
8581	s.DirectoryId = &v
8582	return s
8583}
8584
8585// SetIpRouteStatusMsg sets the IpRouteStatusMsg field's value.
8586func (s *IpRouteInfo) SetIpRouteStatusMsg(v string) *IpRouteInfo {
8587	s.IpRouteStatusMsg = &v
8588	return s
8589}
8590
8591// SetIpRouteStatusReason sets the IpRouteStatusReason field's value.
8592func (s *IpRouteInfo) SetIpRouteStatusReason(v string) *IpRouteInfo {
8593	s.IpRouteStatusReason = &v
8594	return s
8595}
8596
8597type ListIpRoutesInput struct {
8598	_ struct{} `type:"structure"`
8599
8600	// Identifier (ID) of the directory for which you want to retrieve the IP addresses.
8601	//
8602	// DirectoryId is a required field
8603	DirectoryId *string `type:"string" required:"true"`
8604
8605	// Maximum number of items to return. If this value is zero, the maximum number
8606	// of items is specified by the limitations of the operation.
8607	Limit *int64 `type:"integer"`
8608
8609	// The ListIpRoutes.NextToken value from a previous call to ListIpRoutes. Pass
8610	// null if this is the first call.
8611	NextToken *string `type:"string"`
8612}
8613
8614// String returns the string representation
8615func (s ListIpRoutesInput) String() string {
8616	return awsutil.Prettify(s)
8617}
8618
8619// GoString returns the string representation
8620func (s ListIpRoutesInput) GoString() string {
8621	return s.String()
8622}
8623
8624// Validate inspects the fields of the type to determine if they are valid.
8625func (s *ListIpRoutesInput) Validate() error {
8626	invalidParams := request.ErrInvalidParams{Context: "ListIpRoutesInput"}
8627	if s.DirectoryId == nil {
8628		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8629	}
8630
8631	if invalidParams.Len() > 0 {
8632		return invalidParams
8633	}
8634	return nil
8635}
8636
8637// SetDirectoryId sets the DirectoryId field's value.
8638func (s *ListIpRoutesInput) SetDirectoryId(v string) *ListIpRoutesInput {
8639	s.DirectoryId = &v
8640	return s
8641}
8642
8643// SetLimit sets the Limit field's value.
8644func (s *ListIpRoutesInput) SetLimit(v int64) *ListIpRoutesInput {
8645	s.Limit = &v
8646	return s
8647}
8648
8649// SetNextToken sets the NextToken field's value.
8650func (s *ListIpRoutesInput) SetNextToken(v string) *ListIpRoutesInput {
8651	s.NextToken = &v
8652	return s
8653}
8654
8655type ListIpRoutesOutput struct {
8656	_ struct{} `type:"structure"`
8657
8658	// A list of IpRoutes.
8659	IpRoutesInfo []*IpRouteInfo `type:"list"`
8660
8661	// If not null, more results are available. Pass this value for the NextToken
8662	// parameter in a subsequent call to ListIpRoutes to retrieve the next set of
8663	// items.
8664	NextToken *string `type:"string"`
8665}
8666
8667// String returns the string representation
8668func (s ListIpRoutesOutput) String() string {
8669	return awsutil.Prettify(s)
8670}
8671
8672// GoString returns the string representation
8673func (s ListIpRoutesOutput) GoString() string {
8674	return s.String()
8675}
8676
8677// SetIpRoutesInfo sets the IpRoutesInfo field's value.
8678func (s *ListIpRoutesOutput) SetIpRoutesInfo(v []*IpRouteInfo) *ListIpRoutesOutput {
8679	s.IpRoutesInfo = v
8680	return s
8681}
8682
8683// SetNextToken sets the NextToken field's value.
8684func (s *ListIpRoutesOutput) SetNextToken(v string) *ListIpRoutesOutput {
8685	s.NextToken = &v
8686	return s
8687}
8688
8689type ListLogSubscriptionsInput struct {
8690	_ struct{} `type:"structure"`
8691
8692	// If a DirectoryID is provided, lists only the log subscription associated
8693	// with that directory. If no DirectoryId is provided, lists all log subscriptions
8694	// associated with your AWS account. If there are no log subscriptions for the
8695	// AWS account or the directory, an empty list will be returned.
8696	DirectoryId *string `type:"string"`
8697
8698	// The maximum number of items returned.
8699	Limit *int64 `type:"integer"`
8700
8701	// The token for the next set of items to return.
8702	NextToken *string `type:"string"`
8703}
8704
8705// String returns the string representation
8706func (s ListLogSubscriptionsInput) String() string {
8707	return awsutil.Prettify(s)
8708}
8709
8710// GoString returns the string representation
8711func (s ListLogSubscriptionsInput) GoString() string {
8712	return s.String()
8713}
8714
8715// SetDirectoryId sets the DirectoryId field's value.
8716func (s *ListLogSubscriptionsInput) SetDirectoryId(v string) *ListLogSubscriptionsInput {
8717	s.DirectoryId = &v
8718	return s
8719}
8720
8721// SetLimit sets the Limit field's value.
8722func (s *ListLogSubscriptionsInput) SetLimit(v int64) *ListLogSubscriptionsInput {
8723	s.Limit = &v
8724	return s
8725}
8726
8727// SetNextToken sets the NextToken field's value.
8728func (s *ListLogSubscriptionsInput) SetNextToken(v string) *ListLogSubscriptionsInput {
8729	s.NextToken = &v
8730	return s
8731}
8732
8733type ListLogSubscriptionsOutput struct {
8734	_ struct{} `type:"structure"`
8735
8736	// A list of active LogSubscription objects for calling the AWS account.
8737	LogSubscriptions []*LogSubscription `type:"list"`
8738
8739	// The token for the next set of items to return.
8740	NextToken *string `type:"string"`
8741}
8742
8743// String returns the string representation
8744func (s ListLogSubscriptionsOutput) String() string {
8745	return awsutil.Prettify(s)
8746}
8747
8748// GoString returns the string representation
8749func (s ListLogSubscriptionsOutput) GoString() string {
8750	return s.String()
8751}
8752
8753// SetLogSubscriptions sets the LogSubscriptions field's value.
8754func (s *ListLogSubscriptionsOutput) SetLogSubscriptions(v []*LogSubscription) *ListLogSubscriptionsOutput {
8755	s.LogSubscriptions = v
8756	return s
8757}
8758
8759// SetNextToken sets the NextToken field's value.
8760func (s *ListLogSubscriptionsOutput) SetNextToken(v string) *ListLogSubscriptionsOutput {
8761	s.NextToken = &v
8762	return s
8763}
8764
8765type ListSchemaExtensionsInput struct {
8766	_ struct{} `type:"structure"`
8767
8768	// The identifier of the directory from which to retrieve the schema extension
8769	// information.
8770	//
8771	// DirectoryId is a required field
8772	DirectoryId *string `type:"string" required:"true"`
8773
8774	// The maximum number of items to return.
8775	Limit *int64 `type:"integer"`
8776
8777	// The ListSchemaExtensions.NextToken value from a previous call to ListSchemaExtensions.
8778	// Pass null if this is the first call.
8779	NextToken *string `type:"string"`
8780}
8781
8782// String returns the string representation
8783func (s ListSchemaExtensionsInput) String() string {
8784	return awsutil.Prettify(s)
8785}
8786
8787// GoString returns the string representation
8788func (s ListSchemaExtensionsInput) GoString() string {
8789	return s.String()
8790}
8791
8792// Validate inspects the fields of the type to determine if they are valid.
8793func (s *ListSchemaExtensionsInput) Validate() error {
8794	invalidParams := request.ErrInvalidParams{Context: "ListSchemaExtensionsInput"}
8795	if s.DirectoryId == nil {
8796		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8797	}
8798
8799	if invalidParams.Len() > 0 {
8800		return invalidParams
8801	}
8802	return nil
8803}
8804
8805// SetDirectoryId sets the DirectoryId field's value.
8806func (s *ListSchemaExtensionsInput) SetDirectoryId(v string) *ListSchemaExtensionsInput {
8807	s.DirectoryId = &v
8808	return s
8809}
8810
8811// SetLimit sets the Limit field's value.
8812func (s *ListSchemaExtensionsInput) SetLimit(v int64) *ListSchemaExtensionsInput {
8813	s.Limit = &v
8814	return s
8815}
8816
8817// SetNextToken sets the NextToken field's value.
8818func (s *ListSchemaExtensionsInput) SetNextToken(v string) *ListSchemaExtensionsInput {
8819	s.NextToken = &v
8820	return s
8821}
8822
8823type ListSchemaExtensionsOutput struct {
8824	_ struct{} `type:"structure"`
8825
8826	// If not null, more results are available. Pass this value for the NextToken
8827	// parameter in a subsequent call to ListSchemaExtensions to retrieve the next
8828	// set of items.
8829	NextToken *string `type:"string"`
8830
8831	// Information about the schema extensions applied to the directory.
8832	SchemaExtensionsInfo []*SchemaExtensionInfo `type:"list"`
8833}
8834
8835// String returns the string representation
8836func (s ListSchemaExtensionsOutput) String() string {
8837	return awsutil.Prettify(s)
8838}
8839
8840// GoString returns the string representation
8841func (s ListSchemaExtensionsOutput) GoString() string {
8842	return s.String()
8843}
8844
8845// SetNextToken sets the NextToken field's value.
8846func (s *ListSchemaExtensionsOutput) SetNextToken(v string) *ListSchemaExtensionsOutput {
8847	s.NextToken = &v
8848	return s
8849}
8850
8851// SetSchemaExtensionsInfo sets the SchemaExtensionsInfo field's value.
8852func (s *ListSchemaExtensionsOutput) SetSchemaExtensionsInfo(v []*SchemaExtensionInfo) *ListSchemaExtensionsOutput {
8853	s.SchemaExtensionsInfo = v
8854	return s
8855}
8856
8857type ListTagsForResourceInput struct {
8858	_ struct{} `type:"structure"`
8859
8860	// Reserved for future use.
8861	Limit *int64 `type:"integer"`
8862
8863	// Reserved for future use.
8864	NextToken *string `type:"string"`
8865
8866	// Identifier (ID) of the directory for which you want to retrieve tags.
8867	//
8868	// ResourceId is a required field
8869	ResourceId *string `type:"string" required:"true"`
8870}
8871
8872// String returns the string representation
8873func (s ListTagsForResourceInput) String() string {
8874	return awsutil.Prettify(s)
8875}
8876
8877// GoString returns the string representation
8878func (s ListTagsForResourceInput) GoString() string {
8879	return s.String()
8880}
8881
8882// Validate inspects the fields of the type to determine if they are valid.
8883func (s *ListTagsForResourceInput) Validate() error {
8884	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
8885	if s.ResourceId == nil {
8886		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8887	}
8888
8889	if invalidParams.Len() > 0 {
8890		return invalidParams
8891	}
8892	return nil
8893}
8894
8895// SetLimit sets the Limit field's value.
8896func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
8897	s.Limit = &v
8898	return s
8899}
8900
8901// SetNextToken sets the NextToken field's value.
8902func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
8903	s.NextToken = &v
8904	return s
8905}
8906
8907// SetResourceId sets the ResourceId field's value.
8908func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceInput {
8909	s.ResourceId = &v
8910	return s
8911}
8912
8913type ListTagsForResourceOutput struct {
8914	_ struct{} `type:"structure"`
8915
8916	// Reserved for future use.
8917	NextToken *string `type:"string"`
8918
8919	// List of tags returned by the ListTagsForResource operation.
8920	Tags []*Tag `type:"list"`
8921}
8922
8923// String returns the string representation
8924func (s ListTagsForResourceOutput) String() string {
8925	return awsutil.Prettify(s)
8926}
8927
8928// GoString returns the string representation
8929func (s ListTagsForResourceOutput) GoString() string {
8930	return s.String()
8931}
8932
8933// SetNextToken sets the NextToken field's value.
8934func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
8935	s.NextToken = &v
8936	return s
8937}
8938
8939// SetTags sets the Tags field's value.
8940func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
8941	s.Tags = v
8942	return s
8943}
8944
8945// Represents a log subscription, which tracks real-time data from a chosen
8946// log group to a specified destination.
8947type LogSubscription struct {
8948	_ struct{} `type:"structure"`
8949
8950	// Identifier (ID) of the directory that you want to associate with the log
8951	// subscription.
8952	DirectoryId *string `type:"string"`
8953
8954	// The name of the log group.
8955	LogGroupName *string `min:"1" type:"string"`
8956
8957	// The date and time that the log subscription was created.
8958	SubscriptionCreatedDateTime *time.Time `type:"timestamp"`
8959}
8960
8961// String returns the string representation
8962func (s LogSubscription) String() string {
8963	return awsutil.Prettify(s)
8964}
8965
8966// GoString returns the string representation
8967func (s LogSubscription) GoString() string {
8968	return s.String()
8969}
8970
8971// SetDirectoryId sets the DirectoryId field's value.
8972func (s *LogSubscription) SetDirectoryId(v string) *LogSubscription {
8973	s.DirectoryId = &v
8974	return s
8975}
8976
8977// SetLogGroupName sets the LogGroupName field's value.
8978func (s *LogSubscription) SetLogGroupName(v string) *LogSubscription {
8979	s.LogGroupName = &v
8980	return s
8981}
8982
8983// SetSubscriptionCreatedDateTime sets the SubscriptionCreatedDateTime field's value.
8984func (s *LogSubscription) SetSubscriptionCreatedDateTime(v time.Time) *LogSubscription {
8985	s.SubscriptionCreatedDateTime = &v
8986	return s
8987}
8988
8989// Describes the directory owner account details that have been shared to the
8990// directory consumer account.
8991type OwnerDirectoryDescription struct {
8992	_ struct{} `type:"structure"`
8993
8994	// Identifier of the directory owner account.
8995	AccountId *string `type:"string"`
8996
8997	// Identifier of the AWS Managed Microsoft AD directory in the directory owner
8998	// account.
8999	DirectoryId *string `type:"string"`
9000
9001	// IP address of the directory’s domain controllers.
9002	DnsIpAddrs []*string `type:"list"`
9003
9004	// A RadiusSettings object that contains information about the RADIUS server.
9005	RadiusSettings *RadiusSettings `type:"structure"`
9006
9007	// Information about the status of the RADIUS server.
9008	RadiusStatus *string `type:"string" enum:"RadiusStatus"`
9009
9010	// Information about the VPC settings for the directory.
9011	VpcSettings *DirectoryVpcSettingsDescription `type:"structure"`
9012}
9013
9014// String returns the string representation
9015func (s OwnerDirectoryDescription) String() string {
9016	return awsutil.Prettify(s)
9017}
9018
9019// GoString returns the string representation
9020func (s OwnerDirectoryDescription) GoString() string {
9021	return s.String()
9022}
9023
9024// SetAccountId sets the AccountId field's value.
9025func (s *OwnerDirectoryDescription) SetAccountId(v string) *OwnerDirectoryDescription {
9026	s.AccountId = &v
9027	return s
9028}
9029
9030// SetDirectoryId sets the DirectoryId field's value.
9031func (s *OwnerDirectoryDescription) SetDirectoryId(v string) *OwnerDirectoryDescription {
9032	s.DirectoryId = &v
9033	return s
9034}
9035
9036// SetDnsIpAddrs sets the DnsIpAddrs field's value.
9037func (s *OwnerDirectoryDescription) SetDnsIpAddrs(v []*string) *OwnerDirectoryDescription {
9038	s.DnsIpAddrs = v
9039	return s
9040}
9041
9042// SetRadiusSettings sets the RadiusSettings field's value.
9043func (s *OwnerDirectoryDescription) SetRadiusSettings(v *RadiusSettings) *OwnerDirectoryDescription {
9044	s.RadiusSettings = v
9045	return s
9046}
9047
9048// SetRadiusStatus sets the RadiusStatus field's value.
9049func (s *OwnerDirectoryDescription) SetRadiusStatus(v string) *OwnerDirectoryDescription {
9050	s.RadiusStatus = &v
9051	return s
9052}
9053
9054// SetVpcSettings sets the VpcSettings field's value.
9055func (s *OwnerDirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription) *OwnerDirectoryDescription {
9056	s.VpcSettings = v
9057	return s
9058}
9059
9060// Contains information about a Remote Authentication Dial In User Service (RADIUS)
9061// server.
9062type RadiusSettings struct {
9063	_ struct{} `type:"structure"`
9064
9065	// The protocol specified for your RADIUS endpoints.
9066	AuthenticationProtocol *string `type:"string" enum:"RadiusAuthenticationProtocol"`
9067
9068	// Not currently used.
9069	DisplayLabel *string `min:"1" type:"string"`
9070
9071	// The port that your RADIUS server is using for communications. Your on-premises
9072	// network must allow inbound traffic over this port from the AWS Directory
9073	// Service servers.
9074	RadiusPort *int64 `min:"1025" type:"integer"`
9075
9076	// The maximum number of times that communication with the RADIUS server is
9077	// attempted.
9078	RadiusRetries *int64 `type:"integer"`
9079
9080	// An array of strings that contains the IP addresses of the RADIUS server endpoints,
9081	// or the IP addresses of your RADIUS server load balancer.
9082	RadiusServers []*string `type:"list"`
9083
9084	// The amount of time, in seconds, to wait for the RADIUS server to respond.
9085	RadiusTimeout *int64 `min:"1" type:"integer"`
9086
9087	// Required for enabling RADIUS on the directory.
9088	SharedSecret *string `min:"8" type:"string" sensitive:"true"`
9089
9090	// Not currently used.
9091	UseSameUsername *bool `type:"boolean"`
9092}
9093
9094// String returns the string representation
9095func (s RadiusSettings) String() string {
9096	return awsutil.Prettify(s)
9097}
9098
9099// GoString returns the string representation
9100func (s RadiusSettings) GoString() string {
9101	return s.String()
9102}
9103
9104// Validate inspects the fields of the type to determine if they are valid.
9105func (s *RadiusSettings) Validate() error {
9106	invalidParams := request.ErrInvalidParams{Context: "RadiusSettings"}
9107	if s.DisplayLabel != nil && len(*s.DisplayLabel) < 1 {
9108		invalidParams.Add(request.NewErrParamMinLen("DisplayLabel", 1))
9109	}
9110	if s.RadiusPort != nil && *s.RadiusPort < 1025 {
9111		invalidParams.Add(request.NewErrParamMinValue("RadiusPort", 1025))
9112	}
9113	if s.RadiusTimeout != nil && *s.RadiusTimeout < 1 {
9114		invalidParams.Add(request.NewErrParamMinValue("RadiusTimeout", 1))
9115	}
9116	if s.SharedSecret != nil && len(*s.SharedSecret) < 8 {
9117		invalidParams.Add(request.NewErrParamMinLen("SharedSecret", 8))
9118	}
9119
9120	if invalidParams.Len() > 0 {
9121		return invalidParams
9122	}
9123	return nil
9124}
9125
9126// SetAuthenticationProtocol sets the AuthenticationProtocol field's value.
9127func (s *RadiusSettings) SetAuthenticationProtocol(v string) *RadiusSettings {
9128	s.AuthenticationProtocol = &v
9129	return s
9130}
9131
9132// SetDisplayLabel sets the DisplayLabel field's value.
9133func (s *RadiusSettings) SetDisplayLabel(v string) *RadiusSettings {
9134	s.DisplayLabel = &v
9135	return s
9136}
9137
9138// SetRadiusPort sets the RadiusPort field's value.
9139func (s *RadiusSettings) SetRadiusPort(v int64) *RadiusSettings {
9140	s.RadiusPort = &v
9141	return s
9142}
9143
9144// SetRadiusRetries sets the RadiusRetries field's value.
9145func (s *RadiusSettings) SetRadiusRetries(v int64) *RadiusSettings {
9146	s.RadiusRetries = &v
9147	return s
9148}
9149
9150// SetRadiusServers sets the RadiusServers field's value.
9151func (s *RadiusSettings) SetRadiusServers(v []*string) *RadiusSettings {
9152	s.RadiusServers = v
9153	return s
9154}
9155
9156// SetRadiusTimeout sets the RadiusTimeout field's value.
9157func (s *RadiusSettings) SetRadiusTimeout(v int64) *RadiusSettings {
9158	s.RadiusTimeout = &v
9159	return s
9160}
9161
9162// SetSharedSecret sets the SharedSecret field's value.
9163func (s *RadiusSettings) SetSharedSecret(v string) *RadiusSettings {
9164	s.SharedSecret = &v
9165	return s
9166}
9167
9168// SetUseSameUsername sets the UseSameUsername field's value.
9169func (s *RadiusSettings) SetUseSameUsername(v bool) *RadiusSettings {
9170	s.UseSameUsername = &v
9171	return s
9172}
9173
9174// Registers a new event topic.
9175type RegisterEventTopicInput struct {
9176	_ struct{} `type:"structure"`
9177
9178	// The Directory ID that will publish status messages to the SNS topic.
9179	//
9180	// DirectoryId is a required field
9181	DirectoryId *string `type:"string" required:"true"`
9182
9183	// The SNS topic name to which the directory will publish status messages. This
9184	// SNS topic must be in the same region as the specified Directory ID.
9185	//
9186	// TopicName is a required field
9187	TopicName *string `min:"1" type:"string" required:"true"`
9188}
9189
9190// String returns the string representation
9191func (s RegisterEventTopicInput) String() string {
9192	return awsutil.Prettify(s)
9193}
9194
9195// GoString returns the string representation
9196func (s RegisterEventTopicInput) GoString() string {
9197	return s.String()
9198}
9199
9200// Validate inspects the fields of the type to determine if they are valid.
9201func (s *RegisterEventTopicInput) Validate() error {
9202	invalidParams := request.ErrInvalidParams{Context: "RegisterEventTopicInput"}
9203	if s.DirectoryId == nil {
9204		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9205	}
9206	if s.TopicName == nil {
9207		invalidParams.Add(request.NewErrParamRequired("TopicName"))
9208	}
9209	if s.TopicName != nil && len(*s.TopicName) < 1 {
9210		invalidParams.Add(request.NewErrParamMinLen("TopicName", 1))
9211	}
9212
9213	if invalidParams.Len() > 0 {
9214		return invalidParams
9215	}
9216	return nil
9217}
9218
9219// SetDirectoryId sets the DirectoryId field's value.
9220func (s *RegisterEventTopicInput) SetDirectoryId(v string) *RegisterEventTopicInput {
9221	s.DirectoryId = &v
9222	return s
9223}
9224
9225// SetTopicName sets the TopicName field's value.
9226func (s *RegisterEventTopicInput) SetTopicName(v string) *RegisterEventTopicInput {
9227	s.TopicName = &v
9228	return s
9229}
9230
9231// The result of a RegisterEventTopic request.
9232type RegisterEventTopicOutput struct {
9233	_ struct{} `type:"structure"`
9234}
9235
9236// String returns the string representation
9237func (s RegisterEventTopicOutput) String() string {
9238	return awsutil.Prettify(s)
9239}
9240
9241// GoString returns the string representation
9242func (s RegisterEventTopicOutput) GoString() string {
9243	return s.String()
9244}
9245
9246type RejectSharedDirectoryInput struct {
9247	_ struct{} `type:"structure"`
9248
9249	// Identifier of the shared directory in the directory consumer account. This
9250	// identifier is different for each directory owner account.
9251	//
9252	// SharedDirectoryId is a required field
9253	SharedDirectoryId *string `type:"string" required:"true"`
9254}
9255
9256// String returns the string representation
9257func (s RejectSharedDirectoryInput) String() string {
9258	return awsutil.Prettify(s)
9259}
9260
9261// GoString returns the string representation
9262func (s RejectSharedDirectoryInput) GoString() string {
9263	return s.String()
9264}
9265
9266// Validate inspects the fields of the type to determine if they are valid.
9267func (s *RejectSharedDirectoryInput) Validate() error {
9268	invalidParams := request.ErrInvalidParams{Context: "RejectSharedDirectoryInput"}
9269	if s.SharedDirectoryId == nil {
9270		invalidParams.Add(request.NewErrParamRequired("SharedDirectoryId"))
9271	}
9272
9273	if invalidParams.Len() > 0 {
9274		return invalidParams
9275	}
9276	return nil
9277}
9278
9279// SetSharedDirectoryId sets the SharedDirectoryId field's value.
9280func (s *RejectSharedDirectoryInput) SetSharedDirectoryId(v string) *RejectSharedDirectoryInput {
9281	s.SharedDirectoryId = &v
9282	return s
9283}
9284
9285type RejectSharedDirectoryOutput struct {
9286	_ struct{} `type:"structure"`
9287
9288	// Identifier of the shared directory in the directory consumer account.
9289	SharedDirectoryId *string `type:"string"`
9290}
9291
9292// String returns the string representation
9293func (s RejectSharedDirectoryOutput) String() string {
9294	return awsutil.Prettify(s)
9295}
9296
9297// GoString returns the string representation
9298func (s RejectSharedDirectoryOutput) GoString() string {
9299	return s.String()
9300}
9301
9302// SetSharedDirectoryId sets the SharedDirectoryId field's value.
9303func (s *RejectSharedDirectoryOutput) SetSharedDirectoryId(v string) *RejectSharedDirectoryOutput {
9304	s.SharedDirectoryId = &v
9305	return s
9306}
9307
9308type RemoveIpRoutesInput struct {
9309	_ struct{} `type:"structure"`
9310
9311	// IP address blocks that you want to remove.
9312	//
9313	// CidrIps is a required field
9314	CidrIps []*string `type:"list" required:"true"`
9315
9316	// Identifier (ID) of the directory from which you want to remove the IP addresses.
9317	//
9318	// DirectoryId is a required field
9319	DirectoryId *string `type:"string" required:"true"`
9320}
9321
9322// String returns the string representation
9323func (s RemoveIpRoutesInput) String() string {
9324	return awsutil.Prettify(s)
9325}
9326
9327// GoString returns the string representation
9328func (s RemoveIpRoutesInput) GoString() string {
9329	return s.String()
9330}
9331
9332// Validate inspects the fields of the type to determine if they are valid.
9333func (s *RemoveIpRoutesInput) Validate() error {
9334	invalidParams := request.ErrInvalidParams{Context: "RemoveIpRoutesInput"}
9335	if s.CidrIps == nil {
9336		invalidParams.Add(request.NewErrParamRequired("CidrIps"))
9337	}
9338	if s.DirectoryId == nil {
9339		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9340	}
9341
9342	if invalidParams.Len() > 0 {
9343		return invalidParams
9344	}
9345	return nil
9346}
9347
9348// SetCidrIps sets the CidrIps field's value.
9349func (s *RemoveIpRoutesInput) SetCidrIps(v []*string) *RemoveIpRoutesInput {
9350	s.CidrIps = v
9351	return s
9352}
9353
9354// SetDirectoryId sets the DirectoryId field's value.
9355func (s *RemoveIpRoutesInput) SetDirectoryId(v string) *RemoveIpRoutesInput {
9356	s.DirectoryId = &v
9357	return s
9358}
9359
9360type RemoveIpRoutesOutput struct {
9361	_ struct{} `type:"structure"`
9362}
9363
9364// String returns the string representation
9365func (s RemoveIpRoutesOutput) String() string {
9366	return awsutil.Prettify(s)
9367}
9368
9369// GoString returns the string representation
9370func (s RemoveIpRoutesOutput) GoString() string {
9371	return s.String()
9372}
9373
9374type RemoveTagsFromResourceInput struct {
9375	_ struct{} `type:"structure"`
9376
9377	// Identifier (ID) of the directory from which to remove the tag.
9378	//
9379	// ResourceId is a required field
9380	ResourceId *string `type:"string" required:"true"`
9381
9382	// The tag key (name) of the tag to be removed.
9383	//
9384	// TagKeys is a required field
9385	TagKeys []*string `type:"list" required:"true"`
9386}
9387
9388// String returns the string representation
9389func (s RemoveTagsFromResourceInput) String() string {
9390	return awsutil.Prettify(s)
9391}
9392
9393// GoString returns the string representation
9394func (s RemoveTagsFromResourceInput) GoString() string {
9395	return s.String()
9396}
9397
9398// Validate inspects the fields of the type to determine if they are valid.
9399func (s *RemoveTagsFromResourceInput) Validate() error {
9400	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
9401	if s.ResourceId == nil {
9402		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9403	}
9404	if s.TagKeys == nil {
9405		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9406	}
9407
9408	if invalidParams.Len() > 0 {
9409		return invalidParams
9410	}
9411	return nil
9412}
9413
9414// SetResourceId sets the ResourceId field's value.
9415func (s *RemoveTagsFromResourceInput) SetResourceId(v string) *RemoveTagsFromResourceInput {
9416	s.ResourceId = &v
9417	return s
9418}
9419
9420// SetTagKeys sets the TagKeys field's value.
9421func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
9422	s.TagKeys = v
9423	return s
9424}
9425
9426type RemoveTagsFromResourceOutput struct {
9427	_ struct{} `type:"structure"`
9428}
9429
9430// String returns the string representation
9431func (s RemoveTagsFromResourceOutput) String() string {
9432	return awsutil.Prettify(s)
9433}
9434
9435// GoString returns the string representation
9436func (s RemoveTagsFromResourceOutput) GoString() string {
9437	return s.String()
9438}
9439
9440type ResetUserPasswordInput struct {
9441	_ struct{} `type:"structure"`
9442
9443	// Identifier of the AWS Managed Microsoft AD or Simple AD directory in which
9444	// the user resides.
9445	//
9446	// DirectoryId is a required field
9447	DirectoryId *string `type:"string" required:"true"`
9448
9449	// The new password that will be reset.
9450	//
9451	// NewPassword is a required field
9452	NewPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
9453
9454	// The user name of the user whose password will be reset.
9455	//
9456	// UserName is a required field
9457	UserName *string `min:"1" type:"string" required:"true"`
9458}
9459
9460// String returns the string representation
9461func (s ResetUserPasswordInput) String() string {
9462	return awsutil.Prettify(s)
9463}
9464
9465// GoString returns the string representation
9466func (s ResetUserPasswordInput) GoString() string {
9467	return s.String()
9468}
9469
9470// Validate inspects the fields of the type to determine if they are valid.
9471func (s *ResetUserPasswordInput) Validate() error {
9472	invalidParams := request.ErrInvalidParams{Context: "ResetUserPasswordInput"}
9473	if s.DirectoryId == nil {
9474		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9475	}
9476	if s.NewPassword == nil {
9477		invalidParams.Add(request.NewErrParamRequired("NewPassword"))
9478	}
9479	if s.NewPassword != nil && len(*s.NewPassword) < 1 {
9480		invalidParams.Add(request.NewErrParamMinLen("NewPassword", 1))
9481	}
9482	if s.UserName == nil {
9483		invalidParams.Add(request.NewErrParamRequired("UserName"))
9484	}
9485	if s.UserName != nil && len(*s.UserName) < 1 {
9486		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
9487	}
9488
9489	if invalidParams.Len() > 0 {
9490		return invalidParams
9491	}
9492	return nil
9493}
9494
9495// SetDirectoryId sets the DirectoryId field's value.
9496func (s *ResetUserPasswordInput) SetDirectoryId(v string) *ResetUserPasswordInput {
9497	s.DirectoryId = &v
9498	return s
9499}
9500
9501// SetNewPassword sets the NewPassword field's value.
9502func (s *ResetUserPasswordInput) SetNewPassword(v string) *ResetUserPasswordInput {
9503	s.NewPassword = &v
9504	return s
9505}
9506
9507// SetUserName sets the UserName field's value.
9508func (s *ResetUserPasswordInput) SetUserName(v string) *ResetUserPasswordInput {
9509	s.UserName = &v
9510	return s
9511}
9512
9513type ResetUserPasswordOutput struct {
9514	_ struct{} `type:"structure"`
9515}
9516
9517// String returns the string representation
9518func (s ResetUserPasswordOutput) String() string {
9519	return awsutil.Prettify(s)
9520}
9521
9522// GoString returns the string representation
9523func (s ResetUserPasswordOutput) GoString() string {
9524	return s.String()
9525}
9526
9527// An object representing the inputs for the RestoreFromSnapshot operation.
9528type RestoreFromSnapshotInput struct {
9529	_ struct{} `type:"structure"`
9530
9531	// The identifier of the snapshot to restore from.
9532	//
9533	// SnapshotId is a required field
9534	SnapshotId *string `type:"string" required:"true"`
9535}
9536
9537// String returns the string representation
9538func (s RestoreFromSnapshotInput) String() string {
9539	return awsutil.Prettify(s)
9540}
9541
9542// GoString returns the string representation
9543func (s RestoreFromSnapshotInput) GoString() string {
9544	return s.String()
9545}
9546
9547// Validate inspects the fields of the type to determine if they are valid.
9548func (s *RestoreFromSnapshotInput) Validate() error {
9549	invalidParams := request.ErrInvalidParams{Context: "RestoreFromSnapshotInput"}
9550	if s.SnapshotId == nil {
9551		invalidParams.Add(request.NewErrParamRequired("SnapshotId"))
9552	}
9553
9554	if invalidParams.Len() > 0 {
9555		return invalidParams
9556	}
9557	return nil
9558}
9559
9560// SetSnapshotId sets the SnapshotId field's value.
9561func (s *RestoreFromSnapshotInput) SetSnapshotId(v string) *RestoreFromSnapshotInput {
9562	s.SnapshotId = &v
9563	return s
9564}
9565
9566// Contains the results of the RestoreFromSnapshot operation.
9567type RestoreFromSnapshotOutput struct {
9568	_ struct{} `type:"structure"`
9569}
9570
9571// String returns the string representation
9572func (s RestoreFromSnapshotOutput) String() string {
9573	return awsutil.Prettify(s)
9574}
9575
9576// GoString returns the string representation
9577func (s RestoreFromSnapshotOutput) GoString() string {
9578	return s.String()
9579}
9580
9581// Information about a schema extension.
9582type SchemaExtensionInfo struct {
9583	_ struct{} `type:"structure"`
9584
9585	// A description of the schema extension.
9586	Description *string `type:"string"`
9587
9588	// The identifier of the directory to which the schema extension is applied.
9589	DirectoryId *string `type:"string"`
9590
9591	// The date and time that the schema extension was completed.
9592	EndDateTime *time.Time `type:"timestamp"`
9593
9594	// The identifier of the schema extension.
9595	SchemaExtensionId *string `type:"string"`
9596
9597	// The current status of the schema extension.
9598	SchemaExtensionStatus *string `type:"string" enum:"SchemaExtensionStatus"`
9599
9600	// The reason for the SchemaExtensionStatus.
9601	SchemaExtensionStatusReason *string `type:"string"`
9602
9603	// The date and time that the schema extension started being applied to the
9604	// directory.
9605	StartDateTime *time.Time `type:"timestamp"`
9606}
9607
9608// String returns the string representation
9609func (s SchemaExtensionInfo) String() string {
9610	return awsutil.Prettify(s)
9611}
9612
9613// GoString returns the string representation
9614func (s SchemaExtensionInfo) GoString() string {
9615	return s.String()
9616}
9617
9618// SetDescription sets the Description field's value.
9619func (s *SchemaExtensionInfo) SetDescription(v string) *SchemaExtensionInfo {
9620	s.Description = &v
9621	return s
9622}
9623
9624// SetDirectoryId sets the DirectoryId field's value.
9625func (s *SchemaExtensionInfo) SetDirectoryId(v string) *SchemaExtensionInfo {
9626	s.DirectoryId = &v
9627	return s
9628}
9629
9630// SetEndDateTime sets the EndDateTime field's value.
9631func (s *SchemaExtensionInfo) SetEndDateTime(v time.Time) *SchemaExtensionInfo {
9632	s.EndDateTime = &v
9633	return s
9634}
9635
9636// SetSchemaExtensionId sets the SchemaExtensionId field's value.
9637func (s *SchemaExtensionInfo) SetSchemaExtensionId(v string) *SchemaExtensionInfo {
9638	s.SchemaExtensionId = &v
9639	return s
9640}
9641
9642// SetSchemaExtensionStatus sets the SchemaExtensionStatus field's value.
9643func (s *SchemaExtensionInfo) SetSchemaExtensionStatus(v string) *SchemaExtensionInfo {
9644	s.SchemaExtensionStatus = &v
9645	return s
9646}
9647
9648// SetSchemaExtensionStatusReason sets the SchemaExtensionStatusReason field's value.
9649func (s *SchemaExtensionInfo) SetSchemaExtensionStatusReason(v string) *SchemaExtensionInfo {
9650	s.SchemaExtensionStatusReason = &v
9651	return s
9652}
9653
9654// SetStartDateTime sets the StartDateTime field's value.
9655func (s *SchemaExtensionInfo) SetStartDateTime(v time.Time) *SchemaExtensionInfo {
9656	s.StartDateTime = &v
9657	return s
9658}
9659
9660type ShareDirectoryInput struct {
9661	_ struct{} `type:"structure"`
9662
9663	// Identifier of the AWS Managed Microsoft AD directory that you want to share
9664	// with other AWS accounts.
9665	//
9666	// DirectoryId is a required field
9667	DirectoryId *string `type:"string" required:"true"`
9668
9669	// The method used when sharing a directory to determine whether the directory
9670	// should be shared within your AWS organization (ORGANIZATIONS) or with any
9671	// AWS account by sending a directory sharing request (HANDSHAKE).
9672	//
9673	// ShareMethod is a required field
9674	ShareMethod *string `type:"string" required:"true" enum:"ShareMethod"`
9675
9676	// A directory share request that is sent by the directory owner to the directory
9677	// consumer. The request includes a typed message to help the directory consumer
9678	// administrator determine whether to approve or reject the share invitation.
9679	ShareNotes *string `type:"string" sensitive:"true"`
9680
9681	// Identifier for the directory consumer account with whom the directory is
9682	// to be shared.
9683	//
9684	// ShareTarget is a required field
9685	ShareTarget *ShareTarget `type:"structure" required:"true"`
9686}
9687
9688// String returns the string representation
9689func (s ShareDirectoryInput) String() string {
9690	return awsutil.Prettify(s)
9691}
9692
9693// GoString returns the string representation
9694func (s ShareDirectoryInput) GoString() string {
9695	return s.String()
9696}
9697
9698// Validate inspects the fields of the type to determine if they are valid.
9699func (s *ShareDirectoryInput) Validate() error {
9700	invalidParams := request.ErrInvalidParams{Context: "ShareDirectoryInput"}
9701	if s.DirectoryId == nil {
9702		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9703	}
9704	if s.ShareMethod == nil {
9705		invalidParams.Add(request.NewErrParamRequired("ShareMethod"))
9706	}
9707	if s.ShareTarget == nil {
9708		invalidParams.Add(request.NewErrParamRequired("ShareTarget"))
9709	}
9710	if s.ShareTarget != nil {
9711		if err := s.ShareTarget.Validate(); err != nil {
9712			invalidParams.AddNested("ShareTarget", err.(request.ErrInvalidParams))
9713		}
9714	}
9715
9716	if invalidParams.Len() > 0 {
9717		return invalidParams
9718	}
9719	return nil
9720}
9721
9722// SetDirectoryId sets the DirectoryId field's value.
9723func (s *ShareDirectoryInput) SetDirectoryId(v string) *ShareDirectoryInput {
9724	s.DirectoryId = &v
9725	return s
9726}
9727
9728// SetShareMethod sets the ShareMethod field's value.
9729func (s *ShareDirectoryInput) SetShareMethod(v string) *ShareDirectoryInput {
9730	s.ShareMethod = &v
9731	return s
9732}
9733
9734// SetShareNotes sets the ShareNotes field's value.
9735func (s *ShareDirectoryInput) SetShareNotes(v string) *ShareDirectoryInput {
9736	s.ShareNotes = &v
9737	return s
9738}
9739
9740// SetShareTarget sets the ShareTarget field's value.
9741func (s *ShareDirectoryInput) SetShareTarget(v *ShareTarget) *ShareDirectoryInput {
9742	s.ShareTarget = v
9743	return s
9744}
9745
9746type ShareDirectoryOutput struct {
9747	_ struct{} `type:"structure"`
9748
9749	// Identifier of the directory that is stored in the directory consumer account
9750	// that is shared from the specified directory (DirectoryId).
9751	SharedDirectoryId *string `type:"string"`
9752}
9753
9754// String returns the string representation
9755func (s ShareDirectoryOutput) String() string {
9756	return awsutil.Prettify(s)
9757}
9758
9759// GoString returns the string representation
9760func (s ShareDirectoryOutput) GoString() string {
9761	return s.String()
9762}
9763
9764// SetSharedDirectoryId sets the SharedDirectoryId field's value.
9765func (s *ShareDirectoryOutput) SetSharedDirectoryId(v string) *ShareDirectoryOutput {
9766	s.SharedDirectoryId = &v
9767	return s
9768}
9769
9770// Identifier that contains details about the directory consumer account.
9771type ShareTarget struct {
9772	_ struct{} `type:"structure"`
9773
9774	// Identifier of the directory consumer account.
9775	//
9776	// Id is a required field
9777	Id *string `min:"1" type:"string" required:"true"`
9778
9779	// Type of identifier to be used in the Id field.
9780	//
9781	// Type is a required field
9782	Type *string `type:"string" required:"true" enum:"TargetType"`
9783}
9784
9785// String returns the string representation
9786func (s ShareTarget) String() string {
9787	return awsutil.Prettify(s)
9788}
9789
9790// GoString returns the string representation
9791func (s ShareTarget) GoString() string {
9792	return s.String()
9793}
9794
9795// Validate inspects the fields of the type to determine if they are valid.
9796func (s *ShareTarget) Validate() error {
9797	invalidParams := request.ErrInvalidParams{Context: "ShareTarget"}
9798	if s.Id == nil {
9799		invalidParams.Add(request.NewErrParamRequired("Id"))
9800	}
9801	if s.Id != nil && len(*s.Id) < 1 {
9802		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
9803	}
9804	if s.Type == nil {
9805		invalidParams.Add(request.NewErrParamRequired("Type"))
9806	}
9807
9808	if invalidParams.Len() > 0 {
9809		return invalidParams
9810	}
9811	return nil
9812}
9813
9814// SetId sets the Id field's value.
9815func (s *ShareTarget) SetId(v string) *ShareTarget {
9816	s.Id = &v
9817	return s
9818}
9819
9820// SetType sets the Type field's value.
9821func (s *ShareTarget) SetType(v string) *ShareTarget {
9822	s.Type = &v
9823	return s
9824}
9825
9826// Details about the shared directory in the directory owner account for which
9827// the share request in the directory consumer account has been accepted.
9828type SharedDirectory struct {
9829	_ struct{} `type:"structure"`
9830
9831	// The date and time that the shared directory was created.
9832	CreatedDateTime *time.Time `type:"timestamp"`
9833
9834	// The date and time that the shared directory was last updated.
9835	LastUpdatedDateTime *time.Time `type:"timestamp"`
9836
9837	// Identifier of the directory owner account, which contains the directory that
9838	// has been shared to the consumer account.
9839	OwnerAccountId *string `type:"string"`
9840
9841	// Identifier of the directory in the directory owner account.
9842	OwnerDirectoryId *string `type:"string"`
9843
9844	// The method used when sharing a directory to determine whether the directory
9845	// should be shared within your AWS organization (ORGANIZATIONS) or with any
9846	// AWS account by sending a shared directory request (HANDSHAKE).
9847	ShareMethod *string `type:"string" enum:"ShareMethod"`
9848
9849	// A directory share request that is sent by the directory owner to the directory
9850	// consumer. The request includes a typed message to help the directory consumer
9851	// administrator determine whether to approve or reject the share invitation.
9852	ShareNotes *string `type:"string" sensitive:"true"`
9853
9854	// Current directory status of the shared AWS Managed Microsoft AD directory.
9855	ShareStatus *string `type:"string" enum:"ShareStatus"`
9856
9857	// Identifier of the directory consumer account that has access to the shared
9858	// directory (OwnerDirectoryId) in the directory owner account.
9859	SharedAccountId *string `type:"string"`
9860
9861	// Identifier of the shared directory in the directory consumer account. This
9862	// identifier is different for each directory owner account.
9863	SharedDirectoryId *string `type:"string"`
9864}
9865
9866// String returns the string representation
9867func (s SharedDirectory) String() string {
9868	return awsutil.Prettify(s)
9869}
9870
9871// GoString returns the string representation
9872func (s SharedDirectory) GoString() string {
9873	return s.String()
9874}
9875
9876// SetCreatedDateTime sets the CreatedDateTime field's value.
9877func (s *SharedDirectory) SetCreatedDateTime(v time.Time) *SharedDirectory {
9878	s.CreatedDateTime = &v
9879	return s
9880}
9881
9882// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
9883func (s *SharedDirectory) SetLastUpdatedDateTime(v time.Time) *SharedDirectory {
9884	s.LastUpdatedDateTime = &v
9885	return s
9886}
9887
9888// SetOwnerAccountId sets the OwnerAccountId field's value.
9889func (s *SharedDirectory) SetOwnerAccountId(v string) *SharedDirectory {
9890	s.OwnerAccountId = &v
9891	return s
9892}
9893
9894// SetOwnerDirectoryId sets the OwnerDirectoryId field's value.
9895func (s *SharedDirectory) SetOwnerDirectoryId(v string) *SharedDirectory {
9896	s.OwnerDirectoryId = &v
9897	return s
9898}
9899
9900// SetShareMethod sets the ShareMethod field's value.
9901func (s *SharedDirectory) SetShareMethod(v string) *SharedDirectory {
9902	s.ShareMethod = &v
9903	return s
9904}
9905
9906// SetShareNotes sets the ShareNotes field's value.
9907func (s *SharedDirectory) SetShareNotes(v string) *SharedDirectory {
9908	s.ShareNotes = &v
9909	return s
9910}
9911
9912// SetShareStatus sets the ShareStatus field's value.
9913func (s *SharedDirectory) SetShareStatus(v string) *SharedDirectory {
9914	s.ShareStatus = &v
9915	return s
9916}
9917
9918// SetSharedAccountId sets the SharedAccountId field's value.
9919func (s *SharedDirectory) SetSharedAccountId(v string) *SharedDirectory {
9920	s.SharedAccountId = &v
9921	return s
9922}
9923
9924// SetSharedDirectoryId sets the SharedDirectoryId field's value.
9925func (s *SharedDirectory) SetSharedDirectoryId(v string) *SharedDirectory {
9926	s.SharedDirectoryId = &v
9927	return s
9928}
9929
9930// Describes a directory snapshot.
9931type Snapshot struct {
9932	_ struct{} `type:"structure"`
9933
9934	// The directory identifier.
9935	DirectoryId *string `type:"string"`
9936
9937	// The descriptive name of the snapshot.
9938	Name *string `type:"string"`
9939
9940	// The snapshot identifier.
9941	SnapshotId *string `type:"string"`
9942
9943	// The date and time that the snapshot was taken.
9944	StartTime *time.Time `type:"timestamp"`
9945
9946	// The snapshot status.
9947	Status *string `type:"string" enum:"SnapshotStatus"`
9948
9949	// The snapshot type.
9950	Type *string `type:"string" enum:"SnapshotType"`
9951}
9952
9953// String returns the string representation
9954func (s Snapshot) String() string {
9955	return awsutil.Prettify(s)
9956}
9957
9958// GoString returns the string representation
9959func (s Snapshot) GoString() string {
9960	return s.String()
9961}
9962
9963// SetDirectoryId sets the DirectoryId field's value.
9964func (s *Snapshot) SetDirectoryId(v string) *Snapshot {
9965	s.DirectoryId = &v
9966	return s
9967}
9968
9969// SetName sets the Name field's value.
9970func (s *Snapshot) SetName(v string) *Snapshot {
9971	s.Name = &v
9972	return s
9973}
9974
9975// SetSnapshotId sets the SnapshotId field's value.
9976func (s *Snapshot) SetSnapshotId(v string) *Snapshot {
9977	s.SnapshotId = &v
9978	return s
9979}
9980
9981// SetStartTime sets the StartTime field's value.
9982func (s *Snapshot) SetStartTime(v time.Time) *Snapshot {
9983	s.StartTime = &v
9984	return s
9985}
9986
9987// SetStatus sets the Status field's value.
9988func (s *Snapshot) SetStatus(v string) *Snapshot {
9989	s.Status = &v
9990	return s
9991}
9992
9993// SetType sets the Type field's value.
9994func (s *Snapshot) SetType(v string) *Snapshot {
9995	s.Type = &v
9996	return s
9997}
9998
9999// Contains manual snapshot limit information for a directory.
10000type SnapshotLimits struct {
10001	_ struct{} `type:"structure"`
10002
10003	// The current number of manual snapshots of the directory.
10004	ManualSnapshotsCurrentCount *int64 `type:"integer"`
10005
10006	// The maximum number of manual snapshots allowed.
10007	ManualSnapshotsLimit *int64 `type:"integer"`
10008
10009	// Indicates if the manual snapshot limit has been reached.
10010	ManualSnapshotsLimitReached *bool `type:"boolean"`
10011}
10012
10013// String returns the string representation
10014func (s SnapshotLimits) String() string {
10015	return awsutil.Prettify(s)
10016}
10017
10018// GoString returns the string representation
10019func (s SnapshotLimits) GoString() string {
10020	return s.String()
10021}
10022
10023// SetManualSnapshotsCurrentCount sets the ManualSnapshotsCurrentCount field's value.
10024func (s *SnapshotLimits) SetManualSnapshotsCurrentCount(v int64) *SnapshotLimits {
10025	s.ManualSnapshotsCurrentCount = &v
10026	return s
10027}
10028
10029// SetManualSnapshotsLimit sets the ManualSnapshotsLimit field's value.
10030func (s *SnapshotLimits) SetManualSnapshotsLimit(v int64) *SnapshotLimits {
10031	s.ManualSnapshotsLimit = &v
10032	return s
10033}
10034
10035// SetManualSnapshotsLimitReached sets the ManualSnapshotsLimitReached field's value.
10036func (s *SnapshotLimits) SetManualSnapshotsLimitReached(v bool) *SnapshotLimits {
10037	s.ManualSnapshotsLimitReached = &v
10038	return s
10039}
10040
10041type StartSchemaExtensionInput struct {
10042	_ struct{} `type:"structure"`
10043
10044	// If true, creates a snapshot of the directory before applying the schema extension.
10045	//
10046	// CreateSnapshotBeforeSchemaExtension is a required field
10047	CreateSnapshotBeforeSchemaExtension *bool `type:"boolean" required:"true"`
10048
10049	// A description of the schema extension.
10050	//
10051	// Description is a required field
10052	Description *string `type:"string" required:"true"`
10053
10054	// The identifier of the directory for which the schema extension will be applied
10055	// to.
10056	//
10057	// DirectoryId is a required field
10058	DirectoryId *string `type:"string" required:"true"`
10059
10060	// The LDIF file represented as a string. To construct the LdifContent string,
10061	// precede each line as it would be formatted in an ldif file with \n. See the
10062	// example request below for more details. The file size can be no larger than
10063	// 1MB.
10064	//
10065	// LdifContent is a required field
10066	LdifContent *string `min:"1" type:"string" required:"true"`
10067}
10068
10069// String returns the string representation
10070func (s StartSchemaExtensionInput) String() string {
10071	return awsutil.Prettify(s)
10072}
10073
10074// GoString returns the string representation
10075func (s StartSchemaExtensionInput) GoString() string {
10076	return s.String()
10077}
10078
10079// Validate inspects the fields of the type to determine if they are valid.
10080func (s *StartSchemaExtensionInput) Validate() error {
10081	invalidParams := request.ErrInvalidParams{Context: "StartSchemaExtensionInput"}
10082	if s.CreateSnapshotBeforeSchemaExtension == nil {
10083		invalidParams.Add(request.NewErrParamRequired("CreateSnapshotBeforeSchemaExtension"))
10084	}
10085	if s.Description == nil {
10086		invalidParams.Add(request.NewErrParamRequired("Description"))
10087	}
10088	if s.DirectoryId == nil {
10089		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10090	}
10091	if s.LdifContent == nil {
10092		invalidParams.Add(request.NewErrParamRequired("LdifContent"))
10093	}
10094	if s.LdifContent != nil && len(*s.LdifContent) < 1 {
10095		invalidParams.Add(request.NewErrParamMinLen("LdifContent", 1))
10096	}
10097
10098	if invalidParams.Len() > 0 {
10099		return invalidParams
10100	}
10101	return nil
10102}
10103
10104// SetCreateSnapshotBeforeSchemaExtension sets the CreateSnapshotBeforeSchemaExtension field's value.
10105func (s *StartSchemaExtensionInput) SetCreateSnapshotBeforeSchemaExtension(v bool) *StartSchemaExtensionInput {
10106	s.CreateSnapshotBeforeSchemaExtension = &v
10107	return s
10108}
10109
10110// SetDescription sets the Description field's value.
10111func (s *StartSchemaExtensionInput) SetDescription(v string) *StartSchemaExtensionInput {
10112	s.Description = &v
10113	return s
10114}
10115
10116// SetDirectoryId sets the DirectoryId field's value.
10117func (s *StartSchemaExtensionInput) SetDirectoryId(v string) *StartSchemaExtensionInput {
10118	s.DirectoryId = &v
10119	return s
10120}
10121
10122// SetLdifContent sets the LdifContent field's value.
10123func (s *StartSchemaExtensionInput) SetLdifContent(v string) *StartSchemaExtensionInput {
10124	s.LdifContent = &v
10125	return s
10126}
10127
10128type StartSchemaExtensionOutput struct {
10129	_ struct{} `type:"structure"`
10130
10131	// The identifier of the schema extension that will be applied.
10132	SchemaExtensionId *string `type:"string"`
10133}
10134
10135// String returns the string representation
10136func (s StartSchemaExtensionOutput) String() string {
10137	return awsutil.Prettify(s)
10138}
10139
10140// GoString returns the string representation
10141func (s StartSchemaExtensionOutput) GoString() string {
10142	return s.String()
10143}
10144
10145// SetSchemaExtensionId sets the SchemaExtensionId field's value.
10146func (s *StartSchemaExtensionOutput) SetSchemaExtensionId(v string) *StartSchemaExtensionOutput {
10147	s.SchemaExtensionId = &v
10148	return s
10149}
10150
10151// Metadata assigned to a directory consisting of a key-value pair.
10152type Tag struct {
10153	_ struct{} `type:"structure"`
10154
10155	// Required name of the tag. The string value can be Unicode characters and
10156	// cannot be prefixed with "aws:". The string can contain only the set of Unicode
10157	// letters, digits, white-space, '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
10158	//
10159	// Key is a required field
10160	Key *string `min:"1" type:"string" required:"true"`
10161
10162	// The optional value of the tag. The string value can be Unicode characters.
10163	// The string can contain only the set of Unicode letters, digits, white-space,
10164	// '_', '.', '/', '=', '+', '-' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$").
10165	//
10166	// Value is a required field
10167	Value *string `type:"string" required:"true"`
10168}
10169
10170// String returns the string representation
10171func (s Tag) String() string {
10172	return awsutil.Prettify(s)
10173}
10174
10175// GoString returns the string representation
10176func (s Tag) GoString() string {
10177	return s.String()
10178}
10179
10180// Validate inspects the fields of the type to determine if they are valid.
10181func (s *Tag) Validate() error {
10182	invalidParams := request.ErrInvalidParams{Context: "Tag"}
10183	if s.Key == nil {
10184		invalidParams.Add(request.NewErrParamRequired("Key"))
10185	}
10186	if s.Key != nil && len(*s.Key) < 1 {
10187		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
10188	}
10189	if s.Value == nil {
10190		invalidParams.Add(request.NewErrParamRequired("Value"))
10191	}
10192
10193	if invalidParams.Len() > 0 {
10194		return invalidParams
10195	}
10196	return nil
10197}
10198
10199// SetKey sets the Key field's value.
10200func (s *Tag) SetKey(v string) *Tag {
10201	s.Key = &v
10202	return s
10203}
10204
10205// SetValue sets the Value field's value.
10206func (s *Tag) SetValue(v string) *Tag {
10207	s.Value = &v
10208	return s
10209}
10210
10211// Describes a trust relationship between an AWS Managed Microsoft AD directory
10212// and an external domain.
10213type Trust struct {
10214	_ struct{} `type:"structure"`
10215
10216	// The date and time that the trust relationship was created.
10217	CreatedDateTime *time.Time `type:"timestamp"`
10218
10219	// The Directory ID of the AWS directory involved in the trust relationship.
10220	DirectoryId *string `type:"string"`
10221
10222	// The date and time that the trust relationship was last updated.
10223	LastUpdatedDateTime *time.Time `type:"timestamp"`
10224
10225	// The Fully Qualified Domain Name (FQDN) of the external domain involved in
10226	// the trust relationship.
10227	RemoteDomainName *string `type:"string"`
10228
10229	// Current state of selective authentication for the trust.
10230	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
10231
10232	// The date and time that the TrustState was last updated.
10233	StateLastUpdatedDateTime *time.Time `type:"timestamp"`
10234
10235	// The trust relationship direction.
10236	TrustDirection *string `type:"string" enum:"TrustDirection"`
10237
10238	// The unique ID of the trust relationship.
10239	TrustId *string `type:"string"`
10240
10241	// The trust relationship state.
10242	TrustState *string `type:"string" enum:"TrustState"`
10243
10244	// The reason for the TrustState.
10245	TrustStateReason *string `type:"string"`
10246
10247	// The trust relationship type. Forest is the default.
10248	TrustType *string `type:"string" enum:"TrustType"`
10249}
10250
10251// String returns the string representation
10252func (s Trust) String() string {
10253	return awsutil.Prettify(s)
10254}
10255
10256// GoString returns the string representation
10257func (s Trust) GoString() string {
10258	return s.String()
10259}
10260
10261// SetCreatedDateTime sets the CreatedDateTime field's value.
10262func (s *Trust) SetCreatedDateTime(v time.Time) *Trust {
10263	s.CreatedDateTime = &v
10264	return s
10265}
10266
10267// SetDirectoryId sets the DirectoryId field's value.
10268func (s *Trust) SetDirectoryId(v string) *Trust {
10269	s.DirectoryId = &v
10270	return s
10271}
10272
10273// SetLastUpdatedDateTime sets the LastUpdatedDateTime field's value.
10274func (s *Trust) SetLastUpdatedDateTime(v time.Time) *Trust {
10275	s.LastUpdatedDateTime = &v
10276	return s
10277}
10278
10279// SetRemoteDomainName sets the RemoteDomainName field's value.
10280func (s *Trust) SetRemoteDomainName(v string) *Trust {
10281	s.RemoteDomainName = &v
10282	return s
10283}
10284
10285// SetSelectiveAuth sets the SelectiveAuth field's value.
10286func (s *Trust) SetSelectiveAuth(v string) *Trust {
10287	s.SelectiveAuth = &v
10288	return s
10289}
10290
10291// SetStateLastUpdatedDateTime sets the StateLastUpdatedDateTime field's value.
10292func (s *Trust) SetStateLastUpdatedDateTime(v time.Time) *Trust {
10293	s.StateLastUpdatedDateTime = &v
10294	return s
10295}
10296
10297// SetTrustDirection sets the TrustDirection field's value.
10298func (s *Trust) SetTrustDirection(v string) *Trust {
10299	s.TrustDirection = &v
10300	return s
10301}
10302
10303// SetTrustId sets the TrustId field's value.
10304func (s *Trust) SetTrustId(v string) *Trust {
10305	s.TrustId = &v
10306	return s
10307}
10308
10309// SetTrustState sets the TrustState field's value.
10310func (s *Trust) SetTrustState(v string) *Trust {
10311	s.TrustState = &v
10312	return s
10313}
10314
10315// SetTrustStateReason sets the TrustStateReason field's value.
10316func (s *Trust) SetTrustStateReason(v string) *Trust {
10317	s.TrustStateReason = &v
10318	return s
10319}
10320
10321// SetTrustType sets the TrustType field's value.
10322func (s *Trust) SetTrustType(v string) *Trust {
10323	s.TrustType = &v
10324	return s
10325}
10326
10327type UnshareDirectoryInput struct {
10328	_ struct{} `type:"structure"`
10329
10330	// The identifier of the AWS Managed Microsoft AD directory that you want to
10331	// stop sharing.
10332	//
10333	// DirectoryId is a required field
10334	DirectoryId *string `type:"string" required:"true"`
10335
10336	// Identifier for the directory consumer account with whom the directory has
10337	// to be unshared.
10338	//
10339	// UnshareTarget is a required field
10340	UnshareTarget *UnshareTarget `type:"structure" required:"true"`
10341}
10342
10343// String returns the string representation
10344func (s UnshareDirectoryInput) String() string {
10345	return awsutil.Prettify(s)
10346}
10347
10348// GoString returns the string representation
10349func (s UnshareDirectoryInput) GoString() string {
10350	return s.String()
10351}
10352
10353// Validate inspects the fields of the type to determine if they are valid.
10354func (s *UnshareDirectoryInput) Validate() error {
10355	invalidParams := request.ErrInvalidParams{Context: "UnshareDirectoryInput"}
10356	if s.DirectoryId == nil {
10357		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10358	}
10359	if s.UnshareTarget == nil {
10360		invalidParams.Add(request.NewErrParamRequired("UnshareTarget"))
10361	}
10362	if s.UnshareTarget != nil {
10363		if err := s.UnshareTarget.Validate(); err != nil {
10364			invalidParams.AddNested("UnshareTarget", err.(request.ErrInvalidParams))
10365		}
10366	}
10367
10368	if invalidParams.Len() > 0 {
10369		return invalidParams
10370	}
10371	return nil
10372}
10373
10374// SetDirectoryId sets the DirectoryId field's value.
10375func (s *UnshareDirectoryInput) SetDirectoryId(v string) *UnshareDirectoryInput {
10376	s.DirectoryId = &v
10377	return s
10378}
10379
10380// SetUnshareTarget sets the UnshareTarget field's value.
10381func (s *UnshareDirectoryInput) SetUnshareTarget(v *UnshareTarget) *UnshareDirectoryInput {
10382	s.UnshareTarget = v
10383	return s
10384}
10385
10386type UnshareDirectoryOutput struct {
10387	_ struct{} `type:"structure"`
10388
10389	// Identifier of the directory stored in the directory consumer account that
10390	// is to be unshared from the specified directory (DirectoryId).
10391	SharedDirectoryId *string `type:"string"`
10392}
10393
10394// String returns the string representation
10395func (s UnshareDirectoryOutput) String() string {
10396	return awsutil.Prettify(s)
10397}
10398
10399// GoString returns the string representation
10400func (s UnshareDirectoryOutput) GoString() string {
10401	return s.String()
10402}
10403
10404// SetSharedDirectoryId sets the SharedDirectoryId field's value.
10405func (s *UnshareDirectoryOutput) SetSharedDirectoryId(v string) *UnshareDirectoryOutput {
10406	s.SharedDirectoryId = &v
10407	return s
10408}
10409
10410// Identifier that contains details about the directory consumer account with
10411// whom the directory is being unshared.
10412type UnshareTarget struct {
10413	_ struct{} `type:"structure"`
10414
10415	// Identifier of the directory consumer account.
10416	//
10417	// Id is a required field
10418	Id *string `min:"1" type:"string" required:"true"`
10419
10420	// Type of identifier to be used in the Id field.
10421	//
10422	// Type is a required field
10423	Type *string `type:"string" required:"true" enum:"TargetType"`
10424}
10425
10426// String returns the string representation
10427func (s UnshareTarget) String() string {
10428	return awsutil.Prettify(s)
10429}
10430
10431// GoString returns the string representation
10432func (s UnshareTarget) GoString() string {
10433	return s.String()
10434}
10435
10436// Validate inspects the fields of the type to determine if they are valid.
10437func (s *UnshareTarget) Validate() error {
10438	invalidParams := request.ErrInvalidParams{Context: "UnshareTarget"}
10439	if s.Id == nil {
10440		invalidParams.Add(request.NewErrParamRequired("Id"))
10441	}
10442	if s.Id != nil && len(*s.Id) < 1 {
10443		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
10444	}
10445	if s.Type == nil {
10446		invalidParams.Add(request.NewErrParamRequired("Type"))
10447	}
10448
10449	if invalidParams.Len() > 0 {
10450		return invalidParams
10451	}
10452	return nil
10453}
10454
10455// SetId sets the Id field's value.
10456func (s *UnshareTarget) SetId(v string) *UnshareTarget {
10457	s.Id = &v
10458	return s
10459}
10460
10461// SetType sets the Type field's value.
10462func (s *UnshareTarget) SetType(v string) *UnshareTarget {
10463	s.Type = &v
10464	return s
10465}
10466
10467// Updates a conditional forwarder.
10468type UpdateConditionalForwarderInput struct {
10469	_ struct{} `type:"structure"`
10470
10471	// The directory ID of the AWS directory for which to update the conditional
10472	// forwarder.
10473	//
10474	// DirectoryId is a required field
10475	DirectoryId *string `type:"string" required:"true"`
10476
10477	// The updated IP addresses of the remote DNS server associated with the conditional
10478	// forwarder.
10479	//
10480	// DnsIpAddrs is a required field
10481	DnsIpAddrs []*string `type:"list" required:"true"`
10482
10483	// The fully qualified domain name (FQDN) of the remote domain with which you
10484	// will set up a trust relationship.
10485	//
10486	// RemoteDomainName is a required field
10487	RemoteDomainName *string `type:"string" required:"true"`
10488}
10489
10490// String returns the string representation
10491func (s UpdateConditionalForwarderInput) String() string {
10492	return awsutil.Prettify(s)
10493}
10494
10495// GoString returns the string representation
10496func (s UpdateConditionalForwarderInput) GoString() string {
10497	return s.String()
10498}
10499
10500// Validate inspects the fields of the type to determine if they are valid.
10501func (s *UpdateConditionalForwarderInput) Validate() error {
10502	invalidParams := request.ErrInvalidParams{Context: "UpdateConditionalForwarderInput"}
10503	if s.DirectoryId == nil {
10504		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10505	}
10506	if s.DnsIpAddrs == nil {
10507		invalidParams.Add(request.NewErrParamRequired("DnsIpAddrs"))
10508	}
10509	if s.RemoteDomainName == nil {
10510		invalidParams.Add(request.NewErrParamRequired("RemoteDomainName"))
10511	}
10512
10513	if invalidParams.Len() > 0 {
10514		return invalidParams
10515	}
10516	return nil
10517}
10518
10519// SetDirectoryId sets the DirectoryId field's value.
10520func (s *UpdateConditionalForwarderInput) SetDirectoryId(v string) *UpdateConditionalForwarderInput {
10521	s.DirectoryId = &v
10522	return s
10523}
10524
10525// SetDnsIpAddrs sets the DnsIpAddrs field's value.
10526func (s *UpdateConditionalForwarderInput) SetDnsIpAddrs(v []*string) *UpdateConditionalForwarderInput {
10527	s.DnsIpAddrs = v
10528	return s
10529}
10530
10531// SetRemoteDomainName sets the RemoteDomainName field's value.
10532func (s *UpdateConditionalForwarderInput) SetRemoteDomainName(v string) *UpdateConditionalForwarderInput {
10533	s.RemoteDomainName = &v
10534	return s
10535}
10536
10537// The result of an UpdateConditionalForwarder request.
10538type UpdateConditionalForwarderOutput struct {
10539	_ struct{} `type:"structure"`
10540}
10541
10542// String returns the string representation
10543func (s UpdateConditionalForwarderOutput) String() string {
10544	return awsutil.Prettify(s)
10545}
10546
10547// GoString returns the string representation
10548func (s UpdateConditionalForwarderOutput) GoString() string {
10549	return s.String()
10550}
10551
10552type UpdateNumberOfDomainControllersInput struct {
10553	_ struct{} `type:"structure"`
10554
10555	// The number of domain controllers desired in the directory.
10556	//
10557	// DesiredNumber is a required field
10558	DesiredNumber *int64 `min:"2" type:"integer" required:"true"`
10559
10560	// Identifier of the directory to which the domain controllers will be added
10561	// or removed.
10562	//
10563	// DirectoryId is a required field
10564	DirectoryId *string `type:"string" required:"true"`
10565}
10566
10567// String returns the string representation
10568func (s UpdateNumberOfDomainControllersInput) String() string {
10569	return awsutil.Prettify(s)
10570}
10571
10572// GoString returns the string representation
10573func (s UpdateNumberOfDomainControllersInput) GoString() string {
10574	return s.String()
10575}
10576
10577// Validate inspects the fields of the type to determine if they are valid.
10578func (s *UpdateNumberOfDomainControllersInput) Validate() error {
10579	invalidParams := request.ErrInvalidParams{Context: "UpdateNumberOfDomainControllersInput"}
10580	if s.DesiredNumber == nil {
10581		invalidParams.Add(request.NewErrParamRequired("DesiredNumber"))
10582	}
10583	if s.DesiredNumber != nil && *s.DesiredNumber < 2 {
10584		invalidParams.Add(request.NewErrParamMinValue("DesiredNumber", 2))
10585	}
10586	if s.DirectoryId == nil {
10587		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10588	}
10589
10590	if invalidParams.Len() > 0 {
10591		return invalidParams
10592	}
10593	return nil
10594}
10595
10596// SetDesiredNumber sets the DesiredNumber field's value.
10597func (s *UpdateNumberOfDomainControllersInput) SetDesiredNumber(v int64) *UpdateNumberOfDomainControllersInput {
10598	s.DesiredNumber = &v
10599	return s
10600}
10601
10602// SetDirectoryId sets the DirectoryId field's value.
10603func (s *UpdateNumberOfDomainControllersInput) SetDirectoryId(v string) *UpdateNumberOfDomainControllersInput {
10604	s.DirectoryId = &v
10605	return s
10606}
10607
10608type UpdateNumberOfDomainControllersOutput struct {
10609	_ struct{} `type:"structure"`
10610}
10611
10612// String returns the string representation
10613func (s UpdateNumberOfDomainControllersOutput) String() string {
10614	return awsutil.Prettify(s)
10615}
10616
10617// GoString returns the string representation
10618func (s UpdateNumberOfDomainControllersOutput) GoString() string {
10619	return s.String()
10620}
10621
10622// Contains the inputs for the UpdateRadius operation.
10623type UpdateRadiusInput struct {
10624	_ struct{} `type:"structure"`
10625
10626	// The identifier of the directory for which to update the RADIUS server information.
10627	//
10628	// DirectoryId is a required field
10629	DirectoryId *string `type:"string" required:"true"`
10630
10631	// A RadiusSettings object that contains information about the RADIUS server.
10632	//
10633	// RadiusSettings is a required field
10634	RadiusSettings *RadiusSettings `type:"structure" required:"true"`
10635}
10636
10637// String returns the string representation
10638func (s UpdateRadiusInput) String() string {
10639	return awsutil.Prettify(s)
10640}
10641
10642// GoString returns the string representation
10643func (s UpdateRadiusInput) GoString() string {
10644	return s.String()
10645}
10646
10647// Validate inspects the fields of the type to determine if they are valid.
10648func (s *UpdateRadiusInput) Validate() error {
10649	invalidParams := request.ErrInvalidParams{Context: "UpdateRadiusInput"}
10650	if s.DirectoryId == nil {
10651		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10652	}
10653	if s.RadiusSettings == nil {
10654		invalidParams.Add(request.NewErrParamRequired("RadiusSettings"))
10655	}
10656	if s.RadiusSettings != nil {
10657		if err := s.RadiusSettings.Validate(); err != nil {
10658			invalidParams.AddNested("RadiusSettings", err.(request.ErrInvalidParams))
10659		}
10660	}
10661
10662	if invalidParams.Len() > 0 {
10663		return invalidParams
10664	}
10665	return nil
10666}
10667
10668// SetDirectoryId sets the DirectoryId field's value.
10669func (s *UpdateRadiusInput) SetDirectoryId(v string) *UpdateRadiusInput {
10670	s.DirectoryId = &v
10671	return s
10672}
10673
10674// SetRadiusSettings sets the RadiusSettings field's value.
10675func (s *UpdateRadiusInput) SetRadiusSettings(v *RadiusSettings) *UpdateRadiusInput {
10676	s.RadiusSettings = v
10677	return s
10678}
10679
10680// Contains the results of the UpdateRadius operation.
10681type UpdateRadiusOutput struct {
10682	_ struct{} `type:"structure"`
10683}
10684
10685// String returns the string representation
10686func (s UpdateRadiusOutput) String() string {
10687	return awsutil.Prettify(s)
10688}
10689
10690// GoString returns the string representation
10691func (s UpdateRadiusOutput) GoString() string {
10692	return s.String()
10693}
10694
10695type UpdateTrustInput struct {
10696	_ struct{} `type:"structure"`
10697
10698	// Updates selective authentication for the trust.
10699	SelectiveAuth *string `type:"string" enum:"SelectiveAuth"`
10700
10701	// Identifier of the trust relationship.
10702	//
10703	// TrustId is a required field
10704	TrustId *string `type:"string" required:"true"`
10705}
10706
10707// String returns the string representation
10708func (s UpdateTrustInput) String() string {
10709	return awsutil.Prettify(s)
10710}
10711
10712// GoString returns the string representation
10713func (s UpdateTrustInput) GoString() string {
10714	return s.String()
10715}
10716
10717// Validate inspects the fields of the type to determine if they are valid.
10718func (s *UpdateTrustInput) Validate() error {
10719	invalidParams := request.ErrInvalidParams{Context: "UpdateTrustInput"}
10720	if s.TrustId == nil {
10721		invalidParams.Add(request.NewErrParamRequired("TrustId"))
10722	}
10723
10724	if invalidParams.Len() > 0 {
10725		return invalidParams
10726	}
10727	return nil
10728}
10729
10730// SetSelectiveAuth sets the SelectiveAuth field's value.
10731func (s *UpdateTrustInput) SetSelectiveAuth(v string) *UpdateTrustInput {
10732	s.SelectiveAuth = &v
10733	return s
10734}
10735
10736// SetTrustId sets the TrustId field's value.
10737func (s *UpdateTrustInput) SetTrustId(v string) *UpdateTrustInput {
10738	s.TrustId = &v
10739	return s
10740}
10741
10742type UpdateTrustOutput struct {
10743	_ struct{} `type:"structure"`
10744
10745	// The AWS request identifier.
10746	RequestId *string `type:"string"`
10747
10748	// Identifier of the trust relationship.
10749	TrustId *string `type:"string"`
10750}
10751
10752// String returns the string representation
10753func (s UpdateTrustOutput) String() string {
10754	return awsutil.Prettify(s)
10755}
10756
10757// GoString returns the string representation
10758func (s UpdateTrustOutput) GoString() string {
10759	return s.String()
10760}
10761
10762// SetRequestId sets the RequestId field's value.
10763func (s *UpdateTrustOutput) SetRequestId(v string) *UpdateTrustOutput {
10764	s.RequestId = &v
10765	return s
10766}
10767
10768// SetTrustId sets the TrustId field's value.
10769func (s *UpdateTrustOutput) SetTrustId(v string) *UpdateTrustOutput {
10770	s.TrustId = &v
10771	return s
10772}
10773
10774// Initiates the verification of an existing trust relationship between an AWS
10775// Managed Microsoft AD directory and an external domain.
10776type VerifyTrustInput struct {
10777	_ struct{} `type:"structure"`
10778
10779	// The unique Trust ID of the trust relationship to verify.
10780	//
10781	// TrustId is a required field
10782	TrustId *string `type:"string" required:"true"`
10783}
10784
10785// String returns the string representation
10786func (s VerifyTrustInput) String() string {
10787	return awsutil.Prettify(s)
10788}
10789
10790// GoString returns the string representation
10791func (s VerifyTrustInput) GoString() string {
10792	return s.String()
10793}
10794
10795// Validate inspects the fields of the type to determine if they are valid.
10796func (s *VerifyTrustInput) Validate() error {
10797	invalidParams := request.ErrInvalidParams{Context: "VerifyTrustInput"}
10798	if s.TrustId == nil {
10799		invalidParams.Add(request.NewErrParamRequired("TrustId"))
10800	}
10801
10802	if invalidParams.Len() > 0 {
10803		return invalidParams
10804	}
10805	return nil
10806}
10807
10808// SetTrustId sets the TrustId field's value.
10809func (s *VerifyTrustInput) SetTrustId(v string) *VerifyTrustInput {
10810	s.TrustId = &v
10811	return s
10812}
10813
10814// Result of a VerifyTrust request.
10815type VerifyTrustOutput struct {
10816	_ struct{} `type:"structure"`
10817
10818	// The unique Trust ID of the trust relationship that was verified.
10819	TrustId *string `type:"string"`
10820}
10821
10822// String returns the string representation
10823func (s VerifyTrustOutput) String() string {
10824	return awsutil.Prettify(s)
10825}
10826
10827// GoString returns the string representation
10828func (s VerifyTrustOutput) GoString() string {
10829	return s.String()
10830}
10831
10832// SetTrustId sets the TrustId field's value.
10833func (s *VerifyTrustOutput) SetTrustId(v string) *VerifyTrustOutput {
10834	s.TrustId = &v
10835	return s
10836}
10837
10838const (
10839	// DirectoryEditionEnterprise is a DirectoryEdition enum value
10840	DirectoryEditionEnterprise = "Enterprise"
10841
10842	// DirectoryEditionStandard is a DirectoryEdition enum value
10843	DirectoryEditionStandard = "Standard"
10844)
10845
10846const (
10847	// DirectorySizeSmall is a DirectorySize enum value
10848	DirectorySizeSmall = "Small"
10849
10850	// DirectorySizeLarge is a DirectorySize enum value
10851	DirectorySizeLarge = "Large"
10852)
10853
10854const (
10855	// DirectoryStageRequested is a DirectoryStage enum value
10856	DirectoryStageRequested = "Requested"
10857
10858	// DirectoryStageCreating is a DirectoryStage enum value
10859	DirectoryStageCreating = "Creating"
10860
10861	// DirectoryStageCreated is a DirectoryStage enum value
10862	DirectoryStageCreated = "Created"
10863
10864	// DirectoryStageActive is a DirectoryStage enum value
10865	DirectoryStageActive = "Active"
10866
10867	// DirectoryStageInoperable is a DirectoryStage enum value
10868	DirectoryStageInoperable = "Inoperable"
10869
10870	// DirectoryStageImpaired is a DirectoryStage enum value
10871	DirectoryStageImpaired = "Impaired"
10872
10873	// DirectoryStageRestoring is a DirectoryStage enum value
10874	DirectoryStageRestoring = "Restoring"
10875
10876	// DirectoryStageRestoreFailed is a DirectoryStage enum value
10877	DirectoryStageRestoreFailed = "RestoreFailed"
10878
10879	// DirectoryStageDeleting is a DirectoryStage enum value
10880	DirectoryStageDeleting = "Deleting"
10881
10882	// DirectoryStageDeleted is a DirectoryStage enum value
10883	DirectoryStageDeleted = "Deleted"
10884
10885	// DirectoryStageFailed is a DirectoryStage enum value
10886	DirectoryStageFailed = "Failed"
10887)
10888
10889const (
10890	// DirectoryTypeSimpleAd is a DirectoryType enum value
10891	DirectoryTypeSimpleAd = "SimpleAD"
10892
10893	// DirectoryTypeAdconnector is a DirectoryType enum value
10894	DirectoryTypeAdconnector = "ADConnector"
10895
10896	// DirectoryTypeMicrosoftAd is a DirectoryType enum value
10897	DirectoryTypeMicrosoftAd = "MicrosoftAD"
10898
10899	// DirectoryTypeSharedMicrosoftAd is a DirectoryType enum value
10900	DirectoryTypeSharedMicrosoftAd = "SharedMicrosoftAD"
10901)
10902
10903const (
10904	// DomainControllerStatusCreating is a DomainControllerStatus enum value
10905	DomainControllerStatusCreating = "Creating"
10906
10907	// DomainControllerStatusActive is a DomainControllerStatus enum value
10908	DomainControllerStatusActive = "Active"
10909
10910	// DomainControllerStatusImpaired is a DomainControllerStatus enum value
10911	DomainControllerStatusImpaired = "Impaired"
10912
10913	// DomainControllerStatusRestoring is a DomainControllerStatus enum value
10914	DomainControllerStatusRestoring = "Restoring"
10915
10916	// DomainControllerStatusDeleting is a DomainControllerStatus enum value
10917	DomainControllerStatusDeleting = "Deleting"
10918
10919	// DomainControllerStatusDeleted is a DomainControllerStatus enum value
10920	DomainControllerStatusDeleted = "Deleted"
10921
10922	// DomainControllerStatusFailed is a DomainControllerStatus enum value
10923	DomainControllerStatusFailed = "Failed"
10924)
10925
10926const (
10927	// IpRouteStatusMsgAdding is a IpRouteStatusMsg enum value
10928	IpRouteStatusMsgAdding = "Adding"
10929
10930	// IpRouteStatusMsgAdded is a IpRouteStatusMsg enum value
10931	IpRouteStatusMsgAdded = "Added"
10932
10933	// IpRouteStatusMsgRemoving is a IpRouteStatusMsg enum value
10934	IpRouteStatusMsgRemoving = "Removing"
10935
10936	// IpRouteStatusMsgRemoved is a IpRouteStatusMsg enum value
10937	IpRouteStatusMsgRemoved = "Removed"
10938
10939	// IpRouteStatusMsgAddFailed is a IpRouteStatusMsg enum value
10940	IpRouteStatusMsgAddFailed = "AddFailed"
10941
10942	// IpRouteStatusMsgRemoveFailed is a IpRouteStatusMsg enum value
10943	IpRouteStatusMsgRemoveFailed = "RemoveFailed"
10944)
10945
10946const (
10947	// RadiusAuthenticationProtocolPap is a RadiusAuthenticationProtocol enum value
10948	RadiusAuthenticationProtocolPap = "PAP"
10949
10950	// RadiusAuthenticationProtocolChap is a RadiusAuthenticationProtocol enum value
10951	RadiusAuthenticationProtocolChap = "CHAP"
10952
10953	// RadiusAuthenticationProtocolMsChapv1 is a RadiusAuthenticationProtocol enum value
10954	RadiusAuthenticationProtocolMsChapv1 = "MS-CHAPv1"
10955
10956	// RadiusAuthenticationProtocolMsChapv2 is a RadiusAuthenticationProtocol enum value
10957	RadiusAuthenticationProtocolMsChapv2 = "MS-CHAPv2"
10958)
10959
10960const (
10961	// RadiusStatusCreating is a RadiusStatus enum value
10962	RadiusStatusCreating = "Creating"
10963
10964	// RadiusStatusCompleted is a RadiusStatus enum value
10965	RadiusStatusCompleted = "Completed"
10966
10967	// RadiusStatusFailed is a RadiusStatus enum value
10968	RadiusStatusFailed = "Failed"
10969)
10970
10971const (
10972	// ReplicationScopeDomain is a ReplicationScope enum value
10973	ReplicationScopeDomain = "Domain"
10974)
10975
10976const (
10977	// SchemaExtensionStatusInitializing is a SchemaExtensionStatus enum value
10978	SchemaExtensionStatusInitializing = "Initializing"
10979
10980	// SchemaExtensionStatusCreatingSnapshot is a SchemaExtensionStatus enum value
10981	SchemaExtensionStatusCreatingSnapshot = "CreatingSnapshot"
10982
10983	// SchemaExtensionStatusUpdatingSchema is a SchemaExtensionStatus enum value
10984	SchemaExtensionStatusUpdatingSchema = "UpdatingSchema"
10985
10986	// SchemaExtensionStatusReplicating is a SchemaExtensionStatus enum value
10987	SchemaExtensionStatusReplicating = "Replicating"
10988
10989	// SchemaExtensionStatusCancelInProgress is a SchemaExtensionStatus enum value
10990	SchemaExtensionStatusCancelInProgress = "CancelInProgress"
10991
10992	// SchemaExtensionStatusRollbackInProgress is a SchemaExtensionStatus enum value
10993	SchemaExtensionStatusRollbackInProgress = "RollbackInProgress"
10994
10995	// SchemaExtensionStatusCancelled is a SchemaExtensionStatus enum value
10996	SchemaExtensionStatusCancelled = "Cancelled"
10997
10998	// SchemaExtensionStatusFailed is a SchemaExtensionStatus enum value
10999	SchemaExtensionStatusFailed = "Failed"
11000
11001	// SchemaExtensionStatusCompleted is a SchemaExtensionStatus enum value
11002	SchemaExtensionStatusCompleted = "Completed"
11003)
11004
11005const (
11006	// SelectiveAuthEnabled is a SelectiveAuth enum value
11007	SelectiveAuthEnabled = "Enabled"
11008
11009	// SelectiveAuthDisabled is a SelectiveAuth enum value
11010	SelectiveAuthDisabled = "Disabled"
11011)
11012
11013const (
11014	// ShareMethodOrganizations is a ShareMethod enum value
11015	ShareMethodOrganizations = "ORGANIZATIONS"
11016
11017	// ShareMethodHandshake is a ShareMethod enum value
11018	ShareMethodHandshake = "HANDSHAKE"
11019)
11020
11021const (
11022	// ShareStatusShared is a ShareStatus enum value
11023	ShareStatusShared = "Shared"
11024
11025	// ShareStatusPendingAcceptance is a ShareStatus enum value
11026	ShareStatusPendingAcceptance = "PendingAcceptance"
11027
11028	// ShareStatusRejected is a ShareStatus enum value
11029	ShareStatusRejected = "Rejected"
11030
11031	// ShareStatusRejecting is a ShareStatus enum value
11032	ShareStatusRejecting = "Rejecting"
11033
11034	// ShareStatusRejectFailed is a ShareStatus enum value
11035	ShareStatusRejectFailed = "RejectFailed"
11036
11037	// ShareStatusSharing is a ShareStatus enum value
11038	ShareStatusSharing = "Sharing"
11039
11040	// ShareStatusShareFailed is a ShareStatus enum value
11041	ShareStatusShareFailed = "ShareFailed"
11042
11043	// ShareStatusDeleted is a ShareStatus enum value
11044	ShareStatusDeleted = "Deleted"
11045
11046	// ShareStatusDeleting is a ShareStatus enum value
11047	ShareStatusDeleting = "Deleting"
11048)
11049
11050const (
11051	// SnapshotStatusCreating is a SnapshotStatus enum value
11052	SnapshotStatusCreating = "Creating"
11053
11054	// SnapshotStatusCompleted is a SnapshotStatus enum value
11055	SnapshotStatusCompleted = "Completed"
11056
11057	// SnapshotStatusFailed is a SnapshotStatus enum value
11058	SnapshotStatusFailed = "Failed"
11059)
11060
11061const (
11062	// SnapshotTypeAuto is a SnapshotType enum value
11063	SnapshotTypeAuto = "Auto"
11064
11065	// SnapshotTypeManual is a SnapshotType enum value
11066	SnapshotTypeManual = "Manual"
11067)
11068
11069const (
11070	// TargetTypeAccount is a TargetType enum value
11071	TargetTypeAccount = "ACCOUNT"
11072)
11073
11074const (
11075	// TopicStatusRegistered is a TopicStatus enum value
11076	TopicStatusRegistered = "Registered"
11077
11078	// TopicStatusTopicnotfound is a TopicStatus enum value
11079	TopicStatusTopicnotfound = "Topic not found"
11080
11081	// TopicStatusFailed is a TopicStatus enum value
11082	TopicStatusFailed = "Failed"
11083
11084	// TopicStatusDeleted is a TopicStatus enum value
11085	TopicStatusDeleted = "Deleted"
11086)
11087
11088const (
11089	// TrustDirectionOneWayOutgoing is a TrustDirection enum value
11090	TrustDirectionOneWayOutgoing = "One-Way: Outgoing"
11091
11092	// TrustDirectionOneWayIncoming is a TrustDirection enum value
11093	TrustDirectionOneWayIncoming = "One-Way: Incoming"
11094
11095	// TrustDirectionTwoWay is a TrustDirection enum value
11096	TrustDirectionTwoWay = "Two-Way"
11097)
11098
11099const (
11100	// TrustStateCreating is a TrustState enum value
11101	TrustStateCreating = "Creating"
11102
11103	// TrustStateCreated is a TrustState enum value
11104	TrustStateCreated = "Created"
11105
11106	// TrustStateVerifying is a TrustState enum value
11107	TrustStateVerifying = "Verifying"
11108
11109	// TrustStateVerifyFailed is a TrustState enum value
11110	TrustStateVerifyFailed = "VerifyFailed"
11111
11112	// TrustStateVerified is a TrustState enum value
11113	TrustStateVerified = "Verified"
11114
11115	// TrustStateUpdating is a TrustState enum value
11116	TrustStateUpdating = "Updating"
11117
11118	// TrustStateUpdateFailed is a TrustState enum value
11119	TrustStateUpdateFailed = "UpdateFailed"
11120
11121	// TrustStateUpdated is a TrustState enum value
11122	TrustStateUpdated = "Updated"
11123
11124	// TrustStateDeleting is a TrustState enum value
11125	TrustStateDeleting = "Deleting"
11126
11127	// TrustStateDeleted is a TrustState enum value
11128	TrustStateDeleted = "Deleted"
11129
11130	// TrustStateFailed is a TrustState enum value
11131	TrustStateFailed = "Failed"
11132)
11133
11134const (
11135	// TrustTypeForest is a TrustType enum value
11136	TrustTypeForest = "Forest"
11137
11138	// TrustTypeExternal is a TrustType enum value
11139	TrustTypeExternal = "External"
11140)
11141